2005-01-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
[official-gcc.git] / gcc / ChangeLog
blob4d1c54a484a9832197cad6df90d6e560ba1493a0
1 2004-06-19  Andrew Pinski  <apinski@apple.com>
3         * toplev.c (wrapup_global_declarations): Do not check
4         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
5         cgraph_varpool_node's needed field.
7 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9         * tree-ssa.c (raise_value): Removed.
10         (get_eq_name, check_phi_redundancy): New functions.
11         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
13 2004-06-18  Roger Sayle  <roger@eyesopen.com>
15         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
16         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
17         constant folding for unordered comparison tree nodes.  If both
18         operands are real constants, call fold_relational_const.  If either
19         operand is a NaN, evaluate the other for side-effects and return a
20         constant.  Optimize (double)float1 CMP (double)float2 into the
21         equivalent float1 CMP float2.
22         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
23         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
24         LTGT_EXPR>: Call fold_relational_const for constant operands.
25         (fold_relational_const): Add support for unordered comparison tree
26         nodes.  Don't constant fold "ordered" floating point comparisons
27         against NaN if when flag_trapping_math is set.
29 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
31         * fold-const.c (build_range_check): If !in_p and recursive call
32         fails, exit immediately.  If high - low overflows and etype is
33         a signed type, retry with unsigned etype.
34         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
35         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
37 2004-06-18  Richard Henderson  <rth@redhat.com>
39         * c-gimplify.c (gimplify_condition): Remove.
40         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
41         call it.
43 2004-06-18  Richard Henderson  <rth@redhat.com>
45         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
46         switch estimates.
48 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
50         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
51         (NORMAL_TEXT_SECTION_NAME): Define.
52         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
53         (SECTION_FORMAT_STRING): Define.
55 2004-06-18  Steven Bosscher  <stevenb@suse.de>
57         * config/xtensa/xtensa.c
58         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
59         * xtensa.md: Replace the old pipeline description with a DFA model.
61 2004-06-18  Steven Bosscher  <stevenb@suse.de>
62             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
64         * config/s390/s390.md: Remove the generic pipeline description.
65         * config/s390/2064.md: Make all insn reservations apply to
66         the z900, g5 and g6.
67         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
68         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
69         Define to hook_int_void_1.
70         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
71         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
73 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
74                         Diego Novillo  <dnovillo@redhat.com>
76         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
77         (create_stmt_ann): Ditto.
78         (create_tree_ann): New function.
79         (create_cst_ann): Remove.
80         (create_expr_ann): Ditto.
82         * tree-flow-inline.h (cst_ann): Remove.
83         (get_cst_ann): Ditto.
84         (get_expr_ann): Ditto.
85         (expr_ann): Ditto.
86         (get_tree_ann): New function.
87         (tree_ann): Ditto.
88         (ann_type): tree_ann -> tree_ann_t.
89         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
90         (struct cst_ann_d): Removed.
91         (struct expr_ann_d): Ditto.
92         (union tree_ann_d): Removed cst and expr.
93         (tree_ann): Renamed to tree_ann_t.
94         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
95         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
96         annotation.
97         (set_value_handle): Ditto.
98         (phi_translate): Ditto.
99         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
101 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
103         * config/sh/t-linux64: New file.
104         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
106 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
108         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
109         (unshare_all_rtl_again): Call unshare_all_rtl_1.
110         (unshare_all_rtl): New.
111         * function.c (instantiate_virtual_regs): Remove parameters.
112         * function.h (instantiate_virtual_regs): Add prototype.
113         * rtl.h (unshare_all_rtl): Add prototype.
114         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
115         prototype.
116         * passes.c: Remove assertions on the parameters to
117         rest_of_handle_* functions.  Remove the parameters to
118         the functions, replacing decl with current_function_decl
119         and insns with get_insns ().
121 2004-06-17  Roger Sayle  <roger@eyesopen.com>
123         * fold-const.c (constant_boolean_node): Handle boolean_type_node
124         directly, return either boolean_true_node or boolean_false_node.
126 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
128         * opts.sh: Delete.  Break out generated code to next four files.
129         * opt-gather.awk: New file.
130         * optc-gen.awk: New file.
131         * opth-gen.awk: New file.
132         * opt-functions.awk: New common file.
133         * Makefile.in: Update for above.
134         * configure.ac: Update comment.
135         * configure: Regenerate.
137 2004-06-17  Richard Henderson  <rth@redhat.com>
139         * c-common.c (flag_objc_sjlj_exceptions): New.
140         * c-common.h (flag_objc_sjlj_exceptions): Declare.
141         * c-opts.c (c_common_handle_option): Set it.
142         (c_common_post_options): Handle interation of different
143         objective-c exception and runtime switches.
144         * c-decl.c (c_eh_initialized_p): New.
145         (finish_decl): Use it instead of local eh_initialized_p.
146         * c-parse.in (nested_function, notype_nested_function): Record
147         the result of compstmt.
148         (compstmt_or_error): Likewise.
149         (compstmt): Don't add_stmt the result.
150         (stmt): Don't return anything.  Rewrite objc try and sync rules.
151         (objc_try_stmt, objc_catch_list): Remove.
152         (objc_catch_block, objc_finally_block): Remove.
153         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
154         (objc_try_catch_clause, objc_finally_clause): New.
155         (objc_try_catch_stmt): Rewrite.
156         * c-tree.h (c_eh_initialized_p): Declare.
157         * c-opt (fobjc-sjlj-exceptions): New.
158         * except.c (output_function_exception_table): Don't call cgraph
159         on non-decls.
160         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
161         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
162         catch_count_stack, exc_binding_stack, if_nesting_count,
163         blk_nesting_count, objc_enter_block, objc_exit_block,
164         objc_declare_variable, val_stack_push, val_stack_pop, 
165         objc_build_try_enter_fragment, objc_build_extract_expr,
166         objc_build_try_exit_fragment, objc_build_extract_fragment,
167         objc_build_try_prologue, objc_build_try_epilogue, 
168         objc_build_catch_stmt, objc_build_catch_epilogue,
169         objc_build_finally_prologue, objc_build_finally_epilogue,
170         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
171         objc_build_synchronized_epilogue): Remove.
172         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
173         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
174         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
175         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
176         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
177         objc_begin_catch_clause, objc_finish_catch_clause,
178         objc_build_finally_clause, objc_finish_try_stmt,
179         objc_build_synchronized): New.
180         (objc_is_object_id, objc_is_class_id): New.
181         (objc_comptypes): Use them.
182         (build_next_objc_exception_stuff): Break NeXT sjlj out from
183         build_objc_exception_stuff.
184         (synth_module_prologue): Update to match.
185         (objc_build_throw_stmt): Use cur_try_context to decide if
186         we're in a @catch.
187         * objc/objc-act.h: Update prototypes.
188         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
190 2004-06-17  Andrew Pinski <apinski@apple.com>
192         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
193         Use TYPE_FIELDS instead of TYPE_VALUES.
195 2004-06-17  Jason Merrill  <jason@redhat.com>
197         PR c++/16015
198         * gimplify.c (gimplify_target_expr): Handle void initializer.
199         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
200         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
201         and AGGR_INIT_EXPR.
203 2004-06-17  Roger Sayle  <roger@eyesopen.com>
205         * fold-const.c (fold_relational_const): Use constant_boolean_node.
207 2004-06-17  Jan Hubicka  <jh@suse.cz>
209         PR target/15433
210         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
211         operand numbering in the output template.
212         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
214 2004-06-17  Jan Hubicka  <jh@suse.cz>
216         * except.c (can_throw_internal): Recognize RESX expresisons.
218 2004-06-17  Jan Hubicka  <jh@suse.cz>
220         * cfgbuild.c (make_edges): Do not use label_value_list.
221         (find_basic_blocks_1): Do not collect label_value_list.
222         (find_sub_basic_blocks): Update call of make_edges.
224 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
226         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
227         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
228         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
229         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
230         (get_v_may_def_result_ptr):  Return a def_operand_p.
231         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
232         (get_v_must_def_op_ptr):  Return a def_operand_p.
233         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
234         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
235         (phi_element_for_edge):  Remove.
236         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
237         (propagate_tree_value):  Add new prototype.
238         (phi_element_for_edge):  Remove prototype.
239         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
240         (prepare_operand_for_rename):  Split into two functions.
241         (prepare_use_operand_for_rename):  Prepare use operands.
242         (prepare_def_operand_for_rename):  Prepare def operands.
243         (rewrite_stmt):  Use new operand types.
244         (rewrite_operand):  Use new operand types, change parameter type.
245         * tree-outof-ssa.c (replace_variable):  Split into two functions.
246         (replace_use_variable):  Rewrite uses.
247         (replace_def_variable):  Rewrite defs.
248         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
249         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
250         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
251         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
252         (ccp_fold, replace_uses_in):  Use new operand types.
253         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
254         and no longer set the value, change parameter type.
255         (replace_exp_1):  Use new operand types.
256         (propagate_value):  Change parameter type, use new operand types.
257         (propagate_tree_value):  Propagate_value without SSA operands.
258         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
259         (cprop_into_successor_phis):  Use new operand types.
260         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
261         (eliminate_redundant_computations):  Use new operand types.
262         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
263         (fix_stmt_v_may_defs):  Use new operand_types.
264         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
265         (build_tree_conflict_graph):  Use new operand_types.
266         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
267         * tree-ssa-operands.c (struct freelist_d):  Remove.
268         (check_optype_freelist, add_optype_freelist):  Remove.
269         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
270         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
271         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
272         Call ggc_free instead of add_optype_freelist.
273         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
274         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
275         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
276         (struct use_optype_d):  Change underlying type.
277         (def_operand_p, use_operand_p):  New types for pointers to operands.
278         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP, 
279         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
280         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand 
281         pointer types.
282         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
283         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
284         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
285         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
286         PHI result as an operand.
287         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
288         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
289         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
290         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
291         PHI_ARG_DEF_FROM_EDGE.
292         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
293         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
295 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
297         PR tree-optimization/15991
298         * tree-cfg.c (tree_block_label): Export.
299         * tree-flow-inline.h (bsi_after_labels): New function.
300         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
301         * tree-ssa.c (propagate_into_addr): New function.
302         (replace_immediate_uses): Handle propagation of pointer constants.
303         (raise_value): Do not restrict propagation of pointer constants.
304         * tree-ssanames.c (duplicate_ssa_name): New function.
305         * tree.h (duplicate_ssa_name): Declare.
307 2004-06-17  David Ayers  <d.ayers@inode.at>
309         * c-parse.in: Unify Objective-C token names.
311 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
313         Bug 14610
314         * Makefile.in (min-insn-modes.o): Correct dependencies.
315         * real.c (encode_ieee_extended, decode_ieee_extended): Always
316         produce/consume 12-byte little-endian Intel format.
317         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
318         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
319         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
320         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
321         New functions which convert between 12-byte little-endian Intel
322         format and the desired format.
323         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
324         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
325         Update.
327 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
329         * expmed.c (expand_mult_const): In sanity check, compare only
330         the bits of val and val_so_far that are significant in the
331         result mode.
333 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
335         * tree-ssa-pre.c:  Update comments.
336         (val_expr_pair_eq): Factor code from here.
337         (expr_pred_trans_eq): and here.
338         (expressions_equal_p): To here.
339         (print_value_set): Print value for expression.
340         (phi_trans_lookup): Rename some variables.
341         (lookup): Ditto.
342         (value_exists_in_set_bitmap): Ditto.
343         (value_remove_from_set_bitmap): Ditto.
344         (value_insert_into_set_bitmap): Ditto.
346 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
348         * config/s390/s390-modes.def (CCL3mode): New machine mode.
349         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
350         (s390_alc_comparison, s390_slb_comparison): Likewise.
351         (s390_branch_condition_mask): Likewise.
352         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
353         ("*subsi3_cc2", "*subsi3_cconly2"): New.
355         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
356         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
357         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
358         Handle SIGN_EXTEND and ZERO_EXTEND.
360         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
361         * config/s390/s390.c (s390_expand_addcc): New function.
362         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
363         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
364         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
366 2004-06-17  Ben Elliston  <bje@au.ibm.com>
368         * tree-alias-common.c: Add whitespace.
369         * tree-inline.c: Correct comment about this file's purpose.
370         * tree-optimize.c: Likewise.
371         * tree-tailcall.c: Likewise.
373         * tree-alias-ander.h: Add standard top-of-file comment.
374         * tree-alias-common.h: Likewise.
375         * tree-alias-type.h: Likewise.
377 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
379         * tree-ssa-pre.c (compute_avail): Value number uses as well.
380         Strip useless type conversions.
381         Casts have to be treated slightly different than normal unaries.
383 2004-06-16  Richard Henderson  <rth@redhat.com>
385         * c-common.def (COMPOUND_STMT): Remove.
386         * c-common.c (finish_fname_decls): Don't look through it.
387         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
388         * c-common.h (COMPOUND_BODY): Remove.
389         (c_common_stmt_codes): Remove COMPOUND_STMT.
390         * c-dump.c (c_dump_tree): Likewise.
391         * c-gimplify.c (c_gimplify_stmt): Likewise.
392         * c-pretty-print.c (pp_c_statement): Likewise.
393         * tree.h (DECL_SAVED_TREE): Update commentary.
394         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
395         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
396         (GOTO_EXPR): Rename from GOTO_STMT.
397         (GOTO_FAKE_P): Remove.
398         (COMPOUND_STMT): Remove.
399         (HANDLER): Update wrt COMPOUND_STMT.
400         (STMT_EXPR): Likewise.
401         (LABEL_EXPR): Rename from LABEL_STMT.
402         (SCOPE_STMT): Remove.
403         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
404         through COMPOUND_STMT.
406 2004-06-16  Richard Henderson  <rth@redhat.com>
408         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
409         c_finish_while_stmt_cond): Remove decls.
410         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
411         * c-typeck.c (c_begin_if_stmt): Return void.
412         (c_begin_else): Tidy.  Save stmt_count.
413         * c-tree.h (c_begin_if_stmt): Update decl.
415         * objc/objc-act.c (objc_build_try_enter_fragment,
416         objc_build_extract_fragment, objc_build_try_epilogue,
417         objc_build_catch_stmt, objc_build_catch_epilogue,
418         objc_build_finally_prologue, objc_build_finally_epilogue): Update
419         for if builder function changes.
421 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
423         * config/s390/s390.c (struct machine_function):  New member
424         last_restore_gpr.
425         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
426         Do not modify machine->save_return_addr_p or regs_ever_live.
427         Fill in machine->last_restore_gpr.
428         (s390_optimize_prolog): Use s390_frame_info to compute registers
429         to save/restore, remove duplicated code.
430         (s390_arg_frame_offset): Use s390_frame_info to compute frame
431         size, remove duplicated code.
432         (s390_emit_prologue): Adapt s390_frame_info call.  Update
433         machine->save_return_addr_p and regs_ever_live.
434         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
435         machine->last_save_gpr.
437 2004-06-16  Richard Henderson  <rth@redhat.com>
439         * c-parse.in (if_stmt_locus): Remove.
440         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
441         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
442         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
443         empty_locus.  Add stmt_count, saw_else.
444         (c_begin_if_stmt): Push if_stack here.
445         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
446         (c_finish_then, c_finish_else): Record empty_locus.
447         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
448         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
449         if or else body.
450         * c-tree.h: Update prototypes.
452 2004-06-16  Steven Bosscher  <stevenb@suse.de>
454         * tree.h (PHI_CHAIN): New.
455         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
456         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
457         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
458         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
459         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
460         when traversing a list of PHI_NODEs.
462 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
464         PR target/13292
465         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
466         on -msoft-float.
467         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
468         68040 and soft-float.
469         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
470         in the TARGET_68040_ONLY case.
472 2004-06-16 Peter Barada  <peter@the-baradas.com>
474         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
475         (movsi_cf): Make named, don't match TARGET_CFV4.
476         (pushexthisi_const): Use mov3q if possible.
477         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
478         to special case mvz.w for ColdFire V4.
479         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
480         to special case mvz.b for ColdFire V4.
481         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
482         divide.
483         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
484         * config/m68k/m68k.c(valid_mov3q_const):  New function.
485         (const_method): SWAP is valid for ColdFire.
486         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
487         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
489 2004-06-16  Richard Henderson  <rth@redhat.com>
491         * c-common.def (CASE_LABEL): Remove.
492         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
493         (match_case_to_enum_1): Likewise.
494         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
495         * c-dump.c (c_dump_tree): Likewise.
496         * c-gimplify.c (c_gimplify_stmt): Likewise.
497         * c-pretty-print.c (pp_c_statement): Likewise.
498         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
499         * tree.h (CASE_LOW): Update commentary.
501 2004-06-16  Richard Henderson  <rth@redhat.com>
503         * c-common.def (ASM_STMT): Remove.
504         * c-common.h (c_common_stmt_codes): Remove ASM_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-typeck.c (build_asm_expr): Use ASM_EXPR.
509         * tree.h: Fix commentary.
511 2004-06-16  Richard Henderson  <rth@redhat.com>
513         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
514         * c-common.c (c_add_case_label): Use LABEL_EXPR.
515         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
516         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
517         * c-dump.c (c_dump_tree): Likewise.
518         * c-gimplify.c (c_gimplify_stmt): Likewise.
519         * c-pretty-print.c (pp_c_statement): Likewise.
520         * c-parse.in (stmt): Use GOTO_EXPR.
521         (label): Use LABEL_EXPR.
522         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
523         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
525 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
527         * cfgcleanup.c (try_simplify_condjump): Update test to make
528         sure we have a conditional branch around am unconditional branch.
530 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
532         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
534 2004-06-16  Dale Johannesen  <dalej@apple.com>
536         * loop.c (loop_givs_reduce): Avoid miscompilation of
537         loops entered at bottom.
539 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
541         * cfglayout.c (fixup_reorder_chain): Handle case where the
542         destination of E_FALL is EXIT_BLOCK_PTR.
544 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
546         PR target/15653
547         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
548         after shifts before asm.
550 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
552         PR tree-optimization/15993
553         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
554         destination is unchanged.
556 2004-06-16  Andreas Jaeger  <aj@suse.de>
558         * doc/install.texi (Configuration): Update description for
559         --enable-version-specific-runtime-libs.
561 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
563         * doc/install.texi: boehm-gc now uses automake 1.8.5.
565 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
567         * toplev.h (rest_of_compilation): Adjust prototype.
569 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
571         * coverage.c: Remove argument to rest_of_compilation.
572         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
573         * passes.c (rest_of_compilation): Remove argument.
574         (pass_rest_of_compilation): New.
575         (rest_of_handle_final, rest_of_handle_delay_slots,
576         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
577         rest_of_handle_machine_reorg, rest_of_handle_regrename
578         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
579         rest_of_handle_regmove, rest_of_handle_tracer
580         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
581         rest_of_handle_web, rest_of_handle_branch_prob
582         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
583         rest_of_handle_addressof, rest_of_handle_jump_bypass
584         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
585         Check that the two arguments are actually superfluous.
586         * tree-optimize.c (register_dump_files): Add properties argument.
587         Track validity of passes.  Only initialize dump files for
588         tree-based passes.  Store the full set of provided passes in
589         the pass.
590         (init_tree_optimization_passes): Register pass_expand and
591         pass_rest_of_compilation.
592         (execute_one_pass): Do not track the presence of required properties
593         here.  Set in_gimple_form.  Do not update current_properties.
594         (current_properties): Remove.
595         (set_save_expr_context): Remove.
596         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
597         expand to RTL here, and do not call rest_of_compilation.  Push
598         GGC context even before gimplification.
599         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
600         (pass_expand, pass_rest_of_compilation): Declare.
602 2004-06-15  Jeff Law  <law@redhat.com>
604         * fold-const.c (swap_tree_comparison): No longer static.
605         (tree_swap_operands_p): Similarly.  Return true if both operands
606         are SSA_NAMEs and the first operand has a higher version number than
607         the second operand.
608         * tree.h (swap_tree_comparison): Prototype.
609         (tree_swap_operands_p): Prototype.
610         * tree-ssa-operands.c (get_expr_operands): For commutative
611         operators and relational comparisons, canonicalize the
612         order of the operands.
614 2004-06-15  Richard Henderson  <rth@redhat.com>
616         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
617         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
618         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
619         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
620         (finish_fname_decls, fname_decl): Use statement_lists.
621         (c_expand_expr_stmt): Don't set last_expr_type.
622         (c_type_hash): Fix indentation.
623         (c_safe_from_p): Don't follow TREE_CHAIN.
624         (c_tree_chain_matters_p): Remove.
625         * c-common.def (SCOPE_STMT): Remove.
626         (CLEANUP_STMT): Redefine to contain its own body.
627         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
628         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
629         Add x_cur_stmt_list.
630         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
631         (cur_stmt_list): New.
632         (STATEMENT_LIST_STMT_EXPR): New.
633         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
634         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
635         (CLEANUP_BODY): New.
636         (CLEANUP_DECL): Move to operand 2.
637         (c_common_stmt_codes): Remove SCOPE_STMT.
638         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
639         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
640         (c_push_function_context, c_pop_function_context): Don't save it.
641         (finish_decl): Set TREE_USED on the decl for a cleanup.
642         Use push_cleanup.
643         (store_parm_decls): Use statement lists.
644         (finish_function): Remove compstmt rule workaround.  Use statement
645         lists.  Call finish_fname_decls after finalizing the body.
646         (c_begin_compound_stmt): Move to c-typeck.c.
647         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
648         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
649         (c_genericize): Invoke them.
650         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
651         (c_build_bind_expr): Export.
652         (gimplify_block, gimplify_cleanup): Remove.
653         (gimplify_condition): Use gimplify_stmt.
654         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
655         (gimplify_if_stmt): Remove recursion hack.
656         (c_gimplify_expr): Remove STMT_EXPR handling.
657         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
658         (is_last_stmt_of_scope): Remove.
659         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
660         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
661         c_end_compound_stmt.
662         * c-objc-common.c (build_cdtor): Likewise.
663         * c-parse.in (primary): Use c_finish_stmt_expr.
664         (push_scope, pop_scope): Remove.
665         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
666         (c99_block_end, compstmt): Use c_end_compound_stmt.
667         (c99_block_lineno_labeled_stmt): Likewise.
668         (compstmt_primary_start): Use c_begin_stmt_expr.
669         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
670         (do_stmt_start): Fill in body directly.
671         (lineno_stmt): Avoid setting lineno on constants.
672         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
673         Remove SCOPE_STMT.
674         * c-semantics.c (begin_stmt_tree): Remove.
675         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
676         (add_stmt): Use statement lists.
677         (add_scope_stmt, finish_stmt_tree): Remove.
678         (push_cleanup): New.
679         * c-tree.h: Move some decls from c-common.h.
680         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
681         (do_case, c_finish_case): Likewise.
682         (c_finish_then): Take body for then as argument.
683         (c_finish_else): Similarly.
684         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
685         c_finish_for_stmt_incr, c_finish_for_stmt): New.
686         (c_begin_stmt_expr, c_finish_stmt_expr): New.
687         (c_begin_compound_stmt): Do scope management.
688         (c_end_compound_stmt): New.
689         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
690         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
691         Look through exception handling constructs.
692         (gimplify_bind_expr): Accept temporary argument.
693         (gimplify_target_expr): Special case BIND_EXPR bodies.
694         (gimplify_expr): Handle fallback == fb_none like a statement.
695         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
696         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
697         * langhooks.h (tree_chain_matters_p): Remove.
698         * stub-objc.c (objc_clear_super_receiver): New.
699         * tree-gimple.h (voidify_wrapper_expr): Update decl.
700         (append_to_statement_list, append_to_statement_list_force): Move
701         to tree-iterator.h.
702         * tree-inline.c (expand_call_inline): Update call.
703         (clone_body): Use statement lists.
704         (walk_tree): Don't check tree_chain_matters_p.
705         (copy_tree_r): Likewise.
706         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
707         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
708         * tree-iterator.h (append_to_statement_list,
709         append_to_statement_list_force): Moved from tree-gimple.h.
710         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
711         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
712         (objc_enter_block): Likewise.
713         (objc_exit_block): Use c_end_compound_stmt.
714         (objc_build_try_enter_fragment): Add #error and comment for
715         rewriting for OBJCPLUS.
716         (objc_build_extract_fragment, objc_build_try_epilogue,
717         objc_build_catch_stmt, objc_build_finally_prologue,
718         objc_build_finally_epilogue): Update for C statement builders.
719         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
720         Remove.
722 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
724         * df.c (df_reg_clobber_gen): Removed.
725         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
726         Make more effective for hard regs.
727         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
729 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
731         * c-pragma.h (c_lex_string_translate): Change type to int.
732         * c-parse.in: Change all assignments of c_lex_string_translate
733         to true and false to 1 and 0.
734         * c-lex.c (c_lex_string_translate): Likewise.
735         (lex_string): Convert string without translation in the -1
736         case.
738 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
740         * convert.h: Add include guards
742 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
744         * tree-flow-inline.h: Document all functions.
746 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
748         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
749         * tree-dfa.c (create_stmt_ann): Ditto.
750         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
751         * tree-inline.c (estimate_num_insns_1): Ditto.
752         * tree.c (tree_size): Ditto.
753         (make_node_stat): Ditto.
754         (tree_node_structure): Ditto.
755         (ephi_node_elt_check_failed): Remove.
756         (is_essa_node): Ditto.
757         * tree.def (EPHI_NODE): Ditto.
758         (EEXIT_NODE): Ditto.
759         (EUSE_NODE): Ditto.
760         (EKILL_NODE): Ditto.
761         * tree.h (EREF_NODE_CHECK): Remove.
762         (EPHI_NODE_ELT_CHECK): Ditto.
763         (struct tree_eref_common): Ditto.
764         (struct tree_euse_node): Ditto.
765         (struct ephi_arg_d): Ditto.
766         (struct tree_ephi_node): Ditto.
767         (ephi_node_elt_check_failed): Remove prototype.
768         (is_essa_node): Ditto.
769         (enum tree_node_structure_enum): Remove TS_E*_NODE.
770         (union tree_node): Remove E*_NODE uses.
772 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
774         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
775         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
776         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
777         Likewise.
778         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
779         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
780         expand_builtin_strcmp, expand_builtin_strncmp,
781         expand_builtin_frame_address): Likewise.
782         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
783         insert_one_insn): Likewise.
784         * calls.c (prepare_call_address, precompute_register_parameters,
785         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
786         * cfganal.c (flow_active_insn_p): Likewise.
787         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
788         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
789         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
790         make_extraction, recog_for_combine, gen_lowpart_for_combine,
791         simplify_comparison, record_dead_and_set_regs_1,
792         record_dead_and_set_regs, record_promoted_value,
793         check_promoted_subreg, get_last_value_validate, get_last_value,
794         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
795         unmentioned_reg_p_1): Likewise.
796         * conflict.c (mark_reg): Likewise.
797         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
798         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
799         merge_equiv_classes, flush_hash_table, invalidate,
800         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
801         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
802         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
803         record_jump_cond, cse_insn, addr_affects_sp_p,
804         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
805         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
806         cse_cc_succs, cse_condition_code_reg): Likewise.
807         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
808         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
809         cselib_record_set, cselib_record_sets): Likewise.
810         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
811         dbxout_block): Likewise.
812         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
813         * dojump.c (do_jump): Likewise.
814         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
815         is_based_loc, rtl_for_decl_location): Likewise.
816         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
817         set_decl_incoming_rtl, mark_user_reg): Likewise.
818         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
819         copy_to_suggested_reg, allocate_dynamic_stack_space,
820         probe_stack_range, hard_function_value): Likewise.
821         * expmed.c (store_bit_field, store_fixed_bit_field,
822         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
823         extract_split_bit_field, expand_divmod, emit_store_flag_force):
824         Likewise.
825         * expr.c (convert_move, convert_modes,
826         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
827         use_group_regs, emit_move_insn, emit_move_insn_1,
828         compress_float_constant, push_block, emit_single_push_insn,
829         emit_push_insn, get_subtarget, expand_assignment, store_expr,
830         store_constructor, store_field, force_operand, safe_from_p,
831         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
832         Likewise.
833         * final.c (profile_function, final_scan_insn, alter_subreg,
834         get_mem_expr_from_op, output_asm_operand_names, output_operand,
835         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
836         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
837         find_regno_partial, propagate_one_insn, init_propagate_block_info,
838         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
839         attempt_auto_inc, find_auto_inc, mark_used_regs,
840         count_or_remove_death_notes_bb): Likewise.
841         * function.c (find_temp_slot_from_address, update_temp_slot_address,
842         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
843         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
844         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
845         purge_single_hard_subreg_set, instantiate_decl,
846         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
847         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
848         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
849         expand_function_start, diddle_return_value, clobber_return_register,
850         expand_function_end, keep_stack_depressed, handle_epilogue_set,
851         update_epilogue_consts): Likewise.
852         * genemit.c (gen_exp, gen_insn): Likewise.
853         * genrecog.c (make_insn_sequence): Likewise.
854         * global.c (global_conflicts, expand_preferences, mark_reg_store,
855         mark_reg_conflicts, set_preference, reg_becomes_live,
856         build_insn_chain, mark_reg_change): Likewise.
857         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
858         Likewise.
859         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
860         Likewise.
861         * integrate.c (copy_rtx_and_substitute, try_constants,
862         subst_constants, mark_stores, allocate_initial_values): Likewise.
863         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
864         delete_computation, rtx_renumbered_equal_p, true_regnum,
865         reg_or_subregno): Likewise.
866         * lcm.c (reg_dies, reg_becomes_live): Likewise.
867         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
868         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
869         wipe_dead_reg, no_conflict_p): Likewise.
870         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
871         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
872         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
873         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
874         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
875         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
876         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
877         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
878         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
879         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
880         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
881         try_swap_copy_prop): Likewise.
882         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
883         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
884         Likewise.
885         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
886         reload_cse_simplify_operands, reload_combine,
887         reload_combine_note_store, reload_combine_note_use,
888         reload_cse_move2add, move2add_note_store): Likewise.
889         * print-rtl.c (print_rtx): Likewise.
890         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
891         contains_pseudo, handle_asm_insn): Likewise.
892         * ra-debug.c (ra_print_rtx_object, dump_constraints,
893         dump_static_insn_cost): Likewise.
894         * ra-rewrite.c (slots_overlap_p, emit_colors,
895         remove_suspicious_death_notes): Likewise.
896         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
897         register_operand, scratch_operand, nonmemory_operand,
898         constrain_operands): Likewise.
899         * reg-stack (check_asm_stack_operands, remove_regno_note,
900         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
901         subst_asm_stack_regs): Likewise.
902         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
903         record_address_regs, reg_scan_mark_refs): Likewise.
904         * regmove.c (discover_flags_reg, replacement_quality,
905         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
906         fixup_match_1): Likewise.
907         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
908         kill_set_value, copyprop_hardreg_forward_1): Likewise.
909         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
910         reload_inner_reg_of_subreg, can_reload_into, push_reload,
911         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
912         operands_match_p, decompose, find_reloads, find_reloads_toplev,
913         find_reloads_address, subst_indexed_address, find_reloads_address_1,
914         find_reloads_subreg_address, find_replacement,
915         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
916         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
917         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
918         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
919         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
920         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
921         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
922         do_output_reload, emit_reload_insns, gen_reload,
923         delete_address_reloads_1, inc_for_reload): Likewise.
924         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
925         update_reg_unused_notes, fill_slots_from_thread): Likewise.
926         * resource.c (update_live_status, mark_referenced_resources,
927         mark_set_resources, mark_target_live_regs): Likewise.
928         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
929         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
930         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
931         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
932         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
933         parms_set, find_first_parameter_load, keep_with_call_p,
934         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
935         num_sign_bit_copies1): Likewise.
936         * rtlhooks.c (gen_lowpart_general): Likewise.
937         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
938         sched_analyze): Likewise.
939         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
940         Likewise.
941         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
942         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
943         simplify_binary_operation, simplify_const_relational_operation,
944         simplify_subreg): Likewise.
945         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
946         expand_end_stmt_expr, expand_return, expand_decl,
947         expand_anon_union_decl): Likewise.
948         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
949         find_splittable_regs, find_splittable_givs, find_common_reg_term,
950         loop_iterations): Likewise.
951         * var-tracking.c (variable_union, variable_part_different_p,
952         variable_different_p, count_uses, add_uses, add_stores,
953         compute_bb_dataflow, set_variable_part, delete_variable_part,
954         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
955         Likewise.
956         * varasm.c (assemble_variable): Likewise.
958 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
960         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
961         definition.
962         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
963         #undef and #if 0'd definition.
965 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
967         * combine.c (distribute_notes): Comment typo fix.
969 2004-06-15  Roger Sayle  <roger@eyesopen.com>
971         * expmed.c (synth_mult): Mask bits of the multiplier to the
972         machine mode of the multiplication.  Don't consider shifts
973         by more than (or equal to) the width of the operation's mode.
975 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
977         * doc/install.texi: Yet another update for autoconf
978         and automake versions.
980 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
982         * function.h (struct function): Remove cannot_inline field.
983         (current_function_cannot_inline): Remove.
984         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
985         Simplify conditionals to ignore warn_return_type.
986         * tree-optimize.c (tree_rest_of_compilation): Do not reset
987         DECL_DEFER_OUTPUT.
988         * objc/objc-act.c (build_module_descriptor, finish_method_def):
989         Do not set current_function_cannot_inline.
991 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
993         * cfglayout.c (fixup_reorder_chain): Handle case where the
994         destination of E_TAKEN is EXIT_BLOCK_PTR.
996 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
998         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
1000 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1002         * fold-const.c (operand_equal_p): Update comment.
1004 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1006         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
1007         (INCOMING_RETURN_ADDR_RTX): Define.
1008         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
1009         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
1010         __builtin_return_address(0).
1011         (m32r_return_addr): Added for __builtin_return_address(0).
1012         (m32r_reload_lr): Ditto.
1014         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
1016 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1018         * doc/install.texi (Prerequisites): Update libbanshee,
1019         fastjar, libcpp, libjava/libltdl entries to
1020         automake 1.8.5.
1022 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
1023             Olivier Hainque  <hainque@act-europe.fr>
1025         * function.c (fixup_var_refs): Also adjust the start of sequence
1026         after fixing up the insns.
1028 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1030         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
1032 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
1034         * doc/install.texi (Prerequisites): Update libstdc++ entry to
1035         automake 1.8.5.
1037 2004-06-14  Eric Christopher  <echristo@redhat.com>
1039         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
1040         to -mtpf-trace (-mno-tpf-trace).
1041         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
1042         documentation.
1044 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1046         * real.c: Fix bit count in head comment.
1048 2004-06-14  Jeff Law  <law@redhat.com>
1050         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
1051         PHIs where the destination or an argument is marked with
1052         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1054 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1056         PR middle-end/15945
1057         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
1058         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
1060 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1062         * opts.sh (var_args): Fix regexp.
1064 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1066         PR target/15178
1067         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1069 2004-06-14  Paul Brook  <paul@codesourcery.com>
1071         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
1073 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1075         * Makefile.in (FLAGS_H): New.
1076         (flags.h): Replace by FLAGS_H.
1077         * c.opt: Document Var, VarExists, Init and Report attributes.
1078         * common.opt: Fill the values of the attributes.
1079         * diagnostic.c (flag_fatal_errors): Do not define.
1080         * except.c (flag_non_call_exceptions): Do not define.
1081         * flags.h: Include options.h.  Remove declarations conflicting with
1082         the automatically defined ones.
1083         * opts.c: Remove automatically defined variables.
1084         (handle_option): Perform default initialization.
1085         (common_handle_option): Do not handle options covered by the
1086         default initialization.
1087         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
1088         fields.
1089         (CL_REPORT): New.
1090         * opts.sh: Generate variable declarations, handle CL_REPORT.
1091         * toplev.c: Remove automatically defined variables.
1092         (f_options): Removed.
1093         (print_switch_values): Use cl_options instead of f_options.
1094         * toplev.h (version_flag): Declaration removed.
1096 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
1098         * config/sparc/sparc.h: Correct comment about availability of
1099         little endian option.
1101         * config.gcc: Remove sparc64-*-aout*.
1102         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
1103         * config/sparc/sp64-aout.h: Remove.
1104         * config/sparc/aout.h: Remove.
1106 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
1108         * config/s390/s390.c: Include "tree-gimple.h".
1109         (s390_gimplify_va_arg): New function.
1110         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1111         (s390_va_arg): Remove.
1112         * config/s390/s390-protos.h (s390_va_arg): Remove.
1113         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
1115 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
1117         * basic-block.h (could_fall_through): Declare.
1118         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
1119         Fail if the source already has a fallthrough edge to the exit
1120         block pointer.
1121         (could_fall_through): New function.
1122         * cfgbuild.c (make_edges): Check if we already have a fallthrough
1123         edge to the exit block pointer.
1124         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
1125         not called before reload has completed.
1126         Handle special case of first block having a fall-through exit edge.
1127         (cfg_layout_finalize): Don't call it before reload or if we have
1128         rtl epilogues.
1129         (fixup_reorder_chain): A fall through to the exit block does not
1130         require the block to come last.  Add sanity checks.
1131         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
1132         edges to the exit block.
1133         * function.c (cfglayout.h): #include.
1134         (thread_prologue_and_epilogue_insns): If we have neither return nor
1135         epilogue, but a fall through to the exit block from mid-function,
1136         force a non-fall-through exit.
1137         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1139 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
1141         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1142         for power5 and rs64a.  Correct condition for default.  Correct power3,
1143         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
1145 2004-06-13  Steven Bosscher <stevenb@suse.de>
1147         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1148         Revert previous change, don't use CALL_P.
1150 2004-06-13  Jason Merrill  <jason@redhat.com>
1152         * tree.h: Move std_gimplify_va_arg_expr protoype here.
1153         * tree-gimple.h: From here.
1155 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1157         Fix PR tree-optimization/15979
1158         Fix PR tree-optimization/15981
1159         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1160         try to insert values undefined along some path.
1162 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1164         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1165         are available everywhere too.
1167 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
1169         * fold-const.c (fold_checksum_tree <case 't'>): Only
1170         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1171         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1172         EXPR is an INTEGERAL_TYPE or a scalar float type.
1174 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
1176         * tree-sra.c (tree_sra): Update documentation.
1178 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
1180         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1181         function_types_compatible_p, type_lists_compatible_p): Remove
1182         flags parameter.
1183         * c-tree.h (comptypes): Likewise.
1184         (COMPARE_STRICT): Remove.
1185         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1186         callers changed.
1188 2004-06-13  Eric Christopher  <echristo@redhat.com>
1190         * c-decl.c (diagnose_mismatched_decls): Improve error message.
1191         Remove unused code.
1192         * c-typeck.c (comptypes): Add location in standard we're checking.
1194 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1196         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1197         version 3.3.4.
1199 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1201         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1202         index by machine mode.
1203         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1204         tables inside the loop over machine modes.
1205         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1206         expand_divmod): Index shift*_cost by the appropriate machine mode.
1208 2004-06-12  Eric Christopher  <echristo@redhat.com>
1210         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1211         * config/s390/s390.md: Ditto.
1212         * config/s390/s390.c: Ditto.
1213         (s390_frame_info): Conditionalize frame and setup info on
1214         TARGET_TPF_PROFILING.
1215         (s390_arg_frame_offset): Ditto.
1217 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1219         * fold-const.c (omit_two_operands): New function.
1220         * tree.h (omit_two_operands): Prototype here.
1221         * builtins.c (fold_builtin_unordered_cmp): New function to lower
1222         C99 unordered comparison builtins to the appropriate tree nodes.
1223         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1224         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1225         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
1226         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1227         (simplify_builtin_memcmp, simplify_builtin_strncmp,
1228         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1229         omit_two_operands function to build the required COMPOUND_EXPRs.
1231 2004-06-12  Steven Bosscher <stevenb@suse.de>,
1232             Andreas Jaeger  <aj@suse.de>
1234         * gcse.c (record_set_info): Use predicates like REG_P.
1235         (mems_conflict_for_gcse_p): Likewise.
1236         (load_killed_in_block_p): Likewise.
1237         (hash_expr_1): Likewise.
1238         (insert_set_in_table): Likewise.
1239         (gcse_constant_p): Likewise.
1240         (hash_scan_set): Likewise.
1241         (hash_scan_insn): Likewise.
1242         (canon_list_insert): Likewise.
1243         (record_last_mem_set_info): Likewise.
1244         (record_last_set_info): Likewise.
1245         (compute_hash_table_work): Likewise.
1246         (mark_set): Likewise.
1247         (mark_clobber): Likewise.
1248         (mark_oprs_set): Likewise.
1249         (compute_transp): Likewise.
1250         (find_avail_set): Likewise.
1251         (cprop_insn): Likewise.
1252         (do_local_cprop): Likewise.
1253         (cprop): Likewise.
1254         (find_implicit_sets): Likewise.
1255         (find_bypass_set): Likewise.
1256         (bypass_conditional_jumps): Likewise.
1257         (insert_insn_end_bb): Likewise.
1258         (pre_insert_copy_insn): Likewise.
1259         (compute_transpout): Likewise.
1260         (next_ls_expr): Likewise.
1261         (invalidate_any_buried_refs): Likewise.
1262         (compute_ld_motion_mems): Likewise.
1263         (reg_set_info): Likewise.
1264         (reg_clear_last_set): Likewise.
1265         (find_moveable_store): Likewise.
1266         (compute_store_table): Likewise.
1267         (find_loads): Likewise.
1268         (store_killed_in_insn): Likewise.
1269         (insert_insn_start_bb): Likewise.
1270         (reg_set_between_after_reload_p): Likewise.
1271         (reg_used_between_after_reload_p): Likewise.
1272         (is_jump_table_basic_block): Likewise.
1273         (gcse_after_reload): Likewise.
1274         (hash_scan_set_after_reload): Likewise.
1275         (compute_hash_table_after_reload): Likewise.
1277 2004-06-12  Steven Bosscher  <stevenb@suse.de>
1279         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1280         (INSN_P): Don't look at the rtx code class, just explicitly
1281         check for one of the tree RTX_INSN codes.
1283 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1285         * c-typeck.c (default_function_array_conversion): Use
1286         build_pointer_type not TYPE_POINTER_TO.
1288 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1290         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1291         * configure, config.in: Regenerate.
1292         * system.h: Unconditionally define bool as unsigned char,
1293         BOOL_BITFIELD as unsigned int.
1294         * domwalk.h: Use BOOL_BITFIELD.
1296 2004-06-12  Andreas Jaeger  <aj@suse.de>
1298         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1299         * libgcc-darwin.ver: Likewise.
1301 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
1303         * reload.c (find_reloads): Force reload for pseudo registers on big
1304         endian machines.
1306 2004-06-11  Steven Bosscher <stevenb@suse.de>
1308         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1309         Don't try to mark anything control dependent on the entry or
1310         exit blocks.
1312 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
1314         Fix Bug 15899
1315         Fix Bug 15460
1316         * tree.h (SSA_NAME_VALUE): New macro.
1317         (struct tree_ssa_name): Add value_handle member.
1318         * tree-ssa-pre.c: Replaced.
1319         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1320         (struct cst_ann_d): New.
1321         (struct expr_ann_d): New.
1322         (union tree_ann_d): Add cst_ann, expr_ann.
1323         * tree-dfa.c (create_cst_ann): New function.
1324         (create_expr_ann): Ditto.
1325         * tree-flow-inline.h (cst_ann): New function.
1326         (expr_ann): Ditto.
1327         (get_cst_ann): Ditto.
1328         (get_expr_ann): Ditto..
1330 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1332         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1333         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1334         _U_Qfcmp library function.
1335         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1336         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1338         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1339         unspec used for loading address from DLT.
1340         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1341         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1342         Don't use short code sequence when loading the address of a nonlocal
1343         label.
1344         (nonlocal_goto): New expander.
1345         (indirect_goto): New jump pattern for nonlocal gotos.
1346         (short_jump): Remove extra whitespace.
1347         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
1348         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1349         pattern.
1351 2004-06-11  Roger Sayle  <roger@eyesopen.com>
1353         * expmed.c (synth_mult): Add an additional MODE argument for the
1354         machine mode of the multiplication.  Update recursive calls.  Use
1355         mode instead of word_mode for determining operation costs.
1356         (choose_mult_variant): Update calls to synth_mult with "mode".
1358 2004-06-11  Richard Henderson  <rth@redhat.com>
1360         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1361         and makes_aliased_stores.
1363 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1365         * doc/install.text (--enable-shared): Fix typo.
1367 2004-06-11  Richard Henderson  <rth@redhat.com>
1369         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1370         argument.  Use internal post for call to gimplify_expr.  Tidy
1371         rounded type size computation.
1372         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1373         get_initialized_tmp_var.
1375 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1377         * doc/install.texi (--enable-shared): Update libobjc's shared library
1378         status.  Remove reference to libf2c.
1380 2004-06-11  Jason Merrill  <jason@redhat.com>
1382         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1383         * config/i386/i386.c (ix86_va_arg): Remove.
1384         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1385         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1386         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1387         * config/alpha/alpha.c (alpha_va_arg): Remove.
1388         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1389         * config/sparc/sparc.c (sparc_va_arg): Remove.
1391         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1392         assignment might throw.
1393         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1394         expressions.
1396 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
1398         PR 15886:
1399         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1401 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1403         * doc/install.texi (Prerequisites): Update documentation of
1404         required versions of autoconf and automake.  Remove mention of
1405         libf2c.
1407 2004-06-11  Jason Merrill  <jason@redhat.com>
1409         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1410         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1412 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
1414         * typeclass.h: Add GPL plus exception license.  Add include
1415         guard.
1417 2004-06-10  Jason Merrill  <jason@redhat.com>
1419         * gimplify.c (gimplify_modify_expr): Don't force a temporary
1420         of an aggregate_value_p type.
1422 2004-06-10  Jeff Law  <law@redhat.com>
1424         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1425         code when we are in gimple form.
1427 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
1429         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1430         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1431         (highest_ssa_version): Remove.
1432         * tree-outof-ssa.c (new_temp_expr_table): Replace
1433         highest_ssa_version with num_ssa_names.
1434         (dump_replaceable_exprs): Likewise.
1435         (rewrite_vars_out_of_ssa): Likewise.
1436         * tree-ssa-ccp.c (initialize): Likewise
1437         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1438         * tree-ssa-dce.c (tree_dce_init): Likewise.
1439         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1440         * tree-ssa-live.c (create_ssa_var_map): Likewise.
1441         (dump_var_map): Likewise.
1442         * tree-ssa.c (verify_ssa): Likewise.
1443         (kill_redundant_phi_nodes): Likewise.
1444         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
1445         * tree-ssanames.c: Include tree-flow.h
1446         (ssa_names): New varray.
1447         (init_ssa_names): Initialize ssa_names.
1448         Reserve the first slot of the ssa_names table.
1449         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1450         Assign version numbers using num_ssa_names.
1452 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1454         * doc/sourcebuild.texi (Front End): Add details of more
1455         installation documentation required.
1457 2004-06-10  Brian Booth  <bbooth@redhat.com>
1459         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1460         of V_MAY_DEF and V_MUST_DEF.
1461         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1462         num_vdefs to num_v_may_defs.
1463         (compute_immediate_uses_for_stmt): Rename occurences of vdef
1464         to v_may_def.
1465         (redirect_immediate_uses): Ditto.
1466         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1467         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1468         Also add code to sum up the number of v_must_defs.
1469         (vdefs_disappeared_p): Replace with...
1470         (v_may_defs_disappeared_p): This.
1471         (v_must_defs_disappeared_p): New function.
1472         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1473         Also add code to mark new variables found in V_MUST_DEFs for
1474         renameing.
1475         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1476         vdef_ops to v_may_def_ops.
1477         (get_vdef_ops): Replace with...
1478         (get_v_may_def_ops): This.
1479         * tree-flow-inline.h (get_vdef_ops): Replace with...
1480         (get_v_may_def_ops): This.
1481         (get_v_must_def_ops): New function.
1482         (get_vdef_result_ptr): Replace with...
1483         (get_v_may_def_result_ptr): This.
1484         (get_vdef_op_ptr): Ditto with...
1485         (get_v_may_def_op_ptr); This.
1486         (get_v_must_def_op_ptr): New function.
1487         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1488         to v_may_def. Also add code to mark statements with
1489         V_MUST_DEFs as definition sites.
1490         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1491         add code to register new V_MUST_DEFs made by the statement.
1492         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1493         (check_replaceable): Rename occurences of vdef to v_may_def. Also
1494         add check for V_MUST_DEFs.
1495         (find_replaceable_in_bb): Ditto.
1496         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1497         to v_may_def. Also add code to dump V_MUST_DEFs.
1498         * tree-sra.c (mark_all_vdefs): Replace with...
1499         (mark_all_v_may_defs): This.
1500         (mark_all_v_must_defs): New function.
1501         (create_scalar_copies): Replace call to mark_all_vdefs with
1502         calls to mark_all_v_may_defs and mark_all_v_must_defs.
1503         (scalarize_structures): Rename occurences of vdef to v_may_def.
1504         Also add a check for V_MUST_DEFs.
1505         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1506         * tree-ssa-alias.c (global_var): Update comment.
1507         (compute_may_aliases): Ditto.
1508         (compute_points_to_and_addr_escape): Rename occurences of vdef
1509         to v_may_def. Also add code to mark variables in V_MUST_DEF
1510         operands as being written to.
1511         (group_aliases): Update comment.
1512         (maybe_create_global_var): Ditto.
1513         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1514         Also add a check for V_MUST_DEFs on GIMPLE registers.
1515         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1516         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1517         to v_may_def. Also add code to mark all V_MUST_DEF operands
1518         VARYING.
1519         (initialize): Ditto.
1520         (set_rhs): Rename occurences of vdef to v_may_def. Also add
1521         code to update SSA_NAMEs in V_MUST_DEFs.
1522         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1523         to v_may_def.
1524         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1525         occurences of vdef to v_may_def. Also add code to mark statements
1526         with V_MUST_DEFs as necessary.
1527         (propagate_necessity): Rename occurences of vdef to v_may_def.
1528         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1529         occurences of vdef to v_may_def. Also add code to mark operands
1530         in V_MUST_DEFs for renaming.
1531         (eliminate_redundant_computations): Rename occurences of vdef
1532         to v_may_def.
1533         (record_equivalences_from_stmt): Rename occurences of vdef
1534         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1535         (optimize_stmt): Remove unnesessary variable vdefs. Update
1536         comment.
1537         (register_definitions_for_stmt): Rename occurences of vdef
1538         to v_may_def. Also add code to register definitions made with
1539         V_MUST_DEFs.
1540         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1541         (fix_stmt_v_may_defs): This.
1542         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1543         (dse_optimize_stmt): Ditto.
1544         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1545         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1546         used in virtual operators.
1547         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1548         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1549         renaming.
1550         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1551         definitions.
1552         (build_vdefs): Renamed to...
1553         (build_v_may_defs): This.
1554         (build_v_must_defs): New variable.
1555         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1556         v_may_def_ops.
1557         (append_vdef): Replace with...
1558         (append_v_may_def): This.
1559         (append_v_must_def): New function.
1560         (NUM_FREE): Increment for V_MUST_DEF
1561         (optype_freelist): Increment its size for V_MUST_DEF
1562         (allocate_vdef_optype): Replace with...
1563         (allocate_v_may_def_optype): This.
1564         (allocate_v_must_def_optype): New function.
1565         (free_vdefs): Replace with...
1566         (free_v_may_defs): This.
1567         (free_v_must_defs): New function.
1568         (remove_vdefs): Replace with...
1569         (remove_v_may_defs): This.
1570         (remove_v_must_defs): New function.
1571         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1572         add code to initialize build_v_must_defs.
1573         (finalize_ssa_vdefs): Replace with...
1574         (finalize_ssa_v_may_defs): This.
1575         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1576         (finalize_ssa_v_must_defs): New function.
1577         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1578         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1579         (verify_start_operands): Rename occurences of vdef to v_may_def.
1580         Also add check for build_v_must_defs.
1581         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1582         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1583         killing definitions.
1584         (get_expr_operands): Update comment and use opf_kill_def for
1585         killing definitions.
1586         (add_stmt_operand): Replace code that appends VDEFs with code
1587         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1588         otherwise.
1589         (add_call_clobber_ops): Update comments.
1590         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1591         (v_may_def_optype_d): This.
1592         (v_must_def_optype_d): New structure.
1593         (VDEF_OPS): Replace with...
1594         (V_MAY_DEF_OPS): This.
1595         (STMT_VDEF_OPS): Same with...
1596         (STMT_V_MAY_DEF_OPS): This.
1597         (NUM_VDEFS): And...
1598         (NUM_V_MAY_DEFS): This.
1599         (VDEF_RESULT_PTR): As well as...
1600         (V_MAY_DEF_RESULT_PTR): This.
1601         (VDEF_RESULT): Same goes for...
1602         (V_MAY_DEF_RESULT): This.
1603         (VDEF_OP_PTR): And...
1604         (V_MAY_DEF_OP_PTR): This.
1605         (VDEF_OP): And...
1606         (V_MAY_DEF_OP): This.
1607         (V_MUST_DEF_OPS): New macro.
1608         (STMT_V_MUST_DEF_OPS): Ditto.
1609         (NUM_V_MUST_DEFS): Ditto.
1610         (V_MUST_DEF_OP_PTR): Ditto.
1611         (V_MUST_DEF_OP): Ditto.
1612         (remove_vdefs): Replace signature with...
1613         (remove_v_may_defs): This.
1614         (remove_v_must_defs): New function signature.
1615         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1616         with calls to remove_v_may_defs and remove_v_must_defs.
1617         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1618         Also add code that marks left occurences of operands in V_MUST_DEFs.
1619         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1620         to v_may_def. Also add check for V_MUST_DEFs.
1621         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1623 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1625         PR target/15653
1626         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1627         insn.
1629 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1631         PR web/15263
1632         * doc/install.texi: Remove superfluous linebreak.
1634 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1636         * builtins.c (expand_builtin): Fall back to library function call for
1637         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1638         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1639         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1640         IMAGPART_EXPR respectively.
1642 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1644         * sh.c (dump_table): New argument start.  Changed caller.
1645         (fixup_mova): New function.
1646         (find_barrier): Use it.
1647         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1648         If the label a mova refers to is above the mova itself, change
1649         the mova into a load.
1650         * sh.md (*casesi_worker): Rename to:
1651         (casesi_worker_1).
1652         (casesi_worker_2): New insn.
1654 2004-06-10  Jason Merrill  <jason@redhat.com>
1656         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1657         hook signature.
1658         * tree-gimple.h: Adjust.
1659         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1660         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1661         Use fold_convert.
1662         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1663         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1664         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1665         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1666         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1667         Gimplify valist rather than calling stabilize_va_list.
1669 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1671         * Makefile.in (df.o): Remove fibheap dependency.
1672         * df.h: Do not include sbitmap.h.
1673         (struct ref): New field "data".
1674         (DF_REF_DATA): New accessor macro.
1675         (struct df): Field "dom" removed.
1676         (df_analyze_subcfg): New function.
1677         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1678         (transfer_function): ... new type.
1679         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1680         (iterative_dataflow): ... new function.
1681         (enum set_representation, struct dataflow): New.
1682         * df.c: Do not include fibheap.h.
1684         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1685         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1686         prune_to_subcfg, df_bb_modify): New functions.
1687         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1688         df_refs_update, df_reg_table_realloc, df_ref_create,
1689         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1690         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1691         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1693         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1694         (df_rd_transfer_function, df_ru_transfer_function,
1695         df_lr_transfer_function): Type of bitmaps changed to void *.
1696         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1697         (hybrid_search): ... new function.
1698         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1699         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1700         a worklist.  Do not process basic blocks unnecessarily.
1702 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1704         * fold-const.c (fold_abs_const): Make extern.
1705         * tree.h (fold_abs_const): Prototype here.
1706         * builtins.c (fold_builtin_fabs): New function to transform
1707         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1708         (fold_builtin_abs): New function to transform abs, labs, llabs
1709         and imaxabs builtins into ABS_EXPR tree nodes.
1710         (expand_builtin): Fall back to a function call for abs, labs,
1711         llabs and imaxabs builtins that survive constant folding.
1712         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1713         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1715 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1717         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1718         leaf function without unwind info at RP 0.
1720 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1722         PR c++/14791
1723         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1724         (fileptr_type_node): Define.
1725         * tree.c (build_common_tree_nodes_2): Initialize
1726         fileptr_type_node to ptr_type_node.
1727         * c-common.c (c_common_nodes_and_builtins): For C++, make
1728         fileptr_type_node a distinct type copy.
1729         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1730         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1731         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1732         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1733         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1734         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1735         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1736         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1737         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1738         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1739         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1740         the above *FILEPTR* types instead of *PTR*.
1742 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1744         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1745         match.
1747 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1749         * fold-const.c (fold_not_const): New function.
1750         (fold) <ABS_EXPR>: Don't bother testing wins.
1751         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1752         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1754 2004-06-09  Richard Henderson  <rth@redhat.com>
1756         PR middle-end/15228
1757         * function.c (assign_parms): Always set_mem_align with the computed
1758         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1760 2004-06-09  Richard Henderson  <rth@redhat.com>
1762         PR opt/15108
1763         * tree-tailcall.c (find_tail_calls): Don't check early for
1764         tail_recursion failure.
1766 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1768         Move SSA_NAME annotations into tree_ssa_name.
1770         * tree-dfa.c (create_ssa_name_ann): Remove.
1771         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1772         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1773         (struct ssa_name_ann_d): Remove.
1774         (union tree_ann_d): Update.
1775         (ssa_name_ann_t): Remove.
1776         * tree-ssa-alias.c: (get_ptr_info): New local function.
1777         Replace references to ssa_name_ann_t with struct ptr_info_def.
1778         * tree-ssa-operands.c (get_expr_operands): Likewise.
1779         * tree.h (SSA_NAME_PTR_INFO): Define.
1780         (struct ptr_info_def): Declare.
1781         (struct tree_ssa_name): Add field 'ptr_info'.
1783 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1785         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1786         misplaced ')'.
1788 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1790         * config/i386/k6.md: Rewrite using the DFA model.
1791         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1792         cost of load-operation insns for the K6.
1793         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1794         (ia32_multipass_dfa_lookahead): Likewise.
1796 2004-06-09  Richard Henderson  <rth@redhat.com>
1798         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1799         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1801 2004-06-09  Richard Henderson  <rth@redhat.com>
1803         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1805 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1807         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1808         (CPP_ID_DATA_H): New.
1809         (gtype-desc.o): Update dependencies.
1810         (GTFILES): Use CPP_ID_DATA_H.
1812 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1814         Revert:
1815         PR c++/15815
1816         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1817         * doc/extend.texi: Deprecate #pragma interface and #pragma
1818         implementation.
1820 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1822         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1824 2004-06-09  Richard Henderson  <rth@redhat.com>
1826         * basic-block.h (struct edge_def): Add goto_locus.
1827         * tree-cfg.c (make_goto_expr_edges): Set it.
1828         (disband_implicit_edges): Use it.
1829         * tree-pretty-print.c (dump_implicit_edges): Print it.
1831 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1833         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1835 2004-06-08  Jason Merrill  <jason@redhat.com>
1837         Gimplify VA_ARG_EXPR into simpler forms.
1838         * target.h: Add gimplify_va_arg_expr hook.
1839         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1840         * fold-const.c (build_fold_addr_expr)
1841         (build_fold_addr_expr_with_type): Move from gimplify.c.
1842         * tree.h: Declare them.
1843         * gimplify.c (gimplify_and_add): New fn.
1844         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1845         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1846         (gimplify_expr): Use build_fold_*.
1847         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1848         don't know how to gimplify it.
1849         * builtins.c (std_gimplify_va_arg_expr): New fn.
1850         (dummy_object): New static fn.
1851         (gimplify_va_arg_expr): New fn.
1852         (stabilize_va_list): Use build_fold_*.
1853         * tree-gimple.h: Declare new fns.
1854         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1855         (ix86_gimplify_va_arg): New fn.
1856         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1857         (ia64_gimplify_va_arg): New fn.
1858         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1859         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1860         * alias.c (get_varargs_alias_set): Just return 0 for now.
1862         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1864 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1866         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1867         of convert.
1868         * tree-inline.c (setup_one_parameter): Likewise.
1869         * tree-sra.c (csc_build_component_ref): Likewise.
1870         * tree-ssa-ccp.c (ccp_fold): Likewise.
1871         * tree-ssa-copy.c (cprop_operand): Likewise.
1872         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1873         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1875 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1877         PR rtl-optimization/15521:
1878         * sched-int.h (in_post_call_group_p): Change type to enum.
1879         * sched-deps.c (sched_analyze_insn):
1880         (sched_analyze): When in_post_call_group_p is post_call_initial,
1881         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1882         and also reset in_post_call_group_p to post_call.
1883         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1884         initialize in_post_call_group_p as post_call_initial.
1885         (init_deps): initialize in_post_call_group_p to not_post_call.
1887 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1889         PR ada/6637
1890         * doc/install.texi: List ada, libada as options to --enable-shared
1892 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1894         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1895         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1896         config.in entries.
1897         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1898         if hard links are not available.
1899         * configure: Regenerate.
1900         * config.in: Regenerate.
1902 2004-06-08  Per Bothner  <per@bothner.com>
1904         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1906 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1908         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1909         Correct formatting.
1911 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1913         PR target/15790
1914         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1916 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1918         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1919         POINTER_TYPE and INTEGER_TYPE.
1921 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
1923         * modulo-sched.c: Compile only when INSN_SCHEDULING is
1924         defined.
1926 2004-06-08  Jeff Law  <law@redhat.com>
1928         * doc/contrib.texi: Add entries for Stefan Olsson and
1929         Ola Ronnerup.
1931 2004-06-08  DJ Delorie  <dj@redhat.com>
1933         * toplev.c (floor_log2_wide): Replace loop with faster bit
1934         operations.
1935         (exact_log2_wide): Define in terms of the above.
1936         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1937         available.
1939 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1941         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1942         Make sure that we are in INDIRECT mode when getting the
1943         stub name.
1945 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1947         * h8300.md (extendqisi2_h8300): Add constraints.
1948         (ldm_h8300s_4_normal): Fix typo.
1950 2004-06-08  Richard Henderson  <rth@redhat.com>
1952         * gimple-low.c (struct lower_data): Replace the_return_label and
1953         one_return_stmt with return_statements.
1954         (lower_function_body): Process the entire list of return_statements.
1955         (lower_return_expr): Check source value before unifying return_exprs.
1956         * gimplify.c (gimplify_return_expr): Force the use of a temporary
1957         for !aggregate_value_p.
1958         * tree-gimple.c: Update RETURN_EXPR grammer.
1960 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1962         PR target/15598
1963         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1965 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1967         PR rtl-optimization/15717
1968         * config/i386/i386.c (legitimate_constant_p): Do not allow
1969         x - symbol_ref.
1971 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
1973         * gimplify.c (copy_if_shared_r): Revert:
1974         2004-05-21  Richard Henderson  <rth@redhat.com>
1975         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1977 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1979         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1980         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
1981         (init_expmed): Initialize these cost arrays as appropriate.
1982         (store_bit_field, extract_bit_field): Correct whitespace.
1983         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1984         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1985         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1986         word_mode or compute_mode as appropriate.
1988 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1990         PR target/15783
1991         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1992         parameter.  Enumerate the registers inside the PARALLEL.
1993         (function_arg): Adjust call to function_arg_union_value.
1994         (function_value): Likewise.
1996         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1998 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2000         * real.c (real_copysign): New function to implement libm's copysign.
2001         * real.h (real_copysign): Prototype here.
2002         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
2003         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
2004         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
2005         fold_builtin_isdigit): Add function prototypes.
2006         (fold_builtin_copysign): New function to fold copysign, copysignf
2007         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
2008         constant arguments at compile-time using real_copysign.  Fold
2009         copysign(X,Y) as fabs(X) if Y is always non-negative.
2010         (fold_builtin_1): Correct minor whitespace/style issues.  Call
2011         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
2013 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
2015         * tree.c (iterative_hash_expr): Use real_hash.
2017 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
2019         PR c/14765
2020         * c-parse.in (compstmt_primary_start): Set last_expr_type to
2021         NULL_TREE.
2023 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2025         PR c++/15815
2026         * doc/extend.texi: Deprecate #pragma interface and #pragma
2027         implementation.
2029 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
2031         PR middle-end/15666
2032         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
2033         builtin decl as well.
2035 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2037         PR c/14649
2038         * c-typeck.c (require_constant_value, require_constant_elements):
2039         Move declarations to the top of the file.
2040         (build_function_call): If we require a constant value, fold with
2041         fold_initializer.  If the result is a constant, and the function
2042         wasn't called using __builtin_foo, issue a pedantic warning.
2043         (build_unary_op): If we require a constant value, fold tree with
2044         fold_initializer.
2045         (build_binary_op): Use require_constant_value to determine whether
2046         to call fold or fold_initializer.
2048 2004-06-07  Richard Henderson  <rth@redhat.com>
2050         * gimple-low.c (struct lower_data): Add the_return_label and
2051         one_return_stmt.
2052         (lower_function_body): Initialize and use them.
2053         (lower_return_expr): New.
2054         (lower_stmt): Call it.
2055         * gimplify.c (gimplify_return_expr): Force the argument to be either
2056         null or a result_decl.
2057         * tree-gimple.c: Update gimple grammer to match.
2058         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
2059         coalescing of result_decls.
2061 2004-06-07  Richard Henderson  <rth@redhat.com>
2063         PR rtl-opt/15193
2064         * expmed.c (extract_bit_field): Fix vector_extract return.
2066         * config/i386/i386.md (negv4sf2): New pattern.
2068 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2070         PR c++/15337
2071         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
2072         message.
2074 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
2076         * config.in: Regenerate.
2078 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2080         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
2081         SWITCH_LABELS are always sorted.
2083 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2085         * hooks.c (hook_int_void_1): New generic hook.
2086         * hooks.h (hook_int_void_1): Add prototype.
2087         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2088         Define to hook_int_void_1.
2089         * config/c4x/c4x.md: Replace dummies for the old pipeline model
2090         with dummies for the new one.
2092 2004-06-06  Roger Sayle  <roger@eyesopen.com>
2094         * tree.h (lvalue_or_else): Delete function prototype.
2095         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
2097 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2099         PR target/14542
2100         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
2101         a live change of a register after peephole replacement.
2103 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
2105         PR c/13519
2106         * c-typeck.c (composite_type, common_pointer_type): New functions.
2107         (common_type): Split parts into composite_type and
2108         common_pointer_type.  Ensure that arithmetic operations return
2109         unqualified types without attributes.  Don't make composite type
2110         of signed enum and compatible integer be unsigned.
2111         (build_conditional_expr, build_binary_op): Use
2112         common_pointer_type.
2113         * c-decl.c (merge_decls): Use composite_type.
2114         * c-tree.h (composite_type): Declare.
2116 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2118         PR target/14457
2119         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
2120         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
2121         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
2122         (inhibit_libc): Must define.
2123         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
2124         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
2125         ("xorhi3"): Likewise.
2127 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2129         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
2130         always_inline pass.
2132 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
2134         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
2135         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2137 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
2139         * regclass.c (init_reg_sets): Check for missing registers in target
2140         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2142 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
2144         * Makefile.in (MKDEPS_H): New shorthand.
2145         (c-opts.o): Update dependencies.
2146         * c-opts.c: Include mkdeps.h.
2147         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2148         not cpp_add_dependency_target.
2150 2004-06-05  Steven Bosscher  <stevenb@suse.de>
2152         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2153         * config/v850/v850.md: Convert to DFA scheduler description.
2155 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2157         PR fortran/15478
2158         * doc/install.texi: Document GMP as prerequisite. Document
2159         --with-gmp and --with-gmp-dir configure options.
2160         * fortran/gfortran.texi: Remove section "Compiling and testing",
2161         remove TOC reference to it.
2163 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
2165         * combine.c(simplify_shift_const): Check shift amount is a
2166         CONST_INT.
2168 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
2170         * toplev.c (init_asm_output): Add explicit 'b' to mode when
2171         opening asm_out_file.
2172         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2173         reading asm_out_file. Replace fflush after reading asm_out_file
2174         with fseek.
2175         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
2176         default and add to HOST_HOOKS_INITIALIZER.
2177         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2178         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
2179         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
2180         to set mmi.offset padding.
2181          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2182         $(srcdir)/config/i386/winnt.c.
2183         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2184         (i[34567]86-*-uwin*): Likewise.
2185         *i[34567]86-*-interix3*): Likewise.
2186         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2187         * config/i386/host-mingw32.c: New file.
2188         * config/i386/x-mingw32: Add rule for host-mingw32.o.
2189         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2190         (extern_head): Likewise.
2191         (struct export_list) Likewise.
2192         (export_head): Likewise.
2193         (i386_pe_record_external_function): Use ggc_alloc.
2194         (i386_pe_record_exported_symbol): Likewise.
2195         Include "gt-winnt.h" at end.
2196         * doc/hostconfig.texi: Document
2197         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2199 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
2201         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2202         Rename 68000 and 68k to m68k for consistency in comments.  Remove
2203         trailing whitespace before EOLs and before TABs.
2204         (MAX_CODE_ALIGN): Remove unused macro.
2205         (CALL_USED_REGISTERS): Reformat and add comments.
2207 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
2209         * gcc.c (MFLIB_SPEC): Remove library references, to require users
2210         to enumerate -lmudflap* and dependencies when linking.
2212 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
2214         PR target/15822
2215         * dojump.c (do_jump): Fix uninitialized variable tcode1.
2217 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
2219         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2220         * genconditions.c (write_header): Back out removal of reload.h.
2222 2004-06-04  Jan Hubicka  <jh@suse.cz>
2224         Re-apply hopefully fixed patch:
2225         * i386.md (UNSPECV_EH_RETURN): Kill.
2226         (eh_return): Use jump_insn.
2227         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2229 2004-06-04  Jeff Law  <law@redhat.com>
2231         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2233 2004-06-04  Steven Bosscher  <stevenb@suse.de>
2235         * except.c (for_each_eh_region): New function.
2236         * except.h (for_each_eh_region): Add a prototype for it.
2237         * tree-cfg.c (update_eh_labels): New function, callback for
2238         for_each_eh_region.
2239         (label_for_bb): Make global static, unfortunately.
2240         (cleanup_dead_labels): Also update label references for
2241         exception regions.
2243 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
2245         * config/mips/mips.c (struct irix_section_align_entry): Fix
2246         GTY marker.
2248 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
2250         * toplev.c (check_global_declarations): Don't ask for
2251         DECL_ASSEMBLER_NAME unless the function really is declared
2252         static and not defined.
2254 2004-06-03  Matt Austern  <austern@apple.com>
2256         PR c++/15428
2257         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2258         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2259         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2260         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2261         documentation to reflect the new macro name and to clarify its
2262         meaning.
2264 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2266         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2268 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
2270         * config/darwin.c (machopic_indirect_data_reference): Copy
2271         the SYMBOL_REF_DECL from the original RTX for the new
2272         non-lazy pointer RTX.
2274 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
2276         * tree.h: Remove include of version.h
2277         * c-cppbuiltin.c: Include version.h
2278         * diagnostic.c: Include version.h
2279         * dwarf2out.c: Include version.h
2280         * toplev.c: Include version.h
2281         * vmsdbgout.c: Include version.h
2282         * Makefile.in: Remove dependency on version.h from TREE_H, and
2283         add dependencies to required .o targets
2285 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
2287         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2288         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2289         (TARGET_H): Add insn-modes.h.
2290         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2291         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2292         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2293         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2294         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2295         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2296         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2297         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2298         CFGLAYOUT_H.
2299         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2300         Replace ra.h with RA_H.
2301         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2302         insn-recog.o): Replace resource.h with RESOURCE_H.
2303         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2304         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
2305         with SCHED_INT_H.
2306         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2307         ra-rewrite.o): Replace df.h with DF_H.
2308         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2309         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2310         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2311         (insn-conditions.o): Remove unused reload.h.
2312         * cfglayout.h: Add include guard.  Include basic-block.h.
2313         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
2314         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2315         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
2316         basic-block.h.
2317         * genconditions.c:  Remove reload.h.
2318         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
2319         hard-reg-set.h, insn-modes.h.
2320         * resource.h: Add include guard.  Include hard-reg-set.h.
2321         * sched-int.h:  Add include guard.  Include insn-attr.h,
2322         basic-block.h, rtl.h.
2323         * target.h: Add include guard.  Include insn-modes.h.
2324         * tree-ssa-live.h: Include partition.h.
2326 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
2327                 Kenneth Zadeck <zadeck@naturalbridge.com>
2329         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2330         (add_var_to_ssa_edges_worklist): Add value argument.
2331         Update callers.
2332         Use new worklist.
2333         (process_ssa_edge_worklist): New function.
2334         (tree_ssa_ccp): Move worklist processing core to
2335         process_ssa_edge_worklist, and just call that for the two worklists.
2337 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2339         * basic-block.c (tail_recursion_label_list): Don't declare.
2340         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
2341         accordingly.
2342         * cfgbuild.c (find_label_refs): Remove.
2343         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2344         * cfgcleanup.c (tail_recursion_label_p): Remove.
2345         (merge_blocks_move): Do not check for tail recursion.
2346         (try_optimize_cfg): Likewise.
2347         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2348         * cfgrtl.c (tail_recursion_label_list): Remove.
2349         * except.c (remove_unreachable_regions): Don't handle
2350         CALL_PLACEHOLDER insns.
2351         (convert_from_eh_region_ranges_1, can_throw_internal,
2352         can_throw_external): Likewise.
2353         * function.c (free_after_compilation): Don't clear
2354         x_tail_recursion_label.
2355         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2356         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2357         (reorder_blocks_1): Likewise.
2358         * function.h (struct function): Remove x_tail_recursion_label
2359         member.  Don't define tail_recursion_label.
2360         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2361         * print-rtl.c (print_rtx): Likewise.
2362         * rtl.def (CALL_PLACEHOLDER): Remove.
2363         * rtl.h (sibcall_use_t): Remove enum.
2364         (optimize_sibling_and_tail_recursive_calls,
2365         replace_call_placeholder): Remove function prototypes.
2366         * stmt.c (tail_recursion_args): Remove.
2367         (optimize_tail_recursion): Remove.
2368         (expand_return): Don't check for possible tail recursion.
2369         * tree.h (optimize_tail_recursion): Remove prototype.
2371 2004-06-02  Jan Hubicka  <jh@suse.cz>
2373         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
2374         return_stmt.
2376 2004-06-02  Jason Merrill  <jason@redhat.com>
2378         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2379         Do include c-parse.in.
2381 2004-06-02  Eric Christopher  <echristo@redhat.com>
2383         * c-typeck.c (common_type): Don't lose type qualifiers
2384         when creating new variants.
2386 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
2388         PR tree-optimization/14042
2389         PR tree-optimization/14729
2390         PR tree-optimization/14736
2391         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2392         Check the type which the pointer points to
2393         instead of the pointer types.
2395 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2397         PR tree-optimization/15738.
2398         * builtins.c (fold_builtin_strchr): Transform
2399         strrchr (s, '\0') to strchr (s, '\0').
2401 2004-06-02  Steven Bosscher  <stevenb@suse.de>
2403         * i386.c (ix86_adjust_cost): Don't increase the cost for
2404         load+operation for PROCESSOR_PENTIUMPRO, it is already
2405         modelled in the DFA description
2407 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
2409         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2410         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2411         (ALIAS_H, EMIT_RTL_H): New.
2412         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2413         (cfgcleanup.o): Add EMIT_RTL_H.
2414         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2415         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2416         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2417         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2418         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
2419         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2420         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2421         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2422         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2423         set_mem_size): Move to emit-rtl.h.
2424         * emit-rtl.h: New.
2425         * alias.h: New.
2427 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
2429         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2430         Call fixup_memory_subreg only if the MEM is equal to 'var'.
2431         Adjust recursive calls to self.
2432         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2434 2004-06-01  Richard Henderson  <rth@redhat.com>
2435             Andrew Pinski  <pinskia@physics.uc.edu>
2437         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2438         (primary): Handle offsetof.  Add error productions for faux functions.
2439         Move component_ref objc checking to build_component_ref.
2440         (reswords): Add offsetof.
2441         (rid_to_yy): Add offsetof.
2442         * c-tree.h (build_offsetof): Declare.
2443         * c-common.h (objc_is_public): Declare.
2444         * c-typeck.c (build_component_ref): Check objc_is_public.
2445         (build_offsetof): New.
2446         * stub-objc.c (objc_is_public): New.
2447         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2448         from is_public.
2449         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2450         * doc/extend.texi (Offsetof): Move from C++ section to C section
2451         and rewrite for __builtin_offsetof.
2453 2004-06-01  Peter Barada  <peter@the-baradas.com>
2454             Peter Jakubek  <peter@laseranimation.com>
2456         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
2457         a scratch to perform an add to memory.
2459 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2461         PR target/14018
2462         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2463         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2464         m68k_align_funcs): Remove.
2465         (override_options): Remove code to handle -malign-* options.
2466         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2467         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2468         (m68k_align_loops_string, m68k_align_jumps_string,
2469         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2470         m68k_align_funcs): Remove definitions.
2472 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
2474         PR target/15626
2475         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2476         by the Sun linker in conjunction with the Sun assembler.
2477         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2479 2004-06-01  Jeff Law  <law@redhat.com>
2481         * stmt.c (expand_decl): Be more selective about calling
2482         mark_reg_pointer.
2484 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
2486         PR objc/7993
2487         * objc-act.c (is_private): Do not emit the 'instance variable %s
2488         is declared private' error.
2489         (is_public): Emit the error after calling is_private.
2490         (lookup_objc_ivar): If the instance variable is private, return 0
2491         - the instance variable is invisible here.
2493 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2495         * doc/invoke.texi (-static-libgcc): Explicitly mention
2496         non-GNU linkers.
2498 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2500         PR target/12968
2501         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2503 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2505         PR c/15749
2506         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2507         misuses of structures with flexible array members if
2508         in_system_header.
2510 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2512         PR target/15693
2513         * config/sparc/sparc.c (compare_operand): New predicate.
2514         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2515         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
2516         operand is a ZERO_EXTRACT and the second operand is not zero,
2517         force the former to a register.
2518         (cmpdi expander): Likewise.
2520 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
2522         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2523         looks at.
2524         * alias.c (alias_invariant_size): Make alias_invariant_size
2525         static, fix GTY marker.
2527 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2529         PR tree-optimization/15743.
2530         * builtins.c (fold_builtin_1): Fold index() and rindex().
2532 2004-05-31  Roger Sayle  <roger@eyesopen.com>
2534         PR middle-end/15069
2535         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2536         into "X < 0" (where C is the signbit) if X's type is a full mode.
2538 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2540         * pa.md: Disable the peephole2 patterns that generate indexed
2541         floating-point stores when indexing is disabled.
2543 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2545         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2546         (pp_c_right_bracket): Likewise.
2547         (pp_c_star): Likewise.
2548         (pp_c_ampersand): Define.
2549         * c-pretty-print.h (pp_c_left_bracket): Declare.
2550         (pp_c_right_bracket): Likewise.
2551         (pp_c_star): Likewise.
2552         (pp_c_ampersand): Likewise.
2554 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2556         * config/sol2.h (__enable_execute_stack): ANSIfy function
2557         definition.
2559 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2561         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2562         HAVE_DOS_BASED_FILESYSTEM.
2564 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2566         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2567         Only look at case labels if the immediate dominator is also
2568         the only predecessor.  Don't look for more case labels if the
2569         first seen is a case range.
2571 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2573         * builtins.c: Add a prototype for fold_builtin_strchr().
2575 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2577         Revert this patch:
2578         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2580         * combine.c (gen_binary): Remove.
2581         (known_cond, simplify_shift_const
2582         find_split_point, combine_simplify_rtx,
2583         simplify_if_then_else, simplify_set,
2584         simplify_logical, expand_field_assignment,
2585         extract_left_shift, force_to_mode,
2586         if_then_else_cond, apply_distributive_law,
2587         simplify_and_const_int, simplify_shift_const,
2588         gen_lowpart_for_combine, simplify_comparison,
2589         reversed_comparison): Replace with
2590         simplify_gen_binary, simplify_gen_relational or
2591         distribute_and_simplify_rtx.
2592         (distribute_and_simplify_rtx): New function.
2594 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2596         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2597         when generating PIC code.
2599 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2601         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2602         (c_expand_body): here.
2603         (c_expand_decl): Move to ...
2604         * c-common.c (c_expand_decl): Here and remove check for nested
2605         functions.
2606         * c-common.h (c_expand_decl): Add prototype.
2607         * c-tree.h (c_expand_decl): Remove.
2609 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2611         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2612         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2613         fold_mathfn_compare, fold_inf_compare, fold,
2614         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2615         Use constant_boolean_node where appropriate.  Don't bother using
2616         fold_convert on the second argument to omit_one_operand.
2618 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2620         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2621         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2622         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2623         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2624         Add missing (but documented) tree nodes to the index.
2626 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2628         PR tree-optimization/14819
2629         * builtins.c (fold_builtin_strchr): New.
2630         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2631         with fold_builtin_strchr().
2633 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2635         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2636         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2637         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2638         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2639         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2640         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2641         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2642         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2643         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2644         formatting.
2646 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2648         * gimplify.c (sort_case_labels): New.  Split out from...
2649         (gimplify_switch_expr): ...here.  Use it.
2650         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2651         the SWITCH_EXPR created here before leaving the function.
2652         * tree.c (sort_case_labels): Add prototype.
2654 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2656         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2657         of BOOLEAN_TYPE.
2659 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2661         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2662         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2663         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2664         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2665         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2666         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2667         comment typos.  Follow spelling conventions.
2669 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2671         * gengtype-yacc.y: Add NESTED_PTR token.
2672         (option): Record `nested_ptr' option.
2673         * gengtype-lex.l: Handle `nested_ptr' keyword.
2674         * gengtype.c (walk_type): Process `nested_ptr' option.
2675         * gengtype.h (struct nested_ptr_data): New.
2676         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2677         * stringpool.c (struct string_pool_data): Make 'entries' point to
2678         ht_identifier instead of tree.
2679         (gt_pch_save_stringpool): Don't adjust pointers.
2680         (gt_pch_restore_stringpool): Call ht_load.
2682 2004-05-29  Jason Merrill  <jason@redhat.com>
2684         * gimplify.c (gimplify_expr): Don't build a statement list
2685         if no gimplification was necessary.
2687 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2689         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2690         and %> as well as %'.
2691         * c-format.c: Use %< and %>.
2692         (gcc_diag_char_table, gcc_cdiag_char_table,
2693         gcc_cxxdiag_char_table): Update.
2695 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2697         * c-typeck.c (common_type): Correct comment.
2699 2004-05-29  Peter Barada  <peter@the-baradas.com>
2701         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2702         * config/m68k/m68k.c (const_method): Likewise.
2703         * config/m68k/m68k.c (const_int_cost): Likewise.
2704         * config/m68k/m68k.c (const_int_cost): Likewise.
2705         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2707 2004-05-29  Peter Barada  <peter@the-baradas.com>
2709         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2710         addressing.
2711         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2712         movsi,movhi,movqi insn patterns.
2714 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2716         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2718         PR target/15720
2719         * config/darwin.c (machopic_indirect_call_target): Copy
2720         the SYMBOL_REF_DECL from the original RTX for the new
2721         stub RTX.
2723 2004-05-28  DJ Delorie  <dj@redhat.com>
2725         * stor-layout.c (place_field): Revert erroneous commit.
2727 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2729         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2730         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2731         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2732         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2733         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2734         vec_ste): Remove type checks for integral parameters and literals
2735         from '..._args_eq' macros.
2737 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2739         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2741 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2743         * testsuite/g++.dg/charset/function.cc: New.
2745         * testsuite/gcc.dg/charset/function.c: New.
2747         * c-decl.c (c_make_fname_decl): Free return value from
2748         fname_as_string.
2750         * cp/decl.c (cp_make_fname_decl): Free return value from
2751         fname_as_string.
2753         * c-common.c (fname_as_string): Translate if necessary.
2755 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2757         * stringpool.c: Add comments to PCH saving/restoring routines.
2759 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2761         * c-common.c (c_estimate_num_insns_1): Kill.
2762         (c_estimate_num_insns): Kill.
2763         * c-common.h (c_estimate_num_insns): Kill.
2765         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2766         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2767         Remove comment about not checking for
2768         _POSIX_PRIORITY_SCHEDULING.
2769         * gthr-posix.c: Likewise.
2771 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2772             Roger Sayle  <roger@eyesopen.com>
2774         PR rtl-optimization/15649
2775         Add LTGT_EXPR and improve pretty-printing of unordered
2776         comparisons.
2777         * c-common.c (c_common_truthvalue_conversion):
2778         Handle LTGT_EXPR.
2779         * c-typeck.c (build_binary_op): Likewise.
2780         * dojump.c (do_jump): Likewise.
2781         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2782         * predict.c (tree_predict_by_opcode): Likewise.
2783         * real.c (real_compare): Likewise.
2784         * tree-cfg.c (verify_expr): Likewise.
2785         * tree-inline.c (estimate_num_insns_1): Likewise.
2786         * tree-pretty-print.c (dump_generic_node): Likewise.
2787         Handle ORDERED_EXPR, UNORDERED_EXPR.
2788         (op_symbol): Print unordered comparisons differently
2789         than ordered ones.
2790         * tree.def (LTGT_EXPR): New '<' tree code.
2791         * doc/c-tree.texi (Expressions): Document floating-point
2792         comparison nodes.
2794         Fold comparisons between floating point values.
2795         * fold-const.c (enum comparison_code): New, from
2796         #define'd constants.  Define compcodes for unordered
2797         comparisons and for invalid transformations.
2798         (invert_tree_comparison): Add "honor_nans" parameter.
2799         (fold_truthop): Revamp to work on floating-point types too.
2800         (comparison_to_compcode): Support unordered comparisons.
2801         Use new enum comparison_code.
2802         (compcode_to_comparison): Likewise.
2803         (combine_compcodes): New function.
2804         (invert_truthvalue): Let invert_tree_comparison decide
2805         whether it is valid to fold the comparison.  Fold ORDERED
2806         and UNORDERED even if flag_unsafe_math_optimizations is off,
2807         and the remaining even if flag_unsafe_math_optimizations
2808         is off but we are under -fno-trapping-math.
2809         (fold_relational_const): Integer modes do not honor NaNs.
2811 2004-05-28  Paul Brook  <paul@codesourcery.com>
2813         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2815 2004-05-28  Paul Brook  <paul@codesourcery.com>
2817         * config/arm/arm.c (thumb_force_lr_save): New function.
2818         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2819         thumb_output_function_prologue): Use it.
2820         (thumb_expand_prologue): Set lr_save_eliminated.
2822 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2824         * config/mips/mips.md (extendsidi2): Tie the source and destination
2825         of the register alternative.  Split it into nothing.
2827 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2829         * rtl.h (skip_consecutive_labels): Declare.
2830         * emit-rtl.c (skip_consecutive_labels): New function.
2831         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2832         * jump.c (follow_jumps): Say what null return values mean.
2834 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2836         PR target/13250
2837         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2839 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2841         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2842         libgcc-std.ver.
2843         * config/sh/libgcc-std.ver: New file.
2845 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2847         * except.c: Revert change of 2004-05-26.
2848         * config/i386/i386.md: Revert change of 2004-05-27.
2850 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2852         * configure.ac: Remove --enable-tree-browser option.
2853         Define TREEBROWSER when ac_tree_checking is defined.
2854         * configure: Rebuilt.
2856 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2858         * expr.c (store_constructor): Restore sanity check on
2859         the size of the type before clearing.
2861 2004-05-27  Jan Hubicka  <jh@suse.cz>
2863         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2865 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2867         * combine.c (gen_binary): Remove.
2868         (known_cond, simplify_shift_const
2869         find_split_point, combine_simplify_rtx,
2870         simplify_if_then_else, simplify_set,
2871         simplify_logical, expand_field_assignment,
2872         extract_left_shift, force_to_mode,
2873         if_then_else_cond, apply_distributive_law,
2874         simplify_and_const_int, simplify_shift_const,
2875         gen_lowpart_for_combine, simplify_comparison,
2876         reversed_comparison): Replace with
2877         simplify_gen_binary, simplify_gen_relational or
2878         distribute_and_simplify_rtx.
2879         (distribute_and_simplify_rtx): New function.
2880         * simplify-rtx.c (simplify_binary_operation):
2881         Use nonzero_bits to simplify ANDs where we are
2882         turning off bits already known to be off in OP0.
2884 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2886         PR target/14478
2887         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2889 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2891         PR middle-end/14084
2892         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2893         to size of decl.
2895 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2897         PR/14924
2898         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2900 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2902         * tree.h: Fix comment typo.
2904 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2906         * gimplify.c (compare_case_labels): New function.
2907         (gimplify_switch_expr): Sort case labels, and make sure the
2908         last label in the label vector is the default case.
2909         * tree-cfg.c (group_case_labels): New function.
2910         (build_tree_cfg): Cleanup redundant labels and group case labels
2911         before creating edges.
2912         (cleanup_dead_labels): Handle GOTO_EXPRs.
2913         (find_case_label_for_value): Use a binary search to find the
2914         case label for the given value.
2915         * tree-gimple.c: Mention that labels are sorted, and that the
2916         last label must be the default.
2918 2004-05-27  Jan Hubicka  <jh@suse.cz>
2920         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2922 2004-05-27  Jan Hubicka  <jh@suse.cz>
2924         * i386.md (UNSPECV_EH_RETURN): Kill.
2925         (eh_return): Use jump_insn.
2926         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2928 2004-05-26  Jan Hubicka  <jh@suse.cz>
2930         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
2931         not loop optimizing.
2933 2004-05-26  Jan Hubicka  <jh@suse.cz>
2935         * except.c (can_throw_internal):  Notice RESX instructions.
2937 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
2939         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2940         of the two sizes to assemble_integer.
2942 2004-05-25  Paul Brook  <paul@codesourcery.com>
2944         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2945         pointless #ifdef.
2947 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2949         * Makefile.in (top_builddir): Define to .
2951 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
2953         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2954         top-level detects, except when in-tree ld is being cross-built.
2955         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
2956         then AS only if target is host.
2957         * configure: Rebuilt.
2959 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
2961         * global.c (global_alloc): Call make_accurate_live_analysis.
2962         (record_one_conflict): Remove dead code.
2963         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2964         (bb_info): New structure.
2965         (BB_INFO, BB_INFO_BY_INDEX): New macros.
2966         (allocate_bb_info, free_bb_info, mark_reg_change,
2967         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2968         modify_bb_reg_pav, calculate_reg_pav,
2969         make_accurate_live_analysis): New functions.
2971 2004-05-25  Devang Patel  <dpatel@apple.com>
2973         * alias.c (init_alias_analysis): Use ggc_calloc instead of
2974         xrealloc.
2975         (end_alias_analysis): Use ggc_free instead fo free.
2977 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
2979         PR target/15546
2980         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2981         as needed to be outputted.
2983 2004-05-25  Jan Hubicka  <jh@suse.cz>
2985         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
2987 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
2988         Mostafa Hagog  <mustafa@il.ibm.com>
2990         * Makefile.in (modulo-sched.o, ddg.o): New.
2991         * ddg.h, ddg.c, modulo-sched.c: New files.
2992         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2993         internals to "dupicate_insn".
2994         (duplicate_insn): New function.
2995         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2996         declarations.
2997         * common.opt (fmodulo-sched): New flag.
2998         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2999         Remove static and forward declaration.
3000         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
3001         functions.
3002         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
3003         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
3004         declarations.
3005         * flags.h (flag_modulo_sched): New flag.
3006         * opts.c (common_handle_option): Handle modulo-sched flag.
3007         * params.def (max-sms-loop-number, sms-max-ii-factor,
3008         sms-dfa-history, sms-loop-average-count-threshold): New
3009         parameters.
3010         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
3011         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
3012         parameters.
3013         * passes.c ("sms", "sms-vcg"): New dumps.
3014         (rest_of_handle_sched): Call sms_schedule.
3015         * rtl.h (sms_schedule): New declaration.
3016         * timevar.def (TV_SMS): New.
3017         * toplev.c (flag_modulo_sched): Initialize.
3018         (f_options): Handle -fmodulo-sched option.
3019         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
3020         * docs/passes.texi: Document new SMS pass.
3022 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
3024         * Makefile.in (OBJS): Add rtlhooks.o.
3025         (rtlanal.o): Depend on function.h.
3026         (cse.o): Depend on rtlhooks-def.h.
3027         (combine.o): Depend on rtlhooks-def.h.
3028         (rtlhooks.o): New rule.
3029         * combine.c: Include rtlhooks-def.h.
3030         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3031         num_sign_bit_copies, cached_num_sign_bit_copies,
3032         num_sign_bit_copies1): Move most of the code to rtlanal.c.
3033         (reg_nonzero_bits_for_combine,
3034         reg_num_sign_bit_copies_for_combine): New functions holding
3035         the remnants of the above.
3036         (combine_rtl_hooks): New.
3037         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
3038         * cse.c: Include rtlhooks-def.h.
3039         (cse_rtl_hooks): New.
3040         (cse_main): Set rtl_hooks instead of gen_lowpart.
3041         * emit-rtl.c (gen_lowpart): Remove.
3042         (gen_lowpart_general): Move to rtlhooks.c.
3043         * rtl.h (nonzero_bits, num_sign_bit_copies,
3044         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
3045         (gen_lowpart_general): Remove.
3046         (gen_lowpart): Temporarily redefine as a macro.
3047         * rtlanal.c: Include function.h.
3048         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3049         num_sign_bit_copies, cached_num_sign_bit_copies,
3050         num_sign_bit_copies1): New, from combine.c.
3051         * rtlhooks.c: New file.
3052         * rtlhooks-def.h: New file.
3054 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
3056         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
3057         to support 32-bit -mint8 mode.
3059         * doc/invoke.texi (-mint8): Added documentation for the -mint8
3060         option in the AVR architecture.
3062 2004-05-24  Mike Stump  <mrs@apple.com>
3064         * doc/install.texi: Document that dejagnu 1.4.4 is required.
3066 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3068         * intl.h (open_quote, close_quote): New.
3069         * intl.c (open_quote, close_quote): New.
3070         (gcc_init_libintl): Set them.
3071         * pretty-print.c: Include "intl.h".
3072         (pp_base_format_text): Support 'q' format flag and %` and %'
3073         formats.  Use ' instead of ` in comments.
3074         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
3075         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
3076         foramt_types_orig): Describe these new formats.
3077         (decode_format_attr, check_function_format,
3078         check_format_info_main): Use these new formats.
3079         (status_warning): Use ATTRIBUTE_GCC_DIAG.
3080         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
3081         check these formats to 3.5.
3083 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3085         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
3086         (BACKEND): Reflect this.
3087         (LIBDEPS): Move CPPLIB before LIBIBERTY.
3088         (LIBS): Likewise.
3090 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
3092         PR tree-optimization/14197
3093         * builtins.c: Include "tree-gimple.h"
3094         (readonly_data_expr): Use get_base_address.  Make sure to call
3095         decl_readonly_section only on trees it can handle.
3096         * tree-gimple.c (get_base_address): Accept STRING_CST and
3097         CONSTRUCTOR expressions.
3098         * Makefile.in: Update dependencies.
3100 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
3102         Move libcpp to the toplevel.
3103         * Makefile.in: Remove references to libcpp files,
3104         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
3105         and change hashtable.h to that.
3106         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
3107         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
3108         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
3109         * configure: Regenerate.
3110         * config.in: Regenerate.
3111         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
3112         * cppcharset.c: Removed.
3113         * cpperror.c: Removed.
3114         * cppexp.c: Removed.
3115         * cppfiles.c: Removed.
3116         * cpphash.c: Removed.
3117         * cpphash.h: Removed.
3118         * cppinit.c: Removed.
3119         * cpplex.c: Removed.
3120         * cpplib.c: Removed.
3121         * cpplib.h: Removed.
3122         * cppmacro.c: Removed.
3123         * cpppch.c: Removed.
3124         * cpptrad.c: Removed.
3125         * cppucnid.h: Removed.
3126         * cppucnid.pl: Removed.
3127         * cppucnid.tab: Removed.
3128         * hashtable.c: Removed.
3129         * hashtable.h: Removed.
3130         * line-map.c: Removed.
3131         * line-map.h: Removed.
3132         * mkdeps.c: Removed.
3133         * mkdeps.h: Removed.
3134         * stringpool.h: Include symtab.h instead of hashtable.h.
3135         * tree.h: Include symtab.h instead of hashtable.h.
3136         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
3138 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3140         * gcc.c (struct prefix_list): Add forward declaration.
3141         (do_spec_path): New function, extracted from...
3142         (do_spec_1) <'D'>: ... here.  Drop support for
3143         SPACE_AFTER_L_OPTION.
3144         (do_spec_1) <'I'>: Use do_spec_path.
3145         (process_command): Do not store the 'include' suffix
3146         in include_prefixes.
3147         * system.h: Poison SPACE_AFTER_L_OPTION.
3149 2002-05-23  Roger Sayle  <roger@eyesopen.com>
3151         * fold-const.c (non_lvalue): Explicitly list the tree codes that
3152         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
3154 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
3156         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
3157         Update based on printed manual.  Enable setting of offsets for
3158         FSFPRINT and move it to gcc-common.texi.
3159         * doc/gcc.texi: Update FSF printing details.
3160         * doc/gccint.texi: Remove FSF printing details.
3162 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
3164         * config/rs6000/t-rs6000: Remove the disabling -Werror.
3166 2004-05-22  Roger Sayle  <roger@eyesopen.com>
3168         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3169         expand_builtin_strrchr, expand_builtin_strpbrk,
3170         expand_builtin_mempcpy, expand_builtin_memcmp,
3171         expand_builtin_strcmp, expand_builtin_strncmp,
3172         expand_builtin_strcat, std_expand_builtin_va_start,
3173         std_expand_builtin_va_arg, expand_builtin_va_copy,
3174         expand_builtin_signbit, fold_builtin_cabs,
3175         fold_builtin_logarithm, fold_builtin_mempcpy,
3176         fold_builtin_signbit, fold_builtin_isascii,
3177         fold_builtin_toascii, fold_builtin_isdigit,
3178         fold_builtin_1, build_function_call_expr,
3179         simplify_builtin_strchr, simplify_builtin_strrchr,
3180         simplify_builtin_strpbrk, simplify_builtin_strncpy,
3181         simplify_builtin_memcmp, simplify_builtin_strcmp,
3182         simplify_builtin_strncmp, simplify_builtin_strncat,
3183         simplify_builtin_strspn, simplify_builtin_strcspn,
3184         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
3185         to build with calls to build2, build3 or omit_one_operand.
3187 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3189         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
3190         section when generating EABI code.
3192 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3194         PR 15546
3195         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
3196         Call mark_decl_referenced on the SYMBOL_REF_DECL.
3198 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3200         * c-common.c (c_common_truthvalue_conversion): Handle
3201         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
3202         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
3203         i.e. set the type to truthvalue_type_node and return.
3205 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
3207        * tree.h (struct tree_decl): Add possibly_inlined bit.
3208         (DECL_POSSIBLY_INLINED): New accessor macro.
3209         * cgraph.h: Remove declaration of cgraph_inline_hash.
3210         * cgraph.c: Remove definition of cgraph_inline_hash.
3211         (hash_node): Revert to hashing DECL_UID.
3212         (eq_node): Take two pointers to cgraph_node structures.
3213         Compare DECL_UIDs.
3214         (cgraph_remove_node): Pass the node directly to htab_find_slot.
3215         (cgraph_varpool_hash_node): Rename hash_varpool_node;
3216         hash on DECL_UID.
3217         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
3218         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
3219         (cgraph_node): Allocate a temporary node on the stack, fill in
3220         its DECL field, and pass that to htab_find_slot.
3221         (cgraph_varpool_node): Likewise.
3222         (cgraph_function_possibly_inlined_p): If global info is ready,
3223         return the DECL_POSSIBLY_INLINED bit.
3224         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
3225         instead of mucking with cgraph_inline_hash.
3227 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3229         * doc/contrib.texi: Add g77 contributors.
3231 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3233         * calls.c (initialize_argument_information): Forbid sibcalls if a
3234         callee-copied argument is stored in the current function's frame.
3236 2004-05-22  Eric Christopher  <echristo@redhat.com>
3238         * fix-header.c (read_scan_file): Update for add_path change.
3240 2004-05-22  Ben Elliston  <bje@au.ibm.com>
3242         * c.opt (Wmissing-include-dirs): New.
3243         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
3244         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
3245         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
3246         * c-incpath.h (add_path): Add fourth (bool) argument.
3247         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
3248         (add_standard_paths): Likewise.
3249         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
3250         is used and the directory was user-supplied via -I.
3251         (add_path): Set p->user_supplied_p.  Remove duplicated code by
3252         using add_cpp_dir_path ().
3253         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
3254         (struct cpp_dir): Add user_supplied_p.
3255         * doc/invoke.texi (Warning Options): Document new option.
3257 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
3259         * fold-const.c (fold_read_from_constant_string): Convert result to
3260         requested type.
3262 2004-05-21  Richard Henderson  <rth@redhat.com>
3264         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
3265         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
3266         Don't mark VA_ARG_EXPRs volatile here.
3267         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
3269 2004-05-21  Richard Henderson  <rth@redhat.com>
3271         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
3272         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
3274 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3276         * fold-const.c (fold, fold_relational_hi_lo,
3277         nondestructive_fold_binary_to_constant,
3278         fold_read_from_constant_string): Use fold_convert instead of convert.
3279         * builtins.c (simplify_builtin, simplify_builtin_strstr,
3280         simplify_builtin_strchr, simplify_builtin_strrchr,
3281         simplify_builtin_strpbrk): Use fold_convert instead of convert.
3283 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
3285         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
3286         is NULL.
3288 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
3290         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
3291         override sparc.h definition.
3293 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3295         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
3296         get_unwidened, get_narrower): Replace build with build2.
3297         * fold-const.c (negate_expr, associate_trees, size_binop,
3298         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
3299         pedantic_omit_one_operand, distribute_bit_expr,
3300         make_bit_field_ref, optimize_bit_field_compare,
3301         decode_field_reference, range_binop, make_range,
3302         build_range_check, fold_range_test, fold_truthop,
3303         optimize_minmax_comparison, extract_muldiv_1,
3304         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
3305         fold_inf_compare, fold_single_bit_test, fold,
3306         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3307         Likewise replace build with either build2 or build3.
3309 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
3311         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3312         * calls.c (prepare_call_address): Don't test
3313         NO_RECURSIVE_FUNCTION_CSE.
3314         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3315         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3316         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3317         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3318         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3319         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3320         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3321         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3322         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3323         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3324         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3325         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3326         Likewise.
3327         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3328         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3329         * doc/tm.texi (Costs): Remove documentation for
3330         NO_RECURSIVE_FUNCTION_CSE.
3332 2004-05-20  Paul Brook  <paul@codesourcery.com>
3334         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3335         * unwind-dw2.c (extract_cie_info): Ditto.
3336         (_Unwind_FrameState): Change retaddr_column to word type.
3338 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3340         PR middle-end/3074
3341         * fold-const.c (strip_compound_expr): Delete function.
3342         (count_cond): Delete function.
3343         (fold_binary_op_with_conditional_arg): Only perform transformations
3344         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3345         when a is constant.  This greatly simplifies this routine.
3347         * tree.c (saved_expr_p): Delete function.
3348         * tree.h (saved_expr_p): Delete function prototype.
3350 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3352         * common.opt (ftree-loop-optimize): Remove.
3354 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
3356         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3357         (NM_FOR_TARGET): Use := and $(shell).
3358         (mainversion): Remove unused variable.
3360 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3362         * reorg.c (delete_from_delay_slot): If we have a barrier after the
3363         sequence containing the insn to be deleted, always reemit it.
3365 2004-05-20  Richard Henderson  <rth@redhat.com>
3367         PR 15454
3368         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3369         * function.c (expand_function_start): Expand static_chain_decl by hand.
3370         * gimplify.c (create_tmp_var_name): Export.
3371         * tree-gimple.h (create_tmp_var_name): Declare.
3373 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3375         * rs6000.c (print_operand) <case 'z'>: Call
3376         mark_decl_referenced before assemble_name.
3378 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
3380         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3381         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3382         (cgraph_varpool_node): Hash on the pointer to the decl, not
3383         the DECL_UID.  Fixes 64-bit bootstrap failure.
3385 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
3387         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3388         we don't earlyclobber operands used in the second insn.
3390 2004-05-20  Steven Bosscher  <stevenb@suse.de>
3392         * tree-mudflap.c: Formatting fixes.
3394 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
3396         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3397         * gengtype.c (open_base_files): Include reload.h in ifiles.
3398         * reload.h (reg_equiv_memory_loc_varray): Declare.
3399         * reload1.c (reg_equiv_memory_loc_varray): New variable.
3400         (init_reload): Initialize it.
3401         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3402         reg_equiv_memory_loc_varray to size 0.
3403         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3404         growing reg_equiv_memory_loc_varray to the desired size.
3405         * passes.c (rest_of_handle_old_regalloc): Likewise.
3406         * reload.c: Amend comment on calling init_reload.
3408 2004-05-20  Nick Clifton  <nickc@redhat.com>
3410         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3411         with 'TRAMP' in the body of the macro definition.
3413 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3415         PR target/15383
3416         * config/ia64/ia64.c (ia64_expand_compare): Don't check
3417         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3418         cmptf_libfunc isn't set.
3419         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3420         conventions.
3421         (ia64_sysv4_init_libfuncs): New.
3423         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3424         ia64_sysv4_init_libfuncs.
3426 2004-05-20  Falk Hueffner  <falk@debian.org>
3428         PR other/15526
3429         * libgcc2.c (__mulvsi3): Fix overflow test.
3431 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
3433         PR c/14171
3434         * reg-stack.c (nan): Rename to ...
3435         (not_a_num): Here.
3436         (reg_to_stack): Rename nan to not_a_num.
3437         (subst_stack_regs_pat): Likewise.
3438         (convert_regs_entry): Likewise.
3439         (convert_regs_1): Likewise.
3441         * tree-cfg.c (find_case_label_for_value): Replace call to
3442         simple_cst_equal with tree_int_cst_equal.
3444 2004-05-19  Jeff Law <law@redhat.com>
3446         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3447         If the operand is for a use, then strip away the SSA_NAME, do not
3448         strip away the SSA_NAME for a set.  Never call release_ssa_name.
3449         (mark_def_sites): Appropriately pass additional argument to
3450         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
3451         then set the VDEF_RESULT to the VDEF_OP.
3452         (set_def_block): Strip away any SSA_NAME to get to the real
3453         underlying variable.
3455         * tree-ssa-phiopt.c (value_replacement): Handle the case where
3456         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3457         BB directly.
3459 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3461         PR c++/15463
3462         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
3463         result of inverse.
3465         PR rtl-optimization/15274
3466         * loop-iv.c (determine_max_iter, shorten_into_mode,
3467         iv_number_of_iterations): Handle constants correctly.
3468         * rtl.h (get_mode_bounds): Declaration changed.
3469         * stor-layout.c (get_mode_bounds): Return a constant suitable for
3470         the target mode.
3472         PR rtl-optimization/14692
3473         * loop-unswitch.c (may_unswitch_on): Try folding the result.
3474         (unswitch_single_loop): Work correctly when may_unswitch_on
3475         returns a folded constant.
3477         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3478         * simplify-rtx.c (simplify_const_relational_operation): Optimize
3479         comparisons with mode bounds.
3481         * function.c (struct temp_slot): Add new field prev.
3482         (free_after_compilation, init_temp_slots): Free new fields.
3483         (cut_slot_from_list, insert_slot_to_list,
3484         temp_slots_at_level, max_slot_level, move_slot_to_level,
3485         make_slot_available): New functions.
3486         (assign_stack_temp_for_type, combine_temp_slots,
3487         find_temp_slot_from_address, preserve_temp_slots,
3488         preserve_rtl_expr_result, free_temp_slots,
3489         free_temps_for_rtl_expr, pop_temp_slots): Work with
3490         the new structure of lists.
3491         (mark_all_temps_used): Removed.
3492         * function.h (struct function): Field x_temp_slots
3493         replaced by x_used_temp_slots and x_avail_temp_slots.
3494         (temp_slots): Replaced by ...
3495         (used_temp_slots, avail_temp_slots): New.
3496         * tree.h (mark_all_temps_used): Declaration removed.
3498         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3499         simplify_using_assignment): Take the expression out of
3500         the expr_list wrapper.
3502         * loop-iv.c (iv_number_of_iterations): Improve clasification of
3503         infinite loops.
3505 2004-05-19  Roger Sayle  <roger@eyesopen.com>
3507         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3508         costs should be based on code size when optimizing for size.
3510 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
3512         * fold-const.c: Remove non-printable character 160.
3514 2004-05-19  Nick Clifton  <nickc@redhat.com>
3516         * doc/invoke.texi (ARM Options): Fix typo.
3517         Remove descrption of -mshort-load-bytes and
3518         -mno-short-load-bytes.
3520         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3521         missing parenthesis.
3522         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3523         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3525 2004-05-19  Steven Bosscher  <stevenb@suse.de>
3527         * expr.c (store_constructor): Build loop start and end by hand
3528         instead of via loop functions from stmt.c.
3529         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3530         Remove the code to expand them.
3532         * stmt.c (loop_stack): Remove this and everything related.
3533         (struct nesting, enum nesting_desc): Update.
3534         (expand_fixup): Likewise.
3535         (expand_loop_start, expand_start_loop_continue_elsewhere,
3536         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3537         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3538         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3539         expand_exit_something): Remove.
3540         * tree.h: Remove prototypes.
3542 2004-05-18  Mike Stump  <mrs@apple.com>
3543             Devang Patel  <dpatel@apple.com>
3545         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3546         if this label is for eh.
3547         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3548         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3549         * dwarf2out.c (output_call_frame_info): Likewise.
3550         * output.h (default_emit_unwind_label): Likewise.
3551         * target.h (unwind_label): Likewise.
3552         * varasm.c (default_emit_unwind_label): Likewise.
3554         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3555         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3556         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3557         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3558         DEBUG_RANGES_SECTION): Define.
3560 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3562         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3563         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3564         (cgraph_varpool_node):
3565         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3566         (cgraph_function_possibly_inlined_p): Use the decl itself for
3567         the key, not DECL_ASSEMBLER_NAME.
3568         (change_decl_assembler_name): No need to muck with the hash tables.
3569         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3570         Delete.
3571         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3572         for the key, not DECL_ASSEMBLER_NAME.
3573         * cgraph.h: Remove prototypes of deleted functions.
3574         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3575         (mark_decl_referenced): New function.
3576         * tree.h: Prototype mark_decl_referenced.
3577         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3578         mark_decl_referenced before assemble_name.
3579         * c-decl.c (finish_decl): Use mark_decl_referenced.
3581 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3582             Jeff Law <law@redhat.com>
3584         * tree-ssa-phiopt.c (abs_replacement): New function.
3585         (empty_block_p): New function extracted from...
3586         (candidate_bb_for_phi_optimization): Break out empty block test.
3587         (conditional_replacement): Use empty_block_p.
3588         (value_replacement): Similarly.
3590         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3591         * tree-ssa-phiopt.c: Include flags.h.
3592         (conditional_replacement): Remove argument names from prototype.
3593         Minor formatting and comment fixes.
3594         (tree_ssa_phiopt): If conditional_replacement returns false, then
3595         call value_replacement.
3596         (value_replacement): New function.
3598 2004-05-18  Jeff Law  <law@redhat.com>
3600         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3601         from conditional_replacement.
3602         (candidate_bb_for_phi_optimization): Similarly.
3603         (conditional_replacement): Use replace_phi_with_stmt and
3604         candidate_bb_for_phi_optimization.
3606         * tree-ssa-phiopt.c: Fix various formatting issues.
3608 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3610         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3611         s390_expand_cmpmem): Do not use expand_start_loop and
3612         expand_end_loop, instead build the loop manually.
3614 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3616         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3617         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3619 2004-05-17  Jeff Law  <law@redhat.com>
3621         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3622         * flags.h (flag_delete_null_pointer_checks): Here.
3623         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3624         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3625         (add_phi_arg, remove_phi_arg_num): Similarly.
3626         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3627         property into PHI nodes.
3628         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3629         (record_equivalences_from_phis): If all PHI arguments are known to be
3630         nonzero, then the result must be nonzero as well.
3631         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3632         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3633         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3634         as appropriate.
3635         * tree.h (PHI_ARG_NONZERO): Define.
3636         (phi_arg_d): Add nonzero flag.
3638 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3640         * f: Entire directory removed
3642         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3643         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3644         (g77_integer_type_node, g77_uinteger_type_node)
3645         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3646         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3647         the above set of variables.
3649         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3650         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3651         to g77 manual.
3653 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3655         PR tree-optimization/15438
3656         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3657         attributed functions as pure or const.
3659 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3661         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3662         from source code with errors.
3664 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3666         Enable tree browser for all front ends.
3667         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3668         (BACKEND): ...to here.
3670 2004-05-17  Jan Hubicka  <jh@suse.cz>
3672         * i386.c (construct_container): Do not produce BLKmode registers.
3673         (classify_argument): Properly compute alignment of complex types.
3675 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3677         PR target/15084
3678         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3679         and renamed to movdi_insv_1_rex64.
3680         (insv): Support SImode for 32bit and DImode for 64bit.
3682 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3684         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3685         (TARGET_SWITCHES): Remove debugg.
3686         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3687         TARGET_64BIT.
3688         (subdi3): Replace the define_expand with a define_insn, the latter
3689         renamed from subdi3_internal_3.
3690         (negdi2): Likewise negdi2_internal_2.
3691         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3692         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3693         and associated define_splits.
3694         (adddi3_internal): Renamed from adddi3_internal_3.
3695         (ashldi3_internal): Likewise ashldi3_internal4.
3696         (ashrdi3_internal): Likewise ashrdi3_internal4.
3697         (lshrdi3_internal): Likewise lshrdi3_internal4.
3699 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3701         * optabs.c (expand_unop): Try implementing negation using subtraction
3702         from zero.
3704 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3706         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3707         SAR register.
3709 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3711         PR target/10982
3712         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3713         (ne_zeroextractsi_shifted): New pattern.
3714         (ite_ne_zeroextractsi): New pattern.
3715         (ite_ne_zeroextractsi_shifted): New pattern.
3717 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3719         * c-gimplify.c (c_genericize):
3720         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3721         * c-parse.in <expr_no_commas>: Likewise.
3722         <if_prefix>: Likewise.
3723         <select_or_iter_stmt>: Likewise.
3724         * expr.c (expand_var, expand_expr_real_1): Likewise.
3725         * expr.h (expand_expr): Make it a static inline function.
3726         Move prototype for expand_expr_real up before this.
3727         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3728         Likewise.
3729         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3730         gimplify_asm_expr, gimplify_expr): Likewise.
3731         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3732         dump_function_to_file): Likewise.
3733         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3734         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3735         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3736         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3737         Likewise.
3738         * tree-optimize.c (execute_one_pass): Likewise.
3739         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3740         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3742         * objc/objc-act.c (objc_build_try_enter_fragment,
3743         objc_build_try_epilogue, objc_build_catch_stmt,
3744         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3745         with lang_hooks.foo ().
3747 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3749         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3750         that simplify_builtin doesn't destructively modify its argument.
3752 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3754         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3755         implementations for ARM and Thumb.
3756         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3758 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3760         * prefix.c (update_path): Replace PREFIX with KEY only
3761         when it matches a full directory name in PATH.
3763 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3765         * arm.h (TARGET_APCS_32): Delete.
3766         (TARGET_MMU_TRAPS): Delete.
3767         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3768         define __APCS_26__.
3769         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3770         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3771         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3772         (prog_mode_type): Delete.
3773         (PROMOTE_MODE): Always promote unsigned for HImode.
3774         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3775         (MASK_RETURN_ADDR): Simplify.
3776         * arm.c (arm_prgmode): Delete.
3777         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3778         (print_multi_reg, output_return_instruction): Simplify.
3779         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3780         (arm_return_addr): Simplify.
3781         * arm.md (prog_mode): Delete.
3782         (conds): Simplify.
3783         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3784         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3785         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3786         (loadhi_shiftpredec): Delete.
3787         (peephole for post-increment on HImode load): Delete.
3788         * arm/crtn.asm: (FUNC_END): Simplify.
3789         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3790         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3791         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3792         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3793         MULTILIB_DEFAULTS as required.
3794         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3795         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3796         variables as required.
3797         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3799 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3801         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3802         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3803         count to 8 to handle n_reg > 2.
3805 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3807         * doc/extend.texi: Update WG14 URL.
3809 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3811         * basic-block.h (life_analysis, delete_noop_moves):
3812         Update prototypes.
3813         * bt-load.c (branch_target_load_optimize): Don't take the
3814         insns stream as an argument.  Update the life_analysis calls.
3815         * combine.c (combine_instructions): Update delete_noop_moves
3816         calls.
3817         * flow.c (notice_stack_pointer_modification): Don't take the
3818         insns stream as an argument.  Work on the flow graph.
3819         (life_analysis): Likewise.
3820         (delete_noop_moves): Likewise.
3821         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3822         (rest_of_handle_life): Update life_analysis call.
3823         (rest_of_compilation): Likewise, and also update
3824         branch_target_load_optimize call.
3825         * ra.c (reg_alloc): Update life_analysis call.
3826         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3827         the insns stream as an argument.
3828         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3829         call.
3830         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3831         prototypes.
3832         * value-profile.c (branch_prob): Update life_analysis call.
3833         * web.c (web_main): Work on the CFG, not on the insns stream.
3835         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3836         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3837         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3839 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3841         PR c/15444
3842         * c-format.c (avoid_dollar_number): New function.
3843         (check_format_info_main): Call avoid_dollar_number when operand
3844         numbers might occur but has_operand_number == 0.
3846 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3848         * arm.md (all peephole2 patterns): Use predicates that validate
3849         register classes as appropriate.
3851 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3853         PR opt/14472
3854         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3855         ignore type conversions that do not inhibit tail calling.
3856         (find_tail_calls): Likewise.
3858 2004-05-14  Jeff Law  <law@redhat.com>
3860         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3861         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3862         bypassed virtuals into vars_to_rename just before into-ssa pass.
3864         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3865         so that it picks up more opportunities to eliminate ABS expressions
3866         or turn them into negations.
3868 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3870         * passes.c (rest_of_handle_null_pointer): Remove.
3871         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3872         (rest_of_compilation): Likewise.
3873         * rtl.h (delete_null_pointer_checks): Remove prototype.
3874         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3875         Remove declarations.
3876         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3877         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3878         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3879         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3880         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3881         one_classic_gcse_pass, invalidate_nonnull_info,
3882         delete_null_pointer_checks_1, delete_null_pointer_checks,
3883         expr_reached_here_p_work): Remove.
3884         (gcse_main): Do not perform classic GCSE when optimizing for size.
3885         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3886         are never used.
3888 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3890         PR optimization/14466
3891         * tree-complex.c (make_temp): Remove.
3892         (gimplify_val): Replace make_temp with make_rename_temp
3893         and add NULL as the second argument.
3894         (expand_complex_div_wide): Likewise.
3895         * tree-dfa.c (make_rename_temp): New function.
3896         * tree-flow.h (make_rename_temp): Declare.
3897         * tree-sra.c (make_temp): Remove.
3898         (lookup_scalar): Replace make_temp with make_rename_temp.
3899         (create_scalar_copies): Likewise.
3900         * tree-ssa-phiopt.c (conditional_replacement): When we
3901         get non gimple create a temporary variable to hold the
3902         casted expression.
3904 2004-05-14  Paul Brook  <paul@codesourcery.com>
3906         * stor-layout.c (update_alignment_for_field): Use
3907         targetm.align_anon_bitfield.
3908         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3909         (TARGET_INITIALIZER): Use it.
3910         * target.h (struct gcc_target): Add align_anon_bitfield.
3911         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3912         (TARGET_ALIGN_ANON_BITFIELD): Define.
3913         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3915 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
3917         * tree.def (documentation): Remove mention of class 'b'.
3918         (BLOCK): Now in class 'x'.
3919         * c-common.c (verify_tree): Remove case 'b'.
3920         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3921         * calls.c (calls_function_1): Control cannot get past the switch
3922         when exp is a BLOCK.
3923         * print-tree.c (print_node): Move code for class 'b' to the class
3924         'c'/'x' switch, as case BLOCK.
3925         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3926         (unsafe_for_reeval, substitute_placeholder_in_expr)
3927         (stabilize_reference_1): Remove case 'b'.
3928         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3929         of something being 'b' to tests for TREE_CODE of something being
3930         BLOCK.
3931         * tree-ssa-operands.c (get_expr_operands): Likewise.
3933 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3935         * tree-gimple.c: Rename from tree-simple.c.
3936         * tree-gimple.h: Rename from tree-simple.h.
3937         * c-gimplify.c: Rename from c-simplify.c
3938         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3939         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3940         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3941         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3942         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3943         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3944         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3945         Update.
3947 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
3949         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3951 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3953         * tree-ssa.c (delete_tree_ssa): XFREE
3954         bitmaps allocated with BITMAP_XMALLOC.
3956         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3957         idfs_cache at the end of the function.
3959         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
3960         at the end of the function.
3962         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
3963         el at the end of the function.
3965         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
3966         bitmaps allocated with BITMAP_XMALLOC.
3968         * loop-unswitch.c (unswitch_single_loop): Free bbs at
3969         the end.
3971         * final.c (shorten_branches): Free uid_shuid before
3972         reallocating it.
3974         * bb-reoder.c (connect_traces): Free cold_traces at the end.
3976 2004-05-13  Jeff Law  <law@redhat.com>
3978         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
3979         variables.  Simplify slightly by using USE_OP/DEF_OP instead
3980         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
3982         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
3983         rather than iterating through the blocks testing each bit in
3984         livein to initialize the worklist.
3985         (mark_def_sites): Remove useless checks of KILLS for virtual
3986         operands.
3988         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
3989         new parameters for the statement and variable worklist as well
3990         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
3991         worklist recording interesting variables in the variable worklist
3992         and bitmap.  Handle casts between integral and boolean types.
3993         (substitute_single_use_vars): Accept new parameters for the statement
3994         and variable worklist.  When a substitution is made add a new
3995         entry to the statement worklist.  Handle casts between integral
3996         and boolean types.
3997         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3998         worklists to children.  Iterate until the statement worklist
3999         is empty.
4001 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
4003         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
4004         the end of the block.
4006         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
4007         with BITMAP_XMALLOC.
4009         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
4010         with BITMAP_XMALLOC.
4012         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
4013         Free nonzero_vars at the end of the function.
4015         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
4016         need to generate code instead of a NOP_EXPR.
4018 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
4020         * gcc.c (default_compilers): Fill out initializers for new Fortran
4021         entries.
4023 2004-05-13  Paul Brook  <paul@codesourcery.com>
4025         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
4027 2004-05-13  Paul Brook  <paul@codesourcery.com>
4029         * config/arm/arm.c (arm_default_short_enums): New function.
4030         (TARGET_DEFAULT_SHORT_ENUMS): Define.
4032 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
4034         Merge from tree-ssa-20020619-branch.
4036         * Makefile.in (reload1.o-warn): Add.
4037         (tree-alias-ander.o-warn): Add.
4038         (GMPLIBS): Define.
4039         (GMPINC): Define.
4040         (BANSHEELIB): Define.
4041         (BANSHEEINC): Define.
4042         (TREE_DUMP_H): Define.
4043         (TREE_SIMPLE_H): Define.
4044         (TREE_FLOW_H): Define.
4045         (LIBDEPS): Add BANSHEELIB.
4046         (INCLUDES): Add BANSHEEINC and GMPINC.
4047         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
4048         c-mudflap.o and c-pretty-print.o.
4049         (C_OBJS): Remove c-pretty-print.o.
4050         (OBJS-common): Remove sibcall.o.
4051         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
4052         tree-ssa.o, tree-optimize.o, tree-simple.o,
4053         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
4054         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
4055         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
4056         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
4057         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
4058         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
4059         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
4060         tree-tailcall.o, gimple-low.o, tree-iterator.o,
4061         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
4062         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
4063         tree-profile.o.
4064         (OBJC-archive): Add tree-nomudflap.o.
4065         (cc1): Add dependency on @TREEBROWSER@.
4066         (c-decl.o): Add dependency on TREE_DUMP_H.
4067         (c-dump.o): Likewise.
4068         (c-common.o): Add dependency on tree-iterator.h
4069         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
4070         (gtype-desc.o): Add dependency on TREE_FLOW_H.
4071         (tree.o): Add dependency on tree-iterator.h,
4072         BASIC_BLOCK_H and TREE_FLOW_H.
4073         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
4074         (langhooks.o): Add dependency on TREE_SIMPLE_H.
4075         (tree-alias-type.o, tree-alias-ander.o,
4076         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
4077         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
4078         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
4079         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
4080         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
4081         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
4082         tree-nested.o, tree-iterator.o, tree-dfa.o,
4083         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
4084         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
4085         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
4086         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
4087         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
4088         tree-sra.o, tree-complex.o, tree-profile.o,
4089         rtl-profile.o): New rules.
4090         (function.o): Add dependency on basic-block.h
4091         (expr.o): Add dependency on tree-iterator.h.
4092         (sibcall.o): Remove.
4093         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
4094         (cfg.o): Add dependency on TIMEVAR_H.
4095         (cfghooks.o): Add dependency on TREE_FLOW_H.
4096         (reg-stack.o): Add dependency on basic-block.h.
4097         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
4098         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
4099         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
4100         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
4101         tree-alias-type.h, tree-alias-common.h,
4102         tree-alias-type.c, tree-alias-common.c,
4103         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
4104         rtl-profile.c and tree-nested.c.
4105         (gt-tree-alias-common.h, gt-tree-mudflap.h,
4106         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
4107         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
4108         gt-tree-cfg.h, gt-tree-nested.h): New rules.
4109         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
4110         * basic-block.h: Include predict.h
4111         (struct edge_def): Add GTY marker.
4112         Change field 'insns' to be a union of tree and rtx.
4113         (EDGE_TRUE_VALUE): Define.
4114         (EDGE_FALSE_VALUE): Define.
4115         (EDGE_EXECUTABLE): Define.
4116         (struct bb_ann_d): Forward declare.
4117         (struct basic_block_def): Add GTY marker.
4118         Remove fields head_tree and end_tree.
4119         Add fields stmt_list, rbi and tree_annotations.
4120         (struct reorder_block_def): Define.
4121         (basic_block_info): Add GTY marker.
4122         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
4123         variables instead of macros.
4124         (flow_call_edges_add): Remove declaration.
4125         (make_eh_edge): Remove declaration.
4126         (brief_dump_cfg, find_edge, tree_predicted_by_p,
4127         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
4128         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
4129         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
4130         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
4131         (try_redirect_by_replacing_jump): Modfiy return type to
4132         edge instead of bool.
4133         * bb-reorder.c (copy_bb): Call duplicate_block
4134         instead of cfg_layout_duplicate_bb.
4135         (copy_bb_p): Call can_duplicate_block_p instead of
4136         cfg_layout_can_duplicate_bb_p.
4137         * bitmap.c (bitmap_first_set_bit): Abort if word
4138         wasn't found.
4139         (bitmap_last_set_bit): Likewise.
4140         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
4141         (DEF_FUNCTION_TYPE_3): Add.
4142         * builtins.c (c_strlen): Make extern.
4143         (builtin_save_expr): New.
4144         (expand_builtin_nonlocal_goto): New.
4145         (expand_builtin_constant_p): Remove.
4146         (expand_builtin_mathfn): Call builtin_save_expr instead
4147         of save_expr.
4148         (expand_builtin_mathfn_2): Likewise.
4149         (expand_builtin_strcmp): Likewise.
4150         (expand_builtin_strncmp): Likewise.
4151         (expand_builtin_strcat): Likewise.
4152         (fold_builtin_cabs): Likewise.
4153         (expand_builtin_alloca): Don't trigger if -fmudflap is
4154         given.
4155         (build_string_literal): Set TREE_INVARIANT on new node.
4156         (expand_builtin_profile_fun): New.
4157         (round_trampoline_addr): New.
4158         (expand_builtin_init_trampoline): New.
4159         (expand_builtin_adjust_trampoline): New.
4160         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
4161         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
4162         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
4163         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
4164         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
4165         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
4166         Handle.
4167         (fold_builtin_expect): New.
4168         (fold_builtin_isascii): Don't return non-constant results
4169         in GIMPLE form.
4170         (fold_builtin_isdigit): Likewise.
4171         (fold_builtin_1): New.
4172         (fold_builtin): Call it.
4173         (build_function_call_expr): Update call to build a new
4174         CALL_EXPR.
4175         (purge_builtin_constant_p): Remove.
4176         (simplify_builtin, simplify_builtin_memcmp,
4177         simplify_builtin_strcmp, simplify_builtin_strncmp,
4178         simplify_builtin_strpbrk, simplify_builtin_strstr,
4179         simplify_builtin_strchr, simplify_builtin_strrchr,
4180         simplify_builtin_strcat, simplify_builtin_strncat,
4181         simplify_builtin_strspn, simplify_builtin_strcspn,
4182         simplify_builtin_next_arg, simplify_builtin_va_start,
4183         simplify_builtin_sprintf): New.
4184         * builtins.def (BUILT_IN_STACK_ALLOC,
4185         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
4186         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
4187         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
4188         BUILT_IN_PROFILE_FUNC_EXIT): Define.
4189         * c-common.c: Include tree-iterator.h and hashtab.h.
4190         (lang_statement_code_p): Declare.
4191         (lang_gimplify_stmt): Declare.
4192         (fix_string_type): Set TREE_INVARIANT for value.
4193         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
4194         (c_type_hash): New.
4195         (c_common_get_alias_set): Handle multiple type nodes
4196         referring to "the same" type, currently for C90 only.
4197         (c_add_case_label): Use create_artificial_label.
4198         (finish_label_address_expr): Don't set TREE_CONSTANT on
4199         result.
4200         (c_expand_expr): Don't handle STMT_EXPR.
4201         (handle_alias_attribute): Marke aliased variables to be
4202         TREE_STATIC.
4203         (handle_nonnull_attribute): Initialize arg_num.
4204         (check_function_nonnull): Likewise.
4205         (c_walk_subtrees): New.
4206         (c_estimate_num_insns_1): Don't handle
4207         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
4208         (c_decl_uninit_1): Remove.
4209         (c_decl_uninit): Remove.
4210         (c_warn_unused_result): New.
4211         * c-common.def (ASM_STMT): Change number of operands
4212         to 4.
4213         (FILE_STMT): Remove.
4214         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
4215         Remove.
4216         (lang_gimplify_stmt): Add.
4217         (expand_stmt): Remove.
4218         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
4219         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
4220         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
4221         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
4222         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
4223         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4224         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4225         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
4226         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
4227         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
4228         genrtl_compound_stmt, genrtl_asm_stmt,
4229         genrtl_cleanup_stmt, c_decl_uninit): Remove.
4230         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
4231         c_tree_chain_matters_p, c_warn_unused_result,
4232         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
4233         Declare.
4234         * c-convert.c (convert): Make convert work when
4235         converting to compatible types across translation unit.
4236         * c-decl.c: Include langhooks.h, tree-mudflap.h,
4237         tree-simple.h, diagnostic.h and tree-dump.h
4238         (merge_decls): Initialize oldtype to NULL.
4239         (finish_decl): Use DECL_HARD_REGISTER instead of
4240         DECL_C_HARD_REGISTER.
4241         (check_bitfield_type_and_width): Check for null
4242         lang_type_specific when check the precision of an enum.
4243         (grokdeclarator): Immediately layout an ARRAY_TYPE used
4244         in a pointer-to-array declarator.
4245         (finish_struct): Clear allocated struct lang_type.
4246         (finish_enum): Set enum_min and enum_max.  Set
4247         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
4248         not to the enumerators.
4249         (set_decl_nonlocal): New.
4250         (store_parm_decls): Use it via walk_tree.
4251         (c_finalize): New.
4252         (finish_function): When !targetm.have_ctors_dtors,
4253         record static constructors and destructors here...
4254         (c_expand_body_1): ... not here.
4255         (c_expand_decl): Rename from c_expand_decl_stmt.
4256         Handle all C-specific expansion semantics.
4257         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
4258         STMT_LINENO.
4259         * c-format.c (handle_format_arg_attribute): Initialize
4260         format_num.
4261         * c-lang.c: Include tree-inline.h
4262         (LANG_HOOKS_EXPAND_DECL,
4263         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4264         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
4265         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
4266         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
4267         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
4268         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
4269         (c_types_compatible_p): New.
4270         * c-mudflap.c: New file.
4271         * c-objc-common.c: Include tree-mudflap.h
4272         (start_cdtor, finish_cdtor): Collapse
4273         together into
4274         (build_cdtor): ...here.  Update to construct a complete tree
4275         for the function.  No need to call push_scope, pop_scope, or
4276         clear_last_expr, or set current_function_cannot_inline.
4277         (c_missing_noreturn_ok_p): Change prototype to return
4278         bool.
4279         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
4280         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
4281         opts.c.
4282         (c_common_post_options): Don't ever use rtl inlining.
4283         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
4284         * c-pragma.c (handle_pragma_redefine_extname): Define
4285         always.
4286         (init_pragma): Activate #pragma redefine_extname for mudflap.
4287         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
4288         (pp_c_initializer): Accept any type CONSTRUCTOR.
4289         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
4290         COMPLEX_TYPE.
4291         (decl_name_str): New local function.
4292         (pp_c_direct_declarator): Call it.
4293         (pp_c_primary_expression): Call it.
4294         (pp_c_id_expression): Call it.
4295         (pp_c_statement): Call it.
4296         (print_c_tree): Create new pp object.
4297         * c-pretty-print.h (pp_c_tree_decl_identifier,
4298         print_c_tree): Declare.
4299         * c-semantics.c: Include langhooks.h
4300         (lang_expand_stmt, lang_expand_decl_stmt,
4301         find_reachable_label_1, find_reachable_label,
4302         expand_unreachable_if_stmt, expand_unreachable_stmt,
4303         genrtl_do_stmt_1): Remove.
4304         (begin_stmt_tree): Don't check for changed filename.
4305         Call annotate_with_locus.
4306         (finish_stmt_tree): Don't set line for end of function.
4307         (build_stmt): Don't check type nodes for
4308         side effects.
4309         (build_stmt): Set TREE_SIDE_EFFECTS.
4310         Set EXPR_LOCUS instead of STMT_LINENO.
4311         (lang_expand_stmt, lang_expand_decl_stmt,
4312         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4313         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4314         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
4315         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
4316         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
4317         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
4318         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
4319         find_reachable_label_1, expand_unreachable_if_stmt,
4320         expand_unreachable_stmt): Remove.
4321         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
4322         * c-simplify.c: New file.
4323         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
4324         (struct lang_type): Add fields enum_min and enum_max.
4325         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
4326         (c_expand_decl, c_missing_noreturn_ok_p,
4327         c_types_compatible_p): Declare.
4328         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
4329         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
4330         (default_function_array_conversion): Rely on build to
4331         set TREE_CONSTANT.
4332         (parser_build_binary_op, pointer_diff): Likewise.
4333         (build_unary_op, build_binary_op): Likewise.
4334         (build_array_ref):
4335         (build_external_ref): Set TREE_INVARIANT.
4336         (build_c_cast, pop_init_level): Likewise.
4337         (process_init_element): Use ASM_VOLATILE_P.
4338         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
4339         (c_finish_case): Call c_do_switch_warnings.
4340         * c.opt (fdump-): Remove.
4341         * calls.c (try_to_integrate): Remove.
4342         (prepare_call_address): Replace fndecl arg with a
4343         precomputed static chain value.
4344         (emit_call_1): New argument for full call expr.
4345         (flags_from_decl_or_type): Call special_function_p.
4346         (initialize_argument_information): Add argument
4347         may_tailcall.
4348         (purge_reg_equiv_notes): New.
4349         (expand_call): Do not try to expand calls inline.
4350         (fixup_tail_calls): New.
4351         * cfg.c: Include timevar.h and ggc.h.
4352         (bb_pool, edge_pool): Remove.
4353         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
4354         (entry_exit_blocks): Remove.
4355         (rbi_pool): Declare.
4356         (init_flow): Do not create pools.
4357         Allocate entry/exit block.
4358         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
4359         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
4360         (unlink_block): Clear b->prev_bb and b->next_bb.
4361         (compact_blocks): Clear all slots of BASIC_BLOCK array.
4362         (dump_flow_info): Work on trees too.
4363         (dump_cfg_bb_info): New.
4364         (brief_dump_cfg): New.
4365         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
4366         (find_edge): New.
4367         * cfgbuild.c (rtl_make_eh_edge): Rename from
4368         make_eh_edge.  Update all users.
4369         (find_basic_blocks): Don't call VARRAY_FREE on
4370         basic_block_info.
4371         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
4372         and newpos2.
4373         (delete_unreachable_blocks): Return changed status.
4374         (merge_seq_blocks): New.
4375         * cfghooks.c: Include tree-flow.h
4376         (tree_register_cfg_hooks, ir_type): New.
4377         (redirect_edge_and_branch): Change return type to edge.
4378         (predict_edge, predicted_by_p, can_duplicate_block_p,
4379         duplicate_block, block_ends_with_call_p,
4380         block_ends_with_condjump_p, flow_call_edges_add): New.
4381         * cfghooks.h (redirect_edge_and_branch): Change return
4382         type to edge.
4383         (predict_edge, predicted_by_p, can_duplicate_block_p,
4384         duplicate_block, block_ends_with_call_p,
4385         block_ends_with_condjump_p, flow_call_edges_add): Declare.
4386         (redirect_edge_and_branch): Change return type to edge.
4387         (struct cfg_hooks): Add fields block_ends_with_call_p,
4388         block_ends_with_condjump_p, flow_call_edges_add,
4389         predict_edge, predicted_by_p, can_duplicate_block_p and
4390         duplicate_block.
4391         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
4392         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
4393         (fixup_reorder_chain): Use initialize_bb_rbi.
4394         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
4395         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
4396         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
4397         (insn_locators_initialize): Use new info about blocks.
4398         * cfglayout.h (typedef struct reorder_block_def): Moved to
4399         basic_block.h.
4400         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
4401         removed.
4402         * cfgloop.c: Include tree.h and tree-flow.h.
4403         * cfgloop.h (create_loop_notes): Declare.
4404         * cfgloopmanip.c (create_loop_notes): New.
4405         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
4406         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
4407         and duplicate_block fields.
4408         (create_basic_block_structure): Don't look at
4409         RTX_INTEGRATED_P.
4410         (rtl_block_ends_with_call_p): New.
4411         (rtl_block_ends_with_condjump_p): New.
4412         (need_fake_edge_p): Moved from cfganal.c.
4413         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
4414         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
4415         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
4416         (cfg_layout_rtl_cfg_hooks): Ditto.
4417         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
4418         functions to be reachable.
4419         * cgraphunit.c (decide_is_function_needed):
4420         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
4421         inline functions don't need to be output.
4422         (cgraph_assemble_pending_functions): Don't do anything
4423         special for nested functions.
4424         (cgraph_mark_functions_to_output): Likewise.
4425         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
4426         (cgraph_analyze_function): Use estimate_num_insns.
4427         (cgraph_mark_functions_to_output): Likewise.
4428         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
4429         (cgraph_expand_function): Allow functions to not be
4430         emitted.
4431         (cgraph_remove_unreachable_nodes):
4432         (cgraph_recursive_inlining_p): Simplify.
4433         (lookup_recursive_calls,
4434         cgraph_decide_recursive_inlining): New.
4435         (cgraph_decide_inlining_*): Update calls of
4436         cgraph_mark_inline.
4437         * combine.c (get_pos_from_mask): Always set *plen.
4438         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
4439         ftree-based-profiling, ftree-ccp, ftree-ch,
4440         ftree-combine-temps, ftree-copyrename, ftree-dce,
4441         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
4442         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
4443         ftree-lrs): Add.
4444         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
4445         Undefine.
4446         * configure.ac: Add --enable-tree-browser option.
4447         Add --with-libbanshee option.
4448         Add GMPLIBS and GMPINC.
4449         * configure: Regenerate.
4450         * coverage.c (tree_ctr_tables): New.
4451         (coverage_counter_alloc): Use it.
4452         (build_ctr_info_value): Ditto.
4453         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
4454         (tree_coverage_counter_ref): New.
4455         * coverage.h (coverage_counter_ref): Remove declaration.
4456         (rtl_coverage_counter_ref): Declare.
4457         (tree_coverage_counter_ref): Declare.
4458         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
4459         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
4460         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
4461         (struct cse_basic_block_data): Rename enum values to not
4462         conflict with profile.h; update all uses.
4463         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
4464         in comments.
4465         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
4466         * diagnostic.h (debug_output_buffer, dump_generic_node,
4467         print_generic_stmt, print_generic_stmt_indented,
4468         print_generic_expr, print_generic_decl,
4469         debug_generic_expr, debug_generic_stmt, debug_c_tree):
4470         Declare.
4471         * dominance.c: Cache immediate dominators.
4472         * domwalk.c: New file.
4473         * domwalk.h: New file.
4474         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
4475         (gen_subprogram_die): Generate a DIE for a named
4476         return value.
4477         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
4478         (add_location_or_const_value_attribute): Likewise.
4479         (add_bound_info): Likewise.
4480         (gen_decl_die): Likewise.
4481         * emit-rtl.c (maybe_set_first_label_num): New.
4482         (copy_most_rtx): Don't copy the integrated flag.
4483         Copy the new return_val flag.
4484         * et-forest.c (MAX_NODES): Define.
4485         (record_path_before_1): Abort if len is greater than
4486         MAX_NODES.
4487         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
4488         gen_eh_region_catch, gen_eh_region_allowed,
4489         gen_eh_region_must_not_throw, get_eh_region_number,
4490         get_eh_region_may_contain_throw, get_eh_region_tree_label,
4491         set_eh_region_tree_label, expand_resx_expr): New.
4492         (expand_eh_region_start, expand_start_catch): Use them.
4493         (expand_end_catch): Tidy.
4494         (note_eh_region_may_contain_throw): Take region argument.
4495         (note_current_region_may_contain_throw): New.
4496         (get_exception_filter): Export.
4497         (collect_eh_region_array): Export.
4498         (remove_unreachable_regions): Check ERT_TRY based on reachability
4499         of catches, not reachability of continue_label.  Never remove
4500         ERT_MUST_NOT_THROW regions.
4501         (collect_rtl_labels_from_trees): New.
4502         (convert_from_eh_region_ranges): Use it.
4503         (connect_post_landing_pads): Handle dying cleanups.
4504         (struct reachable_info): Add callback data.
4505         (add_reachable_handler): Invoke the callback.
4506         (foreach_reachable_handler): New.
4507         (reachable_handlers): Use it.
4508         (arh_to_landing_pad, arh_to_label): New.
4509         (can_throw_internal_1): Split out from can_throw_internal.
4510         (can_throw_external_1): Similarly.
4511         * except.h: Update.
4512         * explow.c (emit_stack_save): Remove savearea mode check.
4513         (update_nonlocal_goto_save_area): New.
4514         (allocate_dynamic_stack_space): Use it.
4515         (probe_stack_range): Never emit loop notes.
4516         * expmed.c (extract_fixed_bit_field): Always propagate the
4517         target for the shift if it is a REG.
4518         * expr.c: Include tree-iterator.h
4519         (is_zeros_p): Remove.
4520         (categorize_ctor_elements_1, categorize_ctor_elements): New.
4521         (count_type_elements): New.
4522         (mostly_zeros_p): Use them.
4523         (expr_wfl_stack): Remove.
4524         (convert_move): Do nothing if to and from are the same.
4525         (emit_block_move_via_loop): Don't emit LOOP notes.
4526         (emit_move_insn): Don't handle CONSTANT_P_RTX.
4527         (emit_move_insn_1): Don't generate inline warnings.
4528         (expand_vars, expand_var): Split from ...
4529         (expand_expr_1): ... here.
4530         (expand_expr_real, expand_expr_real_1):  Use new macros
4531         EXPR_LOCATION and EXPR_HAS_LOCATION.
4532         * expr.h (simplify_builtin_fputs,
4533         simplify_builtin_strcpy, simplify_builtin_strncpy,
4534         expand_var, fixup_tail_calls,
4535         update_nonlocal_goto_save_area): Declare.
4536         (lookup_static_chain, expand_inline_function,
4537         mark_seen_cases): Remove.
4538         (prepare_call_address): Change type of 2nd argument to
4539         rtx.
4540         * final.c (profile_function): Update static chain test.
4541         (final): Don't look at RTX_INTEGRATED_P.
4542         * flags.h (flag_mudflap, flag_mudflap_threads,
4543         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4544         flag_tree_dce, flag_tree_combine_temps,
4545         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4546         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4547         flag_tree_points_to): Declare.
4548         (enum pta_type): Declare.
4549         * flow.c (lang_missing_noreturn_ok_p): Remove.
4550         (check_function_return_warnings): Remove.
4551         (update_life_info): Update comments.
4552         (free_basic_block_vars): Don't call VARRAY_FREE for
4553         basic_block_info.
4554         (regno_uninitialized): Remove.
4555         * fold-const.c (int_const_binop): Make extern.
4556         (non_lvalue): Rely on build to set TREE_CONSTANT.
4557         (operand_equal_p): Replace only_const argument with
4558         flags.  Allow pure functions if OEP_PURE_SAME.
4559         (fold): Use OEP_ONLY_CONST.
4560         (invert_truthvalue) <NOP_EXPR> Break if argument is of
4561         boolean type.
4562         (fold_relational_hi_lo,
4563         nondestructive_fold_binary_to_constant,
4564         nondestructive_fold_unary_to_constant,
4565         fold_read_from_constant_string): New.
4566         * function.c (struct function): Remove calls_constant_p.
4567         (current_function_calls_constant_p): Remove.
4568         (inline_function_decl): Remove.
4569         (put_var_into_stack): Don't use it.
4570         (fix_lexical_addr): Likewise.
4571         (inline_function_decl): Remove extern declaration.
4572         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4573         (trampolines_created): Move to varasm.c.
4574         (free_after_compilation): Update for removed fields.
4575         (allocate_struct_function): Likewise.
4576         (delete_handlers, lookup_static_chain): Remove.
4577         (fix_lexical_addr): Don't consider non-local variable refs.
4578         (trampoline_address): Remove.
4579         (round_trampoline_addr): Move to builtins.c.
4580         (adjust_trampoline_addr): Remove.
4581         (expand_function_start): Update for changes to static chain
4582         and nonlocal goto handling.
4583         (initial_trampoline): Move to varasm.c.
4584         (expand_function_end): Don't build trampolines or kill
4585         unreferenced nonlocal goto labels.
4586         (free_after_compilation): Don't set it.
4587         (expand_function_end): Likewise.
4588         (setjmp_vars_warning): Rename from
4589         uninitialized_vars_warning, remove uninitialized vars warning.
4590         (uninitialized_vars_warning): Remove old comment
4591         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4592         and do not call the langhook.
4593         (expand_function_start, expand_function_end): Don't do
4594         function instrumentation here.
4595         (clear_block_marks): Rename from reorder_blocks_0, export.
4596         (blocks_nreverse): Export.
4597         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4598         of rtl.
4599         (reset_block_changes, record_block_change, finalize_block_changes,
4600         check_block_change, free_block_changes): New functions.
4601         (assign_parms): Setting of current_function_stdarg
4602         moved ...
4603         (allocate_struct_function): ... here.
4604         * function.h (struct function): Remove x_nonlocal_labels,
4605         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4606         x_context_display, x_trampoline_list, needs_context.
4607         Add static_chain_decl, nonlocal_goto_save_area.
4608         (struct function): Remove x_clobber_return_insn.
4609         Add tail_call_emit field, last_label_uid,
4610         unexpanded_var_list, dont_emit_block_notes,
4611         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4612         (clear_block_marks): Declare.
4613         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4614         (mfwrap_spec, mflib_spec): Declare.
4615         (cpp_unique_options, cc1_options): Ditto.
4616         (default_compilers): Add .F and .f90.
4617         (static_specs): Add mfwrap and mflib.
4618         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4619         CONSTANT_RTX_P.
4620         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4621         Update to match insns field in struct edge_def.
4622         * gdbinit.in (pgs, pge): Define.
4623         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4624         instead of the integrated flag.
4625         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4626         * gengtype-yacc.y (bitfieldlen): Add empty action.
4627         (struct_fields): Accept unnamed bitfields.
4628         (bitfieldlen): Split from ...
4629         (bitfieldopt): ... here.
4630         * gengtype.c (ifiles): Add tree-alias-type.h and
4631         tree-flow.h.
4632         * genrecog.c (validate_pattern): Do not handle
4633         CONSTANT_P_RTX.
4634         * gimple-low.c: New file.
4635         * gimplify.c: New file.
4636         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4637         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4638         * ifcvt.c (dead_or_predicable): Initialize local variable
4639         'earliest'.
4640         * input.h (expr_wfl_stack): Remove.
4641         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4642         (setup_initial_hard_reg_value_integration): Likewise.
4643         (initialize_for_inline): Likewise.
4644         (note_modified_parmregs): Likewise.
4645         (integrate_parm_decls): Likewise.
4646         (process_reg_param): Likewise.
4647         (save_parm_insns): Likewise.
4648         (copy_insn_list): Likewise.
4649         (copy_insn_notes): Likewise.
4650         (compare_blocks): Likewise.
4651         (find_block): Likewise.
4652         (inlining): Likewise.
4653         (function_cannot_inline_p): Likewise.
4654         (parmdecl_map): Likewise.
4655         (in_nonparam_insns): Likewise.
4656         (save_for_inline): Likewise.
4657         (FIXED_BASE_PLUS): Likewise.
4658         (expand_inline_function): Likewise.
4659         (copy_rtx_and_substitute): Don't look at map->integrating,
4660         map->inline_target, and inlining, since we are never copying
4661         for integrating.
4662         Don't abort on RTX_INTEGRATED_P.
4663         (old_fun): Remove.
4664         (output_inline_function): Remove.
4665         * integrate.h (struct inline_map): Remove fields integrating,
4666         block_map, leaf_reg_map, inline_target, and local_return_label.
4667         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4668         copy_loop_headers, never_reached_warning): Removed.
4669         (any_uncondjump_p): Reject nonlocal goto.
4670         * langhooks-def.h (lhd_types_compatible_p,
4671         lhd_expand_decl, lhd_gimplify_expr): Declare.
4672         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4673         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4674         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4675         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4676         LANG_HOOKS_GIMPLIFY_EXPR,
4677         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4678         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4679         LANG_HOOKS_GIMPLIFY_EXPR,
4680         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4681         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4682         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4683         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4684         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4685         LANG_HOOKS_DECL_UNINIT,
4686         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4687         * langhooks.c: Include tree-simple.h.
4688         (lhd_expand_decl): New.
4689         (lhd_types_compatible_p): New.
4690         (lhd_decl_uninit): Remove.
4691         (lhd_gimplify_expr): New.
4692         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4693         Remove.
4694         (struct lang_hooks_for_functions): Add field
4695         missing_noreturn_ok_p.
4696         (struct lang_hooks): Add field expand_decl,
4697         types_compatible_p, gimplify_expr and
4698         gimple_before_inlining.
4699         Remove fields decl_uninit and rtl_expand
4700         * opts.c (decode_options): Set flag_tree_ccp,
4701         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4702         flag_tree_pre, flag_tree_ter,
4703         flag_tree_live_range_split, flag_tree_sra,
4704         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4705         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4706         OPT_fmudflapth, OPT_fmudflapir,
4707         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4708         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4709         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4710         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4711         OPT_ftree_points_to_ and OPT_ftree_pre.
4712         * output.h (regno_uninitialized, find_basic_blocks,
4713         cleanup_cfg, delete_unreachable_blocks,
4714         check_function_return_warnings): Remove.
4715         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4716         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4717         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4718         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4719         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4720         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4721         Define.
4722         * passes.c (rest_of_decl_compilation):
4723         (rest_of_handle_sibling_calls): Remove.
4724         (rest_of_handle_inlining): Remove.
4725         (rest_of_handle_gcse): Do not run
4726         purge_builtin_constant_p.
4727         (rest_of_compilation): Update.
4728         Do not call copy_loop_headers.
4729         Do rtl-based profiling only when
4730         !flag_tree_based_profiling.  Register rtl-based profiling
4731         hooks.
4732         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4733         (predicted_by_p): Rename to ...
4734         (rtl_predicted_by_p): .. this one; make global
4735         (tree_predicted_by_p): New.
4736         (dump_prediction): Add FILE argument.
4737         (predict_edge): Rename to ...
4738         (rtl_predict_edge): .. this one.
4739         (tree_predict_edge): New.
4740         (combine_predictions_for_insn): Update calls of predict_edge.
4741         (predict_loops): Break out from ...
4742         (estimate_probability): ... here; update comments; move updating
4743         of unknown probabilities from ...
4744         (estimate_bb_frequencies): ... here.
4745         (combine_predictions_for_bb): New.
4746         (tree_predict_by_opcode): New.
4747         (tree_estimate_probability): New.
4748         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4749         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4750         * predict.h: Add include guard.
4751         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4752         * pretty-print.c (pp_write_text_to_stream): Make extern.
4753         * pretty-print.h (pp_write_text_to_stream): Declare.
4754         * print-rtl.c (print_rtx): Don't print the integrated flag.
4755         Print the return_val flag.
4756         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4757         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4758         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4759         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4760         * profile.c: Include cfghooks.h, tree-flow.h.
4761         (profile_hooks): New.
4762         (profile_dump_file): New.
4763         (instrument_edges): Use hooks instead of RTL-specific code.
4764         (instrument_values): Ditto.
4765         (get_exec_counts): Ditto.
4766         (compute_branch_probabilities): Ditto.
4767         (compute_value_histograms): Ditto.
4768         (branch_prob): Ditto.
4769         (find_spanning_tree): Ditto.
4770         (end_branch_prob): Ditto.
4771         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4772         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4773         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4774         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4775         (tree_register_profile_hooks): New.
4776         (rtl_register_profile_hooks): New.
4777         * ra-rewrite.c (rewrite_program): Clear variable info.
4778         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4779         * regs.h: Add include guards.
4780         * reload.c (decompose): Clear val using memset.
4781         * rtl.def (CONSTANT_P_RTX): Remove.
4782         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4783         (copy_loop_headers): Remove.
4784         (struct rtx_def): Replace the integrated flag with the
4785         return_val flag.
4786         (maybe_set_first_label_num): Declare.
4787         (init_branch_prob): Move declaration to value-prof.h.
4788         (end_branch_prob): Ditto.
4789         (branch_prob): Ditto.
4790         (never_reached_warning): Don't declare it.
4791         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4792         (hoist_insn_to_edge): Update to match field insns in
4793         struct edge_def.
4794         * sbitmap.c (sbitmap_realloc): New.
4795         * sbitmap.h (sbitmap_realloc): Declare.
4796         * sibcall.c: Remove file.
4797         * simplify-rtx.c (simplify_rtx): Do not handle
4798         CONSTANT_P_RTX.
4799         * stmt.c (parse_output_constraint): Don't warn for read-write
4800         memory operand.
4801         (tail_recursion_args): Use types_compatible_p langhook.
4802         (force_label_rtx): Don't look at inline_function_decl.
4803         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4804         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4805         (declare_nonlocal_label): Remove.
4806         (expand_goto): Don't handle nonlocal gotos.
4807         (expand_nl_handler_label): Remove.
4808         (expand_nl_goto_receivers): Remove.
4809         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4810         update_nonlocal_goto_save_area.
4811         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4812         (warn_if_unused_value): Likewise.
4813         (expand_start_loop, expand_loop_continue_here,
4814         expand_end_loop): Don't create loop notes.
4815         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4816         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4817         (expand_end_case_type): Don't do warn_switch handling.
4818         (pushcase, pushcase_range) Update add_case_node calls.
4819         (add_case_node): Add dont_expand_label argument.
4820         (same_case_target_p): Don't search rtl.
4821         (expand_start_bindings_and_block, expand_end_bindings):
4822         Don't emit block notes when dont_emit_block_notes.
4823         (using_eh_for_cleanups_p): Export.
4824         (expand_return): Allow any typed rhs.
4825         (expand_stack_alloc): New.
4826         (expand_stack_save, expand_stack_restore): New.
4827         (containing_blocks_have_cleanups_or_stack_level): New
4828         function.
4829         (asm_op_is_mem_input): New fn.
4830         (expand_asm_expr): New fn.
4831         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4832         nodes.
4833         * stor-layout.c (layout_type): Just return if type is
4834         error_mark_node.
4835         (update_alignment_for_field): Export.
4836         (variable_size): We don't care about global_bindings_p if
4837         the frontend doesn't want a list of the expressions.
4838         * system.h: Poison INTEGRATE_THRESHOLD.
4839         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4840         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4841         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4842         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4843         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4844         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4845         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4846         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4847         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4848         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4849         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4850         TV_CONTROL_DEPENDENCES): Define.
4851         * toplev.c: Include tree-alias-common.h
4852         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4853         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4854         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4855         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4856         flag_tree_combine_temps, flag_tree_ter,
4857         flag_tree_live_range_split, flag_tree_dom,
4858         flag_tree_copyrename, flag_tree_dse): Declare.
4859         (f_options): Add tree-based-profiling, tree-gvn,
4860         tree-pre, tree-ccp, tree-dce,
4861         tree-dominator-opts, tree-copyrename, tree-dse,
4862         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4863         (wrapup_global_declarations): Don't output nested inlined functions.
4864         (general_init): Call init_tree_optimization_passes.
4865         (process_options): Sorry for -ftree-based-profiling plus
4866         -ftest-coverage or -fprofile-values.
4867         * toplev.h (init_tree_optimization_passes,
4868         flag_tree_based_profiling): Declare.
4869         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4870         * tree-alias-ander.c: New file.
4871         * tree-alias-ander.h: New file.
4872         * tree-alias-common.c: New file.
4873         * tree-alias-common.h: New file.
4874         * tree-alias-type.c: New file.
4875         * tree-alias-type.h: New file.
4876         * tree-browser.c: New file.
4877         * tree-browser.def: New file.
4878         * tree-cfg.c: New file.
4879         * tree-complex.c: New file.
4880         * tree-dfa.c: New file.
4881         * tree-dump.c (dump_enable_all): New.
4882         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4883         (dump_node): Remove const from field suffix and swtch.
4884         (dump_files): Add null entry, .generic, .nested, .vcg,
4885         .xml and a match-all entry.
4886         (extra_dump_files, extra_dump_files_in_use,
4887         extra_dump_files_alloced): Declare
4888         (dump_option_value_info): Add raw, details, stats,
4889         blocks, vops, lineno, uid and all.
4890         (dump_register): New.
4891         (get_dump_file_info): New.
4892         (dump_begin): Call it.
4893         Do nothing for TDI_none.
4894         (dump_begin): Include phase number in dump filename.
4895         (dump_enable_all): New.
4896         (dump_switch_p_1): Split out from dump_switch_p.
4897         (dump_switch_p): Handle extra_dump_files.
4898         Start our scan at TDI_none + 1.
4899         If -fdump-tree-all was given, call dump_enable_all.
4900         * tree-dump.h: Include splay-tree.h.
4901         (dump_function, dump_function_to_file, dump_register):
4902         Declare.
4903         * tree-eh.c: New file.
4904         * tree-flow-inline.h: New file.
4905         * tree-flow.h: New file.
4906         * tree-inline.c: Re-write to handle inlining on GIMPLE.
4907         * tree-inline.h (walk_tree,
4908         walk_tree_without_duplicates): Move to tree.h.
4909         (estimate_num_insns): Declare.
4910         * tree-into-ssa.c: New file.
4911         * tree-iterator.c: New file.
4912         * tree-iterator.h: New file.
4913         * tree-mudflap.c: New file.
4914         * tree-mudflap.h: New file.
4915         * tree-nested.c: New file.
4916         * tree-nomudflap.c: New file.
4917         * tree-nrv.c: New file.
4918         * tree-optimize.c (dump_flags, vars_to_rename,
4919         in_gimple_form, all_passes, pass_gimple,
4920         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
4921         (execute_gimple, execute_rebuild_bind,
4922         gate_all_optimizations, execute_del_cfg,
4923         register_one_dump_file, register_dump_files, dup_pass_1,
4924         init_tree_optimization_passes, execute_todo,
4925         execute_one_pass, execute_pass_list): New.
4926         (clear_decl_rtl): Remove.
4927         (tree_rest_of_compilation): Update to use tree
4928         optimizers.
4929         * tree-outof-ssa.c: New file.
4930         * tree-pass.h: New file.
4931         * tree-phinodes.c: New file.
4932         * tree-pretty-print.c: New file.
4933         * tree-profile.c: New file.
4934         * tree-simple.c: New file.
4935         * tree-simple.h: New file.
4936         * tree-sra.c: New file.
4937         * tree-ssa-alias.c: New file.
4938         * tree-ssa-ccp.c: New file.
4939         * tree-ssa-copy.c: New file.
4940         * tree-ssa-copyrename.c: New file.
4941         * tree-ssa-dce.c: New file.
4942         * tree-ssa-dom.c: New file.
4943         * tree-ssa-dse.c: New file.
4944         * tree-ssa-forwprop.c: New file.
4945         * tree-ssa-live.c: New file.
4946         * tree-ssa-live.h: New file.
4947         * tree-ssa-loop.c: New file.
4948         * tree-ssa-operands.c: New file.
4949         * tree-ssa-operands.h: New file.
4950         * tree-ssa-phiopt.c: New file.
4951         * tree-ssa-pre.c: New file.
4952         * tree-ssa.c: New file.
4953         * tree-ssanames.c: New file.
4954         * tree-tailcall.c: New file.
4955         * tree.c: Include tree-iterator.h, basic-block.h and
4956         tree-flow.h.
4957         (tree_node_kind): Add phi_nodes and ssa names.
4958         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
4959         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
4960         (make_node_stat): Handle PHI_NODE and SSA_NAME.
4961         <'c'> Set TREE_INVARIANT.
4962         (copy_node_stat): Abort if trying to copy a
4963         STATEMENT_LIST.
4964         Clear TREE_VISITED.
4965         Clear annotation field.
4966         (build_constructor): Copy TREE_INVARIANT from vals.
4967         Don't clear TREE_CONSTANT.
4968         (expr_first, expr_last, expr_length): Remove.
4969         (staticp): Pass unknown component references to the language.
4970         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
4971         (skip_simple_arithmetic): Likewise.
4972         (stabilize_reference_1): Likewise.
4973         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
4974         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
4975         STATEMENT_LIST.
4976         (lhd_unsave_expr_now): Remove.
4977         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
4978         (recompute_tree_invarant_for_addr_expr): New.
4979         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
4980         Call recompute_tree_invarant_for_addr_expr.
4981         Set TREE_INVARIANT accordingly.
4982         (build2_stat): Don't handle CALL_EXPR.
4983         (build3_stat): Don't call build2_stat for CALL_EXPRs.
4984         (build_expr_wfl): Remove.
4985         (annotate_with_file_line, annotate_with_locus): New.
4986         (simple_cst_equal): Call simple_cst_list_equal to compare
4987         CONSTRUCTOR_ELTS pointers.
4988         (iterative_hash_expr): Don't hash types associated
4989         with conversions.  Instead hash on the signedness of the
4990         toplevel object and the operand of the conversion.
4991         (dump_tree_statistics): Call ssanames_print_statistics
4992         and phinodes_print_statistics.
4993         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4994         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4995         needs_to_live_in_memory): New.
4996         (initializer_zerop): Handle VECTOR_CST.  Don't check
4997         AGGREGATE_TYPE_P for CONSTRUCTOR.
4998         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4999         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
5000         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
5001         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
5002         (CALL_EXPR): Add another operand.
5003         (EXPR_WITH_FILE_LOCATION): Remove.
5004         (SWITCH_EXPR): Add another operand.
5005         * tree.h: Update various comments.
5006         (union tree_ann_d): Forward declare.
5007         (struct tree_common): Add fields nowarning_flag,
5008         invariant_flag and visited.
5009         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
5010         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
5011         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
5012         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
5013         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
5014         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
5015         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
5016         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
5017         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
5018         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
5019         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
5020         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
5021         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
5022         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
5023         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
5024         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
5025         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
5026         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
5027         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
5028         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
5029         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
5030         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
5031         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
5032         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
5033         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
5034         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
5035         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
5036         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
5037         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
5038         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
5039         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
5040         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
5041         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
5042         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
5043         TDF_UID,): Define.
5044         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
5045         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
5046         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
5047         EXPR_WFL_SET_LINECOL): Remove.
5048         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
5049         make_phi_node, init_phinodes, fini_phinodes,
5050         release_phi_node, phinodes_print_statistics,
5051         init_ssanames, fini_ssanames, make_ssa_name,
5052         release_ssa_name, ssanames_print_statistics,
5053         annotate_with_file_line, build_empty_stmt,
5054         annotate_with_locus, expr_only, categorize_ctor_elements,
5055         count_type_elements, add_var_to_bind_expr, is_essa_node,
5056         expand_stack_alloc, expand_stack_save,
5057         expand_stack_restore, add_case_node, operand_equal_p,
5058         nondestructive_fold_unary_to_constant,
5059         nondestructive_fold_binary_to_constant,
5060         fold_read_from_constant_string, int_const_binop,
5061         strip_float_extensions, simplify_builtin, c_strlen,
5062         recompute_tree_invarant_for_addr_expr,
5063         needs_to_live_in_memory, make_vector,
5064         setjmp_vars_warning, update_alignment_for_field,
5065         expand_asm_expr, asm_op_is_mem_input,
5066         containing_blocks_have_cleanups_or_stack_level,
5067         create_artificial_label, gimplify_function_tree,
5068         get_name, unshare_expr, walk_tree,
5069         walk_tree_without_duplicates, in_gimple_form): Declare.
5070         (struct tree_exp): Add fields locus and block.
5071         (struct tree_ssa_name, struct edge_def, struct
5072         tree_phi_node, struct tree_eref_common, struct
5073         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
5074         union alias_var_def, struct tree_statement_list_node,
5075         struct tree_statement_list, enum operand_equal_flag): Declare.
5076         (enum tree_node_structure_enum): Add TS_SSA_NAME,
5077         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
5078         TS_STATEMENT_LIST.
5079         (union tree_node): Add fields ssa_name, phi, eref, ephi,
5080         euse and stmt_list.
5081         (function_cannot_inline_p, uninitialized_vars_warning,
5082         save_for_inline, output_inline_function, all_cases_count,
5083         check_for_full_enumeration_handling,
5084         declare_nonlocal_label): Remove.
5085         (enum tree_dump_index): Add TDI_none, TDI_tu,
5086         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
5087         * unroll.c (unroll_loop): Don't clear map->inline_target.
5088         * unwind-sjlj.c (uw_install_context): Make a proper static inline
5089         function.
5090         * value-prof.c (value_prof_hooks): New.
5091         (find_values_to_profile): Rename to rtl_find_values_to_profile.
5092         Move rtl-specific bits in from branch_prob.
5093         (value_profile_transformations): Rename to
5094         rtl_value_profile_transformations.
5095         (struct value_prof_hooks): New.
5096         (rtl_value_prof_hooks): New.
5097         (rtl_register_value_prof_hooks): New.
5098         (tree_find_values_to_profile): New stub.
5099         (tree_value_profile_transformations): New stub.
5100         (tree_value_prof_hooks): New stub.
5101         (tree_register_value_prof_hooks): New stub.
5102         (find_values_to_profile): New.
5103         (value_profile_transformations): New.
5104         * value-prof.h: Add multiple inclusion guard.
5105         (struct histogram_value): Change rtx fields to void *.
5106         (rtl_register_value_prof_hooks): New declaration.
5107         (tree_register_value_prof_hooks): New declaration.
5108         (find_values_to_profile): New declaration.
5109         (free_profiled_values): New declaration.
5110         (value_profile_transformations): New declaration.
5111         (struct profile_hooks): New declaration.
5112         (init_branch_prob): Declaration moved from rtl.h.
5113         (branch_prob): Declaration moved from rtl.h.
5114         (end_branch_prob): Declaration mooved from rtl.h.
5115         (tree_register_profile_hooks): New declaration.
5116         (rtl_register_profile_hooks): New declaration.
5117         (tree_profile_hooks): New declaration.
5118         (rtl_profile_hooks): New declaration.
5119         * varasm.c: Include tree-mudflap.h.
5120         (TRAMPOLINE_ALIGNMENT): Remove.
5121         (make_decl_rtl): Call mudflap_enqueue_decl.
5122         (assemble_static_space):
5123         (assemble_trampoline_template): Set and return
5124         TRAMPOLINE_ALIGNMENT.
5125         * varray.c (element): Add GENERIC_PTR_NOGC entry.
5126         Add entry for 'tree *'.
5127         Add entry for struct edge_def *.
5128         (varray_copy): New.
5129         * varray.h (enum varray_data_enum): Add
5130         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
5131         VARRAY_DATA_TREE_PTR.
5132         (union varray_data_tag): Corresponding changes.
5133         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
5134         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
5135         VARRAY_EDGE, VARRAY_TREE_PTR,
5136         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
5137         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
5138         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
5140         * config/*/*: Various updates for changed macros, tree
5141         codes, etc.  Check ChangeLog.tree-ssa.
5143         * doc/cfg.texi: New file.
5144         * doc/tree-ssa.texi: New file.
5145         * doc/c-tree.texi: Document new codes.
5146         * doc/gccint.texi: Include new files.
5147         * doc/install.texi: Document new features.
5148         * doc/invoke.texi: Document new switches.
5149         * doc/passes.texi: Document new passes.
5150         * doc/rtl.texi: Update changed RTL codes.
5151         * doc/sourcebuild.texi: Update build instructions.
5152         * doc/standards.texi: Document Fortran changes.
5153         * doc/tm.texi: Update.
5155 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
5157         Replace several arrays with a struct of arrays.
5158         * combine.c (struct reg_stat): New.
5159         (init_reg_last_arrays): Renamed to...
5160         (init_reg_last): ...this.  Callers adjusted.
5161         (reg_stat): New.
5162         (combine_instructions): Allocate it and use it.
5163         (reg_last_death, reg_last_set, reg_last_set_value,
5164         reg_last_set_label, reg_last_set_table_tick,
5165         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
5166         reg_last_set_mode, reg_last_set_nonzero_bits,
5167         reg_last_set_sign_bit_copies): Replace throughout
5168         with items of reg_stat.
5170 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5172         PR optimization/15100
5173         * combine.c (distribute_notes): Don't create a dangling
5174         REG_LIBCALL/REG_RETVAL note.
5176 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5178         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
5180         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
5181         negv2si2.
5183 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5185         * doc/md.texi (Standard Names): Fix typo in vec_init description.
5187 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
5189         * doc/gty.texi (GTY Options): Clarify example.
5191 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
5193         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
5194         Add const qualifier to altivec vector type if one is needed.
5196 2004-05-11  Paul Brook  <paul@codesourcery.com>
5198         * flags.h (flag_short_enums): Update comment.
5199         * opts.c (decode_options): Set flag_short_enums to 2.
5200         * toplev.c (flag_short_enums): Update comment.
5201         (process_options): Call default_short_enums target hook.
5203 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
5205         PR target/14063
5206         * config/rs6000/altivec.md (altivec_dssall):
5207         Change to unspec_volatile.
5208         (altivec_dss): Likewise.
5210 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
5212         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
5213         vnor.
5214         ("one_cmplv8hi2"): Same.
5215         ("one_cmplv4si2"): Same.
5217 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
5219         PR target/15130
5220         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
5221         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
5222         into account.  Compute the correct number of general registers
5223         for the return value.  Generate a special push/pop sequence when
5224         failing to get a temporary register for non SHmedia epilogue.
5225         (sh_expand_epilogue): Add an argument to show whether it's for
5226         sibcall or not.  Set the 3rd argument of output_stack_adjust to
5227         -1 if needed.
5228         (sh_need_epilogue): Call sh_expand_epilogue with 0.
5229         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
5230         with 1.
5231         (epilogue): Call sh_expand_epilogue with 0.
5233 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
5235         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
5236         goto a cleanup label.  After the cleanup, free the allocated memory.
5238 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
5240         * config/rs6000/altivec.h (vec_sld): Add overloads for
5241         argument/return types of 'vector bool int', 'vector bool short'
5242         and 'vector bool char'.
5244 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
5246         * c-decl.c (store_parm_decls_newstyle): Correct test for a
5247         nested function.
5249 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
5251         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
5252         treating missing ones as "".
5253         * config/mips/mips.md: Remove constraints from match_operands and
5254         match_scratches if they appear in define_expands (except reload*),
5255         define_peephole2s, define_splits or attribute specifications.
5256         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
5257         constraint strings.
5259 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5261         * config/rs6000/rs6000.c (function_arg_boundary): Always align
5262         AltiVec vectors.
5263         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
5264         vectors by refererence.  Align the same for TARGET_64BIT to a 16
5265         byte boundary.  Remove useless code.  Add function comment.
5266         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
5267         call to where it belongs.
5268         (function_arg_partial_nregs): Return true for all TARGET_32BIT
5269         -mabi=no-altivec AltiVec vectors.  Fix debug output.
5270         (rs6000_va_arg): Adjust for AltiVec change.
5272 2004-05-10  Paul Brook  <paul@codesourcery.com>
5274         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5275         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5276         (TARGET_DOUBLEWORD_ALIGN): Use it.
5277         (WCHAR_TYPE): Define.
5278         (WCHAR_SIZE_TYPE): Define.
5279         (SIZE_TYPE): Define.
5281 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5283         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
5284         when size is 8 bytes.
5285         (function_arg_advance): Account for stack space used by AltiVec
5286         args when -mabi=altivec.  Simplify alignment calculations.  For
5287         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
5288         (function_arg): Similarly.
5289         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
5290         not AltiVec ABI.
5291         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
5292         Correct alignment, and align before testing reg count.  Remove
5293         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
5294         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
5295         TARGET_FPRS here..
5296         (rs6000_function_value): .. not here before call.
5298 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5300         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
5302 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
5304         PR 15007
5305         * c-decl.c (current_file_decl): Rename to all_translation_units,
5306         adjust comment.
5307         (pop_scope): If popping file_scope, construct a
5308         TRANSLATION_UNIT_DECL and make it the context of all the
5309         symbols in the scope.
5310         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
5311         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
5312         anything to current_file_decl.
5313         (pushdecl_top_level): Likewise.
5314         (store_parm_decls_newstyle): Adjust check for nested function.
5315         (c_write_global_declarations): Update for renamed variable.
5317 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5319         * config/rs6000/rs6000-protos.h
5320         (rs6000_conditional_register_usage): Protoize.
5322         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
5324         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
5325         function.
5327 2004-05-08  Roger Sayle  <roger@eyesopen.com>
5329         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
5330         where op is a comparison operator and C1 and C2 are integer constants
5331         into a range check.
5332         (fold): Call fold_div_compare.
5334 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5336         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
5337         problems with earlier versions of the GNU compiler.
5339 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
5341         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5342         Declare.
5344         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
5345         (rs6000_hard_regno_mode_ok): New.
5346         (rs6000_init_hard_regno_mode_ok): New.
5347         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
5349         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
5350         result.
5352 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
5354         * config/rs6000/altivec.h (vector, pixel, bool): Do not
5355         define as macros #ifdef __APPLE_ALTIVEC__.
5357 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
5359         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
5360         Generate appropriate parallels for vector arguments
5361         passed to vararg functions. (function_arg): make the call
5362         to rs6000_mixed_function_arg for vector args as needed.
5364 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5366         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
5367         EABI_FLOAT_VARARGS_P.
5369 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5371         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
5372         * config/mips/mips.c (override_options): Disable branch likely
5373         instructions if TUNE_MIPS5500.
5375 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5377         * config/mips/mips.c (override_options): Allow the hi and lo registers
5378         to store any integral mode, not just MODE_INTs.
5380 2004-05-07  Paul Brook  <paul@codesourcery.com>
5382         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5383         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5384         (TARGET_DOUBLEWORD_ALIGN): Use it.
5385         (WCHAR_TYPE): Define.
5386         (WCHAR_SIZE_TYPE): Define.
5387         (SIZE_TYPE): Define.
5389 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5391         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
5392         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
5394 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
5396         * loop-doloop.c (doloop_valid_p): Make sure that body
5397         gets freed.
5399 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
5401         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
5402         declaration.
5403         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
5404         (sparc_skip_caller_unimp): New global variable.
5405         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
5406         Use it instead of SKIP_CALLERS_UNIMP_P.
5407         * config/sparc/sparc.md (call expander): Add sanity check.
5408         (call_address_struct_value_sp32): Re-sync with expander.
5409         (call_symbolic_struct_value_sp32): Likewise.
5410         (return peepholes): Use 'sparc_skip_caller_unimp' instead
5411         of custom predicate.
5413 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5415         PR c++/14962
5416         * c-pragma.c (handle_pragma_redefine_extname): Only change
5417         the assembler name of FUNCTION_DECLs and VAR_DECLs.
5419 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5421         * optabs.h (enum optab_index): Add new OTI_log1p.
5422         (log1p_optab): Define corresponding macro.
5423         * optabs.c (init_optabs): Initialize log1p_optab.
5424         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
5425         patterns.
5426         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
5427         using log1p_optab.
5428         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
5429         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5431         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
5433         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
5434         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
5435         Prototype here.
5436         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
5437         x87's fyl2xp1 instruction.
5438         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
5439         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
5440         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
5441         log1p  and log1pl built-ins as inline x87 intrinsics.
5443 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
5445         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
5446         * config/arm/freebsd.h: Likewise.
5447         * config/ia64/freebsd.h: Likewise.
5448         * config/sparc/freebsd.h: Likewise.
5450 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
5452         PR optimization/15296
5453         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
5454         getting last consecutive label at a branch.
5455         (relax_delay_slots): Similar, near top of loop.
5457 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5459         PR target/15202
5460         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
5461         register to general register.
5463 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
5465         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
5466         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
5467         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
5468         (STACK_BOUNDARY): Delete.
5470 2004-05-06  Stuart Hastings  <stuart@apple.com>
5472         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
5473         mistakenly clobbered by 1.423.
5475 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5477         * doc/invoke.texi: Document -mvr4130-align.
5478         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
5479         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
5480         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
5481         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
5482         * config/mips/mips.md: Include sched-int.h.
5483         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
5484         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
5485         (override_options): Enable -mvr4130-align at -O3 and above.
5486         (mips_sim_insn): New variable.
5487         (mips_sim): New structure.
5488         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
5489         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
5490         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
5491         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
5492         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
5493         (mips_reorg): Call vr4130_align_insns.
5494         (vr4130_last_insn): New variable.
5495         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
5496         (vr4130_swap_insns_p, vr4130_reorder): New functions.
5497         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
5498         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
5499         (mips_use_dfa_pipeline_interface): Return true for the same.
5500         * config/mips/4130.md: New file.
5501         * config/mips/mips.md: Include it.  Add a peephole2 to convert
5502         "mult;mflo" into "mtlo;macc".
5503         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
5504         target of maccs.
5505         (*msac_using_macc): New pattern.
5507 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5509         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5510         (ir_vr55_hilo): Split into...
5511         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5512         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5513         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
5514         Add various multiplication bypasses.
5515         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5516         multiplication.
5518 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
5520         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5521         attribute to "XF".
5523 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
5525         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
5526         (fmod_optab, drem_optab): Define corresponding macros.
5527         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5528         * genopinit.c (optabs): Implement fmod_optab and drem_optab
5529         using fmod?f3 and drem?f3 patterns.
5530         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5531         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5532         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5533         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5534         flag_unsafe_math_optimizations is set.
5536         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5537         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5539         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5540         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5541         Prototype here.
5542         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5543         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5544         fprem and fprem1 instructions.
5545         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5546         Rename insn definition to x86_fnstsw_1.
5547         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5548         x87 instructions.
5549         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5550         and fmodl built-ins as inline x87 intrinsics.
5551         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5552         and dreml built-ins as inline x87 intrinsics.
5554 2004-05-05  Roger Sayle  <roger@eyesopen.com>
5556         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5558 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
5560         PR driver/9822
5561         * doc/invoke.texi (Spec Files): Remove documentation of %c.
5563 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5565         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5566         representation.
5568 2004-05-06  Paul Brook  <paul@codesourcery.com>
5570         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5571         (arm_coproc_mem_operand): ... To this.
5572         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5573         (arm_legitimate_index_p): Ditto.
5574         (vfp_mem_operand): Rename ...
5575         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5576         (vfp_secondary_reload_class): Use it.
5577         (output_move_double): Use doubleword load/store instructions.
5578         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5579         * config/arm/arm.h (TARGET_LDRD): Define.
5580         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5581         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5582         New splitter for invalid doubleword loads.
5583         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5584         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5585         * doc/md.texi: Document Uy constraint.
5587 2004-05-05  Jan Hubicka  <jh@suse.cz>
5589         PR opt/14980
5590         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5591         inline clones.
5593 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5595         PR target/15290
5596         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5597         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5599 2004-05-05  Mike Stump  <mrs@apple.com>
5601         * config/darwin-c.c (add_framework): Copy the directory name as it
5602         can be freed later.  Also, ensure we always allocate enough room
5603         for the cached framework information.
5604         (find_subframework_header): Keep track of the directory where the
5605         subframework header was found.
5606         (framework_construct_pathname): Speed up by not trying to re-add a
5607         framework.
5608         * cppfiles.c (search_path_exhausted): Arrange for the missing
5609         header callback to be able to set the directory where the header
5610         was found.
5611         (cpp_get_dir): Add.
5612         * cpplib.h (missing_header_cb): Add a parameter.
5613         (cpp_get_dir): Add.
5615 2004-05-03  Mike Stump  <mrs@apple.com>
5617         * doc/invoke.texi (Directory Options): Document -iquote.
5618         * doc/cpp.texi: Likewise.
5619         * doc/cppopts.texi: Likewise.
5620         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5621         (c_common_handle_option): Likewise.
5622         * c.opt (iquote): Add.
5623         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5624         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5626         * c-opts.c (case OPT_I): Deprecate -I- support.
5627         * doc/invoke.texi: Likewise.
5628         * doc/cpp.texi: Likewise.
5629         * doc/cppopts.texi: Likewise.
5631 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5633         * basic-block.h (free_basic_block_vars): Update prototype.
5634         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5635         argument.
5636         (life_analysis): Update call.
5637         * ifcvt.c (if_convert): Likewise.
5638         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5639         * passes.c (rest_of_handle_final): Likewise.
5640         (rest_of_compilation): Likewise.
5641         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5643         * emit-rtl.c (next_real_insn): Use INSN_P.
5644         (prev_real_insn): Likewise.
5646 2004-05-05  Eric Christopher  <echristo@redhat.com>
5648         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5649         representation.
5651 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5653         * config/rs6000/rs6000.c (build_opaque_vector_type):
5654         New function.
5655         (rs6000_init_builtins): Use it.
5657 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5659         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5660         (func_table): Change type from char ** to vms_func_ref.
5661         (write_rtnbeg):  Update to reflect func_table change.  Use
5662         fde->funcdef_number instead of rtnnum in output.
5663         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5665 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5666             Richard Henderson  <rth@redhat.com>
5668         PR target/14899
5670         * c-common.c (vector_types_convertible_p): New function.
5671         * c-typeck.c (comptypes): Recurse on vector types.
5672         (convert_for_assignment): Use vector_types_convertible_p.
5673         (digest_init): Use vector_types_convertible_p to check
5674         validness of constant vector initializers; otherwise treat
5675         them as scalars.
5676         * tree.c (make_or_reuse_type): New.
5677         (build_common_tree_nodes): Use it.
5678         * cp/call.c (standard_conversion): Likewise.
5679         * cp/typeck.c (comptypes): Recurse on vector types.
5680         (convert_for_assignment): Use vector_types_convertible_p.
5682 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5684         * config/mips/mips.c (override_options): Default to no
5685         generation of branch-likely operations when tuning for
5686         CPUs where they tend to have a negative performance impact
5687         (e.g., SB-1).
5689 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5691         * expr.c (store_constructor_field): Don't call store_constructor
5692         if bitsize is not a multiple of a byte.
5694 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5696         * reload1.c (inherit_piecemeal_p): New function.
5697         (emit_reload_insns): When reloading a group of hard registers, use
5698         inherit_piecemeal_p to decide whether the values of individual hard
5699         registers can be inherited.
5701 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5703         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5704         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5705         * config/t-linux (LIB2ADDEHDEP): Likewise.
5707 2004-05-04  Paul Brook  <paul@codesourcery.com>
5709         * config/arm/crti.asm: Push an even number of registers.
5710         * config/arm/crtn.asm: And restore them.  Load via sp.
5712 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5714         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5715         Collect overhead information.
5716         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5717         parameter and pass it through.
5718         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5719         MEM_STAT_DECL parameter and pass it through.
5720         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5721         MEM_STAT_DECL parameter and pass it through.
5723 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5725         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5727         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5729         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5730         rs6000_hard_regno_nregs.
5732 2004-05-03  Eric Christopher  <echristo@redhat.com>
5734         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5735         prologue insn instead of setting up call.
5736         (s390_emit_epilogue): Ditto.
5737         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5738         (define_constants): Add numbers for above patterns.
5740 2004-05-03  Eric Christopher  <echristo@redhat.com>
5742         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5743         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5744         * config/s390/s390-protos.h: Prototype.
5746 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5748         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5749         assignment.
5751 2004-05-03  Eric Christopher  <echristo@redhat.com>
5753         * config/mips/mips.md: Fix branch length attribute definition.
5755 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5757         * config.gcc: Remove --enable-altivec support.
5759         * config/rs6000/altivec-defs.h: Remove.
5761 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5763         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5764         * fixinc/fixincl.x: Regenerate.
5766 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5768         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5769         definition.
5770         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5771         float_truncate insn.
5772         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5773         (logb?f2): Reimplement expanders with float_truncate insn.
5775 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5777         PR 14718
5778         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5779         force_type_die for CONST_DECL.
5781 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5782             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5784         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5785         tm-dwarf2.h to tm_file.
5786         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5787         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5788         (ASM_DEBUG_SPEC): Delete.
5790 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5792         * optabs.h (enum optab_index): Add new OTI_expm1.
5793         (expm1_optab): Define corresponding macro.
5794         * optabs.c (init_optabs): Initialize expm1_optab.
5795         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5796         patterns.
5797         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5798         using expm1_optab.
5799         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5800         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5802         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5803         to implement expm1, expm1f and expm1l built-ins as inline x87
5804         intrinsics.
5806 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5808         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5809         * config/frv/frv.md (*return_true, *return_false): New patterns.
5811 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5813         * rtl.h (PHI_NODE_P): Remove.
5815 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5817         PR middle-end/14988
5818         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5819         when passed -2 as 'align'.
5820         (put_var_into_stack): Use 'bool' as the type for the three local
5821         predicates.  Adjust calls to put_reg_into_stack.
5822         When passed a CONCAT, instruct put_reg_into_stack to use
5823         a consecutive stack slot for the second part.
5824         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5825         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5826         parameters.  Retrieve the register mode from 'reg'.
5827         When consecutive_p is true, instruct assign_stack_local_1 to use
5828         BITS_PER_UNIT alignment.
5829         (put_addressof_into_stack): Use 'bool' as the type for the two
5830         local predicates. Adjust call to put_reg_into_stack.
5832 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5834         * fold-const.c (fold_convert_const, fold): Add missing
5835         FIX_ROUND_EXPR case.
5837 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5839         * configure.ac (FLEX, BISON): Only use tools from the build tree
5840         if build equals host.
5841         * configure: Rebuilt.
5843         * config/frv/frv-protos.h (frv_expand_epilogue,
5844         frv_expand_fdpic_call): Add bool argument.
5845         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5846         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5847         (frv_expand_epilogue): Use new argument to decide whether to emit
5848         return instruction or copy the return address to LR.
5849         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5850         sibcalls.
5851         (sibcall_operand): New.
5852         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5853         PLUS nor LABEL_REF.  Add sibcall_operand.
5854         * config/frv/frv.md (call, call_value): Pass false to
5855         frv_expand_fdpic_call.
5856         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5857         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5858         sibcall_value_internal, sibcall_value_fdpicdi): New.
5859         (return_unsigned_true, return_unsigned_false): New.
5860         (epilogue): Adjust call to frv_expand_epilogue.
5861         (sibcall_epilogue): New.
5863         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5864         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5865         before redefining them.
5867 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5869         * builtins.c (fold_fixed_mathfn): New function.
5870         (fold_builtin_lround, fold_builtin): Use it.
5872 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5874         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5875         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5877 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5879         * config/cris/cris.h: Revert my "fix comment typos" patch.
5881 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5883         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5885 2004-05-01  Falk Hueffner  <falk@debian.org>
5887         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5888         builtin_insll): Disallow 0 as first input operand.
5890 2004-05-01  Falk Hueffner  <falk@debian.org>
5892         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5894 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
5896         PR middle-end/15054
5897         * expr.c (expand_expr_real): Do not call preserve_temp_slots
5898         on a TARGET_EXPR temp.
5899         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5900         TARGET_EXPR temp slots.
5902 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
5904         * simplify-rtx.c (simplify_ternary_operation): When
5905         converting an IF_THEN_ELSE to a relational op, return
5906         correct mode.
5908 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5910         * builtins.c (fold_builtin_round): Fix comment typo.
5911         (fold_builtin_lround): New function.
5912         (fold_builtin): Use it.
5914 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
5916         PR target/11608
5917         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
5918         more like the one in config/dbxelf.h.
5920 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
5922         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
5923         and adjust definition accordingly.
5924         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
5925         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
5926         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
5927         VECTOR_TYPE.
5929 2004-04-30  Jason Merrill  <jason@redhat.com>
5931         PR c++/14587
5932         * config/i386/winnt.c (associated_type): Look for attributes on
5933         the TYPE_MAIN_VARIANT of *this.
5934         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
5935         apply the attributes to the variants.
5937 2004-04-30  Paul Brook  <paul@codesourcery.com>
5939         * config.gcc: Simplify arm --with-{cpu,tune} test.
5940         * config/arm/arm-cores.def: Document whitespace restrictions.
5942 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5944         PR other/1963
5945         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
5947 2004-04-30  Brian Ford  <ford@vss.fsi.com>
5948             DJ Delorie  <dj@redhat.com>
5950         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5951         (DWARF2_DEBUGGING_INFO): Define to enable.
5952         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
5953         DWARF2.
5954         * configure.ac (Target-specific assembler checks)
5955         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
5956         relocs.
5957         * configure: Regenerate.
5958         * config.in: Likewise.
5960         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5961         (ASM_OUPUT_DWARF_OFFSET): Define.
5963 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
5965         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
5966         (s390_emit_call): New function prototype added.
5967         (s390_tls_get_offset): Function removed.
5968         * config/s390/s390.c (s390_function_ok_for_sibcall,
5969         s390_call_saved_register_used_p): New functions.
5970         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
5971         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
5972         (s390_emit_tls_call_insn): New function.
5973         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
5974         emit_call_insn.
5975         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5976         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
5977         added.
5978         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
5979         register number used to hold the target address for sibcalls.
5980         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
5981         New expanders.
5982         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
5983         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5984         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
5985         Expanders removed.
5986         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5987         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
5988         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
5989         ("epilogue"): Changed the call to s390_emit_epilogue to use the
5990         new parameter.
5992 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5994         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5995         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5996         reg-stack.c, varasm.c, config/alpha/ev4.md,
5997         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5998         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5999         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
6000         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
6001         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
6002         config/ia64/itanium2.md, config/ip2k/ip2k.c,
6003         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
6004         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
6005         comment typos.
6007 2004-04-30  Paul Brook  <paul@codesourcery.com>
6009         * config.gcc: Default ep9312 to hard-float.
6010         * config/arm/arm-cores.def: Add ARCH field.
6011         * config/arm/arm.c (FL_FOR_ARCH*): Define.
6012         (arm_arch_cirrus): New variable.
6013         (all_cores): Set and use arch.
6014         (all_architectures): Ditto.
6015         (arm_arch_name): New variable.
6016         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
6017         Set and use arm_arch_cirrus.
6018         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
6019         (enum processor_type): Update ARM_CORE define.
6020         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
6021         (CPP_SPEC): Remove %(cpp_cpu_arch).
6022         (CPP_ARCH_DEFAULT_SPEC): Remove.
6023         (CPP_CPU_ARCH_SPEC): Remove.
6024         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
6025         (FPUTYPE_DEFAULT): Don't define here.
6027 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
6029         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
6030         updates too.
6032 2004-04-30  Paul Brook  <paul@codesourcery.com>
6034         * arm.c (arm_needs_doubleword_align): Use mode alignment.
6036 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
6038         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
6039         vec_sububs.
6040         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
6041         duplicates.
6043 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
6045         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
6046         atan2?f3 expanders.
6048 2004-04-29  Nick Clifton  <nickc@redhat.com>
6050         Bug 14093
6051         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
6052         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
6053         Delete static from definition.
6054         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
6056 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
6058         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
6059         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
6060         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
6061         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
6063 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
6065         * commom.opt (Wfatal-errors): Add it.
6066         * diagnostic.c (flag_fatal_errors): Define it.
6067         (diagnostic_action_after_output): Check for flag_fatal_errors.
6068         * flags.h (flag_fatal_errors): Declare it.
6069         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
6070         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
6072 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
6074         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
6075         blocks which have kill flag set.
6077 2004-04-29  Ben Elliston  <bje@au.ibm.com>
6079         * configure.ac (--with-as): Abort if user-supplied assembler
6080         cannot be executed.
6081         (--with-ld): Likewise for the linker.
6082         * configure: Regenerate.
6084 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6086         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
6087         isn't NULL before using it.
6089 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
6091         PR target/15189
6092         * config/mips/mips.md (load_df_low): Use default length.
6093         (load_df_high, store_df_high): Likewise.
6095 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
6097         * config/mips/mips.md, config/mips/sb1.md,
6098         config/rs6000/rs6000.c: Fix comment typos.
6100 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
6102         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
6103         Fix comment typos.
6105 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
6107         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
6108         (delete_if_ordinary): Use above macro.
6109         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
6110         Update copyright.
6111         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
6113 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
6115         * c-decl.c (get_parm_info): Use the correct tag keywords when
6116         warning about type declarations in prototypes.
6118 2004-04-29  Paul Brook  <paul@codesourcery.com>
6120         * config.gcc: Pull list of cores from arm-cores.def.
6122 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
6124         * combine.c (combine_simplify_rtx): Adjust call to use
6125         simplify_relational_operation.  Do not use SELECT_CC_MODE
6126         when a comparison already has a MODE_CC mode.
6128 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
6130         (simplify_set): simplify_relational_operation may now
6131         return another relational expression.
6132         * cse.c (fold_rtx): simplify_relational_operation now
6133         takes of computing the comparison mode.
6134         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
6135         remove dead code.
6136         (do_compare_rtx_and_jump): Likewise.
6137         * integrate.c (subst_constants): simplify_relational_operation
6138         may now return another relational expression.
6139         * simplify-rtx.c (simplify_gen_relational): Move most code to
6140         the new simplify_relational_operation and
6141         simplify_relational_operation_1 functions.
6142         (simplify_relational_operation): Rewritten.
6143         (simplify_relational_operation_1): New function.
6144         (simplify_ternary_operation): simplify_relational_operation
6145         may now return another relational expression.
6146         (simplify_rtx): Remove unnecessary temp variable.
6148 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
6150         * reg-stack.c (swap_to_top): New function.
6151         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
6152         swap_to_top().
6153         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
6154         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
6155         UNSPEC_FSCALE_EXP.
6157         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
6158         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
6159         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
6160         x87's fscale insn.
6161         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
6162         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
6163         patterns.
6165 2004-04-28  Serge Belyshev  <1319@bot.ru>
6167         PR 14944
6168         * coverage.c (read_counts_file): Fix usage of warning () call.
6169         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
6171 2004-04-28  Ben Elliston  <bje@au.ibm.com>
6173         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
6174         options with "-" in the option index.
6175         (SPARC Options): Likewise.
6176         (M32R/D Options): Likewise.
6178 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6180         * convert.c (convert_to_integer): Convert (long)round -> lround,
6181         etc.
6183 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
6185         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
6186         Return false if we do not have fp register.
6187         (addrs_ok_for_quad_peep): Rename to ...
6188         (mems_ok_for_quad_peep): this.
6189         Add check for volatile memory.
6190         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
6191         Rename to ...
6192         (mems_ok_for_quad_peep): this.
6193         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
6194         to peephole2's.
6195         (lfq_power2): New instruction.
6196         (stfq_power2): Likewise.
6198 2004-04-28  Jan Hubicka  <jh@suse.cz>
6200         PR c/15004
6201         * function.c (do_warn_unused_parameter): Break out form ...
6202         (expand_function_end): ... here; warn only when not using cgraphunit.
6203         * function.h (do_warn_unused_parameter): Declare.
6204         * cgraphunit.c: Include function.h.
6205         (cgraph_finalize_function): Do unused parameter warning.
6206         * Makefile.in (cgraphunit.o): Depend on function.h
6208 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6210         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
6211         calling install-info on $(DESTDIR)$(infodir)/dir already being
6212         present.
6214 2004-04-28  Paul Brook  <paul@codesourcery.com>
6216         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
6218 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6220         * gcse.c (find_moveable_store): Do not accept store insns with
6221         REG_EH_REGION note.
6223 2004-04-28  Paul Brook  <paul@codesourcery.com>
6225         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
6226         * function.c (assign_temp): Ditto.
6227         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
6229 2004-04-28  Paul Brook  <paul@codesourcery.com>
6231         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
6233 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
6235         * var-tracking.c (variable_different_p): Add a parameter
6236         compare_current_location, compare current location of variable parts
6237         if it is true.
6238         (dataflow_set_different_1): Pass compare_current_location == false.
6239         (dataflow_set_different_2): Pass compare_current_location == false.
6240         (emit_notes_for_differences_1): Pass compare_current_location == true.
6242 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6244         * config/s390/s390.md ("casesi"): Mark jump table access as
6245         non-trapping and unchanging.
6247 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6249         PR debug/14829
6250         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
6251         callers.
6252         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
6253         number for indexing hard_regno_nregs array.
6255 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
6257         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
6258         * config/darwin-crt2.c: Only have contents on __ppc__.
6260 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
6262         * config/xtensa/xtensa.c (call_insn_operand): Check
6263         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
6264         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
6265         * config/xtensa/xtensa.md (call, call_value): Likewise.
6267 2004-04-27  Wu Yongwei  <adah@sh163.net>
6269         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
6270         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
6271         (__gthread_mutex_init_function): Replace CreateMutex with
6272         initialization of custom mutex using CreateSemaphore.
6273         (__gthread_mutex_lock): Use InterlockedIncrement.
6274         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
6275         (__gthread_mutex_unlock): Use InterlockedDecrement and
6276         ReleaseSemaphore to unlock
6277         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
6278         __gthread_mutex_lock, __gthread_mutex_trylock,
6279         __gthread_mutex_unlock): Adjust to match inline versions in
6280         gthr-win32.h.
6282 2004-04-27  Paul Brook  <paul@codesourcery.com>
6284         * config/arm/arm.c (arm_promote_prototypes): New function.
6285         (TARGET_PROMOTE_PROTOTYPES): Use it.
6287 2004-04-27  Paul Brook  <paul@codesourcery.com>
6289         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
6291 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
6293         * config/alpha.c (alpha_end_function): For OpenVMS gas,
6294         correctly output .pdesc directive before .end.
6296 2004-04-26  James E Wilson  <wilson@specifixinc.com>
6298         Bug 14927
6299         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
6300         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
6302 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
6304         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
6305         * config/pa/pa-hpux10.h: Likewise.
6306         * config/pa/pa-hpux11.h: Likewise.
6308 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
6310         * doc/invoke.texi (Overall Options): Document default for -o
6311         for PCH files.
6313 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6315         * builtins.c (expand_builtin_update_setjmp_buf): New function.
6316         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
6317         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
6319 2004-04-26  Paul Brook  <paul@codesourcery.com>
6321         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
6323 2004-04-26  Paul Brook  <paul@codesourcery.com>
6325         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
6327 2004-04-25  Roger Sayle  <roger@eyesopen.com>
6329         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
6330         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
6331         X % -1 as 0.
6333 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
6335         PR bootstrap/15141
6336         * except.c (connect_post_landing_pads): Delete insns after the
6337         barrier when generating a unwind_resume_libfunc call.
6339 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6341         PR/c++ 15119
6342         * tree.c (substitute_placeholder_in_expr, case 4): New case,
6343         for TARGET_EXPR.
6345 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6347         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6348         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
6349         inhibit_libc is defined.
6351 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
6353         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
6354         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
6355         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
6356         (TARGET_SCHED_VARIABLE_ISSUE): Define.
6357         (mips_adjust_cost): Move later in file, next to other sched hooks.
6358         (mips_macc_chains_last_hilo): New variable.
6359         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
6360         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
6361         * config/mips/mips.md (may_clobber_hilo): New attribute.
6363 2004-04-24  Roger Sayle  <roger@eyesopen.com>
6364             Bruce Korb  <bkorb@gnu.org>
6366         * fixinc/inclhack.def (aix_syswait_2): New fix.
6367         * fixinc/fixincl.x: Regenerate.
6368         * fixinc/tests/base/sys/wait.h: Update for new test.
6370 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
6372         PR target/14960
6373         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
6374         to non_fixed_size, and leave out fixed_size from the sum.
6375         (generate_set_vrsave): Correct clobbers.
6376         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
6377         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
6378         (rs6000_libcall_value): Likewise.
6379         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
6380         (FUNCTION_ARG_REGNO_P): Likewise.
6382 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6384         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
6385         is a CONST_INT.
6386         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
6387         with NARROW_OP1 instead of OP1.
6389 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6391         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
6392         and __s390x__ hosts.
6394 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6396         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
6397         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
6398         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
6399         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
6400         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
6401         * builtins.c (expand_builtin_fork_or_exec): New.
6402         (expand_builtin): Call it.
6403         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
6404         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
6405         * c-common.c (PID_TYPE): New macro.
6406         (c_common_nodes_and_builtins): Initialize pid_type_node.
6407         * calls.c (special_function_p): Do not handle fork and exec.
6408         (expand_call): Do not handle ECF_FORK_OR_EXEC.
6409         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6410         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
6411         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6412         __gcov_execv, __gcov_execvp, __gcov_execve): New.
6413         * tree.h (enum tree_index): Add TI_PID_TYPE.
6414         (pid_type_node): New macro.
6415         (ECF_FORK_OR_EXEC): Removed.
6417 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6419         PR optimization/13985
6420         * cfgloopmanip.c (fix_loop_placements): New prototype.
6421         Call fix_bb_placements on the preheader of loops that have
6422         been reparented.
6423         (remove_path): Adjust call to fix_loop_placements.
6425 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
6427         * config/darwin7.h: New file.
6428         * config.gcc (*-*-darwin*): Add darwin7.h if the
6429         version is greater than 6.
6430         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
6431         (MATH_LIBRARY): Wrap in ifdefs.
6433 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
6435         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
6436         loading iWMMXt registers with a frame pointer.  Use post-increment
6437         without a frame pointer.
6438         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
6440 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
6442         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
6443         mode" rather than "-funit-at-a-time" since -O2 enables it
6444         without requiring -f* options.  Refer to -fprofile-generate and
6445         -fprofile-use correctly.  Move -funit-at-a-time among options
6446         enabled by -O.  Add information about unit-at-a-time caveats.
6448 2004-04-22  Per Bothner  <per@bothner.com>
6450         * line-map.h (struct line_maps):  New field highest_line.
6451         (linemap_position_for_column):  Make non-inline function.
6452         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
6453         * line-map.c (linemap_init):  Clear highest_line field.
6454         (linemap_add):  Set highest_line field.
6455         (linemap_line_start):  Minor optimization - use highest_line field.
6456         Reduce maximum column hint to 10000.  Update highest_line field.
6457         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
6458         * cpphash.h (struct cpp_reader):  Remove line field - instead use
6459         line_table->highest_line.
6460         (saved_line):  Remove unused field.
6461         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
6462         Use  line_table's highest_line field instead of cpp_reader's line.
6463         * cpplib.c (start_directive):  Likewise use highest_line field.
6464         (do_line, do_linemarker):  Likewise just use newest map.
6465         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
6466         * cpperror.c (cpp_error):  Likewise use highest_line field.
6467         * cppfiles.c (open_file_failed:  Likewise.
6468         (cpp_make_system_header):  Likewise use newest map and highest_line.
6469         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
6470         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
6471         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
6472         _cpp_lex_direct):  Likewise use highest_line.
6473         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
6474         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
6475         and use newest map.
6476         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
6477         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
6478         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
6480 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
6482         PR bootstrap/14992
6483         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
6484         * config/linux.h (USE_LD_AS_NEEDED): Define.
6485         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
6486         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
6487         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
6488         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
6489         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
6490         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
6491         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
6493 2004-04-22  Per Bothner  <per@bothner.com>
6495         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
6496         Fixes PR preprocessor/15067.
6498 2004-04-23  Andreas Schwab  <schwab@suse.de>
6500         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
6501         avoid aliasing warning.
6503 2004-04-22  Jan Hubicka  <jh@suse.cz>
6504             Mostafa Hagog <mustafa@il.ibm.com>
6506       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
6507       * cfgloopanal.c (expected_loop_iterations): Change the return value
6509 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
6511         * cselib.h (struct elt_loc_list): Remove canon_loc field.
6512         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6513         (cselib_invalidate_mem): Remove all canon_loc and canon_x
6514         traces.
6516 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
6518         Revert
6519         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6521                 * var-tracking.c (variable_part_different_p): Variable parts
6522                 differ when the most recent locations differ.
6524 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
6526         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6527         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6528         (embedded_pic_offset): Delete.
6529         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
6530         MASK_* constants.
6531         (TARGET_EMBEDDED_PIC): Delete.
6532         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6533         (ASM_SPEC): Remove -membedded-pic.
6534         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6535         (ASM_OUTPUT_CASE_LABEL): Likewise.
6536         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6537         * config/mips/windiss.h (ASM_SPEC): Likewise.
6538         * config/mips/mips.c (struct machine_function): Remove
6539         embedded_pic_fnaddr_rtx.
6540         (TARGET_ENCODE_SECTION_INFO): Remove override.
6541         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6542         (override_options): Remove -membedded-pic handling.
6543         (print_operand): Remove handling of '%S'.
6544         (mips_select_section: Remove -membedded-pic handling.
6545         (mips_encode_section_info): Delete.
6546         (mips_output_conditional_branch): Remove mention of -membedded-pic.
6547         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6548         -membedded-pic handling.
6549         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6551 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
6553         * var-tracking.c (frame_base_decl): Remove useless GTY.
6555 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
6557         * config/rs6000/rs6000.c (rs6000_override_options): Error when
6558         user wants altivec and e500 instructions.
6560 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6562         PR target/14813
6563         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6564         in .init_array section to ...
6565         * config/ia64/crtbegin.asm: Here.
6567         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6568         and hidden if HAVE_INITFINI_ARRAY is defined.
6570 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6572         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6573         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6574         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6575         (fp_register_operand, lo_operand): New.
6576         (mips_rtx_costs): Add TUNE_SB1 support.
6577         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6578         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6579         (mips_multipass_dfa_lookahead): New.
6580         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6581         TUNE_SB1): New.
6582         (TARGET_SWITCHES): Add -mfp-exceptions support.
6583         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6584         (BRANCH_COST): Fix whitespace.
6585         * config/mips/mips.md: Include sb1.md.
6586         * config/mips/sb1.md: New file.
6587         * doc/invoke.texi: Document -mfp-exceptions.
6589         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6590         comment.
6591         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6592         (fixincl.o-warn): Delete.
6594 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6596         * config/rs6000/rs6000 (print_operand) ['z']:
6597         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6599 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6601         * config.gcc: Support --with-arch=iwmmxt for ARM.
6603 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6605         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6606         in two more places; remove unneeded force_reg
6608 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6610         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6611         for TARGET_MACHO.
6612         (print_operand): For TARGET_MACHO check to see if we need a stub
6613         and output one if we need it.
6615         PR debug/15033
6616         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6617         rtl.
6619 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6621         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6622         (vall_value_gp): Likewise.
6624 2004-04-20  DJ Delorie  <dj@redhat.com>
6626         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6627         variables stored in word registers, then in memory.
6629 2004-04-20  Eric Christopher  <echristo@redhat.com>
6631         * cp/parser.c (cp_parser_declaration): Move translate
6632         up before tokens are lexed.
6634 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6636         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6637         (asin_optab, acos_optab): Define corresponding macros.
6638         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6639         * genopinit.c (optabs): Implement asin_optab and acos_optab
6640         using asin?f2 and acos?f2 patterns.
6641         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6642         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6643         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6644         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6646         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6647         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6648         acos, acosf and acosl built-ins as inline x87 intrinsics.
6650 2004-04-20  Paul Brook  <paul@codesourcery.com>
6652         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6654 2004-04-20  Paul Brook  <paul@codesourcery.com>
6656         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6658 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6660         Revert part of 2004-04-17 change that moved -frename-registers
6661         to -O1.  -frename-registers is buggy.
6663         * toplev.c (flag_rename_registers): Initialize to 0.
6664         * doc/invoke.texi (Optimize options): Move -frename-registers
6665         to "Not triggered by any -O level" section.  Adjust commentary
6666         accordingly.
6668 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6670         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6672 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6674         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6675         for mflo and mfhi instructions.
6676         (mips_output_move): Remove mflo and mfhi handling.
6677         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6678         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6679         Likewise various define_peephole2s.
6680         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6681         alternatives.
6682         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6683         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6684         (mfhilo_di, mfhilo_si): New patterns.
6686 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6688         * function.c (assign_parms): Force
6689         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6691 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6693         * var-tracking.c (variable_part_different_p): Variable parts differ
6694         when the most recent locations differ.
6696 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6698         * rtl.h (reg_set_last): Delete declaration.
6699         * rtlanal.c (reg_set_last): Delete.
6701 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6703         * fold-const.c (fold_convert): Make function extern/public.
6704         * tree.h (fold_convert): Prototype here.
6705         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6706         expand_builtin_strrchr, expand_builtin_strpbrk,
6707         expand_builtin_mempcpy, expand_builtin_bcopy,
6708         expand_builtin_bzero, expand_builtin_memcmp,
6709         expand_builtin_strcmp, expand_builtin_strncmp,
6710         stabilize_va_list, expand_builtin_sprintf,
6711         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6712         fold_builtin_exponent, fold_builtin_mempcpy,
6713         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6714         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6715         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6717 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6719         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6720         (move_from_CR_gt_bit): New.
6721         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6722         E500.
6723         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6724         E500.
6726         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6727         (tstsfeq_gpr): Same.
6728         (cmpsfgt_gpr): Same.
6729         (tstsfgt_gpr): Same.
6730         (cmpsflt_gpr): Same.
6731         (tstsflt_gpr): Same.
6732         (e500_cceq_ior_compare): New.
6733         (e500_flip_gt_bit): New.
6735         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6736         (print_operand): Add 'c' and 'D'.
6737         (rs6000_generate_compare): Rewrite to generate correct rtl.
6738         (rs6000_emit_sCOND): Handle E500.
6739         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6740         (output_e500_flip_gt_bit): New.
6742         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6743         Protoize.
6745 2004-04-19  Eric Christopher  <echristo@redhat.com>
6747         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6749 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6751         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6752         fix information.
6754 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6756         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6757         download URL.
6759 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6761         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6762         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6764 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6766         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6767         (fold_builtin): Update caller to match.
6769         PR bootstrap/15009
6770         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6772         PR bootstrap/14999
6773         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6775 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6777         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6779         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6780         (expand_mult_highpart_optab): Likewise.
6781         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6783 2004-04-19  Paul Brook  <paul@codesourcery.com>
6785         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6786         floatunssisf2, floatunssidf2): New patterns.
6788 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6790         PR other/14918
6791         * doc/invoke.texi (-fprofile-generate): Document requirement to
6792         use -fprofile-generate when linking.
6794         * doc/extend.texi (Strong Using): Warn users against using this
6795         feature.
6797 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6799         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6800         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6801         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6802         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6803         constant.  Propogate change throughout file.
6804         (struct machine_function): Remove insns_len.
6805         (mips_string_length, mips16_strings, string_constants): Delete.
6806         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6807         when generating mips16 code.  Remove special mips16 treatment of
6808         string constants.
6809         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6810         to have the form LABEL+CONSTANT.
6811         (mips_symbolic_address_p): Fix comment.
6812         (m16_usym8_4, m16_usym5_4): Delete.
6813         (mips_output_function_epilogue): Remove mips16 string handling.
6814         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6815         (mips_select_section, mips_encode_section_info): Remove mips16
6816         string handling.
6817         (struct mips16_constant_pool): New.
6818         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6819         sorted into order of ascending mode size.  Keep track of the highest
6820         possible start address, taking padding and the masking of the base PC
6821         value into account.
6822         (dump_constants_1): New function, split out from dump_constants.
6823         Handle vector constants.  Use gen_consttable_{int,float} rather than
6824         separate functions for each mode.
6825         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6826         rather than separate functions for each alignment.
6827         (mips_find_symbol): Delete.
6828         (mips16_insn_length): New function, split out from
6829         mips16_lay_out_constants.
6830         (mips16_rewrite_pool_refs): New function.
6831         (mips16_lay_out_constants): Rework. Remove string handling.
6832         Always create an inline constant pool.
6833         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6834         (UNSPEC_ALIGN): New constants.
6835         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6836         (UNSPEC_ALIGN_[248]): Delete.
6837         (consttable_int, consttable_float, align): New patterns.
6838         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6840 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6842         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6843         __unn_args_eq.
6845 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6847         PR target/14715
6848         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6849         with STARTING_FRAME_OFFSET.
6851 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6853         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6854         * config/mips/mips.c (macc_msac_operand): New function.
6855         * config/mips/mips.md (*msac): Move after *macc.
6856         (*msac2): New.  Generalize macc-related peepholes so that they apply
6857         to msac too.
6859 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6861         * opts.c (decode_options): Do not enable flag_rename_registers
6862         and flag_web at -O3.
6863         * toplev.c (flag_rename_registers): Initialize
6864         flag_rename_registers and flag_web to
6865         AUTODETECT_FLAG_VAR_TRACKING.
6866         (default_debug_hooks): New global.
6867         (process_options): Initialize default_debug_hooks.  Warn if
6868         -fvar-tracking specified but not supported by the current
6869         debug format.  Do not run var tracking at -O0 or if not
6870         supported by the current debug format, even if
6871         -fvar-tracking was given.  If -fno-rename-registers
6872         is not specified, always run register renaming if var
6873         tracking is supported by the default debugging information
6874         format for the target, and we are at -O1 or higher; similarly
6875         for -fweb, but only at -O2 or higher.
6876         * doc/invoke.texi (Optimize Options): Document this.
6878 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6880         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6881         * configure: Regenerate.
6883 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6885         * gcc.c (used_arg): Check whether an option has been removed.
6887 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6889         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6890         debugging on Solaris 7 and up.
6892 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6894         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6895         IRIX 5 port.
6896         Remove -save-temps workaround, handled automatically.
6897         Require GNU binutils 2.15 for debugging.
6898         Remove SGI make warnings since GNU make is now required.
6899         (Specific, mips-sgi-irix6): Some markup fixes.
6900         Describe MIPSpro C problems and workarounds.
6901         Mention working O32 ABI support.
6902         Recommend GNU as 2.15 for O32 with debugging.
6903         Remove description of fixed structure pass/return bug.
6905 2004-04-16  DJ Delorie  <dj@redhat.com>
6907         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6908         TYPE_FIELDS.
6909         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6911 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6913         * pa.md: Remove unnecessary declarations for asm_out_file.
6915         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
6916         SAR register.  Fix comment.
6917         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
6918         (%cr11).
6920         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
6922 2004-04-16  Nick Clifton  <nickc@redhat.com>
6924         * config/arm/arm.c (arm_override_options): Revert previous patch.
6925         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
6926         be safely built.
6928 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6930         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
6931         bug.
6932         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
6933         TARGET_DEFAULT): Changed. Ditto.
6934         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
6935         TARGET_ENDIAN_DEFAULT): Added. Ditto.
6936         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
6937         (TARGET_ENDIAN_DEFAULT): Added.
6939 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6941         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
6942         ATTR_CONST_NOTHROW_LIST.
6944 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6946         PR/middle-end 14915
6947         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
6948         BITS_BIG_ENDIAN.
6950 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6952         * ra-debug.c (ra_print_rtx): Add break's to case legs.
6954 2004-04-14  James E Wilson  <wilson@specifixinc.com>
6956         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
6958 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6960         * libada-mk.in: New file.
6961         * configure.ac: Create libada-mk from libada-mk.in.
6962         * configure: Regenerate.
6964 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
6966         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
6967         (logb_optab, ilogb_optab): Define corresponding macros.
6968         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
6969         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
6970         using logb?f2 and ilogb?i2 patterns.
6971         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
6972         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
6973         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
6974         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6976         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
6977         and UNSPEC_XTRACT_EXP.
6979         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
6980         patterns to implement fxtract x87 instruction.
6981         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
6982         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
6983         intrinsics.
6984         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
6985         x87's fxtract insn.
6987 2004-04-14  Eric Christopher  <echristo@redhat.com>
6989         * config/mips/t-elf: Enable multilibs by default.
6991 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
6993         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6994         previous fix to check HAVE_return at runtime too.
6996 2004-04-14  Nick Clifton  <nickc@redhat.com>
6998         * config/arm/arm.c (arm_override_options): If the user has not
6999         specified an ABI, then default to AAPCS for the iWMMXt processor.
7000         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
7001         * config/arm/t-xscale-coff: Likewise.
7003 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7005         * builtins.c (fold_builtin_isdigit): New.
7006         (fold_builtin): Handle BUILT_IN_ISDIGIT.
7007         * defaults.h: Add TARGET_DIGIT0 and sort.
7008         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
7010 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7012         * builtins.c (fold_builtin_cabs, fold_builtin): Use
7013         `mathfn_built_in' to determine the new builtin.
7014         * fold-const.c (fold): Likewise.
7016 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
7018         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
7019         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
7020         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
7021         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
7022         (ASM_SPEC): Update accordingly.
7023         * config/mips/mips.c: Update after above renaming.
7024         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
7025         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
7027 2004-04-13  James E Wilson  <wilson@specifixinc.com>
7029         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
7030         increment errorcount and return false instead of true.
7032 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
7034         * optabs.c (expand_twoval_unop): Reorder function arguments.
7035         * builtins.c (expand_builtin_mathfn_3): Update calls to
7036         expand_twoval_unop.
7038         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
7039         and UNSPEC_TAN_TAN. Add missing comment.
7041         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
7042         patterns to implement fptan x87 instruction.
7043         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
7044         and tanl built-ins as inline x87 intrinsics. Define corresponding
7045         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
7046         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
7047         x87's fptan insn.
7049 2004-03-13  Richard Henderson  <rth@redhat.com>
7051         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
7052         for LABEL_REFs.
7054         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
7055         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
7056         * doc/invoke.texi: Update to match.
7058         * varasm.c (unlikely_text_section): Use assemble_align instead of
7059         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
7060         correct alignment argument.
7062 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
7064         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
7065         after setting reg_last_reload_reg for optional output reloads.
7067 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
7069         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
7070         Definition of these two macros are corrected by adding
7071         matchine right paren.
7073 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
7075         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
7077 2004-04-12  Roger Sayle  <roger@eyesopen.com>
7079         * config/i386/i386.c (output_387_reg_move): New function.
7080         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
7081         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
7082         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
7083         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
7084         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
7086 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7088         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
7089         TYPE_DECL.
7090         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
7091         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
7092         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
7093         Use skip_simple_arithmetic to find SAVE_EXPR.
7094         (force_type_save_exprs, force_type_save_exprs_1): New functions.
7095         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
7096         Properly chain multiple pointers.
7097         (copy_tree_r): Copy a TYPE_DECL.
7098         * tree.c (variably_modified_type_p): Add some missing tests and
7099         make some other minor changes.
7100         * tree.h (force_type_save_exprs): New declaration.
7102 2004-04-12  Roger Sayle  <roger@eyesopen.com>
7104         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
7105         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
7106         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
7107         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
7108         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
7109         x%-1 into 0 (or x&0 if x has side-effects).
7111 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
7113         * config/rs6000/rs6000.md: Document why a pattern is not
7114         available.
7116         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
7117         of floats on the E500.
7118         (branch_positive_comparison_operator): Do not allow NE even on the
7119         E500.
7121 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
7123         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
7124         in_text_unlikely_section to in_unlikely_text_section.
7126 2004-04-11  Roger Sayle  <roger@eyesopen.com>
7128         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
7129         calling convention to allow a NULL_TREE to be returned.  Factor
7130         sanity checks from callers, return NULL_TREE when appropriate.
7131         (fold): Handle COMPOUND_EXPR operands of binary expressions
7132         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
7133         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
7134         calls to fold_binary_op_with_conditional_arg.
7136 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7138         * config/mips/iris5.h (current_section_flags):  Add
7139         in_unlikely_executed_text and default case.
7141 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
7143         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
7144         failure on solaris. Place ifdef HAVE_return around gen_ret call.
7145         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
7146         HAVE_return and place it around the place where it is needed.
7148 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
7150         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
7151         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
7152         and NORMAL_TEXT_SECTION_NAME.
7153         (unlikely_text_section): Check targetm.have_named_sections
7154         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
7155         instead of SECTION_FORMAT_STRING.
7156         * config/mips/iris5.h (current_section_name): Add
7157         in_unlikely_executed_text case and move the abort into the switch.
7158         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
7159         (NORMAL_TEXT_SECTION_NAME): Remove.
7160         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
7161         (SECTION_FORMAT_STRING): Remove.
7162         * defaults.h (SECTION_FORMAT_STRING): Remove.
7163         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
7164         (SECTION_FORMAT_STRING): Remove.
7166 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7168         * c-typeck.c (common_type): Prefer long long to long when same
7169         precision.
7171 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
7173         PR 14887
7174         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
7175         mode argument.
7176         * config/ia64/ia64.c (ia64_hpux_file_end): Check
7177         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
7179 2004-04-09  Roger Sayle  <roger@eyesopen.com>
7181         * simplify-rtx.c (mode_signbit_p): New function to check whether
7182         an RTX is an immediate constant that represents the most significant
7183         bit of a given machine mode.
7184         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
7185         C is the sign bit.
7186         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
7187         when C2 is the sign bit.
7188         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
7189         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
7190         sign bit.
7192 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7194         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
7195         TYPE_MODE.
7197 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
7199         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
7200         of TREE_READONLY for types.
7202 2004-04-09  Caroline Tice  <ctice@apple.com>
7204         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
7205         (struct basic_block_def):  Add new field, partition.
7206         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
7207         definitions.
7208         (partition_hot_cold_basic_blocks): Add extern function
7209         declaration.
7210         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
7211         include statements.
7212         (N_ROUNDS): Increase the maximum number of rounds by 1.
7213         (branch_threshold): Add array value for new round.
7214         (exec_threshold): Add array value for new round.
7215         (push_to_next_round_p): New function.
7216         (add_unlikely_executed_notes): New function.
7217         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
7218         (mark_bb_for_unlikely_executed_section): New function.
7219         (add_labels_and_missing_jumps): New function.
7220         (add_reg_crossing_jump_notes): New function.
7221         (fix_up_fall_thru_edges): New function.
7222         (find_jump_block): New function.
7223         (fix_crossing_conditional_branches): New function.
7224         (fix_crossing_unconditional_branches): New function.
7225         (fix_edges_for_rarely_executed_code): New function.
7226         (partition_hot_cold_basic_blocks): New function.
7227         (find_traces):  Add an extra round for partitioning hot/cold
7228         basic blocks.
7229         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
7230         and only cold blocks, into the last (extra) round of collecting traces.
7231         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
7232         over crossing edges.
7233         (bb_to_key):  Add code to correctly identify cold blocks when
7234         doing partitioning.
7235         (connect_traces): Modify to connect all the non-cold traces first, then
7236         go back and connect up all the cold traces.
7237         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
7238         * cfg.c (entry_exit_blocks): Add initialization for partition field in
7239         entry and exit blocks.
7240         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
7241         if we are doing hot/cold partitioning.
7242         * cfgcleanup.c (cfglayout.h): Add new include statement.
7243         (try_simplify_condjump): Modify to not attempt on blocks with jumps
7244         that cross section boundaries.
7245         (try_forward_edges): Likewise.
7246         (merge_blocks_move_predecessor_nojumps): Likewise.
7247         (merge_blocks_move_successor_nojumps): Likewise.
7248         (merge_blocks_move): Likewise.
7249         (try_crossjump_to_edge): Modify to not attempt after we have done
7250         the block partitioning.
7251         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
7252         cross section boundaries.
7253         (try_optimize_cfg): Likewise.
7254         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
7255         jumps that cross section boundaries.
7256         * cfglayout.c (flags.h): Add new include statement.
7257         (update_unlikely_executed_notes):  New function.
7258         (fixup_reorder_chain):  Add code so when a new jumping basic block is
7259         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
7260         updated appropriately.
7261         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
7262         introduced by this optimization.
7263         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
7264         extern function declaration.
7265         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
7266         list of notes that can be deleted.
7267         (create_basic_block_structure):  Add initialization for partition field.
7268         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
7269         section boundaries.
7270         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
7271         cross section boundaries.
7272         (commit_one_edge_insertion): Add code so newly created basic block
7273         ends up in correct (hot or cold) section.  Modify to disallow
7274         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
7275         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
7276         crosses section boundaries.
7277         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
7278         cross section boundaries.
7279         (force_nonfallthru_and_redirect): Modify to make sure new basic block
7280         ends up in correct section, with correct notes attached.
7281         * common.opt (freorder-blocks-and-partition):  Add new flag for this
7282         optimization.
7283         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
7284         the end of functions are written into the correct (hot or cold)
7285         section.
7286         (dbx_source_file): Add code so writing debug file information
7287         doesn't incorrectly change sections.
7288         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
7289         in partitioning hot/cold basic blocks into separate sections.
7290         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
7291         section partitioning.
7292         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
7293         conditional branches can span all of memory.
7294         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
7295         unconditional branches can span all of memory.
7296         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
7297         (final_scan_insn):  Add code to check for NOTE instruction indicating
7298         whether basic block belongs in hot or cold section, and to make sure
7299         the current basic block is being written to the appropriate section.
7300         Also added code to ensure that jump table basic blocks end up in the
7301         correct section.
7302         * flags.h (flag_reorder_blocks_and_partition):  New flag.
7303         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
7304         one of the branches has a jump that crosses between sections.
7305         (find_if_case_2): Likewise.
7306         (ifcvt): Modify to not attempt to mark loop exit edges after
7307         hot/cold partitioning has occurred.
7308         * opts.c (decode_options): Code to handle new flag,
7309         flag_reorder_blocks_and_partition; also to turn it off if
7310         flag_exceptions is on.
7311         (common_handle_option): Code to handle new flag,
7312         flag_reorder_blocks_and_partition.
7313         * output.h (unlikely_text_section): New extern function declaration.
7314         (in_unlikely_text_section): New extern function declaration.
7315         * passes.c (rest_of_handle_stack_regs):  Add
7316         flag_reorder_blocks_and_partition as an 'or' condition for calling
7317         reorder_basic_blocks.
7318         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
7319         as an 'or' condition for calling reorder_basic_blocks.
7320         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
7321         * print-rtl.c (print_rtx): Add code for handling new note,
7322         NOTE_INSN_UNLIKELY_EXECUTED_CODE
7323         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
7324         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
7325         cross between section boundaries.
7326         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
7327         indicating the basic block containing it belongs in the cold section.
7328         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
7329         between hot and cold sections.
7330         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
7331         initialize this flag, and to tie it to the command-line option
7332         freorder-blocks-and-partition.
7333         * varasm.c (cfglayout.h):  Add new include statement.
7334         (unlikely_section_label_printed):  New global variable, used for
7335         determining when to output section name labels for cold sections.
7336         (in_section):  Add in_unlikely_executed_text to enum data structure.
7337         (text_section):  Modify code to use SECTION_FORMAT_STRING and
7338         NORMAL_TEXT_SECTION_NAME macros.
7339         (unlikely_text_section):  New function.
7340         (in_unlikely_text_section):  New function.
7341         (function_section):  Add code to make sure beginning of function is
7342         written into correct section (hot or cold).
7343         (assemble_start_function):  Add code to make sure stuff is written to
7344         the correct section.
7345         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
7346         to an if statement that was checking 'in_text_section'.
7347         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
7348         condition to an if statement that was checking 'in_text_section'.
7349         (default_section_type_flags_1):  Add check: if in cold section
7350         flags = SECTION_CODE.
7351         * config/darwin.c (darwin_asm_named_section):  Modify to use
7352         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7353         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
7354         specifically for the i386.
7355         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
7356         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
7357         text string to something more informative.
7358         (NORMAL_TEXT_SECTION_NAME): Add new definition.
7359         (SECTION_FORMAT_STRING):  Add new definition.
7360         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
7361         '!in_unlikely_text_section' as an 'and' condition to an if statement
7362         that was already checking '!in_text_section'.
7363         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
7364         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
7365         sure these are properly defined for linux on ppc.
7366         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
7367         for this new flag.
7368         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
7369         reg_note.
7370         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
7371         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
7372         these new macros.
7374 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7376         * function.c (gen_mem_addressof): When changing the RTX from a REG
7377         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
7379 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7381         PR target/14888
7382         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
7383         truncxfdf2_noop): Provide dummy "fmov" implementations.
7385 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
7387         * gcc.c (default_compilers): Add missing initializers.
7389         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7390         Return 1 if file was successfully mapped.
7392 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
7394         PR pch/13419
7395         PR pch/14137
7396         Radar #: 3315288
7397         * doc/invoke.texi (Precompiled Headers): Suggest -o
7398         to put an output file in a particular place.  Be more detailed
7399         about which options affect PCH validity and which options
7400         might not work.
7401         * c-pch.c (pch_matching): New.
7402         (MATCH_SIZE): New.
7403         (struct c_pch_validity): New field 'match'.
7404         (pch_init): Handle pch_matching.
7405         (c_common_valid_pch): Check pch_matching.
7407         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
7409 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
7411         * doc/invoke.texi (Precompiled Headers): Warn about known
7412         problems.
7414 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
7416         PR c++/14808
7417         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
7418         to 1 if ASM_OUTPUT_DEF is defined.
7419         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
7420         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
7421         Set to non-zero iff not a one_only decl.
7423 2004-04-08  Paul Brook  <paul@codesourcery.com>
7425         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
7427 2004-04-08  Paul Brook  <paul@codesourcery.com>
7429         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
7430         PROMOTE_FOR_CALL_ONLY.
7431         * config/arm/arm-protos.h (arm_function_value): Declare.
7432         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
7433         (TARGET_PROMOTE_PROTOTYPES): Return false.
7434         (arm_function_value): New function.
7435         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
7436         (FUNCTION_VALUE): Call arm_function_value.
7437         * config/cris/cris.h (PROMOTE_MODE): Rename ...
7438         (PROMOTE_FUNCTION_MODE): ... to this.
7439         (PROMOTE_FOR_CALL_ONLY): Remove.
7440         * config/mmix/mmix.h: Likewise.
7441         * config/s390/s390.h: Likewise.
7442         * config/sparc/sparc.h: Likewise.
7443         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
7444         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
7445         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
7446         (PROMOTE_FOR_CALL_ONLY): Remove.
7448 2004-04-08  Joel Sherrill <joel@oarcorp.com>
7450         PR ada/14538
7451         * ada/5rosinte.adb: Remove fake mprotect() body.
7452         * ada/5rosinte.ads: Add SA_SIGINFO.
7453         * ada/5rtpopsp.adb: Rewrite to use new interface.
7454         * ada/init.c: Reorder so the simple single OS conditional __rtems__
7455         is tested before more complex ones which mix UNIX and embedded
7456         systems in the conditional.
7458 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
7460         PR ada/14665
7461         * ada/osint.adb (Find_Program_Name): Rework to properly handle
7462         filenames which end in .exe or have versioning suffixes like VMS.
7464 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
7466         PR target/10129
7467         * config/darwin.c (darwin_encode_section_info): When the decl has
7468         a DECL_INITIAL, it is only defined also when it is not a common.
7470 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7472         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
7473         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
7475 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
7477         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
7478         global register variables.
7480 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
7482         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
7483         rpc_xdr_lvalue_cast_b): New fixes.
7484         * fixinc/fixincl.x: Regenerate.
7485         * fixinc/tests/base/rpc/xdr.h: Add new tests.
7487 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
7489         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
7490         to power4 and power5 entries.
7492 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
7494         * c-common.h (pending_lang_change): Mark for PCH.
7496 2004-04-07  Caroline Tice  <ctice@apple.com>
7498         * gcc.c (main): Move 'break' in main loops (on an error)
7499         to wait until error processing has occurred.
7501 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
7503         * config.gcc: Stop changing enable_threads midstream.
7504         Replace uses of enable_threads_flag with enable_threads.
7505         * configure.ac: Replace uses of enable_threads_flag with
7506         enable_threads.  Improve autoconf quotation in one place.
7507         * configure: Regenerate.
7509 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
7511         * builtins.c: Implement support for sincos function.
7512         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7513         BUILT_IN_COS{,F,L}.
7514         (expand_builtin_mathfn_3): New function.
7515         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7516         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7517         flag_unsafe_math_optimization is set.
7519         * optabs.h (enum optab_index): Add new OTI_sincos.
7520         (sincos_optab): Define corresponding macro.
7522         * optabs.c (init_optabs): Initialize sincos_optab.
7523         (expand_twoval_unop): New function.
7525         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7526         patterns.
7528         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7529         and UNSPEC_SINCOS_SIN.
7531         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7532         sincosxf3): New patterns to implement sincos, sincosf and sincosl
7533         built-ins as inline x87 intrinsics. Define splits for
7534         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7535         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7536         sincos patterns.
7537         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7538         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7540         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7541         x87's fsincos insn.
7543 2004-04-06  Devang Patel  <dpatel@apple.com>
7545         PR 14467
7546         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7548 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7550         * doc/install.texi: Update HP-UX 11 installation procedure.
7552 2004-04-06  Paul Brook  <paul@codesourcery.com>
7554         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7556 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7558         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7559         when the TLS address is generated by a function call.
7560         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7561         (tls_local_dynamic): Likewise.
7563 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7565         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7566         and TYPE_VOLATILE.
7568 2004-04-05  Caroline Tice  <ctice@apple.com>
7570         * gcc.c (combine_flag): New global variable, for new driver option.
7571         (struct compiler): Add two new fields, to be used when
7572         combining multiple input files in a single pass (IMA).
7573         (default_compilers):  Add values for the new fields to all
7574         compiler entries. Modify the "@c" compiler entry for doing IMA
7575         properly with "-save-temps" and the "combine" flag.
7576         (option_map):  Add new driver option, "--combine", to tell driver
7577         to pass multiple input files to compiler at one time.
7578         (have_o_argbuf_index): New global variable.
7579         (store_arg): Modify to assign value to have_o_argbuf_index.
7580         (struct infile):  Add three new fields, to help with IMA.
7581         (display_help): Add help for new "combine" option.
7582         (process_command): Remove local variable have_o; add code to check
7583         for new "combine" option; remove assignment to combine_inputs.
7584         (do_spec_1):  Modify to deal with IMA better.
7585         (main): Make variable 'lang_n_infiles' local to entire function
7586         rather than to a single block.  Use flag combine_flag to
7587         determine whether to do IMA or not; Modify loop initializing
7588         infiles to deal properly with linker files.
7589         Add code for doing preprocessing in presence of
7590         IMA with "-save-temps" flag.  Modify "main" loop to handle
7591         multiple input files, in multiple languages, with or without
7592         preprocessing,  gracefully.
7593         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7594         re-set it to same directory it's previously been set to (avoid
7595         irritating, meaningless warning messages when doing IMA with
7596         save-temps).
7597         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7598         remove documentation about IMA that is no longer accurate; Add
7599         documentation explaining what "-combine" does.
7600         * ada/lang-specs.h: Add initialization values for new fields in
7601         "struct compiler".
7602         * cp/lang-specs.h: Likewise.
7603         * f/lang-specs.h: Likewise.
7604         * java/lang-specs.h: Likewise.
7605         * objc/lang-specs.h: Likewise.
7606         * treelang/lang-specs.h: Likewise.
7608 2004-04-05  David Edelsohn
7610         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7611         symbol handling.
7613 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7614             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7616         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7617         * pa.md: Use replace_equiv_address to retain the attributes of the
7618         memory operands used in the split and peephole2 patterns for optimizing
7619         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7621 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7623         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7624         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7625         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7626         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7627         PARM_DECL.
7628         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7629         for a type.
7630         * print-tree.c (print_node): Properly handle side-effects, readonly,
7631         and constant flags.
7632         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7633         and TREE_CONSTANT if not a type.
7634         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7635         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7636         (NON_TYPE_CHECK): New macro.
7637         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7639 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7641         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7642         to DWARF2_DEBUG unconditionally.
7643         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7645 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7646             Nathanael Nerode  <neroden@gcc.gnu.org>
7648         PR target/14548
7649         * config.host: Set the shell variable host_can_use_collect2.
7650         Set it to yes by default, and to no for alpha*-dec-*vms*,
7651         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7652         * configure.ac: Set and substitute the shell variable collect2.
7653         Give an error if use_collect2 is yes and host_can_use_collect2 is
7654         no.
7655         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7656         uses.  Initialize to @collect2@.
7657         (STAGESTUFF): Remove $(USE_COLLECT2).
7658         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7659         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7660         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7661         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7662         * configure: Regenerate.
7664 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7666         * simplify-rtx.c (simplify_binary_operation): Constant fold
7667         DIV, MOD, UDIV and UMOD using div_and_round_double.
7669 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7671         PR c++/14804
7672         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7673         RECORD_TYPEs.
7675 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7677         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7678         documentation.
7680 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7682         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7683         updating the REG_EQUAL note on an insn's libcall_insn.
7685 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7687         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7689 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7691         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7692         with reorder_operands_p.
7694 2004-04-03  Jan Hubicka  <jh@suse.cz>
7696         * md.texi (vec_set, vec_extract, vec_init): Document.
7698 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7700        * opts.c (decode_options): Do function inlining with very small
7701        max-inline-insns-* parameters when optimizing for size.
7703 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7705         * config/i386/i386.h (TARGET_NOCONA): New macro.
7706         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7707         (processor_type): Add PROCESSOR_NOCONA.
7709         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7711         * config/i386/i386.c (nocona_cost): New variable.
7712         (m_NOCONA): New macro.
7713         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7714         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7715         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7716         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7717         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7718         x86_decompose_lea, x86_arch_always_fancy_math_387,
7719         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7720         x86_ext_80387_constants, x86_four_jump_limit):
7721         (override_options): Add nocona_cost to processor_target_table.
7722         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7723         (incdec_operand): Prevent inc/dec generation for Nocona too.
7724         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7726 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7728         * rtlanal.c (find_reg_note): Manually
7729         unswitch the loop.
7731 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7733         * genemit.c (gen_split): Change prototype of generated code.
7734         * genrecog.c (write_action): Adjust prototype for and calls to
7735         gen_split_*.
7736         * gensupport.c (struct queue_elem): Add split field.
7737         (queue_pattern): Return a value.  Clear the split field.
7738         (process_rtx): Maintain an association between an insn and the
7739         split generated from it for a define_insn_and_split.
7740         (process_one_cond_exec): Generate a new split for a
7741         define_insn_and_split.
7742         * config/arm/arm-protos.h (arm_split_constant): Add insn
7743         parameter.
7744         (emit_constant_insn): New function.
7745         (arm_gen_constant): Use it.
7746         * config/arm/arm.md: Adjust calls to arm_split_constant.
7748 2004-04-02  Jan Hubicka  <jh@suse.cz>
7750         * cgraph.c: Add overall comment.
7751         (cgraph_inline_hash): New global variable.
7752         (cgraph_create_node): Break out from ...
7753         (cgraph_node): ... here.
7754         (cgraph_edge): New function.
7755         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7756         (cgraph_remove_edge): Accept edge, intead of source and destination.
7757         (cgraph_redirect_edge_callee): New.
7758         (cgraph_remove_node): Update all new datastructures.
7759         (cgraph_record_call, cgraph_remove_call): Kill.
7760         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7761         (dump_cgraph): ... here.
7762         (cgraph_function_possibly_inlined_p): Use new hashtable.
7763         (cgraph_clone_edge, cgraph_clone_node): New.
7764         * cgraph.h: Include hashtab.h
7765         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7766         fields, add inlined_to pointer.
7767         (cgraph_node): Add pointer to next_clone.
7768         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7769         (cgraph_remove_call, cgraph_record_call): Kill.
7770         (cgraph_inline_hash): Declare.
7771         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7772         cgraph_redirect_edge_callee): Declare.
7773         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7774         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7775         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7776         * cgraphunit.c: Add overall comment.
7777         (cgraph_optimize_function): Kill.
7778         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7779         (cgraph_finalize_function): Update call of cgraph_remove_node
7780         (record_call_1): Record call sites.
7781         (cgraph_create_edges): Accept node instead of decl argument.
7782         (error_found): New static variable.
7783         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7784         (cgraph_analyze_function): Update for new datastructures.
7785         (cgraph_finalize_compilation_unit): Plug memory leak.
7786         (cgraph_optimize_function): Kill.
7787         (cgraph_expand_function): Do not use cgraph_optimize_function.
7788         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7789         cgraph_inlined_callees): Kill.
7790         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7791         clones.
7792         (estimate_growth): Simplify.
7793         (cgraph_clone_inlined_nodes): New function.
7794         (cgraph_mark_inline_edge): Re-implement.
7795         (cgraph_mark_inline): Likewise.
7796         (cgraph_check_inline_limits): Simplify.
7797         (cgraph_recursive_inlining_p): New.
7798         (update_callee_keys): Break out from ...
7799         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7800         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7801         Likewise.
7802         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7803         list.
7804         (cgraph_preserve_function_body_p): New predicate.
7805         (cgraph_optimize): Verify cgraph.
7806         * function.h (struct function): Add fields saved_tree/saved_args.
7807         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7808         * toplev.c (rest_of_compilation): Do not free cfun.
7809         * tree-inline.c: Include function.h
7810         (struct inline_data): Add saving_p field; replace decl/current_decl by
7811         node/current_node.
7812         (insert_decl_map): New function.
7813         (copy_body_r): Handle saving; update cgraph datastructure.
7814         (copy_body): Handle recursive inlining.
7815         (initialize_inlined_parameters): Likewise.
7816         (expand_call_inline): Propagate node attributes; update cgraph.
7817         (optimize_inline_calls): Verify that datastructure still match.
7818         (save_body): New function.
7819         * tree-inline.h (save_body): New.
7820         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7821         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7822         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7824 2004-04-01  Serge Belyshev  <1319@bot.ru>
7826         PR target/14702
7827         * config/i386/i386.md: fix source operand constraints in
7828         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7830 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7832         * fold-const.c (folda): Preserve types of comparisons.
7834 2004-04-01  Richard Henderson  <rth@redhat.com>
7836         * toplev.c (backend_init): Move init_optimization_passes call ...
7837         (lang_dependent_init): ... here.
7839 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7840             Jakub Jelinek  <jakub@redhat.com>
7842         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7843         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7844         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7845         * configure: Rebuilt.
7846         * config.in: Rebuilt.
7847         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7848         (stage2-start, stage3-start, stage4-start): Likewise.
7849         (stageprofile-start, stagefeedback-start): Likewise.
7851 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7853         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7854         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7855         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7856         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7857         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7858         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7859         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7860         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7861         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7862         * config/sparc/t-linux: Removed.
7864 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7866         PR c++/14755
7867         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7868         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7870 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7872         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7873         * stor-layout.c (layout_decl): Likewise.
7874         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7875         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7876         * print-tree.c (print_node): Handle various used of unsigned_flag.
7877         * tree.def (BIT_FIELD_REF): Update comment.
7878         * tree.h (TREE_UNSIGNED): Deleted.
7879         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7881 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7883         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7884         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7885         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7886         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7887         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7888         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7889         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7890         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7891         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7892         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7893         REAL_TYPE, not INTEGER_TYPE.
7894         (layout_type, case VECTOR_TYPE): Simplify code.
7895         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7896         * tree.h: Update comments.
7897         (STRIP_NOPS): Use TYPE_UNSIGNED.
7898         (TYPE_UNSIGNED): New macro.
7899         (TYPE_TRAP_SIGNED): Remove now redundant check.
7900         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7902 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7904         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7906 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
7908         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7909         Add darwin-fpsave.asm, darwin-vecsave.asm,
7910         and darwin-world.asm.
7911         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7912         as the asm files contain altivec instructions.
7913         * config/rs6000/darwin-fpsave.asm: New file.
7914         * config/rs6000/darwin-vecsave.asm: New file.
7915         * config/rs6000/darwin-world.asm: New file.
7917 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
7919         * gengtype-yacc.y (option, stringseq): Add missing
7920         terminating semicolon.
7922 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
7924         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
7925         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
7926         tls_dtprel_ha_32, tls_dtprel_ha_64,
7927         tls_dtprel_lo_32, tls_dtprel_lo_64,
7928         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
7929         tls_tprel_ha_32, tls_tprel_ha_64,
7930         tls_tprel_lo_32, tls_tprel_lo_64,
7931         tls_got_tprel_32, tls_got_tprel_64,
7932         tls_tls_32, tls_tls_64): Replace register_operand with
7933         gpc_reg_operand.
7935 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
7937         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
7938         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
7939         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
7940         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
7941         *ctrdi_internal6): Replace register_operand with
7942         nonimmediate_operand.
7944 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
7946         * fold-const.c (fold): Reassociate multiply expression
7947         with an adjacent non-multiply expression to use
7948         architecture's multiply-add instruction.
7950 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
7952         * gengtype.c (create_option): New function.
7953         * gengtype.h: Prototype it.
7954         * gengtype-yacc.y (stringseq): New rule.
7955         (option): Use create_option.  Add new bare ID production.  Use
7956         stringseq, not STRING directly.
7958         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
7959         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
7960         * varray.h, config/alpha/alpha.c:
7961         Use new shorter form of GTY markers.
7963         * doc/gty.texi: Rewrite.
7965 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
7967         * config/darwin.c (machopic_function_base_name):
7968         Remove current_name and getting the name of the
7969         current function.
7971 2004-03-30  Nick Clifton  <nickc@redhat.com>
7973         * config/arm/arm.md (thumb_jump): Reduce the backward branch
7974         range, and increase the forward branch range, to allow for
7975         the fact that the PC will be off by 4.
7977 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
7979         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
7981 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7983         * config/rs6000/rs6000.c (output_vec_const_move):
7984         Find all cases of EASY_VECTOR_15_ADD_SELF.
7985         (easy_vector_constant_add_self): Accept
7986         all vector constant loadable by vsplt* and vadd*.
7987         (easy_vector_same): Use easy_vector_splat_const.
7988         (easy_vector_const): Use easy_vector_splat_const.
7989         (easy_vector_splat_const): New function.
7990         (gen_easy_vector_constant_add_self): New function.
7992         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7993         New prototype.
7995         * config/rs6000/altivec.md (movv4si splitter): Change to
7996         emit move insn with halfed vector constant.
7997         (*movv8hi splitter): Likewise.
7998         (*movv16qi splitter): Likewise.
8000 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
8002         PR 11591
8003         * config/rs6000/rs6000.c (rs6000_legitimate_address):
8004         Allow any offset to argument pointer in no-strict case.
8006 2004-03-30  Jan Hubicka  <jh@suse.cz>
8008         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
8009         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
8010         dump file in non-unit-at-a-time mode.
8012 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
8014         * config/cris/cris.h: Correct #ifdef to test for
8015         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
8016         HAVE_AS_MUL_BUG_ABORT_OPTION.
8018 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8020         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
8021         the address inside the old RTL.
8023 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
8025         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
8026         (struct c_binding, struct c_scope): Add chain_next
8027         attributes to GTY markers.
8028         (struct lang_identifier, struct lang_tree_node): Define
8029         here...
8030         * c-tree.h: ... not here.  No longer need to declare struct
8031         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8032         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
8033         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8035         PR 14734, 11944
8036         * c-decl.c (get_parm_info): If error_mark_node is encountered
8037         in the bindings chain, unbind and discard it; don't abort.
8039 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
8040             Dorit Naishlos <dorit@il.ibm.com>
8042         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
8043         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
8045 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
8047         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
8049         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
8050         (m68hc11_attribute_table): New attribute "page0" to mark a global
8051         variable as being allocated from within page0 section.
8052         (m68hc11_encode_label): New function.
8053         (m68hc11_strip_name_encoding): New function.
8054         (m68hc11_page0_symbol_p): New function.
8055         (m68hc11_indirect_p): Accept global variables marked in page0.
8056         (m68hc11_encode_section_info): Lookup "page0" attribute.
8058         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
8059         represents access to page0 variables.
8061         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
8062         ("*logicalsi3_silshl16_zext"): Likewise.
8063         ("*ashldi3_const32"): Likewise.
8064         (peephole2 ashift): Likewise.
8066 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
8068         * c-tree.h (C_DECL_REGISTER): New.
8069         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
8070         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
8071         (build_array_ref, c_mark_addressable): Set and use it.
8072         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
8073         Allow structures with volatile fields to be declared register.
8074         Don't check TREE_ADDRESSABLE before warning about taking address
8075         of register.
8076         * c-decl.c (finish_decl): Don't allow structures with volatile
8077         fields to be placed in named register.
8078         * doc/trouble.texi: Remove reference to structures with volatile
8079         fields in registers.
8081 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
8083         * function.c (thread_prologue_and_epilogue): Move
8084         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
8085         before the epilogue.
8087 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
8089         * expr.c (store_constructor): Use gen_int_mode to correctly
8090         sign-extend CONST_INT value.
8092 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8094         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
8095         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
8096         * doc/extend.texi: Likewise.
8098 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
8100         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
8101           with TYPE_ORIG_SIZE_TYPE.
8103 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
8105         PR 14219
8106         * c-typeck.c (build_binary_op): Do not allow comparisons of
8107         vectors.
8109 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
8111         * config.gcc: Remove sparc-tti-*.
8112         * config/sparc/pbd.h: Delete.
8114         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
8115         * config/sparc/aout.h: Likewise.
8117         * config/sparc/sparc.h: Remove if 0'd code.
8118         * config/sparc/sparc.md (call): Remove if 0'd code.
8119         (call_value): Likewise.
8120         (nonlocal_goto): Likewise.
8121         (unimp_insn): Delete.
8123 2004-03-25  Roger Sayle  <roger@eyesopen.com>
8125         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
8126         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
8128 2004-03-25  Richard Henderson  <rth@redhat.com>
8130         PR 11527
8131         * c-typeck.c (pop_init_level): Emit pending init elements earlier
8132         rather than later.
8134 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8136         * builtins.c (fold_builtin): Fix error in last change.
8138 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
8140         * config/mips/mips.h: Formatting fix.
8142 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8144         * builtins.def: Add ctype builtins.
8145         * doc/extend.texi: Likewise.
8147 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8149         * builtins.c (fold_builtin): Add new builtin optimizations for
8150         sqrt and/or cbrt.
8151         * fold-const.c (fold): Likewise.
8153 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
8155         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
8156         (rs6000_sched_groups): New variable.
8157         (processor_target_table): Add power5.
8158         (rs6000_override_options): Set rs6000_sched_insert_nops,
8159         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
8160         from rs6000_sched_groups.
8161         (output_cbranch): Use rs6000_always_hint.
8162         (rs6000_variable_issue): Use rs6000_sched_groups.
8163         (rs6000_adjust_cost): Add CPU_POWER5.
8164         (is_microcoded_insn): Use rs6000_sched_groups.
8165         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
8166         Return 2 for POWER5 cracked instructions.
8167         (is_cracked_insn): Use rs6000_sched_groups.
8168         (is_branch_slot_insn): Use rs6000_sched_groups.
8169         (rs6000_issue_rate): Add CPU_POWER5.
8170         (rs6000_sched_finish): Use rs6000_sched_groups.
8171         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
8172         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
8173         (DEFAULT_SCHED_COSTLY_DEP): Delete.
8174         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
8175         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
8176         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
8177         * config/rs6000/power5.md: New file.
8178         * doc/invoke.texi: Add power5 option.
8180 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8182         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
8183         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
8184         * doc/invoke.texi: Fix a typo.
8186 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8188         PR optimization/9707.
8189         * stmt.c (emit_case_nodes): Emit equality comparisons instead
8190         of recursing if both children are single-valued cases with no
8191         children.
8193 2004-03-25  Paul Brook  <paul@codesourcery.com>
8195         * config/arm/arm.c (vfp_print_multi): Remove.
8196         (arm_output_fldmx): New function.
8197         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
8198         (arm_expand_prologue): Update to match.
8199         (arm_get_vfp_saved_size): New Function.
8200         (arm_get_frame_offsets): Use it.
8201         (arm_output_epilogue): Use new functions.
8203 2004-03-24  Richard Henderson  <rth@redhat.com>
8205         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
8206         (reg_known_value, reg_known_value_size): Likewise; make static.
8207         (reg_known_equiv_p): Make static.
8208         (clear_reg_alias_info): Update for new indexing.
8209         (get_reg_known_value, set_reg_known_value): New.
8210         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
8211         (canon_rtx): Use them.
8212         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
8213         Don't play queer offsetting games with reg_known_value and
8214         reg_known_equiv_p.
8215         (end_alias_analysis): Free reg_known_value with gc.
8216         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
8217         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
8218         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
8219         functions instead.
8221 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8223         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
8224         config/i386/mmintrin.h: Update copyright.
8226 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8228         * configure.ac: Add --enable-werror-always (for top level bootstrap
8229         support).
8230         * configure: Regenerate.
8232 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
8234         * objc/objc-act.c (objc_comptypes): Treat comparisons
8235         between 'Class' and '<class> *' as explicitly invalid.
8237 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
8239         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
8240         (-fprofile-values): Add enabled with profile-{generate,use}.
8241         (-fvpt): Same.
8242         (-ftracer): Add enabled with profile-use.
8243         (-funit-at-a-time): Add enabled at -O2,-O3.
8244         (-funroll-loops): Add enabled with profile-use.
8245         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
8246         (max-gcse-passes): Mention default.
8247         (max-cse-path-length): Mention default.
8249 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8251         * Makefile.in (STRICT2_WARN): Reorder.
8252         * configure.ac: Check for -Wold-style-definition, and use it
8253         in strict1_warn if it's available.
8254         * configure: Regnerate.
8256 2004-03-24  Paul Brook  <paul@nowt.org>
8258         * config.gcc <arm>: Add --with-abi=
8259         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
8260         thumb_far_jump_used): Remove prototypes.
8261         (arm_needs_doubleword_align): Add prototype.
8262         (thumb_compute_initial_elimination_offset): Ditto.
8263         * config/arm/arm.c (arm_get_frame_offsets): New function.
8264         (use_return_insn, output_return_instruction, arm_output_epilogue,
8265         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
8266         arm_expand_prologue, thumb_expand_epilogue): Use it.
8267         (arm_abi, target_abi_name, all_arm_abis): New variables.
8268         (arm_override_options): Set them.  Set structure padding for AAPCS.
8269         (arm_return_in_memory): Update ABI check.
8270         (arm_init_cumulative_args): Initialize can_split.
8271         (arm_needs_doubleword_align): New function.
8272         (arm_function_arg): Don't split args after pushing to stack. Handle
8273         doubleword/even reg alignment.
8274         (arm_va_arg): Handle all doubleword aligned args.
8275         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
8276         on ABI, not CPU.
8277         (arm_compute_save_reg0_reg12_mask): Fix comment.
8278         (thumb_get_frame_size, thumb_get_frame_size): Remove.
8279         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
8280         value for alignment.
8281         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
8282         to match.
8283         (thumb_compute_initial_elimination_offset): New function.
8284         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
8285         unneccessary rounding.
8286         * config/arm/arm.h (target_abi_name): Declare.
8287         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
8288         arm_abi_type, ARM_DEFAULT_ABI): Define.
8289         (ARM_FLAG_ATPCS): Remove.
8290         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
8291         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
8292         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
8293         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
8294         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
8295         Contitionalize on ABI, not CPU.
8296         (struct arm_stack_offsets): Define.
8297         (struct machine_function): Add stack_offsets.  Remove frame_size.
8298         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
8299         pushed.
8300         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
8301         doubleword alignment.
8302         (THUMB_INITIAL_ELIMINATION_OFFSET,
8303         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
8304         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
8305         * config/arm/arm.md (align_8): Enable for all targets.
8306         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
8307         (ARM_DEFAULT_ABI): Define.
8308         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
8309         -mstructure-size-boundary.
8311 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8313         * configure.ac: Check for -Wno-variadic-macros; don't use
8314         -pedantic (in stage 1 or a simple 'make all') unless it's available,
8315         and if it's available, use it.  Also, clean up check for
8316         -Wno-long-long.
8317         * configure: Regenerate.
8319 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8321         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
8322         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
8323         (MULTILIB_DEFAULTS): Use it.
8324         (MIPS_CPU_STRING_DEFAULT): Remove.
8325         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
8326         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
8327         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
8328         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
8329         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
8330         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
8331         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
8332         accordingly.
8334 2004-03-24  DJ Delorie  <dj@redhat.com>
8335             Richard Sandiford  <rsandifo@redhat.com>
8337         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
8338         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
8339         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
8340         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
8341         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
8342         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
8343         if TARGET_FIX_VR4122.
8344         * config/mips/mips.md (define_attr length): Account for nops inserted
8345         after macc and dmult when using -mfix-vr4122-bugs.
8346         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
8347         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
8348         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
8349         * config/mips/vr4122-div.S: New file.
8350         * doc/invoke.texi: Document -mfix-vr4122-bugs.
8352 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8354         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
8355         (TARGET_MIPS4130): New macro.
8356         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
8357         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
8358         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
8359         with PROCESSOR_R4130.
8360         * config/mips/mips.md (define_attr cpu): Add r4130.
8361         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
8363 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8364             Richard Sandiford  <rsandifo@redhat.com>
8366         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
8368 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
8370         PR preprocessor/14438
8371         * cpplib.c (do_pragma): Remove line_change call after pragma
8372         handler.
8374 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
8376         * doc/extend.texi (ARM Built-in Functions): Replace with correct
8377         declarations.
8379 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8381         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
8382         if flag_unsafe_math_optimizations.
8383         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
8384         and TARGET_80387 expand using truncdfsf2_noop pattern.
8385         (truncxfsf2): Likewise using truncxfsf2_noop.
8386         (truncxfdf2): Likewise using truncxfdf2_noop.
8387         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
8389 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
8391         * hooks.c (hook_constcharptr_tree_null): New hook.
8392         * hooks.h (hook_constcharptr_tree_null): New prototype.
8393         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
8394         * target.h (mangle_fundamental_type): New target hook.
8395         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
8396         target hook at rs6000_mangle_fundamental_type.
8397         (rs6000_mangle_fundamental_type): New function.
8398         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
8400 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
8402         PR 12267, 12391, 12560, 13129, 14114, 14133
8403         * c-tree.h: Forward declare struct c_binding.  Declare
8404         c_override_bindings_to_false.  Update prototypes.
8405         (struct lang_identifier): Update comments.  Change fields to be
8406         struct c_binding *.
8407         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
8408         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
8409         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
8410         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
8411         * c-common.h: Update prototypes.
8412         * c-decl.c (struct c_scope): Update commentary.  Remove names,
8413         names_last, parms, parms_last, tags, and shadowed fields.  Add
8414         bindings and depth fields.
8415         (scope_freelist): Move to more appropriate location.
8416         (c_print_identifier): Update for changes to struct lang_identifier.
8417         (objc_mark_locals_volatile): Update for new bindings structures.
8418         (global_bindings_p): Honor c_override_global_bindings_to_false.
8419         (pushlevel): Rename to push_scope; take no arguments; use the
8420         scope_freelist; initialize scope->depth and check for overflow.
8421         (poplevel): Rename to pop_scope; totally rewritten for new bindings
8422         structures.
8423         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
8424         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
8425         Improve some commentary.  Adjust handling of forward parm decls.
8426         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
8427         Preserve C_DECL_IN_EXTERNAL_SCOPE.
8428         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
8429         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
8430         decls.  Rewrite for new bindings structures.  Improve commentary.
8431         Eliminate the copy_node call.
8432         (implicit_decl_warning): Use the "diag" idiom (as seen in
8433         locate_old_decl) to reduce code duplication; call locate_old_decl
8434         if appropriate.  Relocate to remove need for forward declaration.
8435         (implicitly_declare): Adjust for new bindings structures.  Kludge
8436         around Objective-C not-really-builtin functions.
8437         (undeclared_variable): Improve diagnostics.  If current_function_decl
8438         is nonnull but current_function_scope is null, use current_scope.
8439         Use bind.
8440         (lookup_tag): Adjust for new bindings structures.  Kludge around
8441         Objective-C's tag declarations that wind up in the external scope.
8442         (lookup_name): Adjust for new bindings structures.  Kludge around
8443         c-common.c's pseudo-typedefs that wind up in the external scope.
8444         (lookup_name_current_level): Rename lookup_name_in_scope; take a
8445         second argument indicating the scope to examine; rewrite for
8446         new bindings structures.
8447         (c_init_decl_processing): Adjust for renamed functions.  Do not
8448         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
8449         First scope pushed is the external scope, not the global scope.
8450         (builtin_function): Use bind, not pushdecl.  Adjust other bits
8451         for new data structures.  Keep track of builtins that should be
8452         made visible automatically.
8453         (start_decl): Adjust diagnostics.  Remove unnecessary call to
8454         expand_decl.
8455         (grokparms): Return 0 if arg_types is error_mark_node.
8456         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
8457         reversed sense.  Rewrite for new bindings structures.  Do not
8458         leave any decls in the scope, to prevent pop_scope from doing
8459         contradictory things with them.
8460         (finish_struct, finish_enum): Remove redundant diagnostics.
8461         (build_enumerator): Don't cascade diagnostics for error_mark_node.
8462         Mark location where -pedantic changes the meaning of the program.
8463         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
8464         parameter decls into the function's scope structure using bind.
8465         Warn here about function definitions in the wrong style.
8466         Adjust diagnostics.
8467         (store_parm_decls): Correct the determination of whether a
8468         function was defined with a prototype.
8469         (c_write_global_declarations): Operate on all file decls and on
8470         the external scope.  Split body of the loop to...
8471         (c_write_global_declarations_1): ... this new function, to avoid
8472         code duplication.
8473         (truly_local_externals, first_builtin_decl, last_builtin_decl)
8474         (make_scope, pop_scope, in_parm_level_p, set_block)
8475         (any_external_decl, record_external_decl, bind_label, getdecls)
8476         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
8477         (c_reset_state): Delete.
8478         (visible_builtins, c_override_global_bindings_to_false)
8479         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
8480         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
8481         (external_scope, binding_freelist, bind, free_binding_and_advance)
8482         (push_file_scope, pop_file_scope): New.
8483         (pushtag, pushdecl_top_level, lookup_label, declare_label)
8484         (define_label, c_make_fname_decl, finish_decl)
8485         (mark_forward_parm_decls, build_compound_literal)
8486         (grokdeclarator, start_function, check_for_loop_decls)
8487         (identifier_global_value, record_builtin_type): Minor adjustments
8488         for new bindings structures.  Improve diagnostics and commentary.
8489         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
8490         pushlevel/poplevel respectively.
8491         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
8492         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
8493         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
8494         correct loop over multiple translation units; call fatal_error if
8495         requested to compile more than one file at once.  (This disables
8496         IMA temporarily - an up-front error being preferable to a crash.)
8497         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
8498         (all actions): Adjust calls to pushlevel/poplevel.
8499         (parsing_iso_function_signature): Delete.
8500         (extdef_1): Fold into extdef.
8501         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
8502         warn here about function definitions in the wrong style.
8503         (after_tyle_declarator, parm_declarator_starttypename)
8504         (parm_declarator_nostarttypename, notype_declarator): Remove
8505         commented-out productions.
8506         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
8507         an empty TREE_LIST node.  Adjust calls to get_parm_info.
8508         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
8509         to suppress -Wold-style-definition after this error.
8510         (c_parse_file): Don't clear the binding stack or call
8511         finish_fname_decls here.  Correct comment.
8512         * c-typeck.c (same_translation_unit_p): Export.
8513         (common_type): Use c_override_global_bindings_to_false, not
8514         pushlevel/poplevel/declare_parm_level.
8515         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8516         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8517         and LANG_HOOKS_GETDECLS with do-nothing stubs.
8518         * objc/objc-lang.c: Likewise.
8519         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8520         get_parm_info.
8521         (OBJC_VOID_AT_END): Delete; replace all uses
8522         with void_list_node.
8523         (generate_forward_declaration_to_string_table): Delete.
8524         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8526         * coverage.c (create_coverage): Don't pushdecl anything.
8527         * langhooks.c (lhd_clear_binding_stack): Call
8528         lang_hooks.decls.poplevel, not poplevel.
8529         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8530         circular list rather than going into an infinite loop.
8532 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
8534         * optabs.c (expand_binop): When synthesizing double word rotates
8535         from single word shifts, use a new register target if the provided
8536         target is not a REG already.
8538 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8540         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8541         * c-common.c (handle_mode_attribute): Add extra arg to
8542         build_pointer_type_for_mode and build_reference_type_for_mode.
8543         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8544         for INTEGER_CST.
8545         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8546         Chain pointers via TYPE_NEXT_PTR_TO.
8547         (build_reference_type_for_mode): Similarly.
8548         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8549         and build_reference_type_for_mode.
8550         (tree_check4_failed): New function.
8551         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8552         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8553         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8554         Add check.
8556 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8558         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8559         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
8560         when both A and B are nonnegative.
8561         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8562         nonzero.
8564 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8566         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8567         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8569 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8571         PR optimization/14669
8572         * fold-const.c (fold): Only unwiden integer comparisons for equality
8573         and inequality operators, or when the signedness doesn't change.
8575 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8577         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8578         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8579         * config/sparc/t-linux: New file.
8581 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8583         * gcse.c (can_assign_to_reg_p): New function, split out from...
8584         (want_to_gcse_p): ...here.
8585         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8586         the rhs of a store.
8588 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8590         * c-typeck.c (same_translation_unit_p): Fix pasto.
8592 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8594         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8595         (PARAM_MAX_SCHED_REGION_INSNS): New.
8596         * sched-rgn.c: Include params.h
8597         (MAX_RGN_BLOCKS): Delete.
8598         (MAX_RGN_INSNS): Delete.
8599         (too_large): Return bool.  Convert to PARAM_VALUE.
8600         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8601         * doc/invoke.texi (param): Document max-sched-region-blocks and
8602         max-sched-region-insns.
8604 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8606         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8607         for base types.
8609 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8611         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8612         change.
8614 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8616         PR c/14069
8617         * c-decl.c (finish_struct): Change type of incorrect flexible array
8618         field into error_mark_node.
8620 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8622         PR target/14580
8623         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8624         who are not local for Darwin PIC.
8626 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8628         * regrename.c (regrename_optimize): Set regs_ever_live for all
8629         registers introduced as replacement.
8631 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8633         PR middle-end/14470
8634         * expr.c (mark_queue): New function.
8635         (emit_insns_enqueued_after_mark): New function replacing
8636         emit_queue.  Clear the body of emitted queued insns.
8637         (emit_queue): Call emit_insns_enqueued_after_mark.
8638         (store_expr): Mark the increment queue on entry.  Emit
8639         only the incrementations queued when expanding the source.
8641 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8643         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8644         of top level bootstrap, and consistency).  Reindent.
8645         * configure: Regenerate.
8647 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8649         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8650         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8651         unnecessary casts.
8653 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8655         PR target/14291
8656         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8657         __MINGW32__.
8659 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8661         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8662         to nonimmediate_operand.
8663         ("*doloop_di"): Likewise.
8665 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8667         * real.h (struct real_value): Use the same type for all
8668         bitfields.  Rename exp to uexp.
8669         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8670         Adjust all uses of exp...
8671         * builtins.c: ... here, ...
8672         * emit-rtl.c: ... here, and ...
8673         * real.c: ... and here.
8675 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8677         * pretty-print.c (pp_base_maybe_space): New function.
8678         * pretty-print.h (pp_base_maybe_space): Declare.
8679         (pp_maybe_space): New macro.
8681 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8683         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8685 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8687         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8688         of using register multiplication cost.
8689         (expand_mult): Adapt choose_mult_variant call.
8690         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8691         of MODE; pass appropriate cost bound.  Adjust result when
8692         performing signed multiplication by a negative constant.
8693         Don't use intermediate modes larger than word_mode.
8695 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8697         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8698         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8699         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8700         * explow.c (expr_size): Likewise.
8701         * expr.h (placeholder_list, find_placeholder): Deleted.
8702         * expr.c (store_constructor): Likewise.
8703         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8704         (placeholder_list, find_placeholder): Deleted.
8705         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8706         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8707         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8708         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8709         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8710         Likewise.
8711         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8712         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8713         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8714         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8715         Clean up by using first_rtl_op.
8716         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8717         (substitute_placeholder_in_expr): New function.
8718         * tree.def (WITH_RECORD_EXPR): Deleted.
8719         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8720         (substitute_placeholder_in_expr): New.
8722 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8724         * dojump.c (prefer_and_bit_test): Fix which part of
8725         the and_test is replaced.
8727 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8729         * frontends.texi: Add missing line.
8731 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8732             Chris Devers  <cdevers@pobox.com>
8733             Joseph S. Myers  <jsm@polyomino.org.uk>
8735         * doc/frontends.texi: Rewrite.
8736         * doc/gcc.texi: Update last modification date.
8738 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8740         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8741         message before redirecting the edge.
8743 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8745         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8746         flag.
8747         * explow.c (force_not_mem): Set REG_POINTER flag according to
8748         MEM_POINTER one.
8749         * rtl.h (MEM_POINTER): New macro.
8750         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8751         for MEM_POINTER.
8753 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8755         PR target/13889
8756         * cse.c (fold_rtx): Avoid substituting constants into unary
8757         conversion operations.
8759 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8761         * fold-const.c (fold): Replace "expr" with "t".
8763 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8765         PR c/12373
8766         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8767         DECL_ORIGINAL_TYPE if there isn't one.
8769 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8771         * fold-const.c (fold): Replace "final_type" with "type".
8772         Remove variable "final_type".
8774 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8776         * fold-const.c (fold): Constify "type".
8777         Replace "TREE_TYPE (t)" with "type".
8779 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8781         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8782         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8783         via (*targetm.foo) () with targetm.foo ().
8785 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8787         PR other/14630
8788         * doc/install.texi: Add info directory category and entry.
8790 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8792         * fold-const.c (fold): Replace "t" with "tem" where it is used
8793         as a temporary variable.  Remove "orig_t" and all of its uses.
8795 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8797         * fold-const.c (fold): Remove variable "invert".
8798         Move the handling of relational expressions that can be folded
8799         to a constant ...
8800         (fold_relational_const): ... here.
8801         (tree_expr_nonzero_p): New.
8803 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8805         PR c/14635
8806         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8807         DEF_GCC_BUILTIN.
8809 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8811         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8812         (GTFILES): Add $(srcdir)/dojump.h.
8813         (gt-dojump.h): New dependency.
8814         * dojump.c (and_reg, and_test, shift_test): New static variables.
8815         (prefer_and_bit_test): New function.
8816         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8818 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8820         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8821         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8822         reorg.c, tree.h: Fix comment typos.
8824 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8826         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8827         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8828         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8829         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8830         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8831         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8832         targetm.foo ().
8834 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8836         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8837         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8838         always_inline attribute.
8839         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8840         Treat expansion as completed even if literal argument is
8841         invalid (so that other expansions are not tried in vain).
8843 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8845         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8846         const0_rtx.
8848 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8850         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8851         ...
8852         (fold_abs_const): ... here.
8854 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8856         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8858 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8860         PR target/11520
8861         * config/avr/avr.md ("call_insn"): Handle explicit integer
8862         specially.
8863         (call_value_insn): Likewise.
8865 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8867         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8869 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8871         * fold-const.c (negate_expr): Move the handling of constants
8872         ...
8873         (fold_negate_const): ... here.
8875 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8877         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8878         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8879         * tree.c (debug_no_type_hash): Deleted.
8880         (type_hash_canon): Abort if passed a variant.
8881         Check lang_hooks.types.hash_types.
8882         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8883         (build_array_type): Remove unnecessary allocation of pointer type.
8884         (build_complex_type): Properly qualify resulting type.
8886 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8888         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8890 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8892         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8893         (expand_mult): ...here.
8894         (extract_high_half): New, split out from expand_mult_highpart.
8895         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
8896         (expand_highpart): Evaluate the cost of a shift/add sequence,
8897         then see if any of the specialized optabs are cheaper.
8899 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
8901         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8903 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8905         * convert.c (convert_to_real): Add more math builtins.
8907 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8909         * convert.c (convert_to_real): Reformat using switch stmt.
8911 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8913         * c-common.c (pointer_int_sum): Do not complain about using
8914         pointers to pointers-to-members.
8916 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8918         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
8919         have moved to the target hooks structure".
8921 2004-03-18  James E Wilson  <wilson@specifixinc.com>
8923         * config/mips/mips.md (type): Split move into arith and fmove.  Split
8924         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
8925         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
8926         Likewise.
8927         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
8928         Likewise.
8929         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
8930         rm7_fp_quick): Likewise.
8931         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
8932         rm9k_fquick): Likewise.
8933         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
8934         Likewise.
8935         (ir_sr70_icmp): Delete.
8937 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8939         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
8940         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
8941         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
8942         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
8943         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
8944         Protect with proper check.
8945         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
8946         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
8947         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
8948         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
8949         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
8950         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
8951         not TYPE_FIELDS.
8952         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
8954 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
8956         * gcse.c (eliminate_partially_redundant_loads): Reject change if
8957         dest is set between beginning and current insn.
8959 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8961         * c-decl.c (grokdeclarator): Do not complain about redeclaring
8962         visible "static" identifiers "extern" in a local scope.
8963         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
8964         post-increments/decrements.
8966 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
8968         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
8969         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
8970         (xtensa_va_start): Remove assignment to current_function_arg_words.
8972 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
8974         * alias.c (record_set): Detect the case where a register is assigned
8975         a new value that has the same base term as the old one.
8977 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8979         * doloop.c: Removed.
8980         * loop-doloop.c: New file.
8981         * Makefile.in (doloop.o): Remove.
8982         (loop-doloop.o): New.
8983         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
8984         * cfgloopanal.c (get_loop_level): New function.
8985         * loop-iv.c (iv_number_of_iterations): Handle case when loop
8986         is leaved immediatelly.
8987         * loop.c (strength_reduce): Do not call doloop optimization.
8988         * loop.h (LOOP_BCT): Removed.
8989         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8990         (rest_of_handle_loop2): Call doloop_optimize_loops.
8991         (rest_of_compilation): Test for optimizations moved to
8992         rest_of_handle_loop2.
8994 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
8996         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8997         for mixed mode.
8998         (rs6000_emit_prologue): Ditto.
8999         (rs6000_emit_epilogue): Ditto.
9000         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
9001         macro for mixed mode.
9003 2004-03-18  Jan Hubicka  <jh@suse.cz>
9005         * predict.c (propagate_freq): Compute correctly frequency of
9006         EXIT_BLOCK.
9008 2004-03-17  Eric Christopher  <echristo@redhat.com>
9010         * builtins.c (apply_args_size): Use reg_raw_mode.
9011         (apply_result_size): Ditto.
9013 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9015         PR target/14620
9016         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
9018 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
9020         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
9021         32-bit builds when defaulting to 32-bit.
9023 2004-03-17  Jan Hubicka  <jh@suse.cz>
9025         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
9026         array.
9028 2004-03-17  James E Wilson  <wilson@specifixinc.com>
9030         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
9031         (hazard_nop): Change type to nop.
9032         (type): Split arith into arith, shift, slt, clz.  Delete darith.
9033         Fix all uses.  Change arith to multi if more than one insn emitted.
9034         * config/mips/5400.md (ir_vr54_arith): Likewise.
9035         * config/mips/5500.md (ir_vr55_arith): Likewise.
9036         * config/mips/7000.md (rm7_int_other): Likewise.
9037         * config/mips/9000.md (rm9k_int): Likewise.
9038         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
9040 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
9042         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
9043         to hold the subtype tree instead of recomputing it several times.
9045 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
9047         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
9048         CC_INVERT.
9049         * config/mn10300/mn10300.md (cc): Remove "invert".
9051 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9053         * builtins.c (integer_valued_real_p): Add builtin rint.
9054         (fold_builtin): Likewise.
9055         * convert.c (convert_to_real): Likewise.
9057         * convert.c (convert_to_real): Fix typos in `long double'
9058         builtins.
9060 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
9062         PR c++/14481
9063         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
9064         generated COMPOUND_EXPRs.
9066 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9068         * config/h8300/t-rtems (h8300-*-rtems*): New.
9070 2004-03-16  Eric Christopher  <echristo@redhat.com>
9072         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
9074 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9076         * config/i386/i386-protos.h: Add a prototype for
9077         ix86_reverse_condition.
9078         * config/i386/i386.c (ix86_reverse_condition): New.
9079         * config/i386/i386.h (REVERSE_CONDITION): Use
9080         ix86_reverse_condition.
9081         * config/i386/i386.md: Use ix86_reverse_condition instead of
9082         REVERSE_CONDITION.
9084 2004-03-16  J. Brobecker  <brobecker@gnat.com>
9086         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
9088 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
9090         PR bootstrap/12974
9091         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
9093 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9095         * c-common.c (c_common_type_for_mode): Build vector types on
9096         demand.
9097         (handle_mode_attribute): Deprecate using the mode attribute
9098         to create vector types.  Fix indentation.
9099         (vector_type_node_list): Remove.
9100         (handle_vector_size_attribute): Create vector types on demand.
9101         Strip a NON_LVALUE_EXPR from the attribute if there is one.
9102         * c-typeck.c (comptypes): Make vector types compatible if they
9103         have the same underlying mode.
9104         (convert_for_assignment): Use comptypes to convert between
9105         vector types.
9106         * tree.c (build_common_tree_nodes_2): Do not create vector types.
9107         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
9108         vector types.
9109         * tree.h: Remove vector types.
9110         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
9111         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
9112         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
9113         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
9114         * doc/extend.texi (Vector Types): Document how to use the
9115         vector_size attribute to create vectors, rather than mode.
9117         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
9118         * config/i386/emmintrin.h: Likewise.
9119         * config/i386/mmintrin.h: Likewise.
9120         * config/i386/xmmintrin.h: Likewise.
9121         * config/sh/ushmedia.h: Likewise.
9123 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9125         * config/freebsd-spec.h, config/arc/arc-protos.h,
9126         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
9127         config/arm/linux-gas.h, config/arm/semi.h,
9128         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
9129         config/ia64/freebsd.h, config/mips/7000.md,
9130         config/mips/9000.md, config/ns32k/ns32k-protos.h,
9131         config/sparc/pbd.h: Update copyright.
9133 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9135         PR target/14577
9136         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
9138 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9140         * combine.c (combine_simplify_rtx): Remove the "last"
9141         parameter and its documentation.  Adjust recursive calls.
9142         (simplify_logical): Always perform the only simplification
9143         controlled by "last", if the simplified expression is
9144         actually different.
9145         (try_combine): Do not pass the "last" parameter to
9146         combine_simplify_rtx.
9148 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
9150         PR target/14599
9151         * config/mips/mips.md (UNSPEC_GP): New constant.
9152         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
9153         an UNSPEC instead of (reg $gp).
9154         (mips16_gp_pseudo_reg): Change accordingly.
9155         (print_operand): Print $gp directly when handling CONST_GP_P.
9157 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9159         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
9160         * longlong.h: Make code 68060 clean when compiling for m68060.
9162 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9164         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
9165         * doc/md.texi: Clarify description of "i" constraint.
9167 2004-03-15  James E Wilson  <wilson@specifixinc.com>
9169         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
9170         Split store into store, fpstore, fpidxstore.  Fix all uses.
9171         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
9172         Likewise.
9173         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
9174         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
9175         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
9176         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
9177         ir_sr70_fstore): Likewise.
9179 2004-03-15  Richard Henderson  <rth@redhat.com>
9181         PR middle-end/14535
9182         * except.c (collect_one_action_chain): Record action for cleanup
9183         outer of exception spec.
9185 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
9187         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9188         Fix the check for abort and only do the mmap if we can.
9190 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
9192         * config/sparc/sparc.h: Rework comments about the code model
9193         in 64-bit environment and the mode 'Pmode'.
9194         * doc/invoke.texi (SPARC options): Rework description of the
9195         different code models supported in 64-bit environment.
9197 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9199         * defaults.h (REVERSIBLE_CC_MODE): Define.
9200         * jump.c (reversed_comparison_code_parts): Don't check if
9201         REVERSIBLE_CC_MODE is defined.
9203 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9205         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
9206         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
9207         hosthooks.h, params.h, ra-colorize.c, web.c,
9208         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
9209         config/avr/avr-protos.h, config/avr/avr.md,
9210         config/fr30/fr30-protos.h, config/fr30/fr30.md,
9211         config/h8300/fixunssfsi.c, config/i386/darwin.h,
9212         config/i386/freebsd.h, config/i386/freebsd64.h,
9213         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
9214         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
9215         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
9216         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
9217         config/pa/pa64-regs.h, config/rs6000/aix41.h,
9218         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
9219         config/sparc/aout.h, config/sparc/freebsd.h,
9220         config/sparc/litecoff.h, config/vax/vax-protos.h,
9221         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
9222         copyright.
9224 2004-03-15  Paul Brook  <paul@codesourcery.com>
9226         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
9228 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9230         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
9231         (pp_c_cv_qualifier): Document.
9232         (pp_c_space_for_pointer_operator): Likewise.
9233         (pp_c_integer_constant): Likewise.
9234         (pp_c_identifier): Likewise.
9235         (pp_c_init_declarator): Don't print function body.
9237 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
9239         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
9240         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
9241         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
9242         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
9243         wording and grammar.
9245 2004-03-14  Roger Sayle  <roger@eyesopen.com>
9247         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
9248         with lang_hooks.foo ().
9249         * builtins.c (expand_builtin_va_arg): Likewise.
9250         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
9251         c_common_type_for_mode, c_common_nodes_and_builtins,
9252         handle_mode_attribute, handle_vector_size_attribute): Likewise.
9253         * c-convert.c (convert): Likewise.
9254         * c-format.c (check_format_types): Likewise.
9255         * c-objc-common.c (c_tree_printer): Likewise.
9256         * c-typeck.c (build_unary_op, build_conditional_expr,
9257         build_binary_op): Likewise.
9258         * calls.c (try_to_integrate, expand_call,
9259         emit_library_call_value_1): Likewise.
9260         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
9261         Likewise.
9262         * cgraphunit.c (record_call_1, cgraph_analyze_function,
9263         cgraph_expand_function): Likewise.
9264         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
9265         * coverage.c (build_fn_info_type, build_ctr_info_type,
9266         build_gcov_info, create_coverage): Likewise.
9267         * dbxout.c (dbxout_init): Likewise.
9268         * diagnostic.c (diagnostic_report_current_function): Likewise.
9269         * dojump.c (do_jump): Likewise.
9270         * dwarf2out.c (dwarf2_name): Likewise.
9271         * except.c (init_eh): Likewise.
9272         * explow.c (expr_size, int_expr_size): Likewise.
9273         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
9274         Likewise.
9275         * expr.c (store_expr, store_constructor, safe_from_p,
9276         expand_expr_real, do_store_flag, try_casesi): Likewise.
9277         * function.c (push_function_context_to, pop_function_context_from,
9278         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
9279         put_var_into_stack, allocate_struct_function, current_function_name):
9280         Likewise.
9281         * integrate.c (copy_decl_for_inlining, expand_inline_function):
9282         Likewise.
9283         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
9284         lhd_print_error_function): Likewise.
9285         * opts.c (handle_option, decode_options): Likewise.
9286         * passes.c (open_dump_file): Likewise.
9287         * print-tree.c (print_node): Likewise.
9288         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
9289         expand_decl_cleanup, emit_case_nodes): Likewise.
9290         * stor-layout.c (variable_size): Likewise.
9291         * toplev.c (announce_function, wrapup_global_declarations,
9292         check_global_declarations, compile_file, default_tree_printer,
9293         process_options, lang_dependent_init, finalize): Likewise.
9294         * tree-dump.c (dequeue_and_dump): Likewise.
9295         * tree-inline.c (remap_decl, remap_block, copy_body_r,
9296         initialize_inlined_parameters, declare_return_variable,
9297         inlinable_function_p, expand_call_inline, optimize_inline_calls,
9298         walk_tree, copy_tree_r): Likewise.
9299         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9300         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
9301         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
9302         variably_modified_type_p, dump_tree_statistics): Likewise.
9303         * varasm.c (assemble_variable, compare_constant, copy_constant,
9304         force_const_mem, compute_reloc_for_constant, output_constant,
9305         output_addressed_constants, initializer_constant_valid_p): Likewise.
9307 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
9309         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
9311 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
9313         * doc/install.texi: Reflect autoconf and automake version for
9314         libffi. Update autoconf version to 2.59.
9316 2004-03-13  Roger Sayle  <roger@eyesopen.com>
9318         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
9319         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
9320         make_range, build_range_check, fold_range_test, unextend,
9321         constant_boolean_node, fold_binary_op_with_conditional_arg,
9322         fold_truthop, fold_mathfn_compare, fold_inf_compare,
9323         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
9324         with lang_hooks.foo ().
9326 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
9328         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
9330 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
9332         * doc/install.texi: Note status of -fnew-ra.
9334 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
9336         PR middle-end/14470
9337         * expr.c (store_expr): Call emit_queue before generating the move
9338         from the temporary to the original target.  Protect the temporary
9339         from emit_queue.
9341 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
9343         PR target/14533
9344         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
9345         other than UNSPEC_GOTOFF.
9347 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
9349         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
9350         to arm_legitimate_index_p.  Update all callers with SET as default
9351         value.
9352         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
9353         range if OUTER is a sign-extend operation on QImode.  Correctly
9354         reject shift operations on sign-extended QImode addresses.
9355         (bad_signed_byte_operand): Delete.
9356         (arm_extendqisi_mem_op): New function.
9357         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
9358         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
9359         constraints.
9360         (CONSTRAINT_LEN): New.
9361         (EXTRA_CONSTRAINT): Delete.  Replace with...
9362         (EXTRA_CONSTRAINT_STR): ... this.
9363         (PREDICATE_CODES): Remove bad_signed_byte_operand.
9364         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
9365         is now always default.
9366         (define_splits for bad sign-extend loads): Delete.
9367         (arm_extendqisi, arm_extendqisi_v5): Likewise.
9368         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
9369         Rework 'U' constraint to 'Uv'.
9370         * arm-protos.h: Remove bad_signed_byte_operand.  Add
9371         arm_extendqisi_mem_op.
9372         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
9373         Add Uq constraint.
9375 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
9377         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
9378         with targetm version.
9380         PR target/14567
9381         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
9382         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
9383         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
9384         Update all users of RS6000_ARG_SIZE.
9385         (function_arg_advance): Count fregno using mode size.
9386         (function_arg): Handle long double split over regs and memory.
9387         (function_arg_partial_nregs): Likewise.
9388         (rs6000_va_arg): Repackage complex args.
9390 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
9392         PR target/14047
9393         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
9394         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
9395         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
9397 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
9399         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
9400         prototype.
9401         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
9402         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9404 2004-03-12  Andrew Pinski  <apinski@apple.com>
9406         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9407         Use ret instead of result. Use addr instead of base.
9409 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
9411         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
9412         fixes required by libstdc++ and update installation instructions
9413         for libstdc++.a.
9415 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
9417         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
9418         leading '@' on fastcall symbols before stripping suffix.
9420 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9422         * combine.c (unmentioned_reg_p): New function to check whether an
9423         expression is a "specialization" of another, i.e. that there are
9424         no registers or memory references mentioned in the first that don't
9425         appear in the second.
9426         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
9427         (combine_instructions): Also try combining instructions using the
9428         REG_EQUAL note from a preceding log-linked instruction.
9430 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9432         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
9434 2004-03-12  Matt Austern  <austern@apple.com>
9436         * target.h (struct gcc_target): New target hook, unwind_label.
9437         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
9438         * output.h (default_emit_unwind_label): New function.
9439         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
9440         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
9441         (TARGET_SUPPORTS_HIDDEN): New target macro.
9442         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
9443         that corresponds to this FDE.
9444         (FRAME_BEGIN_LABEL): Allow target to override default label.
9445         (output_call_frame_info): If FDEs are linknonce, then use extra
9446         indirection for FDE encoding, output a label for each FDE, and
9447         output an empty label for each function without an FDE.
9448         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
9449         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
9450         decls with DECL_ONE_ONLY set, if that macro is defined.
9451         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
9452         for a SUPPORTS_ONE_ONLY target.
9453         * config/darwin-protos.h (darwin_unique_section): Declare.
9454         (darwin_asm_named_section): Likewise.
9455         (darwin_section_type_flags): Likewise.
9456         (darwin_non_lazy_pcrel): Likewise.
9457         (darwin_emit_unwind_label): Likewise.
9458         (darwin_make_decl_one_only): Likewise.
9459         * config/darwin.c (machopic_finish): Get rid of tweak that
9460         eliminate stubs for symbols that are defined.
9461         (darwin_encode_section_info): Don't treat weak functions as defined.
9462         (darwin_make_decl_one_only): Define.
9463         (darwin_asm_named_section): Likewise.
9464         (darwin_section_type_flags): Likewise.
9465         (darwin_unique_section): Likewise.
9466         (darwin_emit_unwind_label): Likewise.
9467         (darwin_non_lazy_pcrel): Likewise.
9468         (darwin_asm_output_dwarf_delta): Difference between two labels is
9469         local only if both labels are local.
9470         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
9471         (ASM_MAKE_LABEL_LINKONCE): Likewise.
9472         (TARGET_SUPPORTS_HIDDEN): Likewise.
9473         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
9474         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
9475         (FRAME_BEGIN_LABEL): Likewise.
9476         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
9477         (ASM_DECLARE_FUNCTION_NAME): Likewise.
9478         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
9479         (TARGET_ASM_UNIQUE_SECTION): Define.
9480         (EH_FRAME_SECTION_NAME): Define.
9481         (EH_FRAME_SECTION_ATTR): Likewise.
9482         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9483         (TARGET_ASM_NAMED_SECTION): Likewise.
9484         (TARGET_SECTION_TYPE_FLAGS): Likewise.
9485         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
9486         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
9487         TARGET_ASM_EMIT_UNWIND_LABEL.
9489 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9491         * builtins.c (expand_builtin_mathfn): Add pow10* to the
9492         existing exp10* case.
9493         (expand_builtin): Likewise.
9495 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9497         * doc/tm.texi (registers) <Values in Registers>: Add
9498         entry for REGMODE_NATURAL_SIZE.
9500 2004-03-12  Richard Henderson  <rth@redhat.com>
9502         PR target/14547
9503         * target.h (struct gcc_target): Move calls substructure before
9504         booleans.  Add split_complex_arg.
9505         * function.c (assign_parms, split_complex_args): Use it.
9506         * calls.c (expand_call): Likewise.
9507         (split_complex_values): Likewise.  Check for splittable types
9508         before allocating memory.
9509         (split_complex_types): Likewise.
9510         * system.h (SPLIT_COMPLEX_ARGS): Poison.
9511         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9512         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9513         * config/alpha/alpha.c (alpha_split_complex_arg): New.
9514         (TARGET_SPLIT_COMPLEX_ARG): New.
9515         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9516         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9517         (rs6000_override_options): Zap it for non-AIX.
9518         (rs6000_function_value): Use targetm.calls.split_complex_arg.
9519         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9520         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9521         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9522         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9523         SPLIT_COMPLEX_ARGS entry.
9525 2004-03-11  Richard Henderson  <rth@redhat.com>
9527         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9528         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9529         (alpha_emit_xfloating_arith): Update to match.
9530         (alpha_emit_xfloating_compare): Likewise.
9531         (alpha_emit_xfloating_cvt): Likewise.
9532         (alpha_emit_xfloating_libcall): Take already built symbol,
9533         mark call const.
9534         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9535         op1 in a register.
9537 2004-03-11  Richard Henderson  <rth@redhat.com>
9539         PR target/14539
9540         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9542         * simplify-rtx.c (simplify_relational_operation): Fix typo.
9544 2004-03-11  Richard Henderson  <rth@redhat.com>
9546         PR middle-end/14477
9547         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9549 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9551         PR target/14262
9552         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9553         defined, pass small BLKmode values in registers in the low-order part.
9555 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9557         * combine.c (if_then_else_cond): Check for NULL return value of
9558         simplify_gen_subreg.
9560 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9562         PR target/14496
9563         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9564         TARGET_SINGLE_FLOAT.
9566 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9568         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9569         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9570         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9571         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9573 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9575         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9576         -((int)X>>C) where C is an integer constant one bit less than the
9577         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9578         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9580         * simplify-rtx.c (simplify_unary_operation): Also implement the
9581         above transformations at the RTL level.
9583 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9585         * real.c (encode_ibm_extended): Do round low word.
9587 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9589         * config/arm/arm.md (is_xscale): Comment this attribute and move
9590         it a bit further up in the file, closer to related attributes.
9592 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9594         * config/host-solaris.c (sol_gt_pch_use_address): Add
9595         missing terminating marker to comment.
9597 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9599         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9600         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9601         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9602         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9603         move_operand as source predicate in all cases.
9604         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9605         Test reg_or_0_operand.  Use move_operand as source predicate.
9606         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9607         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9608         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9609         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9610         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9611         Use move_operand as source predicate.  Remove 'K' constraint.
9612         (*movqi_internal): Likewise movqi_internal.
9613         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9614         reg_or_0_operand.  Use move_operand as source predicate.
9615         (*movsf_softfloat): Likewise movsf_internal2.
9616         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9617         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9618         (*movdf_softfloat): Likewise movdf_internal2.
9619         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9620         for DImode if !TARGET_64BIT.
9621         (mips_legitimize_move): Simplify accordingly.
9623 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9625         PR/14362
9626         * var-tracking.c (struct variable_def): Added field refcount.
9627         (variable_htab_free): Decrease the refcount and delete variable
9628         only if there are no more references.
9629         (unshare_variable): New function.
9630         (vars_copy_1): Increase refcount instead of copying the variable.
9631         (variable_union): Share the variables where possible, unshare
9632         the variables if needed.
9633         (variable_different_p): Return false if var1 and var2 are
9634         the same structure.
9635         (variable_was_changed): Init the refcount of new variable.
9636         (set_frame_base_location): Unshare variable if needed.
9637         (set_variable_part): Init the refcount of new variable.
9638         Unshare the variables if needed.
9639         (delete_variable_part): Unshare the variables if needed.
9640         (emit_notes_for_differences_1): Init the refcount of new variable.
9641         (vt_add_function_parameters): Do not add function parameters to
9642         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9643         (vt_initialize): Do not add frame_base_decl to IN set of
9644         ENTRY_BLOCK_PTR because it is unused anyway.
9646 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9648         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9649         (vars_copy): Likewise.
9650         (variable_union): Likewise.
9651         (set_variable_part): Likewise.
9652         (delete_variable_part): Likewise.
9654 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9656         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9657         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9658         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9659         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9660         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9661         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9662         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9663         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9664         config/stormy16/stormy16.c: Fix comment typos and formatting.
9666 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9668         * configure: Regenerate, since I forgot to while committing Paolo's
9669         changes.
9671 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9673         PR ada/14131
9674         Move language detection to the top level.
9675         * configure.ac: Remove code to detect languages,
9676         it now lives exclusively in the top level.
9677         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9678         top level, renamed to ACX_PROG_GNAT.
9680 2004-03-10  Richard Henderson  <rth@redhat.com>
9682         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9683         extra arguments.
9684         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9685         and host_xmake_file fragments.
9686         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9687         (gt_pch_restore): Similarly for gt_pch_use_address.
9688         (default_gt_pch_get_address): New.
9689         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9690         (default_gt_pch_use_address): Split out of gt_pch_restore.
9691         (mmap_gt_pch_use_address): Likewise.
9692         * hooks.c (hook_voidp_size_t_null): Remove.
9693         (hook_bool_voidp_size_t_false): Remove.
9694         * hooks.h: Likewise.
9695         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9696         default_ or mmap_ definitions.
9697         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9698         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9699         and gt_pch_use_address.
9700         * config/host-linux.c, config/host-solaris.c: New files.
9701         * config/x-linux, config/x-solaris: New files.
9702         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9703         Update for changed definition.
9704         (darwin_rs6000_gt_pch_use_address): Likewise.
9705         * doc/hostconfig.texi: Update docs.
9707 2004-03-10  Richard Henderson  <rth@redhat.com>
9709         PR c/14517
9710         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9711         except for pedantic c90 mode.
9713 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9715         * configure.ac: Bump AC_PREREQ to 2.59.
9716         * configure: Regenerate.
9718 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9720         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9721         (exp10_optab, exp2_optab): Define corresponding macros.
9722         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9723         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9724         using exp10?f2 and exp2?f2 patterns.
9725         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9726         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9727         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9728         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9730         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9731         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9732         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9734 2004-03-10  Anthony Green  <green@redhat.com>
9736         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9738 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9740         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9741         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9742         __LONGDOUBLE128.
9743         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9744         TARGET_OS_AIX_CPP_BUILTINS.
9745         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9746         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9747         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9748         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9749         previous change.
9751 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9753         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9755 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9757         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9758         __LONGDOUBLE128 on AIX.
9760 2004-03-10  Andrew Haley  <aph@redhat.com>
9762         PR optimization/14381
9763         * function.c (expand_function_end): Emit a blockage insn before
9764         the epilogue when -fnon-call-exceptions is used.
9766         * except.c (expand_start_all_catch): Make comment more accurate.
9768 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9770         PR target/14480
9771         * config/rs6000/t-rtems: Add missing file on branch.
9773 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9775         * dbxout.c (dbxout_symbol_location): Do not output references
9776         to optimized-out constant pool symbols.
9778 2004-03-10  Andreas Schwab  <schwab@suse.de>
9780         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9781         twon34_r.
9783 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9785         * alias.c (alias_sets_might_conflict_p): New.
9786         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9787         * common.opt (Wstrict-aliasing=): New.
9788         * flags.h (warn_strict_aliasing): Change type to int.
9789         * opts.c (warn_strict_aliasing): Change type to int.
9790         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9791         * tree.h (alias_sets_might_conflict_p): Declare it.
9792         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9794 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9796         PR bootstrap/12371
9797         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9798         (CALL_USED_REGISTERS): Likewise.
9799         (REG_CLASS_CONTENTS): Likewise.
9800         (REG_ALLOC_ORDER): New.
9801         (REGNO_REG_CLASS): Use regno_reg_class.
9802         * config/m68k/m68k.c: Add regno_reg_class array.
9804 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9806         * config/ia64/ia64.md (divsi3): Fix algorithm.
9807           (udivsi3): Ditto.
9808           (setf_exp_xf): Remove '*' from name.
9809         * testsuite/gcc.dg/20040309-1.c: New test.
9811 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9813         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9814         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9815         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9816         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9817         (sparc_aout_select_rtx_section): Don't check
9818         SUNOS4_SHARED_LIBRARIES.
9819         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9821 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9823         PR other/14474
9824         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9825         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9826         INTERNALS".
9828 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9830         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9831         (LIBGCC_SPEC): Update to match.
9833 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9835         * c-decl.c (last_function_parms, last_function_parm_tags)
9836         (last_function_parm_others, current_function_parms)
9837         (current_function_parm_tags, current_function_parm_others):
9838         Delete.
9839         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9840         New macros.
9841         (grokdeclarator): For function definitions, save the arg-info
9842         block from the declarator in DECL_ARGUMENTS.
9843         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9844         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9845         contains only PARM_DECLs.  Improve diagnostics.
9846         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9847         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9848         (store_parm_decls_newstyle): Take the function to operate on,
9849         and an arg-info block, as arguments; don't get anything from
9850         current_function_* globals.
9851         (store_parm_decls_oldstyle): Likewise.
9852         (store_parm_decls): Pass fndecl and its arg-info block down to
9853         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9854         argument lists through store_parm_decls_newstyle to reduce
9855         overhead.
9856         (pushdecl): Comment on the problems with the call to copy_node.
9857         Clear DECL_ARGUMENTS of the old node after copying it, if it
9858         is an arg-info block instead of a chain of decls.
9859         (start_function): Do not manipulate current_function_parm* or
9860         last_function_parm*.
9862 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9863             Andrew Pinski  <pinskia@physics.uc.edu>
9865         * ifcvt.c (noce_try_sign_mask): New function to transform
9866         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9867         (noce_process_if_block): Call noce_try_sign_mask.
9869 2004-03-09  Andrew Pinski  <apinski@apple.com>
9871         * c-typeck.c (tagged_types_tu_compatible_p):
9872         Fix typo.
9874 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9876         * simplify-rtx.c (simplify_const_relational_operation): New function
9877         renamed from simplify_relational_operation.
9878         (simplify_relational_operation): Change prototype to accept an
9879         additional mode argument.  Call simplify_const_relational_operation.
9880         (simplify_gen_relational): Update simplify_relational_operation call.
9881         (simplify_ternary_operation): Update simplify_relational_operation
9882         subroutine call to use simplify_const_relational_operation instead.
9884         * rtl.h (simplify_const_relational_operation): Prototype here.
9885         (simplify_relational_operation): Add addtional mode argument.
9887         * combine.c (combine_simplify_rtx): Update calls to
9888         simplify_relational_operation.
9889         (simplify_set): Likewise.
9890         (gen_binary): Likewise.
9891         * cse.c (fold_rtx): Likewise.
9892         * dojump.c (compare_from_rtx): Likewise.
9893         (do_compare_rtx_and_jump): Likewise.
9894         * integrate.c (subst_constants): Likewise.
9895         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9897 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9899         * config/m32r/m32r.md: Remove all define_peephole's.
9901 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
9903         * config/rs6000/rs6000.md: Remove trailing whitespace.
9905 2004-03-08  Eric Christopher  <echristo@redhat.com>
9907         * Makefile.in (site.exp): Add libiconv variable definition.
9909 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
9911         * configure: Regenerate for config/accross.m4 correction.
9913 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9915         PR target/14480
9916         * config/rs6000/t-rtems: Add missing file on branch.
9918 2004-03-08  Roger Sayle  <roger@eyesopen.com>
9920         PR middle-end/14289
9921         * c-typeck.c (c_mark_addressable): A register variable should
9922         be considered global if its not automatic, i.e. TREE_PUBLIC,
9923         TREE_STATIC or DECL_EXTERNAL.
9924         * function.c (put_var_into_stack): Call abort when placing a
9925         hard register into the stack, if x_parm_reg_stack_loc is NULL.
9927 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
9929         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
9930         ("*extendqisi2_short_displ"): Likewise.
9932 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9934         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
9935         (comp_operator): Likewise.
9936         * config/pdp11/pdp11-protos.h: Remove corresponding
9937         prototypes.
9939 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
9941         * expr.c (highest_pow2_factor_for_type): Rename into
9942         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
9943         TYPE_ALIGN when the target is a COMPONENT_REF.
9944         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
9946 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9948         * config/rs6000/rs6000.c: Formatting fix.
9949         (legitimate_offset_address_p): Correct offset range check.
9951         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
9952         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
9953         and MASK_STRING.
9955 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9957         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
9958         for little endian.
9959         ("ashrdi3_no_power"): Disable for little endian.
9960         (ashrdi3): Same.
9962 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9964         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
9965         builtins.
9967 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
9969         PR target/14471
9970         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
9971         case, checking for -no-mul-bug-abort option.
9972         * configure, config.in: Regenerate.
9973         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
9974         and -mno-mul-bug-workaround.
9975         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
9976         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
9977         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
9978         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
9979         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
9980         sure mulu.d is not last on cache-line.
9981         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
9982         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
9983         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
9984         (TARGET_SWITCHES): New options -mmul-bug-workaround and
9985         -mno-mul-bug-workaround.
9986         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
9987         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
9988         * config/cris/cris.c (cris_operand_extend_operator): Clarify
9989         relation to MULT in head comment.
9990         (cris_op_str): Abort for MULT.
9991         (cris_print_operand) <case '!'>: New case.
9993 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9995         PR debug/11983
9996         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9997         dw_val_class_vec.  Replace use throughout file.
9998         (dw_float_const): Delete.
9999         (dw_vec_const): New.
10000         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
10001         throughout file.
10002         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
10003         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
10004         (size_of_die): Adjust dw_val_class_vec sizing.
10005         (output_die): Output dw_val_class_vec.
10006         (insert_int, extract_int, insert_float): New functions.
10007         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
10008         Handle CONST_VECTOR.
10009         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
10011 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
10013         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
10014         AltiVec abi cannot co-exist.
10016         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
10018 2004-03-07  Jan Hubicka  <jh@suse.cz>
10020         * except.c (emit_to_new_bb_before):  Break fallthru edges.
10022 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
10024         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
10025         ("*lshrsi3"): Also accept an immediate for 68HC12.
10026         ("*ashrsi3_const"): Likewise.
10027         ("*ashrsi3"): Likewise.
10028         ("*ashlsi3_const"): Likewise.
10029         ("*ashlsi3"): Likewise.
10030         ("cmphi_1_hc12"): Compare two hard register by pushing them and
10031         comparing with a pop; don't use a split for that.
10032         ("cmphi split"): Disable compare split for 68HC12.
10034         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
10035         the status operands if they have side effects.
10037 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
10039         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
10040         definition.
10041         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
10042         config/h8300/h8300.h, config/ia64/ia64.h,
10043         config/mcore/mcore.h, config/mmix/mmix.h,
10044         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
10045         config/stormy16/stormy16.h, config/v850/v850.h,
10046         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
10047         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
10048         definition.
10050 2004-03-07  Roger Sayle  <roger@eyesopen.com>
10052         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
10053         <XOR_EXPR>: Fold x ^ x as zero.
10054         <AND_EXPR>: Fold x & x as x.
10056 2004-03-07  Roger Sayle  <roger@eyesopen.com>
10058         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
10059         "foo++ == const" into "++foo == const+incr".
10061 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
10063         * config/mips/mips.c (mips_in_small_data_p): Return false if
10064         TARGET_ABICALLS.
10066 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
10068         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
10069         the stack register.
10070         (expand_prologue): Don't make an interrupt or a trap handler a far
10071         symbol.
10072         (m68hc11_initial_elimination_offset): Likewise.
10074 2004-03-06  Richard Henderson  <rth@redhat.com>
10076         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
10078 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10080         * config/ns32k/ns32k-protos.h: Add a prototype for
10081         ns32k_notice_update_cc.
10082         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
10083         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
10084         ns32k_notice_update_cc.
10086 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
10088         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
10089         "*load_multiple_si"): Allow only if reload_completed.
10090         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
10091         Likewise.
10093 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10095         * config/vax/vax-protos.h: Add a prototype for
10096         vax_notice_update_cc.
10097         * config/vax/vax.c (vax_notice_update_cc): New.
10098         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
10099         vax_notice_update_cc.
10101 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
10103         * collect2.c (main): Only export initfunc and finifunc if
10104         LD_INIT_SWITCH not defined.
10105         (scan_prog_file): Only export constructors and destructors if
10106         LD_INIT_SWITCH not defined.  Only export symbols not found in
10107         shared objects.
10109 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10111         * pa.md (icacheflush): Reorder operands to make match_scratch operand
10112         last.
10113         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
10114         from calls to gen_icacheflush.
10116 2004-03-06  Richard Henderson  <rth@redhat.com>
10118         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
10119         (TARGET_LONG_DOUBLE_128): New.
10120         (TARGET_SWITCHES): Add long-double-{128,64}.
10121         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
10122         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
10123         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
10124         (WIDEST_HARDWARE_FP_SIZE): New.
10125         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
10126         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
10127         if TARGET_VAX_FLOAT.
10128         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
10129         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
10131 2004-03-06  Richard Henderson  <rth@redhat.com>
10133         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
10134         botched rtx class conversion.
10136 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10138         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
10139         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
10141         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
10142         macros.
10143         * fold-const.c (fold_mathfn_compare, fold): Likewise.
10145 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
10147         PR target/14343
10148         * config/i386/i386.md (movv2di_internal): Conditionalize on
10149         TARGET_SSE, not TARGET_SSE2.
10151 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
10153         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
10154         duplicated line.
10156 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10158         * builtins.c: Consistently use logN not log* in comments.
10160 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
10162         * rtl.h (mem_expr_equal_p): Function prototype added.
10163         * cfgcleanup.c (merge_memattrs): New function.
10164         (flow_find_cross_jump): Call merge_memattrs for matching insns.
10165         * emit-rtl.c (mem_expr_equal_p): New function.
10167 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
10169         * objc/objc-act.c (synth_module_prologue): Const-qualify
10170         objc_selector type if using the GNU runtime; fix generated
10171         signatures for objc_msg_lookup and objc_msg_lookup_super
10172         to match what GNU ObjC headers provide; reformat and clean up.
10173         (synth_self_and_ucmd_args): Use previously constructed (and
10174         hence possibly const-qualified) objc_selector type.
10176 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10178         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
10180 2004-03-05  Jason Merrill  <jason@redhat.com>
10182         * tree.h (TYPE_HASH): Use TYPE_UID.
10183         (TREE_HASH): New macro with old definition of TYPE_HASH.
10184         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
10185         (build_array_type, build_function_type): Likewise.
10186         (build_method_type_directly): Likewise.
10187         (build_offset_type, build_complex_type): Likewise.
10188         (type_hash_list, attribute_hash_list): Likewise. Now static.
10189         * except.c: s/TYPE_HASH/TREE_HASH/.
10191 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
10193         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
10194         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
10195         __va_ndx by 2 words when referencing an argument on the stack.
10196         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
10197         words when an arg on the stack is first seen.
10199 2004-03-05  Paul Brook  <paul@codesourcery.com>
10201         * arm.h (ARM_FLAG_VFP): Remove.
10202         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
10203         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
10205 2004-03-05  Paul Brook  <paul@codesourcery.com>
10207         * function.c (assign_parms): Include pretend alignment offset.
10209 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10211         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
10212         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
10214 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
10216         * configure.ac: When passing --enable-languages to subdir
10217         configure when host != build, make sure we don't pass an empty
10218         value.
10219         * configure: Regenerate.
10221 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
10223         PR 13577
10224         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
10225         options.
10227 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10229         * simplify-rtx.c (simplify_relational_operation): If
10230         flag_wrapv is set, do not move terms between the two
10231         side of a relational operator.
10233 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10235         * rtlanal.c: Include target.h and output.h
10236         (rtx_cost, address_cost, default_address_cost): Move from...
10237         * cse.c (rtx_cost, address_cost, default_address_cost):
10238         ... this file.
10239         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
10240         * Makefile.in: Adjust dependencies.
10242 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
10244         * cse.c (cse_end_of_basic_block): Make static.
10245         * local-alloc.c (function_invariant_p): Move to
10246         reload1.c.
10247         * loop.c (libcall_other_reg, record_excess_regs):
10248         Make static.
10249         * reload1.c (function_invariant_p): Moved here
10250         from local-alloc.c, made static.
10251         * rtl.h (cse_end_of_basic_block, function_invariant_p,
10252         libcall_other_reg, record_excess_regs): Remove
10253         declarations.
10255 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10257         * config/m32r/m32r.c (signed_comparison_operator): Add a
10258         missing parenthesis.
10260 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
10262         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
10263         going to call mmap again.  Read the file into the right place.
10264         Give a fatal error if we have to relocate.
10266 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
10268         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
10269         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
10271 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
10273         PR other/14354
10274         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
10275         round the same.  When rounding, clear bits that would cause a
10276         second rounding in pack_d.
10277         (_fpmul_parts): Ditto.  Remove #if 0:d code.
10279 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
10281         PR c++/14425, c++/14426
10282         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
10283         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
10284         Change C++ definitions to accept a 'const int' argument;
10285         the prototypes already do.
10286         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
10287         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
10288         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
10289         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
10290         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
10291         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
10292         end in ..._int; change them to accept an int instead of a char
10293         as the last parameter.
10295 2004-03-04  Phil Edwards  <phil@codesourcery.com>
10297         * genmultilib:  Change '=' to '-' when translating option names
10298         to directory names.
10300 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10302         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
10303         stack slot for temp used for result of BLKmode but in integral mode.
10305 2004-03-04  Jan Hubicka  <jh@suse.cz>
10307         * reload.c (find_reloads): Reorganize if seqeunce to switch.
10309         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
10310         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
10312 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
10314         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
10315         * testsuite/gcc.dg/20040303-1.c: New test.
10317 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10319         * ppro.md: Rewrite as a DFA pipeline description.
10320         * i386.md: Remove all uses of the ppro_uops attribute.
10321         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
10322         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
10323         ix86_sched_reorder, ix86_variable_issue,
10324         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
10325         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
10326         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
10327         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
10328         * athlon.md (athlon_ssecmp_load): Fix comment
10330 2004-03-04  Stuart Hastings  <stuart@apple.com>
10332         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
10334 2004-03-04  Stuart Hastings  <stuart@apple.com>
10336         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
10337         686, tell Darwin assembler to allow prefetch insns, non-empty def
10338         of SUBTARGET_OPTION_TRANSLATE_TABLE.
10340 2004-03-04  DJ Delorie  <dj@redhat.com>
10342         PR optimization/14282
10343         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
10344         between a call and the assignment of its return value.
10346 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10348         * config/h8300/h8300.c: Put a comment for every function.
10350 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10352         * config/h8300/h8300.md: Add comments about peephole2's.
10354 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10356         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
10358 2004-03-04  Jan Hubicka  <jh@suse.cz>
10360         * cfgcleanup.c (thread_jump): Update call of cselib_init.
10361         * cselib.c (cselib_record_memory): New static variable.
10362         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
10363         Give up on memories when asked for.
10364         (cselib_init): Accept new argument.
10365         * cselib.h (cselib_init): Update prototype.
10366         * gcse.c (local_cprop_pass): Update call of cselib_init.
10367         * loop.c (load_mems): Update call of cselib_init.
10368         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
10369         * sched-deps.c (sched_analyze): Update call of cselib_init.
10371 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10372             GP <gp@qnx.com>
10374         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
10375         when compiling PIC.
10377 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
10379         PR/14362
10380         * var-tracking.c (track_expr_p): Do not track variables which
10381         should be ignored for debugging purposes.
10383 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10385         * real.c (encode_ibm_extended): Don't bother rounding low double.
10386         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
10387         when fmt->pnan < fmt->p.
10389 2004-03-04  Eric Christopher  <echristo@redhat.com>
10391         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
10392         only range of valid arg registers and fixed_regs.
10394 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10396         PR target/14406
10397         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
10398         (abstf2, abstf2_internal): New define_expand.
10400 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10402         PR optimization/14235
10403         * expr.c (convert_move): Copy the source to a new pseudo
10404         when converting from a sub-word source to a larger-than-word
10405         register which conflicts with the source.
10407 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
10409         PR 13728
10410         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
10411         parameters with the same name, unless one is a forward decl.
10412         Do not issue a redundant-redeclaration warning for forward
10413         decls of parameters.
10415 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10417         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
10418         configuration.
10420 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
10422         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
10424 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10426         * target-def.h (TARGET_OPTF): Delete.
10427         * c-opts.c (TARGET_OPTF): Define.
10429 2004-03-04  Jan Hubicka  <jh@suse.cz>
10431         * cselib.c (cselib_finish): Fix another miss-application of my previous
10432         patch.
10434 2004-03-03  Mike Stump  <mrs@apple.com>
10436         Add framework support for darwin.
10438         * c-incpath.c: Include target.h and machmode.h.
10439         (add_path): Use a consistent style for cpp_dir.  Initialize
10440         p->construct to 0.
10441         (add_cpp_dir_path): New.
10442         (register_include_chains): Add use of extra_includes callback.
10443         (hook_void_int): Add.
10444         (target_c_incpath): Add.
10445         * c-incpath.h (add_cpp_dir_path): New.
10446         (target_c_incpath_s): Add.
10447         (target_c_incpath): Add.
10448         (C_INCPATH_INIT): Add.
10449         * c-opts.c (c_common_missing_argument,
10450         c_common_handle_option): Add -F argument processing.
10451         * c.opt: Add -F argument processing.
10452         * gcc.c (trad_capable_cpp): Add -F argument processing.
10453         * cppfiles.c (find_file_in_dir): Update to use construct
10454         callback.
10455         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
10456         cpp_get_prev): New.
10457         (_cpp_find_file): Use search_path_exhausted.
10458         (make_cpp_dir): Initialize construct to 0.
10459         * cpplib.h (missing_header_cb
10460         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
10461         (cpp_callbacks): Add missing_header
10462         (cpp_dir): Add construct.
10463         * target-def.h: (TARGET_OPTF): New.
10464         * hooks.c (hook_void_int, hook_void_charptr): Add.
10465         * hooks.h (hook_void_int, hook_void_charptr): Add.
10466         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
10467         $(MACHMODE_H) dependencies.
10468         * doc/invoke.texi (Darwin Options): Document -F.
10469         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
10470         (TARGET_OPTF): Add.
10471         * fix-header.c (target_c_incpath): Add.
10473         * config/darwin-c.c: Add c-incpath.h include.
10474         (using_frameworks, find_subframework_file,
10475         find_subframework_header, add_system_framework_path,
10476         frameworks_in_use, num_frameworks, max_frameworks,
10477         add_framework, find_framework, struct framework_header,
10478         framework_header_dirs, framework_construct_pathname,
10479         find_subframework_file, add_system_framework_path,
10480         add_framework_path, framework_defaults,
10481         darwin_register_frameworks, find_subframework_header): Add.
10482         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
10483         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
10484         (CPP_SPEC): Add __APPLE_CC__ support.
10485         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
10487 2004-03-04  Jan Hubicka  <jh@suse.cz>
10489         * cselib.c (cselib_finish): Fix miss-application of my previous
10490         patch.
10492 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10494         * hooks.c (hook_tree_tree_identity): New.
10495         * hooks.h: Add a prototype for hook_tree_tree_identity.
10496         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
10497         instead of MD_ASM_CLOBBERS.
10498         * system.h (MD_ASM_CLOBBERS): Poison.
10499         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
10500         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
10501         * target.h (gcc_target): Add md_asm_clobbers.
10502         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
10503         (ix86_md_asm_clobbers): New.
10504         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
10505         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
10506         TARGET_MD_ASM_CLOBBERS.
10508 2004-03-03  Stuart Hastings  <stuart@apple.com>
10510         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
10512 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10514         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10516         * config/sparc/sparc.h (ASM_FLOAT): Delete.
10517         (ASM_DOUBLE): Likewise.
10518         (ASM_LONGDOUBLE): Likewise.
10519         * config/sparc/pbd.h (ASM_INT_OP): Delete.
10521 2004-03-03  Richard Henderson  <rth@redhat.com>
10523         PR opt/13862
10524         * cselib.c (cselib_record_sets): Don't record multiple sets in
10525         asm insns.
10527 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
10529         * common.opt: Add description of the new -fgcse-after-reload flag.
10531         * flags.h (flag_gcse_after_reload): Declaration of global variable.
10533         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10534         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10535         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10536         get_bb_avail_insn, hash_scan_set_after_reload,
10537         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10538         gcse_after_reload, get_bb_avail_insn): New functions to implement
10539         gcse-after-reload.
10540         (gcse_after_reload_main): New function, the main entry point to
10541         gcse-after-reload.
10543         * rtl.h (gcse_after_reload_main): Declaration of the new function.
10545         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10547         * toplev.c (flag_gcse_after_reload): Initialization.
10549         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10551         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10552         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10553         the gcse after reload optimization.
10555         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10556         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10557         parameters.
10559         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10561 2004-03-03  Nicolas Pitre <nico@cam.org>
10563         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10564         small negative values.
10566 2004-03-03  Jan Hubicka  <jh@suse.cz>
10568         * cselib.c (hash_table):  Remove GTY marker.
10569         (reg_values): Turn into array.
10570         (used_regs): Likewise.
10571         (n_used_regs): New static variable.
10572         (reg_values_old): Kill.
10573         (clear_table): Update uses of arrays.
10574         (cselib_lookup): Likewise.
10575         (cselib_record_set): Likewise.
10576         (cselib_init): Likewise.
10577         (cselib_finish): Likewise.
10578         (cselib_udpate_varray_sizes): Kill.
10579         * cselib.h (cselib_update_varray_sizes): Kill.
10581 2004-03-03  Paul Brook  <paul@codesourcery.com>
10583         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10585 2004-03-03  Jan Hubicka  <jh@suse.cz>
10587         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10588         Rename from ...; make statistics transparent.
10589         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10590         (loc_descriptor): New structure.
10591         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10592         add_statistics):
10593         New static function.
10594         (ggc_record_overhead, dump_statistics): New global function.
10595         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10596         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10597         from ...; accept locations
10598         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10599         ggc_realloc, ggc_alloc_typed):  ... this one.
10600         from ...; accept locations
10601         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10602         ggc_alloc_stat): Rename from ... ; pass locations
10603         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10604         ... this one.
10605         (ggc_alloc_stat): Record overehead.
10606         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10607         ggc_realloc, ggc_alloc_typed):  Turn to macros
10608         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10609         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10610         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10611         * langhooks.h (lhd_make_node): Declare.
10612         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10613         * langhooks.c (lhd_make_node): New.
10614         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10615         locations.
10616         (rtx_alloc, swallow_copy_rtx): ... this one.
10617         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10618         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10619         * toplpev.c (finalize): Dump stats.
10620         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10621         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10622         Rename from ... ; pass locators.
10623         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10624         build?,  build_decl): Declare.
10625         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10626         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10627         Declare.
10628         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10629         build?,  build_decl): New macros.
10630         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10631         * statistics.h: New file.
10633 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10634             Richard Sandiford  <rsandifo@redhat.com>
10636         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10637         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10638         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10639         * config/mips/mips.c (mips_output_division): Fill the branch delay
10640         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10641         TARGET_FIX_R4400.
10642         (mips_output_division): Adjust accordingly.
10643         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10644         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10646 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10648         * alias.c (rtx_equal_for_memref_p): Use predicates
10649         to test rtx classes and new rtx class codes, possibly
10650         splitting conditionals that tested against '<' and 'o'.
10651         * caller-save.c (save_call_clobbered_regs): Likewise.
10652         * combine.c (contains_muldiv, find_split_point, subst,
10653         combine_simplify_rtx, simplify_if_then_else,
10654         simplify_set, simplify_logical, expand_compound_operation,
10655         make_compound_operation, if_then_else_cond, known_cond,
10656         apply_distributive_law, cached_nonzero_bits,
10657         cached_num_sign_bit_copies, simplify_shift_const,
10658         gen_binary, simplify_comparison, update_table_tick,
10659         record_value_for_reg, get_lsat_value_validate): Likewise.
10660         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10661         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10662         Likewise.
10663         * emit-rtl.c (copy_insn_1): Likewise.
10664         * expr.c (force_operand): Likewise.
10665         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10666         * flow.c (notice_stack_pointer_modification_1,
10667         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10668         and_reg_cond, elim_reg_cond): Likewise.
10669         * function.c (update_epilogue_consts): Likewise.
10670         * genattrtab.c (attr_rtx_1): Likewise.
10671         * genopinit.c (gen_insn): Likewise.
10672         * integrate.c (subst_constants): Likewise.
10673         * jump.c (reversed_comparison_code_parts,
10674         reversed_comparison_code, delete_related_insns,
10675         rtx_renumbered_equal_p): Likewise.
10676         * local-alloc.c (block_alloc): Likewise.
10677         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10678         canonicalize_condition): Likewise.
10679         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10680         Likewise.
10681         * optabs.c (add_equal_node, expand_binop): Likewise.
10682         * predict.c (estimate_probability): Likewise.
10683         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10684         * recog.c (validate_replace_rtx_1, comparison_operator,
10685         offsettable_address_p, constrain_operands): Likewise.
10686         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10687         Likewise.
10688         * regclass.c (scan_one_insn): Likewise.
10689         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10690         * regrename.c (kill_autoinc_value): Likewise.
10691         * reload.c (find_reusable_reload, find_reloads,
10692         reg_overlap_mentioned_for_reload_p): Likewise.
10693         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10694         * rtl.c (copy_rtx): Likewise.
10695         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10696         * rtlanal.c (commutative_operand_precedence): Likewise.
10697         * sched-deps.c (conditions_mutex_p): Likewise.
10698         * sched-rgn.c (is_cfg_nonregular): Likewise.
10699         * simplify-rtx.c (simplify_gen_binary,
10700         simplify_gen_relational, simplify_replace_rtx,
10701         simplify_unary_operation, simplify_binary_operation,
10702         simplify_ternary_operation, simplify_rtx): Likewise.
10703         * unroll.c (reg_dead_after_loop): Likewise.
10704         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10705         print_operand): Likewise.
10706         * config/arc/arc.c (proper_comparison_operator): Likewise.
10707         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10708         Likewise.
10709         * config/avr/avr.c (_reg_unused_after): Likewise.
10710         * config/frv/frv.c (frv_ifcvt_modify_tests,
10711         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10712         * config/i386/i386.c (ix86_comparison_operator,
10713         ix86_carry_flag_operator, fcmov_comparison_operator,
10714         arith_or_logical_operator, print_operand,
10715         ix86_expand_binary_operator, ix86_binary_operator_ok):
10716         Likewise.
10717         * config/i386/i386.md: Likewise.
10718         * config/ia64/ia64.c (not_postinc_memory_operand,
10719         ia64_print_operand, update_set_flags, errata_emit_nops):
10720         Likewise.
10721         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10722         CONSTRAINT_OK_FOR_S): Likewise.
10723         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10724         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10725         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10726         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10727         Likewise.
10728         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10729         eqne_comparison_operator, signed_comparison_operator):
10730         Likewise.
10731         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10732         Likewise.
10733         * config/mmix/mmix (mmix_foldable_comparison_operator,
10734         mmix_comparison_operator): Likewise.
10735         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10736         * config/rs6000/rs6000.c (stmw_operation,
10737         branch_comparison_operator, trap_comparison_operator,
10738         ccr_bit): Likewise.
10739         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10740         * config/s390/s390.c (s390_alc_comparison,
10741         s390_slb_comparison):L Likewise.
10742         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10743         Likewise.
10744         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10745         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10746         emit_hard_tfmode_operation, reg_unused_after)
10747         * doc/md.texi, doc/rtl.texi: Likewise.
10749         * ra-debug.c: Add 2004 to list of copyright years.
10750         * unroll.c: Likewise.
10752         * combine.c (simplify_logical): Remove dummy test,
10753         (apply_distributive_law): Fix typo in comment.
10754         GET_CODE (x) == AND so x is a commutative binary op.
10755         * jump.c (delete_related_insns): simplify loop
10756         condition, move testing of RTX codes inside the loop.
10757         (rtx_renumbered_equal_p): do not use RTX_CODE.
10758         * rtl.c (rtx_class): Declare as enum rtx_class.
10759         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10760         Move to RTX_COMM_COMPARE class.
10761         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10762         Move to RTX_CONST_OBJ class.
10763         * rtl.h (enum rtx_class): New declaration,
10764         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10765         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10766         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10767         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10768         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10769         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10770         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10771         OBJECT_P): New macros.
10772         * config/sparc/sparc.c (noov_compare_op): Remove register
10773         from parameter.
10775 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10777         * target.h: Remove texi jargons in comments.
10779 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10781         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10782         threshold to 0x4f.
10784         Revert:
10785         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10786         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10787         as well.
10788         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10789         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10791 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10793         * doc/md.texi (cbranchmode4): New.
10795 2004-03-02  Eric Christopher  <echristo@redhat.com>
10797         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10798         fix_trunc.
10799         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10800         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10801         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10802         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10804 2004-03-02  Richard Henderson  <rth@redhat.com>
10806         PR middle-end/11767
10807         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10808         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10809         before the compare, if flag_non_call_exceptions.
10811 2004-03-02  Richard Henderson  <rth@redhat.com>
10813         PR middle-end/14327
10814         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10815         emitting the label, not after.
10817 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10819         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10820         (m68hc11_mov_addr_mode): Likewise.
10821         (m68hc11_override_options): Initialize them based on target.
10822         (register_indirect_p): Allow a MEM for indirect addressing modes and
10823         use flags to control what is allowed.
10824         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10825         supported addressing modes.
10826         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10827         (go_if_legitimate_address_internal): Likewise.
10828         (m68hc11_indirect_p): Likewise and check the mode.
10829         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10831 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10833         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10834         (expand_builtin_setjmp_setup): Use
10835         targetm.builtin_setjmp_frame_value instead of
10836         BUILTIN_SETJMP_FRAME_VALUE.
10837         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10838         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10839         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10840         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10841         * targhooks.c (default_builtin_setjmp_frame_value): New.
10842         * targhooks.h: Add a prototype for
10843         default_builtin_setjmp_frame_value.
10844         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10845         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10847 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10849         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10850         sequences of moves.
10851         (add peepholes): New peepholes to optimize sequences adding small
10852         constants.
10853         (bset peepholes): New peepholes to transform an OR in a bset form
10854         (bclr peepholes): Likewise for bclr form.
10855         (cmp peepholes): New peepholes to avoid register copies when comparing.
10857 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10859         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10860         to separate push from moves.
10861         ("*pushdf_internal"): Likewise.
10862         ("*pushsf_internal"): Likewise.
10863         ("*pushsi_internal"): Likewise.
10864         ("movdi_internal"): Use define_insn_and_split; non push operand.
10865         ("movdf_internal"): Likewise.
10866         ("movsf_internal"): Likewise.
10867         ("movsi_internal"): Likewise.
10868         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10869         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10870         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10872 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10874         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10875         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10876         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10877         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10878         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10879         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10880         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10881         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10882         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10883         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10884         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10886 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10888         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10889         (SOFT_XY_REGNUM): Define.
10890         (cmp split): Use the above instead of hard coded numbers.
10891         (8-bit op split): No need to check the mode; allow Q_REG.
10892         (ashift split): Adjust the first operand if it uses the SP and we
10893         are pushing the shifted value.
10894         (plus shift split): Fix when a source is in register D+X.
10895         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10897 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10899         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10900         comparing with Z register.
10902 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10904         * cfgloop.h (struct loop_desc): Removed.
10905         (struct loop): Fields simple, desc and has_desc removed.
10906         (simple_loop_p, count_loop_iterations): Declaration removed.
10907         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10908         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10909         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10910         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10911         simple_loop_exit_p, variable_initial_value, variable_initial_values,
10912         simple_condition_p, simple_increment, count_strange_loop_iterations,
10913         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10914         Removed.
10915         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
10917 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10919         * genattrtab.c: Don't handle MATCH_INSN.
10920         * genrecog.c: Likewise.
10921         * gensupport.c: Likewise.
10922         * rtl.def (match_insn): Remove.
10923         * doc/md.texi (match_insn, match_insn2): Remove.
10925 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
10927         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
10928         macro results in memory allocation.
10930 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
10932         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
10933         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
10934         %(fbsd_dynamic_linker),
10935         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
10936         config/i386/freebsd.h
10937         * config/arm/freebsd.h: Ditto.
10938         * config/i386/freebsd.h: Ditto.
10939         * config/i386/freebsd64.h: Ditto.
10940         * config/ia64/freebsd.h: Ditto.
10941         * config/rs6000/sysv4.h: Ditto.
10942         * config/sparc/freebsd.h: Ditto.
10944 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
10946         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
10948 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10950         * rtl.def (define_combine): Remove.
10952 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10954         * config/h8300/h8300.md: Tweak formatting.
10956 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10958         * config/h8300/h8300.md (*cmphi_h8300): Rename to
10959         *cmphi_h8300_znvc.
10960         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
10962 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
10964         PR bootstrap/14356
10965         * gcc.c (process_command): Remove const-qualification from argv.
10966         (main): Likewise.
10968 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10970         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
10971         pushqi1_h8300hs_advanced.  Adjust its caller.
10972         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
10973         Adjust its caller.
10975 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
10977         * Makefile.in (install-libgcc, install-multilib): Pass
10978         mkinstalldirs var to libgcc.mk.
10980 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10982         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
10983         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
10985 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10987         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
10988         * config/h8300/h8300.md: Split several peephole2's, each into
10989         two.
10991 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10993         * dominance.c (recount_dominator): Handle postdominators.
10995 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10997         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10998         (NUM_SYMBOL_TYPES): Likewise.
10999         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
11000         (mips_unspec_address): Declare.
11001         (mips_gotoff_page, mips_gotoff_global): Delete.
11002         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
11003         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
11004         (mips_symbolic_constant_p, mips_symbolic_address_p)
11005         (mips_symbol_insns): Handle new symbol types.
11006         (general_symbolic_operand): New predicate.
11007         (mips_unspec_address): Make extern.
11008         (mips_gotoff_page, mips_gotoff_global): Delete.
11009         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
11010         Handle new symbol types.
11011         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
11012         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
11013         mips_unspec_address directly.
11014         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
11015         the documentation of -mexplicit-relocs.
11017 2004-03-01  Jeff Law  <law@redhat.com>
11019         * fold-const.c (fold): An equality comparison of a non-weak object
11020         against zero has a known result.  Similarly an equality comparison
11021         of the address of two non-weak, unaliased symbols has a known result.
11023         * ggc-page.c (struct page_entry): New field PREV.
11024         (ggc_alloc): Update PREV field appropriately.
11025         (sweep_pages): Likewise.
11026         (ggc_free): Likewise.  Use PREV field rather than loop to
11027         improve ggc_free performance.
11029 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
11031         * config/mips/mips.c (mips_output_division): Use the division
11032         instruction to fill the delay slot of a zero check.
11033         (mips_idiv_insns): Adjust accordingly.
11035 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
11037         * config.gcc: Create a default tmake_file for linux, and use
11038         it in all but two linux clauses.  Comment those two.
11040 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
11042         * combine.c (try_combine):  Do not refer to is_replaced.
11043         (gen_lowpart_for_combine):  Perverse subregs now have a
11044         more politically correct name.
11045         * cse.c (cse_insn): Likewise.
11046         * jump.c: Fix bogus reference to delete_insn.
11048 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
11050         PR debug/14328
11051         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
11052         constants as signed values.
11054         PR middle-end/13448
11055         * c-tree.h (readonly_warning): Rename to ...
11056         (readonly_error): ... this.
11057         * c-typeck.c (build_unary_op): Adjust accordingly.
11058         (readonly_warning): Rename to ...
11059         (readonly_error): ... this and issue errors, not warnings.
11060         (build_modify_expr): Call readonly_error, not readonly_warning.
11061         (c_expand_asm_operands): Likewise.
11062         * tree-inline.c (optimize_inline_calls): Do not inline functions
11063         after errors have occurred.
11065 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
11067         * configure.ac: Rearrange some threading code for clarity;
11068         add section comment.
11069         * configure: Regenerate.
11071 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11073         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
11074         typos.
11075         * doc/cppopts.texi: Fix a typo.
11077 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11079         * config/i386/i386.md: Fix formatting.
11081 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
11083         * configure.ac: Add some comments delineating sections of code.
11085         * doc/install.texi: Note that libada uses autoconf 2.57 also.
11087         * doc/install.texi: Fix idiot typo in previous commit.
11089         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
11091 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11093         * config/h8300/h8300.md: Add comments about peephole2's.
11095 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11097         * config/h8300/h8300.md: Tweak operand numbers of some
11098         peephole2's.
11100 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11102         * config/h8300/h8300.md: Tweak comments about peephole2's.
11104 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
11106         PR middle-end/14203
11107         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
11108         instead of testing whether DECL_RTL is not NULL.
11110 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11112         * config/sh/sh.c: Fix formatting.
11114 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11116         * config/sh/sh.c: Convert to ISO-C.
11118 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
11120         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
11121         my previous patch.
11123         * config/darwin.h (machopic_finish): Output stub even if the
11124         symbol is already defined.
11126 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11128         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
11130 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11132         * genattr.c (main): Don't define
11133         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
11134         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
11135         (DFA_PIPELINE_INTERFACE): Likewise.
11136         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
11137         (DFA_PIPELINE_INTERFACE): Likewise.
11139 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
11141         * config/mips/mips.md (tstsi, tstdi): Delete.
11143 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11145         * config/mips/mips.c (override_options): Remove an obsolete
11146         duplicate definition of the "e" constraint.
11147         * config/mips/mips.h: Update a comment accordingly.
11149 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11151         * config/mips/mips.md: Complete the unfinished R4000
11152         multiply/shift errata workaround.  Improve documentation.
11153         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
11154         has a hilo hazard.
11155         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
11156         (muldi3, muldi3_internal): Likewise.
11157         (muldi3_internal2): Remove, replacing with...
11158         (muldi3_mult3, muldi3_r4000): ...these new patterns.
11159         (mulsidi3): Take the errata into account.
11160         (mulsidi3_32bit): Remove, replacing with...
11161         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
11162         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
11163         (umulsidi3): Take the errata into account.
11164         (umulsidi3_32bit): Remove, replacing with..
11165         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
11166         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
11167         TARGET_FIX_R4000.
11168         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
11169         (smuldi3_highpart, umuldi3_highpart): Likewise.
11170         * doc/invoke.texi: Document the errata workaround.
11172 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11174         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
11175         * config/mips/mips.h (MASK_FIX_SB1): Bump.
11176         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
11177         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
11178         * config/mips/mips.c (mips_idiv_insns): New function.
11179         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
11180         (mips_output_division): Add a workaround for the R4000 divide/shift
11181         errata.
11182         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
11183         the length of an "idiv" instruction.
11184         * doc/invoke.texi: Document the new switches.
11186 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11188         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
11189         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
11191 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11193         PR optimization/14229
11194         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
11196 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
11198         * fold-const.c (fold): Strip NOPs that change the signedness
11199         for RSHIFT too.  Expand comment.
11201 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
11203         PR optimization/7871
11204         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
11205         from or to call insns.
11207 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
11209         PR optimization/7871
11210         * flow.c (propagate_one_insn): Interpret calls as setting global
11211         registers, not merely clobbering them.
11213 2004-02-27  Dale Johannesen  <dalej@apple.com>
11215         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
11216         config/darwin-protos.h:  Ditto.
11217         config/darwin.h:  Remove call to it.
11218         * combine.c (distribute_notes): Do not place a REG_DEAD note
11219         when value is both set and used.
11221 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11223         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
11224         as well.
11225         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
11226         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
11228 2004-02-27  Andrew Pinski  <apinski@apple.com>
11230         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
11231         Speedup common case of the type values being in the same order.
11233 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
11235         * config/ia64/ia64.h (no-inline-float-divide): New option.
11236         * config/ia64/ia64.h (no-inline-int-divide): New option.
11237         * config/ia64/ia64.h (no-inline-sqrt): New option.
11238         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
11239         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
11240         * config/ia64/ia64.c (ia64_override_options): Modify error
11241         checking for inlined division/sqrt.
11243 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11245         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
11246         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
11247         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
11248         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
11249         copyright.
11251 2004-02-27  Paul Brook  <paul@codesourcery.com>
11253         * function.c (assign_parms): Don't count pretend args for alignment.
11255 2004-02-27  Richard Henderson  <rth@redhat.com>
11257         * passes.c: New file.
11258         * Makefile.in (OBJS-common): Add it.
11259         * diagnostic.c (rtl_dump_and_exit): Move decl ...
11260         * flags.h (rtl_dump_and_exit): ... here.
11261         * output.h (size_directive_output, last_assemble_variable_decl):
11262         Move from toplev.c.
11263         * rtl.h (reg_alloc): Move from toplev.c.
11264         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
11265         struct dump_file_info, enum dump_file_index, dump_file_tbl,
11266         open_dump_file, close_dump_file, rest_of_decl_compilation,
11267         rest_of_type_compilation, rest_of_handle_final,
11268         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
11269         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
11270         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
11271         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
11272         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
11273         rest_of_handle_tracer, rest_of_handle_if_conversion,
11274         rest_of_handle_if_after_combine, rest_of_handle_web,
11275         rest_of_handle_branch_prob,
11276         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
11277         rest_of_handle_addressof, rest_of_handle_sibling_calls,
11278         rest_of_handle_jump_bypass, rest_of_handle_inlining,
11279         rest_of_handle_null_pointer, rest_of_handle_combine,
11280         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
11281         rest_of_handle_gcse, rest_of_handle_loop_optimize,
11282         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
11283         (decode_d_option): Use enable_rtl_dump_file.
11284         (compile_file, finalize, do_compile): Move profile+combine+graph
11285         cleanup to finish_optimization_passes.
11286         * toplev.h (init_optimization_passes, finish_optimization_passes,
11287         enable_rtl_dump_file): Declare.
11289 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
11290             Roger Sayle  <roger@eyesopen.com>
11292         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
11293         operands to build a tree with swapped operands.
11294         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
11295         'unsignedp' predicate to specify the signedness.
11297 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11299         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
11300         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
11301         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
11302         comment typos and formatting.  Follow spelling conventions.
11304 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
11306         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
11307         fix_truncsfsi2.
11309         * config/rs6000/spe.md: Delete spe_efsctuiz.
11310         Add spe_fixuns_truncsfsi2.
11311         Add spe_fix_truncsfsi2.
11313 2004-02-26  Eric Christopher  <echristo@redhat.com>
11315         * c-lex.c (c_lex_string_translate): New variable.
11316         (lex_string): Use to determine string translation.
11317         * c-pragma.h: Prototype.
11318         * c-parse.in (start_string_translation): New. Set above.
11319         (stop_string_translation): Ditto.
11320         (attribute, attribute_list, asm_def, asm_stmt,
11321         asm_operand): Use above functions.
11322         * cp/parser.c (cp_parser_declaration): Translate strings
11323         unless token is RID_EXTERN. Set c_lex_string_translate
11324         for recursive use.
11325         (cp_parser_asm_definition): Only translate argument strings
11326         to asms.
11327         (cp_parser_asm_operand_list): Ditto.
11328         (cp_parser_attribute_list): Do not translate attribute strings.
11330 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11332         * stmt.c (expand_start_case_dummy): Remove.
11333         * tree.h: Remove the corresponding prototype.
11335 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11337         * builtins.c (apply_args_register_offset): Remove.
11338         * tree.h: Remove the corresponding prototype.
11340 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11342         * stor-layout.c (is_pending_size): Remove.
11343         * tree.h: Remove the corresponding prototype.
11345 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11347         * recog.c (validate_replace_src): Remove.
11348         * recog.h: Remove the corresponding prototype.
11350 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11352         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
11353         MAYBE_REG_PARM_STACK_SPACE.
11354         * function.c: Likewise.
11355         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
11356         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11357         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
11358         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11360 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11362         * c-decl.c (c_expand_deferred_function): Remove.
11363         * c-tree.h: Remove the corresponding prototype.
11365 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11367         * postreload.c (reload_cse_move2add): Generate just a PLUS
11368         instead of an entire SET.
11370 2004-02-26  Jan Hubicka  <jh@suse.cz>
11372         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
11373         /pentium4m.
11374         * i386.c (override_options): Add support for new CPUs.
11375         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
11376         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
11377         constants.
11378         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
11380 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
11382         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
11384 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
11386         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
11387         (sparc_emit_fixunsdi): New prototype.
11388         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
11389         (sparc_emit_fixunsdi): New function.
11390         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
11391         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
11392         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
11393         to sparc_emit_floatunsdi.
11394         (fixuns_truncsfdi2): New expander.
11395         (fixuns_truncdfdi2): Likewise.
11397 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
11399         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
11400         unless HAVE_cc0.
11402 2004-02-25  Richard Henderson  <rth@redhat.com>
11404         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
11405         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
11406         use (op0-op1) == 0 if op0 is a pointer.
11407         * config/alpha/alpha.md (cmpdi): Use some_operand.
11408         (three comparison combine splits): Remove.
11410 2004-02-25  Richard Henderson  <rth@redhat.com>
11412         PR c/12794
11413         * c-common.c (handle_alias_attribute): Reject the attribute if
11414         current_function_decl is set.
11416 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11418         * config.gcc: Add comment describing extra_gcc_objs.
11419         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
11420         * configure.ac (extra_gcc_objs): New substitution variable.
11421         (host_extra_gcc_objs): Don't substitute.
11422         * configure: Regenerate.
11423         * Makefile.in: Use extra_gcc_objs.
11425 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11427         * doc/contrib.texi: Add an entry for myself.
11429 2004-02-25  Jan Hubicka  <jh@suse.cz>
11431         * basic-block.h (make_eh_edge, break_superblocks): Declare.
11432         * cfgbuild.c (make_eh_edge):  Make global.
11433         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
11434         * except.c (build_post_landing_pads, connect_post_landing_pads,
11435         dw2_build_landing_pads, sjlj_emit_function_enter,
11436         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
11437         sjlj_build_landing_pads): Update CFG.
11438         (emit_to_new_bb_before): New function.
11439         (finish_eh_generation): Do not rebuild the CFG.
11441 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11443         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
11444         target_cpu_default defines.
11445         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
11446         * pa.h (TARGET_DEFAULT): Likewise.
11448 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
11450         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
11451         comparisons with regard to signedness.
11453 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11455         * arm.c (thumb_legitimize_address): New function.
11456         * arm-protos.h: Prototype it.
11457         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
11458         (LEGITIMIZE_ADDRESS): Use it.
11460 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
11462         * reload1.c (reload): Only spill eliminable register with multiple
11463         adjacent elimination alternatives if all alternatives fail.
11465 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11467         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
11468         is -4095...+4095 inclusive.
11470 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
11472         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
11473         the bootstrap failure with Sun CC 5.4 and 5.5.
11475 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11477         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
11478         which modifies NEWREG.
11479         (cse_condition_code_reg): Update the mode of CC_REG in
11480         CC_SRC_INSN on our own.
11482 2004-02-24  Michael Matz  <matz@suse.de>
11484         * config/i386/i386.c (ix86_comp_type_attributes): Check for
11485         regparm attributes.
11487 2004-02-24  Richard Henderson  <rth@redhat.com>
11489         * toplev.c (dump_file_tbl): Rename from dump_file.
11490         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
11491         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
11492         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
11493         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
11494         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
11495         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
11496         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
11497         s/rtl_dump_file/dump_file/g.
11499 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
11501         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
11502         (spe_fixuns_truncsfsi2): Delete.
11504         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
11505         (fixuns_truncsfsi2): Delete.
11507 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
11509         PR/14240
11510         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11512 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
11514         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11516 2004-02-24  Jason Merrill  <jason@redhat.com>
11518         * tree.c (check_qualified_type): New fn.
11519         (get_qualified_type): Use it.  If type already has the desired
11520         quals, just return it.
11521         * tree.h: Declare it.
11523 2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
11525         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11526         TARGET_SCHED_FINISH_GLOBAL): New macros.
11528         * target.h (md_init_global, md_finish_global): Function
11529         declarations corresponding to new target macros.
11531         * haifa-sched.c (sched_init, sched_finish): Allow target to
11532         call the new schedular hooks.
11534         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11535         call to update_life_info.
11537         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11538         flag_schedule_insns for SH4.
11540         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11541         find_set_regmode_weight, find_insn_regmode_weight,
11542         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11543         sh_variable_issue, high_pressure, ready_reorder,
11544         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11545         functions used to throttle the insn movement in first
11546         scheduling pass for SH.
11548         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11549         TARGET_SCHED_FINISH_GLOBAL.
11551 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
11553         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11554         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
11555         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11556         symbols in sections named by the user.
11557         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
11558         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11559         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
11560         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11561         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11562         the above.
11563         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11564         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11565         one more pseudo to further improve code generation.
11566         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11567         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11568         inside UNSPEC.
11569         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11570         * config/frv/frv.c (frv_legitimate_address_p): Added
11571         allow_double_reg_p argument.  Adjust all callers.  Use it to
11572         decide whether to enable double-register indirect addressing.
11573         (frv_funcdesc_alias_set): Remove.
11574         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11575         register.  Emit movdi_ldd.
11576         (ldd_address_operand): New.
11577         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11578         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11579         (PREDICATE_CODES): Add ldd_address_operand.
11580         * config/frv/frv.md (movdi_ldd): New.
11581         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11582         intermediate computations if possible.
11583         (symGOTOFF2reg_i): Fix harmless typo.
11584         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11585         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11586         relocated p_vaddr to vaddr type.
11587         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11588         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11589         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11590         MEM, or use a funcdesc alias set.  Use regular move instead of
11591         ldd.
11592         (dbl_memory_one_insn_operand): Recognize function descriptors by
11593         type or by alias set, and don't split them.
11594         * config/frv/frv.md (call, call_value): Never use call_internal
11595         for fdpic.
11596         (call_internal, call_value_internal): Never match for FDPIC.
11597         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11598         call_value_fdpicsi): Require FDPIC.
11599         (ldd): Removed.
11600         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11601         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11602         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11603         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11604         FDPIC.  Compute data base address.
11605         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11606         before the other self-specs are processed.
11607         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11608         Build with -fPIC.
11609         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11610         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11611         inhibit_libc is defined.
11612         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11613         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11614         __FRV_FDPIC__.
11615         (__RELOC_POINTER): Define.
11616         (_Unwind_IteratePhdrCallback): Use it.
11617         * config/frv/frv.h (Twrite): Define.
11618         (TRANSFER_FROM_TRAMPOLINE): Use it.
11619         * config/frv/linux.h (INVOKE__main): Undefine.
11620         (Twrite): Override.
11621         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11622         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11623         (-mlibrary-pic): Emphasize that this option generates EABI code.
11624         (-mcpu): Add fr550.
11625         (-mpack): Remove.
11626         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11627         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11628         and CONSTs in FDPIC mode.
11629         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11630         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11631         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11632         constants.
11633         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11634         rather than 'i' constraint for the 2-instruction alternative.
11635         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11636         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11637         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11638         EXTRA_CONSTRAINT_FOR_Y.
11639         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11640         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11641         (addsi3): Change 'Y' constraint to 'Q'.
11642         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11643         * reload.c (CONST_POOL_OK_P): New macro.
11644         (find_reloads): Use it to decide whether a constant can be forced
11645         into memory.
11646         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11647         constant satisfies got12_operand.
11648         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11649         (frv_legitimate_address_p): Check for valid unspec offsets using
11650         got12_operand rather than frv_legitimate_fdpic_operand_p.
11651         (frv_legitimate_fdpic_operand_p): Delete.
11652         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11653         or after reload.
11654         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11655         TARGET_FDPIC.
11656         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11657         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11658         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11659         (frv_fdpic_fptr_operand): Don't declare here.
11660         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11661         rather than fdpic_got12_operand.
11662         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11663         got12_operand and const_unspec_operand.
11664         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11665         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11666         (symbolic_operand): Remove.
11667         (const_unspec_operand): New predicate.
11668         * config/frv/frv.md (*movsi_got): Use got12_operand.
11669         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11670         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11671         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11672         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11673         * config/frv/frv.c (frv_unspec): New structure.
11674         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11675         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11676         validate CONST indices.  Use frv_output_const_unspec to print them.
11677         (frv_print_operand): Update call to unspec_got_name.  Use
11678         frv_output_const_unspec to print constant unspecs.
11679         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11680         Reject UNSPECs otherwise.
11681         (unspec_got_name): Take the relocation number as argument, not an
11682         rtx containing it.
11683         (frv_output_addr_const_extra): Remove, replacing with...
11684         (frv_output_const_unspec): ...this new function.
11685         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11686         (gpr_or_int12_operand): Use fdpic_got12_operand.
11687         (dbl_memory_one_insn_operand): Likewise.
11688         (fdpic_got12_operand): Use frv_const_unspec_p.
11689         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11690         are already legitimate.  Use frv_small_data_reloc_p when deciding
11691         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11692         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11693         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11694         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11695         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11696         label, for real this time.
11697         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11698         representation of visibility.
11699         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11700         such.
11701         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11702         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11703         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11704         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11705         it was explicitly disabled.
11706         (frv_stack_info): There is no need to save the link register in every
11707         frame unless TARGET_LINKED_FP is true.
11708         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11709         frame pointer if the stack pointer might change value.
11710         (frv_return_addr_rtx): Check and process "count" argument.
11711         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11712         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11713         (frv_find_base_term): Declare.
11714         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11715         (FIND_BASE_TERM): Define.
11716         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11717         small_data_register_operand, small_data_symbolic_operand.  Add
11718         symbolic_operand.
11719         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11720         (frv_print_operand_memory_reference, output_move_single): Remove
11721         special handling for unlegitimized sdata addresses.
11722         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11723         and symbolic addresses.
11724         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11725         (frv_find_base_term): New function.
11726         (int_2word_operand): Check specifically for symbolic address constants.
11727         (pic_register_operand, pic_symbolic_operand): Delete.
11728         (small_data_register_operand, small_data_symbolic_operand): Delete.
11729         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11730         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11731         (move_source_operand): Only accept CONSTs if they're a two-insn
11732         symbolic constant.
11733         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11734         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11735         using gen_symGOTOFF2reg*.
11736         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11737         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11738         themselves a cost of 3 insns.
11739         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11740         Change predicate to symbolic_operand.
11741         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11742         (*movsi_lda_sdata): Delete.
11743         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11744         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11745         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11746         frv-*-*linux*.
11747         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11748         label.
11749         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11750         -multilib-library-pic.
11751         (LINK_SPEC): Add -z text for -mfdpic.
11752         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11753         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11754         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11755         Override.
11756         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11757         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11758         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11759         crtstuff-generated files.
11760         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11761         * config.gcc: Add frv-*-*linux*.
11762         * config/frv/linux.h, config/frv/t-linux: New.
11763         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11764         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11765         when -mfdpic even if a linker script is explicitly listed.
11766         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11767         * config/frv/frv.c (frv_override_options): Clear asm_out
11768         unaligned_op for SImode on FDPIC.
11769         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11770         argument passed to decl_readonly_section.
11771         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11772         whole block run with FDPIC even with -fno-PIC.
11773         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11774         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11775         symbol or label plus offset to memory.
11776         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11777         GOTOFF and GPREL for LABEL_REF.
11778         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11779         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11780         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11781         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11782         * doc/invoke.texi: Document them.
11783         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11784         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11785         (frv_splittable_got_operand): Removed.
11786         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11787         LO_SUM.  Add comments.
11788         (frv_override_options): Moved enabling of FDPIC to
11789         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11790         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11791         (frv_legitimize_fdpic_address): Don't duplicate logic in
11792         frv_emit_movsi.
11793         (frv_gen_GPsym2reg): New.
11794         (unspec_got_name): Added gprel.
11795         (frv_expand_fdpic_call): Add support for inlining PLTs.
11796         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11797         (gpr_or_int12_operand): Added GPREL12.
11798         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11799         (small_data_symbolic_operand): Fail if FDPIC.
11800         (fdpic_splittable_got_operand): Removed.
11801         (fdpic_got12_operand): Added GPREL12.
11802         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11803         when appropriate.  Fix sdata GOTOFF.
11804         (frv_legitimate_constant_p): Require legitimate PIC operand for
11805         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11806         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11807         flag_pic case.
11808         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11809         frv_assemble_integer fails.
11810         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11811         (SUBTARGET_DRIVER_SELF_SPECS): New.
11812         (ASM_SPEC): Don't pass -mno-fdpic.
11813         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11814         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11815         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11816         -multilib-library-pic.
11817         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11818         condexec_si_media_operator, condexec_sf_add_operator and
11819         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11820         and condexec_sf_unary_operator.
11821         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11822         New.
11823         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11824         movsi_internal.  Give them internal names.  movsi_got has type
11825         int.
11826         (fdpic got splitters): Remove.
11827         (symGPREL2reg, symGPREL2reg_hilo): New.
11828         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11829         to -mlibrary-pic.  Map -multilib-library-pic to it.
11830         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11831         Document.
11832         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11833         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11834         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11835         (frv_cannot_force_const_mem): New function.
11836         (const_small_data_p, plus_small_data_p): Update comments on sdata
11837         on FDPIC.
11838         (frv_override_options): Set flag_pie for FDPIC too.
11839         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11840         call-saved registers on FDPIC.
11841         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11842         don't force LR to be preserved.
11843         (frv_expand_prologue): Likewise.
11844         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11845         (frv_frame_pointer_required): Don't force it just because the
11846         FDPIC register is used.
11847         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11848         operand only if !condexec_p.
11849         (frv_legitimize_address): Return the FDPIC-legitimized address.
11850         Don't match small data here on FDPIC.
11851         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11852         symbols.  Use TRUE/FALSE instead of 1/0.
11853         (frv_local_funcdesc_p): New.
11854         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11855         immediates when possible.
11856         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11857         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11858         an UNSPEC_GOT.
11859         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11860         12-bit immediates when possible.
11861         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11862         are not legitimate pic operands.
11863         (frv_in_small_data_p): Re-enable for FDPIC.
11864         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11865         (FRV_GLOBAL_P): Removed.
11866         * config/frv/frv.md: Add modes to CONSTs.
11867         (movsi_got): New.
11868         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11869         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11870         (fdpic splittable operations): Match on flag_pic != 1.
11871         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11872         * config/frv/frv.c (frv_asm_out_constructor,
11873         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11874         bytes, not bits.
11875         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11876         * config/frv/frv.c (frv_assemble_integer): Reject complex
11877         expressions referencing function SYMBOL_REFs.
11878         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11879         (move_source_operand): Reject CONSTs that reference function
11880         SYMBOL_REFs on FDPIC.
11881         (frv_emit_movsi): If we get such a CONST, break it up.
11882         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11883         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11884         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11885         MEM.
11886         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11887         (frv_trampoline_size): Increase for FDPIC.
11888         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11889         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11890         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11891         Disable use of GOTOFF for now.
11892         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11893         Disable use of small data in FDPIC for now.
11894         (frv_asm_output_mi_thunk): Implement for FDPIC.
11895         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11896         * config/frv/frv.c (frv_asm_out_constructor): Use
11897         frv_assemble_integer for FDPIC pointers.
11898         (frv_asm_out_destructor): Likewise.
11899         * config/frv/frv.md (ldd): Fix order of operands.  Use
11900         address_operand for input.
11901         2003-09-18  DJ Delorie  <dj@redhat.com>
11902         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11903         (unspec_got_name): Correct typo.
11904         (frv_emit_movsi): Pre-expand splittable GOTs.
11905         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11906         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11907         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11908         * config/frv/t-frv: Add -mfdpic multilibs.
11909         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11910         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11911         * config/frv/frv.c (frv_override_options): -mfdpic assumes
11912         flag_pic, default to 32-bit pics, require DWORD ops.
11913         (frv_override_options): Add W and Z constraints.
11914         (frv_expand_prologue): No pic prologue for -mfdpic.
11915         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
11916         (frv_print_operand_memory_reference): Handle GOT constants.
11917         (frv_legitimate_address_p): Allow GOT constants.
11918         (frv_legitimize_address): Handle GOT addresses too.
11919         (frv_legitimate_fdpic_operand_p): New.
11920         (frv_legitimize_fdpic_address): New.
11921         (unspec_got_name): New.
11922         (frv_output_addr_const_extra): New.
11923         (frv_expand_fdpic_call): New.
11924         (frv_fdpic_fptr_operand): New.
11925         (gpr_or_int12_operand): Handle GOT operands.
11926         (int_2word_operand): Handle GOT operands.
11927         (fdpic_operand): New.
11928         (fdpic_splittable_got_operand): New.
11929         (fdpic_got12_operand): New.
11930         (frv_emit_movsi): Handle GOT operands.
11931         (frv_assemble_integer): -mfdpic doesn't use rofixups.
11932         (frv_print_operand): Support 'g' code for GOT operands.
11933         * config/frv/frv-protos.h: Add prototypes as needed.
11934         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
11935         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
11936         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
11937         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
11938         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
11939         R_FRV_GOTOFFLO): New.
11940         (movsi_high_got, movsi_lo_sum_got): New.
11941         (*movsi_pic): Don't use this splitter for -mfdpic.
11942         (addsi3): Allow GOT references also.
11943         (call, call_value): Handle -mfdpic separately.
11944         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
11945         call_value_fdpicsi): New.
11946         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
11947         symGOTOFF2reg_i): New.
11948         * config/frv/frv.h (MASK_FDPIC): New.
11949         (TARGET_FDPIC): New.
11950         (TARGET_SWITCHES): Add -mfdpic.
11951         (FDPIC_FPTR_REGNO): New.
11952         (FDPIC_REGNO): New.
11953         (OUR_FDPIC_REG): New.
11954         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
11955         FDPIC_CALL_REGS.
11956         (REG_CLASS_NAMES): Likewise.
11957         (REG_CLASS_CONTENTS): Likewise.
11958         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
11959         (EXTRA_CONSTRAINT): Add it here.
11960         (FRV_GLOBAL_P): New.
11961         (OUTPUT_ADDR_CONST_EXTRA): New.
11963 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11965         * config/sparc/sparc.h: Remove commented-out definitions of
11966         TARGET_EDOM and GEN_ERRNO_RTX.
11968 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11970         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
11971         df_analyse with df_analyze.
11973 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
11975         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
11976         beginning of block.
11978 2004-02-23  James E Wilson  <wilson@specifixinc.com>
11980         * calls.c (precompute_arguments): Update comment.
11982 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11984         * et-forest.c: Replace et_occurences with et_occurrences.
11986 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11988         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
11989         with iv_analyze.
11991 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
11993         * config/i386/i386.c: Rename pni to sse3.
11994         * config/i386/i386.h: Likewise.
11995         * config/i386/i386.md: Likewise.
11996         * config/i386/pmmintrin.h: Likewise.
11997         * doc/extend.texi: Likewise.
11998         * doc/invoke.texi: Likewise.
12000 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
12001             Kazu Hirata  <kazu@cs.umass.edu>
12003         Remove -fwritable-strings.
12004         * c-common.c (fix_string_type): Don't check
12005         flag_writable_strings.
12006         (fix_string_type): Likewise.
12007         * c-opts.c (set_std_c89): Don't initialize
12008         flag_writable_strings.
12009         (set_std_c99): Likewise.
12010         * common.opt (fwritable-strings): Remove.
12011         * flags.h: Remove the external declaration of
12012         flag_writable_strings.
12013         * opts.c (common_handle_option) <OPT_fwritable_strings>:
12014         Remove.
12015         * toplev.c (flag_writable_strings): Remove.
12016         (f_options): Remove an entry for writable-strings.
12017         * varasm.c (const_hash_1) <STRING_CST>: Don't check
12018         flag_writable_strings.
12019         (compare_constant) <STRING_CST>: Likewise.
12020         (build_constant_desc): Likewise.
12021         * config/darwin.c (machopic_select_section): Likewise.
12022         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
12023         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
12024         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
12025         * config/mips/mips.c (mips_select_section): Likewise.
12026         (mips_encode_section_info): Likewise.
12027         * config/pa/pa.c (pa_select_section): Likewise.
12028         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
12029         * config/v850/v850.c (v850_select_section): Likewise.
12030         * doc/invoke.texi (-fwritable-strings): Remove.
12031         (-fno-const-strings): Don't mention -fwritable-strings.
12032         * doc/trouble.texi: Don't mention -fwritable-strings.
12034 2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
12036         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
12038 2004-02-23  Dale Johannesen  <dalej@apple.com>
12040         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
12041         (movdf_hardfloat64):  Ditto.
12042         (movdf_softfloat64):  Ditto.
12044 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
12045         * config/rs6000/rs6000.c (function_arg): call to
12046         rs6000_mixed_function_arg for DFmode moved to allow
12047         normal DFmode incoming register assignment.
12049 2004-02-23  Dale Johannesen  <dalej@apple.com>
12051         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
12052         (movdf_hardfloat64):  Ditto.
12054 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12056         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
12057         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
12058         copyright.
12060 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
12062         PR c/14156
12063         * c-typeck.c (c_expand_return): Change check for VAR_DECL
12064         to use DECL_P instead.
12066         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
12067         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
12069 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12071         * Makefile.in (opts.o): Depend on target.h.
12072         * opts.c (decode_options): Use targetm.default_short_enums
12073         instead of DEFAULT_SHORT_ENUMS.
12074         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12075         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
12076         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
12077         * target.h (gcc_target): Add default_short_enums.
12078         * config/cris/cris.h: Remove a comment about
12079         DEFAULT_SHORT_ENUMS.
12080         * config/ip2k/ip2k.h: Likewise.
12081         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
12082         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
12084 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
12085             Falk Hueffner  <falk@debian.org>
12087         PR c/14188
12088         * builtins.c (expand_builtin_va_arg): Emit an informative message
12089         if a trap is generated.
12090         * c-typeck.c (build_function_call): Likewise.
12092 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
12094         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
12095         fopen.
12096         * libgcov.c: Include sys/stat.h.
12097         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
12098         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
12099         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
12100         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
12102 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
12104         * reorg.c: Remove comments about dead ports.
12106 2004-02-22  Christopher Faylor  <cgf@redhat.com>
12108         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
12109         extra host object file when targetting cygwin rather than generic
12110         object files.
12112 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
12114         Merge from tree-ssa:
12115         2003-11-20  Richard Henderson  <rth@redhat.com>
12117                 * tree-inline.c (insert_decl_map): New.
12118                 (remap_decl, remap_type, remap_block, copy_body_r,
12119                 initialize_inlined_parameters, declare_return_variable,
12120                 remap_save_expr): Use it.
12122         * function.c (copy_body_r): Add mapping from id->ret_label to
12123         id->ret_label.  Revert test for ret_label.
12125 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
12127         * genoutput.c (process_template): Strip trailing whitespace in @
12128         templates and issue a warning if there was any.
12130 2004-02-21  Christopher Faylor  <cgf@redhat.com>
12132         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
12133         object file when targetting cygwin.
12134         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
12135         overridden by top-level Makefile.
12137 2004-02-21  Roger Sayle  <roger@eyesopen.com>
12139         * config/i386/i386.c (standard_80387_constant_p): Also prefer
12140         the x87's load constant instructions when optimizing for size.
12142 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
12144         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
12145         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
12146         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
12147         * fold-const.c: Likewise.
12148         * simplify-rtx.c: Likewise.
12150 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
12152         * combine.c (can_combine_p): Don't ignore SETs marked with
12153         REG_EH_REGION notes.
12154         (try_combine): When attemting to fix unrecognized insns, don't
12155         split a PARALLEL that contains the original i2.
12157 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
12159         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
12160         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
12161         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
12162         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
12163         (vector, pixel, bool): #define to __vector, __pixel and __bool.
12164         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
12165         portion of header.
12166         (__altivec_link_error_invalid_argument): Remove prototype; will use
12167         __builtin_altivec_compiletime_error("vec_*") instead.
12168         (vec_*): Fix/complete set of available operation overloads given the
12169         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
12170         cv-correctness of pointer arguments; in C, always check for correct
12171         argument types before macro expansion.
12172         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
12173         defining Darwin/PowerPC-specific '-f[no-]altivec' and
12174         '-W[no-]altivec-long-deprecated' switches.
12175         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
12176         '__vector', '__pixel' and '__bool' macros using
12177         '__attribute__((altivec(...)))' types.
12178         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
12179         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
12180         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
12181         New type nodes.
12182         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
12183         handling '-W[no-]altivec-long-deprecated'.
12184         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
12185         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
12186         altivec_expand_dst_builtin): Remove casts from integer literals.
12187         (altivec_expand_builtin): Likewise; handle expansion of new
12188         '__builtin_altivec_compiletime_error' function.
12189         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
12190         types, and make them distinct from other vector types; register
12191         '__builtin_altivec_compiletime_error' function.
12192         (print_operand): For 'P', print a full target register name instead of
12193         merely its number.
12194         (rs6000_attribute_table): Add "altivec" attribute.
12195         (rs6000_handle_altivec_attribute): New function.
12196         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
12197         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
12198         maps to).
12199         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
12200         declare.
12201         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
12203 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12205         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
12206         check.
12207         (shift_mix4left+2): Delete redundant pattern.
12209 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12211         * alias.c (OUTGOING_REGNO): Don't define the default.
12212         * builtins.c (OUTGOING_REGNO): Likewise.
12213         (INCOMING_REGNO): Likewise.
12214         (apply_args_register_offset): Always use OUTGOING_REGNO.
12215         * combine.c (OUTGOING_REGNO): Likewise.
12216         * sibcall.c (OUTGOING_REGNO): Likewise.
12217         * defaults.h (INCOMING_REGNO): Provide the default.
12218         (OUTGOING_REGNO): Likewise.
12220 2004-02-21  Jan Hubicka  <jh@suse.cz>
12222         * params.def (max-peeled-insns, max-completely-peeled-insns,
12223         max-once-peeled-insns): Set to 400.
12225 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12227         PR c++/12007
12228         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
12229         are set for parameters before outputing debugging information.
12231 2004-02-20  Falk Hueffner  <falk@debian.org>
12233         PR target/14201
12234         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
12235         numbers.
12237 2004-02-20  Per Bothner  <per@bothner.com>
12239         * input.h:  Don't #include line-map.h.  It may cause link problems
12240         with undefined linemap_line_start when line-map.h is included but
12241         line-map.o is not linked, as currently happens with gengtype on
12242         compilers that don't support inline.
12243         * toplev.c:  So we do have to explicitly #include line-map.h here.
12245 2004-02-20  Richard Henderson  <rth@redhat.com>
12247         * doc/invoke.texi: Add -Wvariadic-macros.
12249 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12251         * haifa-sched.c (sched_emit_insn): Remove.
12252         * sched-int.h: Remove the corresponding prototype.
12254 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12256         Revert:
12257         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12258         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12259         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12260         * config/cris/cris.h: Remove a comment about
12261         DEFAULT_SHORT_ENUMS.
12262         * config/ip2k/ip2k.h: Likewise.
12263         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12265 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
12266             Tom Tromey  <tromey@redhat.com>
12268         * doc/install.texi: Moved --disable-libgcj and
12269         --with-system-zlib documentation to new section for
12270         Java-specific options.
12271         Added explicit Cross-Compiler-Specific Options subheading.
12272         Added section for Java-specific options.
12274 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
12276         * doc/install.texi (Building the Ada compiler): Remove
12277         example.
12279 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12281         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
12283 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12285         * gcc.c (process_command): Allow translation of the copyright
12286         symbol but not the rest of the copyright message.
12287         * gcov.c (print_version): Likewise.  Allow translation of the
12288         message about warranty.
12290 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
12292         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
12293         predicate.
12294         ("*andsi_clear"): Tweak constraints to not match postincrement.
12295         Adjust the predicate to exclude a volatile memory reference.
12296         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
12297         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
12299 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
12301         * move-if-change: Remove.
12302         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
12303         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
12304         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
12305         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
12306         (s-gtyp-gen, s-iov): Use the top level move-if-change.
12307         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
12309 2004-02-19  James E Wilson  <wilson@specifixinc.com>
12311         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
12312         for operand2.  Add condition that requires register_operand operand2
12313         before reload.
12315 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
12316             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12318         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
12319         * config/mips/mips.md: Expand comment above unaligned loads and stores.
12321 2004-02-19  Richard Henderson  <rth@redhat.com>
12323         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
12324         * tree.c (build0, build1, build2, build3, build4): Split out from...
12325         (build): ... here.  Call them.
12326         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
12328         * convert.c (convert_to_integer): Remove extra build argument.
12329         * tree-inline.c (expand_call_inline): Likewise.
12331 2004-02-19  Richard Henderson  <rth@redhat.com>
12333         * c-opts.c (warn_variadic_macros): New.
12334         (c_common_handle_option): Set it.
12335         (sanitize_cpp_opts): Copy it to cpp_opts.
12336         * c.opt (Wvariadic-macros): New.
12337         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
12338         * cppinit.c (cpp_create_reader): Initialize it.
12339         * cppmacro.c (parse_params): Check it.
12341 2004-02-19  David Daney <ddaney@avtrex.com>
12343         PR preprocessor/14198
12344         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
12345         builtin_assert ("machine=mips")
12347 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12349         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12350         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12351         * config/cris/cris.h: Remove a comment about
12352         DEFAULT_SHORT_ENUMS.
12353         * config/ip2k/ip2k.h: Likewise.
12354         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12356 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12358         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
12359         when passing single SFmode quantities in general registers,
12360         put them in the high half.
12362 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12364         * doc/md.texi (Standard Names): Document additional dependency on
12365         fix pattern.
12367         * optabs.c (ftruncify): Remove.
12368         (expand_fix): Manually inline ftruncify above.
12369         (can_fix_p): Add FIXME note.
12371 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12373         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
12374         spe_fixuns_truncsfsi2.
12376         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
12377         fixuns_truncsfsi2.
12379 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
12381         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12382         * testsuite/gcc.dg/20040219-1.c: New test.
12384 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
12386         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
12387         "*subsf3_cconly"): Subtraction is not commutative.
12389 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12391         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
12392         (sdbout_symbol): If called before sdbout_init, queue DECL for
12393         later and return.
12394         (sdbout_init): Set sdbout_initialized true, process decls
12395         queued earlier by sdbout_symbol.
12396         (sdbout_finish): Use size_t for index variable.
12398 2004-02-19  Jeff Law  <law@redhat.com>
12400         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
12401         for unordered comparison codes.
12403 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
12405         * reload1.c (reload): Correct comment.
12406         (scan_paradoxical_subregs): Remove #if 0 and old comment.
12407         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
12408         register variables are not used by reload.
12410 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
12412         PR target/14209
12413         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
12414         constraints to not match postincrement.  Adjust the predicate to
12415         exclude a volatile memory reference.
12417 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12419         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
12421 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12423         * hooks.c (hook_void_tree_int): Remove.
12424         (hook_void_constcharptr): Likewise.
12425         (hook_int_void_0): Likewise.
12426         * hooks.h: Remove the prototypes for the above three
12427         functions.
12428         * targhooks.c (hook_bool_machine_mode_true): Remove.
12429         * targhooks.h: Remove the prototype for
12430         hook_bool_machine_mode_true.
12432 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12434         * emit-rtl.c (subreg_realpart_p): Remove.
12435         (reorder_insns_with_line_notes): Likewise.
12436         (end_full_sequence): Likewise.
12437         * rtl.h: Remove the prototype for the above functions.
12439 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12441         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
12442         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12443         config/iq2000/iq2000.h, config/m32r/m32r.h,
12444         config/pdp11/pdp11.h, config/sparc/sparc.h,
12445         config/xtensa/xtensa.h: Remove commented-out or useless
12446         definitions of CASE_VECTOR_PC_RELATIVE.
12448 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12450         * loop.c (all_sets_invariant_p): Remove.
12452 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
12454         PR target/12916
12455         * config/sparc/sparc.h (NPARM_REGS): Delete.
12456         (BASE_RETURN_VALUE_REG): Likewise.
12457         (BASE_OUTGOING_VALUE_REG): Likewise.
12458         (BASE_PASSING_ARG_REG): Likewise.
12459         (BASE_INCOMING_ARG_REG): Likewise.
12460         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
12461         TARGET_ARCH64, not TARGET_V9.
12462         (function_arg_slotno): Dispatch based on the mode class.
12463         Handle vector modes like floating-point modes.
12464         (function_arg_record_value_1): Handle vector types like
12465         floating-point types.
12466         (function_arg_record_value_2): Likewise.
12467         Calculate regno after mode transformation.
12468         (function_arg): Handle vector modes like floating-point modes.
12469         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
12470         If ARCH64, do not recheck alignment.
12471         (function_arg_pass_by_reference): Reorder the conditions.
12472         (sparc_return_in_memory): Move after function_arg_padding.
12473         Implement calling conventions for vector modes.
12474         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
12475         (function_value): Move scope of 'regbase'.
12476         Implement calling conventions for vector modes.
12477         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
12478         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
12479         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
12480         the argument is passed by reference.
12481         (sparc_type_code): Handle vector types.
12483 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
12485         * function.c (assign_parms): When building decl_rtl for
12486         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
12488 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
12490         * expr.c (is_aligning_offset): Check if we are aligning the
12491         expressions's address over BIGGEST_ALIGNMENT in bytes, not
12492         in bits.
12494 2004-02-18  Matt Austern  <austern@apple.com>
12496         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
12497         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
12498         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
12499         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
12500         spec string.
12501         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
12503 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
12505         * dwarf2out.c (loclabel_num): Move outside #ifdef
12506         DWARF2_DEBUGGING_INFO and mark with GTY(()).
12507         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
12508         Mark with GTY(()).
12509         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12510         Allocate memory with ggc_alloc.  No need to copy anything.
12511         (ia64_hpux_file_end): Update to match.
12513 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12515         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12516         by default.
12518 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12520         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12521         ("divmodtisi3"): Likewise.
12522         ("udivmoddi4", "udivmodtidi3"): Likewise.
12523         ("divmodsi4", "divmoddisi3"): Likewise.
12524         ("udivmodsi4", "udivmoddisi3"): Likewise.
12525         ("udivsi3", "umodsi3"): Likewise.
12527 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12529         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12530         placeholder insn when chunkifying the pool.
12532 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12534         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12535         generating PIC code.
12537 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12539         * config/h8300/h8300-protos.h: Add a prototype for
12540         h8300_expand_branch.
12541         * config/h8300/h8300.c (h8300_expand_branch): New.
12542         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12543         bgtu, beq, bne): Call h8300_expand_branch().
12545 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12547         * config/h8300/h8300-protos.h: Add prototypes for
12548         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12549         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12550         (h8300_hard_regno_mode_ok): Likewise.
12551         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12552         h8300_hard_regno_nregs().
12553         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12555 2004-02-18  Per Bothner  <per@bothner.com>
12557         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
12558         partly reverts my 2003-10-01 change, because we're back to logically
12559         including <command line> inside the main line.
12560         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
12561         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
12562         Fixes PR preprocessor/14103.
12564         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12565         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12566         (cpp_push_include):  Don't need to increment pfile's line field.
12567         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12569         * c-ppoutput.c (print struct):  New first_time field.
12570         (init_pp_output):  Set print.first_time.
12571         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12572         which is set also for (say) <command line>.  Clear print.first_time.
12574         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12575         does not match the code, so fix both.
12576         (should_stack_file):  Inline include_pch_p function.
12577         (include_pch_p):  Remove pointless function.
12579         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12581 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12583         * config/h8300/h8300.md (four define_peephole2's): Use
12584         h8300_regs_ok_for_stm().
12586 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12588         * config/h8300/h8300-protos.h: Update the prototype for
12589         expand_a_rotate().
12590         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12591         argument.
12592         * config/h8300/h8300.md: Update all callers.
12594 2004-02-18  Jan Hubicka  <jh@suse.cz>
12596         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12597         floats.
12598         (simplify_binary_operation): Deal with logicals on floats.
12600         * i386.md (SSE fabs splitters): Emit new patterns.
12601         (SSE cmov splitters): Likewise.
12602         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12603         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12604         subregs.
12605         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12606         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12608 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12610         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12611         by hand.
12612         (output_a_rotate): Tweak a comment.
12613         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12614         (*rotlhi3_1): Change to rotlhi3_1.
12615         (*rotlsi3_1): Change to rotlsi3_1.
12617 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12619         PR target/13866
12620         * arm.c (load_multiple_operation): Don't insist that the source reg
12621         of a post-increment component is the same as the destination.
12622         (store_multiple_operation): Likewise.
12624 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12626         * config/h8300/h8300.md: Move movsf patterns into one section
12627         of the file.
12629 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12631         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12632         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12633         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12634         config/mips/linux64.h, config/pa/pa-64.h,
12635         config/rs6000/aix51.h, config/rs6000/aix52.h,
12636         config/rs6000/spe.md, config/sparc/linux.h,
12637         config/sparc/linux64.h: Update copyright.
12639 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12641         * config/h8300/h8300.md: Move push patterns into one
12642         section of the file.
12644 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12646         PR c++/11326
12647         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12648         fntype.
12650 2004-02-18  Paul Brook  <paul@codesourcery.com>
12652         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12654 2004-02-18  Paul Brook  <paul@codesourcery.com>
12656         PR debug/12934
12657         * dwarf2out.c (loc_descriptor_from_tree): Handle
12658         EXPR_WITH_FILE_LOCATION.
12660 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12662         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12663         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12664         trailing whitespace from instructions.
12666 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12668         * configure.ac: When generating auto-build.h, pass
12669         --enable-languages to the sub-configure.
12670         Put quotes around ${program_transform_name} when generating
12671         name of as, ld, nm, objdump.
12672         * configure: Regenerate.
12674 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12676         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12677         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12678         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12679         (s-preds, s-iov): Do not depend on move-if-change.
12681 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12683         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12684         (insert_save): Likewise.
12686 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12688         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12689         warning.
12691 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12693         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12694         *one_cmplsi2_h8300.
12695         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12697 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12699         * config/h8300/h8300-protos.h: Update the prototype of
12700         fix_bit_operand().
12701         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12702         argument "what".
12703         * config/h8300/h8300.md: Update all callers.
12705 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12707         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12708         the last argument to "code" from "type".
12710 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12712         * config/h8300/h8300.c: Remove an extern declaration of
12713         rtx_equal_function_value_matters.
12715 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12717         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12718         by hand.
12719         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12720         (*iorqi3_1): Change to iorqi3_1.
12721         (*xorqi3_1): Change to xorqi3_1.
12723 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12725         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12726         typos.
12728 2004-02-17  Jan Hubicka  <jh@suse.cz>
12730         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12732 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12734         PR optimization/14119
12735         * combine.c (try_combine): When attemting to fix unrecognized insns,
12736         don't delete SETs marked with REG_EH_REGION notes.
12738 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12740         * combine.c (simplify_if_then_else): Do not replace
12741         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12742         modes differ.
12744 2004-02017  Steven Bosscher  <stevenb@suse.de>
12746         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12747         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12748         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12749         * ada/utils.c: Likewise.
12750         * cp/decl.c: Likewise.
12751         * f/com.c: Likewise.
12752         * java/class.c: Likewise.
12754 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12756         * config/h8300/h8300.md: Fix comment typos.
12758 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12760         * config/mips/t-iris6gld: Renamed to ...
12761         * config/mips/t-irix-gld: ... this.
12762         * config.gcc (mips-sgi-irix6*): Reflect this
12763         (mips-sgi-irix5*): Use it with GNU ld.
12765         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12766         to ...
12767         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12768         * config/mips/t-irix-gld: Reflect this.
12769         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12771         * config/mips/iris5gld.h: New file.
12772         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12773         Only use collect2 without gas.
12775         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12776         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12777         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12778         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12780         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12781         * config/mips/iris5.h: ... here.
12783         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12784         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12785         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12787         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12788         using irix_startfile_spec, irix_endfile_spec.
12790 2004-02-16  Gunther Nikl  <gni@gecko.de>
12792         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12794 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12796         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12797         insns by hand.
12799 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12801         * cfghooks.c (split_edge): Speed up updating of dominators.
12803 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12805         PR c++/11326
12806         * c-common.c (flag_abi_version): Remove.
12807         * c-common.h (flag_abi_version): Likewise.
12808         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12809         * c.opt (fabi-version): Remove.
12810         * calls.c (expand_call): Always pass a function type to
12811         struct_value_rtx.  Use convert_memory_address.
12812         * common.opt (fabi-version): Add it.
12813         * flags.h (flag_abi_version): Likewise.
12814         (abi_version_at_least): New macro.
12815         * opts.c (common_handle_option): Add OPT_fabi_version.
12816         * toplev.c (flag_abi_version): Define it.
12817         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12818         New function.
12819         (ia64_output_mi_thunk): Use it.
12820         (ia64_struct_value_rtx): Likewise.
12822 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12824         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12825         Don't generate insns by hand.
12827 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12829         PR c++/14178
12830         * doc/invoke.texi (fabi-version): The default is 2 now.
12832 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12834         * loop-iv.c: New file.
12835         * Makefile.in (loop-iv.o): New.
12836         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12837         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12838         num_loop_branches): New functions.
12839         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12840         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12841         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12842         get_simple_loop_desc, free_simple_loop_desc): Declare.
12843         (simple_loop_desc): New inline function.
12844         (struct rtx_iv, struct niter_desc): New.
12845         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12846         * expr.c (force_operand): Handle subregs of expressions created by
12847         loop unroller.
12848         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12849         parts of the initialization to toplev.c
12850         * loop-unroll.c (loop_exit_at_end_p): New.
12851         (unroll_and_peel_loops): Call iv_analysis_done.
12852         (decide_peel_once_rolling, decide_peel_completely,
12853         decide_unroll_stupid, decide_unroll_constant_iterations,
12854         decide_unroll_runtime_iterations, decide_peel_simple,
12855         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12856         unroll_loop_runtime_iterations): Use new simple loop analysis.
12857         * loop-unswitch.c (compare_and_jump_seq): New.
12858         (may_unswitch_on_p): Renamed to ...
12859         (may_unswitch_on): Use new iv analysis.
12860         (reversed_condition): Export.
12861         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12862         * predict.c (estimate_probability): Use new simple loop analysis.
12863         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12864         canon_condition, simplify_using_condition): Declare.
12865         * stor-layout.c (get_mode_bounds): New.
12866         * toplev.c (rest_of_handle_loop2): Some parts of
12867         initialization/finalization moved here from loop-init.c.
12869 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12871         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12872         pointer.
12873         (CALL_USED_REGISTERS): Likewise.
12874         (REG_ALLOC_ORDER): Likewise.
12875         (REG_CLASS) <GENERAL_REGS>: Likewise.
12877 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12879         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12880         in associative operators.
12881         * rtlanal.c (commutative_operand_precedence): Create some new
12882         variables.  Prefer a commutative operand on the left, then
12883         binary expressions, then NEG and NOT.
12885 2004-02-16  Matthias Klose  <doko@debian.org>
12887         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12888         in terms of SHLIB_SOVERSION.
12889         * config/m68k/t-slibgcc-elf-ver: New file.
12890         * config/pa/t-slibgcc-elf-ver: New file.
12891         * config.gcc (m68k-linux, parisc-linux): Use them when not
12892         sjlj exceptions are not configured.
12894 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12896         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12898 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
12900         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12902 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
12904         * doc/sourcebuild.texi: Mention backends.html.
12906 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12908         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12909         line-map.c, line-map.h, var-tracking.c: Fix comment
12910         formatting.
12912 2004-02-16  Richard Henderson  <rth@redhat.com>
12914         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
12916         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
12918 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12920         * config/h8300/h8300.md: Remove unnecessary parallels from
12921         all define_insn and define_split patterns.
12923 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12925         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
12926         "clobber").
12928 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
12930         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
12931         '%#'.
12933 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12935         * config/ia64/ia64.c, config/mips/mips.c,
12936         config/mmix/mmix-modes.def: Fix comment typos.
12938 2004-02-15  Roger Sayle  <roger@eyesopen.com>
12940         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
12941         (get_directive_line): Remove unused function prototype.
12943 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12945         * tree-inline.c (copy_body_r): Do not replace ret_label.
12947 2004-02-14  Jan Hubicka  <jh@suse.cz>
12949         * i386.c (x86_four_jump_limit): New variable.
12950         (k8_avoid_jump_misspredicts): Rename to ...
12951         (ix86_avoid_jump_misspredicts): .. this one.
12952         (ix86_pad_returns): Break out from ...
12953         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
12954         to.
12955         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
12957 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12959         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
12960         PARALLEL is NULL.
12962 2004-02-14  Per Bothner  <per@bothner.com>
12964         * fix-header.c (line_table):  Move local variable in main to global.
12965         * scan.h (line_table):  Use it.
12966         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
12967         line (recently renamed to src_loc) before calling recognized_function.
12969 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
12971         * Makefile.in: Fix comment typos.
12973 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
12975         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
12976         for start_value when it is directly moved into reg, and factorize
12977         the retrieval of GET_MODE (reg).
12979 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12981         * config/mips/mips-protos.h (mips_load_got_page): Delete.
12982         (mips_load_got_global): Delete.
12983         (mips_gotoff_page): Declare.
12984         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
12985         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
12986         UNSPEC_LOAD_GOT pattern rather than a MEM.
12987         (*load_got[sd]i): New patterns.
12988         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
12989         (mips_load_got_page, mips_load_got_global): Delete.
12990         (mips_gotoff_page): New function.
12991         (override_options): Don't initialize mips_got_alias_set.
12993 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12995         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12996         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12997         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12998         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12999         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
13000         * config/mips/mips.c: Fix some overly-long lines.
13001         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
13002         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
13004 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13006         * configure.ac: Search for as, ld below libexec/gcc.
13007         * configure: Regenerate.
13009 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
13011         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
13012         __builtin_arm_setwcx ().
13013         * config/arm/arm.c (arm_expand_builtin): Generate operands
13014         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
13016 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
13018         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
13019         and "wmuluh" to "wmulsm" and "wmulum", respectively.
13020         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
13021         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
13022         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
13023         (_mm_mulhi_pu16): Likewise.
13025 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
13027         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
13028         DECL_NAME != 0 before dereferencing.
13030 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
13032         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
13033         (s390_output_addr_const_extra): Declare.
13034         (s390_output_pool_entry): Remove FILE * argument.
13035         * config/s390/s390.c (s390_output_symbolic_const): Remove.
13036         (s390_output_addr_const_extra): New function.
13037         (print_operand_address): Call output_addr_const instead of
13038         s390_output_symbolic_const.
13039         (print_operand): Likewise.
13040         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
13041         Remove FILE * argument.
13042         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
13043         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
13044         call.
13046 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13048         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
13049         (struct edge, struct vertex, struct graph): New.
13050         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
13051         free_graph): New functions.
13053 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
13055         * config/mips/mips.md (casesi_internal, casesi_internal_di):
13056         Use ".set macro" to avoid warnings about multi-instruction
13057         macros, since they're intentional.
13059 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
13061         * config/darwin.h: Add include guards.  Remove old, now incorrect,
13062         comment about STANDARD_EXEC_PREFIX.
13064         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
13065         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
13066         for installing .1 manpages.  Add rules for installing cpp
13067         and gcov manpages under their installed names.
13069 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
13071         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
13072         host, but try LD_FOR_TARGET first.
13073         * configure: Rebuilt.
13075 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13077         * dbxout.c: Move declaration of dbxout_type_decl outside
13078         #ifdef DBX_DEBUGGING_INFO.
13079         * c-parse.in: Don't give the asmdef production a type.
13081 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13083         * debug.h (struct gcc_debug_hooks): Add type_decl field.
13084         (debug_nothing_tree_int): Prototype.
13085         (dwarf_debug_hooks): Delete, unused.
13086         * debug.c (do_nothing_debug_hooks): Update.
13087         (debug_nothing_tree_int): New function.
13088         * langhooks.h (struct lang_hooks_for_decls):
13089         Remove builtin_type_decls field.
13090         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
13091         (LANG_HOOKS_DECLS): Update.
13092         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
13093         Use debug_hooks->type_decl.
13094         * dbxout.c (preinit_symbols): New static.
13095         (dbx_debug_hooks, xcoff_debug_hooks): Update.
13096         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
13097         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
13098         for symbols to output.
13099         (dbxout_type_decl): New function.
13100         (dbxout_symbol): If called before dbxout_init has run, queue
13101         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
13102         to TYPE_DECLs before emitting them.
13103         * xcoffout.c (assign_type_number): Delete.
13104         (xcoff_type_numbers): New static table.
13105         (xcoff_assign_fundamental_type_number): New function.
13106         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
13107         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
13108         * sdbout.c: Include varray.h.
13109         (deferred_global_decls): New static.
13110         (sdb_debug_hooks): Update.
13111         (sdbout_global_decl): If we can't emit something right now,
13112         remember it in deferred_global_decls.
13113         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
13114         (sdbout_init): Initialize deferred_global_decls.
13115         * Makefile.in: Update dependencies of sdbout.o.
13116         * dwarf2out.c (dwarf2out_type_decl): New function.
13117         (dwarf2_debug_hooks): Update.
13118         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
13119         * c-decl.c (getdecls): Just return 0.
13120         (check_for_loop_decls): Don't use getdecls.
13121         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
13122         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
13124 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
13126         * config/s390/s390.c (s390_sched_reorder2): Remove.
13127         (TARGET_SCHED_REORDER2): Do not redefine.
13129 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13131         * c-parse.in (maybe_type_qual): Delete.
13132         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
13133         (asm_argument): New grammar rules.
13134         (extdef_1): Use asmdef.
13135         (maybeasm): Move down with other asm rules; use simple_asm_expr.
13136         (xexpr): Move up with other expression rules.
13137         (stmt): Use asm_stmt.
13139         * c-typeck.c (build_asm_expr): New function - body mostly
13140         pulled from build_asm_stmt.
13141         (build_asm_stmt): Just handle tacking on the volatile qualifier.
13142         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
13144 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
13146         PR bootstrap/13617
13147         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
13148         (mips_declare_object): Make variadic.
13149         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
13150         mips_output_aligned_decl_common.
13151         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
13152         (mips_declare_object): Make variadic.
13154 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13156         * function.c (update_epilogue_consts): Teach about binary operations.
13158         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
13159         previous MEM_VOLATILE in REF.
13160         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
13161         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
13163 2004-02-12  Gunther Nikl  <gni@gecko.de>
13165         * config.gcc: Restore support for m68k-openbsd.
13167 2004-02-12  Jan Hubicka  <jh@suse.cz>
13169         * tree-optimize.c (tree_rest_of_compilation): Do not release
13170         DECL_ARGUMENTS.
13172 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
13174         * doc/install.texi: Fix the spelling of "explicitly".
13176 2004-02-11  Eric Christopher  <echristo@redhat.com>
13178         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
13179         duplicate argument structure of cpp_interpret_string.
13180         * cpphash.h: Move prototype...
13181         * cpplib.h: Here.
13182         * cpplib.c: Fix calls to match new function signature.
13184 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
13186         PR c/456
13187         * cppexp.c (num_binary_op): Don't allow comma operators in #if
13188         constant expressions at all outside C99 mode if pedantic.
13190 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
13192         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
13193         (log10_optab, log2_optab): Define corresponding macros.
13194         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
13195         * genopinit.c (optabs): Implement log10_optab and log2_optab
13196         using log10?f2 and log2?f2 patterns.
13197         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
13198         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
13199         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
13200         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
13202         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
13203         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
13204         log2, log2f and log2l built-ins as inline x87 intrinsics.
13206 2004-02-11  Richard Henderson  <rth@redhat.com>
13208         PR target/1532
13209         * flow.c (insn_dead_p): A clobber of a dead hard register is a
13210         dead insn after reload.
13212 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
13214         * tree.h (frame_base_decl): Add GTY marker.
13215         * var-tracking.c (frame_base_decl): Likewise.
13217 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
13219         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
13220         incorrect, hunk.
13221         (add_location_or_const_value_attribute): Use text_section_label,
13222         not TEXT_SECTION_NAME.
13224 2004-02-11  Per Bothner  <per@bothner.com>
13226         Represent column numbers using line-map's source_location.
13227         The "next available source_location" is now managed internally by
13228         line-maps.c rather than by clients.
13229         * line-map.h (struct line_map):  New field column_bits.
13230         <from_line>:  Rename field to start_location.
13231         (struct line_maps):  New fields highest_location and max_column_hint.
13232         (linemap_check_files_exited):  New declaration.
13233         (linemap_line_start):  New declaration.
13234         (linemap_add):  Remove from_line parameter; use highest_location field.
13235         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
13236         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
13237         (CURRENT_LINE_MAP):  Remove macro.
13238         (linemap_position_for_column):  New inline function.
13239         * line-map.c (linemap_init):  Clear new fields.
13240         (linemap_check_files_exited):  New function, extracted from ...
13241         (linemap_free):  Use linemap_check_files_exited.
13242         (linemap_add):  Remove from_line parameter.  Various updates.
13243         (linemap_line_start):  New function.
13244         (linemap_lookeup):  Update for new field names.
13245         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
13246         linemap_position_for_column may unpredictably change the current map,
13247         it is cleaner and simpler for us to not cache it in cpp_reader.
13248         (struct cpp_buffer):  New sysp field.
13249         Changed warned_cplusplus_comments and from_stage3 to bitfields.
13250         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
13251         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
13252         current map using linemap_lookup.
13253         (do_linemarker):  Also set buffer's sysp field.
13254         (destringize_and_run):  No longer need to decrement current line.
13255         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
13256         (search_path_head, open_file_failed):  Use buffer's sysp.
13257         (cpp_make_system_header):  Get current map using linemap_lookup.
13258         Also set buffer's sysp flag.
13259         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
13260         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
13261         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
13262         (struct cpp_reader):  ... and adding saved_line_base field.
13263         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
13264         Update accordingly.  Don't adjust line.
13265         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
13266         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
13267         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
13268         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
13269         * cpplex.c (_cpp_lex_direct):  Likewise.
13270         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
13271         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
13272         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
13273         Remove col field as it is now subsumed by src_loc.
13274         * cpperror.c:  Update various field, parameter, and macro names.
13275         (print_location):  If col==0, try SOURCE_COLUMN of line.
13276         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
13277         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
13278         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
13279         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
13280         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
13281         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
13282         (_cpp_lex_direct):  Use linemap_position_for_column.
13283         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
13284         parameter.  Instead get it from the line_table global.  Adjust callers.
13285         (print):  Remove map field.  Replace line field to src_line.
13286         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
13287         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
13288         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
13289         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
13290         * cpptrad.c (copy_comment):  Rename variable.
13291         * c-lex.c (map):  Remove static variable, for same reason we removed
13292         cpp_reader's map field.
13293         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
13294         to call linemap_lookup.
13295         (cb_line_change):  Token's line field replaced by src_loc.
13296         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
13297         Don't save new_map.
13299         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
13300         source_location.
13302 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13304         * config/rs6000/altivec.md (*movv4si_internal): At least one
13305         operand must be register_operand.
13306         (*movv8hi_internal1): Likewise.
13307         (*movv16qi_internal1): Likewise.
13308         (*movv4sf_internal1): Likewise.
13310 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
13312         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
13313         operand.
13314         (movv4hi_internal): Same.
13315         (movv2sf_internal): Same.
13316         (movv1di_internal): Same.
13318 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
13320         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
13321         TARGET_OLDABI consistently.
13322         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
13323         mips_va_arg,override_options,compute_frame_size,
13324         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
13325         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
13326         and TARGET_OLDABI consistently.
13327         * config/mips/mips.md (exception_receiver): Likewise.
13328         * config/mips/linux64.h: Likewise.
13330 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13332         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
13333         Set AltiVec ABI and vrsave as default for ppc64 linux.
13334         (init_cumulative_args): Post error, if try to return
13335         value in AltiVec register without enable AltiVec.
13336         (function_arg_advance): Ditto for passing arguments.
13338 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
13340         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
13341         a label before updating its usage count.
13343 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
13345         * doc/install.texi: Remove extra cd.
13347 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
13349         * c-common.c (vector_size_helper): Remove; call
13350         reconstruct_complex_type() instead.
13351         * tree.c (reconstruct_complex_type): New function
13352         (formerly vector_size_helper() in c-common.c).
13353         (make_vector): Make externally visible.
13354         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
13356 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13358         * config/h8300/h8300-protos.h: Add a prototype for
13359         h8300_regs_ok_for_stm.
13360         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
13361         * config/h8300/h8300.md (stm_h8300s_2_advanced,
13362         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
13363         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
13364         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
13365         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
13366         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
13367         ldm_h8300s_4_normal, ldm_h8300s_4): Use
13368         h8300_regs_ok_for_stm().
13370 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
13372         PR c/14088
13373         * real.c (real_from_string): Look for 'X' as well as 'x' in
13374         hexfloat strings.
13376 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13378         * config/h8300/h8300.md: Remove an incorrect comment about
13379         peephole2.  Add comments.
13381 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
13383         PR/14058
13384         * emit-rtl.c (set_decl_incoming_rtl): New.
13385         * tree.h (set_decl_incoming_rtl): New.
13386         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
13387         DECL_INCOMING_RTL.
13388         * ada/misc.c (adjust_decl_rtl): Likewise.
13390 2004-02-10  Per Bothner  <per@bothner.com>
13392         * c-opts.c (c_common_post_options):   Don't emit working directory
13393         in cpp output if -P was specified.
13395 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13397         PR c/14092
13398         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
13399         negate_expr back to the original type.
13401 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
13403         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
13404         bump retaddr here.
13406 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13408         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
13409         gen_lowpart_SUBREG): Move under the file in which they
13410         are actually declared.
13412 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
13414         * doc/sourcebuild.texi: Add libada documentation.
13416         * doc/install.texi: Update documentation on Ada build, now
13417         that the GNAT lib and tools are built automatically.
13419 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
13421         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
13422         && TARGET_IRIX.
13424 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
13426         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
13427         boundaries outside build_component_ref() call (a macro in ObjC++).
13429 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
13431         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
13432         (init_cumulative_args): Likewise.
13433         (a7_overlap_mentioned_p): Delete prototype.
13434         * config/xtensa/xtensa.c (struct machine_function): Replace
13435         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
13436         Add set_frame_ptr_insn field.
13437         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
13438         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
13439         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
13440         at the function entry and replace the operand with the pseudo.
13441         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
13442         argument and record this flag in CUMULATIVE_ARGS.
13443         (function_arg): Remove result_mode and special-case code to handle
13444         arguments in a7.  Instead, set need_a7_copy flag when there is an
13445         incoming argument in a7.
13446         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
13447         and use the value recorded in cfun->machine->set_frame_ptr_insn.
13448         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
13449         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
13450         special-case code.
13451         (a7_overlap_mentioned_p): Delete.
13452         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
13453         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
13454         arguments to init_cumulative_args and pass "incoming" flag instead.
13455         (BLOCK_REG_PADDING): Delete.
13456         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
13457         checks for reload_in_progress and reload_completed.  Update calls to
13458         xtensa_copy_incoming_a7.
13459         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
13460         to call xtensa_copy_incoming_a7.
13462 2004-02-09  DJ Delorie  <dj@redhat.com>
13464         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
13465         longer modify standard_exec_prefix, standard_bindir_prefix, or
13466         standard_startfile_prefix.
13468 2004-02-09  James E Wilson  <wilson@specifixinc.com>
13470         PR c++/11295
13471         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
13472         to expand_expr_real call, and pass in alt_rtl as last argument.
13474         PR libstdc++/5625
13475         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
13476         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
13477         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
13478         * except.c (expand_builtin_extend_pointer): New.
13479         * except.h (expand_builtin_extend_pointer): Declare.
13481 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
13483         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
13484         unaligned loads and stores.
13486 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13488         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
13489         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
13491         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
13492         * config/mips/iris5.h: ... here.
13493         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
13495         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
13496         * config/mips/iris5.h: ... here.
13498 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13500         * configure.ac: Remove default executable files before AC_PROG_CC.
13501         * configure: Regenerate.
13503 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
13505         PR target/13721
13506         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
13507         print a operand other than a register.
13509 2004-02-09  Roger Sayle  <roger@eyesopen.com>
13511         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13512         tree code rather than call fold_convert, which doesn't specify a
13513         default floating point to integer conversion.
13515 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
13517         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13518         code to support SGS assembler.  Reformat adjacent code where possible.
13519         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13520         definition.
13521         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13522         for '%#'.
13523         * config/m68k/linux.h, config/m68k/m68k.c,
13524         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13525         macros and asm_printf() format strings.
13526         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13527         * config/m68k/linux.h: Update copyright.
13528         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13530 2004-02-08  Andreas Schwab  <schwab@suse.de>
13531             Bernardo Innocenti  <bernie@develer.com>
13533         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13534         REGISTER_PREFIX.
13535         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13536         frame pointer register, overridable by OS targets.
13537         * (M68K_REGNAME): Macro to obtain register name for asm output,
13538         eventually replacing %a6 with M68K_FP_REG_NAME.
13539         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13540         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13541         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13542         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13543         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13545 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13547         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13548         hook_rtx_tree_int_null.
13549         * targhooks.c (default_struct_value_rtx): Remove.
13550         * targhooks.h: Remove the prototype for
13551         default_struct_value_rtx.
13552         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13553         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13554         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13555         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13556         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13557         config/rs6000/rs6000.c, config/s390/s390.c,
13558         config/stormy16/stormy16.c, config/v850/v850.c,
13559         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13560         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13562 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13564         * README.Portability: Change "ISO C89" to "ISO C90".
13565         * c-parse.in (primary, initelt): Likewise.
13567 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13569         * real.c (encode_ibm_extended): Normalize the input value before
13570         converting it to a double.  Handle the case where a normal value
13571         rounds to infinity.
13573 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13575         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13576         warning.
13577         * cse.c (preferrable): Change to preferable. Update all of its
13578         callers.
13579         * genautomata.c (ainsn): Change
13580         first_ainsn_with_given_equialence_num to
13581         first_ainsn_with_given_equivalence_num.  Update all of its
13582         references.
13584 2004-02-08  Jan Hubicka  <jh@suse.cz>
13586         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13588 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13590         * function.c (assign_parms): Fix formatting.
13592 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13594         * default.h (PROMOTE_PROTOTYPES): Remove.
13595         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13596         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13597         EXPAND_BUILTIN_SAVEREGS): Poison.
13598         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13599         hook_bool_tree_false.
13600         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13601         * target.h: Replace SETUP_INCOMING_VARARGS with
13602         targetm.calls.setup_incoming_varargs().
13603         * targhooks.c (default_promote_function_return): Remove.
13604         (default_promote_prototypes): Likewise.
13605         (default_struct_value_rtx): Always abort().
13606         (default_expand_builtin_saveregs): Always print an error
13607         message.
13608         (default_setup_incoming_varargs): Do nothing.
13609         (default_pretend_outgoing_varargs_named): Don't depend on
13610         SETUP_INCOMING_VARARGS.
13611         * targhooks.h: Remove the prototype for
13612         default_promote_function_return and
13613         default_promote_prototypes.
13615 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13617         * system.h (SHARED_SECTION_ASM_OP): Poison.
13618         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13619         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13621 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13623         Bug 13856
13624         * c-decl.c (diagnose_mismatched_decls): Only give special
13625         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13626         is also true.
13627         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13628         DECL_FUNCTION_CODE when defining a built-in function.
13629         Don't update DECL_ESTIMATED_INSNS.
13630         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13631         FUNCTION_DECLs.
13632         * tree.h: Delete DECL_ESTIMATED_INSNS.
13633         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13634         (expand_call_inline, optimize_inline_calls): Don't update
13635         DECL_ESTIMATED_INSNS nor inlined_insns.
13636         * cgraphunit.c (cgraph_analyze_function): Don't update
13637         DECL_ESTIMATED_INSNS.
13639 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13641         * c-common.c (shadow_warning): Delete.
13642         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13643         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13644         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13645         * c-parse.in (free_parser_stacks): Delete.
13647 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13649         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13650         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13651         Use the top level mkinstalldirs, not the one in the gcc subdir.
13652         * mkinstalldirs: Remove (from the gcc subdir).
13654 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13656         PR middle-end/13696
13657         * fold-const.c (fold_convert): New function to provide type
13658         conversion to the middle-end without using convert.
13659         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13660         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13661         invert_truthvalue, optimize_bit_field_compare, range_binop,
13662         decode_field_reference, make_range, build_range_check, unextend,
13663         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13664         fold_binary_op_with_conditional_arg, fold_inf_compare,
13665         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13666         convert with calls to fold_convert.
13668 2004-02-07  Jan Hubicka  <jh@suse.cz>
13670         * genrecog.c (find_operand): add extra argument stop.
13671         (validate_pattern): Verify that mach_dup is duplicating operand
13672         defined lexically earlier.
13674 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13676         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13677         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13678         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13679         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13680         config/ia64/ia64.h, config/ip2k/ip2k.h,
13681         config/iq2000/iq2000.h, config/mips/iris5.h,
13682         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13683         config/rs6000/aix51.h, config/rs6000/aix52.h,
13684         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13685         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13686         config/sparc/linux.h, config/sparc/linux64.h,
13687         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13688         config/xtensa/xtensa.h: Remove the definitions of
13689         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13690         MAX_WCHAR_TYPE_SIZE.
13691         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13692         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13694 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13696         PR bootstrap/13990
13697         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13698         gen_rtx_NE.
13700 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13702         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13703         #ifdef ENABLE_CHECKING and #endif.
13705 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13707         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13708         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13709         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13710         integer types and floating point with unsafe_math_optimizations.
13711         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13712         Optimize A - B as A + (-B), if B is easily negated.
13714 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13716         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13717         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13718         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13719         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13720         Update copyright.
13722 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13724         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13726 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13728         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13729         glibc 2.3 or better.
13731 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13733         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13734         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13736 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13738         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13739         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13740         (SHLIB_MKMAP_OPTS): Delete.
13741         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13742         (bispecs): Add rule.
13743         * config/rs6000/libgcc-ppc64.ver: New file.
13744         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13745         (__floatdidf, __floatdisf): Optimize multiply.
13746         (__fixunstfdi): New function.
13747         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13748         real and imag parts larger than one register.
13749         (function_arg): Correct type of reg used when fp arg split partially
13750         to stack.
13751         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13752         and __MACH__ or __powerpc64__.
13754 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13755             Ulrich Weigand  <uweigand@de.ibm.com>
13757         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13758         of gen_highpart or gen_lowpart when the floating point format is
13759         wider than the result mode.
13761 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13763         * dwarf2out.c (loclabel_num): Move into #ifdef
13764         DWARF2_DEBUGGING_INFO.
13766 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13768         * objc/objc-act.c (build_super_template) the 'class' field of
13769         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13770         (get_super_receiver): Likewise.
13772 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13774         * reload1.c (check_eliminable_occurrences): Optimize the reset
13775         of can_eliminate.
13776         (eliminate_regs_in_insn): Likewise.
13778 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13779             Josef Zlomek  <zlomekj@suse.cz>
13781         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13782         at the beginning of function, call dwarf2out_var_location for
13783         NOTE_INSN_VAR_LOCATION note.
13784         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13785         decl_loc_table): New.
13786         (lookup_decl_loc): New function.
13787         (add_var_loc_to_decl): New function.
13788         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13789         only if can_use_fbreg.
13790         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13791         functions.
13792         (loc_descriptor): Likewise. Process VAR_LOCATION.
13793         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13794         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13795         can_use_fbreg == true.
13796         (add_location_or_const_value_attribute): Added parameter enum
13797         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13798         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13799         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13800         with attr == DW_AT_location.
13801         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13802         if frame_base_decl is defined and has a location list.
13803         (gen_variable_die): Call add_location_or_const_value_attribute with
13804         attr == DW_AT_location.
13805         (dwarf2out_var_location): New function.
13806         (dwarf2out_begin_function): New function.
13807         (dwarf2out_init): Create decl_loc_table.
13809 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13811         * loop.c (force_movables): Transitively increase the priorities of
13812         all insns forces by an insn, not just the first one.
13814 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13815             Daniel Berlin <dberlin@dberlin.org>
13817         Josef Zlomek  <zlomekj@suse.cz>
13818         * Makefile.in (var-tracking.o): New.
13819         * common.opt (fvar-tracking): New.
13820         * flags.h (flag_var_tracking): New.
13821         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13822         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13823         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13824         * rtl.c (note_insn_name): Likewise.
13825         * rtl.def (VAR_LOCATION): New.
13826         * rtl.h (NOTE_VAR_LOCATION): New.
13827         (NOTE_VAR_LOCATION_DECL): New.
13828         (NOTE_VAR_LOCATION_LOC): New.
13829         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13830         (variable_tracking_main): New exported function.
13831         * timevar.def (TV_VAR_TRACKING): New.
13832         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13833         (dump_file): "vartrack" was added (-dV).
13834         (flag_var_tracking): New.
13835         (f_options): "var-tracking" was added.
13836         (rest_of_handle_variable_tracking): New function.
13837         (rest_of_compilation): Run variable tracking.
13838         (process_options): If user has not specified flag_var_tracking set it
13839         according to optimize, debug_info_level and debug_hooks.
13840         * tree.h (frame_base_decl): New.
13841         * var-tracking.c: New file.
13842         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13843         (ia64_override_options): Set flags to run variable tracking in machine
13844         dependent reorg instead of toplev.c.
13845         (ia64_reorg): Run variable tracking if wanted.
13846         * doc/invoke.texi: Mention variable tracking in -dV,
13847         add and -fvar-tracking.
13848         * doc/passes.texi: Added variable tracking pass.
13850         Daniel Berlin <dberlin@dberlin.org>
13851         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13852         * dbxout.c (dbx_debug_hooks): Likewise.
13853         (xcoff_debug): Likewise.
13854         * debug.c (do_nothing_debug_hooks): Likewise.
13855         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13856         * dwarfout.c (dwarf_debug_hooks): Likewise.
13857         * sdbout.c (sdb_debug_hooks): Likewise.
13858         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13859         * final.c (final_scan_insn): Call var_location debug hook for each
13860         NOTE_INSN_VAR_LOCATION.
13862 2004-02-06  Jan Hubicka  <jh@suse.cz>
13864         * flow.c (update_life_info): Allocate reg_deaths when called from
13865         scheudler.
13866         (attempt_auto_inc):  Update life ranges accordingly.
13868 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13870         PR debug/11816
13871         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13873 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13875         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13877 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13879         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13880         a separate line info table in use.
13881         Use the correct size for terminators.
13882         (output_die): Use offset, not delta.
13884 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13886         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13888 2004-02-06  Jan Hubicka  <jh@suse.cz>
13890         * recog.c (split_all_insns): Do not update reg info.
13891         * regrename.c (regrename_optimize): Likewise.
13892         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13893         * flow.c (struct propagate_block_info): Add insn_num field.
13894         (reg_deaths): New array.
13895         (life_analysis): Free reg_deaths info.
13896         (allocate_reg_life_data): Allocate reg_deaths array.
13897         (propagate_one_insn): Use new array.
13898         (init_propagate_block): Initialize it.
13899         (free_propagate_block_info): Finish compuation of
13900         REG_LIVE_LENGTH
13901         (attempt_auto_inc): Sanity check that REG_INFO is not
13902         computed at same time.
13903         (mark_used_regs): Update new array.
13905         * reg-stack.c (subst_stack_regs): Unshare clobbers before
13906         substitution.
13908 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13910         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13911         *extendqisi2_short_displ.
13913 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
13915         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
13916         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
13917         (emit_library_call_value_1): Likewise pass nargs.
13918         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
13919         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
13920         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
13921         parameter instead of scanning TYPE_ARGS_TYPES to count args.
13922         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
13923         prototype.
13924         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
13925         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
13926         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
13927         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
13928         INIT_CUMULATIVE_ARGS.
13929         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
13930         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
13931         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
13932         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
13933         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13934         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
13935         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13936         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
13937         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
13938         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
13939         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13940         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
13942 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13944         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
13945         possible.
13947 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13949         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
13950         note containing (plus (reg) (const_int)), where reg is an
13951         eliminable reg, then perform the register elimination without
13952         depending on eliminate_regs().
13954 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13956         * config/arc/arc.c (arc_return_in_memory): Check the return
13957         value of int_size_in_bytes against -1.  Don't check
13958         TREE_ADDRESSABLE.
13959         * config/avr/avr.c (avr_return_in_memory): Check the return
13960         value of int_size_in_bytes against -1.
13961         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
13962         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
13963         Likewise.
13964         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
13965         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
13966         Likewise.
13968 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13970         * config/frv/frv-protos.h: Remove the prototype for
13971         frv_setup_incoming_varargs.
13972         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
13973         (frv_setup_incoming_varargs): Make it static.
13974         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
13976 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13978         * config/fr30/fr30-protos.h: Remove the prototype for
13979         fr30_setup_incoming_varargs.
13980         Update the prototypes for fr30_num_arg_regs and
13981         fr30_function_arg_partial_nregs.
13982         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
13983         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13984         (fr30_setup_incoming_varargs): Make it static.
13985         Add argument second_time.  Don't do anything when second_time
13986         is nonzero.
13987         (fr30_num_arg_regs): Change the type of the first argument to
13988         enum machine_mode.
13989         (fr30_function_arg_partial_nregs): Change the type of the
13990         second argument to enum machine_mode.
13991         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13992         (SETUP_INCOMING_VARARGS): Remove.
13994 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13996         * config/arc/arc-protos.h: Remove the prototype for
13997         arc_setup_incoming_varargs.
13998         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13999         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14000         (arc_setup_incoming_varargs): Make it static.
14001         (arc_external_libcall): Likewise.
14002         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
14003         Remove the commented-out definition of
14004         ASM_OUTPUT_EXTERNAL_LIBCALL.
14006 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
14008         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
14009         to $$(slibdir) in the installation commands.
14011 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
14013         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
14014         with inner_regno, not regno.
14015         * rtlanal.c (refers_to_regno_p): Same.
14017 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14019         * config.gcc: Remove i370 support.
14021 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14023         * doc/install.texi:  Update automake and autoconf version
14024         requirements.  Note where to find gcj automake version.
14026 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14028         * Makefile.in (generate-manpages): Move dependencies to ...
14029         (man): here.
14030         * doc/makefile.texi: Document new targets.
14031         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
14033 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14035         PR/13485
14036         Makefile.in (srcextra):  Add a level of indirection to ...
14037         (gcc.srcextra): ... here.
14038         (po-generated): Delete.
14039         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
14040         options.c.
14041         (start.encap): Remove superfluous lang.srcextra dependency.
14042         objc/Make-lang.in (po-generated):  Delete.
14044 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14046         * config/ia64/ia64.c (REG_GP): Remove.
14048 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14050         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
14052 2004-02-05  Devang Patel  <dpatel@apple.com>
14054         * dwarf2out.c (force_type_die): Look up input type itself
14055         instead of root_type() of type.
14057 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
14059         * config/s390/s390.md ("*tmqidi_ext"): New insn.
14060         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
14061         pre-reload splitters are transformed to post-reload
14062         define_insn_and_split patterns.
14063         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
14065 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14067         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
14068         TARGET_PROMOTE_PROTOTYPES.
14070 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14072         PR middle-end/13750
14073         Revert:
14074         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
14075         PR pch/13361
14076         * c-typeck.c (constructor_asmspec): Delete.
14077         (struct initializer_stack): Delete field 'asmspec'.
14078         (start_init): Delete saving of asmspec.
14079         (finish_init): Don't update constructor_asmspec.
14080         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
14081         * stmt.c (expand_asm): Duplicate strings from tree.
14082         (expand_asm_operands): Likewise.
14083         * tree.c (tree_size): Update computation of size of STRING_CST.
14084         (make_node): Don't make STRING_CST nodes.
14085         (build_string): Allocate string with tree node.
14086         * tree.def (STRING_CST): Update comment.
14087         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
14088         (tree_string): Place contents of string in tree node.
14089         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
14090         from tree.
14092 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14094         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
14095         msgid.
14097 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
14099         * config/rs6000/altivec.md (*movv4si_internal): At least one
14100         operand must be altivec_register_operand.
14101         (*movv8hi_internal1): Likewise.
14102         (*movv16qi_internal1): Likewise.
14103         (*movv4sf_internal1): Likewise.
14105 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
14107         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
14108         * configure: Regenerate.
14110 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
14112         * doc/install.texi: Update description of --gxx-include-dir to
14113         give correct default value.
14115 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14117         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
14118         8 with MAC_REG.
14120 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14122         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
14123         gen_rtx_PARALLEL.
14125 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14127         * emit-rtl.c: Update the comment about the file.
14129 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14131         * sourcebuild.texi (Test Idioms): Update testcase naming
14132         conventions.
14134 2004-02-04  Per Bothner  <per@bothner.com>
14136         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
14137         * c-ppoutput.c (pp_dir_change):  New function.
14138         * c-common.h (pp_dir_change):  New declaration.
14139         * cpplib.h (struct cpp_options):  Remove working_directory field.
14140         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
14141         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
14142         Don't handle -fworking_directory here, but in c_common_post_options.
14143         (read_original_directory): Don't back up when done.
14144         Don't clear no-longer used working_directory flag.
14145         * cpplib.h:  Update declarations to match.
14146         * c-lex.c (cb_dir_change):  Move to c-opts.c.
14147         (init_c_lex):  Don't set dir_change callback here, since we want
14148         to set it even if flag_preprocess_only.
14149         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
14150         (c_common_post_options):  Set dir_change callback.
14151         Call pp_dir_change if approporiate.
14152         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
14153         unneeded parameter and result. Do LC_RENAME for <built-in>.
14154         (c_common_post_options):  Call cpp_read_main_file here instead.
14155         (c_common_init):  Update accordingly.
14156         (push_command_line_include):  Don't cpp_push_main_file.
14157         Do LC_RENAME rather than LC_LEASE to get back to main file.
14158         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
14159         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
14160         files, but call finish_options for all files.
14161         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
14162         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
14163         cpp_find_main_file + cpp_push_main_file.
14164         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
14165         * opts.c (handle_options):  Only set main_input_filename first time.
14167 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
14169         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
14171 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
14173         * reload.c (find_equiv_reg): When checking for register overlap,
14174         don't index hard_regno_nregs with a pseudo-reg.
14176 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14178         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
14180 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
14182         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
14183         against FIRST_PSEUDO_REGISTER.
14185 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14187         * Makefile.in: Move target, host overrides after per-language
14188         fragments.
14190         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
14191         (GNATLIBCFLAGS): Remove -g.
14193 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14195         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
14196         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14197         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14198         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
14199         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
14200         config/sparc/sparc.c, config/vax/vax.c: Revert the
14201         replacements of "FALLTHRU" with "Fall through" done in the
14202         previous patch.
14204 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14206         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
14207         config/arm/arm.c, config/arm/arm.md,
14208         config/cris/cris-protos.h, config/fr30/fr30.c,
14209         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
14210         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
14211         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
14212         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
14213         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
14214         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
14215         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
14216         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
14217         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
14218         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
14219         config/s390/s390.md, config/sparc/netbsd-elf.h,
14220         config/sparc/openbsd.h, config/sparc/sparc.c,
14221         config/xtensa/lib2funcs.S: Fix comment formatting.
14223 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14225         * config/alpha/alpha.c, config/arc/arc.c,
14226         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
14227         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
14228         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
14229         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
14230         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14231         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14232         config/iq2000/iq2000.c, config/m32r/m32r.c,
14233         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
14234         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
14235         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
14236         config/rs6000/rs6000.h, config/sparc/sparc.c,
14237         config/vax/vax.c: Fix comment typos.  Follow spelling
14238         conventions.
14240 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14242         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
14243         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
14244         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
14245         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
14246         config/arm/fpa.md, config/arm/iwmmxt.md,
14247         config/arm/netbsd-elf.h, config/arm/netbsd.h,
14248         config/m68hc11/m68hc11.md, config/mips/iris5.h,
14249         config/mn10300/mn10300.md, config/rs6000/altivec.md,
14250         config/sparc/netbsd-elf.h: Update copyright.
14252 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
14254         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14255         for all modes whose size is greater than 8 bytes if ARCH32.
14256         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
14257         by reference if ARCH32.
14259 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
14261         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
14263 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14265         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
14266         to before adddi3 insn patterns.
14267         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
14268         "reload_insi"): Move to before addsi3 insn patterns.
14270 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
14272         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
14273         parameter.  Use it instead of current_function_is_thunk.
14274         * function.h (struct function): Update documentation for is_thunk.
14275         * tree.h (CALL_FROM_THUNK_P): New macro.
14276         * config/alpha/alpha.c (alpha_sa_mask): Do not check
14277         no_new_pseudos when testing current_function_is_thunk.
14278         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
14280 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14282         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
14283         TARGET_SETUP_INCOMING_VARARGS.
14285 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14287         * emit-rtl.c (gen_rtx): Remove.
14288         * genattrtab.c: Don't mention gen_rtx in a comment.
14289         * rtl.h: Remove the prototype for gen_rtx.
14290         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
14292 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14294         * config/arc/arc.h, config/fr30/fr30.h
14295         (SETUP_INCOMING_VARARGS): Remove the target-independent
14296         comments.
14297         * doc/tm.texi: Don't mention deprecated target macros.
14299 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14301         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
14302         target-independent comment.
14304 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14306         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
14307         mention deprecated target macros.
14309 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14311         * config.gcc: Remove obsolete ports and configurations.
14312         * config/linux-aout.h, config/netware.h,
14313         config/t-linux-gnulibc1, config/d30v/abi,
14314         config/d30v/d30v-protos.h, config/d30v/d30v.c,
14315         config/d30v/d30v.h, config/d30v/d30v.md,
14316         config/d30v/libgcc1.asm, config/d30v/t-d30v,
14317         config/dsp16xx/dsp16xx-modes.def,
14318         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
14319         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
14320         config/i370/README, config/i370/i370-c.c,
14321         config/i370/i370-protos.h, config/i370/i370.c,
14322         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
14323         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
14324         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
14325         config/i386/moss.h, config/i386/netware.h,
14326         config/i386/svr3.ifile, config/i386/svr3dbx.h,
14327         config/i386/svr3gas.h, config/i386/svr3z.ifile,
14328         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
14329         config/i960/i960-c.c, config/i960/i960-coff.h,
14330         config/i960/i960-modes.def, config/i960/i960-protos.h,
14331         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
14332         config/i960/rtems.h, config/i960/t-960bare,
14333         config/m68k/hp310.h, config/m68k/hp320.h,
14334         config/m68k/hp320base.h, config/m68k/m68kv4.h,
14335         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
14336         Remove.
14337         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
14338         doc/md.texi: Remove mentions of obsolete ports.
14340 2004-02-04  Jan Hubicka  <jh@suse.cz>
14342         * alias.c (find_base_term, get_addr):  Do not dereference NULL
14343         pointer when all VALUE's locations has been invalidated.
14344         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
14346 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
14348         * doc/invoke.texi (x86 options): Fix spelling/wording.
14350 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
14352         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
14353         put the original string in a comment.
14354         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
14355         * config/mips/mips.c (mips_output_ascii): Likewise.
14356         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
14358 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14360         * system.h (GIV_SORT_CRITERION): Poison.
14361         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
14362         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
14364 2004-02-03  Roger Sayle  <roger@eyesopen.com>
14366         PR target/9348
14367         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
14368         multiplies with a multiplication of the wrong signedness, its the
14369         signedness of the multiplication that we've performed that needs to
14370         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
14371         if expand_mult_highpart_adjust places the result in target.
14373 2004-02-03  Richard Henderson  <rth@redhat.com>
14375         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
14377 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
14379         * config.gcc (sh[234]l): Use little endian fragments.
14381 2004-02-03  Paul Koning  <pkoning@equallogic.com>
14383         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
14384         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
14385         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
14386         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
14387         floating point format.
14388         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
14389         the above functions.
14390         (output_move_quad): Output float values in correct target format.
14391         (legitimate_const_double_p): New function.
14392         * config/pdp11/pdp11.h: Fix typos.
14393         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
14394         (TARGET_FLOAT_FORMAT): Ditto.
14395         (pdp11_f_format, pdp11_d_format): Add external declarations.
14396         (MAX_REGS_PER_ADDRESS): Corrected.
14397         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
14398         (PRINT_OPERAND): Output float literals in target format.
14400 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
14402         PR c++/13975
14403         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
14404         TI_PRIVATE.
14405         (access_public_node): Redefine.
14406         (access_protected_node): Likewise.
14407         (access_private_node): Likewise.
14408         * tree.c (build_common_tree_nodes): Create access_public_node,
14409         access_protected_node, and access_private_node.
14411 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
14413         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
14414         (MASK_INLINE_INT_DIV_THR): Ditto.
14415         (MASK_INLINE_SQRT_LAT): Ditto.
14416         (MASK_INLINE_SQRT_THR): Ditto.
14417         (MASK_DWARF2_ASM): Ditto.
14418         (MASK_EARLY_STOP_BITS): Ditto.
14420 2004-02-02  Paul Brook  <paul@codesourcery.com>
14422         Merge from csl-arm-branch.
14424         2004-01-30  Paul Brook  <paul@codesourcery.com>
14426         * aof.h (REGISTER_NAMES): Add vfp reg names
14427         (ADDITIONAL_REGISTER_NAMES): Ditto.
14428         * aout.h (REGISTER_NAMES): Ditto.
14429         (ADDITIONAL_REGISTER_NAMES): Ditto.
14430         * arm-protos.h: Update/Add Prototypes.
14431         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
14432         Only allow 0.0 for VFP.
14433         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
14434         (values_fp): Rename from values_fpa.  Update Users.
14435         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
14436         Update users.  Only check valid constants for this hardware.
14437         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
14438         Only allow consts for FPA.
14439         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
14440         Only allow consts for FPA.
14441         (use_return_insn): Check for saved VFP regs.
14442         (arm_legitimate_address_p): Handle VFP DFmode addressing.
14443         (arm_legitimize_address): Ditto.
14444         (arm_general_register_operand): New function.
14445         (vfp_mem_operand): New function.
14446         (vfp_compare_operand): New function.
14447         (vfp_secondary_reload_class): New function.
14448         (arm_float_compare_operand): New function.
14449         (vfp_print_multi): New function.
14450         (vfp_output_fstmx): New function.
14451         (vfp_emit_fstm): New function.
14452         (arm_output_epilogue): Output VPF reg restore code.
14453         (arm_expand_prologue): Output VFP reg save code.
14454         (arm_print_operand): Add 'P'.
14455         (arm_hard_regno_mode_ok): Return modes for VFP regs.
14456         (arm_regno_class): Return classes for VFP regs.
14457         (arm_compute_initial_elimination_offset): Include space for VFP regs.
14458         (arm_get_frame_size): Ditto.
14459         * arm.h (FIXED_REGISTERS): Add VFP regs.
14460         (CALL_USED_REGISTERS): Ditto.
14461         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
14462         (FIRST_VFP_REGNUM): Define.
14463         (LAST_VFP_REGNUM): Define.
14464         (IS_VFP_REGNUM): Define.
14465         (FIRST_PSEUDO_REGISTER): Include VFP regs.
14466         (HARD_REGNO_NREGS): Handle VFP regs.
14467         (REG_ALLOC_ORDER): Add VFP regs.
14468         (enum reg_class): Add VFP_REGS.
14469         (REG_CLASS_NAMES): Ditto.
14470         (REG_CLASS_CONTENTS): Ditto.
14471         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
14472         (REG_CLASS_FROM_LETTER): Add 'w'.
14473         (EXTRA_CONSTRAINT_ARM): Add 'U'.
14474         (EXTRA_MEMORY_CONSTRAINT): Define.
14475         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
14476         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14477         (REGISTER_MOVE_COST): Ditto.
14478         (PREDICATE_CODES): Add arm_general_register_operand,
14479         arm_float_compare_operand and vfp_compare_operand.
14480         * arm.md (various): Rename as above.
14481         (divsf3): Enable when TARGET_VFP.
14482         (divdf3): Ditto.
14483         (movdfcc): Ditto.
14484         (sqrtsf2): Ditto.
14485         (sqrtdf2): Ditto.
14486         (arm_movdi): Disable when TARGET_VFP.
14487         (arm_movsi_insn): Ditto.
14488         (movsi): Only split with general regs.
14489         (cmpsf): Use arm_float_compare_operand.
14490         (push_fp_multi): Restrict to TARGET_FPA.
14491         (vfp.md): Include.
14492         * vfp.md: New file.
14493         * fpa.md (various): Rename as above.
14494         * doc/md.texi: Document ARM w and U constraints.
14496         2004-01-15  Paul Brook  <paul@codesourcery.com>
14498         * config.gcc: Add with_fpu.  Allow with-float=softfp.
14499         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
14500         Break out of loop when we find a float-abi.  Fix typo.
14501         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
14502         Set -mfloat-abi=.
14503         * doc/install.texi: Document --with-fpu.
14505         2003-01-14  Paul Brook  <paul@codesourcery.com>
14507         * config.gcc (with_arch): Add armv6.
14508         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
14509         * config/arm/arm.c (arm_overrride_options): Ditto.
14511         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
14513         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14514         (FL_ARCH6): Renamed from FL_ARCH6J.
14515         (arm_arch3m): Renamed from arm_fast_multiply.
14516         (arm_arch6): Renamed from arm_arch6j.
14517         * arm.h: Update all uses of above.
14518         * arm-cores.def: Likewise.
14519         * arm.md: Likewise.
14521         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14522         not arm6j.  Add entry for arch armv6.
14524         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
14526         * arm.c (arm_emit_extendsi): Delete.
14527         * arm-protos.h (arm_emit_extendsi): Delete.
14528         * arm.md (zero_extendhisi2): Also handle zero-extension of
14529         non-subregs.
14530         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14531         (thumb_zero_extendhisi2): Only match if not v6.
14532         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14533         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14534         (thumb_extendqisi2): Likewise.
14535         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14536         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14537         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14538         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14539         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14540         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14541         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
14542         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14543         (arm_extendqisi2addsi): Likewise.
14545         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
14547         Revert this change:
14548         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14549         + REG addressing modes.
14551         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14552         + REG addressing modes.
14554         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
14556         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14557         CONSTANT_P_RTX.
14559         2003-30-12  Paul Brook  <paul@codesourcery.com>
14561         * longlong.h: protect arm inlines with !defined (__thumb__)
14563         2003-30-12  Paul Brook  <paul@codesourcery.com>
14565         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14567         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14569         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14570         change.
14572         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14574         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14575         to the virtual incoming args pointer for downward stacks.
14577         2003-12-29  Paul Brook  <paul@codesourcery.com>
14579         * config/arm/arm-cores.def: Add cost function.
14580         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14581         (arm_rtx_costs): Remove
14582         (struct processors): Add rtx_costs field.
14583         (all_cores, all_architectures): Ditto.
14584         (arm_override_options): Set targetm.rtx_costs.
14585         (thumb_rtx_costs): New function.
14586         (arm_rtx_costs_1): Remove cases handled elsewhere.
14587         * config/arm/arm.h (processor_type): Add COSTS parameter.
14589         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14591         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14592         (arm926ejs.md): Include it.
14593         * config/arm/arm926ejs.md: New pipeline description.
14595         2003-12-24  Paul Brook  <paul@codesourcery.com>
14597         * config/arm/arm.c (arm_arch6j): New variable.
14598         (arm_override_options): Set it.
14599         (arm_emit_extendsi): New function.
14600         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14601         * config/arm/arm.h (arm_arch6j): Declare.
14602         * config/arm/arm.md: Add sign/zero extend insns.
14604         2003-12-23  Paul Brook  <paul@codesourcery.com>
14606         * config/arm/arm.c (all_architectures): Add armv6.
14607         * doc/invoke.texi: Document it.
14609         2003-12-19  Paul Brook  <paul@codesourcery.com>
14611         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14612         insn patterns to match.
14613         * config/arm/arm-generic.md: Ditto.
14614         * config/arm/cirrus.md: Ditto.
14615         * config/arm/fpa.md: Ditto.
14616         * config/amm/iwmmxt.md: Ditto.
14617         * config/arm/arm1026ejs.md: Ditto.
14618         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14619         for 11_loadb.
14621         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14623         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14624         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14625         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14626         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14627         arm_no_early_mul_dep): Correctly deal with conditional execution,
14628         parallels and single shift operations.
14629         (arm_no_early_alu_shift_value_dep): Define.
14630         * arm.md (attr type): Replace 'normal' with 'alu',
14631         'alu_shift' and 'alu_shift_reg'.
14632         (attr core_cycles): Adjust.
14633         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14634         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14635         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14636         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14637         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14638         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14639         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14640         attribute appropriately.
14641         * config/arm/arm1026ejs.md (alu_op): Adjust.
14642         (alu_shift_op, alu_shift_reg_op): New.
14643         * config/arm/arm1136.md: Add better bypasses for early
14644         registers. Remove load[234] and store[234] bypasses.
14645         (11_alu_op): Adjust.
14646         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14648         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14650         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14651         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14652         * config/arm/arm.c (arm_no_early_store_addr_dep,
14653         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14654         * config/arm/arm1026ejs.md: Add load-store bypass.
14655         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14656         Add bypasses between instructions.
14658         2003-12-10  Paul Brook  <paul@codesourcery.com>
14660         * config/arm/arm.c (arm_fpu_model): New variable.
14661         (arm_fload_abi): New variable.
14662         (target_fpe_name): Rename from target_fp_name.
14663         (target_fpu_name): New variable.
14664         (arm_is_cirrus): Remove.
14665         (fpu_desc): New struct.
14666         (all_fpus): Define.
14667         (pf_model_for_fpu): Define.
14668         (all_loat_abis): Define.
14669         (arm_override_options): Set fp arch flags based on -mfpu=
14670         and -float-abi=.
14671         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14672         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14673         (*): Use new TARGET_* flags.
14674         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14675         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14676         (TARGET_SOFT_FLOAT): Ditto.
14677         (TARGET_SOFT_FLOAT_ABI): New.
14678         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14679         TARGET_HARD_FLOAT.
14680         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14681         (TARGET_OPTIONS): Add -mfpu=.
14682         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14683         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14684         (arm_pf_model): Define.
14685         (arm_float_abi_type): Define.
14686         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14687         * config/arm/arm.md: Use new TARGET_* flags.
14688         * config/arm/cirrus.md: Ditto.
14689         * config/arm/fpa.md: Ditto.
14690         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14691         * config/arm/semi.h (ASM_SPEC): Ditto.
14692         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14693         (FPUTYPE_DEFAULT): Set to VFP.
14694         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14696         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14698         PR target/12476
14699         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14700         'bx' instead of 'b' to avoid branch range restrictions.  Output
14701         the thunk immediately before the thunked-to function.
14702         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14703         .thumb_func if a thunk is being generated.  Emit .code 16 along
14704         with .thumb_func if a thunk is not being generated.
14706         2003-11-15  Nicolas Pitre <nico@cam.org>
14708         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14709         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14710         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14711         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14712         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14714         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14715             Ian Lance Taylor  <ian@wasabisystems.com>
14717         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14718         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14720         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14722         * config/arm/arm.md (insn):  Add new V6 instruction names.
14723         (generic_sched):  New attr.
14724         * config/arm/arm-generic.md:  Use generic_sched here.
14725         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14726         stages of pipeline.  Adjust latency counts accordingly.
14727         * config/arm/arm1136jfs.md:  New file.
14729         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14731         * config/arm/arm.h (processor_type): New enumeration type.
14732         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14733         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14734         (CPP_CPU_ARCH_SPEC): Likewise.
14735         * config/arm/arm.c (arm_tune): New variable.
14736         (all_cores): Use cores.def.
14737         (all_architectures): Add representative processor.
14738         (arm_override_options): Restructure way in which tuning
14739         information is deduced.
14740         * arm.md: Update "insn" and "type" attributes throughout.
14741         (insn): New attribute.
14742         (type): Compute "mult" from "insn" attribute.  Add load2,
14743         load3, load4 alternatives.
14744         (arm automaton): Move to arm-generic.md.
14745         * config/arm/arm-cores.def: New file.
14746         * config/arm/arm-generic.md: Likewise.
14747         * config/arm/arm1026ejs.md: Likewise.
14749 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14751         * doc/invoke.texi (SPARC options): Remove -mflat and
14752         all -mxxx (xxx:chip) options.
14753         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14754         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14755         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14756         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14757         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14758         * config/sparc/sparc.c: Likewise.
14759         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14760         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14761         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14762         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14763         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14764         (sparc_flat_must_save_register_p): Likewise.
14765         (sparc_flat_compute_frame_size): Likewise.
14766         (sparc_flat_save_restore): Likewise.
14767         (sparc_flat_function_prologue): Likewise.
14768         (sparc_flat_function_epilogue): Likewise.
14769         (sparc_flat_epilogue_delay_slots): Likewise.
14770         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14771         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14772         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14773         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14774         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14775         (CONDITIONAL_REGISTER_USAGE): Likewise.
14776         (FRAME_POINTER_REQUIRED): Likewise.
14777         (INITIAL_ELIMINATION_OFFSET): Likewise.
14778         (BASE_RETURN_VALUE_REG): Likewise.
14779         (BASE_OUTGOING_VALUE_REG): Likewise.
14780         (BASE_PASSING_ARG_REG): Likewise.
14781         (BASE_INCOMING_ARG_REG): Likewise.
14782         (INCOMING_REGNO): Likewise.
14783         (OUTGOING_REGNO): Likewise.
14784         (LOCAL_REGNO): Likewise.
14785         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14786         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14787         (EPILOGUE_USES): Likewise.
14788         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14789         ("flat" attribute): Delete.
14790         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14791         handling.
14792         (call followed by jump define_peephole's): Delete.
14793         (exception_receiver): Likewise.
14794         (builtin_setjmp_receiver): Likewise.
14795         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14797 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14799         PR c/11658
14800         PR c/13994
14801         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14802         on langhooks.h.
14803         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14804         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14805         Include langhooks.h.  Replace c_common_truthvalue_conversion
14806         with the truthvalue_conversion language hook throughout.
14807         (expr_no_commas): Call default_conversion before save_expr
14808         for the first term of the production 'x ? : y'.
14809         * c-common.c (c_common_truthvalue_conversion): Remove
14810         obsolete block.  Invoke recursively the hook instead
14811         of this function.
14812         * c-convert.c (convert): handle ERROR_MARK_NODE.
14813         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14814         returned by the truthvalue_conversion language hook.
14815         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14816         c_objc_common_truthvalue_conversion.
14817         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14818         New function.
14819         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14820         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14821         c_objc_common_truthvalue_conversion.
14823 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14825         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14826         of gen_rtx.
14827         (LIBCALL_VALUE): Likewise.
14828         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14829         gen_rtx_CC0 instead of gen_rtx.
14830         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14831         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14832         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14833         gen_rtx.
14834         (m68hc11_emit_logical): Likewise.
14836 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14838         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14839         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14840         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14841         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14842         config/mips/mips.md, config/mmix/mmix.c,
14843         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14844         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14845         config/rs6000/altivec.md, config/s390/s390.c,
14846         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14847         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14848         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14849         constants that are readily available.
14851 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14853         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14854         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14855         instead of GEN_INT (0).  Do the same for other constants that
14856         are readily available.
14858 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14860         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14861         gen_rtx.
14862         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14863         instead of gen_rtx.
14864         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14865         gen_rtx.
14866         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14867         gen_rtx_ASHIFT instead of gen_rtx.
14868         (udivmodqi4): Likewise.
14870 2004-02-02  Richard Henderson  <rth@redhat.com>
14872         PR target/13789
14873         * expr.c (store_expr): Use force_operand before emit_move_insn.
14875 2004-02-02  Jeff Law  <law@redhat.com>
14876             Roger Sayle  <roger@eyesopen.com>
14878         * tree.c (commutative_tree_code, associative_tree_code): New
14879         functions.
14880         (iterative_hash_expr): Use commutative_tree_code.
14881         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14882         * fold-const.c (operand_equal_p): Use commutative_tree_code
14883         rather than inlining the commutativity check.
14884         (fold): Likewise.
14886 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14888         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14889         * config/frv/frv-protos.h: Remove the prototype for
14890         frv_function_arg_keep_as_reference.
14891         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14892         Remove.
14893         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14894         * config/stormy16/stormy16.h: Remove the commented-out
14895         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14897 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
14899         PR target/13914
14900         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14901         for retaddr_column.
14903 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14905         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14906         gen_rtx.
14908 2004-02-02  Eric Christopher  <echristo@redhat.com>
14909             Zack Weinberg  <zack@codesourcery.com>
14911         * c-opts.c (c_common_handle_option): Add -finput-charset.
14912         * c.opt: Ditto.
14913         * cppcharset.c (one_iso88591_to_utf8): Remove.
14914         (convert_iso88591_utf8): Ditto.
14915         (conversion_tab): Remove 8859-1 converter.
14916         (_cpp_input_to_utf8): Remove.
14917         (_cpp_init_iconv_buffer): Ditto.
14918         (_cpp_close_iconv_buffer): Ditto.
14919         (_cpp_convert_input): New function.
14920         (_cpp_default_encoding): Ditto.
14921         * cpphash.h: Add/remove prototypes for above.
14922         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
14923         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
14924         for narrow execution and input character sets.
14925         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
14926         * doc/cppopts.texi: Document -finput-charset.
14928 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
14930         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
14931         against FIRST_PSEUDO_REGISTER.
14933 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14935         * doc/invoke.texi (SPARC options): Further improve.
14937 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14939         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
14940         config/h8300/h8300.c, config/ip2k/ip2k.md,
14941         config/iq2000/iq2000.c, config/mips/mips.c,
14942         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
14943         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
14944         config/v850/v850.md: Fix indentation.
14946 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14948         * config/sparc/sparc.c (function_arg_slotno): Align TImode
14949         arguments on a 16-byte boundary in the parameter array if ARCH64.
14950         Split handling of TFmode.
14952 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
14954         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
14955         Don't test CONSTANT_P (x).
14956         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
14957         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
14958         Fix misindentation.
14960 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14962         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
14964 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14966         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
14967         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
14968         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
14969         config/iq2000/iq2000.c, config/m32r/m32r.c,
14970         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
14971         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
14972         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
14973         config/stormy16/stormy16.c, config/v850/v850.md,
14974         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
14976 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14978         * config/mcore/mcore.c (block_move_sequence): Replace
14979         gen_rtx_CONST_INT with GEN_INT.
14981 2004-02-02  Jan Hubicka  <jh@suse.cz>
14983         * alias.c (record_set): Use hard_regno_nregs.
14984         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
14985         * builtins.c (apply_args_size): Likewise.
14986         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
14987         mark_set_regs, add_stored_regs, mark_referenced_regs,
14988         insert_restore, insert_save, insert_one_insn): Likewise.
14989         * cfgcleanup.c: Include regs.h
14990         (mark_effect, mentions_nonequal_regs): Likewise.
14991         * cfgrtl.c (mark_killed_regs): Likewise
14992         * combine.c (update_table_tick, record_value_for_reg,
14993         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14994         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14995         reg_bitfield_target_p, distribute_notes): Likewise.
14996         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14997         exp_equiv_p, cse_insn): Likewise.
14998         * cselib.c (cselib_lookup): Likewise.
14999         (cselib_invalidate_regno, cselib_record_set): Likewise.
15000         * df.c (df_ref_record): Likewise.
15001         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
15002         Likewise.
15003         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
15004         count_or_remove_death_notes_bb): Likewise.
15005         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
15006         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
15007         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
15008         * integrate.c (mark_stores): Likewise.
15009         * jump.c (delete_prior_computation): Likewise.
15010         * lcm.c (reg_dies, reg_becomes_live): Likewise.
15011         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
15012         * loop.c (LOOP_REGNO_NREGS): Likewise.
15013         * postreload.c (reload_combine, reload_combine_note_store,
15014         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
15015         * ra-colorize.c (combine, color_usable_p, get_free_reg,
15016         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
15017         try_recolor_web, insert_coalesced_conflicts, check_colors,
15018         break_precolored_alias): Likewise.
15019         * ra-debug.c: Include regs.h
15020         (ra_print_rtx_object): Likewise.
15021         * ra-rewrite (choose_spill_colors): Likewise.
15022         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
15023         * ra.c (init_ra): Likewise.
15024         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
15025         peep2_find_free_register): Likewise.
15026         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
15027         * regclass.c (hard_regno_nregs): New array.
15028         (init_reg_modes_once): Initialize it.
15029         (choose_hard_reg_mode): Use it.
15030         (record_reg_classes): Likewise.
15031         * regmove.c (mark_flags_life_zones): Likewise.
15032         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
15033         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
15034         copy_value, maybe_mode_change, find_oldest_value_reg,
15035         copyprop_hardreg_forward_1):
15036         * regs.h (hard_regno_nregs): Declare.
15037         * realod.c (reload_inner_reg_of_subreg): Use it.
15038         (push_reload, combine_reloads, find_dummy_reload,
15039         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
15040         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
15041         reload_adjust_reg_for_mode): Likewise.
15042         * reload1.c (compute_use_by_pseudos, count_pseudo,
15043         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
15044         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
15045         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
15046         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
15047         delete_output_reload): Likewise.
15048         * resource.c (update_live_status, mark_referenced_resources,
15049         mark_set_resources, mark_target_live_regs): Likewise.
15050         * rtlanal.c:  Include regs.h
15051         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
15052         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
15053         subreg_regno_offset, subreg_offset_representable_p,
15054         hoist_test_store): Likewise.
15055         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
15056         * sched-rgn.c (check_live_1, update_live_1): Likewise.
15057         * stmt.c: Include regs.h
15058         (decl_conflicts_with_clobbers_p): Likewise.
15059         * varasm.c (make_decl_rtl): Likewise.
15060         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
15062 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15064         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
15065         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
15066         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
15067         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
15068         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
15069         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
15070         config/iq2000/iq2000.h, config/m32r/m32r.c,
15071         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
15072         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
15073         config/mcore/mcore.c, config/mcore/mcore.h,
15074         config/mcore/mcore.md, config/mips/mips.c,
15075         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
15076         config/rs6000/rs6000.c, config/s390/s390.c,
15077         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
15078         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
15079         "gen_rtx (FOO, " with "gen_rtx_FOO (".
15081 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15083         * config/h8300/h8300.md (two peephole2's): New.
15085 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
15087         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
15088         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
15089         (ASM_CPU_SPEC): Likewise
15090         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
15091         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
15093 2004-02-01  Roger Sayle  <roger@eyesopen.com>
15095         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
15096         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
15097         (expand_builtin): Always call expand_builtin_pow.
15099 2004-02-01  Roger Sayle  <roger@eyesopen.com>
15101         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
15102         BUILT_IN_SIGNBITL): New GCC builtins.
15103         * builtins.c (expand_builtin_signbit): New function to RTL expand
15104         calls to signbit, signbitf and signbitl as inline intrinsics.
15105         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
15106         (fold_builtin_signbit): New function to perform constant folding
15107         of signbit, signbitf and signbitl.
15108         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
15110         * doc/extend.texi: Document new signbit{,f,l} builtins.
15112 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
15114         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
15116 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
15118         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
15119         "mips_const_double_ok" and "simple_memory_operand", which were
15120         removed from the MIPS port with the mips-3_4-rewrite branch merge.
15121         * config/mips/mips.c (mips16_lay_out_constants): Update comment
15122         for removal of simple_memory_operand.
15124 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15126         * config/c4x/c4x.md: Use GEN_INT instead of
15127         gen_rtx (CONST_INT, ...).
15129 2004-01-31  Richard Henderson  <rth@redhat.com>
15131         * varasm.c (output_constant_pool): Don't zap the pool.
15133 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15135         * genrecog.c (decision_type): Add DT_const_int.
15136         (write_cond) [DT_const_int]: Print a comparison against small
15137         constant.
15138         (write_node): Simplify comparisons against small constants
15139         before printing tests.
15141 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15143         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
15144         instead of gen_rtx_CONST_INT.
15146 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15148         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
15149         instead of gen_rtx_CONST_INT.
15151 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15153         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
15154         hook_bool_CUMULATIVE_ARGS_false.
15155         * targhooks.c (default_strict_argument_naming): Rename to
15156         hook_bool_CUMULATIVE_ARGS_false.
15157         * targhooks.h: Update the prototype for
15158         default_strict_argument_naming.
15160 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15162         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15163         * config/sh/sh.h: Likewise.
15164         * config/sh/sh.md: Likewise.
15166 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
15168         * doc/invoke.texi (SPARC options): Restructure and update.
15170 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15172         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
15173         STRICT_ARGUMENT_NAMING): Poison.
15174         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
15175         hook_bool_tree_false.
15176         * targhooks.c (default_promote_function_args): Remove.
15177         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
15178         Don't check incoming.
15179         (default_strict_argument_naming): Don't use
15180         STRICT_ARGUMENT_NAMING.
15181         * targhooks.h: Remove the prototype for
15182         default_promote_function_args.
15184 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15186         * config/i386/i386-protos.h: Remove the prototype for
15187         ix86_setup_incoming_varargs.
15188         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
15189         (ix86_setup_incoming_varargs): Make it static.
15190         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
15192 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15194         * alloc-pool.c: Fix comment typos.
15195         * builtin-types.def: Likewise.
15196         * builtins.def: Likewise.
15197         * c-pretty-print.c: Likewise.
15198         * df.h: Likewise.
15199         * reload1.c: Likewise.
15201 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15203         * doc/invoke.texi: Follow spelling conventions.
15204         * doc/tm.texi: Likewise.
15206 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15208         * doc/install.texi: Fix typos.
15209         * doc/invoke.texi: Likewise.
15211 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
15213         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
15214         registers as pointers.
15215         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
15217 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
15219         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
15220         and restore it to gen_lowpart_general on exit.
15221         (gen_lowpart_for_combine): Adjust all callers to go through
15222         gen_lowpart.
15223         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
15224         and restore it to gen_lowpart_general on exit.
15225         (gen_lowpart_if_possible): Adjust all callers to go through
15226         gen_lowpart.
15227         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
15228         (gen_lowpart): Declare as pointer to function, initialized to
15229         gen_lowpart_general.
15230         * rtl.h (gen_lowpart): Declare as pointer to function.
15232 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15234         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15235         * calls.c: Likewise.
15236         * emit-rtl.c: Likewise.
15237         * function.c: Likewise.
15238         * reload1.c: Likewise.
15239         * config/i386/cygming.h: Likewise.
15240         * config/i386/i386.c: Likewise.
15241         * config/i386/winnt.c: Likewise.
15243 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
15245         PR bootstrap/9249
15246         * doc/install.texi: document --enable-__cxa_atexit option.
15247         * configure.ac: Disable __cxa_atexit if not supported.
15248         * configure: Regenerate.
15250 2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
15252         * ggc-zone.c (ggc_free): New function.
15254 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15256         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
15257         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
15258         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
15259         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
15260         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
15261         config/alpha/alpha.c, config/alpha/alpha.h,
15262         config/alpha/alpha.md, config/alpha/unicosmk.h,
15263         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
15264         config/c4x/c4x-protos.h, config/c4x/c4x.md,
15265         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
15266         config/frv/frvend.c, config/i386/cygming.h,
15267         config/i386/djgpp.h, config/i386/emmintrin.h,
15268         config/i386/gthr-win32.c, config/i386/i386-interix.h,
15269         config/i386/i386-protos.h, config/i386/openbsd.h,
15270         config/i386/winnt.c, config/i386/xm-mingw32.h,
15271         config/i386/xmmintrin.h, config/ia64/ia64.md,
15272         config/iq2000/iq2000.md, config/m32r/m32r.md,
15273         config/m68k/m68k.md, config/mcore/mcore-elf.h,
15274         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
15275         config/mips/iris5gas.h, config/mips/iris6.h,
15276         config/mips/iris6gas.h, config/mips/linux.h,
15277         config/mips/mips.md, config/mips/netbsd.h,
15278         config/mips/openbsd.h, config/mips/windiss.h,
15279         config/pa/fptr.c, config/rs6000/aix.h,
15280         config/rs6000/altivec.h, config/rs6000/darwin.h,
15281         config/rs6000/xcoff.h, config/s390/s390-protos.h,
15282         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
15283         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
15284         config/sparc/sol2.h: Update copyright.
15286 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
15288         * Makefile.in (abs_docdir, abs_srcdir): Define.
15289         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
15291 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15293         * genconfig.c (main): Have CC0_P check its operand even on a
15294         target without cc0.
15296 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15298         * config/alpha/alpha.c: Remove mentions of deprecates macros
15299         in comments, remove some target-independent comments about target
15300         macros, and/or add minimal function comments for target hook
15301         implementations.
15302         * config/avr/avr.c: Likewise.
15303         * config/ia64/ia64.h: Likewise.
15304         * config/ip2k/ip2k.c: Likewise.
15305         * config/iq2000/iq2000.c: Likewise.
15306         * config/m32r/m32r.h: Likewise.
15307         * config/m68hc11/m68hc11.c: Likewise.
15308         * config/mcore/mcore.c: Likewise.
15309         * config/mmix/mmix.c: Likewise.
15310         * config/mn10300/mn10300.c: Likewise.
15311         * config/pa/pa.c: Likewise.
15312         * config/pdp11/pdp11.c: Likewise.
15313         * config/rs6000/rs6000.h: Likewise.
15314         * config/sh/sh.c: Likewise.
15315         * config/sh/sh.h: Likewise.
15316         * config/sparc/sparc.c: Likewise.
15317         * config/sparc/sparc.h: Likewise.
15318         * config/stormy16/stormy16.c: Likewise.
15319         * config/xtensa/xtensa.c: Likewise.
15321 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15323         PR optimization/12147
15324         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
15325         RELOAD_FOR_OPADDR_ADDR.
15326         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
15327         might be reused as RELOAD_FOR_OPADDR_ADDR register.
15329 2004-01-30  Jan Hubicka  <jh@suse.cz>
15331         * reload.c (get_secondary_mem): Fix updating of
15332         secondary_memlocs_elim_used.
15334 2004-01-30  Richard Henderson  <rth@redhat.com>
15336         * varasm.c (struct rtx_const, struct pool_constant): Remove.
15337         (MAX_RTX_HASH_TABLE): Remove.
15338         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
15339         (first_pool, last_pool, pool_offset): Remove.
15340         (struct rtx_constant_pool): Split out from ...
15341         (struct varasm_status): ... here.  Reference one via pointer.
15342         (struct constant_descriptor_rtx): Merge struct pool_constant.
15343         (SYMHASH): Remove.
15344         (decode_rtx_const): Remove.
15345         (const_hash_rtx, compare_constant_rtx): Remove.
15346         (record_constant_rtx): Remove.
15347         (const_desc_rtx_hash, const_desc_rtx_eq): New.
15348         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
15349         (const_rtx_hash_1, const_rtx_hash): New.
15350         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
15351         (simplify_subtraction): Use simplify_rtx.
15352         (force_const_mem): Rewrite to use new data structures.
15353         (find_pool_constant): Likewise.
15354         (get_pool_constant, get_pool_constant_mark,
15355         get_pool_constant_for_function, get_pool_mode,
15356         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
15357         (output_constant_pool_2): Split out from output_constant_pool.
15358         (output_constant_pool_1): Likewise.  Use new pool datastructures.
15359         (output_constant_pool): Zap entire pool datastructure.
15360         (mark_constant): Use new pool datastructures.
15361         (mark_constants): Use for_each_rtx.
15362         (mark_constant_pool): Use new pool datastructures.
15364 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
15366         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
15367         Copy operands[1] to pseudo for simplify_gen_subreg.
15369 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15371         * gcse.c (bypass_block): Fix a typo in the previous check-in
15372         to the file.
15374 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
15376         * toplev.c: Include alloc-pool.h.
15377         * Makefile.in (toplev.c): Update dependencies.
15379 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15381         * combine.c (simplify_shift_const, case XOR): Be careful when
15382         commuting XOR with ASHIFTRT.
15384 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15385             Eric Botcazou  <ebotcazou@libertysurf.fr>
15387         * config/sparc/sparc-protos.h: Remove the prototype for
15388         sparc_builtin_saveregs.
15389         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15390         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15391         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15392         (TARGET_STRUCT_VALUE_RTX): Likewise.
15393         (TARGET_RETURN_IN_MEMORY): Likewise.
15394         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15395         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15396         (sparc_builtin_saveregs): Make it static.
15397         (sparc_promote_prototypes): New.
15398         (sparc_struct_value_rtx): Likewise.
15399         (sparc_return_in_memory): Likewise.
15400         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
15401         (PROMOTE_FUNCTION_RETURN): Likewise.
15402         (RETURN_IN_MEMORY): Likewise.
15403         (STRUCT_VALUE): Likewise.
15404         (STRUCT_VALUE_INCOMING): Likewise.
15405         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15406         (STRICT_ARGUMENT_NAMING): Likewise.
15407         (PROMOTE_PROTOTYPES): Likewise.
15409         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
15411 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15413         PR c/12818
15414         * varasm.c (const_hash_1) <STRING_CST>: Use the
15415         address to compute the hash value if flag_writable_strings.
15416         (compare_constant) <STRING_CST>: Compare the addresses
15417         if flag_writable_strings.
15418         (build_constant_desc): Do not copy the expression for a
15419         STRING_CST if flag_writable_strings.
15421 2004-01-30  Jan Hubicka  <jh@suse.cz>
15423         * alloc-pool.c: Include hashtab.h
15424         (alloc_pool_descriptor): New structure
15425         (alloc_pool_hash): New global variable.
15426         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
15427         (create_alloc_pool): Update statistics.
15428         (free_alloc_pool): Likewise.
15429         (pool_alloc): Likewise.
15430         (output_info): New structure
15431         (print_statistics, dump_alloc_pool_statistics): New function.
15432         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
15433         (dump_alloc_pool_statistics): Declare.
15434         * toplev.c (finalize):  Dump statistics.
15436         * reload.c (secondary_memlocs_elim_used): New static variable.
15437         (get_secondary_mem): Update it.
15438         (find_reloads): Use it.
15440 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
15442         * toplev.c: Fix broken checkin of 2003-12-30, again.
15444 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15446         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
15447         s390*-*-* targets by specifying a 'nop' insn.
15448         * configure: Regenerate.
15450 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15452         PR target/11475
15453         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
15455 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15457         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
15458         of addr when creating MEM copy.
15460 2004-01-29  Devang Patel  <dpatel@apple.com>
15462         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
15464 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15466         PR inline-asm/6162
15467         * reload.c (find_reloads): Only support one pair of commutative
15468         operands.
15470 2004-01-29  Roger Sayle  <roger@eyesopen.com>
15472         PR java/13824
15473         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
15474         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
15475         recursion.
15477 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15479         * config/frv/frv.c: Don't mention deprecated macros in
15480         comments.  Remove some target-independent comments about
15481         target macros.
15482         * config/frv/frv.h: Likewise.
15484 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15486         * cfghooks.c (split_block): Set probability and count of the
15487         new edge.
15489 2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
15491         * dwarf2out.c (struct die_struct): Added field decl_id.
15492         (decl_die_table): Changed to hash table.
15493         (decl_die_table_allocated): Deleted.
15494         (decl_die_table_in_use): Deleted.
15495         (DECL_DIE_TABLE_INCREMENT): Deleted.
15496         (decl_die_table_hash): New function.
15497         (decl_die_table_eq): New function.
15498         (lookup_decl_die): Lookup in a hash table.
15499         (equate_decl_number_to_die): Insert into a hash table.
15500         (dwarf2out_init): Init hash table decl_die_table.
15502 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15504         PR optimization/13424
15505         * expr.c (store_constructor): Revert 2003-12-03 change.
15507         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
15508         expected before returning early.  Avoid sharing RTL if they
15509         need to be changed.
15511         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15512         handling so that memory attributes are preserved.  Don't call
15513         ix86_set_move_mem_attrs.
15514         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15515         (ix86_expand_clrstr): Rename src argument to
15516         dst.  Rework rep_stos and strset handling so that memory attributes
15517         are preserved.
15518         (ix86_expand_strlen): Pass src argument to
15519         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
15520         memory attributes are preserved.
15521         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
15522         change_address instead of gen_rtx_MEM.
15523         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15524         expanders.
15525         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15526         strmovqi, strmovqi_rex64): Remove.
15527         (rep_mov*, strmov*): Prefix insn names with *.
15528         (strset, strset_singleop, rep_stos): New expanders.
15529         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15530         strsetqi, strsetqi_rex64): Remove.
15531         (rep_stos*, strset*): Prefix insn names with *.
15532         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
15533         to SImode.
15534         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15535         are preserved.
15536         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15537         Prefix insn names with *.
15538         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15539         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15540         (strlenqi_1): New expander.
15541         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15543 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15545         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15546         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15547         verify_flow_info): Declaration removed.
15548         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15549         (debug_bb, debug_bb_n): Add argument to dump_bb call.
15550         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15551         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15552         instead of delete_block.
15553         * cfghooks.c: Include timevar.h and toplev.h.
15554         (cfg_hooks): Define here.
15555         (verify_flow_info, dump_bb): Moved from cfg.c.
15556         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15557         split_block, split_block_after_labels, move_block_after,
15558         delete_basic_block, split_edge, create_basic_block,
15559         create_empty_bb, can_merge_blocks_p, merge_blocks,
15560         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15561         New functions.
15562         * cfghooks.h (struct cfg_hooks): Added fields name,
15563         make_forwarder_block, tidy_fallthru_edge and
15564         move_block_after. Changed type of verify_flow_info, dump_bb,
15565         split_block fields. Renamed cfgh_split_edge and delete_block
15566         fields.
15567         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15568         split_block, delete_block, split_edge, create_basic_block,
15569         can_merge_blocks_p, merge_blocks): Macros removed.
15570         (cfg_hooks): Do not export.
15571         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15572         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15573         move_block_after, delete_basic_block, split_edge, create_basic_block,
15574         create_empty_bb, can_merge_blocks_p, merge_blocks,
15575         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15576         Declare.
15577         (cfg_layout_rtl_cfg_hooks): Declare.
15578         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15579         New functions.
15580         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15581         (redirect_edge_with_latch_update): Removed.
15582         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15583         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15584         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15585         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15586         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15587         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15588         cfghooks.c.
15589         (rtl_create_basic_block): Coding style fix.
15590         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15591         rtl_make_forwarder_block): New functions.
15592         (update_cfg_after_block_merging): Removed.
15593         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15594         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15595         to dump_bb.
15596         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15597         find_if_case_2): Don't update dominators.
15598         * timevar.def (TV_CFG_VERIFY): New.
15599         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15600         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15601         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15602         (remove_bbs): Don't call remove_bbs.
15603         (create_preheader): Use make_forwarder_block.
15604         (mfb_keep_just, mfb_update_loops): New static functions.
15606 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15608         * config/avr/avr.h: Remove target-independent comments about
15609         target macros.
15611 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15613         * timevar.c (timevar_print): Mention when checking is enabled.
15615 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15617         * c-lex.c (c_lex): Rename to...
15618         (c_lex_with_flags): Add new parameter to get CPP flags.
15619         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15620         * c-pragma.h (c_lex_with_flags): Declare.
15622 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15624         * config/mcore/mcore.c (mcore_external_libcall): Add a
15625         comment.
15626         (mcore_return_in_memory): Likewise.
15628 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15630         * config/mcore/mcore-protos.h: Remove the prototype for
15631         mcore_setup_incoming_varargs.
15632         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15633         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15634         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15635         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15636         (TARGET_STRUCT_VALUE_RTX): Likewise.
15637         (TARGET_RETURN_IN_MEMORY): Likewise.
15638         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15639         (mcore_setup_incoming_varargs): Make it static.  Receive the
15640         first argument by reference.  Add argument second_time.
15641         (mcore_external_libcall): New.
15642         (mcore_return_in_memory): Likewise.
15643         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15644         (PROMOTE_FUNCTION_RETURN): Likewise.
15645         (STRUCT_VALUE): Likewise.
15646         (RETURN_IN_MEMORY): Likewise.
15647         (SETUP_INCOMING_VARARGS): Likewise.
15648         (PROMOTE_PROTOTYPES): Likewise.
15649         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15651 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15653         * config/m32r/m32r-protos.h: Remove the prototype for
15654         m32r_setup_incoming_varargs.
15655         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15656         (TARGET_STRUCT_VALUE_RTX): Likewise.
15657         (TARGET_RETURN_IN_MEMORY): Likewise.
15658         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15659         (m32r_return_in_memory): New.
15660         (m32r_setup_incoming_varargs): Make it static.
15661         * config/m32r/m32r.h: Remove #undef of
15662         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15663         definitions of PROMOTE_FUNCTION_ARGS and
15664         PROMOTE_FUNCTION_RETURN.
15665         (PROMOTE_PROTOTYPES): Remove.
15666         (RETURN_IN_MEMORY): Likewise.
15667         (STRUCT_VALUE): Likewise.
15669 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15671         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15672         (TARGET_STRUCT_VALUE_RTX): Likewise.
15673         (m68k_struct_value_rtx): Likewise.
15674         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15675         STRUCT_VALUE_REGNUM.
15676         (PROMOTE_PROTOTYPES): Remove.
15677         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15678         STRUCT_VALUE_REGNUM.
15679         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15680         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15682 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15684         * config/stormy16/stormy16.c
15685         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15686         TARGET_BUILD_BUILTIN_VA_LIST.
15688 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15690         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15691         (TARGET_STRUCT_VALUE_RTX): Likewise.
15692         (TARGET_RETURN_IN_MEMORY): Likewise.
15693         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15694         (v850_return_in_memory): Likewise.
15695         (v850_setup_incoming_varargs): Likewise.
15696         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15697         (SETUP_INCOMING_VARARGS): Likewise.
15698         (RETURN_IN_MEMORY): Likewise.
15699         (STRUCT_VALUE): Likewise.
15701 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15703         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15704         (fr30_setup_incoming_varargs): Don't use
15705         STRICT_ARGUMENT_NAMING.
15706         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15707         (STRICT_ARGUMENT_NAMING): Likewise.
15709 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15711         * config/frv/frv-protos.h: Remove the prototype for
15712         frv_expand_builtin_saveregs.
15713         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15714         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15715         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15716         STRUCT_VALUE_REGNUM.
15717         (frv_expand_builtin_saveregs): Make it static.
15718         (frv_struct_value_rtx): New.
15719         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15721 2004-01-29  Jan Hubicka  <jh@suse.cz>
15723         PR c++/12850
15724         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15725         initial pointers.
15726         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15727         for functions that will be only inlined.
15728         (cgraph_mark_function_to_output): Likewise.
15729         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15730         do not clear function body.
15731         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15732         (tree_rest_of_compilation): Reorganize the logic releasing function
15733         body to use callgraph datastructure.
15735 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15737         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15738         to register_operand.
15740 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15742         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15743         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15744         match_operand expressions so that all match_dups appear
15745         lexically after their corresponding match_operands.
15747 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15749         * config/h8300/h8300.c (WORD_REG_USED): Use
15750         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15751         (compute_saved_regs): Likewise.
15752         (h8300_expand_prologue): Likewise.  Allocate locals after
15753         saving registers.
15754         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15755         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15756         registers.
15757         (h8300_initial_elimination_offset): Adjust for the new frame
15758         layout, which swaps flips the order of locals and saved
15759         registers.
15760         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15761         (HARD_FRAME_POINTER_REGNUM): New.
15762         (ELIMINABLE_REGS): Add an elimination rule from
15763         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15764         (REGISTER_NAMES): Add fp.
15765         * config/h8300/h8300.md (FP_REG): Change to 11.
15766         (HFP_REG): New.
15768 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15770         * genrecog.c (write_node): Remove a useless local variable.
15772 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15774         * Makefile.in (options.c options.h): Use stamp file s-options to
15775         avoid unnecessary rebuilds.
15776         (options.o): New target listing dependencies.
15777         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15778         (STAGESTUFF): Add s-gtyp-gen.
15780 2004-01-28  Richard Henderson  <rth@redhat.com>
15782         * ggc.h (ggc_free): Declare.
15783         * ggc-common.c (ggc_realloc): Use it.
15784         * ggc-page.c: Remove lots of inline markers.
15785         (globals): Add free_object_list.
15786         (ggc_alloc): Tidy.
15787         (ggc_free, validate_free_objects): New.
15788         (poison_pages): Provide default.
15789         (ggc_collect): Call validate_free_objects; emit markers to
15790         the debug file.
15792 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15793             Jim Wilson  <wilson@specifixinc.com>
15795         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15796         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15797         scratch pointer.
15798         (ia64_secondary_reload_class): Delete case GR_REGS.
15799         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15800         Do not allocate a scratch register.
15801         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15803 2004-01-28  Jan Hubicka  <jh@suse.cz>
15805         * gcse.c (bypass_block): Prevent edges to be unified when we are
15806         about to emit compenstation code.
15808 2004-01-28  Nick Clifton  <nickc@redhat.com>
15810         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15811         the setcwx insn into a register.
15813 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15815         * config/fp-bit.c (pack_d): When using paired doubles to implement
15816         a long double, round the high part separately.
15817         (unpack_d): Fix the case in which the high part is a power of two
15818         and the low part is a nonzero value of the opposite sign.
15820 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15822         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15823         (TARGET_STRUCT_VALUE_RTX): Likewise.
15824         (c4x_external_libcall): Likewise.
15825         (c4x_struct_value_rtx): Likewise.
15826         * config/c4x/c4x.h: Remove.
15827         (STRUCT_VALUE_REGNUM): Likewise.
15828         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15830 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15832         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15833         (TARGET_STRUCT_VALUE_RTX): Likewise.
15834         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15835         (STRUCT_VALUE): Likewise.
15836         (PROMOTE_PROTOTYPES): Likewise.
15838 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15840         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15841         CONST_INT before using INTVAL.
15843 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15845         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15846         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15847         frame if !TARGET_BACKCHAIN.
15848         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15849         TARGET_BACKCHAIN.
15850         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15852 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15854         * ia64.c (ia64_function_arg): When placing HFAs in integer
15855         registers, do not special case the mode used for complex
15856         types.  Do not advance int_regs until the current register
15857         is full.
15859 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15861         PR target/7297
15862         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15864 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15866         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15867         slow, unaligned loads and stores while debugging.  Fix formatting.
15869 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15871         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15872         of computing wmode.
15873         (restore_stack_nonlocal): Same.
15875 2004-01-27  Devang Patel <dpatel@apple.com>
15877         * Makefile.in (dwarf2out.o): Depend on input.h
15878         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15879         imported_module_or_decl.
15880         (xcoff_debug_hooks): Same.
15881         * sdbout.c (sdb_debug_hooks): Same.
15882         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15883         * debug.c (do_nothing_debug_hooks): Same.
15884         (debug_nothing_tree_tree): New function.
15885         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15886         * dwarf2out.c: Include input.h.
15887         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15888         (remove_child_TAG): New function.
15889         (dwarf_tag_name): Handle DW_TAG_imported_module.
15890         (gen_subprogram_die): Equate decl number to declaration die. Do not
15891         remove all children dies while reusing declaration die for definition.
15892         Instead, selectively remove only formal parameters.
15893         (gen_variable_die): Equate variable decl to declaration die.
15894         (gen_field_die): Equate field decl to line number.
15895         (force_namespace_die): Replace it with ...
15896         (force_decl_die): ... this.
15897         (force_type_die): New function.
15898         (setup_namespace_context): Replace use of force_namespace_die() with
15899         force_decl_die().
15900         (gen_namespace_die): Same.
15901         (dwarf2out_imported_module_or_decl): New function.
15903 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
15905         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15906         on CQImode and CHImode incoming arguments in register a7.
15907         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15908         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15909         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15910         xtensa_copy_incoming_a7 before reload.
15912 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15914         * coverage.c (get_coverage_counts): Give a different message
15915         if flag_guess_branch_prob is set.
15916         * predict.c (counts_to_freqs): Return an int.
15917         (estimate_bb_frequencies): If counts_to_freqs returns zero,
15918         calculate estimates.
15920 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
15922         * config/iq2000/iq2000-protos.h: Remove the prototype for
15923         iq2000_setup_incoming_varargs.
15924         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15925         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15926         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15927         (TARGET_STRUCT_VALUE_RTX): Likewise.
15928         (TARGET_RETURN_IN_MEMORY): Likewise.
15929         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15930         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15931         (iq2000_return_in_memory): Likewise.
15932         (iq2000_setup_incoming_varargs): Make it static.  Receive the
15933         first argument by reference.
15934         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
15935         (PROMOTE_FUNCTION_RETURN): Likewise.
15936         (PROMOTE_PROTOTYPES): Likewise.
15937         (RETURN_IN_MEMORY): Likewise.
15938         (STRUCT_VALUE): Likewise.
15939         (SETUP_INCOMING_VARARGS): Likewise.
15940         (STRICT_ARGUMENT_NAMING): Likewise.
15942 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
15944         * fixinc/fixinc.c (test_test): Initialize res.
15945         (start_flexer): Initialize pz_cmd_save.
15947 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15949         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
15950         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
15952 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15954         PR 7198
15955         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
15956         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
15957         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
15958         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
15959         Possibly rename pattern for consistency.
15960         Remove ??? comments suggesting that this be done.
15961         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
15962         New patterns.
15963         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
15964         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
15965         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
15966         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
15967         Update to match.
15969 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
15971         * config/arm/arm.c (output_return_instruction): Only restore IP
15972         into SP if frame_pointer_needed.
15974 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15976         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15977         for SCmode and DCmode if ARCH32.
15978         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
15979         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
15980         if ARCH32.
15981         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
15982         if ARCH32.
15983         (BASE_OUTGOING_VALUE_REG): Likewise.
15985 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15987         PR target/10904
15988         PR target/13058
15989         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15990         Forbid mode changes from SImode for lower FP regs if ARCH64.
15992 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15994         * Makefile.in (bt-load.o): Depend on except.h.
15995         * bt-load.c (except.h): #include.
15996         (compute_defs_uses_and_gen): If insn at end of BB can throw
15997         within this function, consider registers used by it unavailable for
15998         btr migration.
15999         (move_btr_def): If insn at end of BB can throw, insert before rather
16000         than after.
16002         * flags.h (flag_btr_bb_exclusive): Declare.
16003         * toplev.c (flag_btr_bb_exclusive): New variable.
16004         (f_options): Add btr-bb-exclusive.
16005         * bt-load.c (augment_live_range): Restore old behaviour if
16006         flag_btr_bb_exclusive is set.
16007         * common.opt: Add entry for -fbtr-bb-exclusive.
16008         * opts.c (common_handle_options): Same.
16009         * doc/invoke.texi: Document -fbtr-bb-exclusive.
16011         * bt-load.c (btrs_live_at_end): New variable.
16012         (compute_defs_uses_and_gen): Compute its pointed-to array.
16013         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
16014         (augment_live_range): When augmenting with a new dominator,
16015         use only its btrs_live_at_end set, but also add in the full set
16016         of the old dominator.
16017         (btr_def_live_range): Use btrs_live_at_end.
16018         (move_btr_def): Set other_btr_uses_before_def, and move new set
16019         to the end of the basic block, if appropriate.
16020         (migrate_btr_defs): Allocate and free btrs_live_at_end.
16022         * bt-load.c (basic_block_freq): Remove outdated comment.
16024 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
16026         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
16027         (PREDICATE_CODES): Remove duplicate.
16028         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
16029         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
16030         (MASK_PROFILE_KERNEL): Adjust define.
16032 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
16034         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
16035         of long string literals from 32 bytes to sizeof (void *) when !-Os
16036         and to 1 with -Os.
16038 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16040         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
16041         constant addresses in the normal mode.
16043 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16045         * system.h (CHAR_BITFIELD): Delete.
16046         (BOOL_BITFIELD): New.
16047         * c-decl.c (c_scope): Use BOOL_BITFIELD.
16048         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
16050 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16052         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16053         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16054         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16055         (TARGET_STRUCT_VALUE_RTX): Likewise.
16056         (TARGET_RETURN_IN_MEMORY): Likewise.
16057         (arc_return_in_memory): Likewise.
16058         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
16059         (PROMOTE_FUNCTION_RETURN): Likewise.
16060         (RETURN_IN_MEMORY): Likewise.
16061         (STRUCT_VALUE): Likewise.
16063 2004-01-26  Richard Henderson  <rth@redhat.com>
16065         * c-parse.in (extension): Use itype.
16066         (SAVE_EXT_FLAGS): Don't allocate a tree.
16067         (RESTORE_EXT_FLAGS): Don't read a tree.
16069 2004-01-26  Jan Hubicka  <jh@suse.cz>
16071         * cselib.c (discard_useless_values):  Clear out value pointer pointing
16072         to datastructure to be recycled.
16074 2004-01-25  Jan Hubicka  <jh@suse.cz>
16076         * genextract.c (main): Do not output the memset when not checking.
16078 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16080         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
16081         switch statement instead of a chain of if statements.
16083 2004-01-26  Jeff Law  <law@redhat.com>
16085         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
16086         acute accents for Petur Runolfsson's entry.
16088 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16090         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
16091         (TARGET_RETURN_IN_MEMORY): Likewise.
16092         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
16093         (RETURN_IN_MEMORY): Likewise.
16095 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16097          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
16098          unaligned load/store into smaller loads and stores.
16100 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16102         * function.c (assign_parms): Do not assign
16103         long long argument to memory in prologue if
16104         is it loaded into register.
16106 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16108          PR middle-end/13779
16109          * expr.c (emit_group_load): split constant
16110          correctly into register components of PARALLEL insn.
16112 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16114         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
16115         Use adjust_address_nv directly with appropriate mode.
16116         (restore_stack_nonlocal): Ditto.
16118 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16120         * config/xtensa/xtensa-protos.h: Remove the prototype for
16121         xtensa_builtin_saveregs.
16122         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16123         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16124         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16125         (TARGET_STRUCT_VALUE_RTX): Likewise.
16126         (TARGET_RETURN_IN_MEMORY): Likewise.
16127         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16128         (xtensa_builtin_saveregs): Make it static.
16129         (xtensa_return_in_memory): New.
16130         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
16131         (PROMOTE_FUNCTION_RETURN): Likewise.
16132         (PROMOTE_PROTOTYPES): Likewise.
16133         (STRUCT_VALUE): Likewise.
16134         (RETURN_IN_MEMORY): Likewise.
16135         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16137 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16139         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
16140         (arm_setup_incoming_varargs): Likewise.
16141         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
16143 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16145         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
16146         (cris_setup_incoming_varargs): Likewise.
16147         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
16149 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16151         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
16152         (ns32k_struct_value_rtx): Likewise.
16153         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
16154         NS32K_STRUCT_VALUE_REGNUM.
16156 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16158         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16159         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16160         (TARGET_STRUCT_VALUE_RTX): Likewise.
16161         (arm_struct_value_rtx): Likewise.
16162         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
16163         (STRUCT_VALUE): Likewise.
16164         (STRUCT_VALUE_REGNUM): Likewise.
16165         (PROMOTE_PROTOTYPES): Likewise.
16167 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16169         * config/ia64/ia64-protos.h: Remove the prototype for
16170         ia64_setup_incoming_varargs and ia64_return_in_memory.
16171         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
16172         (TARGET_RETURN_IN_MEMORY): Likewise.
16173         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16174         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16175         (ia64_setup_incoming_varargs): Adjust the arguments to meet
16176         the requirement of TARGET_SETUP_INCOMING_VARARGS.
16177         (ia64_return_in_memory): Make it static.  Change the return
16178         type to bool from int.  Add an argument.
16179         (ia64_struct_value_rtx): New.
16180         * config/ia64/ia64.h: Remove commented-out definitions of
16181         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
16182         PROMOTE_PROTOTYPES.
16183         (RETURN_IN_MEMORY): Remove.
16184         (STRUCT_VALUE_REGNUM): Likewise.
16185         (STRICT_ARGUMENT_NAMING): Likewise.
16187 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
16189         PR target/13666
16190         * config/sparc/sparc.c (function_arg_union_value): New function.
16191         (function_arg): Use it to deal with unions.
16192         (function_value): Likewise.  Define 'regbase' only for ARCH64.
16193         Replace a conditional statement by a simpler one.
16195 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
16197         * config/mips/mips.c (mips16_optimize_gp): Delete.
16198         (mips_reorg): Don't call it.
16200 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16202         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
16203         (floatunsqihf2): Remove operand 6.
16204         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
16205         fix patterns.
16206         (ldi_conditional, ldf_conditional): Validate operands.
16208 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16210         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
16211         (HAVE_GAS_HIDDEN): Undefine as interim measure.
16213 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16215         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
16216         memory references if TARGET_EXPOSE_LDP nonzero.
16218 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16220         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
16222 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16224         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
16225         invalid operand combinations.
16227 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16229         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
16230         c4x_legitimate_address_p.  Fix post_modify check.
16232         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
16233         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
16235 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16237         * config/pa/pa-protos.h: Remove the prototype for
16238         hppa_builtin_saveregs.  Add a prototype for
16239         pa_return_in_memory.
16240         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
16241         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16242         (TARGET_STRUCT_VALUE_RTX): Likewise.
16243         (TARGET_RETURN_IN_MEMORY): Likewise.
16244         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16245         (pa_struct_value_rtx): Likewise.
16246         (pa_return_in_memory): Likewise.
16247         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
16248         PA_STRUCT_VALUE_REGNUM.
16249         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
16250         (EXPAND_BUILTIN_SAVEREGS): Remove.
16251         (PROMOTE_PROTOTYPES): Likewise.
16252         (PROMOTE_FUNCTION_RETURN): Likewise.
16254 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16256         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
16257         (TARGET_STRUCT_VALUE_RTX): Likewise.
16258         (vax_struct_value_rtx): Likewise.
16259         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
16260         VAX_STRUCT_VALUE_REGNUM.
16261         (PROMOTE_PROTOTYPES): Remove.
16263 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16265         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
16267 2004-01-25  Chris Demetriou  <cgd@broadcom.com>
16269         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
16270         and MIPS64 have HI/LO interlocks.  Update comment.
16272 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16274         * config/stormy16/stormy16-protos.h: Remove the prototype for
16275         xstormy16_setup_incoming_varargs.
16276         * config/stormy16/stormy16.c
16277         (xstormy16_setup_incoming_varargs): Remove.
16278         (xstormy16_return_in_memory): New.
16279         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
16280         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16281         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16282         (TARGET_STRUCT_VALUE_RTX): Likewise.
16283         (TARGET_RETURN_IN_MEMORY): Likewise.
16284         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
16285         (PROMOTE_FUNCTION_RETURN): Likewise
16286         (PROMOTE_PROTOTYPES): Likewise
16287         (RETURN_IN_MEMORY): Likewise
16288         (STRUCT_VALUE): Likewise
16289         (SETUP_INCOMING_VARARGS): Likewise
16291 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16293         * config/mips/mips.c (mips_offset_within_object_p): New function.
16294         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
16295         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
16296         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
16298 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16300         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
16301         (PROMOTE_FUNCTION_RETURN): Likewise.
16303 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16305         * config/mn10300/mn10300-protos.h: Remove the prototype for
16306         mn10300_builtin_saveregs.
16307         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
16308         (TARGET_STRUCT_VALUE_RTX): Likewise.
16309         (TARGET_RETURN_IN_MEMORY): Likewise.
16310         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16311         (mn10300_return_in_memory): Likewise.
16312         (mn10300_builtin_saveregs): Make it static.
16313         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
16314         (RETURN_IN_MEMORY): Likewise.
16315         (STRUCT_VALUE): Likewise.
16316         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16318 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
16320         PR bootstrap/13853
16321         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
16323 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16325         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
16326         using ccr.
16328 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16330         * config/i860/i860-protos.h: Remove the prototype for
16331         i860_saveregs.
16332         * config/i860/i860.c (i860_saveregs): Make it static.
16333         (i860_struct_value_rtx): New.
16334         (TARGET_STRUCT_VALUE_RTX): Likewise.
16335         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16336         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
16337         I860_STRUCT_VALUE_REGNUM.
16338         (EXPAND_BUILTIN_SAVEREGS): Remove.
16340 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16342         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
16343         (TARGET_RETURN_IN_MEMORY): Likewise.
16344         (m68hc11_struct_value_rtx): Likewise.
16345         (m68hc11_return_in_memory): Likewise.
16346         * config/m68hc11/m68hc11.h: Remove a commented-out definition
16347         of PROMOTE_PROTOTYPES.
16348         (RETURN_IN_MEMORY): Remove.
16349         (STRUCT_VALUE_REGNUM): Likewise.
16351 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16353         * config/mmix/mmix-protos.h: Remove the prototype for
16354         mmix_setup_incoming_varargs.
16355         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16356         (TARGET_STRUCT_VALUE_RTX): Likewise.
16357         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16358         (mmix_setup_incoming_varargs): Make it static.
16359         (mmix_struct_value_rtx): New.
16360         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
16361         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
16362         (STRUCT_VALUE_REGNUM): Remove.
16363         (SETUP_INCOMING_VARARGS): Likewise.
16365 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16367         * config/mips/mips-protos.h: Remove the prototypes for
16368         mips_setup_incoming_varargs and mips_return_in_memory.
16369         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16370         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16371         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16372         (TARGET_STRUCT_VALUE_RTX): Likewise.
16373         (TARGET_RETURN_IN_MEMORY): Likewise.
16374         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16375         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16376         (mips_setup_incoming_varargs): Match the prototype for
16377         TARGET_SETUP_INCOMING_VARARGS.
16378         (mips_return_in_memory): Make it static.  Add argument fntype.
16379         (mips_strict_argument_naming): New.
16380         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
16381         (PROMOTE_FUNCTION_ARGS): Likewise.
16382         (PROMOTE_FUNCTION_RETURN): Likewise.
16383         (STRUCT_VALUE): Likewise.
16384         (RETURN_IN_MEMORY): Likewise.
16385         (SETUP_INCOMING_VARARGS): Likewise.
16386         (STRICT_ARGUMENT_NAMING): Likewise.
16388 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16390         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
16391         (TARGET_RETURN_IN_MEMORY): Likewise.
16392         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16393         (ip2k_return_in_memory): Likewise.
16394         (ip2k_setup_incoming_varargs): Likewise.
16395         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
16396         (STRUCT_VALUE): Likewise.
16397         (STRUCT_VALUE_INCOMING): Likewise.
16398         (SETUP_INCOMING_VARARGS): Likewise.
16400 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16402         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
16403         (TARGET_RETURN_IN_MEMORY): Likewise.
16404         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16405         (avr_return_in_memory): Remove.
16406         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
16407         (STRUCT_VALUE): Likewise.
16408         (STRUCT_VALUE_INCOMING): Likewise.
16409         (STRICT_ARGUMENT_NAMING): Likewise.
16411 2004-01-25  Jan Hubicka  <jh@suse.cz>
16413         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
16415 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16417         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
16418         (mips_regno_mode_ok_for_base_p): Declare.
16419         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
16420         (FRAME_POINTER_REGNUM): Renumber to 78.
16421         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
16422         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
16423         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
16424         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
16425         (REG_MODE_OK_FOR_BASE_P): Likewise.
16426         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
16427         entry for 77 to "$arg" and entry for 78 to "$frame".
16428         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
16429         (mips_reg_mode_ok_for_base_p): Remove.
16430         (mips_regno_mode_ok_for_base_p): New function, derived from old
16431         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
16432         restrictions unless we're being strict.
16433         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
16435 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16437         * c-common.h: Fix comment typos.
16438         * c-decl.c: Likewise.
16439         * cgraphunit.c: Likewise.
16440         * combine.c: Likewise.
16441         * et-forest.c: Likewise.
16442         * flow.c: Likewise.
16443         * function.c: Likewise.
16444         * ifcvt.c: Likewise.
16445         * integrate.c: Likewise.
16446         * jump.c: Likewise.
16447         * postreload.c: Likewise.
16448         * varray.c: Likewise.
16450 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16452         * doc/frontends.texi: Update copyright.
16453         * doc/gcov.texi: Likewise.
16454         * doc/gty.texi: Likewise.
16455         * doc/sourcebuild.texi: Likewise.
16456         * doc/standards.texi: Likewise.
16458 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
16460         PR target/12978
16461         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
16462         Remove movstrqi_small because it conflicts with movstrqi_large.
16464 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16466         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16467         (TARGET_STRUCT_VALUE_RTX): Likewise.
16468         (cris_struct_value_rtx): Likewise.
16469         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
16470         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
16471         STRUCT_VALUE_REGNUM.
16472         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
16474 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
16476         PR bootstrap/13848
16477         * cse.c (cse_cc_succs): Change the mode of the source expression
16478         as soon as decide we need a new mode.  Don't permit changing modes
16479         if we found a match in a successor block.
16480         (cse_condition_code_reg): Save original mode of source expression
16481         so that we know whether we have to change the mode in other
16482         insns.
16484 2004-01-24  Jan Hubicka  <jh@suse.cz>
16486         * emit-rtl.c (change_address, adjust_address_1, offset_address,
16487         widen_memory_access):  Return early when there is nothing to change.
16489 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
16491         * simplify-rtx.c (simplify_relational_operation): Don't
16492         simplify address == constant into address + -constant == 0.
16494 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16496         * gcc.c (process_command): Don't internationalize the
16497         Copyright message.
16498         * mips-tfile.c (main): Likewise.
16500 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
16502         * cse.c: (cse_cc_succs) Fix comparison warning.
16504 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16506         * config/h8300/h8300.md: Remove extraneous USE in expanders.
16508 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16510         * config/h8300/h8300-protos.h: Provide prototypes for
16511         h8300_legitimate_constant_p and h8300_legitimate_address_p.
16512         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16513         (h8300_rtx_ok_for_base_p): Likewise.
16514         (h8300_legitimate_address_p): Likewise.
16515         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16516         h8300_legitimate_constant_p.
16517         (RTX_OK_FOR_BASE_P): Remove.
16518         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16520 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16522         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16523         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16524         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16525         (REG_OK_FOR_BASE_STRICT_P): Likewise.
16526         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16527         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16528         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16529         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16531 2004-01-24  Jan Hubicka  <jh@suse.cz>
16533         * cselib.c (remove_useless_values):  Do not access discarded values.
16535 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
16537         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16538         arrays.
16540 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16542         * recog.c: Fix a typo in copyright.
16544 2004-01-23  Andrew Pinski  <apinski@apple.com>
16546         * config/rs6000/rs6000.md (call): Fix misappiled patch.
16547         (call_value): Likewise.
16549 2004-01-23  Richard Henderson  <rth@redhat.com>
16551         PR opt/12941
16552         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16553         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16554         if SHIFT_COUNT_TRUNCATED is set.
16556 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
16558         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16559         separate real and imaginary parts.
16560         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16562 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
16564         PR target/13674
16565         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16566         loading into GPR.
16568 2004-01-23  Jan Hubicka  <jh@suse.cz>
16570         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16571         change.
16573         * alloc-pool.c (align_four): Kill.
16574         (create_alloc_pool): Align size to eight.
16575         (free_alloc_pool, free_pool): Invalidate deallocated data.
16577 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16579         PR gcc/1532
16580         * cse.c (cse_change_cc_mode): New static function.
16581         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16582         (cse_condition_code_reg): New function.
16583         * rtl.h (cse_condition_code_reg): Declare.
16584         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16585         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16586         cc_modes_compatible.
16587         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16588         (TARGET_CC_MODES_COMPATIBLE): Define.
16589         (TARGET_INITIALIZER): Add new initializers.
16590         * targhooks.c (default_cc_modes_compatible): New function.
16591         * targhooks.c (default_cc_modes_compatible): Declare.
16592         * hooks.c (hook_bool_intp_intp_false): New function.
16593         * hooks.h (hook_bool_intp_intp_false): Declare.
16594         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16595         (TARGET_CC_MODES_COMPATIBLE): Define.
16596         (ix86_fixed_condition_code_regs): New static function.
16597         (ix86_cc_modes_compatible): Likewise.
16598         * doc/tm.texi (Condition Code): Document new hooks.
16600 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16602         * fixinc/inclhack.def (bad_lval): Renamed to ...
16603         (alpha_bad_lval): ... this.
16604         Removed file list.
16605         Restrict to alpha*-dec-osf*.
16606         * fixinc/fixincl.x: Regenerate.
16607         * fixinc/tests/base/dirent.h: Remove, moving test ...
16608         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16610 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16612         PR c/13814
16613         * c-decl.c (diagnose_mismatched_decls): Also discard a
16614         built-in if we encounter an old-style definition with the
16615         same name.
16617 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16619         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16620         set to default{32,64}.
16622 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16624         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16625         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16627 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16628             Olivier Hainque  <hainque@act-europe.fr>
16630         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16631         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16633 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16635         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16636         size for minipool references.
16638 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16640         * real.c (real_floor, real_ceil): Tweak to allow input and output
16641         arguments to overlap.
16642         (real_round): New function to implement round(3m) semantics.
16643         * real.h (real_round): Prototype here.
16644         * builtins.c (fold_builtin_round): New function to constant fold
16645         round, roundf and roundl.
16646         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16648 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16650         PR optimization/13819
16651         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16652         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16653         (sh_handle_sp_switch_attribute): Remove warning.
16655 2004-01-23  Jan Hubicka  <jh@suse.cz>
16657         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16659 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16661         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16662         may or may not return non-NIL.
16663         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16664         check CANNOT_CHANGE_MODE_CLASS
16666 2004-01-23  Jan Hubicka  <jh@suse.cz>
16668         * basic-block.h (PROP_POSTRELOAD): New macro.
16669         (CLEANUP_LOG_LINKS): New.
16670         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16671         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16673         * cselib.c (value_pool): New.
16674         (new_cselib_val): Use pool.
16675         (cselib_init): Initialize value_pool
16676         (cselib_finish): Free pool.
16678 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16680         * config/sparc/sparc.c (scan_record_type): New function.
16681         (function_arg_slotno): Use it to determine which kinds of
16682         registers the record can be passed in.
16684 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16686         * config/pa/fptr.c: Fix old-style definition.
16688 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16690         PR optimization/13724
16691         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16692         represents the zero bits produced by a ZERO_EXTEND operation.
16694 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16696         PR optimization/13821
16697         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16698         correctly calculate the lowpart offset of the contracted subreg.
16700 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16702         * doc/invoke.texi (Optimize Options): Note that --param arguments
16703         are subject to change without notice.
16705 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16707         * config.gcc (mips-sgi-irix6*o32): Removed.
16708         * config/mips/iris6-o32-as.h: Likewise.
16709         * config/mips/iris6-o32-gas.h: Likewise.
16710         * config/mips/iris6-o32.h: Likewise.
16712 2004-01-22  Jan Hubicka  <jh@suse.cz>
16714         * cfgcleanup.c (first_pass): New static variable.
16715         (try_forward_edges):  Add work limiting check for threading.
16716         (try_crossjump_bb):  Add work limiting check for crossjumping.
16717         (try_optimize_cfg):  Maintain first pass variable.
16719 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16721         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16722         handles complex and vector modes.
16724 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16726         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16727         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16728         (STRICT): Likewise.
16730 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16732         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16733         (genrtl_for_stmt): Remove emit_nop calls.
16735 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16737         PR target/13713
16738         PR target/13324
16739         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16740         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16741         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16743 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16745         * config/arm/arm.c: Include "debug.h".
16746         (thumb_pushpop): Take two new arguments.  Add some commentary.
16747         Output frame information when pushing.
16748         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16749         thumb_pushpop.
16750         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16751         offset, and pass it to thumb_pushpop.  Output CFI information.
16752         (thumb_expand_prologue): Add some frame-related markers and notes.
16754 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16756         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16757         for TARGET_64BIT.
16758         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16759         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16761 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16762             Paolo Bonzini  <bonzini@gnu.org>
16764         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16765         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16766         * rtl.h (subreg_lsb_1): Prototype here.
16767         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16768         sign extensions.
16770 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16772         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16773         macro need not be defined if jump-tables should contain
16774         relative addresses only when -fPIC or -fPIC is in effect.
16776 2004-01-22  Jan Hubicka  <jh@suse.cz>
16778         * alias.c (reg_base_value): Turn into varray.
16779         (reg_base_value_size): Kill.
16780         (old_reg_base_value): New deletable varray.
16781         (alias_invariant_size): New variable.
16782         (REG_BASE_VALUE): Update to use varray.
16783         (find_base_value): Likewise.
16784         (record_set): Likewise.
16785         (record_base_value): Likewise.
16786         (memrefs_conflict_p): Likewise.
16787         (record_set): Likewise
16788         (record_base_value): Likewise.
16789         (memrefs_conflict_p): Use alias_invariant_size.
16790         (init_alias_analysis): Use varray; set alias_invariant_size;
16791         rescale other arrays to be sized by maxreg.
16792         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16794 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16796         * config/sparc/sparc.c (function_arg_slotno): Use
16797         FLOAT_TYPE_P to detect FP fields in structures.
16798         (function_arg_record_value_1): Likewise.
16799         (function_arg_record_value_2): Likewise.
16801 2004-01-22  Jan Hubicka  <jh@suse.cz>
16803         * function.c (allocate_struct_function): Do not initialize expr, emit
16804         and varasm.
16805         (prepare_function_start): Do it here.
16806         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16808 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16810         PR target/13559
16811         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16812         to 'word_mode' once the first slot has been filled.
16814 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16816         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16817         computation of the number of integer registers required.
16819 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16821         * config/i386/i386.md: Simplify certain comparisons of
16822         const_int.
16824 2004-01-21  Andrew Pinski  <apinski@apple.com>
16826         PR target/13785
16827         * config/rs6000/rs6000.md (call_value): Force operand
16828         1 not operand 0 into a register.
16830 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16832         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16833         unwind-dw2-fde.h: Update copyright.
16835 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16837         * pa-protos.h: Update copyright.
16838         * pa.h: Likewise.
16839         * pa.md: Likewise.
16841 2004-01-21  Caroline Tice  <ctice@apple.com>
16843         PR target/12308
16844         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16845         flags register.
16846         (fix_truncdfdi2): Likewise.
16847         (fix_truncsfdi2): Likewise.
16848         (*fix_truncdi_1): Likewise.
16849         (fix_truncxfsi2): Likewise.
16850         (fix_truncdfsi2): Likewise.
16851         (fix_truncsfsi2): Likewise.
16852         (*fix_truncsi_1): Likewise.
16853         (fix_truncxfhi2): Likewise.
16854         (fix_truncdfhi2): Likewise.
16855         (fix_truncsfhi2): Likewise.
16856         (*fix_trunchi_1): Likewise.
16858 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16860         * alias.c, basic-block.h, c-common.c, c-common.h,
16861         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16862         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16863         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16864         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16865         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16866         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16867         genautomata.c, genconditions.c, genemit.c, genflags.c,
16868         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16869         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16870         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16871         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16872         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16873         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16874         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16875         unwind.h, varray.c, varray.h: Update copyright.
16877 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16879         * config/h8300/coff.h: Update copyright.
16880         * config/h8300/elf.h: Likewise.
16881         * config/h8300/h8300-protos.h: Likewise.
16882         * config/h8300/h8300.c: Likewise.
16883         * config/h8300/h8300.h: Likewise.
16884         * config/h8300/h8300.md: Likewise.
16886 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16888         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16889         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16890         ultrix_unistd): New hacks.
16891         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16892         ULTRIX_CONST2_CHECK): Add checks.
16893         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16894         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16895         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16896         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16897         * fixinc/tests/base/locale.h: New file.
16898         * fixinc/fixincl.x: Rebuilt.
16900 2004-01-21  Andreas Jaeger  <aj@suse.de>
16901             Michael Matz  <matz@suse.de>
16903         * doc/extend.texi (Extended Asm): Clarify memory clobber.
16905 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16907         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16908         _Jv_RegisterClasses through a function pointer.
16910 2004-01-21  Falk Hueffner  <falk@debian.org>
16912         PR target/12898
16913         * config/alpha/alpha.c (alpha_emit_set_const_1): If
16914         no_new_pseudos, use gen_rtx_SET directly for SImode constants
16915         which need multiple instructions to emit.
16917 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
16919         * config/m32r/m32r.h (CPP_SPEC): Define.
16921 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
16923         * c-decl.c (merge_decls): Kill different_binding_level and
16924         different_tu arguments; simplify throughout.
16925         (duplicate_decls): Likewise.
16926         (pushdecl, merge_translation_unit_decls): Update calls to
16927         duplicate_decls.
16929 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16931         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
16932         $(SYSTEM_H).
16933         (print-rtl1.o): Depend on $(SYSTEM_H).
16935 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16937         PR bootstrap/12730
16938         * configure.ac: Delete definition and subsitution of docdir.
16939         Add info, man, srcman and srcinfo to target hooks. Create doc/
16940         directory.
16941         * configure: Regenerate.
16942         * Makefile.in: Don't substitute docdir and delete all references
16943         throughout.
16944         (MAKEINFOFLAGS): Define.
16945         (stmp-docobjdir): Delete.
16946         (INFOFILES, MANFILES): Define.
16947         (info): Call lang.info, srcinfo and lang.srcinfo.
16948         (generated-manpages): Call lang.man, srcman and lang.srcman.
16949         (srcinfo, srcman): New rules to copy back files to source directory.
16950         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
16951         (install-man): Revamp rule.
16952         (clean): Update dvi directory.
16953         (distclean): Delete TAGS from front end directorys.
16954         (maintainer-clean): Delete all document files in source directory.
16956         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
16957         (objc.srcman, objc.srcinfo): Likewise.
16959 2004-01-20  Bruce Korb  <bkorb@gnu.org>
16961         * fixinc/inclhack.def(math_exception): bypass only for glibc.
16962         (matherr_decl): rename & relocate as exception_structure.
16963         This fix must precede the math_exception fix.
16965 2004-01-20  Roger Sayle  <roger@eyesopen.com>
16967         * fold-const.c (fold_convert): Rename to fold_convert_const.
16968         (fold_convert_const): Change arguments to take a tree_code,
16969         a type and the operand/expression to be converted.  Return
16970         NULL_TREE if no simplification is possible.  Add support for
16971         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
16972         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
16973         Adjust call to fold_convert to match new fold_convert_const.
16974         Avoid modifying the tree passed to fold in-place.
16976 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
16978         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
16979         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
16980         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
16982 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16984         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
16985         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
16986         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
16987         (emit_move_sequence): Check scratch_reg first in various if statements.
16988         Extend source simplification to handle all 64-bit CONST_INTs.
16989         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16990         frame size.
16991         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16992         frame offset calculations.
16993         * pa.h (NEW_HP_ASSEMBLER): Add comment.
16994         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16995         LEGITIMATE_64BIT_CONST_INT_P): Define.
16996         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
16997         any CONST_INT as legitimate during and after reload.
16998         (VAL_32_BITS_P, INT_32_BITS): Define.
16999         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
17001 2004-01-20  Jan Hubicka  <jh@suse.cz>
17003         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
17004         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
17005         containing hard regs are shared.
17006         (gen_hard_reg_clobber): New function.
17007         (hard_reg_clobbers): New array.
17008         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
17009         (copy_rtx): Do not copy clobbers containing hard regs.
17010         * rtl.h (gen_hard_reg_clobber): Declare.
17012 2004-01-20  Jan Hubicka  <jh@suse.cz>
17014         * varray.c:  Include hashtab.h
17015         (varray_descriptor): New structure.
17016         (hash_descriptor, eq_descriptor, varray_descriptor,
17017         print_statistics): New static functions
17018         (varray_init, varray_grow): Update statistics
17019         (dump_varray_statistics): New function.
17020         * varray.h (dump_varray_statistics): Declare.
17021         * toplev.c (finalize): Call it.
17022         * Makefile.in (varray.o): Add dependency.
17024 2004-01-20  Jan Hubicka  <jh@suse.cz>
17026         * cselib.c: Include alloc-pool.h
17027         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
17028         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
17029         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
17030         unchain_one_elt_loc_list_pool, unchain_one_value,
17031         new_cselib_val): Simplify using allocpool.
17032         (cselib_init): Initialize allocpools.
17033         (cselib_finish): Finish allocpools.
17034         * Makefile.in (cselib.o): Depend on alloc-pool.h
17036 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
17038         * config/mips/mips.c (mips_load_call_address): Make the call insn
17039         use $gp if it could be calling a lazy binding stub.
17041 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
17043         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
17044         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17045         (TARGET_STRUCT_VALUE_RTX): Likewise.
17046         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
17047         (PROMOTE_FUNCTION_RETURN): Remove.
17048         (STRUCT_VALUE): Remove.
17050 2004-01-20  Denis Chertykov  <denisc@overta.ru>
17052         PR bootstrap/13735
17053         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
17054         register as pointer after reload.
17056 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17058         PR optimization/12440
17059         * loop.c: Include ggc.h.
17060         (loop_optimize): Run garbage collector between optimization of loops.
17061         * Makefile.in (loop.o): Add GGC_H dependency.
17063 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
17065         * gcc/config/rs6000/rs6000.c (function_arg) Handle
17066         vector register special in function without prototype.
17067         (function_arg_advance): Vector parameters get always
17068         GPRs allocated for the linux64 target.
17070 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17072         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
17073         not TARGET_M32RX_MASK.
17075 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
17077         PR target/13557
17078         * config/sparc/sparc.c (function_arg): Reorder the cases.
17080 2004-01-19  Per Bothner  <per@bothner.com>
17082         Move cpp_reader's line_maps field to a shared global.
17083         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
17084         and change the type to a pointer rather than a struct.
17085         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
17086         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
17087         Likewise.
17088         * cppfiles.c (validate_pch):  Likewise.
17089         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
17090         Likewise.
17091         * cpperror.c (print_location):  Likewise.
17092         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
17093         * cppinit.c (cpp_create_reader):  Handle new parameter.
17094         (cpp_destroy):  Don't free line_maps - that's no longer our job.
17095         * input.h (line_table):  New variable.
17096         * toplev.c (line_table):  Declare variable.
17097         (general_init):  Initialize line_table.
17098         * c-opts.c (c_common_init_options):  Pass line_table to
17099         cpp_create_reader.
17100         * fix-header.c (read_scan_file):  New local variable line_table.
17101         Initialize, and pass it to cpp_create_reader.
17102         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
17103         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
17105 2004-01-19  Per Bothner  <per@bothner.com>
17107         Implement a cache for linemap_lookup.
17108         * line-map.h (struct_line_maps):  Add cache field.
17109         * line-map.c (linemap_init):  Zero cache field.
17110         (linemap_add):  Set cache field to offset of newly allocated map.
17111         (linemap_lookup):  Use and set cache field.
17113 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
17115         PR optimization/13567
17116         * cse.c (cse_basic_block): Call cse_insn with a non-null
17117         libcall_insn for the last SET insn of a no-confilict block.
17119 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
17121         * Makefile.in (target_noncanonical, program_transform_name): Use
17122         immediate define instead of deferred.
17123         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
17124         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
17125         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
17126         deferred backquote.
17128 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
17130         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
17131         true unconditionally.
17132         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
17133         Remove.
17134         (build_unary_op, build_modify_expr): Don't handle extended
17135         lvalues.
17136         (build_component_ref, build_conditional_expr): Call non_lvalue
17137         instead of pedantic_non_lvalue.
17138         (build_c_cast): Don't condition use of non_lvalue on pedantic.
17139         * fold-const.c (fold): Don't check pedantic directly for
17140         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
17141         passed to pedantic_non_lvalue.
17142         * doc/extend.texi: Remove documentation of extended lvalues.
17144 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17146         PR optimization/5263
17147         * simplify-rtx.c (associative_constant_p): Delete.
17148         (simplify_associative_operation): Rewrite to linearize terms, and
17149         attempt to simplify new term against both left and right subterms.
17150         (simplify_binary_operation): Call swap_commutative_operands_p on
17151         op0 and op1, not trueop0 and trueop1.  Move the initialization of
17152         trueop0 and trueop1 down to where first needed.
17153         (simplify_relational_operation): Likewise.
17154         * rtlanal.c (commutative_operand_precedence): Also order constant
17155         operands using avoid_constant_pool_reference.
17157 2004-01-19  Richard Henderson  <rth@redhat.com>
17159         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
17160         don't check memory mode.
17161         (unaligned_memory_operand): Likewise.
17162         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
17163         abort for op0 not MEM.
17165         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
17166         is not a reg, copy to a scratch first.
17167         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
17168         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
17169         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
17170         (reload_inqi, reload_inhi): Fix mode of op0.
17171         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
17172         reload_outhi_help): Likewise.  Use define_insn_and_split.
17174         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
17175         as well as $29 dead.
17177 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
17179         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
17180         "tls_object" for thread-local objects.
17181         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
17182         "#tls" for thread-local sections.
17183         * configure.ac (thread-local checks): Specify --fatal-warnings in
17184         every binutils-specific checks.  For sparc*-*-*, test whether the
17185         OS is Solaris and the tools are native and act accordingly.
17186         * configure: Rebuild.
17188 2004-01-19  Jeff Law  <law@redhat.com>
17190         * contrib.texi: Update Paolo Carlini's entry.  New entries for
17191         Jerry Quinn and Petur Runolfsson.
17193 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17195         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
17196         size, don't use the larger zero-extending loads.
17198 2004-01-19  Richard Henderson  <rth@redhat.com>
17200         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
17201         * alpha.md (UNSPEC_NT_LDA): Remove.
17202         (UNSPEC_CVTLQ, cvtlq): New.
17203         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
17204         (extendsidi2_fix): Remove.
17205         (extendsidi2 splitter): Use cvtlq.
17206         (extendsidi2 fp peepholes): Remove.
17207         (cvtql): Use SFmode instead of SImode.
17208         (fix_trunc?fsi): Update to match.
17209         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
17210         (movsi): Rename from movsi_nofix, remove f alternatives.
17211         (movsi_nt_vms): Similarly.
17212         (movsi_fix, movsi_nt_vms_fix): Remove.
17213         (nt_lda): Remove.
17214         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
17216 2004-01-19  Jan Hubicka  <jh@suse.cz>
17218         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
17219         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
17220         list.
17221         (cgraph_remove_unreachable_nodes): New function
17222         (cgraph_decide_inlining_of_small_function): Fix pasto.
17223         (cgraph_decide_inlining_incrementally): Fix pasto.
17224         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
17226 2004-01-19  Steven Bosscher  <stevenb@suse.de>
17228         * gengtype.c (header_file): Make it static.
17229         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
17230         * gengtype.h (header_file): No longer extern.
17232 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17234         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
17235         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
17236         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
17238 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17240         * stmt.c (HAVE_casesi): Define it not already defined.
17241         (HAVE_tablejump): Likewise.
17242         (expand_end_case_type): Resort to the binary tree method if
17243         neither casesi or tablejump is available.
17245 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
17247         * final.c (final_scan_insn): Make non-static again.
17248         * output.h (final_scan_insn): Re-add prototype.
17249         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
17250         to final_scan_insn call.
17251         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
17252         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
17253         * config/pa/pa.c (output_lbranch, output_call): Likewise.
17254         * config/sh/sh.c (print_slot): Likewise.
17255         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
17256         (output_sibcall, sparc_flat_function_epilogue): Likewise.
17258 2004-01-18  Jan Hubicka  <jh@suse.cz>
17260         * basic-block.h (try_redirect_by_replacing_jump): Declare.
17261         * cfgcleanup.c (try_optimize_cfg): Use it.
17262         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
17263         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
17264         Kill hack.
17265         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
17267         Revert:
17268         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17270                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17271                 even after reload, just don't remove the actual jump tables.
17273 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17275         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
17277 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17279         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
17280         the size of a pointer in bytes.
17282 2004-01-18  Roger Sayle  <roger@eyesopen.com>
17284         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
17285         live "next" variable, which could lead to an infinite loop.
17287 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
17289         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
17290         block.
17292         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17293         Check for NULL in the chain and remove repeated code.
17295 2004-01-18  Jan Hubicka  <jh@suse.cz>
17297         * coverage.c (checksum_string): Rename to ...
17298         (coverage_checksum_string): ... this one, Use crc32_string; recognize
17299         names containing random number and zero the number out in order to get
17300         match.
17302 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17304         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
17306 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17308         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
17309         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
17310         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
17311         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
17312         doc/trouble.texi: Remove trailing whitespace.
17314 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17316         PR target/7618
17317         * config/mips/mips.c: Include cfglayout.h.
17318         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
17319         (mips_unspec_offset_high): Add temporary register argument.
17320         (mips_load_call_address): New function, split out from...
17321         (mips_expand_call): ...here.
17322         (mips_output_cplocal): New function.
17323         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
17324         (mips_emit_loadgp): New function, split out from...
17325         (mips_expand_prologue): ...here.
17326         (mips_output_mi_thunk): New function.
17328 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
17330         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
17331         mcpu32): Remove redundant checks for implied target predefines.
17333 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
17335         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17336         Return type is unsigned int not int.
17337         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17338         Likewise.
17340 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17342         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
17343         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
17344         "GNU/Linux" and "Microsoft Windows" terminology.
17346 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17348         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
17349         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
17350         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
17351         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
17352         @smallexample instead of @example.
17354 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
17356         * objc/objc-act.c (build_objc_method_call): Use target
17357         hooks instead of macros to determine if ..._stret
17358         dispatchers should be used (NeXT runtime only).
17360 2004-01-17  Roger Sayle  <roger@eyesopen.com>
17362         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
17363         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
17365 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17367         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
17368         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
17369         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
17370         macros.
17371         * reload1.c (emit_reload_insns): Use them.
17372         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
17373         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
17374         for NULL PATTERN.
17376 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17378         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
17379         (final_scan_insn): Update to take an additional SEEN argument.  Emit
17380         a line note after the prologue.  Make static.
17381         (line_note_exists): Remove.
17382         (final): Don't initialize line_note_exists.  Update call to
17383         final_scan_insn.
17384         * output.h (final_scan_insn): Remove prologue.
17385         * function.c (set_insn_locators): Update comment.
17386         (thread_prologue_and_epilogue_insns): Add a comment.
17388 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
17390         PR target/10781
17391         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17392         Prototype.
17393         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17394         New function.
17395         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
17396         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
17397         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
17399 2004-01-17  Jan Hubicka  <jh@suse.cz>
17401         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
17402         commit.
17404         * toplev.c (HAVE_conditional_execution): Provide default.
17405         (rest_of_handle_reorder_blocks): For conditional_execution target
17406         update liveness once after all transformations
17407         (rest_of_compilation): Do crossjumping before ce3.
17409 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
17411         * alias.c (new_alias_set): Mark last_alias_set for PCH.
17412         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
17413         for PCH.
17414         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
17415         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
17416         (get_TOC_alias_set): Mark 'set' for PCH.
17418 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17420         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17421         even after reload, just don't remove the actual jump tables.
17423 2004-01-17  J. Brobecker  <brobecker@gnat.com>
17425         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
17426         Remove checks for is_ada() and TREE_UNSIGNED.
17427         (subrange_type_die): Emit a byte_size attribute if the subrange
17428         type size is different from the base type size.
17429         (modified_type_die): Replace call to is_ada_subrange_type() by
17430         call to is_subrange_type().
17432 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
17434         * config/sh/sh.c: Include ggc.h.
17436 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17438         * Makefile.in (MD5_H): New.
17439         (fold-const.o): Depend on md5.h.
17440         (dwarf2out.o): Likewise.
17441         (cppfiles.o): Likewise.
17442         * cppfiles.c: Include md5.h.
17443         (should_stack_file): Check against list read from PCH file.
17444         (struct pchf_data): New.
17445         (pchf): New variable.
17446         (struct pchf_adder_info): New.
17447         (pchf_adder): New.
17448         (pchf_save_compare): New.
17449         (_cpp_save_file_entries): New.
17450         (_cpp_read_file_entries): New.
17451         (struct pchf_compare_data): New.
17452         (pchf_compare): New.
17453         (check_file_against_entries): New.
17454         * cpphash.h (_cpp_save_file_entries): Prototype.
17455         (_cpp_read_file_entries): Prototype.
17456         * cpppch.c (cpp_write_pch_state): Write the list of headers.
17457         (cpp_read_state): Read the list of headers.
17459 2004-01-17  Jan Hubicka  <jh@suse.cz>
17461         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
17462         builtin_expect specially.
17463         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
17464         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
17465         * invoke.texi (max-inline-insns-single): Set to 100.
17466         (large-function-insns): Set to 3000.
17468 2004-01-16  Eric Christopher  <echristo@redhat.com>
17469             Chandrakala Chavva <cchavva@redhat.com>
17471         * cppcharset.c (one_iso88591_to_utf8): New function.
17472         (convert_iso88591_utf8): Ditto. Use.
17473         (conversion_tab): Use.
17474         (_cpp_input_to_utf8): New function.
17475         (_cpp_init_iconv_buffer): Ditto.
17476         (_cpp_close_iconv_buffer): Ditto.
17477         * cpphash.h: Prototype new functions.
17478         (cpp_buffer): Add input_cset_desc.
17479         * cppinit.c: Add input_charset default.
17480         * cpplib.c (cpp_push_buffer): Support init and
17481         close of iconv.
17482         * cpplib.h (cpp_options): Add input_charset.
17484 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17486         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
17487         * config/alpha/unicosmk.h: Remove a commented-out definition
17488         of ASM_OUTPUT_SECTION_NAME.
17489         * config/stormy16/stormy16.h: Likewise.
17491 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17493         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
17494         (alpha___extern_prefix_sys_stat): ... this.
17495         Apply to <sys/mount.h>, too.
17496         Tweak to match more variations.
17497         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
17499         * fixinc/inclhack.def (alpha___extern_prefix,
17500         alpha___extern_prefix_standards): New hacks to obey
17501         __PRAGMA_EXTERN_PREFIX.
17502         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
17503         test.
17504         * fixinc/tests/base/standards.h: Likewise.
17506         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
17507         variations.
17508         New testcase.
17509         * fixinc/tests/base/pthread.h: Handle it.
17511         * fixincl/inclhack.def (bad_lval): Sort file list.
17512         Add many missing files up to Tru64 UNIX V5.1B.
17513         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17514         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17515         order.
17517         * fixinc/fixincl.x: Regenerate.
17519 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
17521         * version.c (version_string): Change to 3.5.0.
17522         * doc/include/gcc-common.texi (version-GCC): Likewise.
17524 2004-01-16  Jan Hubicka  <jh@suse.cz>
17526         * i386.md (load_tp_di): Fix pasto.
17528         PR opt/13608
17529         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17531         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17532         pp_c_character_constant, pp_c_floating_constant,
17533         pp_c_additive_expression, pp_c_shift_expression,
17534         pp_c_equality_expression, pp_c_and_expression,
17535         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17536         pp_c_logical_and_expression): Remove inline modifier.
17537         * dwarf2out.c (get_AT): Likewise.
17538         * et-forest.c (et_splay): Likewise.
17539         * ra.h (ra_alloc, ra_calloc): Likewise
17541 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17543         * config/frv/frv-protos.h: Fix comment formatting.
17544         * config/frv/frv.c: Likewise.
17545         * config/frv/frv.h: Likewise.
17546         * config/frv/frv.md: Likewise.
17547         * config/frv/frvbegin.c: Likewise.
17548         * config/frv/frvend.c: Likewise.
17550 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17552         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17553         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17554         LINKER_DOES_NOT_WORK_WITH_DWARF2.
17555         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17557 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
17559         PR 11864
17560         * postreload.c (reload_cse_simplify_operands): Don't remove
17561         implicit extension from LOAD_EXTEND_OP.
17563 2004-01-16  Jan Hubicka  <jh@suse.cz>
17565         PR opt/11350
17566         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17567         after reload.
17568         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17569         rtl_try_redirect_by_replacing_branch): Likewise.
17571 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17573         PR pch/13689
17574         * alias.c (struct alias_set_entry): Mark for GC.
17575         (alias_sets): Make static, mark for GC.
17576         (record_alias_subset): Use GC to allocate alias structures.
17577         * varray.c (element): Make generic varrays GCed.
17579         PR pch/13361
17580         * c-typeck.c (constructor_asmspec): Delete.
17581         (struct initializer_stack): Delete field 'asmspec'.
17582         (start_init): Delete saving of asmspec.
17583         (finish_init): Don't update constructor_asmspec.
17584         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17585         * stmt.c (expand_asm): Duplicate strings from tree.
17586         (expand_asm_operands): Likewise.
17587         * tree.c (tree_size): Update computation of size of STRING_CST.
17588         (make_node): Don't make STRING_CST nodes.
17589         (build_string): Allocate string with tree node.
17590         * tree.def (STRING_CST): Update comment.
17591         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17592         (tree_string): Place contents of string in tree node.
17593         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17594         from tree.
17596         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17597         altivec operands.
17599 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17601         * c-common.h: Fix comment formatting.
17602         * c-cppbuiltin.c: Likewise.
17603         * c-pragma.c: Likewise.
17604         * calls.c: Likewise.
17605         * collect2.c: Likewise.
17606         * cppcharset.c: Likewise.
17607         * cpptrad.c: Likewise.
17608         * dbxout.c: Likewise.
17609         * defaults.h: Likewise.
17610         * dwarf2out.c: Likewise.
17611         * fold-const.c: Likewise.
17612         * genautomata.c: Likewise.
17613         * genconditions.c: Likewise.
17614         * genflags.c: Likewise.
17615         * gengtype.c: Likewise.
17616         * integrate.c: Likewise.
17617         * loop.c: Likewise.
17618         * predict.c: Likewise.
17619         * sdbout.c: Likewise.
17621 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17623         * config/ia64/ia64.md (*movti_internal): C output template
17624         extracted to ia64.c.
17625         (*movti_internal_reg): Delete.
17626         (reload_inti, reload_outti): Use the correct mode on operand 2
17627         in the first place, don't fix it up in the output template.
17628         (movtf, reload_ointf, reload_outtf): New expanders.
17629         (*movtf_internal): New define_insn_and_split.
17630         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17631         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17632         (ia64_split_tmode_move): New function, body mostly pulled
17633         from ia64.md:*movti_internal.
17634         (ia64_function_arg_words): New function, extracted common
17635         logic from ia64_function_arg et seq.
17636         (ia64_function_arg_offset): Likewise.  Handle correctly the
17637         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17638         (ia64_function_arg, ia64_function_arg_partial_nregs)
17639         (ia64_function_arg_advance): Use ia64_function_arg_words and
17640         ia64_function_arg_offset.
17641         (ia64_function_value): TCmode does not go in float regs.
17642         (ia64_secondary_reload_class): Also handle TFmode.
17643         * config/ia64/ia64-protos.h: Remove prototype for
17644         ia64_split_timode; add prototype for ia64_split_tmode_move.
17646 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17648         * Makefile.in (MAINT): Make it an immediate assignment.
17650 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17652         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17654 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17656         * config/h8300/coff.h: Replace Hitachi with Renesas.
17657         * config/h8300/elf.h: Likewise.
17658         * config/h8300/h8300-protos.h: Likewise.
17659         * config/h8300/h8300.c: Likewise.
17660         * config/h8300/h8300.h: Likewise.
17661         * config/h8300/h8300.md: Likewise.
17662         * config/h8300/lib1funcs.asm: Likewise.
17664 2004-01-15  Andrew Pinski  <apinski@apple.com>
17666         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17667         around it.
17669 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17671         * config/h8300/h8300.c (h8300_return_in_memory): New.
17672         (TARGET_STRUCT_VALUE_RTX): Likewise.
17673         (TARGET_RETURN_IN_MEMORY): Likewise.
17674         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17675         (RETURN_IN_MEMORY): Likewise.
17677 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17679         PR optimization/13375
17680         * gcse.c (handle_avail_expr): Just return if the source is not a
17681         single set.
17683 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17684             Daniel Jacobowitz  <drow@mvista.com>
17686         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17687         (EQUIV): Define.
17688         (ARM_FUNC_ALIAS): New macro.
17689         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17690         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17692 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17694         PR optimization/12372
17695         * calls.c (expand_call): Add call_fusage data for stack arguments in
17696         constant calls.
17698 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17700         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17701         (rs6000_elf_declare_function_name): Formatting.
17702         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17704 2004-01-15  Jan Hubicka  <jh@suse.cz>
17706         PR bootstrap/13692
17707         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17708         previous patch.
17710 2004-01-15  Richard Henderson  <rth@redhat.com>
17712         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17713         integer regs of the same call-savedness.
17715 2004-01-15  Andreas Schwab  <schwab@suse.de>
17717         PR bootstrap/13562
17718         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17719         status for NOTB/NOTW/NEGW methods.
17721 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17723         * doc/invoke.texi: Update dump file names.  Fix a typo.
17725 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17727         * builtins.c (expand_builtin_va_end): Don't use
17728         EXPAND_BUILTIN_VA_END.
17729         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17730         * config/d30v/d30v.h: Remove a commented-out definition of
17731         EXPAND_BUILTIN_VA_END.
17732         * config/stormy16/stormy16.h: Likewise.
17734 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17736         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17737         * targhooks.c (default_struct_value_rtx): Don't use
17738         STRUCT_VALUE_INCOMING_REGNUM.
17740 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17742         PR bootstrap/12744
17743         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17744         GENINSRC and not parsedir.  Define srcextra as a langhook.
17745         * configure: Regenerate.
17746         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17747         parsedir and delete all references throughout.  Conditionally define
17748         rule for srcextra dependent on GENINSRC.
17749         (stmp-docobjdir): Delete.
17750         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17751         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17752         and gengtype-yacc.h back to source directory.
17753         (maintainer-clean): Delete all parse files in source directory.
17754         (distclean): Delete generated files.
17756         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17757         (objc-parse.c, objc-parse.y): Don't use parsedir.
17758         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17759         directory if requested.
17760         (po-generated): Don't use parsedir.
17761         (objc.maintainer-clean): Delete above files from source directory.
17763 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17765         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17767 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17769         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17770         TARGET_RETURN_IN_MEMORY.
17772 2004-01-15  Jan Hubicka  <jh@suse.cz>
17774         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17775         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17776         functions accepting SSE arguments
17777         (function_arg): Warn only when asked to warn.
17778         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17780 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17782         * c-parse.in (stmts_and_decls): Make label at end of compound
17783         statement a hard error.
17785 2004-01-14  Jan Hubicka  <jh@suse.cz>
17787         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17788         * cgraph.h (cgraph_local_info): Sort fields by size; add
17789         redefined_extern_inline
17790         (cgraph_global_info): Sort fields by size.
17791         (cgraph_node): Likewise.
17792         * cgraphunit.c (cgraph_finalize_function): Se
17793         local.redefined_extern_inline on redefinition.
17794         (cgraph_analyze_function): Use it; fix formating.
17796 2004-01-14  Jan Hubicka  <jh@suse.cz>
17798         PR c++/10776
17799         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17800         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17801         bitmaps
17802         (cache_size): New variable
17803         (add_dependence): Update use; canonize early memory locations
17804         (sched_analyze_1): Likewise.
17805         (sched_analyze_2): Likewise.
17806         (init_dependency_caches): Initialize bitmaps.
17807         (free_dependency_caches): Free bitmaps
17809 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17811         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17812         targetm.calls.strict_argument_naming().
17813         * target.h: Likewise.
17815 2004-01-14  Richard Henderson  <rth@redhat.com>
17817         PR debug/13231
17818         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17819         instructions.
17821 2004-01-14  Richard Henderson  <rth@redhat.com>
17823         PR c++/12491
17824         * except.c (struct eh_region): Add u.fixup.resolved.
17825         (resolve_one_fixup_region): Split out from ...
17826         (resolve_fixup_regions): ... here.
17828 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17830         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17832 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17834         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17835         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17836         (STRUCT_VALUE): Remove.
17838 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17840         * system.h: Poison PROMOTED_MODE
17841         * integrate.c (expand_inline_function): Don't mention the
17842         PROMOTED_MODE.
17843         * loop.c (update_giv_derive): Same.
17844         * tree.h (DECL_RTL): Same.
17846 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17848         PR target/9365
17849         * sh.c (gen_block_redirect): Add special handling of RETURN.
17850         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17851         far branch target (i.e. it's a return).
17853 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17855         * regrename.c (find_oldest_value_reg): Fix a warning.
17857 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17859         PR bootstrap/12527
17860         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17861         Move linux-gas.h and linux-elf.h before aout.h.
17862         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17863         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17865 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17867         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17868         (CONST_INT, VOIDmode, ...).
17870 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17872         * regrename.c (find_oldest_value_reg): If the replacement uses
17873         multiple hard registers, check that all of them are in CLASS.
17875 2004-01-14  Jan Hubicka  <jh@suse.cz>
17877         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17878         impossible.
17880 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17882         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17884 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17886         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17887         Calculate always vrsave_mask if TARGET_ALTIVEC.
17888         (rs6000_emit_prologue): Emit code for vrsave
17889         only if TARGET_ALTIVEC_VRSAVE.
17890         (rs6000_emit_epilogue): Likewise.
17892 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17894         * config/sparc/sparc.md (tie_add32): Fix pasto.
17895         (tie_add64): Likewise.
17897 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17899         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17901 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17903         * config/iq2000/iq2000-protos.h: Fix comment formatting.
17904         * config/iq2000/iq2000.c: Likewise.
17905         * config/iq2000/iq2000.md: Likewise.
17907 2004-01-14  J. Brobecker  <brobecker@gnat.com>
17909         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17910         (subrange_type_die): Add handle for nameless subrange types.
17912 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17914         * config/h8300/h8300-protos.h: Replace do_movsi with
17915         h8300_expand_movsi.
17916         * config/h8300/h8300.c (do_movsi): Change to
17917         h8300_expand_movsi.
17918         * config/h8300/h8300.md (movsi): Replace do_movsi with
17919         h8300_expand_movsi.
17920         (movsf): Likewise.
17922 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17924         * config/h8300/h8300.c (dosize): Change to
17925         h8300_emit_stack_adjustment.  Update callers.
17927 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17929         * config/h8300/h8300.md (movstrictqi): Add an alternative with
17930         the source being post_inc.  Tighten the predicate for the
17931         destination to register_operand.
17932         (movstricthi): Likewise.
17934 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17936         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
17937         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
17938         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
17940 2004-01-14  Jan Hubicka  <jh@suse.cz>
17942         Partial fix PR c++/12850
17943         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
17944         at zero nest level.
17946 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
17948         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
17949         pseudo-register.
17951 2004-01-13  Devang Patel <dpatel@apple.com
17953         PR debug/7078
17954         * dbxout.c (dbxout_symbol_name): Emit mangled names for
17955         NAMESPACE_DECL memebers.
17957 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
17959         PR c++/12709
17960         * c-common.c (finish_fname_decls): Use the chain only if the
17961         tree is an expr_stmt.
17963 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
17965         * rtl.def: Add comment about new option in automata_option.
17967         * genautomata.c (PROGRESS_OPTION): New macro.
17968         (progress_flag): New global variable.
17969         (gen_automata_option): Process `progress'.
17970         (transform_insn_regexps, check_unit_distributions_to_automata,
17971         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
17972         expand_automata, write_automata): Print about the progress only if
17973         progress_flag.  Remove fflush.
17974         (initiate_automaton_gen): Process command line flag `-progress'.
17976         * doc/md.texi: Describe the new option.
17978 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17980         * cfg.c (dump_bb): Dump entry edges.
17982 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
17984         * arm.c (thumb_legitimate_address_p): Only allow constant pool
17985         references from SImode.
17986         * arm.md (thumb_movhi_insn): Don't allow minipool references.
17988 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17990         * system.h (TEXT_SECTION): Poison.
17991         * varasm.c (text_section): Don't use TEXT_SECTION.
17992         * config/sh/sh.c (sh_file_start): Fix a comment typo.
17993         * doc/tm.texi (TEXT_SECTION): Remove.
17995 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
17997         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17999 2004-01-12  James E Wilson  <wilson@specifixinc.com>
18001         * unwind-libunwind.c: Delete.
18003 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
18005         PR 13656
18006         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
18007         oldtype is set, set *newtypep or *oldtypep too.  Do not set
18008         them at the very end.
18009         (validate_proto_after_old_defn): Restructure for comprehensibility;
18010         make error messages clearer.
18012 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
18014         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
18015         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
18016         * varray.c: No need to prototype error.
18017         (varray_check_failed): Wrap long string onto two lines.
18018         (varray_underflow): New function.
18020 2004-01-13  Steven Bosscher  <stevenb@suse.de>
18022         PR c++/13376
18023         * function.h (struct function): Kill `name' field.
18024         (current_function_name): Make it an extern function.
18025         * function.c (current_function_name): New function.
18026         * graph.c: Update all uses of current_function_name.
18027         * gcse.c: Likewise.
18028         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
18029         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
18030         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
18031         instead of a strcmp with "main".
18033 2004-01-13  Jan Hubicka  <jh@suse.cz>
18035         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
18037         * cgraphunit.c (cgraph_optimize_function):  Always do
18038         optimize_inline_calls when there is always_inline callee.
18039         (cgraph_decide_inlining): Fix formating.
18040         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
18041         functions.
18042         (expand_call_inline): Likewise.
18043         * toplev.h (sorry): Fix prototype.
18045 2004-01-12  Roger Sayle  <roger@eyesopen.com>
18047         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
18048         conditional jumps that drop through to unconditional jumps or the
18049         end of the sequence.
18051 2004-01-13  Jan Hubicka  <jh@suse.cz>
18053         * alias.c (new_alias_set): Construct the alias_set varray.
18054         (init_alias_once): Don't do it here.
18056 2004-01-12  Marc Espie <espie@openbsd.org>
18058         * system.h: handle YYBYACC like YYBISON.
18060 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
18062         PR target/10847
18063         * config.gcc: No longer includes conflicting header sparc/sol2.h when
18064         building on sparc64-*-openbsd*.
18066 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
18068         PR debug/13539
18069         * dbxout.c (dbxout_type): Protected inheritance is not
18070         private but protected.
18072 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18074         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
18076 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
18078         PR optimization/12508.
18079         * combine.c (try_combine): Remove a dead set in a parallel
18080         even if its destination is a subreg.
18082         Revert:
18083         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
18084         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
18085         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
18087 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
18089         * real.c: Update copyright date.
18090         * emit-rtl.c: Likewise.
18091         * rtl.h: Likewise.
18092         * dwarf2out.c: Likewise.
18093         * config/rs6000/darwin-ldouble.c: Likewise.
18094         * config/rs6000/rs6000.md: Likewise.
18096 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18098         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
18099         TFmode to SImode libfuncs.
18101 2004-01-12  Roger Sayle  <roger@eyesopen.com>
18103         PR middle-end/11397
18104         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
18106 2004-01-12  Jan Hubicka  <jh@suse.cz>
18108         PR opt/12826
18109         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
18110         stored.
18112         PR opt/12863
18113         * cfgcleanup.c (label_is_jump_target_p): Move to...
18114         * rtlanal.c (label_is_jump_target_p): ... here.
18115         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
18116         edges unified with branch edges.
18118 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
18120         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
18121         high word of an integral CONST_DOUBLE.
18123 2004-01-12  Paul Brook  <paul@codesourcery.com>
18125         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
18127 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
18129         PR target/13585
18130         * sh-protos.h (check_use_sfunc_addr): Declare.
18131         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
18132         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
18134 2004-01-12  Jan Hubicka  <jh@suse.cz>
18136         * alias.c:  Invlude varray.h
18137         (alias_sets): Turn into varray.
18138         (get_alias_set_entry): Use VARRAY; mark inline.
18139         (mems_in_disjoint_alias_sets_p): Mark inline.
18140         (record_alias_subset): Use varray.
18141         (init_alias_once): Initialize varray.
18142         (new_alias_set): Grow array.
18143         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
18145 2004-01-12  Jan Hubicka  <jh@suse.cz>
18147         Partial fix for PR opt/10776 II
18148         * cselib.c: Include params.h
18149         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
18150         locations.
18151         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
18152         * Makefile.in (cselib.o): Depend on params.h
18154 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18156         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
18157         simplify_unary_operation if the operand has a known mode.
18159 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
18161         PR target/13534
18162         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
18163         predicate to handle 'ld' conform addresses.
18164         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
18165         contraint.
18166         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
18167         are memory contraints.
18168         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
18169         New prototype.
18170         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
18171         Change 'o' to 'Y' constraint.
18172         (*movdf_softfloat64): Ditto.
18174 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
18176         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
18177         brace-enclosed syntax in all C output statements.
18179 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18181         PR target/13401
18182         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
18183         Objective-C language type value is 14.
18185 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
18187         PR c/12148
18188         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
18189         `int' in a number of places to make sure we always have a SImode
18190         and not a HImode.  Add a 'L' suffix to a number of constants.
18192 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18194         * pa.c: Don't include obstack.h.
18196         * pa.md: Correct constraint in pattern for loading PIC label address.
18198 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
18200         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
18201          before defining.
18203 2004-01-11  Steven Bosscher  <stevenb@suse.de>
18205         PR fortran/9972
18206         * toplev.c (rest_of_handle_inline): Also consider functions
18207         for deferral if the language is GNU F77.
18209 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
18211         * c-decl.c (diagnose_arglist_conflict): Add missing space to
18212         diagnostic messages.
18214 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
18216         PR middle-end/13392
18217         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
18218         to drop through label.  Don't fall back to SCC even when conditional
18219         jump has not been found.
18221 2004-01-11  Jan Hubicka  <jh@suse.cz>
18223         * invoke.texi: Fix syntax error in previous patch.
18225         Partial fix for PR opt/10776
18226         * Makefile.in (reload.o): Include param.h
18227         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
18228         * reload.c: Include params.h.
18229         (find_equiv_reg): Work limiting check.
18230         * invoke.texi: Document.
18232 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18234         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
18235         out-of-bounds accesses to string constants.  Simplify mips16
18236         case accordingly.
18238 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18240         PR optimization/13469
18241         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
18242         reload_cse_regs (-fnon-call-exceptions only).
18244 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
18246         * config/mcore/lib1.asm: Fix comment formatting.
18247         * config/mcore/mcore-elf.h: Likewise.
18248         * config/mcore/mcore.c: Likewise.
18249         * config/mcore/mcore.h: Likewise.
18250         * config/mcore/mcore.md: Likewise.
18252 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18254         * c-decl.c (duplicate_decls): Break apart into...
18255         (diagnose_arglist_conflict, validate_proto_after_old_defn)
18256         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
18257         ... these new functions.  Restructure for comprehensibility.
18258         Remove various archaic special cases.  Always report the
18259         location of the previous declaration when a diagnostic is issued.
18260         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
18261         (match_builtin_function_types): Delete unnecessary forward declaration.
18263 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18265         * genautomata.c (make_automaton, NDFA_to_DFA):
18266         Print progress bars with '.' characters instead of '*'.
18267         (build_automaton): Change notes to match.
18269 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18271         * config/m32r/m32r.md: Use define_constants for unspec and
18272         unspec_volatile.
18274 2004-01-10  Jan Hubicka  <jh@suse.cz>
18276         PR opt/11635
18277         * expr.c (expand_expr_real):  More curefully expand union casts.
18279 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18281         * config/m32r/m32r.md (flush_icache): Use 1 for
18282         unspec_volatile.
18284 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
18285             James E Wilson  <wilson@specifixinc.com>
18287         PR debug/12860
18288         * dbxout.c (dbxout_symbol): Remove initialization of
18289         current_sym_code, current_sym_value, and current_sym_addr.
18290         (dbxout_symbol_location): Same.
18291         (dbxout_prepare_symbol): Zero current_sym_code,
18292         current_sym_value, and current_sym_addr.
18294 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
18296         * tree.c (get_unwidened): Reorder conditions so that the null pointer
18297         check is done first.
18299 2004-01-09  Eric Christopher  <echristo@redhat.com>
18301         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
18302         if we're running mark_constant_function.
18304 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
18306         PR target/12561
18307         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
18309 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
18311         PR debug/11231
18312         * dbxout.c (dbxout_type_fields): Return if any item is
18313         error_mark_node or the type is error_mark_node.
18315 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
18317         * config/rs6000/darwin-ldouble.c: Add big comment explaining
18318         exactly what is expected as a 'long double'.
18319         (_xlqadd): When a value to be returned is representable as a
18320         'double', just return it directly, do not construct it using a union.
18321         Also, correct final fixup.
18322         (_xlqmul): Likewise.
18323         (_xlqdiv): Likewise.
18324         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
18326         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
18328 2004-01-09  Richard Henderson  <rth@redhat.com>
18330         * recog.c (constrain_operands): Validate mem operands.
18332 2004-01-09   James E Wilson  <wilson@specifixinc.com>
18334         * gcc.c (init_spec): Remove -lunwind from shared case.
18335         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
18337 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
18339         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
18340         * configure: Regenerate
18342 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
18344         PR c/11234
18345         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
18346         between function and object pointers.
18347         (digest_init): When comparing a pointer to function type to the
18348         target type, only apply TREE_TYPE once to the pointer to function
18349         type.
18350         * except.c (for_each_eh_label_1): Treat data as a pointer to a
18351         function pointer rather than casting it to a function pointer.
18352         (for_each_eh_label): Update caller.
18353         * recog.h (struct insn_data): Use a struct or union for output.
18354         * genoutput.c (output_insn_data): Update.
18355         * final.c (get_insn_template): Update.
18357 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
18359         * expr.h (expand_expr): Make it a macro, not a function.
18360         (expand_expr_real): New function.
18361         * expr.c (store_expr): Adjust logic for deciding whether or not to
18362         copy the value returned by expand_expr.
18363         (expand_expr): Rename to ...
18364         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
18365         calls to language hooks.
18366         * c-common.h (c_expand_expr): Adjust prototype.
18367         * c-common.c (c_expand_expr): Add alt_rtl parameter.
18368         * langhooks-def.h (lhd_expand_expr): Change prototype.
18369         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
18370         * langhooks.h (lang_hooks): Change type of expand_expr.
18371         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
18372         (last_expr_alt_rtl): Likewise.
18373         (expand_expr_stmt_value): Set last_expr_alt_rtl.
18374         (clear_last_expr): Clear it.
18375         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
18376         (expand_end_bindings): Save and restor last_expr_alt_rtl.
18377         * tree.def (RTL_EXPR): Give it an additional operand.
18378         * tree.h (RTL_EXPR_ALT_RTL): New macro.
18380 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18382         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
18383         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
18385 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18387         PR target/13380.
18388         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
18389         or (ne:SI (reg:CC 17) (const_int 0)).
18390         Be specific about modes wherever possible.
18392 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18394         * config/m32r/m32r.c (m32r_expand_block_move): Call
18395         gen_movestrsi_internal with two more arguments.
18396         (m32r_output_block_move): Adjust operand numbers.
18397         Properly update the source and destination pointers.
18398         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
18399         'r+'.  Change the set detinations to match_operand.
18401 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18403         * final.c (FIRST_INSN_ADDRESS): Remove.
18404         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
18405         * system.h (FIRST_INSN_ADDRESS): Poison.
18406         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
18407         * config/m32r/m32r-protos.h: Remove the prototype for
18408         m32r_first_insn_address.
18409         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
18410         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
18411         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
18413 2004-01-09  J. Brobecker  <brobecker@gnat.com>
18415         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
18416         we just created.
18417         (is_ada_subrange_type): DIEs for enumeration subtypes should be
18418         emitted as subrange types too.
18419         (subrange_type_die): Add handling of enumeration subtypes.
18421 2004-01-08  Richard Henderson  <rth@redhat.com>
18423         PR opt/12441
18424         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
18425         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
18426         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
18427         (ix86_address_cost): Be prepared for SUBREGed registers.
18428         (legitimate_address_p): Accept SUBREGed registers.
18430 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
18432         * Makefile.in: Rename configure.in to configure.ac
18433         * doc/sourcebuild.texi: Likewise.
18434         * configure: Regenerate.
18435         * config.in: Regenerate.
18437 2004-01-08  Stuart Hastings  <stuart@apple.com>
18439         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
18441 2004-01-08  Jan Hubicka  <jh@suse.cz>
18443         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
18445 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
18447         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
18448         (UNSPEC_FIX_TRUNC_TF): New constant.
18449         (movtf_internal): Make splitter active only when insn is active.
18450         (extenddftf2): Rewrite to properly load zero into low part.
18451         (extenddftf2_internal): New.
18452         (extendsftf2): Rewrite.
18453         (truncdftf2): Correct length.
18454         (floatditf2): Delete.
18455         (fix_trunc_helper): New.
18456         (fix_trunctfdi2): Use fix_trunc_helper.
18457         (fix_trunctfsi2): Likewise.fix_trunc
18458         (fix_trunctfsi2_internal): New.
18460         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
18461         addresses are legitimate on Darwin even when flag_pic.
18462         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
18463         non-offsettable addresses for loads of TFmode constants.
18465 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18467         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
18468         variables in the appropriate bss section.
18470 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
18472         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
18473         target_flags has MASK_POWERPC64 when -m64.
18474         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
18475         to 620, 630, power3, power4 and rs64a entries.
18476         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
18478 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
18480         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
18481         floating-point constants.
18483 2004-01-08  J. Brobecker  <brobecker@gnat.com>
18485         * dwarf2out.c (subrange_type_die): Add context_die parameter.
18486         Create the subrange_type DIE using the given context DIE.
18487         (modified_type_die): Update call to subrange_type_die.
18489 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
18491         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
18492         Add multiple-include guard.
18494 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
18496         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
18497         all vector constant loadable by vsplt*.
18498         (output_vec_const_move): Likewise.
18500 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18502         PR c/6024
18503         * c-typeck.c (comptypes): Only treat enumerated types in the same
18504         translation unit as compatible with each other when they are the
18505         same type.
18506         * doc/extend.texi: Update.
18508 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18510         PR c/12165
18511         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18512         array type from the array element type.
18514 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
18516         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18517         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18518         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18519         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18520         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18522 2004-01-06  Eric Christopher  <echristo@redhat.com>
18524         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18525         (DWARF2_DEBUGGING_INFO): Define.
18526         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18527         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18528         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18529         for irix as.
18530         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18531         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18532         * config/mips/iris5gas.h: Ditto.
18533         (DBX_DEBUGGING_INFO): Remove.
18534         (DWARF2_DEBUGGING_INFO): Ditto.
18535         (MIPS_DEBUGGING_INFO): Ditto.
18536         (PREFERRED_DEBUGGING_TYPE): Ditto.
18537         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18538         (PREFERRED_DEBUGGING_TYPE): Ditto.
18539         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18540         * config/mips/elf64.h: Ditto.
18542 2004-01-06  Jan Hubicka  <jh@suse.cz>
18544         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18545         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18547 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
18549         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18550         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18551         * config/rs6000/darwin-ldouble.c: New.
18553         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18554         for constants.
18555         (constant_subword): Delete.
18556         * rtl.h (constant_subword): Delete prototype.
18557         (immed_double_const): Is not in varasm.c.
18558         * simplify-rtx.c (simplify_immed_subreg): New.
18559         (simplify_subreg): Use simplify_immed_subreg.
18561         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18562         than trying to generate RTL directly.
18563         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18564         RTL directly.
18566         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18568 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18570         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18571         function into a separate macro.
18572         (read_only_data_section): Add void argument.
18573         (private_data_section): Same.
18574         (read_only_private_data_section): Same.
18575         (toc_section): Same.
18577 2004-01-06  Jan Hubicka  <jh@suse.cz>
18579         * invoke.texi:  Remove typo in last change.
18581         PR target/10301
18582         * config.gcc: Accept opteron and athlon-64 as variants
18583         of k8.
18584         * i386.c (override_options): Likewise.
18585         * invoke.texi (i386 -mtune): Expand documentation.
18587 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18589         * alias.c: Fix comment typos.
18590         * builtins.c: Likewise.
18591         * cfg.c: Likewise.
18592         * df.c: Likewise.
18593         * dominance.c: Likewise.
18594         * dwarf2out.c: Likewise.
18595         * emit-rtl.c: Likewise.
18596         * expr.c: Likewise.
18597         * final.c: Likewise.
18598         * fold-const.c: Likewise.
18599         * gcse.c: Likewise.
18600         * genattrtab.c: Likewise.
18601         * genrecog.c: Likewise.
18602         * gensupport.c: Likewise.
18603         * ggc-zone.c: Likewise.
18604         * integrate.c: Likewise.
18605         * local-alloc.c: Likewise.
18606         * loop.c: Likewise.
18607         * recog.c: Likewise.
18608         * regmove.c: Likewise.
18609         * reg-stack.c: Likewise.
18610         * reorg.c: Likewise.
18611         * rtlanal.c: Likewise.
18612         * rtl.h: Likewise.
18613         * sched-ebb.c: Likewise.
18614         * simplify-rtx.c: Likewise.
18615         * toplev.c: Likewise.
18616         * varasm.c: Likewise.
18618 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18620         * doc/install.texi: Fix typos.
18621         * doc/invoke.texi: Likewise.
18622         * doc/md.texi: Likewise.
18624 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18626         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18628 2004-01-06  Jan Hubicka  <jh@suse.cz>
18630         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18631         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18632         of MMX_REGPARM.
18633         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18634         add MMX_REGPARM.
18635         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18636         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18637         (MMX_REGPARM_MAX): Similarly for -mmmx.
18639 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18641         * config/sh/linux.h: Fix comment formatting.
18642         * config/sh/netbsd-elf.h: Likewise.
18643         * config/sh/sh.c: Likewise.
18644         * config/sh/sh.h: Likewise.
18645         * config/sh/vxworks.h: Likewise.
18647 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18649         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18650         * toplev.c (output_file_directive): Don't use
18651         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18653 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18655         * toplev.c: Fix broken checkin of 2003-12-30.
18657 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18659         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18660         (USING_MMAP): We don't support non-mmap.
18661         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18662         large objects.
18663         (struct page_entry): Remove bytes_free.
18664         (struct page_table_chain): Remove.
18665         (struct globals): Remove page_table member.
18666         (loookup_page_table_entry): Function deleted.
18667         (set_page_table_entry): Ditto.
18668         (ggc_allocated_p): No longer need page table lookups.
18669         (ggc_marked_p): Ditto.
18670         (alloc_small_page): Don't care about bytes_free anymore.
18671         (alloc_large_page): Round up size.
18672         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18673         their size the new way.
18674         Remove page table lookups and setting.
18675         (ggc_get_size): Calculate large object size the new way.
18676         (sweep_pages): Redo to account for fact that we no longer have
18677         bytes_free.
18678         (ggc_collect): No longer need to reincrement bytes_free.
18679         (ggc_pch_alloc_object): Handle new large objects properly.
18680         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18682 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18684         * doc/invoke.texi: Remove a page break.
18686 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18688         * config/avr/avr.c (avr_output_function_prologue): Remove an
18689         extra pair of curly braces.
18691 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18693         * config/mn10300/mn10300.c: Fix comment formatting.
18694         * config/mn10300/mn10300.h: Likewise.
18696 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18698         * tree.h: Update documentation on nothrow_flag.
18699         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18700         types.
18702 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18704         * doc/invoke.texi: Remove traces of dead ports.
18706 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18708         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18709         option.
18711 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18713         PR target/12945
18714         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18715         counter labels.
18716         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18717         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18718         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18719         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18720         (mips_symbol_insns): Don't trust the local/global classification.
18721         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18722         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18723         -mno-explicit-relocs.
18724         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18725         between local and global symbols.
18727 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18729         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18730         (mips_preferred_reload_class): Declare.
18731         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18732         (EXTRA_CONSTRAINT): Update accordingly.
18733         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18734         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18735         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18736         mips_dangerous_for_la25_p.
18737         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18738         if mips_dangerous_for_la25_p.
18740 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18742         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18743         warning.
18745 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18747         * configure.ac: Use AC_PROG_CPP_WERROR.
18748         * configure: Regenerate.
18750 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18752         * .cvsignore: Add autom4te.cache.
18754 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18756         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18757         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18758         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18759         then architecture options, then ABI options.  General rewording.
18761 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18763         PR c/3414
18764         * doc/extend.texi: Clarify definition of malloc attribute.
18766 2004-01-04  Jan Hubicka  <jh@suse.cz>
18768         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18769         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18770         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18771         (cgraph_inline_p): Add extra argument reason.
18772         * cgraphunit.c: Minor formating fixes.
18773         cgraph_first_inlined_callee): New functions.
18774         (record_call_1): Record builtins too.
18775         (cgraph_analyze_function): Update inline_failed messages.
18776         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18777         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18778         (cgraph_check_inline_limits): Likewise; Add argument reason.
18779         (cgraph_set_inline_failed): New static function.
18780         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18781         reasons.
18782         (cgraph_inline_p): Add new argument reason.
18783         * tree-inline.c (expand_call_inline):  Update warning.
18785 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18787         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18788         with modern equivalents.
18789         * configure: Regenerate.
18791         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18792         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18793         * configure: Regenerate.
18795         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18797         * configure.in: Rename to configure.ac.
18798         * configure.ac: Renamed from configure.in; make minimum necessary
18799         changes for autoconf 2.5x.
18800         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18801         * configure: Regenerate with autoconf 2.57.
18803 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18805         * config/mips/linux.h: Fix comment formatting.
18806         * config/mips/mips.c: Likewise.
18807         * config/mips/mips.h: Likewise.
18808         * config/mips/mips.md: Likewise.
18809         * config/mips/netbsd.h: Likewise.
18810         * config/mips/windiss.h: Likewise.
18812 2004-01-02  Richard Henderson  <rth@redhat.com>
18814         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18815         for sse and 387; add suppression for mmx.
18817 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18819         * loop.c (loop_optimize): Free all loops_info's mems.
18821         * c-typeck.c (finish_init): Free spelling_base before
18822         setting it again.
18824         * cfgloop.c (flow_loops_find): Always free the sbitmap
18825         headers.
18827         * predict.c (estimate_probability): Free bbs after being
18828         done with it.
18830 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18832         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18833         const_8bit_operand and call_address_operand.
18835 2004-01-02  Jan Hubicka  <jh@suse.cz>
18837         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18838         when there is nothing to inline but warnings are requested.
18839         (cgraph_decide_inlining):  Fix memory leak.
18841 2004-01-02  Jan Hubicka  <jh@suse.cz>
18843         * expr.c (store_constructor):  Fix pasto in previous patch.
18845 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18847         * config/i386/cygming.h: Fix comment formatting.
18848         * config/i386/djgpp.h: Likewise.
18849         * config/i386/gthr-win32.c: Likewise.
18850         * config/i386/i386-interix.h: Likewise.
18851         * config/i386/i386.c: Likewise.
18852         * config/i386/i386.h: Likewise.
18853         * config/i386/openbsd.h: Likewise.
18854         * config/i386/winnt.c: Likewise.
18855         * config/i386/xm-mingw32.h: Likewise.
18857 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18859         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18860         copyright and last modification dates.
18862 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18864         * doc/install.texi (Specific): Mention x86_64.
18866 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18868         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18869         Call force_operand on plus_constant result.
18871 2004-01-01  Jan Hubicka  <jh@suse.cz>
18873         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18874         * expr.c (store_constructor): Use vec_init pattern.
18875         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18876         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18877         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18878         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18879         New patterns.
18880         (sse2_unpc?pd): Fix pattern.
18881         (sse2_movlpd): Kill.
18882         (sse2_movsd): Deal with movlpd too.
18883         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18884         (ix86_expand_vector_init): New.
18885         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18886         * md.texi (vec_set, vec_extract): Document
18888 2003-12-31  Jan Hubicka  <jh@suse.cz>
18890         PR opt/13473
18891         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18892         ASM input operands
18894         PR opt/12617
18895         * toplev.c (dump_file_index): Reorder ce3 and bbro.
18896         (dump_file): Likewise.
18897         (rest_of_compilation): Likewise.
18899         PR debug/13367
18900         * cgraph.c (cgraph_function_possibly_inlined):  Even with
18901         flag_really_no_inline we inline always_inline functions.
18902         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18903         for non-always_inline functions when there is flag_really_no_inline.
18904         (cgraph_decide_inlining): Limit work done when not inlining.
18905         (cgraph_decide_inlining_incrementally): Likewise.
18906         (cgraph_optimize_function): Check whether something got inlined.
18907         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18908         extern inline functions when not inlining.
18910         * opts.c (decode_options):  Disable crossjumping at -O1
18911         * invoke.texi (-O1): Document change.
18913 See ChangeLog.10 for earlier changes.