re PR c++/16015 (xfailed g++.dg/ext/stmtexpr1.C)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2004-06-17  Jason Merrill  <jason@redhat.com>
2
3         PR c++/16015
4         * gimplify.c (gimplify_target_expr): Handle void initializer.
5         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
6         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
7         and AGGR_INIT_EXPR.
8
9 2004-06-17  Roger Sayle  <roger@eyesopen.com>
10
11         * fold-const.c (fold_relational_const): Use constant_boolean_node.
12
13 2004-06-17  Jan Hubicka  <jh@suse.cz>
14
15         PR target/15433
16         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
17         operand numbering in the output template.
18         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
19
20 2004-06-17  Jan Hubicka  <jh@suse.cz>
21
22         * except.c (can_throw_internal): Recognize RESX expresisons.
23
24 2004-06-17  Jan Hubicka  <jh@suse.cz>
25
26         * cfgbuild.c (make_edges): Do not use label_value_list.
27         (find_basic_blocks_1): Do not collect label_value_list.
28         (find_sub_basic_blocks): Update call of make_edges.
29
30 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
31
32         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
33         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
34         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
35         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
36         (get_v_may_def_result_ptr):  Return a def_operand_p.
37         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
38         (get_v_must_def_op_ptr):  Return a def_operand_p.
39         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
40         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
41         (phi_element_for_edge):  Remove.
42         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
43         (propagate_tree_value):  Add new prototype.
44         (phi_element_for_edge):  Remove prototype.
45         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
46         (prepare_operand_for_rename):  Split into two functions.
47         (prepare_use_operand_for_rename):  Prepare use operands.
48         (prepare_def_operand_for_rename):  Prepare def operands.
49         (rewrite_stmt):  Use new operand types.
50         (rewrite_operand):  Use new operand types, change parameter type.
51         * tree-outof-ssa.c (replace_variable):  Split into two functions.
52         (replace_use_variable):  Rewrite uses.
53         (replace_def_variable):  Rewrite defs.
54         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
55         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
56         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
57         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
58         (ccp_fold, replace_uses_in):  Use new operand types.
59         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
60         and no longer set the value, change parameter type.
61         (replace_exp_1):  Use new operand types.
62         (propagate_value):  Change parameter type, use new operand types.
63         (propagate_tree_value):  Propagate_value without SSA operands.
64         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
65         (cprop_into_successor_phis):  Use new operand types.
66         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
67         (eliminate_redundant_computations):  Use new operand types.
68         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
69         (fix_stmt_v_may_defs):  Use new operand_types.
70         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
71         (build_tree_conflict_graph):  Use new operand_types.
72         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
73         * tree-ssa-operands.c (struct freelist_d):  Remove.
74         (check_optype_freelist, add_optype_freelist):  Remove.
75         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
76         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
77         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
78         Call ggc_free instead of add_optype_freelist.
79         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
80         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
81         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
82         (struct use_optype_d):  Change underlying type.
83         (def_operand_p, use_operand_p):  New types for pointers to operands.
84         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP, 
85         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
86         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand 
87         pointer types.
88         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
89         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
90         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
91         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
92         PHI result as an operand.
93         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
94         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
95         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
96         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
97         PHI_ARG_DEF_FROM_EDGE.
98         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
99         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
100
101 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
102
103         PR tree-optimization/15991
104         * tree-cfg.c (tree_block_label): Export.
105         * tree-flow-inline.h (bsi_after_labels): New function.
106         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
107         * tree-ssa.c (propagate_into_addr): New function.
108         (replace_immediate_uses): Handle propagation of pointer constants.
109         (raise_value): Do not restrict propagation of pointer constants.
110         * tree-ssanames.c (duplicate_ssa_name): New function.
111         * tree.h (duplicate_ssa_name): Declare.
112
113 2004-06-17  David Ayers  <d.ayers@inode.at>
114  
115         * c-parse.in: Unify Objective-C token names.
116
117 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
118
119         Bug 14610
120         * Makefile.in (min-insn-modes.o): Correct dependencies.
121         * real.c (encode_ieee_extended, decode_ieee_extended): Always
122         produce/consume 12-byte little-endian Intel format.
123         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
124         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
125         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
126         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
127         New functions which convert between 12-byte little-endian Intel
128         format and the desired format.
129         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
130         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
131         Update.
132
133 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
134
135         * expmed.c (expand_mult_const): In sanity check, compare only
136         the bits of val and val_so_far that are significant in the
137         result mode.
138
139 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
140
141         * tree-ssa-pre.c:  Update comments.
142         (val_expr_pair_eq): Factor code from here.
143         (expr_pred_trans_eq): and here.
144         (expressions_equal_p): To here.
145         (print_value_set): Print value for expression.
146         (phi_trans_lookup): Rename some variables.
147         (lookup): Ditto.
148         (value_exists_in_set_bitmap): Ditto.
149         (value_remove_from_set_bitmap): Ditto.
150         (value_insert_into_set_bitmap): Ditto.
151
152 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
153
154         * config/s390/s390-modes.def (CCL3mode): New machine mode.
155         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
156         (s390_alc_comparison, s390_slb_comparison): Likewise.
157         (s390_branch_condition_mask): Likewise.
158         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
159         ("*subsi3_cc2", "*subsi3_cconly2"): New.
160
161         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
162         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
163         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
164         Handle SIGN_EXTEND and ZERO_EXTEND.
165
166         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
167         * config/s390/s390.c (s390_expand_addcc): New function.
168         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
169         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
170         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
171
172 2004-06-17  Ben Elliston  <bje@au.ibm.com>
173
174         * tree-alias-common.c: Add whitespace.
175         * tree-inline.c: Correct comment about this file's purpose.
176         * tree-optimize.c: Likewise.
177         * tree-tailcall.c: Likewise.
178
179         * tree-alias-ander.h: Add standard top-of-file comment.
180         * tree-alias-common.h: Likewise.
181         * tree-alias-type.h: Likewise.
182
183 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
184
185         * tree-ssa-pre.c (compute_avail): Value number uses as well.
186         Strip useless type conversions.
187         Casts have to be treated slightly different than normal unaries.
188
189 2004-06-16  Richard Henderson  <rth@redhat.com>
190
191         * c-common.def (COMPOUND_STMT): Remove.
192         * c-common.c (finish_fname_decls): Don't look through it.
193         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
194         * c-common.h (COMPOUND_BODY): Remove.
195         (c_common_stmt_codes): Remove COMPOUND_STMT.
196         * c-dump.c (c_dump_tree): Likewise.
197         * c-gimplify.c (c_gimplify_stmt): Likewise.
198         * c-pretty-print.c (pp_c_statement): Likewise.
199         * tree.h (DECL_SAVED_TREE): Update commentary.
200         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
201         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
202         (GOTO_EXPR): Rename from GOTO_STMT.
203         (GOTO_FAKE_P): Remove.
204         (COMPOUND_STMT): Remove.
205         (HANDLER): Update wrt COMPOUND_STMT.
206         (STMT_EXPR): Likewise.
207         (LABEL_EXPR): Rename from LABEL_STMT.
208         (SCOPE_STMT): Remove.
209         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
210         through COMPOUND_STMT.
211
212 2004-06-16  Richard Henderson  <rth@redhat.com>
213
214         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
215         c_finish_while_stmt_cond): Remove decls.
216         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
217         * c-typeck.c (c_begin_if_stmt): Return void.
218         (c_begin_else): Tidy.  Save stmt_count.
219         * c-tree.h (c_begin_if_stmt): Update decl.
220
221         * objc/objc-act.c (objc_build_try_enter_fragment,
222         objc_build_extract_fragment, objc_build_try_epilogue,
223         objc_build_catch_stmt, objc_build_catch_epilogue,
224         objc_build_finally_prologue, objc_build_finally_epilogue): Update
225         for if builder function changes.
226
227 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
228
229         * config/s390/s390.c (struct machine_function):  New member
230         last_restore_gpr.
231         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
232         Do not modify machine->save_return_addr_p or regs_ever_live.
233         Fill in machine->last_restore_gpr.
234         (s390_optimize_prolog): Use s390_frame_info to compute registers
235         to save/restore, remove duplicated code.
236         (s390_arg_frame_offset): Use s390_frame_info to compute frame
237         size, remove duplicated code.
238         (s390_emit_prologue): Adapt s390_frame_info call.  Update
239         machine->save_return_addr_p and regs_ever_live.
240         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
241         machine->last_save_gpr.
242
243 2004-06-16  Richard Henderson  <rth@redhat.com>
244
245         * c-parse.in (if_stmt_locus): Remove.
246         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
247         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
248         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
249         empty_locus.  Add stmt_count, saw_else.
250         (c_begin_if_stmt): Push if_stack here.
251         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
252         (c_finish_then, c_finish_else): Record empty_locus.
253         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
254         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
255         if or else body.
256         * c-tree.h: Update prototypes.
257
258 2004-06-16  Steven Bosscher  <stevenb@suse.de>
259
260         * tree.h (PHI_CHAIN): New.
261         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
262         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
263         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
264         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
265         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
266         when traversing a list of PHI_NODEs.
267
268 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
269
270         PR target/13292
271         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
272         on -msoft-float.
273         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
274         68040 and soft-float.
275         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
276         in the TARGET_68040_ONLY case.
277
278 2004-06-16 Peter Barada  <peter@the-baradas.com>
279
280         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
281         (movsi_cf): Make named, don't match TARGET_CFV4.
282         (pushexthisi_const): Use mov3q if possible.
283         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
284         to special case mvz.w for ColdFire V4.
285         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
286         to special case mvz.b for ColdFire V4.
287         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
288         divide.
289         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
290         * config/m68k/m68k.c(valid_mov3q_const):  New function.
291         (const_method): SWAP is valid for ColdFire.
292         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
293         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
294
295 2004-06-16  Richard Henderson  <rth@redhat.com>
296
297         * c-common.def (CASE_LABEL): Remove.
298         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
299         (match_case_to_enum_1): Likewise.
300         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
301         * c-dump.c (c_dump_tree): Likewise.
302         * c-gimplify.c (c_gimplify_stmt): Likewise.
303         * c-pretty-print.c (pp_c_statement): Likewise.
304         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
305         * tree.h (CASE_LOW): Update commentary.
306
307 2004-06-16  Richard Henderson  <rth@redhat.com>
308
309         * c-common.def (ASM_STMT): Remove.
310         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
311         * c-dump.c (c_dump_tree): Likewise.
312         * c-gimplify.c (c_gimplify_stmt): Likewise.
313         * c-pretty-print.c (pp_c_statement): Likewise.
314         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
315         * tree.h: Fix commentary.
316
317 2004-06-16  Richard Henderson  <rth@redhat.com>
318
319         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
320         * c-common.c (c_add_case_label): Use LABEL_EXPR.
321         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
322         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
323         * c-dump.c (c_dump_tree): Likewise.
324         * c-gimplify.c (c_gimplify_stmt): Likewise.
325         * c-pretty-print.c (pp_c_statement): Likewise.
326         * c-parse.in (stmt): Use GOTO_EXPR.
327         (label): Use LABEL_EXPR.
328         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
329         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
330
331 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
332
333         * cfgcleanup.c (try_simplify_condjump): Update test to make
334         sure we have a conditional branch around am unconditional branch.
335
336 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
337
338         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
339
340 2004-06-16  Dale Johannesen  <dalej@apple.com>
341
342         * loop.c (loop_givs_reduce): Avoid miscompilation of
343         loops entered at bottom.
344
345 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
346
347         * cfglayout.c (fixup_reorder_chain): Handle case where the
348         destination of E_FALL is EXIT_BLOCK_PTR.
349
350 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
351
352         PR target/15653
353         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
354         after shifts before asm.
355
356 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
357
358         PR tree-optimization/15993
359         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
360         destination is unchanged.
361
362 2004-06-16  Andreas Jaeger  <aj@suse.de>
363
364         * doc/install.texi (Configuration): Update description for
365         --enable-version-specific-runtime-libs.
366
367 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
368
369         * doc/install.texi: boehm-gc now uses automake 1.8.5.
370
371 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
372
373         * toplev.h (rest_of_compilation): Adjust prototype.
374
375 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
376
377         * coverage.c: Remove argument to rest_of_compilation.
378         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
379         * passes.c (rest_of_compilation): Remove argument.
380         (pass_rest_of_compilation): New.
381         (rest_of_handle_final, rest_of_handle_delay_slots,
382         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
383         rest_of_handle_machine_reorg, rest_of_handle_regrename
384         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
385         rest_of_handle_regmove, rest_of_handle_tracer
386         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
387         rest_of_handle_web, rest_of_handle_branch_prob
388         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
389         rest_of_handle_addressof, rest_of_handle_jump_bypass
390         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
391         Check that the two arguments are actually superfluous.
392         * tree-optimize.c (register_dump_files): Add properties argument.
393         Track validity of passes.  Only initialize dump files for
394         tree-based passes.  Store the full set of provided passes in
395         the pass.
396         (init_tree_optimization_passes): Register pass_expand and
397         pass_rest_of_compilation.
398         (execute_one_pass): Do not track the presence of required properties
399         here.  Set in_gimple_form.  Do not update current_properties.
400         (current_properties): Remove.
401         (set_save_expr_context): Remove.
402         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
403         expand to RTL here, and do not call rest_of_compilation.  Push
404         GGC context even before gimplification.
405         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
406         (pass_expand, pass_rest_of_compilation): Declare.
407
408 2004-06-15  Jeff Law  <law@redhat.com>
409
410         * fold-const.c (swap_tree_comparison): No longer static.
411         (tree_swap_operands_p): Similarly.  Return true if both operands
412         are SSA_NAMEs and the first operand has a higher version number than
413         the second operand.
414         * tree.h (swap_tree_comparison): Prototype.
415         (tree_swap_operands_p): Prototype.
416         * tree-ssa-operands.c (get_expr_operands): For commutative
417         operators and relational comparisons, canonicalize the
418         order of the operands.
419
420 2004-06-15  Richard Henderson  <rth@redhat.com>
421
422         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
423         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
424         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
425         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
426         (finish_fname_decls, fname_decl): Use statement_lists.
427         (c_expand_expr_stmt): Don't set last_expr_type.
428         (c_type_hash): Fix indentation.
429         (c_safe_from_p): Don't follow TREE_CHAIN.
430         (c_tree_chain_matters_p): Remove.
431         * c-common.def (SCOPE_STMT): Remove.
432         (CLEANUP_STMT): Redefine to contain its own body.
433         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
434         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
435         Add x_cur_stmt_list.
436         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
437         (cur_stmt_list): New.
438         (STATEMENT_LIST_STMT_EXPR): New.
439         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
440         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
441         (CLEANUP_BODY): New.
442         (CLEANUP_DECL): Move to operand 2.
443         (c_common_stmt_codes): Remove SCOPE_STMT.
444         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
445         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
446         (c_push_function_context, c_pop_function_context): Don't save it.
447         (finish_decl): Set TREE_USED on the decl for a cleanup.
448         Use push_cleanup.
449         (store_parm_decls): Use statement lists.
450         (finish_function): Remove compstmt rule workaround.  Use statement
451         lists.  Call finish_fname_decls after finalizing the body.
452         (c_begin_compound_stmt): Move to c-typeck.c.
453         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
454         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
455         (c_genericize): Invoke them.
456         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
457         (c_build_bind_expr): Export.
458         (gimplify_block, gimplify_cleanup): Remove.
459         (gimplify_condition): Use gimplify_stmt.
460         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
461         (gimplify_if_stmt): Remove recursion hack.
462         (c_gimplify_expr): Remove STMT_EXPR handling.
463         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
464         (is_last_stmt_of_scope): Remove.
465         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
466         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
467         c_end_compound_stmt.
468         * c-objc-common.c (build_cdtor): Likewise.
469         * c-parse.in (primary): Use c_finish_stmt_expr.
470         (push_scope, pop_scope): Remove.
471         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
472         (c99_block_end, compstmt): Use c_end_compound_stmt.
473         (c99_block_lineno_labeled_stmt): Likewise.
474         (compstmt_primary_start): Use c_begin_stmt_expr.
475         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
476         (do_stmt_start): Fill in body directly.
477         (lineno_stmt): Avoid setting lineno on constants.
478         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
479         Remove SCOPE_STMT.
480         * c-semantics.c (begin_stmt_tree): Remove.
481         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
482         (add_stmt): Use statement lists.
483         (add_scope_stmt, finish_stmt_tree): Remove.
484         (push_cleanup): New.
485         * c-tree.h: Move some decls from c-common.h.
486         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
487         (do_case, c_finish_case): Likewise.
488         (c_finish_then): Take body for then as argument.
489         (c_finish_else): Similarly.
490         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
491         c_finish_for_stmt_incr, c_finish_for_stmt): New.
492         (c_begin_stmt_expr, c_finish_stmt_expr): New.
493         (c_begin_compound_stmt): Do scope management.
494         (c_end_compound_stmt): New.
495         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
496         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
497         Look through exception handling constructs.
498         (gimplify_bind_expr): Accept temporary argument.
499         (gimplify_target_expr): Special case BIND_EXPR bodies.
500         (gimplify_expr): Handle fallback == fb_none like a statement.
501         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
502         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
503         * langhooks.h (tree_chain_matters_p): Remove.
504         * stub-objc.c (objc_clear_super_receiver): New.
505         * tree-gimple.h (voidify_wrapper_expr): Update decl.
506         (append_to_statement_list, append_to_statement_list_force): Move
507         to tree-iterator.h.
508         * tree-inline.c (expand_call_inline): Update call.
509         (clone_body): Use statement lists.
510         (walk_tree): Don't check tree_chain_matters_p.
511         (copy_tree_r): Likewise.
512         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
513         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
514         * tree-iterator.h (append_to_statement_list,
515         append_to_statement_list_force): Moved from tree-gimple.h.
516         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
517         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
518         (objc_enter_block): Likewise.
519         (objc_exit_block): Use c_end_compound_stmt.
520         (objc_build_try_enter_fragment): Add #error and comment for
521         rewriting for OBJCPLUS.
522         (objc_build_extract_fragment, objc_build_try_epilogue,
523         objc_build_catch_stmt, objc_build_finally_prologue,
524         objc_build_finally_epilogue): Update for C statement builders.
525         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
526         Remove.
527
528 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
529
530         * df.c (df_reg_clobber_gen): Removed.
531         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
532         Make more effective for hard regs.
533         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
534
535 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
536
537         * c-pragma.h (c_lex_string_translate): Change type to int.
538         * c-parse.in: Change all assignments of c_lex_string_translate
539         to true and false to 1 and 0.
540         * c-lex.c (c_lex_string_translate): Likewise.
541         (lex_string): Convert string without translation in the -1
542         case.
543
544 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
545
546         * convert.h: Add include guards
547
548 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
549
550         * tree-flow-inline.h: Document all functions.
551
552 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
553
554         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
555         * tree-dfa.c (create_stmt_ann): Ditto.
556         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
557         * tree-inline.c (estimate_num_insns_1): Ditto.
558         * tree.c (tree_size): Ditto.
559         (make_node_stat): Ditto.
560         (tree_node_structure): Ditto.
561         (ephi_node_elt_check_failed): Remove.
562         (is_essa_node): Ditto.
563         * tree.def (EPHI_NODE): Ditto.
564         (EEXIT_NODE): Ditto.
565         (EUSE_NODE): Ditto.
566         (EKILL_NODE): Ditto.
567         * tree.h (EREF_NODE_CHECK): Remove.
568         (EPHI_NODE_ELT_CHECK): Ditto.
569         (struct tree_eref_common): Ditto.
570         (struct tree_euse_node): Ditto.
571         (struct ephi_arg_d): Ditto.
572         (struct tree_ephi_node): Ditto.
573         (ephi_node_elt_check_failed): Remove prototype.
574         (is_essa_node): Ditto.
575         (enum tree_node_structure_enum): Remove TS_E*_NODE.
576         (union tree_node): Remove E*_NODE uses.
577
578 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
579
580         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
581         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
582         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
583         Likewise.
584         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
585         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
586         expand_builtin_strcmp, expand_builtin_strncmp,
587         expand_builtin_frame_address): Likewise.
588         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
589         insert_one_insn): Likewise.
590         * calls.c (prepare_call_address, precompute_register_parameters,
591         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
592         * cfganal.c (flow_active_insn_p): Likewise.
593         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
594         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
595         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
596         make_extraction, recog_for_combine, gen_lowpart_for_combine,
597         simplify_comparison, record_dead_and_set_regs_1,
598         record_dead_and_set_regs, record_promoted_value,
599         check_promoted_subreg, get_last_value_validate, get_last_value,
600         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
601         unmentioned_reg_p_1): Likewise.
602         * conflict.c (mark_reg): Likewise.
603         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
604         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
605         merge_equiv_classes, flush_hash_table, invalidate,
606         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
607         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
608         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
609         record_jump_cond, cse_insn, addr_affects_sp_p,
610         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
611         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
612         cse_cc_succs, cse_condition_code_reg): Likewise.
613         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
614         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
615         cselib_record_set, cselib_record_sets): Likewise.
616         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
617         dbxout_block): Likewise.
618         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
619         * dojump.c (do_jump): Likewise.
620         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
621         is_based_loc, rtl_for_decl_location): Likewise.
622         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
623         set_decl_incoming_rtl, mark_user_reg): Likewise.
624         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
625         copy_to_suggested_reg, allocate_dynamic_stack_space,
626         probe_stack_range, hard_function_value): Likewise.
627         * expmed.c (store_bit_field, store_fixed_bit_field,
628         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
629         extract_split_bit_field, expand_divmod, emit_store_flag_force):
630         Likewise.
631         * expr.c (convert_move, convert_modes,
632         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
633         use_group_regs, emit_move_insn, emit_move_insn_1,
634         compress_float_constant, push_block, emit_single_push_insn,
635         emit_push_insn, get_subtarget, expand_assignment, store_expr,
636         store_constructor, store_field, force_operand, safe_from_p,
637         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
638         Likewise.
639         * final.c (profile_function, final_scan_insn, alter_subreg,
640         get_mem_expr_from_op, output_asm_operand_names, output_operand,
641         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
642         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
643         find_regno_partial, propagate_one_insn, init_propagate_block_info,
644         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
645         attempt_auto_inc, find_auto_inc, mark_used_regs,
646         count_or_remove_death_notes_bb): Likewise.
647         * function.c (find_temp_slot_from_address, update_temp_slot_address,
648         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
649         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
650         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
651         purge_single_hard_subreg_set, instantiate_decl,
652         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
653         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
654         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
655         expand_function_start, diddle_return_value, clobber_return_register,
656         expand_function_end, keep_stack_depressed, handle_epilogue_set,
657         update_epilogue_consts): Likewise.
658         * genemit.c (gen_exp, gen_insn): Likewise.
659         * genrecog.c (make_insn_sequence): Likewise.
660         * global.c (global_conflicts, expand_preferences, mark_reg_store,
661         mark_reg_conflicts, set_preference, reg_becomes_live,
662         build_insn_chain, mark_reg_change): Likewise.
663         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
664         Likewise.
665         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
666         Likewise.
667         * integrate.c (copy_rtx_and_substitute, try_constants,
668         subst_constants, mark_stores, allocate_initial_values): Likewise.
669         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
670         delete_computation, rtx_renumbered_equal_p, true_regnum,
671         reg_or_subregno): Likewise.
672         * lcm.c (reg_dies, reg_becomes_live): Likewise.
673         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
674         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
675         wipe_dead_reg, no_conflict_p): Likewise.
676         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
677         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
678         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
679         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
680         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
681         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
682         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
683         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
684         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
685         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
686         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
687         try_swap_copy_prop): Likewise.
688         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
689         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
690         Likewise.
691         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
692         reload_cse_simplify_operands, reload_combine,
693         reload_combine_note_store, reload_combine_note_use,
694         reload_cse_move2add, move2add_note_store): Likewise.
695         * print-rtl.c (print_rtx): Likewise.
696         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
697         contains_pseudo, handle_asm_insn): Likewise.
698         * ra-debug.c (ra_print_rtx_object, dump_constraints,
699         dump_static_insn_cost): Likewise.
700         * ra-rewrite.c (slots_overlap_p, emit_colors,
701         remove_suspicious_death_notes): Likewise.
702         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
703         register_operand, scratch_operand, nonmemory_operand,
704         constrain_operands): Likewise.
705         * reg-stack (check_asm_stack_operands, remove_regno_note,
706         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
707         subst_asm_stack_regs): Likewise.
708         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
709         record_address_regs, reg_scan_mark_refs): Likewise.
710         * regmove.c (discover_flags_reg, replacement_quality,
711         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
712         fixup_match_1): Likewise.
713         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
714         kill_set_value, copyprop_hardreg_forward_1): Likewise.
715         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
716         reload_inner_reg_of_subreg, can_reload_into, push_reload,
717         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
718         operands_match_p, decompose, find_reloads, find_reloads_toplev,
719         find_reloads_address, subst_indexed_address, find_reloads_address_1,
720         find_reloads_subreg_address, find_replacement,
721         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
722         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
723         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
724         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
725         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
726         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
727         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
728         do_output_reload, emit_reload_insns, gen_reload,
729         delete_address_reloads_1, inc_for_reload): Likewise.
730         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
731         update_reg_unused_notes, fill_slots_from_thread): Likewise.
732         * resource.c (update_live_status, mark_referenced_resources,
733         mark_set_resources, mark_target_live_regs): Likewise.
734         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
735         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
736         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
737         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
738         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
739         parms_set, find_first_parameter_load, keep_with_call_p,
740         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
741         num_sign_bit_copies1): Likewise.
742         * rtlhooks.c (gen_lowpart_general): Likewise.
743         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
744         sched_analyze): Likewise.
745         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
746         Likewise.
747         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
748         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
749         simplify_binary_operation, simplify_const_relational_operation,
750         simplify_subreg): Likewise.
751         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
752         expand_end_stmt_expr, expand_return, expand_decl,
753         expand_anon_union_decl): Likewise.
754         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
755         find_splittable_regs, find_splittable_givs, find_common_reg_term,
756         loop_iterations): Likewise.
757         * var-tracking.c (variable_union, variable_part_different_p,
758         variable_different_p, count_uses, add_uses, add_stores,
759         compute_bb_dataflow, set_variable_part, delete_variable_part,
760         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
761         Likewise.
762         * varasm.c (assemble_variable): Likewise.
763
764 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
765
766         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
767         definition.
768         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
769         #undef and #if 0'd definition.
770
771 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
772
773         * combine.c (distribute_notes): Comment typo fix.
774
775 2004-06-15  Roger Sayle  <roger@eyesopen.com>
776
777         * expmed.c (synth_mult): Mask bits of the multiplier to the
778         machine mode of the multiplication.  Don't consider shifts
779         by more than (or equal to) the width of the operation's mode.
780
781 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
782
783         * doc/install.texi: Yet another update for autoconf
784         and automake versions.
785
786 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
787
788         * function.h (struct function): Remove cannot_inline field.
789         (current_function_cannot_inline): Remove.
790         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
791         Simplify conditionals to ignore warn_return_type.
792         * tree-optimize.c (tree_rest_of_compilation): Do not reset
793         DECL_DEFER_OUTPUT.
794         * objc/objc-act.c (build_module_descriptor, finish_method_def):
795         Do not set current_function_cannot_inline.
796
797 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
798
799         * cfglayout.c (fixup_reorder_chain): Handle case where the
800         destination of E_TAKEN is EXIT_BLOCK_PTR.
801
802 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
803
804         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
805
806 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
807
808         * fold-const.c (operand_equal_p): Update comment.
809
810 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
811
812         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
813         (INCOMING_RETURN_ADDR_RTX): Define.
814         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
815         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
816         __builtin_return_address(0).
817         (m32r_return_addr): Added for __builtin_return_address(0).
818         (m32r_reload_lr): Ditto.
819
820         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
821
822 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
823
824         * doc/install.texi (Prerequisites): Update libbanshee,
825         fastjar, libcpp, libjava/libltdl entries to
826         automake 1.8.5.
827
828 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
829             Olivier Hainque  <hainque@act-europe.fr>
830
831         * function.c (fixup_var_refs): Also adjust the start of sequence
832         after fixing up the insns.
833
834 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
835
836         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
837
838 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
839
840         * doc/install.texi (Prerequisites): Update libstdc++ entry to
841         automake 1.8.5.
842
843 2004-06-14  Eric Christopher  <echristo@redhat.com>
844
845         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
846         to -mtpf-trace (-mno-tpf-trace).
847         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
848         documentation.
849
850 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
851
852         * real.c: Fix bit count in head comment.
853
854 2004-06-14  Jeff Law  <law@redhat.com>
855
856         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
857         PHIs where the destination or an argument is marked with
858         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
859
860 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
861
862         PR middle-end/15945
863         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
864         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
865
866 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
867
868         * opts.sh (var_args): Fix regexp.
869
870 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
871
872         PR target/15178
873         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
874
875 2004-06-14  Paul Brook  <paul@codesourcery.com>
876
877         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
878
879 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
880
881         * Makefile.in (FLAGS_H): New.
882         (flags.h): Replace by FLAGS_H.
883         * c.opt: Document Var, VarExists, Init and Report attributes.
884         * common.opt: Fill the values of the attributes.
885         * diagnostic.c (flag_fatal_errors): Do not define.
886         * except.c (flag_non_call_exceptions): Do not define.
887         * flags.h: Include options.h.  Remove declarations conflicting with
888         the automatically defined ones.
889         * opts.c: Remove automatically defined variables.
890         (handle_option): Perform default initialization.
891         (common_handle_option): Do not handle options covered by the
892         default initialization.
893         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
894         fields.
895         (CL_REPORT): New.
896         * opts.sh: Generate variable declarations, handle CL_REPORT.
897         * toplev.c: Remove automatically defined variables.
898         (f_options): Removed.
899         (print_switch_values): Use cl_options instead of f_options.
900         * toplev.h (version_flag): Declaration removed.
901
902 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
903
904         * config/sparc/sparc.h: Correct comment about availability of
905         little endian option.
906
907         * config.gcc: Remove sparc64-*-aout*.
908         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
909         * config/sparc/sp64-aout.h: Remove.
910         * config/sparc/aout.h: Remove.
911
912 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
913
914         * config/s390/s390.c: Include "tree-gimple.h".
915         (s390_gimplify_va_arg): New function.
916         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
917         (s390_va_arg): Remove.
918         * config/s390/s390-protos.h (s390_va_arg): Remove.
919         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
920
921 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
922
923         * basic-block.h (could_fall_through): Declare.
924         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
925         Fail if the source already has a fallthrough edge to the exit
926         block pointer.
927         (could_fall_through): New function.
928         * cfgbuild.c (make_edges): Check if we already have a fallthrough
929         edge to the exit block pointer.
930         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
931         not called before reload has completed.
932         Handle special case of first block having a fall-through exit edge.
933         (cfg_layout_finalize): Don't call it before reload or if we have
934         rtl epilogues.
935         (fixup_reorder_chain): A fall through to the exit block does not
936         require the block to come last.  Add sanity checks.
937         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
938         edges to the exit block.
939         * function.c (cfglayout.h): #include.
940         (thread_prologue_and_epilogue_insns): If we have neither return nor
941         epilogue, but a fall through to the exit block from mid-function,
942         force a non-fall-through exit.
943         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
944
945 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
946
947         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
948         for power5 and rs64a.  Correct condition for default.  Correct power3,
949         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
950
951 2004-06-13  Steven Bosscher <stevenb@suse.de>
952
953         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
954         Revert previous change, don't use CALL_P.
955
956 2004-06-13  Jason Merrill  <jason@redhat.com>
957
958         * tree.h: Move std_gimplify_va_arg_expr protoype here.
959         * tree-gimple.h: From here.
960
961 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
962
963         Fix PR tree-optimization/15979
964         Fix PR tree-optimization/15981
965         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
966         try to insert values undefined along some path.
967
968 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
969
970         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
971         are available everywhere too.
972
973 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
974
975         * fold-const.c (fold_checksum_tree <case 't'>): Only
976         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
977         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
978         EXPR is an INTEGERAL_TYPE or a scalar float type.
979
980 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
981
982         * tree-sra.c (tree_sra): Update documentation.
983
984 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
985
986         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
987         function_types_compatible_p, type_lists_compatible_p): Remove
988         flags parameter.
989         * c-tree.h (comptypes): Likewise.
990         (COMPARE_STRICT): Remove.
991         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
992         callers changed.
993
994 2004-06-13  Eric Christopher  <echristo@redhat.com>
995
996         * c-decl.c (diagnose_mismatched_decls): Improve error message.
997         Remove unused code.
998         * c-typeck.c (comptypes): Add location in standard we're checking.
999
1000 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1001
1002         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1003         version 3.3.4.
1004
1005 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1006
1007         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1008         index by machine mode.
1009         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1010         tables inside the loop over machine modes.
1011         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1012         expand_divmod): Index shift*_cost by the appropriate machine mode.
1013
1014 2004-06-12  Eric Christopher  <echristo@redhat.com>
1015
1016         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1017         * config/s390/s390.md: Ditto.
1018         * config/s390/s390.c: Ditto.
1019         (s390_frame_info): Conditionalize frame and setup info on
1020         TARGET_TPF_PROFILING.
1021         (s390_arg_frame_offset): Ditto.
1022
1023 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1024
1025         * fold-const.c (omit_two_operands): New function.
1026         * tree.h (omit_two_operands): Prototype here.
1027         * builtins.c (fold_builtin_unordered_cmp): New function to lower
1028         C99 unordered comparison builtins to the appropriate tree nodes.
1029         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1030         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1031         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
1032         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1033         (simplify_builtin_memcmp, simplify_builtin_strncmp,
1034         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1035         omit_two_operands function to build the required COMPOUND_EXPRs.
1036
1037 2004-06-12  Steven Bosscher <stevenb@suse.de>,
1038             Andreas Jaeger  <aj@suse.de>
1039
1040         * gcse.c (record_set_info): Use predicates like REG_P.
1041         (mems_conflict_for_gcse_p): Likewise.
1042         (load_killed_in_block_p): Likewise.
1043         (hash_expr_1): Likewise.
1044         (insert_set_in_table): Likewise.
1045         (gcse_constant_p): Likewise.
1046         (hash_scan_set): Likewise.
1047         (hash_scan_insn): Likewise.
1048         (canon_list_insert): Likewise.
1049         (record_last_mem_set_info): Likewise.
1050         (record_last_set_info): Likewise.
1051         (compute_hash_table_work): Likewise.
1052         (mark_set): Likewise.
1053         (mark_clobber): Likewise.
1054         (mark_oprs_set): Likewise.
1055         (compute_transp): Likewise.
1056         (find_avail_set): Likewise.
1057         (cprop_insn): Likewise.
1058         (do_local_cprop): Likewise.
1059         (cprop): Likewise.
1060         (find_implicit_sets): Likewise.
1061         (find_bypass_set): Likewise.
1062         (bypass_conditional_jumps): Likewise.
1063         (insert_insn_end_bb): Likewise.
1064         (pre_insert_copy_insn): Likewise.
1065         (compute_transpout): Likewise.
1066         (next_ls_expr): Likewise.
1067         (invalidate_any_buried_refs): Likewise.
1068         (compute_ld_motion_mems): Likewise.
1069         (reg_set_info): Likewise.
1070         (reg_clear_last_set): Likewise.
1071         (find_moveable_store): Likewise.
1072         (compute_store_table): Likewise.
1073         (find_loads): Likewise.
1074         (store_killed_in_insn): Likewise.
1075         (insert_insn_start_bb): Likewise.
1076         (reg_set_between_after_reload_p): Likewise.
1077         (reg_used_between_after_reload_p): Likewise.
1078         (is_jump_table_basic_block): Likewise.
1079         (gcse_after_reload): Likewise.
1080         (hash_scan_set_after_reload): Likewise.
1081         (compute_hash_table_after_reload): Likewise.
1082
1083 2004-06-12  Steven Bosscher  <stevenb@suse.de>
1084
1085         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1086         (INSN_P): Don't look at the rtx code class, just explicitly
1087         check for one of the tree RTX_INSN codes.
1088
1089 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1090
1091         * c-typeck.c (default_function_array_conversion): Use
1092         build_pointer_type not TYPE_POINTER_TO.
1093
1094 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1095
1096         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1097         * configure, config.in: Regenerate.
1098         * system.h: Unconditionally define bool as unsigned char,
1099         BOOL_BITFIELD as unsigned int.
1100         * domwalk.h: Use BOOL_BITFIELD.
1101
1102 2004-06-12  Andreas Jaeger  <aj@suse.de>
1103
1104         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1105         * libgcc-darwin.ver: Likewise.
1106
1107 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
1108
1109         * reload.c (find_reloads): Force reload for pseudo registers on big
1110         endian machines.
1111
1112 2004-06-11  Steven Bosscher <stevenb@suse.de>
1113
1114         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1115         Don't try to mark anything control dependent on the entry or
1116         exit blocks.
1117
1118 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
1119
1120         Fix Bug 15899
1121         Fix Bug 15460
1122         * tree.h (SSA_NAME_VALUE): New macro.
1123         (struct tree_ssa_name): Add value_handle member.
1124         * tree-ssa-pre.c: Replaced.
1125         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1126         (struct cst_ann_d): New.
1127         (struct expr_ann_d): New.
1128         (union tree_ann_d): Add cst_ann, expr_ann.
1129         * tree-dfa.c (create_cst_ann): New function.
1130         (create_expr_ann): Ditto.
1131         * tree-flow-inline.h (cst_ann): New function.
1132         (expr_ann): Ditto.
1133         (get_cst_ann): Ditto.
1134         (get_expr_ann): Ditto..
1135
1136 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1137
1138         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1139         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1140         _U_Qfcmp library function.
1141         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1142         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1143
1144         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1145         unspec used for loading address from DLT.
1146         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1147         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1148         Don't use short code sequence when loading the address of a nonlocal
1149         label.
1150         (nonlocal_goto): New expander.
1151         (indirect_goto): New jump pattern for nonlocal gotos.
1152         (short_jump): Remove extra whitespace.
1153         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
1154         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1155         pattern.
1156
1157 2004-06-11  Roger Sayle  <roger@eyesopen.com>
1158
1159         * expmed.c (synth_mult): Add an additional MODE argument for the
1160         machine mode of the multiplication.  Update recursive calls.  Use
1161         mode instead of word_mode for determining operation costs.
1162         (choose_mult_variant): Update calls to synth_mult with "mode".
1163
1164 2004-06-11  Richard Henderson  <rth@redhat.com>
1165
1166         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1167         and makes_aliased_stores.
1168
1169 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1170
1171         * doc/install.text (--enable-shared): Fix typo.
1172
1173 2004-06-11  Richard Henderson  <rth@redhat.com>
1174
1175         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1176         argument.  Use internal post for call to gimplify_expr.  Tidy
1177         rounded type size computation.
1178         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1179         get_initialized_tmp_var.
1180
1181 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1182
1183         * doc/install.texi (--enable-shared): Update libobjc's shared library
1184         status.  Remove reference to libf2c.
1185
1186 2004-06-11  Jason Merrill  <jason@redhat.com>
1187
1188         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1189         * config/i386/i386.c (ix86_va_arg): Remove.
1190         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1191         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1192         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1193         * config/alpha/alpha.c (alpha_va_arg): Remove.
1194         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1195         * config/sparc/sparc.c (sparc_va_arg): Remove.
1196
1197         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1198         assignment might throw.
1199         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1200         expressions.
1201
1202 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
1203
1204         PR 15886:
1205         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1206
1207 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1208
1209         * doc/install.texi (Prerequisites): Update documentation of
1210         required versions of autoconf and automake.  Remove mention of
1211         libf2c.
1212
1213 2004-06-11  Jason Merrill  <jason@redhat.com>
1214
1215         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1216         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1217
1218 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
1219
1220         * typeclass.h: Add GPL plus exception license.  Add include
1221         guard.
1222
1223 2004-06-10  Jason Merrill  <jason@redhat.com>
1224
1225         * gimplify.c (gimplify_modify_expr): Don't force a temporary
1226         of an aggregate_value_p type.
1227
1228 2004-06-10  Jeff Law  <law@redhat.com>
1229
1230         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1231         code when we are in gimple form.
1232
1233 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
1234
1235         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1236         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1237         (highest_ssa_version): Remove.
1238         * tree-outof-ssa.c (new_temp_expr_table): Replace
1239         highest_ssa_version with num_ssa_names.
1240         (dump_replaceable_exprs): Likewise.
1241         (rewrite_vars_out_of_ssa): Likewise.
1242         * tree-ssa-ccp.c (initialize): Likewise
1243         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1244         * tree-ssa-dce.c (tree_dce_init): Likewise.
1245         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1246         * tree-ssa-live.c (create_ssa_var_map): Likewise.
1247         (dump_var_map): Likewise.
1248         * tree-ssa.c (verify_ssa): Likewise.
1249         (kill_redundant_phi_nodes): Likewise.
1250         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
1251         * tree-ssanames.c: Include tree-flow.h
1252         (ssa_names): New varray.
1253         (init_ssa_names): Initialize ssa_names.
1254         Reserve the first slot of the ssa_names table.
1255         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1256         Assign version numbers using num_ssa_names.
1257
1258 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1259
1260         * doc/sourcebuild.texi (Front End): Add details of more
1261         installation documentation required.
1262
1263 2004-06-10  Brian Booth  <bbooth@redhat.com>
1264
1265         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1266         of V_MAY_DEF and V_MUST_DEF.
1267         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1268         num_vdefs to num_v_may_defs.
1269         (compute_immediate_uses_for_stmt): Rename occurences of vdef
1270         to v_may_def.
1271         (redirect_immediate_uses): Ditto.
1272         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1273         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1274         Also add code to sum up the number of v_must_defs.
1275         (vdefs_disappeared_p): Replace with...
1276         (v_may_defs_disappeared_p): This.
1277         (v_must_defs_disappeared_p): New function.
1278         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1279         Also add code to mark new variables found in V_MUST_DEFs for
1280         renameing.
1281         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1282         vdef_ops to v_may_def_ops.
1283         (get_vdef_ops): Replace with...
1284         (get_v_may_def_ops): This.
1285         * tree-flow-inline.h (get_vdef_ops): Replace with...
1286         (get_v_may_def_ops): This.
1287         (get_v_must_def_ops): New function.
1288         (get_vdef_result_ptr): Replace with...
1289         (get_v_may_def_result_ptr): This.
1290         (get_vdef_op_ptr): Ditto with...
1291         (get_v_may_def_op_ptr); This.
1292         (get_v_must_def_op_ptr): New function.
1293         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1294         to v_may_def. Also add code to mark statements with
1295         V_MUST_DEFs as definition sites.
1296         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1297         add code to register new V_MUST_DEFs made by the statement.
1298         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1299         (check_replaceable): Rename occurences of vdef to v_may_def. Also
1300         add check for V_MUST_DEFs.
1301         (find_replaceable_in_bb): Ditto.
1302         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1303         to v_may_def. Also add code to dump V_MUST_DEFs.
1304         * tree-sra.c (mark_all_vdefs): Replace with...
1305         (mark_all_v_may_defs): This.
1306         (mark_all_v_must_defs): New function.
1307         (create_scalar_copies): Replace call to mark_all_vdefs with
1308         calls to mark_all_v_may_defs and mark_all_v_must_defs.
1309         (scalarize_structures): Rename occurences of vdef to v_may_def.
1310         Also add a check for V_MUST_DEFs.
1311         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1312         * tree-ssa-alias.c (global_var): Update comment.
1313         (compute_may_aliases): Ditto.
1314         (compute_points_to_and_addr_escape): Rename occurences of vdef
1315         to v_may_def. Also add code to mark variables in V_MUST_DEF
1316         operands as being written to.
1317         (group_aliases): Update comment.
1318         (maybe_create_global_var): Ditto.
1319         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1320         Also add a check for V_MUST_DEFs on GIMPLE registers.
1321         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1322         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1323         to v_may_def. Also add code to mark all V_MUST_DEF operands
1324         VARYING.
1325         (initialize): Ditto.
1326         (set_rhs): Rename occurences of vdef to v_may_def. Also add
1327         code to update SSA_NAMEs in V_MUST_DEFs.
1328         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1329         to v_may_def.
1330         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1331         occurences of vdef to v_may_def. Also add code to mark statements
1332         with V_MUST_DEFs as necessary.
1333         (propagate_necessity): Rename occurences of vdef to v_may_def.
1334         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1335         occurences of vdef to v_may_def. Also add code to mark operands
1336         in V_MUST_DEFs for renaming.
1337         (eliminate_redundant_computations): Rename occurences of vdef
1338         to v_may_def.
1339         (record_equivalences_from_stmt): Rename occurences of vdef
1340         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1341         (optimize_stmt): Remove unnesessary variable vdefs. Update
1342         comment.
1343         (register_definitions_for_stmt): Rename occurences of vdef
1344         to v_may_def. Also add code to register definitions made with
1345         V_MUST_DEFs.
1346         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1347         (fix_stmt_v_may_defs): This.
1348         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1349         (dse_optimize_stmt): Ditto.
1350         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1351         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1352         used in virtual operators.
1353         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1354         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1355         renaming.
1356         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1357         definitions.
1358         (build_vdefs): Renamed to...
1359         (build_v_may_defs): This.
1360         (build_v_must_defs): New variable.
1361         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1362         v_may_def_ops.
1363         (append_vdef): Replace with...
1364         (append_v_may_def): This.
1365         (append_v_must_def): New function.
1366         (NUM_FREE): Increment for V_MUST_DEF
1367         (optype_freelist): Increment its size for V_MUST_DEF
1368         (allocate_vdef_optype): Replace with...
1369         (allocate_v_may_def_optype): This.
1370         (allocate_v_must_def_optype): New function.
1371         (free_vdefs): Replace with...
1372         (free_v_may_defs): This.
1373         (free_v_must_defs): New function.
1374         (remove_vdefs): Replace with...
1375         (remove_v_may_defs): This.
1376         (remove_v_must_defs): New function.
1377         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1378         add code to initialize build_v_must_defs.
1379         (finalize_ssa_vdefs): Replace with...
1380         (finalize_ssa_v_may_defs): This.
1381         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1382         (finalize_ssa_v_must_defs): New function.
1383         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1384         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1385         (verify_start_operands): Rename occurences of vdef to v_may_def.
1386         Also add check for build_v_must_defs.
1387         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1388         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1389         killing definitions.
1390         (get_expr_operands): Update comment and use opf_kill_def for
1391         killing definitions.
1392         (add_stmt_operand): Replace code that appends VDEFs with code
1393         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1394         otherwise.
1395         (add_call_clobber_ops): Update comments.
1396         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1397         (v_may_def_optype_d): This.
1398         (v_must_def_optype_d): New structure.
1399         (VDEF_OPS): Replace with...
1400         (V_MAY_DEF_OPS): This.
1401         (STMT_VDEF_OPS): Same with...
1402         (STMT_V_MAY_DEF_OPS): This.
1403         (NUM_VDEFS): And...
1404         (NUM_V_MAY_DEFS): This.
1405         (VDEF_RESULT_PTR): As well as...
1406         (V_MAY_DEF_RESULT_PTR): This.
1407         (VDEF_RESULT): Same goes for...
1408         (V_MAY_DEF_RESULT): This.
1409         (VDEF_OP_PTR): And...
1410         (V_MAY_DEF_OP_PTR): This.
1411         (VDEF_OP): And...
1412         (V_MAY_DEF_OP): This.
1413         (V_MUST_DEF_OPS): New macro.
1414         (STMT_V_MUST_DEF_OPS): Ditto.
1415         (NUM_V_MUST_DEFS): Ditto.
1416         (V_MUST_DEF_OP_PTR): Ditto.
1417         (V_MUST_DEF_OP): Ditto.
1418         (remove_vdefs): Replace signature with...
1419         (remove_v_may_defs): This.
1420         (remove_v_must_defs): New function signature.
1421         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1422         with calls to remove_v_may_defs and remove_v_must_defs.
1423         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1424         Also add code that marks left occurences of operands in V_MUST_DEFs.
1425         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1426         to v_may_def. Also add check for V_MUST_DEFs.
1427         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1428
1429 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1430
1431         PR target/15653
1432         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1433         insn.
1434
1435 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1436
1437         PR web/15263
1438         * doc/install.texi: Remove superfluous linebreak.
1439
1440 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1441
1442         * builtins.c (expand_builtin): Fall back to library function call for
1443         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1444         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1445         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1446         IMAGPART_EXPR respectively.
1447
1448 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1449
1450         * sh.c (dump_table): New argument start.  Changed caller.
1451         (fixup_mova): New function.
1452         (find_barrier): Use it.
1453         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1454         If the label a mova refers to is above the mova itself, change
1455         the mova into a load.
1456         * sh.md (*casesi_worker): Rename to:
1457         (casesi_worker_1).
1458         (casesi_worker_2): New insn.
1459
1460 2004-06-10  Jason Merrill  <jason@redhat.com>
1461
1462         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1463         hook signature.
1464         * tree-gimple.h: Adjust.
1465         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1466         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1467         Use fold_convert.
1468         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1469         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1470         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1471         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1472         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1473         Gimplify valist rather than calling stabilize_va_list.
1474
1475 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1476
1477         * Makefile.in (df.o): Remove fibheap dependency.
1478         * df.h: Do not include sbitmap.h.
1479         (struct ref): New field "data".
1480         (DF_REF_DATA): New accessor macro.
1481         (struct df): Field "dom" removed.
1482         (df_analyze_subcfg): New function.
1483         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1484         (transfer_function): ... new type.
1485         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1486         (iterative_dataflow): ... new function.
1487         (enum set_representation, struct dataflow): New.
1488         * df.c: Do not include fibheap.h.
1489
1490         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1491         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1492         prune_to_subcfg, df_bb_modify): New functions.
1493         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1494         df_refs_update, df_reg_table_realloc, df_ref_create,
1495         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1496         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1497         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1498
1499         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1500         (df_rd_transfer_function, df_ru_transfer_function,
1501         df_lr_transfer_function): Type of bitmaps changed to void *.
1502         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1503         (hybrid_search): ... new function.
1504         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1505         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1506         a worklist.  Do not process basic blocks unnecessarily.
1507
1508 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1509
1510         * fold-const.c (fold_abs_const): Make extern.
1511         * tree.h (fold_abs_const): Prototype here.
1512         * builtins.c (fold_builtin_fabs): New function to transform
1513         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1514         (fold_builtin_abs): New function to transform abs, labs, llabs
1515         and imaxabs builtins into ABS_EXPR tree nodes.
1516         (expand_builtin): Fall back to a function call for abs, labs,
1517         llabs and imaxabs builtins that survive constant folding.
1518         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1519         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1520
1521 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1522
1523         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1524         leaf function without unwind info at RP 0.
1525
1526 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1527
1528         PR c++/14791
1529         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1530         (fileptr_type_node): Define.
1531         * tree.c (build_common_tree_nodes_2): Initialize
1532         fileptr_type_node to ptr_type_node.
1533         * c-common.c (c_common_nodes_and_builtins): For C++, make
1534         fileptr_type_node a distinct type copy.
1535         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1536         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1537         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1538         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1539         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1540         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1541         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1542         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1543         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1544         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1545         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1546         the above *FILEPTR* types instead of *PTR*.
1547
1548 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1549
1550         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1551         match.
1552
1553 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1554
1555         * fold-const.c (fold_not_const): New function.
1556         (fold) <ABS_EXPR>: Don't bother testing wins.
1557         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1558         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1559
1560 2004-06-09  Richard Henderson  <rth@redhat.com>
1561
1562         PR middle-end/15228
1563         * function.c (assign_parms): Always set_mem_align with the computed
1564         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1565
1566 2004-06-09  Richard Henderson  <rth@redhat.com>
1567
1568         PR opt/15108
1569         * tree-tailcall.c (find_tail_calls): Don't check early for
1570         tail_recursion failure.
1571
1572 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1573
1574         Move SSA_NAME annotations into tree_ssa_name.
1575
1576         * tree-dfa.c (create_ssa_name_ann): Remove.
1577         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1578         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1579         (struct ssa_name_ann_d): Remove.
1580         (union tree_ann_d): Update.
1581         (ssa_name_ann_t): Remove.
1582         * tree-ssa-alias.c: (get_ptr_info): New local function.
1583         Replace references to ssa_name_ann_t with struct ptr_info_def.
1584         * tree-ssa-operands.c (get_expr_operands): Likewise.
1585         * tree.h (SSA_NAME_PTR_INFO): Define.
1586         (struct ptr_info_def): Declare.
1587         (struct tree_ssa_name): Add field 'ptr_info'.
1588
1589 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1590
1591         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1592         misplaced ')'.
1593
1594 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1595
1596         * config/i386/k6.md: Rewrite using the DFA model.
1597         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1598         cost of load-operation insns for the K6.
1599         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1600         (ia32_multipass_dfa_lookahead): Likewise.
1601
1602 2004-06-09  Richard Henderson  <rth@redhat.com>
1603
1604         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1605         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1606
1607 2004-06-09  Richard Henderson  <rth@redhat.com>
1608
1609         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1610
1611 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1612
1613         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1614         (CPP_ID_DATA_H): New.
1615         (gtype-desc.o): Update dependencies.
1616         (GTFILES): Use CPP_ID_DATA_H.
1617
1618 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1619
1620         Revert:
1621         PR c++/15815
1622         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1623         * doc/extend.texi: Deprecate #pragma interface and #pragma
1624         implementation.
1625
1626 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1627
1628         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1629
1630 2004-06-09  Richard Henderson  <rth@redhat.com>
1631
1632         * basic-block.h (struct edge_def): Add goto_locus.
1633         * tree-cfg.c (make_goto_expr_edges): Set it.
1634         (disband_implicit_edges): Use it.
1635         * tree-pretty-print.c (dump_implicit_edges): Print it.
1636
1637 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1638
1639         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1640
1641 2004-06-08  Jason Merrill  <jason@redhat.com>
1642
1643         Gimplify VA_ARG_EXPR into simpler forms.
1644         * target.h: Add gimplify_va_arg_expr hook.
1645         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1646         * fold-const.c (build_fold_addr_expr)
1647         (build_fold_addr_expr_with_type): Move from gimplify.c.
1648         * tree.h: Declare them.
1649         * gimplify.c (gimplify_and_add): New fn.
1650         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1651         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1652         (gimplify_expr): Use build_fold_*.
1653         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1654         don't know how to gimplify it.
1655         * builtins.c (std_gimplify_va_arg_expr): New fn.
1656         (dummy_object): New static fn.
1657         (gimplify_va_arg_expr): New fn.
1658         (stabilize_va_list): Use build_fold_*.
1659         * tree-gimple.h: Declare new fns.
1660         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1661         (ix86_gimplify_va_arg): New fn.
1662         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1663         (ia64_gimplify_va_arg): New fn.
1664         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1665         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1666         * alias.c (get_varargs_alias_set): Just return 0 for now.
1667
1668         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1669
1670 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1671
1672         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1673         of convert.
1674         * tree-inline.c (setup_one_parameter): Likewise.
1675         * tree-sra.c (csc_build_component_ref): Likewise.
1676         * tree-ssa-ccp.c (ccp_fold): Likewise.
1677         * tree-ssa-copy.c (cprop_operand): Likewise.
1678         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1679         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1680
1681 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1682
1683         PR rtl-optimization/15521:
1684         * sched-int.h (in_post_call_group_p): Change type to enum.
1685         * sched-deps.c (sched_analyze_insn):
1686         (sched_analyze): When in_post_call_group_p is post_call_initial,
1687         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1688         and also reset in_post_call_group_p to post_call.
1689         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1690         initialize in_post_call_group_p as post_call_initial.
1691         (init_deps): initialize in_post_call_group_p to not_post_call.
1692
1693 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1694
1695         PR ada/6637
1696         * doc/install.texi: List ada, libada as options to --enable-shared
1697
1698 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1699
1700         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1701         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1702         config.in entries.
1703         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1704         if hard links are not available.
1705         * configure: Regenerate.
1706         * config.in: Regenerate.
1707
1708 2004-06-08  Per Bothner  <per@bothner.com>
1709
1710         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1711
1712 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1713
1714         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1715         Correct formatting.
1716
1717 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1718
1719         PR target/15790
1720         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1721
1722 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1723
1724         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1725         POINTER_TYPE and INTEGER_TYPE.
1726
1727 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
1728
1729         * modulo-sched.c: Compile only when INSN_SCHEDULING is
1730         defined.
1731
1732 2004-06-08  Jeff Law  <law@redhat.com>
1733
1734         * doc/contrib.texi: Add entries for Stefan Olsson and
1735         Ola Ronnerup.
1736
1737 2004-06-08  DJ Delorie  <dj@redhat.com>
1738
1739         * toplev.c (floor_log2_wide): Replace loop with faster bit
1740         operations.
1741         (exact_log2_wide): Define in terms of the above.
1742         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1743         available.
1744
1745 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1746
1747         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1748         Make sure that we are in INDIRECT mode when getting the
1749         stub name.
1750
1751 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1752
1753         * h8300.md (extendqisi2_h8300): Add constraints.
1754         (ldm_h8300s_4_normal): Fix typo.
1755
1756 2004-06-08  Richard Henderson  <rth@redhat.com>
1757
1758         * gimple-low.c (struct lower_data): Replace the_return_label and
1759         one_return_stmt with return_statements.
1760         (lower_function_body): Process the entire list of return_statements.
1761         (lower_return_expr): Check source value before unifying return_exprs.
1762         * gimplify.c (gimplify_return_expr): Force the use of a temporary
1763         for !aggregate_value_p.
1764         * tree-gimple.c: Update RETURN_EXPR grammer.
1765
1766 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1767
1768         PR target/15598
1769         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1770
1771 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1772
1773         PR rtl-optimization/15717
1774         * config/i386/i386.c (legitimate_constant_p): Do not allow
1775         x - symbol_ref.
1776
1777 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
1778
1779         * gimplify.c (copy_if_shared_r): Revert:
1780         2004-05-21  Richard Henderson  <rth@redhat.com>
1781         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1782
1783 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1784
1785         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1786         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
1787         (init_expmed): Initialize these cost arrays as appropriate.
1788         (store_bit_field, extract_bit_field): Correct whitespace.
1789         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1790         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1791         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1792         word_mode or compute_mode as appropriate.
1793
1794 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1795
1796         PR target/15783
1797         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1798         parameter.  Enumerate the registers inside the PARALLEL.
1799         (function_arg): Adjust call to function_arg_union_value.
1800         (function_value): Likewise.
1801
1802         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1803
1804 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1805
1806         * real.c (real_copysign): New function to implement libm's copysign.
1807         * real.h (real_copysign): Prototype here.
1808         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1809         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1810         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1811         fold_builtin_isdigit): Add function prototypes.
1812         (fold_builtin_copysign): New function to fold copysign, copysignf
1813         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1814         constant arguments at compile-time using real_copysign.  Fold
1815         copysign(X,Y) as fabs(X) if Y is always non-negative.
1816         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1817         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1818
1819 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
1820
1821         * tree.c (iterative_hash_expr): Use real_hash.
1822
1823 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1824
1825         PR c/14765
1826         * c-parse.in (compstmt_primary_start): Set last_expr_type to
1827         NULL_TREE.
1828
1829 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1830
1831         PR c++/15815
1832         * doc/extend.texi: Deprecate #pragma interface and #pragma
1833         implementation.
1834
1835 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
1836
1837         PR middle-end/15666
1838         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1839         builtin decl as well.
1840
1841 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1842
1843         PR c/14649
1844         * c-typeck.c (require_constant_value, require_constant_elements):
1845         Move declarations to the top of the file.
1846         (build_function_call): If we require a constant value, fold with
1847         fold_initializer.  If the result is a constant, and the function
1848         wasn't called using __builtin_foo, issue a pedantic warning.
1849         (build_unary_op): If we require a constant value, fold tree with
1850         fold_initializer.
1851         (build_binary_op): Use require_constant_value to determine whether
1852         to call fold or fold_initializer.
1853
1854 2004-06-07  Richard Henderson  <rth@redhat.com>
1855
1856         * gimple-low.c (struct lower_data): Add the_return_label and
1857         one_return_stmt.
1858         (lower_function_body): Initialize and use them.
1859         (lower_return_expr): New.
1860         (lower_stmt): Call it.
1861         * gimplify.c (gimplify_return_expr): Force the argument to be either
1862         null or a result_decl.
1863         * tree-gimple.c: Update gimple grammer to match.
1864         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1865         coalescing of result_decls.
1866
1867 2004-06-07  Richard Henderson  <rth@redhat.com>
1868
1869         PR rtl-opt/15193
1870         * expmed.c (extract_bit_field): Fix vector_extract return.
1871
1872         * config/i386/i386.md (negv4sf2): New pattern.
1873
1874 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1875
1876         PR c++/15337
1877         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1878         message.
1879
1880 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1881
1882         * config.in: Regenerate.
1883
1884 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1885
1886         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1887         SWITCH_LABELS are always sorted.
1888
1889 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1890
1891         * hooks.c (hook_int_void_1): New generic hook.
1892         * hooks.h (hook_int_void_1): Add prototype.
1893         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1894         Define to hook_int_void_1.
1895         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1896         with dummies for the new one.
1897
1898 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1899
1900         * tree.h (lvalue_or_else): Delete function prototype.
1901         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1902
1903 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1904
1905         PR target/14542
1906         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1907         a live change of a register after peephole replacement.
1908
1909 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1910
1911         PR c/13519
1912         * c-typeck.c (composite_type, common_pointer_type): New functions.
1913         (common_type): Split parts into composite_type and
1914         common_pointer_type.  Ensure that arithmetic operations return
1915         unqualified types without attributes.  Don't make composite type
1916         of signed enum and compatible integer be unsigned.
1917         (build_conditional_expr, build_binary_op): Use
1918         common_pointer_type.
1919         * c-decl.c (merge_decls): Use composite_type.
1920         * c-tree.h (composite_type): Declare.
1921
1922 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1923
1924         PR target/14457
1925         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1926         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1927         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1928         (inhibit_libc): Must define.
1929         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1930         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1931         ("xorhi3"): Likewise.
1932
1933 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1934
1935         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1936         always_inline pass.
1937
1938 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1939
1940         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1941         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1942
1943 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1944
1945         * regclass.c (init_reg_sets): Check for missing registers in target
1946         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1947
1948 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1949
1950         * Makefile.in (MKDEPS_H): New shorthand.
1951         (c-opts.o): Update dependencies.
1952         * c-opts.c: Include mkdeps.h.
1953         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1954         not cpp_add_dependency_target.
1955
1956 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1957
1958         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1959         * config/v850/v850.md: Convert to DFA scheduler description.
1960
1961 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1962
1963         PR fortran/15478
1964         * doc/install.texi: Document GMP as prerequisite. Document
1965         --with-gmp and --with-gmp-dir configure options.
1966         * fortran/gfortran.texi: Remove section "Compiling and testing",
1967         remove TOC reference to it.
1968
1969 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1970
1971         * combine.c(simplify_shift_const): Check shift amount is a
1972         CONST_INT.
1973
1974 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1975
1976         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1977         opening asm_out_file.
1978         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1979         reading asm_out_file. Replace fflush after reading asm_out_file
1980         with fseek.
1981         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1982         default and add to HOST_HOOKS_INITIALIZER.
1983         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1984         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1985         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1986         to set mmi.offset padding.
1987          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1988         $(srcdir)/config/i386/winnt.c.
1989         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1990         (i[34567]86-*-uwin*): Likewise.
1991         *i[34567]86-*-interix3*): Likewise.
1992         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1993         * config/i386/host-mingw32.c: New file.
1994         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1995         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1996         (extern_head): Likewise.
1997         (struct export_list) Likewise.
1998         (export_head): Likewise.
1999         (i386_pe_record_external_function): Use ggc_alloc.
2000         (i386_pe_record_exported_symbol): Likewise.
2001         Include "gt-winnt.h" at end.
2002         * doc/hostconfig.texi: Document
2003         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2004
2005 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
2006
2007         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2008         Rename 68000 and 68k to m68k for consistency in comments.  Remove
2009         trailing whitespace before EOLs and before TABs.
2010         (MAX_CODE_ALIGN): Remove unused macro.
2011         (CALL_USED_REGISTERS): Reformat and add comments.
2012
2013 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
2014
2015         * gcc.c (MFLIB_SPEC): Remove library references, to require users
2016         to enumerate -lmudflap* and dependencies when linking.
2017
2018 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
2019
2020         PR target/15822
2021         * dojump.c (do_jump): Fix uninitialized variable tcode1.
2022
2023 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
2024
2025         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2026         * genconditions.c (write_header): Back out removal of reload.h.
2027
2028 2004-06-04  Jan Hubicka  <jh@suse.cz>
2029
2030         Re-apply hopefully fixed patch:
2031         * i386.md (UNSPECV_EH_RETURN): Kill.
2032         (eh_return): Use jump_insn.
2033         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2034
2035 2004-06-04  Jeff Law  <law@redhat.com>
2036
2037         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2038
2039 2004-06-04  Steven Bosscher  <stevenb@suse.de>
2040
2041         * except.c (for_each_eh_region): New function.
2042         * except.h (for_each_eh_region): Add a prototype for it.
2043         * tree-cfg.c (update_eh_labels): New function, callback for
2044         for_each_eh_region.
2045         (label_for_bb): Make global static, unfortunately.
2046         (cleanup_dead_labels): Also update label references for
2047         exception regions.
2048
2049 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
2050
2051         * config/mips/mips.c (struct irix_section_align_entry): Fix
2052         GTY marker.
2053
2054 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
2055
2056         * toplev.c (check_global_declarations): Don't ask for
2057         DECL_ASSEMBLER_NAME unless the function really is declared
2058         static and not defined.
2059
2060 2004-06-03  Matt Austern  <austern@apple.com>
2061
2062         PR c++/15428
2063         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2064         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2065         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2066         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2067         documentation to reflect the new macro name and to clarify its
2068         meaning.
2069
2070 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2071
2072         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2073
2074 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
2075
2076         * config/darwin.c (machopic_indirect_data_reference): Copy
2077         the SYMBOL_REF_DECL from the original RTX for the new
2078         non-lazy pointer RTX.
2079
2080 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
2081
2082         * tree.h: Remove include of version.h
2083         * c-cppbuiltin.c: Include version.h
2084         * diagnostic.c: Include version.h
2085         * dwarf2out.c: Include version.h
2086         * toplev.c: Include version.h
2087         * vmsdbgout.c: Include version.h
2088         * Makefile.in: Remove dependency on version.h from TREE_H, and
2089         add dependencies to required .o targets
2090
2091 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
2092
2093         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2094         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2095         (TARGET_H): Add insn-modes.h.
2096         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2097         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2098         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2099         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2100         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2101         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2102         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2103         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2104         CFGLAYOUT_H.
2105         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2106         Replace ra.h with RA_H.
2107         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2108         insn-recog.o): Replace resource.h with RESOURCE_H.
2109         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2110         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
2111         with SCHED_INT_H.
2112         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2113         ra-rewrite.o): Replace df.h with DF_H.
2114         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2115         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2116         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2117         (insn-conditions.o): Remove unused reload.h.
2118         * cfglayout.h: Add include guard.  Include basic-block.h.
2119         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
2120         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2121         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
2122         basic-block.h.
2123         * genconditions.c:  Remove reload.h.
2124         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
2125         hard-reg-set.h, insn-modes.h.
2126         * resource.h: Add include guard.  Include hard-reg-set.h.
2127         * sched-int.h:  Add include guard.  Include insn-attr.h,
2128         basic-block.h, rtl.h.
2129         * target.h: Add include guard.  Include insn-modes.h.
2130         * tree-ssa-live.h: Include partition.h.
2131
2132 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
2133                 Kenneth Zadeck <zadeck@naturalbridge.com>
2134
2135         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2136         (add_var_to_ssa_edges_worklist): Add value argument.
2137         Update callers.
2138         Use new worklist.
2139         (process_ssa_edge_worklist): New function.
2140         (tree_ssa_ccp): Move worklist processing core to
2141         process_ssa_edge_worklist, and just call that for the two worklists.
2142
2143 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2144
2145         * basic-block.c (tail_recursion_label_list): Don't declare.
2146         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
2147         accordingly.
2148         * cfgbuild.c (find_label_refs): Remove.
2149         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2150         * cfgcleanup.c (tail_recursion_label_p): Remove.
2151         (merge_blocks_move): Do not check for tail recursion.
2152         (try_optimize_cfg): Likewise.
2153         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2154         * cfgrtl.c (tail_recursion_label_list): Remove.
2155         * except.c (remove_unreachable_regions): Don't handle
2156         CALL_PLACEHOLDER insns.
2157         (convert_from_eh_region_ranges_1, can_throw_internal,
2158         can_throw_external): Likewise.
2159         * function.c (free_after_compilation): Don't clear
2160         x_tail_recursion_label.
2161         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2162         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2163         (reorder_blocks_1): Likewise.
2164         * function.h (struct function): Remove x_tail_recursion_label
2165         member.  Don't define tail_recursion_label.
2166         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2167         * print-rtl.c (print_rtx): Likewise.
2168         * rtl.def (CALL_PLACEHOLDER): Remove.
2169         * rtl.h (sibcall_use_t): Remove enum.
2170         (optimize_sibling_and_tail_recursive_calls,
2171         replace_call_placeholder): Remove function prototypes.
2172         * stmt.c (tail_recursion_args): Remove.
2173         (optimize_tail_recursion): Remove.
2174         (expand_return): Don't check for possible tail recursion.
2175         * tree.h (optimize_tail_recursion): Remove prototype.
2176
2177 2004-06-02  Jan Hubicka  <jh@suse.cz>
2178
2179         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
2180         return_stmt.
2181
2182 2004-06-02  Jason Merrill  <jason@redhat.com>
2183
2184         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2185         Do include c-parse.in.
2186
2187 2004-06-02  Eric Christopher  <echristo@redhat.com>
2188
2189         * c-typeck.c (common_type): Don't lose type qualifiers
2190         when creating new variants.
2191
2192 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
2193
2194         PR tree-optimization/14042
2195         PR tree-optimization/14729
2196         PR tree-optimization/14736
2197         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2198         Check the type which the pointer points to
2199         instead of the pointer types.
2200
2201 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2202
2203         PR tree-optimization/15738.
2204         * builtins.c (fold_builtin_strchr): Transform
2205         strrchr (s, '\0') to strchr (s, '\0').
2206
2207 2004-06-02  Steven Bosscher  <stevenb@suse.de>
2208
2209         * i386.c (ix86_adjust_cost): Don't increase the cost for
2210         load+operation for PROCESSOR_PENTIUMPRO, it is already
2211         modelled in the DFA description
2212
2213 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
2214
2215         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2216         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2217         (ALIAS_H, EMIT_RTL_H): New.
2218         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2219         (cfgcleanup.o): Add EMIT_RTL_H.
2220         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2221         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2222         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2223         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2224         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
2225         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2226         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2227         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2228         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2229         set_mem_size): Move to emit-rtl.h.
2230         * emit-rtl.h: New.
2231         * alias.h: New.
2232
2233 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
2234
2235         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2236         Call fixup_memory_subreg only if the MEM is equal to 'var'.
2237         Adjust recursive calls to self.
2238         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2239
2240 2004-06-01  Richard Henderson  <rth@redhat.com>
2241             Andrew Pinski  <pinskia@physics.uc.edu>
2242
2243         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2244         (primary): Handle offsetof.  Add error productions for faux functions.
2245         Move component_ref objc checking to build_component_ref.
2246         (reswords): Add offsetof.
2247         (rid_to_yy): Add offsetof.
2248         * c-tree.h (build_offsetof): Declare.
2249         * c-common.h (objc_is_public): Declare.
2250         * c-typeck.c (build_component_ref): Check objc_is_public.
2251         (build_offsetof): New.
2252         * stub-objc.c (objc_is_public): New.
2253         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2254         from is_public.
2255         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2256         * doc/extend.texi (Offsetof): Move from C++ section to C section
2257         and rewrite for __builtin_offsetof.
2258
2259 2004-06-01  Peter Barada  <peter@the-baradas.com>
2260             Peter Jakubek  <peter@laseranimation.com>
2261
2262         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
2263         a scratch to perform an add to memory.
2264
2265 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2266
2267         PR target/14018
2268         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2269         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2270         m68k_align_funcs): Remove.
2271         (override_options): Remove code to handle -malign-* options.
2272         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2273         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2274         (m68k_align_loops_string, m68k_align_jumps_string,
2275         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2276         m68k_align_funcs): Remove definitions.
2277
2278 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
2279
2280         PR target/15626
2281         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2282         by the Sun linker in conjunction with the Sun assembler.
2283         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2284
2285 2004-06-01  Jeff Law  <law@redhat.com>
2286
2287         * stmt.c (expand_decl): Be more selective about calling
2288         mark_reg_pointer.
2289
2290 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
2291
2292         PR objc/7993
2293         * objc-act.c (is_private): Do not emit the 'instance variable %s
2294         is declared private' error.
2295         (is_public): Emit the error after calling is_private.
2296         (lookup_objc_ivar): If the instance variable is private, return 0
2297         - the instance variable is invisible here.
2298
2299 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2300
2301         * doc/invoke.texi (-static-libgcc): Explicitly mention
2302         non-GNU linkers.
2303
2304 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2305
2306         PR target/12968
2307         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2308
2309 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2310
2311         PR c/15749
2312         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2313         misuses of structures with flexible array members if
2314         in_system_header.
2315
2316 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2317
2318         PR target/15693
2319         * config/sparc/sparc.c (compare_operand): New predicate.
2320         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2321         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
2322         operand is a ZERO_EXTRACT and the second operand is not zero,
2323         force the former to a register.
2324         (cmpdi expander): Likewise.
2325
2326 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
2327
2328         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2329         looks at.
2330         * alias.c (alias_invariant_size): Make alias_invariant_size
2331         static, fix GTY marker.
2332
2333 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2334
2335         PR tree-optimization/15743.
2336         * builtins.c (fold_builtin_1): Fold index() and rindex().
2337
2338 2004-05-31  Roger Sayle  <roger@eyesopen.com>
2339
2340         PR middle-end/15069
2341         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2342         into "X < 0" (where C is the signbit) if X's type is a full mode.
2343
2344 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2345
2346         * pa.md: Disable the peephole2 patterns that generate indexed
2347         floating-point stores when indexing is disabled.
2348
2349 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2350
2351         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2352         (pp_c_right_bracket): Likewise.
2353         (pp_c_star): Likewise.
2354         (pp_c_ampersand): Define.
2355         * c-pretty-print.h (pp_c_left_bracket): Declare.
2356         (pp_c_right_bracket): Likewise.
2357         (pp_c_star): Likewise.
2358         (pp_c_ampersand): Likewise.
2359
2360 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2361
2362         * config/sol2.h (__enable_execute_stack): ANSIfy function
2363         definition.
2364
2365 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2366
2367         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2368         HAVE_DOS_BASED_FILESYSTEM.
2369
2370 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2371
2372         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2373         Only look at case labels if the immediate dominator is also
2374         the only predecessor.  Don't look for more case labels if the
2375         first seen is a case range.
2376
2377 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2378
2379         * builtins.c: Add a prototype for fold_builtin_strchr().
2380
2381 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2382
2383         Revert this patch:
2384         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2385
2386         * combine.c (gen_binary): Remove.
2387         (known_cond, simplify_shift_const
2388         find_split_point, combine_simplify_rtx,
2389         simplify_if_then_else, simplify_set,
2390         simplify_logical, expand_field_assignment,
2391         extract_left_shift, force_to_mode,
2392         if_then_else_cond, apply_distributive_law,
2393         simplify_and_const_int, simplify_shift_const,
2394         gen_lowpart_for_combine, simplify_comparison,
2395         reversed_comparison): Replace with
2396         simplify_gen_binary, simplify_gen_relational or
2397         distribute_and_simplify_rtx.
2398         (distribute_and_simplify_rtx): New function.
2399
2400 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2401
2402         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2403         when generating PIC code.
2404
2405 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2406
2407         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2408         (c_expand_body): here.
2409         (c_expand_decl): Move to ...
2410         * c-common.c (c_expand_decl): Here and remove check for nested
2411         functions.
2412         * c-common.h (c_expand_decl): Add prototype.
2413         * c-tree.h (c_expand_decl): Remove.
2414
2415 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2416
2417         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2418         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2419         fold_mathfn_compare, fold_inf_compare, fold,
2420         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2421         Use constant_boolean_node where appropriate.  Don't bother using
2422         fold_convert on the second argument to omit_one_operand.
2423
2424 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2425
2426         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2427         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2428         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2429         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2430         Add missing (but documented) tree nodes to the index.
2431
2432 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2433
2434         PR tree-optimization/14819
2435         * builtins.c (fold_builtin_strchr): New.
2436         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2437         with fold_builtin_strchr().
2438
2439 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2440
2441         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2442         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2443         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2444         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2445         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2446         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2447         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2448         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2449         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2450         formatting.
2451
2452 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2453
2454         * gimplify.c (sort_case_labels): New.  Split out from...
2455         (gimplify_switch_expr): ...here.  Use it.
2456         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2457         the SWITCH_EXPR created here before leaving the function.
2458         * tree.c (sort_case_labels): Add prototype.
2459
2460 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2461
2462         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2463         of BOOLEAN_TYPE.
2464
2465 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2466
2467         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2468         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2469         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2470         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2471         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2472         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2473         comment typos.  Follow spelling conventions.
2474
2475 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2476
2477         * gengtype-yacc.y: Add NESTED_PTR token.
2478         (option): Record `nested_ptr' option.
2479         * gengtype-lex.l: Handle `nested_ptr' keyword.
2480         * gengtype.c (walk_type): Process `nested_ptr' option.
2481         * gengtype.h (struct nested_ptr_data): New.
2482         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2483         * stringpool.c (struct string_pool_data): Make 'entries' point to
2484         ht_identifier instead of tree.
2485         (gt_pch_save_stringpool): Don't adjust pointers.
2486         (gt_pch_restore_stringpool): Call ht_load.
2487
2488 2004-05-29  Jason Merrill  <jason@redhat.com>
2489
2490         * gimplify.c (gimplify_expr): Don't build a statement list
2491         if no gimplification was necessary.
2492
2493 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2494
2495         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2496         and %> as well as %'.
2497         * c-format.c: Use %< and %>.
2498         (gcc_diag_char_table, gcc_cdiag_char_table,
2499         gcc_cxxdiag_char_table): Update.
2500
2501 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2502
2503         * c-typeck.c (common_type): Correct comment.
2504
2505 2004-05-29  Peter Barada  <peter@the-baradas.com>
2506
2507         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2508         * config/m68k/m68k.c (const_method): Likewise.
2509         * config/m68k/m68k.c (const_int_cost): Likewise.
2510         * config/m68k/m68k.c (const_int_cost): Likewise.
2511         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2512
2513 2004-05-29  Peter Barada  <peter@the-baradas.com>
2514
2515         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2516         addressing.
2517         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2518         movsi,movhi,movqi insn patterns.
2519
2520 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2521
2522         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2523
2524         PR target/15720
2525         * config/darwin.c (machopic_indirect_call_target): Copy
2526         the SYMBOL_REF_DECL from the original RTX for the new
2527         stub RTX.
2528
2529 2004-05-28  DJ Delorie  <dj@redhat.com>
2530
2531         * stor-layout.c (place_field): Revert erroneous commit.
2532
2533 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2534
2535         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2536         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2537         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2538         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2539         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2540         vec_ste): Remove type checks for integral parameters and literals
2541         from '..._args_eq' macros.
2542
2543 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2544
2545         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2546
2547 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2548
2549         * testsuite/g++.dg/charset/function.cc: New.
2550
2551         * testsuite/gcc.dg/charset/function.c: New.
2552
2553         * c-decl.c (c_make_fname_decl): Free return value from
2554         fname_as_string.
2555
2556         * cp/decl.c (cp_make_fname_decl): Free return value from
2557         fname_as_string.
2558
2559         * c-common.c (fname_as_string): Translate if necessary.
2560
2561 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2562
2563         * stringpool.c: Add comments to PCH saving/restoring routines.
2564
2565 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2566
2567         * c-common.c (c_estimate_num_insns_1): Kill.
2568         (c_estimate_num_insns): Kill.
2569         * c-common.h (c_estimate_num_insns): Kill.
2570
2571         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2572         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2573         Remove comment about not checking for
2574         _POSIX_PRIORITY_SCHEDULING.
2575         * gthr-posix.c: Likewise.
2576
2577 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2578             Roger Sayle  <roger@eyesopen.com>
2579
2580         PR rtl-optimization/15649
2581         Add LTGT_EXPR and improve pretty-printing of unordered
2582         comparisons.
2583         * c-common.c (c_common_truthvalue_conversion):
2584         Handle LTGT_EXPR.
2585         * c-typeck.c (build_binary_op): Likewise.
2586         * dojump.c (do_jump): Likewise.
2587         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2588         * predict.c (tree_predict_by_opcode): Likewise.
2589         * real.c (real_compare): Likewise.
2590         * tree-cfg.c (verify_expr): Likewise.
2591         * tree-inline.c (estimate_num_insns_1): Likewise.
2592         * tree-pretty-print.c (dump_generic_node): Likewise.
2593         Handle ORDERED_EXPR, UNORDERED_EXPR.
2594         (op_symbol): Print unordered comparisons differently
2595         than ordered ones.
2596         * tree.def (LTGT_EXPR): New '<' tree code.
2597         * doc/c-tree.texi (Expressions): Document floating-point
2598         comparison nodes.
2599
2600         Fold comparisons between floating point values.
2601         * fold-const.c (enum comparison_code): New, from
2602         #define'd constants.  Define compcodes for unordered
2603         comparisons and for invalid transformations.
2604         (invert_tree_comparison): Add "honor_nans" parameter.
2605         (fold_truthop): Revamp to work on floating-point types too.
2606         (comparison_to_compcode): Support unordered comparisons.
2607         Use new enum comparison_code.
2608         (compcode_to_comparison): Likewise.
2609         (combine_compcodes): New function.
2610         (invert_truthvalue): Let invert_tree_comparison decide
2611         whether it is valid to fold the comparison.  Fold ORDERED
2612         and UNORDERED even if flag_unsafe_math_optimizations is off,
2613         and the remaining even if flag_unsafe_math_optimizations
2614         is off but we are under -fno-trapping-math.
2615         (fold_relational_const): Integer modes do not honor NaNs.
2616
2617 2004-05-28  Paul Brook  <paul@codesourcery.com>
2618
2619         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2620
2621 2004-05-28  Paul Brook  <paul@codesourcery.com>
2622
2623         * config/arm/arm.c (thumb_force_lr_save): New function.
2624         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2625         thumb_output_function_prologue): Use it.
2626         (thumb_expand_prologue): Set lr_save_eliminated.
2627
2628 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2629
2630         * config/mips/mips.md (extendsidi2): Tie the source and destination
2631         of the register alternative.  Split it into nothing.
2632
2633 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2634
2635         * rtl.h (skip_consecutive_labels): Declare.
2636         * emit-rtl.c (skip_consecutive_labels): New function.
2637         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2638         * jump.c (follow_jumps): Say what null return values mean.
2639
2640 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2641
2642         PR target/13250
2643         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2644
2645 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2646
2647         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2648         libgcc-std.ver.
2649         * config/sh/libgcc-std.ver: New file.
2650
2651 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2652
2653         * except.c: Revert change of 2004-05-26.
2654         * config/i386/i386.md: Revert change of 2004-05-27.
2655
2656 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2657
2658         * configure.ac: Remove --enable-tree-browser option.
2659         Define TREEBROWSER when ac_tree_checking is defined.
2660         * configure: Rebuilt.
2661
2662 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2663
2664         * expr.c (store_constructor): Restore sanity check on
2665         the size of the type before clearing.
2666
2667 2004-05-27  Jan Hubicka  <jh@suse.cz>
2668
2669         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2670
2671 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2672
2673         * combine.c (gen_binary): Remove.
2674         (known_cond, simplify_shift_const
2675         find_split_point, combine_simplify_rtx,
2676         simplify_if_then_else, simplify_set,
2677         simplify_logical, expand_field_assignment,
2678         extract_left_shift, force_to_mode,
2679         if_then_else_cond, apply_distributive_law,
2680         simplify_and_const_int, simplify_shift_const,
2681         gen_lowpart_for_combine, simplify_comparison,
2682         reversed_comparison): Replace with
2683         simplify_gen_binary, simplify_gen_relational or
2684         distribute_and_simplify_rtx.
2685         (distribute_and_simplify_rtx): New function.
2686         * simplify-rtx.c (simplify_binary_operation):
2687         Use nonzero_bits to simplify ANDs where we are
2688         turning off bits already known to be off in OP0.
2689
2690 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2691
2692         PR target/14478
2693         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2694
2695 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2696
2697         PR middle-end/14084
2698         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2699         to size of decl.
2700
2701 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2702
2703         PR/14924
2704         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2705
2706 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2707
2708         * tree.h: Fix comment typo.
2709
2710 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2711
2712         * gimplify.c (compare_case_labels): New function.
2713         (gimplify_switch_expr): Sort case labels, and make sure the
2714         last label in the label vector is the default case.
2715         * tree-cfg.c (group_case_labels): New function.
2716         (build_tree_cfg): Cleanup redundant labels and group case labels
2717         before creating edges.
2718         (cleanup_dead_labels): Handle GOTO_EXPRs.
2719         (find_case_label_for_value): Use a binary search to find the
2720         case label for the given value.
2721         * tree-gimple.c: Mention that labels are sorted, and that the
2722         last label must be the default.
2723
2724 2004-05-27  Jan Hubicka  <jh@suse.cz>
2725
2726         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2727
2728 2004-05-27  Jan Hubicka  <jh@suse.cz>
2729
2730         * i386.md (UNSPECV_EH_RETURN): Kill.
2731         (eh_return): Use jump_insn.
2732         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2733
2734 2004-05-26  Jan Hubicka  <jh@suse.cz>
2735
2736         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
2737         not loop optimizing.
2738
2739 2004-05-26  Jan Hubicka  <jh@suse.cz>
2740
2741         * except.c (can_throw_internal):  Notice RESX instructions.
2742
2743 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
2744
2745         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2746         of the two sizes to assemble_integer.
2747
2748 2004-05-25  Paul Brook  <paul@codesourcery.com>
2749
2750         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2751         pointless #ifdef.
2752
2753 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2754
2755         * Makefile.in (top_builddir): Define to .
2756
2757 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
2758
2759         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2760         top-level detects, except when in-tree ld is being cross-built.
2761         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
2762         then AS only if target is host.
2763         * configure: Rebuilt.
2764
2765 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
2766
2767         * global.c (global_alloc): Call make_accurate_live_analysis.
2768         (record_one_conflict): Remove dead code.
2769         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2770         (bb_info): New structure.
2771         (BB_INFO, BB_INFO_BY_INDEX): New macros.
2772         (allocate_bb_info, free_bb_info, mark_reg_change,
2773         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2774         modify_bb_reg_pav, calculate_reg_pav,
2775         make_accurate_live_analysis): New functions.
2776
2777 2004-05-25  Devang Patel  <dpatel@apple.com>
2778
2779         * alias.c (init_alias_analysis): Use ggc_calloc instead of
2780         xrealloc.
2781         (end_alias_analysis): Use ggc_free instead fo free.
2782
2783 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
2784
2785         PR target/15546
2786         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2787         as needed to be outputted.
2788
2789 2004-05-25  Jan Hubicka  <jh@suse.cz>
2790
2791         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
2792
2793 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
2794         Mostafa Hagog  <mustafa@il.ibm.com>
2795
2796         * Makefile.in (modulo-sched.o, ddg.o): New.
2797         * ddg.h, ddg.c, modulo-sched.c: New files.
2798         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2799         internals to "dupicate_insn".
2800         (duplicate_insn): New function.
2801         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2802         declarations.
2803         * common.opt (fmodulo-sched): New flag.
2804         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2805         Remove static and forward declaration.
2806         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2807         functions.
2808         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2809         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2810         declarations.
2811         * flags.h (flag_modulo_sched): New flag.
2812         * opts.c (common_handle_option): Handle modulo-sched flag.
2813         * params.def (max-sms-loop-number, sms-max-ii-factor,
2814         sms-dfa-history, sms-loop-average-count-threshold): New
2815         parameters.
2816         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2817         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2818         parameters.
2819         * passes.c ("sms", "sms-vcg"): New dumps.
2820         (rest_of_handle_sched): Call sms_schedule.
2821         * rtl.h (sms_schedule): New declaration.
2822         * timevar.def (TV_SMS): New.
2823         * toplev.c (flag_modulo_sched): Initialize.
2824         (f_options): Handle -fmodulo-sched option.
2825         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2826         * docs/passes.texi: Document new SMS pass.
2827
2828 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2829
2830         * Makefile.in (OBJS): Add rtlhooks.o.
2831         (rtlanal.o): Depend on function.h.
2832         (cse.o): Depend on rtlhooks-def.h.
2833         (combine.o): Depend on rtlhooks-def.h.
2834         (rtlhooks.o): New rule.
2835         * combine.c: Include rtlhooks-def.h.
2836         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2837         num_sign_bit_copies, cached_num_sign_bit_copies,
2838         num_sign_bit_copies1): Move most of the code to rtlanal.c.
2839         (reg_nonzero_bits_for_combine,
2840         reg_num_sign_bit_copies_for_combine): New functions holding
2841         the remnants of the above.
2842         (combine_rtl_hooks): New.
2843         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2844         * cse.c: Include rtlhooks-def.h.
2845         (cse_rtl_hooks): New.
2846         (cse_main): Set rtl_hooks instead of gen_lowpart.
2847         * emit-rtl.c (gen_lowpart): Remove.
2848         (gen_lowpart_general): Move to rtlhooks.c.
2849         * rtl.h (nonzero_bits, num_sign_bit_copies,
2850         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2851         (gen_lowpart_general): Remove.
2852         (gen_lowpart): Temporarily redefine as a macro.
2853         * rtlanal.c: Include function.h.
2854         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2855         num_sign_bit_copies, cached_num_sign_bit_copies,
2856         num_sign_bit_copies1): New, from combine.c.
2857         * rtlhooks.c: New file.
2858         * rtlhooks-def.h: New file.
2859
2860 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2861
2862         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2863         to support 32-bit -mint8 mode.
2864
2865         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2866         option in the AVR architecture.
2867
2868 2004-05-24  Mike Stump  <mrs@apple.com>
2869
2870         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2871
2872 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2873
2874         * intl.h (open_quote, close_quote): New.
2875         * intl.c (open_quote, close_quote): New.
2876         (gcc_init_libintl): Set them.
2877         * pretty-print.c: Include "intl.h".
2878         (pp_base_format_text): Support 'q' format flag and %` and %'
2879         formats.  Use ' instead of ` in comments.
2880         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2881         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2882         foramt_types_orig): Describe these new formats.
2883         (decode_format_attr, check_function_format,
2884         check_format_info_main): Use these new formats.
2885         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2886         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2887         check these formats to 3.5.
2888
2889 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2890
2891         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2892         (BACKEND): Reflect this.
2893         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2894         (LIBS): Likewise.
2895
2896 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2897
2898         PR tree-optimization/14197
2899         * builtins.c: Include "tree-gimple.h"
2900         (readonly_data_expr): Use get_base_address.  Make sure to call
2901         decl_readonly_section only on trees it can handle.
2902         * tree-gimple.c (get_base_address): Accept STRING_CST and
2903         CONSTRUCTOR expressions.
2904         * Makefile.in: Update dependencies.
2905
2906 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2907
2908         Move libcpp to the toplevel.
2909         * Makefile.in: Remove references to libcpp files,
2910         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2911         and change hashtable.h to that.
2912         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2913         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2914         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2915         * configure: Regenerate.
2916         * config.in: Regenerate.
2917         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2918         * cppcharset.c: Removed.
2919         * cpperror.c: Removed.
2920         * cppexp.c: Removed.
2921         * cppfiles.c: Removed.
2922         * cpphash.c: Removed.
2923         * cpphash.h: Removed.
2924         * cppinit.c: Removed.
2925         * cpplex.c: Removed.
2926         * cpplib.c: Removed.
2927         * cpplib.h: Removed.
2928         * cppmacro.c: Removed.
2929         * cpppch.c: Removed.
2930         * cpptrad.c: Removed.
2931         * cppucnid.h: Removed.
2932         * cppucnid.pl: Removed.
2933         * cppucnid.tab: Removed.
2934         * hashtable.c: Removed.
2935         * hashtable.h: Removed.
2936         * line-map.c: Removed.
2937         * line-map.h: Removed.
2938         * mkdeps.c: Removed.
2939         * mkdeps.h: Removed.
2940         * stringpool.h: Include symtab.h instead of hashtable.h.
2941         * tree.h: Include symtab.h instead of hashtable.h.
2942         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2943
2944 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2945
2946         * gcc.c (struct prefix_list): Add forward declaration.
2947         (do_spec_path): New function, extracted from...
2948         (do_spec_1) <'D'>: ... here.  Drop support for
2949         SPACE_AFTER_L_OPTION.
2950         (do_spec_1) <'I'>: Use do_spec_path.
2951         (process_command): Do not store the 'include' suffix
2952         in include_prefixes.
2953         * system.h: Poison SPACE_AFTER_L_OPTION.
2954
2955 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2956
2957         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2958         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2959
2960 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2961
2962         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2963         Update based on printed manual.  Enable setting of offsets for
2964         FSFPRINT and move it to gcc-common.texi.
2965         * doc/gcc.texi: Update FSF printing details.
2966         * doc/gccint.texi: Remove FSF printing details.
2967
2968 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2969
2970         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2971
2972 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2973
2974         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2975         expand_builtin_strrchr, expand_builtin_strpbrk,
2976         expand_builtin_mempcpy, expand_builtin_memcmp,
2977         expand_builtin_strcmp, expand_builtin_strncmp,
2978         expand_builtin_strcat, std_expand_builtin_va_start,
2979         std_expand_builtin_va_arg, expand_builtin_va_copy,
2980         expand_builtin_signbit, fold_builtin_cabs,
2981         fold_builtin_logarithm, fold_builtin_mempcpy,
2982         fold_builtin_signbit, fold_builtin_isascii,
2983         fold_builtin_toascii, fold_builtin_isdigit,
2984         fold_builtin_1, build_function_call_expr,
2985         simplify_builtin_strchr, simplify_builtin_strrchr,
2986         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2987         simplify_builtin_memcmp, simplify_builtin_strcmp,
2988         simplify_builtin_strncmp, simplify_builtin_strncat,
2989         simplify_builtin_strspn, simplify_builtin_strcspn,
2990         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2991         to build with calls to build2, build3 or omit_one_operand.
2992
2993 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2994
2995         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2996         section when generating EABI code.
2997
2998 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2999
3000         PR 15546
3001         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
3002         Call mark_decl_referenced on the SYMBOL_REF_DECL.
3003
3004 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3005
3006         * c-common.c (c_common_truthvalue_conversion): Handle
3007         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
3008         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
3009         i.e. set the type to truthvalue_type_node and return.
3010
3011 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
3012
3013        * tree.h (struct tree_decl): Add possibly_inlined bit.
3014         (DECL_POSSIBLY_INLINED): New accessor macro.
3015         * cgraph.h: Remove declaration of cgraph_inline_hash.
3016         * cgraph.c: Remove definition of cgraph_inline_hash.
3017         (hash_node): Revert to hashing DECL_UID.
3018         (eq_node): Take two pointers to cgraph_node structures.
3019         Compare DECL_UIDs.
3020         (cgraph_remove_node): Pass the node directly to htab_find_slot.
3021         (cgraph_varpool_hash_node): Rename hash_varpool_node;
3022         hash on DECL_UID.
3023         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
3024         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
3025         (cgraph_node): Allocate a temporary node on the stack, fill in
3026         its DECL field, and pass that to htab_find_slot.
3027         (cgraph_varpool_node): Likewise.
3028         (cgraph_function_possibly_inlined_p): If global info is ready,
3029         return the DECL_POSSIBLY_INLINED bit.
3030         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
3031         instead of mucking with cgraph_inline_hash.
3032
3033 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3034
3035         * doc/contrib.texi: Add g77 contributors.
3036
3037 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3038
3039         * calls.c (initialize_argument_information): Forbid sibcalls if a
3040         callee-copied argument is stored in the current function's frame.
3041
3042 2004-05-22  Eric Christopher  <echristo@redhat.com>
3043
3044         * fix-header.c (read_scan_file): Update for add_path change.
3045
3046 2004-05-22  Ben Elliston  <bje@au.ibm.com>
3047
3048         * c.opt (Wmissing-include-dirs): New.
3049         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
3050         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
3051         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
3052         * c-incpath.h (add_path): Add fourth (bool) argument.
3053         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
3054         (add_standard_paths): Likewise.
3055         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
3056         is used and the directory was user-supplied via -I.
3057         (add_path): Set p->user_supplied_p.  Remove duplicated code by
3058         using add_cpp_dir_path ().
3059         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
3060         (struct cpp_dir): Add user_supplied_p.
3061         * doc/invoke.texi (Warning Options): Document new option.
3062
3063 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
3064
3065         * fold-const.c (fold_read_from_constant_string): Convert result to
3066         requested type.
3067
3068 2004-05-21  Richard Henderson  <rth@redhat.com>
3069
3070         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
3071         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
3072         Don't mark VA_ARG_EXPRs volatile here.
3073         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
3074
3075 2004-05-21  Richard Henderson  <rth@redhat.com>
3076
3077         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
3078         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
3079
3080 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3081
3082         * fold-const.c (fold, fold_relational_hi_lo,
3083         nondestructive_fold_binary_to_constant,
3084         fold_read_from_constant_string): Use fold_convert instead of convert.
3085         * builtins.c (simplify_builtin, simplify_builtin_strstr,
3086         simplify_builtin_strchr, simplify_builtin_strrchr,
3087         simplify_builtin_strpbrk): Use fold_convert instead of convert.
3088
3089 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
3090
3091         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
3092         is NULL.
3093
3094 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
3095
3096         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
3097         override sparc.h definition.
3098
3099 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3100
3101         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
3102         get_unwidened, get_narrower): Replace build with build2.
3103         * fold-const.c (negate_expr, associate_trees, size_binop,
3104         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
3105         pedantic_omit_one_operand, distribute_bit_expr,
3106         make_bit_field_ref, optimize_bit_field_compare,
3107         decode_field_reference, range_binop, make_range,
3108         build_range_check, fold_range_test, fold_truthop,
3109         optimize_minmax_comparison, extract_muldiv_1,
3110         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
3111         fold_inf_compare, fold_single_bit_test, fold,
3112         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3113         Likewise replace build with either build2 or build3.
3114
3115 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
3116
3117         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3118         * calls.c (prepare_call_address): Don't test
3119         NO_RECURSIVE_FUNCTION_CSE.
3120         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3121         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3122         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3123         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3124         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3125         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3126         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3127         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3128         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3129         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3130         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3131         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3132         Likewise.
3133         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3134         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3135         * doc/tm.texi (Costs): Remove documentation for
3136         NO_RECURSIVE_FUNCTION_CSE.
3137
3138 2004-05-20  Paul Brook  <paul@codesourcery.com>
3139
3140         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3141         * unwind-dw2.c (extract_cie_info): Ditto.
3142         (_Unwind_FrameState): Change retaddr_column to word type.
3143
3144 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3145
3146         PR middle-end/3074
3147         * fold-const.c (strip_compound_expr): Delete function.
3148         (count_cond): Delete function.
3149         (fold_binary_op_with_conditional_arg): Only perform transformations
3150         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3151         when a is constant.  This greatly simplifies this routine.
3152
3153         * tree.c (saved_expr_p): Delete function.
3154         * tree.h (saved_expr_p): Delete function prototype.
3155
3156 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3157
3158         * common.opt (ftree-loop-optimize): Remove.
3159
3160 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
3161
3162         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3163         (NM_FOR_TARGET): Use := and $(shell).
3164         (mainversion): Remove unused variable.
3165
3166 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3167
3168         * reorg.c (delete_from_delay_slot): If we have a barrier after the
3169         sequence containing the insn to be deleted, always reemit it.
3170
3171 2004-05-20  Richard Henderson  <rth@redhat.com>
3172
3173         PR 15454
3174         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3175         * function.c (expand_function_start): Expand static_chain_decl by hand.
3176         * gimplify.c (create_tmp_var_name): Export.
3177         * tree-gimple.h (create_tmp_var_name): Declare.
3178
3179 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3180
3181         * rs6000.c (print_operand) <case 'z'>: Call
3182         mark_decl_referenced before assemble_name.
3183
3184 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
3185
3186         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3187         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3188         (cgraph_varpool_node): Hash on the pointer to the decl, not
3189         the DECL_UID.  Fixes 64-bit bootstrap failure.
3190
3191 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
3192
3193         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3194         we don't earlyclobber operands used in the second insn.
3195
3196 2004-05-20  Steven Bosscher  <stevenb@suse.de>
3197
3198         * tree-mudflap.c: Formatting fixes.
3199
3200 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
3201
3202         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3203         * gengtype.c (open_base_files): Include reload.h in ifiles.
3204         * reload.h (reg_equiv_memory_loc_varray): Declare.
3205         * reload1.c (reg_equiv_memory_loc_varray): New variable.
3206         (init_reload): Initialize it.
3207         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3208         reg_equiv_memory_loc_varray to size 0.
3209         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3210         growing reg_equiv_memory_loc_varray to the desired size.
3211         * passes.c (rest_of_handle_old_regalloc): Likewise.
3212         * reload.c: Amend comment on calling init_reload.
3213
3214 2004-05-20  Nick Clifton  <nickc@redhat.com>
3215
3216         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3217         with 'TRAMP' in the body of the macro definition.
3218
3219 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3220
3221         PR target/15383
3222         * config/ia64/ia64.c (ia64_expand_compare): Don't check
3223         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3224         cmptf_libfunc isn't set.
3225         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3226         conventions.
3227         (ia64_sysv4_init_libfuncs): New.
3228
3229         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3230         ia64_sysv4_init_libfuncs.
3231
3232 2004-05-20  Falk Hueffner  <falk@debian.org>
3233
3234         PR other/15526
3235         * libgcc2.c (__mulvsi3): Fix overflow test.
3236
3237 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
3238
3239         PR c/14171
3240         * reg-stack.c (nan): Rename to ...
3241         (not_a_num): Here.
3242         (reg_to_stack): Rename nan to not_a_num.
3243         (subst_stack_regs_pat): Likewise.
3244         (convert_regs_entry): Likewise.
3245         (convert_regs_1): Likewise.
3246
3247         * tree-cfg.c (find_case_label_for_value): Replace call to
3248         simple_cst_equal with tree_int_cst_equal.
3249
3250 2004-05-19  Jeff Law <law@redhat.com>
3251
3252         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3253         If the operand is for a use, then strip away the SSA_NAME, do not
3254         strip away the SSA_NAME for a set.  Never call release_ssa_name.
3255         (mark_def_sites): Appropriately pass additional argument to
3256         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
3257         then set the VDEF_RESULT to the VDEF_OP.
3258         (set_def_block): Strip away any SSA_NAME to get to the real
3259         underlying variable.
3260
3261         * tree-ssa-phiopt.c (value_replacement): Handle the case where
3262         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3263         BB directly.
3264
3265 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3266
3267         PR c++/15463
3268         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
3269         result of inverse.
3270
3271         PR rtl-optimization/15274
3272         * loop-iv.c (determine_max_iter, shorten_into_mode,
3273         iv_number_of_iterations): Handle constants correctly.
3274         * rtl.h (get_mode_bounds): Declaration changed.
3275         * stor-layout.c (get_mode_bounds): Return a constant suitable for
3276         the target mode.
3277
3278         PR rtl-optimization/14692
3279         * loop-unswitch.c (may_unswitch_on): Try folding the result.
3280         (unswitch_single_loop): Work correctly when may_unswitch_on
3281         returns a folded constant.
3282
3283         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3284         * simplify-rtx.c (simplify_const_relational_operation): Optimize
3285         comparisons with mode bounds.
3286
3287         * function.c (struct temp_slot): Add new field prev.
3288         (free_after_compilation, init_temp_slots): Free new fields.
3289         (cut_slot_from_list, insert_slot_to_list,
3290         temp_slots_at_level, max_slot_level, move_slot_to_level,
3291         make_slot_available): New functions.
3292         (assign_stack_temp_for_type, combine_temp_slots,
3293         find_temp_slot_from_address, preserve_temp_slots,
3294         preserve_rtl_expr_result, free_temp_slots,
3295         free_temps_for_rtl_expr, pop_temp_slots): Work with
3296         the new structure of lists.
3297         (mark_all_temps_used): Removed.
3298         * function.h (struct function): Field x_temp_slots
3299         replaced by x_used_temp_slots and x_avail_temp_slots.
3300         (temp_slots): Replaced by ...
3301         (used_temp_slots, avail_temp_slots): New.
3302         * tree.h (mark_all_temps_used): Declaration removed.
3303
3304         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3305         simplify_using_assignment): Take the expression out of
3306         the expr_list wrapper.
3307
3308         * loop-iv.c (iv_number_of_iterations): Improve clasification of
3309         infinite loops.
3310
3311 2004-05-19  Roger Sayle  <roger@eyesopen.com>
3312
3313         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3314         costs should be based on code size when optimizing for size.
3315
3316 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
3317
3318         * fold-const.c: Remove non-printable character 160.
3319
3320 2004-05-19  Nick Clifton  <nickc@redhat.com>
3321
3322         * doc/invoke.texi (ARM Options): Fix typo.
3323         Remove descrption of -mshort-load-bytes and
3324         -mno-short-load-bytes.
3325
3326         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3327         missing parenthesis.
3328         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3329         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3330
3331 2004-05-19  Steven Bosscher  <stevenb@suse.de>
3332
3333         * expr.c (store_constructor): Build loop start and end by hand
3334         instead of via loop functions from stmt.c.
3335         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3336         Remove the code to expand them.
3337
3338         * stmt.c (loop_stack): Remove this and everything related.
3339         (struct nesting, enum nesting_desc): Update.
3340         (expand_fixup): Likewise.
3341         (expand_loop_start, expand_start_loop_continue_elsewhere,
3342         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3343         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3344         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3345         expand_exit_something): Remove.
3346         * tree.h: Remove prototypes.
3347
3348 2004-05-18  Mike Stump  <mrs@apple.com>
3349             Devang Patel  <dpatel@apple.com>
3350
3351         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3352         if this label is for eh.
3353         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3354         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3355         * dwarf2out.c (output_call_frame_info): Likewise.
3356         * output.h (default_emit_unwind_label): Likewise.
3357         * target.h (unwind_label): Likewise.
3358         * varasm.c (default_emit_unwind_label): Likewise.
3359
3360         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3361         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3362         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3363         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3364         DEBUG_RANGES_SECTION): Define.
3365
3366 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3367
3368         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3369         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3370         (cgraph_varpool_node):
3371         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3372         (cgraph_function_possibly_inlined_p): Use the decl itself for
3373         the key, not DECL_ASSEMBLER_NAME.
3374         (change_decl_assembler_name): No need to muck with the hash tables.
3375         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3376         Delete.
3377         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3378         for the key, not DECL_ASSEMBLER_NAME.
3379         * cgraph.h: Remove prototypes of deleted functions.
3380         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3381         (mark_decl_referenced): New function.
3382         * tree.h: Prototype mark_decl_referenced.
3383         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3384         mark_decl_referenced before assemble_name.
3385         * c-decl.c (finish_decl): Use mark_decl_referenced.
3386
3387 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3388             Jeff Law <law@redhat.com>
3389
3390         * tree-ssa-phiopt.c (abs_replacement): New function.
3391         (empty_block_p): New function extracted from...
3392         (candidate_bb_for_phi_optimization): Break out empty block test.
3393         (conditional_replacement): Use empty_block_p.
3394         (value_replacement): Similarly.
3395
3396         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3397         * tree-ssa-phiopt.c: Include flags.h.
3398         (conditional_replacement): Remove argument names from prototype.
3399         Minor formatting and comment fixes.
3400         (tree_ssa_phiopt): If conditional_replacement returns false, then
3401         call value_replacement.
3402         (value_replacement): New function.
3403
3404 2004-05-18  Jeff Law  <law@redhat.com>
3405
3406         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3407         from conditional_replacement.
3408         (candidate_bb_for_phi_optimization): Similarly.
3409         (conditional_replacement): Use replace_phi_with_stmt and
3410         candidate_bb_for_phi_optimization.
3411
3412         * tree-ssa-phiopt.c: Fix various formatting issues.
3413
3414 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3415
3416         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3417         s390_expand_cmpmem): Do not use expand_start_loop and
3418         expand_end_loop, instead build the loop manually.
3419
3420 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3421
3422         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3423         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3424
3425 2004-05-17  Jeff Law  <law@redhat.com>
3426
3427         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3428         * flags.h (flag_delete_null_pointer_checks): Here.
3429         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3430         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3431         (add_phi_arg, remove_phi_arg_num): Similarly.
3432         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3433         property into PHI nodes.
3434         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3435         (record_equivalences_from_phis): If all PHI arguments are known to be
3436         nonzero, then the result must be nonzero as well.
3437         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3438         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3439         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3440         as appropriate.
3441         * tree.h (PHI_ARG_NONZERO): Define.
3442         (phi_arg_d): Add nonzero flag.
3443
3444 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3445
3446         * f: Entire directory removed
3447
3448         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3449         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3450         (g77_integer_type_node, g77_uinteger_type_node)
3451         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3452         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3453         the above set of variables.
3454
3455         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3456         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3457         to g77 manual.
3458
3459 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3460
3461         PR tree-optimization/15438
3462         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3463         attributed functions as pure or const.
3464
3465 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3466
3467         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3468         from source code with errors.
3469
3470 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3471
3472         Enable tree browser for all front ends.
3473         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3474         (BACKEND): ...to here.
3475
3476 2004-05-17  Jan Hubicka  <jh@suse.cz>
3477
3478         * i386.c (construct_container): Do not produce BLKmode registers.
3479         (classify_argument): Properly compute alignment of complex types.
3480
3481 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3482
3483         PR target/15084
3484         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3485         and renamed to movdi_insv_1_rex64.
3486         (insv): Support SImode for 32bit and DImode for 64bit.
3487
3488 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3489
3490         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3491         (TARGET_SWITCHES): Remove debugg.
3492         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3493         TARGET_64BIT.
3494         (subdi3): Replace the define_expand with a define_insn, the latter
3495         renamed from subdi3_internal_3.
3496         (negdi2): Likewise negdi2_internal_2.
3497         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3498         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3499         and associated define_splits.
3500         (adddi3_internal): Renamed from adddi3_internal_3.
3501         (ashldi3_internal): Likewise ashldi3_internal4.
3502         (ashrdi3_internal): Likewise ashrdi3_internal4.
3503         (lshrdi3_internal): Likewise lshrdi3_internal4.
3504
3505 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3506
3507         * optabs.c (expand_unop): Try implementing negation using subtraction
3508         from zero.
3509
3510 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3511
3512         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3513         SAR register.
3514
3515 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3516
3517         PR target/10982
3518         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3519         (ne_zeroextractsi_shifted): New pattern.
3520         (ite_ne_zeroextractsi): New pattern.
3521         (ite_ne_zeroextractsi_shifted): New pattern.
3522
3523 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3524
3525         * c-gimplify.c (c_genericize):
3526         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3527         * c-parse.in <expr_no_commas>: Likewise.
3528         <if_prefix>: Likewise.
3529         <select_or_iter_stmt>: Likewise.
3530         * expr.c (expand_var, expand_expr_real_1): Likewise.
3531         * expr.h (expand_expr): Make it a static inline function.
3532         Move prototype for expand_expr_real up before this.
3533         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3534         Likewise.
3535         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3536         gimplify_asm_expr, gimplify_expr): Likewise.
3537         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3538         dump_function_to_file): Likewise.
3539         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3540         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3541         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3542         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3543         Likewise.
3544         * tree-optimize.c (execute_one_pass): Likewise.
3545         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3546         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3547
3548         * objc/objc-act.c (objc_build_try_enter_fragment,
3549         objc_build_try_epilogue, objc_build_catch_stmt,
3550         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3551         with lang_hooks.foo ().
3552
3553 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3554
3555         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3556         that simplify_builtin doesn't destructively modify its argument.
3557
3558 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3559
3560         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3561         implementations for ARM and Thumb.
3562         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3563
3564 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3565
3566         * prefix.c (update_path): Replace PREFIX with KEY only
3567         when it matches a full directory name in PATH.
3568
3569 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3570
3571         * arm.h (TARGET_APCS_32): Delete.
3572         (TARGET_MMU_TRAPS): Delete.
3573         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3574         define __APCS_26__.
3575         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3576         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3577         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3578         (prog_mode_type): Delete.
3579         (PROMOTE_MODE): Always promote unsigned for HImode.
3580         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3581         (MASK_RETURN_ADDR): Simplify.
3582         * arm.c (arm_prgmode): Delete.
3583         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3584         (print_multi_reg, output_return_instruction): Simplify.
3585         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3586         (arm_return_addr): Simplify.
3587         * arm.md (prog_mode): Delete.
3588         (conds): Simplify.
3589         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3590         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3591         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3592         (loadhi_shiftpredec): Delete.
3593         (peephole for post-increment on HImode load): Delete.
3594         * arm/crtn.asm: (FUNC_END): Simplify.
3595         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3596         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3597         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3598         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3599         MULTILIB_DEFAULTS as required.
3600         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3601         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3602         variables as required.
3603         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3604
3605 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3606
3607         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3608         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3609         count to 8 to handle n_reg > 2.
3610
3611 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3612
3613         * doc/extend.texi: Update WG14 URL.
3614
3615 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3616
3617         * basic-block.h (life_analysis, delete_noop_moves):
3618         Update prototypes.
3619         * bt-load.c (branch_target_load_optimize): Don't take the
3620         insns stream as an argument.  Update the life_analysis calls.
3621         * combine.c (combine_instructions): Update delete_noop_moves
3622         calls.
3623         * flow.c (notice_stack_pointer_modification): Don't take the
3624         insns stream as an argument.  Work on the flow graph.
3625         (life_analysis): Likewise.
3626         (delete_noop_moves): Likewise.
3627         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3628         (rest_of_handle_life): Update life_analysis call.
3629         (rest_of_compilation): Likewise, and also update
3630         branch_target_load_optimize call.
3631         * ra.c (reg_alloc): Update life_analysis call.
3632         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3633         the insns stream as an argument.
3634         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3635         call.
3636         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3637         prototypes.
3638         * value-profile.c (branch_prob): Update life_analysis call.
3639         * web.c (web_main): Work on the CFG, not on the insns stream.
3640
3641         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3642         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3643         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3644
3645 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3646
3647         PR c/15444
3648         * c-format.c (avoid_dollar_number): New function.
3649         (check_format_info_main): Call avoid_dollar_number when operand
3650         numbers might occur but has_operand_number == 0.
3651
3652 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3653
3654         * arm.md (all peephole2 patterns): Use predicates that validate
3655         register classes as appropriate.
3656
3657 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3658
3659         PR opt/14472
3660         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3661         ignore type conversions that do not inhibit tail calling.
3662         (find_tail_calls): Likewise.
3663
3664 2004-05-14  Jeff Law  <law@redhat.com>
3665
3666         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3667         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3668         bypassed virtuals into vars_to_rename just before into-ssa pass.
3669
3670         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3671         so that it picks up more opportunities to eliminate ABS expressions
3672         or turn them into negations.
3673
3674 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3675
3676         * passes.c (rest_of_handle_null_pointer): Remove.
3677         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3678         (rest_of_compilation): Likewise.
3679         * rtl.h (delete_null_pointer_checks): Remove prototype.
3680         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3681         Remove declarations.
3682         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3683         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3684         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3685         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3686         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3687         one_classic_gcse_pass, invalidate_nonnull_info,
3688         delete_null_pointer_checks_1, delete_null_pointer_checks,
3689         expr_reached_here_p_work): Remove.
3690         (gcse_main): Do not perform classic GCSE when optimizing for size.
3691         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3692         are never used.
3693
3694 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3695
3696         PR optimization/14466
3697         * tree-complex.c (make_temp): Remove.
3698         (gimplify_val): Replace make_temp with make_rename_temp
3699         and add NULL as the second argument.
3700         (expand_complex_div_wide): Likewise.
3701         * tree-dfa.c (make_rename_temp): New function.
3702         * tree-flow.h (make_rename_temp): Declare.
3703         * tree-sra.c (make_temp): Remove.
3704         (lookup_scalar): Replace make_temp with make_rename_temp.
3705         (create_scalar_copies): Likewise.
3706         * tree-ssa-phiopt.c (conditional_replacement): When we
3707         get non gimple create a temporary variable to hold the
3708         casted expression.
3709
3710 2004-05-14  Paul Brook  <paul@codesourcery.com>
3711
3712         * stor-layout.c (update_alignment_for_field): Use
3713         targetm.align_anon_bitfield.
3714         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3715         (TARGET_INITIALIZER): Use it.
3716         * target.h (struct gcc_target): Add align_anon_bitfield.
3717         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3718         (TARGET_ALIGN_ANON_BITFIELD): Define.
3719         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3720
3721 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
3722
3723         * tree.def (documentation): Remove mention of class 'b'.
3724         (BLOCK): Now in class 'x'.
3725         * c-common.c (verify_tree): Remove case 'b'.
3726         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3727         * calls.c (calls_function_1): Control cannot get past the switch
3728         when exp is a BLOCK.
3729         * print-tree.c (print_node): Move code for class 'b' to the class
3730         'c'/'x' switch, as case BLOCK.
3731         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3732         (unsafe_for_reeval, substitute_placeholder_in_expr)
3733         (stabilize_reference_1): Remove case 'b'.
3734         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3735         of something being 'b' to tests for TREE_CODE of something being
3736         BLOCK.
3737         * tree-ssa-operands.c (get_expr_operands): Likewise.
3738
3739 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3740
3741         * tree-gimple.c: Rename from tree-simple.c.
3742         * tree-gimple.h: Rename from tree-simple.h.
3743         * c-gimplify.c: Rename from c-simplify.c
3744         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3745         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3746         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3747         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3748         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3749         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3750         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3751         Update.
3752
3753 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
3754
3755         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3756
3757 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3758
3759         * tree-ssa.c (delete_tree_ssa): XFREE
3760         bitmaps allocated with BITMAP_XMALLOC.
3761
3762         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3763         idfs_cache at the end of the function.
3764
3765         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
3766         at the end of the function.
3767
3768         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
3769         el at the end of the function.
3770
3771         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
3772         bitmaps allocated with BITMAP_XMALLOC.
3773
3774         * loop-unswitch.c (unswitch_single_loop): Free bbs at
3775         the end.
3776
3777         * final.c (shorten_branches): Free uid_shuid before
3778         reallocating it.
3779
3780         * bb-reoder.c (connect_traces): Free cold_traces at the end.
3781
3782 2004-05-13  Jeff Law  <law@redhat.com>
3783
3784         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
3785         variables.  Simplify slightly by using USE_OP/DEF_OP instead
3786         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
3787
3788         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
3789         rather than iterating through the blocks testing each bit in
3790         livein to initialize the worklist.
3791         (mark_def_sites): Remove useless checks of KILLS for virtual
3792         operands.
3793
3794         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
3795         new parameters for the statement and variable worklist as well
3796         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
3797         worklist recording interesting variables in the variable worklist
3798         and bitmap.  Handle casts between integral and boolean types.
3799         (substitute_single_use_vars): Accept new parameters for the statement
3800         and variable worklist.  When a substitution is made add a new
3801         entry to the statement worklist.  Handle casts between integral
3802         and boolean types.
3803         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3804         worklists to children.  Iterate until the statement worklist
3805         is empty.
3806
3807 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3808
3809         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3810         the end of the block.
3811
3812         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3813         with BITMAP_XMALLOC.
3814
3815         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3816         with BITMAP_XMALLOC.
3817
3818         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3819         Free nonzero_vars at the end of the function.
3820
3821         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3822         need to generate code instead of a NOP_EXPR.
3823
3824 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
3825
3826         * gcc.c (default_compilers): Fill out initializers for new Fortran
3827         entries.
3828
3829 2004-05-13  Paul Brook  <paul@codesourcery.com>
3830
3831         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3832
3833 2004-05-13  Paul Brook  <paul@codesourcery.com>
3834
3835         * config/arm/arm.c (arm_default_short_enums): New function.
3836         (TARGET_DEFAULT_SHORT_ENUMS): Define.
3837
3838 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3839
3840         Merge from tree-ssa-20020619-branch.
3841
3842         * Makefile.in (reload1.o-warn): Add.
3843         (tree-alias-ander.o-warn): Add.
3844         (GMPLIBS): Define.
3845         (GMPINC): Define.
3846         (BANSHEELIB): Define.
3847         (BANSHEEINC): Define.
3848         (TREE_DUMP_H): Define.
3849         (TREE_SIMPLE_H): Define.
3850         (TREE_FLOW_H): Define.
3851         (LIBDEPS): Add BANSHEELIB.
3852         (INCLUDES): Add BANSHEEINC and GMPINC.
3853         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3854         c-mudflap.o and c-pretty-print.o.
3855         (C_OBJS): Remove c-pretty-print.o.
3856         (OBJS-common): Remove sibcall.o.
3857         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3858         tree-ssa.o, tree-optimize.o, tree-simple.o,
3859         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3860         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3861         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3862         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3863         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3864         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3865         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3866         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3867         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3868         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3869         tree-profile.o.
3870         (OBJC-archive): Add tree-nomudflap.o.
3871         (cc1): Add dependency on @TREEBROWSER@.
3872         (c-decl.o): Add dependency on TREE_DUMP_H.
3873         (c-dump.o): Likewise.
3874         (c-common.o): Add dependency on tree-iterator.h
3875         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3876         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3877         (tree.o): Add dependency on tree-iterator.h,
3878         BASIC_BLOCK_H and TREE_FLOW_H.
3879         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3880         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3881         (tree-alias-type.o, tree-alias-ander.o,
3882         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3883         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3884         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3885         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3886         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3887         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3888         tree-nested.o, tree-iterator.o, tree-dfa.o,
3889         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3890         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3891         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3892         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3893         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3894         tree-sra.o, tree-complex.o, tree-profile.o,
3895         rtl-profile.o): New rules.
3896         (function.o): Add dependency on basic-block.h
3897         (expr.o): Add dependency on tree-iterator.h.
3898         (sibcall.o): Remove.
3899         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3900         (cfg.o): Add dependency on TIMEVAR_H.
3901         (cfghooks.o): Add dependency on TREE_FLOW_H.
3902         (reg-stack.o): Add dependency on basic-block.h.
3903         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3904         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3905         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3906         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3907         tree-alias-type.h, tree-alias-common.h,
3908         tree-alias-type.c, tree-alias-common.c,
3909         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3910         rtl-profile.c and tree-nested.c.
3911         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3912         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3913         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3914         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3915         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3916         * basic-block.h: Include predict.h
3917         (struct edge_def): Add GTY marker.
3918         Change field 'insns' to be a union of tree and rtx.
3919         (EDGE_TRUE_VALUE): Define.
3920         (EDGE_FALSE_VALUE): Define.
3921         (EDGE_EXECUTABLE): Define.
3922         (struct bb_ann_d): Forward declare.
3923         (struct basic_block_def): Add GTY marker.
3924         Remove fields head_tree and end_tree.
3925         Add fields stmt_list, rbi and tree_annotations.
3926         (struct reorder_block_def): Define.
3927         (basic_block_info): Add GTY marker.
3928         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3929         variables instead of macros.
3930         (flow_call_edges_add): Remove declaration.
3931         (make_eh_edge): Remove declaration.
3932         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3933         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3934         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3935         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3936         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3937         (try_redirect_by_replacing_jump): Modfiy return type to
3938         edge instead of bool.
3939         * bb-reorder.c (copy_bb): Call duplicate_block
3940         instead of cfg_layout_duplicate_bb.
3941         (copy_bb_p): Call can_duplicate_block_p instead of
3942         cfg_layout_can_duplicate_bb_p.
3943         * bitmap.c (bitmap_first_set_bit): Abort if word
3944         wasn't found.
3945         (bitmap_last_set_bit): Likewise.
3946         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3947         (DEF_FUNCTION_TYPE_3): Add.
3948         * builtins.c (c_strlen): Make extern.
3949         (builtin_save_expr): New.
3950         (expand_builtin_nonlocal_goto): New.
3951         (expand_builtin_constant_p): Remove.
3952         (expand_builtin_mathfn): Call builtin_save_expr instead
3953         of save_expr.
3954         (expand_builtin_mathfn_2): Likewise.
3955         (expand_builtin_strcmp): Likewise.
3956         (expand_builtin_strncmp): Likewise.
3957         (expand_builtin_strcat): Likewise.
3958         (fold_builtin_cabs): Likewise.
3959         (expand_builtin_alloca): Don't trigger if -fmudflap is
3960         given.
3961         (build_string_literal): Set TREE_INVARIANT on new node.
3962         (expand_builtin_profile_fun): New.
3963         (round_trampoline_addr): New.
3964         (expand_builtin_init_trampoline): New.
3965         (expand_builtin_adjust_trampoline): New.
3966         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3967         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3968         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3969         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3970         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3971         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3972         Handle.
3973         (fold_builtin_expect): New.
3974         (fold_builtin_isascii): Don't return non-constant results
3975         in GIMPLE form.
3976         (fold_builtin_isdigit): Likewise.
3977         (fold_builtin_1): New.
3978         (fold_builtin): Call it.
3979         (build_function_call_expr): Update call to build a new
3980         CALL_EXPR.
3981         (purge_builtin_constant_p): Remove.
3982         (simplify_builtin, simplify_builtin_memcmp,
3983         simplify_builtin_strcmp, simplify_builtin_strncmp,
3984         simplify_builtin_strpbrk, simplify_builtin_strstr,
3985         simplify_builtin_strchr, simplify_builtin_strrchr,
3986         simplify_builtin_strcat, simplify_builtin_strncat,
3987         simplify_builtin_strspn, simplify_builtin_strcspn,
3988         simplify_builtin_next_arg, simplify_builtin_va_start,
3989         simplify_builtin_sprintf): New.
3990         * builtins.def (BUILT_IN_STACK_ALLOC,
3991         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3992         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3993         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3994         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3995         * c-common.c: Include tree-iterator.h and hashtab.h.
3996         (lang_statement_code_p): Declare.
3997         (lang_gimplify_stmt): Declare.
3998         (fix_string_type): Set TREE_INVARIANT for value.
3999         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
4000         (c_type_hash): New.
4001         (c_common_get_alias_set): Handle multiple type nodes
4002         referring to "the same" type, currently for C90 only.
4003         (c_add_case_label): Use create_artificial_label.
4004         (finish_label_address_expr): Don't set TREE_CONSTANT on
4005         result.
4006         (c_expand_expr): Don't handle STMT_EXPR.
4007         (handle_alias_attribute): Marke aliased variables to be
4008         TREE_STATIC.
4009         (handle_nonnull_attribute): Initialize arg_num.
4010         (check_function_nonnull): Likewise.
4011         (c_walk_subtrees): New.
4012         (c_estimate_num_insns_1): Don't handle
4013         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
4014         (c_decl_uninit_1): Remove.
4015         (c_decl_uninit): Remove.
4016         (c_warn_unused_result): New.
4017         * c-common.def (ASM_STMT): Change number of operands
4018         to 4.
4019         (FILE_STMT): Remove.
4020         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
4021         Remove.
4022         (lang_gimplify_stmt): Add.
4023         (expand_stmt): Remove.
4024         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
4025         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
4026         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
4027         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
4028         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
4029         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4030         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4031         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
4032         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
4033         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
4034         genrtl_compound_stmt, genrtl_asm_stmt,
4035         genrtl_cleanup_stmt, c_decl_uninit): Remove.
4036         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
4037         c_tree_chain_matters_p, c_warn_unused_result,
4038         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
4039         Declare.
4040         * c-convert.c (convert): Make convert work when
4041         converting to compatible types across translation unit.
4042         * c-decl.c: Include langhooks.h, tree-mudflap.h,
4043         tree-simple.h, diagnostic.h and tree-dump.h
4044         (merge_decls): Initialize oldtype to NULL.
4045         (finish_decl): Use DECL_HARD_REGISTER instead of
4046         DECL_C_HARD_REGISTER.
4047         (check_bitfield_type_and_width): Check for null
4048         lang_type_specific when check the precision of an enum.
4049         (grokdeclarator): Immediately layout an ARRAY_TYPE used
4050         in a pointer-to-array declarator.
4051         (finish_struct): Clear allocated struct lang_type.
4052         (finish_enum): Set enum_min and enum_max.  Set
4053         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
4054         not to the enumerators.
4055         (set_decl_nonlocal): New.
4056         (store_parm_decls): Use it via walk_tree.
4057         (c_finalize): New.
4058         (finish_function): When !targetm.have_ctors_dtors,
4059         record static constructors and destructors here...
4060         (c_expand_body_1): ... not here.
4061         (c_expand_decl): Rename from c_expand_decl_stmt.
4062         Handle all C-specific expansion semantics.
4063         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
4064         STMT_LINENO.
4065         * c-format.c (handle_format_arg_attribute): Initialize
4066         format_num.
4067         * c-lang.c: Include tree-inline.h
4068         (LANG_HOOKS_EXPAND_DECL,
4069         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4070         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
4071         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
4072         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
4073         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
4074         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
4075         (c_types_compatible_p): New.
4076         * c-mudflap.c: New file.
4077         * c-objc-common.c: Include tree-mudflap.h
4078         (start_cdtor, finish_cdtor): Collapse
4079         together into
4080         (build_cdtor): ...here.  Update to construct a complete tree
4081         for the function.  No need to call push_scope, pop_scope, or
4082         clear_last_expr, or set current_function_cannot_inline.
4083         (c_missing_noreturn_ok_p): Change prototype to return
4084         bool.
4085         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
4086         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
4087         opts.c.
4088         (c_common_post_options): Don't ever use rtl inlining.
4089         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
4090         * c-pragma.c (handle_pragma_redefine_extname): Define
4091         always.
4092         (init_pragma): Activate #pragma redefine_extname for mudflap.
4093         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
4094         (pp_c_initializer): Accept any type CONSTRUCTOR.
4095         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
4096         COMPLEX_TYPE.
4097         (decl_name_str): New local function.
4098         (pp_c_direct_declarator): Call it.
4099         (pp_c_primary_expression): Call it.
4100         (pp_c_id_expression): Call it.
4101         (pp_c_statement): Call it.
4102         (print_c_tree): Create new pp object.
4103         * c-pretty-print.h (pp_c_tree_decl_identifier,
4104         print_c_tree): Declare.
4105         * c-semantics.c: Include langhooks.h
4106         (lang_expand_stmt, lang_expand_decl_stmt,
4107         find_reachable_label_1, find_reachable_label,
4108         expand_unreachable_if_stmt, expand_unreachable_stmt,
4109         genrtl_do_stmt_1): Remove.
4110         (begin_stmt_tree): Don't check for changed filename.
4111         Call annotate_with_locus.
4112         (finish_stmt_tree): Don't set line for end of function.
4113         (build_stmt): Don't check type nodes for
4114         side effects.
4115         (build_stmt): Set TREE_SIDE_EFFECTS.
4116         Set EXPR_LOCUS instead of STMT_LINENO.
4117         (lang_expand_stmt, lang_expand_decl_stmt,
4118         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4119         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4120         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
4121         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
4122         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
4123         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
4124         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
4125         find_reachable_label_1, expand_unreachable_if_stmt,
4126         expand_unreachable_stmt): Remove.
4127         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
4128         * c-simplify.c: New file.
4129         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
4130         (struct lang_type): Add fields enum_min and enum_max.
4131         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
4132         (c_expand_decl, c_missing_noreturn_ok_p,
4133         c_types_compatible_p): Declare.
4134         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
4135         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
4136         (default_function_array_conversion): Rely on build to
4137         set TREE_CONSTANT.
4138         (parser_build_binary_op, pointer_diff): Likewise.
4139         (build_unary_op, build_binary_op): Likewise.
4140         (build_array_ref):
4141         (build_external_ref): Set TREE_INVARIANT.
4142         (build_c_cast, pop_init_level): Likewise.
4143         (process_init_element): Use ASM_VOLATILE_P.
4144         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
4145         (c_finish_case): Call c_do_switch_warnings.
4146         * c.opt (fdump-): Remove.
4147         * calls.c (try_to_integrate): Remove.
4148         (prepare_call_address): Replace fndecl arg with a
4149         precomputed static chain value.
4150         (emit_call_1): New argument for full call expr.
4151         (flags_from_decl_or_type): Call special_function_p.
4152         (initialize_argument_information): Add argument
4153         may_tailcall.
4154         (purge_reg_equiv_notes): New.
4155         (expand_call): Do not try to expand calls inline.
4156         (fixup_tail_calls): New.
4157         * cfg.c: Include timevar.h and ggc.h.
4158         (bb_pool, edge_pool): Remove.
4159         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
4160         (entry_exit_blocks): Remove.
4161         (rbi_pool): Declare.
4162         (init_flow): Do not create pools.
4163         Allocate entry/exit block.
4164         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
4165         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
4166         (unlink_block): Clear b->prev_bb and b->next_bb.
4167         (compact_blocks): Clear all slots of BASIC_BLOCK array.
4168         (dump_flow_info): Work on trees too.
4169         (dump_cfg_bb_info): New.
4170         (brief_dump_cfg): New.
4171         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
4172         (find_edge): New.
4173         * cfgbuild.c (rtl_make_eh_edge): Rename from
4174         make_eh_edge.  Update all users.
4175         (find_basic_blocks): Don't call VARRAY_FREE on
4176         basic_block_info.
4177         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
4178         and newpos2.
4179         (delete_unreachable_blocks): Return changed status.
4180         (merge_seq_blocks): New.
4181         * cfghooks.c: Include tree-flow.h
4182         (tree_register_cfg_hooks, ir_type): New.
4183         (redirect_edge_and_branch): Change return type to edge.
4184         (predict_edge, predicted_by_p, can_duplicate_block_p,
4185         duplicate_block, block_ends_with_call_p,
4186         block_ends_with_condjump_p, flow_call_edges_add): New.
4187         * cfghooks.h (redirect_edge_and_branch): Change return
4188         type to edge.
4189         (predict_edge, predicted_by_p, can_duplicate_block_p,
4190         duplicate_block, block_ends_with_call_p,
4191         block_ends_with_condjump_p, flow_call_edges_add): Declare.
4192         (redirect_edge_and_branch): Change return type to edge.
4193         (struct cfg_hooks): Add fields block_ends_with_call_p,
4194         block_ends_with_condjump_p, flow_call_edges_add,
4195         predict_edge, predicted_by_p, can_duplicate_block_p and
4196         duplicate_block.
4197         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
4198         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
4199         (fixup_reorder_chain): Use initialize_bb_rbi.
4200         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
4201         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
4202         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
4203         (insn_locators_initialize): Use new info about blocks.
4204         * cfglayout.h (typedef struct reorder_block_def): Moved to
4205         basic_block.h.
4206         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
4207         removed.
4208         * cfgloop.c: Include tree.h and tree-flow.h.
4209         * cfgloop.h (create_loop_notes): Declare.
4210         * cfgloopmanip.c (create_loop_notes): New.
4211         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
4212         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
4213         and duplicate_block fields.
4214         (create_basic_block_structure): Don't look at
4215         RTX_INTEGRATED_P.
4216         (rtl_block_ends_with_call_p): New.
4217         (rtl_block_ends_with_condjump_p): New.
4218         (need_fake_edge_p): Moved from cfganal.c.
4219         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
4220         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
4221         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
4222         (cfg_layout_rtl_cfg_hooks): Ditto.
4223         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
4224         functions to be reachable.
4225         * cgraphunit.c (decide_is_function_needed):
4226         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
4227         inline functions don't need to be output.
4228         (cgraph_assemble_pending_functions): Don't do anything
4229         special for nested functions.
4230         (cgraph_mark_functions_to_output): Likewise.
4231         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
4232         (cgraph_analyze_function): Use estimate_num_insns.
4233         (cgraph_mark_functions_to_output): Likewise.
4234         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
4235         (cgraph_expand_function): Allow functions to not be
4236         emitted.
4237         (cgraph_remove_unreachable_nodes):
4238         (cgraph_recursive_inlining_p): Simplify.
4239         (lookup_recursive_calls,
4240         cgraph_decide_recursive_inlining): New.
4241         (cgraph_decide_inlining_*): Update calls of
4242         cgraph_mark_inline.
4243         * combine.c (get_pos_from_mask): Always set *plen.
4244         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
4245         ftree-based-profiling, ftree-ccp, ftree-ch,
4246         ftree-combine-temps, ftree-copyrename, ftree-dce,
4247         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
4248         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
4249         ftree-lrs): Add.
4250         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
4251         Undefine.
4252         * configure.ac: Add --enable-tree-browser option.
4253         Add --with-libbanshee option.
4254         Add GMPLIBS and GMPINC.
4255         * configure: Regenerate.
4256         * coverage.c (tree_ctr_tables): New.
4257         (coverage_counter_alloc): Use it.
4258         (build_ctr_info_value): Ditto.
4259         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
4260         (tree_coverage_counter_ref): New.
4261         * coverage.h (coverage_counter_ref): Remove declaration.
4262         (rtl_coverage_counter_ref): Declare.
4263         (tree_coverage_counter_ref): Declare.
4264         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
4265         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
4266         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
4267         (struct cse_basic_block_data): Rename enum values to not
4268         conflict with profile.h; update all uses.
4269         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
4270         in comments.
4271         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
4272         * diagnostic.h (debug_output_buffer, dump_generic_node,
4273         print_generic_stmt, print_generic_stmt_indented,
4274         print_generic_expr, print_generic_decl,
4275         debug_generic_expr, debug_generic_stmt, debug_c_tree):
4276         Declare.
4277         * dominance.c: Cache immediate dominators.
4278         * domwalk.c: New file.
4279         * domwalk.h: New file.
4280         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
4281         (gen_subprogram_die): Generate a DIE for a named
4282         return value.
4283         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
4284         (add_location_or_const_value_attribute): Likewise.
4285         (add_bound_info): Likewise.
4286         (gen_decl_die): Likewise.
4287         * emit-rtl.c (maybe_set_first_label_num): New.
4288         (copy_most_rtx): Don't copy the integrated flag.
4289         Copy the new return_val flag.
4290         * et-forest.c (MAX_NODES): Define.
4291         (record_path_before_1): Abort if len is greater than
4292         MAX_NODES.
4293         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
4294         gen_eh_region_catch, gen_eh_region_allowed,
4295         gen_eh_region_must_not_throw, get_eh_region_number,
4296         get_eh_region_may_contain_throw, get_eh_region_tree_label,
4297         set_eh_region_tree_label, expand_resx_expr): New.
4298         (expand_eh_region_start, expand_start_catch): Use them.
4299         (expand_end_catch): Tidy.
4300         (note_eh_region_may_contain_throw): Take region argument.
4301         (note_current_region_may_contain_throw): New.
4302         (get_exception_filter): Export.
4303         (collect_eh_region_array): Export.
4304         (remove_unreachable_regions): Check ERT_TRY based on reachability
4305         of catches, not reachability of continue_label.  Never remove
4306         ERT_MUST_NOT_THROW regions.
4307         (collect_rtl_labels_from_trees): New.
4308         (convert_from_eh_region_ranges): Use it.
4309         (connect_post_landing_pads): Handle dying cleanups.
4310         (struct reachable_info): Add callback data.
4311         (add_reachable_handler): Invoke the callback.
4312         (foreach_reachable_handler): New.
4313         (reachable_handlers): Use it.
4314         (arh_to_landing_pad, arh_to_label): New.
4315         (can_throw_internal_1): Split out from can_throw_internal.
4316         (can_throw_external_1): Similarly.
4317         * except.h: Update.
4318         * explow.c (emit_stack_save): Remove savearea mode check.
4319         (update_nonlocal_goto_save_area): New.
4320         (allocate_dynamic_stack_space): Use it.
4321         (probe_stack_range): Never emit loop notes.
4322         * expmed.c (extract_fixed_bit_field): Always propagate the
4323         target for the shift if it is a REG.
4324         * expr.c: Include tree-iterator.h
4325         (is_zeros_p): Remove.
4326         (categorize_ctor_elements_1, categorize_ctor_elements): New.
4327         (count_type_elements): New.
4328         (mostly_zeros_p): Use them.
4329         (expr_wfl_stack): Remove.
4330         (convert_move): Do nothing if to and from are the same.
4331         (emit_block_move_via_loop): Don't emit LOOP notes.
4332         (emit_move_insn): Don't handle CONSTANT_P_RTX.
4333         (emit_move_insn_1): Don't generate inline warnings.
4334         (expand_vars, expand_var): Split from ...
4335         (expand_expr_1): ... here.
4336         (expand_expr_real, expand_expr_real_1):  Use new macros
4337         EXPR_LOCATION and EXPR_HAS_LOCATION.
4338         * expr.h (simplify_builtin_fputs,
4339         simplify_builtin_strcpy, simplify_builtin_strncpy,
4340         expand_var, fixup_tail_calls,
4341         update_nonlocal_goto_save_area): Declare.
4342         (lookup_static_chain, expand_inline_function,
4343         mark_seen_cases): Remove.
4344         (prepare_call_address): Change type of 2nd argument to
4345         rtx.
4346         * final.c (profile_function): Update static chain test.
4347         (final): Don't look at RTX_INTEGRATED_P.
4348         * flags.h (flag_mudflap, flag_mudflap_threads,
4349         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4350         flag_tree_dce, flag_tree_combine_temps,
4351         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4352         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4353         flag_tree_points_to): Declare.
4354         (enum pta_type): Declare.
4355         * flow.c (lang_missing_noreturn_ok_p): Remove.
4356         (check_function_return_warnings): Remove.
4357         (update_life_info): Update comments.
4358         (free_basic_block_vars): Don't call VARRAY_FREE for
4359         basic_block_info.
4360         (regno_uninitialized): Remove.
4361         * fold-const.c (int_const_binop): Make extern.
4362         (non_lvalue): Rely on build to set TREE_CONSTANT.
4363         (operand_equal_p): Replace only_const argument with
4364         flags.  Allow pure functions if OEP_PURE_SAME.
4365         (fold): Use OEP_ONLY_CONST.
4366         (invert_truthvalue) <NOP_EXPR> Break if argument is of
4367         boolean type.
4368         (fold_relational_hi_lo,
4369         nondestructive_fold_binary_to_constant,
4370         nondestructive_fold_unary_to_constant,
4371         fold_read_from_constant_string): New.
4372         * function.c (struct function): Remove calls_constant_p.
4373         (current_function_calls_constant_p): Remove.
4374         (inline_function_decl): Remove.
4375         (put_var_into_stack): Don't use it.
4376         (fix_lexical_addr): Likewise.
4377         (inline_function_decl): Remove extern declaration.
4378         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4379         (trampolines_created): Move to varasm.c.
4380         (free_after_compilation): Update for removed fields.
4381         (allocate_struct_function): Likewise.
4382         (delete_handlers, lookup_static_chain): Remove.
4383         (fix_lexical_addr): Don't consider non-local variable refs.
4384         (trampoline_address): Remove.
4385         (round_trampoline_addr): Move to builtins.c.
4386         (adjust_trampoline_addr): Remove.
4387         (expand_function_start): Update for changes to static chain
4388         and nonlocal goto handling.
4389         (initial_trampoline): Move to varasm.c.
4390         (expand_function_end): Don't build trampolines or kill
4391         unreferenced nonlocal goto labels.
4392         (free_after_compilation): Don't set it.
4393         (expand_function_end): Likewise.
4394         (setjmp_vars_warning): Rename from
4395         uninitialized_vars_warning, remove uninitialized vars warning.
4396         (uninitialized_vars_warning): Remove old comment
4397         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4398         and do not call the langhook.
4399         (expand_function_start, expand_function_end): Don't do
4400         function instrumentation here.
4401         (clear_block_marks): Rename from reorder_blocks_0, export.
4402         (blocks_nreverse): Export.
4403         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4404         of rtl.
4405         (reset_block_changes, record_block_change, finalize_block_changes,
4406         check_block_change, free_block_changes): New functions.
4407         (assign_parms): Setting of current_function_stdarg
4408         moved ...
4409         (allocate_struct_function): ... here.
4410         * function.h (struct function): Remove x_nonlocal_labels,
4411         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4412         x_context_display, x_trampoline_list, needs_context.
4413         Add static_chain_decl, nonlocal_goto_save_area.
4414         (struct function): Remove x_clobber_return_insn.
4415         Add tail_call_emit field, last_label_uid,
4416         unexpanded_var_list, dont_emit_block_notes,
4417         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4418         (clear_block_marks): Declare.
4419         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4420         (mfwrap_spec, mflib_spec): Declare.
4421         (cpp_unique_options, cc1_options): Ditto.
4422         (default_compilers): Add .F and .f90.
4423         (static_specs): Add mfwrap and mflib.
4424         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4425         CONSTANT_RTX_P.
4426         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4427         Update to match insns field in struct edge_def.
4428         * gdbinit.in (pgs, pge): Define.
4429         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4430         instead of the integrated flag.
4431         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4432         * gengtype-yacc.y (bitfieldlen): Add empty action.
4433         (struct_fields): Accept unnamed bitfields.
4434         (bitfieldlen): Split from ...
4435         (bitfieldopt): ... here.
4436         * gengtype.c (ifiles): Add tree-alias-type.h and
4437         tree-flow.h.
4438         * genrecog.c (validate_pattern): Do not handle
4439         CONSTANT_P_RTX.
4440         * gimple-low.c: New file.
4441         * gimplify.c: New file.
4442         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4443         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4444         * ifcvt.c (dead_or_predicable): Initialize local variable
4445         'earliest'.
4446         * input.h (expr_wfl_stack): Remove.
4447         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4448         (setup_initial_hard_reg_value_integration): Likewise.
4449         (initialize_for_inline): Likewise.
4450         (note_modified_parmregs): Likewise.
4451         (integrate_parm_decls): Likewise.
4452         (process_reg_param): Likewise.
4453         (save_parm_insns): Likewise.
4454         (copy_insn_list): Likewise.
4455         (copy_insn_notes): Likewise.
4456         (compare_blocks): Likewise.
4457         (find_block): Likewise.
4458         (inlining): Likewise.
4459         (function_cannot_inline_p): Likewise.
4460         (parmdecl_map): Likewise.
4461         (in_nonparam_insns): Likewise.
4462         (save_for_inline): Likewise.
4463         (FIXED_BASE_PLUS): Likewise.
4464         (expand_inline_function): Likewise.
4465         (copy_rtx_and_substitute): Don't look at map->integrating,
4466         map->inline_target, and inlining, since we are never copying
4467         for integrating.
4468         Don't abort on RTX_INTEGRATED_P.
4469         (old_fun): Remove.
4470         (output_inline_function): Remove.
4471         * integrate.h (struct inline_map): Remove fields integrating,
4472         block_map, leaf_reg_map, inline_target, and local_return_label.
4473         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4474         copy_loop_headers, never_reached_warning): Removed.
4475         (any_uncondjump_p): Reject nonlocal goto.
4476         * langhooks-def.h (lhd_types_compatible_p,
4477         lhd_expand_decl, lhd_gimplify_expr): Declare.
4478         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4479         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4480         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4481         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4482         LANG_HOOKS_GIMPLIFY_EXPR,
4483         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4484         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4485         LANG_HOOKS_GIMPLIFY_EXPR,
4486         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4487         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4488         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4489         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4490         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4491         LANG_HOOKS_DECL_UNINIT,
4492         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4493         * langhooks.c: Include tree-simple.h.
4494         (lhd_expand_decl): New.
4495         (lhd_types_compatible_p): New.
4496         (lhd_decl_uninit): Remove.
4497         (lhd_gimplify_expr): New.
4498         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4499         Remove.
4500         (struct lang_hooks_for_functions): Add field
4501         missing_noreturn_ok_p.
4502         (struct lang_hooks): Add field expand_decl,
4503         types_compatible_p, gimplify_expr and
4504         gimple_before_inlining.
4505         Remove fields decl_uninit and rtl_expand
4506         * opts.c (decode_options): Set flag_tree_ccp,
4507         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4508         flag_tree_pre, flag_tree_ter,
4509         flag_tree_live_range_split, flag_tree_sra,
4510         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4511         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4512         OPT_fmudflapth, OPT_fmudflapir,
4513         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4514         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4515         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4516         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4517         OPT_ftree_points_to_ and OPT_ftree_pre.
4518         * output.h (regno_uninitialized, find_basic_blocks,
4519         cleanup_cfg, delete_unreachable_blocks,
4520         check_function_return_warnings): Remove.
4521         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4522         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4523         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4524         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4525         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4526         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4527         Define.
4528         * passes.c (rest_of_decl_compilation):
4529         (rest_of_handle_sibling_calls): Remove.
4530         (rest_of_handle_inlining): Remove.
4531         (rest_of_handle_gcse): Do not run
4532         purge_builtin_constant_p.
4533         (rest_of_compilation): Update.
4534         Do not call copy_loop_headers.
4535         Do rtl-based profiling only when
4536         !flag_tree_based_profiling.  Register rtl-based profiling
4537         hooks.
4538         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4539         (predicted_by_p): Rename to ...
4540         (rtl_predicted_by_p): .. this one; make global
4541         (tree_predicted_by_p): New.
4542         (dump_prediction): Add FILE argument.
4543         (predict_edge): Rename to ...
4544         (rtl_predict_edge): .. this one.
4545         (tree_predict_edge): New.
4546         (combine_predictions_for_insn): Update calls of predict_edge.
4547         (predict_loops): Break out from ...
4548         (estimate_probability): ... here; update comments; move updating
4549         of unknown probabilities from ...
4550         (estimate_bb_frequencies): ... here.
4551         (combine_predictions_for_bb): New.
4552         (tree_predict_by_opcode): New.
4553         (tree_estimate_probability): New.
4554         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4555         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4556         * predict.h: Add include guard.
4557         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4558         * pretty-print.c (pp_write_text_to_stream): Make extern.
4559         * pretty-print.h (pp_write_text_to_stream): Declare.
4560         * print-rtl.c (print_rtx): Don't print the integrated flag.
4561         Print the return_val flag.
4562         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4563         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4564         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4565         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4566         * profile.c: Include cfghooks.h, tree-flow.h.
4567         (profile_hooks): New.
4568         (profile_dump_file): New.
4569         (instrument_edges): Use hooks instead of RTL-specific code.
4570         (instrument_values): Ditto.
4571         (get_exec_counts): Ditto.
4572         (compute_branch_probabilities): Ditto.
4573         (compute_value_histograms): Ditto.
4574         (branch_prob): Ditto.
4575         (find_spanning_tree): Ditto.
4576         (end_branch_prob): Ditto.
4577         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4578         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4579         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4580         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4581         (tree_register_profile_hooks): New.
4582         (rtl_register_profile_hooks): New.
4583         * ra-rewrite.c (rewrite_program): Clear variable info.
4584         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4585         * regs.h: Add include guards.
4586         * reload.c (decompose): Clear val using memset.
4587         * rtl.def (CONSTANT_P_RTX): Remove.
4588         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4589         (copy_loop_headers): Remove.
4590         (struct rtx_def): Replace the integrated flag with the
4591         return_val flag.
4592         (maybe_set_first_label_num): Declare.
4593         (init_branch_prob): Move declaration to value-prof.h.
4594         (end_branch_prob): Ditto.
4595         (branch_prob): Ditto.
4596         (never_reached_warning): Don't declare it.
4597         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4598         (hoist_insn_to_edge): Update to match field insns in
4599         struct edge_def.
4600         * sbitmap.c (sbitmap_realloc): New.
4601         * sbitmap.h (sbitmap_realloc): Declare.
4602         * sibcall.c: Remove file.
4603         * simplify-rtx.c (simplify_rtx): Do not handle
4604         CONSTANT_P_RTX.
4605         * stmt.c (parse_output_constraint): Don't warn for read-write
4606         memory operand.
4607         (tail_recursion_args): Use types_compatible_p langhook.
4608         (force_label_rtx): Don't look at inline_function_decl.
4609         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4610         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4611         (declare_nonlocal_label): Remove.
4612         (expand_goto): Don't handle nonlocal gotos.
4613         (expand_nl_handler_label): Remove.
4614         (expand_nl_goto_receivers): Remove.
4615         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4616         update_nonlocal_goto_save_area.
4617         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4618         (warn_if_unused_value): Likewise.
4619         (expand_start_loop, expand_loop_continue_here,
4620         expand_end_loop): Don't create loop notes.
4621         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4622         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4623         (expand_end_case_type): Don't do warn_switch handling.
4624         (pushcase, pushcase_range) Update add_case_node calls.
4625         (add_case_node): Add dont_expand_label argument.
4626         (same_case_target_p): Don't search rtl.
4627         (expand_start_bindings_and_block, expand_end_bindings):
4628         Don't emit block notes when dont_emit_block_notes.
4629         (using_eh_for_cleanups_p): Export.
4630         (expand_return): Allow any typed rhs.
4631         (expand_stack_alloc): New.
4632         (expand_stack_save, expand_stack_restore): New.
4633         (containing_blocks_have_cleanups_or_stack_level): New
4634         function.
4635         (asm_op_is_mem_input): New fn.
4636         (expand_asm_expr): New fn.
4637         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4638         nodes.
4639         * stor-layout.c (layout_type): Just return if type is
4640         error_mark_node.
4641         (update_alignment_for_field): Export.
4642         (variable_size): We don't care about global_bindings_p if
4643         the frontend doesn't want a list of the expressions.
4644         * system.h: Poison INTEGRATE_THRESHOLD.
4645         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4646         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4647         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4648         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4649         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4650         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4651         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4652         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4653         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4654         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4655         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4656         TV_CONTROL_DEPENDENCES): Define.
4657         * toplev.c: Include tree-alias-common.h
4658         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4659         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4660         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4661         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4662         flag_tree_combine_temps, flag_tree_ter,
4663         flag_tree_live_range_split, flag_tree_dom,
4664         flag_tree_copyrename, flag_tree_dse): Declare.
4665         (f_options): Add tree-based-profiling, tree-gvn,
4666         tree-pre, tree-ccp, tree-dce,
4667         tree-dominator-opts, tree-copyrename, tree-dse,
4668         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4669         (wrapup_global_declarations): Don't output nested inlined functions.
4670         (general_init): Call init_tree_optimization_passes.
4671         (process_options): Sorry for -ftree-based-profiling plus
4672         -ftest-coverage or -fprofile-values.
4673         * toplev.h (init_tree_optimization_passes,
4674         flag_tree_based_profiling): Declare.
4675         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4676         * tree-alias-ander.c: New file.
4677         * tree-alias-ander.h: New file.
4678         * tree-alias-common.c: New file.
4679         * tree-alias-common.h: New file.
4680         * tree-alias-type.c: New file.
4681         * tree-alias-type.h: New file.
4682         * tree-browser.c: New file.
4683         * tree-browser.def: New file.
4684         * tree-cfg.c: New file.
4685         * tree-complex.c: New file.
4686         * tree-dfa.c: New file.
4687         * tree-dump.c (dump_enable_all): New.
4688         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4689         (dump_node): Remove const from field suffix and swtch.
4690         (dump_files): Add null entry, .generic, .nested, .vcg,
4691         .xml and a match-all entry.
4692         (extra_dump_files, extra_dump_files_in_use,
4693         extra_dump_files_alloced): Declare
4694         (dump_option_value_info): Add raw, details, stats,
4695         blocks, vops, lineno, uid and all.
4696         (dump_register): New.
4697         (get_dump_file_info): New.
4698         (dump_begin): Call it.
4699         Do nothing for TDI_none.
4700         (dump_begin): Include phase number in dump filename.
4701         (dump_enable_all): New.
4702         (dump_switch_p_1): Split out from dump_switch_p.
4703         (dump_switch_p): Handle extra_dump_files.
4704         Start our scan at TDI_none + 1.
4705         If -fdump-tree-all was given, call dump_enable_all.
4706         * tree-dump.h: Include splay-tree.h.
4707         (dump_function, dump_function_to_file, dump_register):
4708         Declare.
4709         * tree-eh.c: New file.
4710         * tree-flow-inline.h: New file.
4711         * tree-flow.h: New file.
4712         * tree-inline.c: Re-write to handle inlining on GIMPLE.
4713         * tree-inline.h (walk_tree,
4714         walk_tree_without_duplicates): Move to tree.h.
4715         (estimate_num_insns): Declare.
4716         * tree-into-ssa.c: New file.
4717         * tree-iterator.c: New file.
4718         * tree-iterator.h: New file.
4719         * tree-mudflap.c: New file.
4720         * tree-mudflap.h: New file.
4721         * tree-nested.c: New file.
4722         * tree-nomudflap.c: New file.
4723         * tree-nrv.c: New file.
4724         * tree-optimize.c (dump_flags, vars_to_rename,
4725         in_gimple_form, all_passes, pass_gimple,
4726         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
4727         (execute_gimple, execute_rebuild_bind,
4728         gate_all_optimizations, execute_del_cfg,
4729         register_one_dump_file, register_dump_files, dup_pass_1,
4730         init_tree_optimization_passes, execute_todo,
4731         execute_one_pass, execute_pass_list): New.
4732         (clear_decl_rtl): Remove.
4733         (tree_rest_of_compilation): Update to use tree
4734         optimizers.
4735         * tree-outof-ssa.c: New file.
4736         * tree-pass.h: New file.
4737         * tree-phinodes.c: New file.
4738         * tree-pretty-print.c: New file.
4739         * tree-profile.c: New file.
4740         * tree-simple.c: New file.
4741         * tree-simple.h: New file.
4742         * tree-sra.c: New file.
4743         * tree-ssa-alias.c: New file.
4744         * tree-ssa-ccp.c: New file.
4745         * tree-ssa-copy.c: New file.
4746         * tree-ssa-copyrename.c: New file.
4747         * tree-ssa-dce.c: New file.
4748         * tree-ssa-dom.c: New file.
4749         * tree-ssa-dse.c: New file.
4750         * tree-ssa-forwprop.c: New file.
4751         * tree-ssa-live.c: New file.
4752         * tree-ssa-live.h: New file.
4753         * tree-ssa-loop.c: New file.
4754         * tree-ssa-operands.c: New file.
4755         * tree-ssa-operands.h: New file.
4756         * tree-ssa-phiopt.c: New file.
4757         * tree-ssa-pre.c: New file.
4758         * tree-ssa.c: New file.
4759         * tree-ssanames.c: New file.
4760         * tree-tailcall.c: New file.
4761         * tree.c: Include tree-iterator.h, basic-block.h and
4762         tree-flow.h.
4763         (tree_node_kind): Add phi_nodes and ssa names.
4764         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
4765         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
4766         (make_node_stat): Handle PHI_NODE and SSA_NAME.
4767         <'c'> Set TREE_INVARIANT.
4768         (copy_node_stat): Abort if trying to copy a
4769         STATEMENT_LIST.
4770         Clear TREE_VISITED.
4771         Clear annotation field.
4772         (build_constructor): Copy TREE_INVARIANT from vals.
4773         Don't clear TREE_CONSTANT.
4774         (expr_first, expr_last, expr_length): Remove.
4775         (staticp): Pass unknown component references to the language.
4776         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
4777         (skip_simple_arithmetic): Likewise.
4778         (stabilize_reference_1): Likewise.
4779         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
4780         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
4781         STATEMENT_LIST.
4782         (lhd_unsave_expr_now): Remove.
4783         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
4784         (recompute_tree_invarant_for_addr_expr): New.
4785         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
4786         Call recompute_tree_invarant_for_addr_expr.
4787         Set TREE_INVARIANT accordingly.
4788         (build2_stat): Don't handle CALL_EXPR.
4789         (build3_stat): Don't call build2_stat for CALL_EXPRs.
4790         (build_expr_wfl): Remove.
4791         (annotate_with_file_line, annotate_with_locus): New.
4792         (simple_cst_equal): Call simple_cst_list_equal to compare
4793         CONSTRUCTOR_ELTS pointers.
4794         (iterative_hash_expr): Don't hash types associated
4795         with conversions.  Instead hash on the signedness of the
4796         toplevel object and the operand of the conversion.
4797         (dump_tree_statistics): Call ssanames_print_statistics
4798         and phinodes_print_statistics.
4799         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4800         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4801         needs_to_live_in_memory): New.
4802         (initializer_zerop): Handle VECTOR_CST.  Don't check
4803         AGGREGATE_TYPE_P for CONSTRUCTOR.
4804         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4805         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4806         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4807         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4808         (CALL_EXPR): Add another operand.
4809         (EXPR_WITH_FILE_LOCATION): Remove.
4810         (SWITCH_EXPR): Add another operand.
4811         * tree.h: Update various comments.
4812         (union tree_ann_d): Forward declare.
4813         (struct tree_common): Add fields nowarning_flag,
4814         invariant_flag and visited.
4815         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4816         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4817         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4818         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4819         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4820         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4821         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4822         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4823         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4824         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4825         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4826         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4827         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4828         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4829         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4830         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4831         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4832         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4833         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
4834         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
4835         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
4836         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
4837         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
4838         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
4839         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
4840         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
4841         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
4842         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
4843         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
4844         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
4845         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
4846         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
4847         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
4848         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4849         TDF_UID,): Define.
4850         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4851         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4852         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4853         EXPR_WFL_SET_LINECOL): Remove.
4854         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4855         make_phi_node, init_phinodes, fini_phinodes,
4856         release_phi_node, phinodes_print_statistics,
4857         init_ssanames, fini_ssanames, make_ssa_name,
4858         release_ssa_name, ssanames_print_statistics,
4859         annotate_with_file_line, build_empty_stmt,
4860         annotate_with_locus, expr_only, categorize_ctor_elements,
4861         count_type_elements, add_var_to_bind_expr, is_essa_node,
4862         expand_stack_alloc, expand_stack_save,
4863         expand_stack_restore, add_case_node, operand_equal_p,
4864         nondestructive_fold_unary_to_constant,
4865         nondestructive_fold_binary_to_constant,
4866         fold_read_from_constant_string, int_const_binop,
4867         strip_float_extensions, simplify_builtin, c_strlen,
4868         recompute_tree_invarant_for_addr_expr,
4869         needs_to_live_in_memory, make_vector,
4870         setjmp_vars_warning, update_alignment_for_field,
4871         expand_asm_expr, asm_op_is_mem_input,
4872         containing_blocks_have_cleanups_or_stack_level,
4873         create_artificial_label, gimplify_function_tree,
4874         get_name, unshare_expr, walk_tree,
4875         walk_tree_without_duplicates, in_gimple_form): Declare.
4876         (struct tree_exp): Add fields locus and block.
4877         (struct tree_ssa_name, struct edge_def, struct
4878         tree_phi_node, struct tree_eref_common, struct
4879         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4880         union alias_var_def, struct tree_statement_list_node,
4881         struct tree_statement_list, enum operand_equal_flag): Declare.
4882         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4883         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4884         TS_STATEMENT_LIST.
4885         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4886         euse and stmt_list.
4887         (function_cannot_inline_p, uninitialized_vars_warning,
4888         save_for_inline, output_inline_function, all_cases_count,
4889         check_for_full_enumeration_handling,
4890         declare_nonlocal_label): Remove.
4891         (enum tree_dump_index): Add TDI_none, TDI_tu,
4892         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4893         * unroll.c (unroll_loop): Don't clear map->inline_target.
4894         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4895         function.
4896         * value-prof.c (value_prof_hooks): New.
4897         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4898         Move rtl-specific bits in from branch_prob.
4899         (value_profile_transformations): Rename to
4900         rtl_value_profile_transformations.
4901         (struct value_prof_hooks): New.
4902         (rtl_value_prof_hooks): New.
4903         (rtl_register_value_prof_hooks): New.
4904         (tree_find_values_to_profile): New stub.
4905         (tree_value_profile_transformations): New stub.
4906         (tree_value_prof_hooks): New stub.
4907         (tree_register_value_prof_hooks): New stub.
4908         (find_values_to_profile): New.
4909         (value_profile_transformations): New.
4910         * value-prof.h: Add multiple inclusion guard.
4911         (struct histogram_value): Change rtx fields to void *.
4912         (rtl_register_value_prof_hooks): New declaration.
4913         (tree_register_value_prof_hooks): New declaration.
4914         (find_values_to_profile): New declaration.
4915         (free_profiled_values): New declaration.
4916         (value_profile_transformations): New declaration.
4917         (struct profile_hooks): New declaration.
4918         (init_branch_prob): Declaration moved from rtl.h.
4919         (branch_prob): Declaration moved from rtl.h.
4920         (end_branch_prob): Declaration mooved from rtl.h.
4921         (tree_register_profile_hooks): New declaration.
4922         (rtl_register_profile_hooks): New declaration.
4923         (tree_profile_hooks): New declaration.
4924         (rtl_profile_hooks): New declaration.
4925         * varasm.c: Include tree-mudflap.h.
4926         (TRAMPOLINE_ALIGNMENT): Remove.
4927         (make_decl_rtl): Call mudflap_enqueue_decl.
4928         (assemble_static_space):
4929         (assemble_trampoline_template): Set and return
4930         TRAMPOLINE_ALIGNMENT.
4931         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4932         Add entry for 'tree *'.
4933         Add entry for struct edge_def *.
4934         (varray_copy): New.
4935         * varray.h (enum varray_data_enum): Add
4936         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4937         VARRAY_DATA_TREE_PTR.
4938         (union varray_data_tag): Corresponding changes.
4939         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4940         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4941         VARRAY_EDGE, VARRAY_TREE_PTR,
4942         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4943         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4944         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4945
4946         * config/*/*: Various updates for changed macros, tree
4947         codes, etc.  Check ChangeLog.tree-ssa.
4948
4949         * doc/cfg.texi: New file.
4950         * doc/tree-ssa.texi: New file.
4951         * doc/c-tree.texi: Document new codes.
4952         * doc/gccint.texi: Include new files.
4953         * doc/install.texi: Document new features.
4954         * doc/invoke.texi: Document new switches.
4955         * doc/passes.texi: Document new passes.
4956         * doc/rtl.texi: Update changed RTL codes.
4957         * doc/sourcebuild.texi: Update build instructions.
4958         * doc/standards.texi: Document Fortran changes.
4959         * doc/tm.texi: Update.
4960
4961 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4962
4963         Replace several arrays with a struct of arrays.
4964         * combine.c (struct reg_stat): New.
4965         (init_reg_last_arrays): Renamed to...
4966         (init_reg_last): ...this.  Callers adjusted.
4967         (reg_stat): New.
4968         (combine_instructions): Allocate it and use it.
4969         (reg_last_death, reg_last_set, reg_last_set_value,
4970         reg_last_set_label, reg_last_set_table_tick,
4971         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4972         reg_last_set_mode, reg_last_set_nonzero_bits,
4973         reg_last_set_sign_bit_copies): Replace throughout
4974         with items of reg_stat.
4975
4976 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4977
4978         PR optimization/15100
4979         * combine.c (distribute_notes): Don't create a dangling
4980         REG_LIBCALL/REG_RETVAL note.
4981
4982 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4983
4984         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4985
4986         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4987         negv2si2.
4988
4989 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4990
4991         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4992
4993 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4994
4995         * doc/gty.texi (GTY Options): Clarify example.
4996
4997 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4998
4999         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
5000         Add const qualifier to altivec vector type if one is needed.
5001
5002 2004-05-11  Paul Brook  <paul@codesourcery.com>
5003
5004         * flags.h (flag_short_enums): Update comment.
5005         * opts.c (decode_options): Set flag_short_enums to 2.
5006         * toplev.c (flag_short_enums): Update comment.
5007         (process_options): Call default_short_enums target hook.
5008
5009 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
5010
5011         PR target/14063
5012         * config/rs6000/altivec.md (altivec_dssall):
5013         Change to unspec_volatile.
5014         (altivec_dss): Likewise.
5015
5016 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
5017
5018         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
5019         vnor.
5020         ("one_cmplv8hi2"): Same.
5021         ("one_cmplv4si2"): Same.
5022
5023 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
5024
5025         PR target/15130
5026         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
5027         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
5028         into account.  Compute the correct number of general registers
5029         for the return value.  Generate a special push/pop sequence when
5030         failing to get a temporary register for non SHmedia epilogue.
5031         (sh_expand_epilogue): Add an argument to show whether it's for
5032         sibcall or not.  Set the 3rd argument of output_stack_adjust to
5033         -1 if needed.
5034         (sh_need_epilogue): Call sh_expand_epilogue with 0.
5035         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
5036         with 1.
5037         (epilogue): Call sh_expand_epilogue with 0.
5038
5039 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
5040
5041         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
5042         goto a cleanup label.  After the cleanup, free the allocated memory.
5043
5044 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
5045
5046         * config/rs6000/altivec.h (vec_sld): Add overloads for
5047         argument/return types of 'vector bool int', 'vector bool short'
5048         and 'vector bool char'.
5049
5050 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
5051
5052         * c-decl.c (store_parm_decls_newstyle): Correct test for a
5053         nested function.
5054
5055 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
5056
5057         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
5058         treating missing ones as "".
5059         * config/mips/mips.md: Remove constraints from match_operands and
5060         match_scratches if they appear in define_expands (except reload*),
5061         define_peephole2s, define_splits or attribute specifications.
5062         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
5063         constraint strings.
5064
5065 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5066
5067         * config/rs6000/rs6000.c (function_arg_boundary): Always align
5068         AltiVec vectors.
5069         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
5070         vectors by refererence.  Align the same for TARGET_64BIT to a 16
5071         byte boundary.  Remove useless code.  Add function comment.
5072         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
5073         call to where it belongs.
5074         (function_arg_partial_nregs): Return true for all TARGET_32BIT
5075         -mabi=no-altivec AltiVec vectors.  Fix debug output.
5076         (rs6000_va_arg): Adjust for AltiVec change.
5077
5078 2004-05-10  Paul Brook  <paul@codesourcery.com>
5079
5080         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5081         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5082         (TARGET_DOUBLEWORD_ALIGN): Use it.
5083         (WCHAR_TYPE): Define.
5084         (WCHAR_SIZE_TYPE): Define.
5085         (SIZE_TYPE): Define.
5086
5087 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5088
5089         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
5090         when size is 8 bytes.
5091         (function_arg_advance): Account for stack space used by AltiVec
5092         args when -mabi=altivec.  Simplify alignment calculations.  For
5093         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
5094         (function_arg): Similarly.
5095         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
5096         not AltiVec ABI.
5097         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
5098         Correct alignment, and align before testing reg count.  Remove
5099         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
5100         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
5101         TARGET_FPRS here..
5102         (rs6000_function_value): .. not here before call.
5103
5104 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5105
5106         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
5107
5108 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
5109
5110         PR 15007
5111         * c-decl.c (current_file_decl): Rename to all_translation_units,
5112         adjust comment.
5113         (pop_scope): If popping file_scope, construct a
5114         TRANSLATION_UNIT_DECL and make it the context of all the
5115         symbols in the scope.
5116         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
5117         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
5118         anything to current_file_decl.
5119         (pushdecl_top_level): Likewise.
5120         (store_parm_decls_newstyle): Adjust check for nested function.
5121         (c_write_global_declarations): Update for renamed variable.
5122
5123 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5124
5125         * config/rs6000/rs6000-protos.h
5126         (rs6000_conditional_register_usage): Protoize.
5127
5128         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
5129
5130         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
5131         function.
5132
5133 2004-05-08  Roger Sayle  <roger@eyesopen.com>
5134
5135         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
5136         where op is a comparison operator and C1 and C2 are integer constants
5137         into a range check.
5138         (fold): Call fold_div_compare.
5139
5140 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5141
5142         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
5143         problems with earlier versions of the GNU compiler.
5144
5145 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
5146
5147         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5148         Declare.
5149
5150         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
5151         (rs6000_hard_regno_mode_ok): New.
5152         (rs6000_init_hard_regno_mode_ok): New.
5153         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
5154
5155         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
5156         result.
5157
5158 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
5159
5160         * config/rs6000/altivec.h (vector, pixel, bool): Do not
5161         define as macros #ifdef __APPLE_ALTIVEC__.
5162
5163 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
5164
5165         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
5166         Generate appropriate parallels for vector arguments
5167         passed to vararg functions. (function_arg): make the call
5168         to rs6000_mixed_function_arg for vector args as needed.
5169
5170 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5171
5172         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
5173         EABI_FLOAT_VARARGS_P.
5174
5175 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5176
5177         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
5178         * config/mips/mips.c (override_options): Disable branch likely
5179         instructions if TUNE_MIPS5500.
5180
5181 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5182
5183         * config/mips/mips.c (override_options): Allow the hi and lo registers
5184         to store any integral mode, not just MODE_INTs.
5185
5186 2004-05-07  Paul Brook  <paul@codesourcery.com>
5187
5188         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5189         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5190         (TARGET_DOUBLEWORD_ALIGN): Use it.
5191         (WCHAR_TYPE): Define.
5192         (WCHAR_SIZE_TYPE): Define.
5193         (SIZE_TYPE): Define.
5194
5195 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5196
5197         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
5198         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
5199
5200 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
5201
5202         * loop-doloop.c (doloop_valid_p): Make sure that body
5203         gets freed.
5204
5205 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
5206
5207         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
5208         declaration.
5209         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
5210         (sparc_skip_caller_unimp): New global variable.
5211         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
5212         Use it instead of SKIP_CALLERS_UNIMP_P.
5213         * config/sparc/sparc.md (call expander): Add sanity check.
5214         (call_address_struct_value_sp32): Re-sync with expander.
5215         (call_symbolic_struct_value_sp32): Likewise.
5216         (return peepholes): Use 'sparc_skip_caller_unimp' instead
5217         of custom predicate.
5218
5219 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5220
5221         PR c++/14962
5222         * c-pragma.c (handle_pragma_redefine_extname): Only change
5223         the assembler name of FUNCTION_DECLs and VAR_DECLs.
5224
5225 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5226
5227         * optabs.h (enum optab_index): Add new OTI_log1p.
5228         (log1p_optab): Define corresponding macro.
5229         * optabs.c (init_optabs): Initialize log1p_optab.
5230         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
5231         patterns.
5232         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
5233         using log1p_optab.
5234         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
5235         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5236
5237         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
5238
5239         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
5240         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
5241         Prototype here.
5242         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
5243         x87's fyl2xp1 instruction.
5244         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
5245         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
5246         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
5247         log1p  and log1pl built-ins as inline x87 intrinsics.
5248
5249 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
5250
5251         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
5252         * config/arm/freebsd.h: Likewise.
5253         * config/ia64/freebsd.h: Likewise.
5254         * config/sparc/freebsd.h: Likewise.
5255
5256 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
5257
5258         PR optimization/15296
5259         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
5260         getting last consecutive label at a branch.
5261         (relax_delay_slots): Similar, near top of loop.
5262
5263 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5264
5265         PR target/15202
5266         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
5267         register to general register.
5268
5269 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
5270
5271         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
5272         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
5273         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
5274         (STACK_BOUNDARY): Delete.
5275
5276 2004-05-06  Stuart Hastings  <stuart@apple.com>
5277
5278         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
5279         mistakenly clobbered by 1.423.
5280
5281 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5282
5283         * doc/invoke.texi: Document -mvr4130-align.
5284         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
5285         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
5286         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
5287         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
5288         * config/mips/mips.md: Include sched-int.h.
5289         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
5290         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
5291         (override_options): Enable -mvr4130-align at -O3 and above.
5292         (mips_sim_insn): New variable.
5293         (mips_sim): New structure.
5294         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
5295         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
5296         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
5297         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
5298         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
5299         (mips_reorg): Call vr4130_align_insns.
5300         (vr4130_last_insn): New variable.
5301         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
5302         (vr4130_swap_insns_p, vr4130_reorder): New functions.
5303         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
5304         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
5305         (mips_use_dfa_pipeline_interface): Return true for the same.
5306         * config/mips/4130.md: New file.
5307         * config/mips/mips.md: Include it.  Add a peephole2 to convert
5308         "mult;mflo" into "mtlo;macc".
5309         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
5310         target of maccs.
5311         (*msac_using_macc): New pattern.
5312
5313 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5314
5315         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5316         (ir_vr55_hilo): Split into...
5317         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5318         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5319         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
5320         Add various multiplication bypasses.
5321         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5322         multiplication.
5323
5324 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
5325
5326         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5327         attribute to "XF".
5328
5329 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
5330
5331         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
5332         (fmod_optab, drem_optab): Define corresponding macros.
5333         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5334         * genopinit.c (optabs): Implement fmod_optab and drem_optab
5335         using fmod?f3 and drem?f3 patterns.
5336         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5337         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5338         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5339         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5340         flag_unsafe_math_optimizations is set.
5341
5342         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5343         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5344
5345         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5346         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5347         Prototype here.
5348         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5349         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5350         fprem and fprem1 instructions.
5351         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5352         Rename insn definition to x86_fnstsw_1.
5353         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5354         x87 instructions.
5355         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5356         and fmodl built-ins as inline x87 intrinsics.
5357         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5358         and dreml built-ins as inline x87 intrinsics.
5359
5360 2004-05-05  Roger Sayle  <roger@eyesopen.com>
5361
5362         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5363
5364 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
5365
5366         PR driver/9822
5367         * doc/invoke.texi (Spec Files): Remove documentation of %c.
5368
5369 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5370
5371         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5372         representation.
5373
5374 2004-05-06  Paul Brook  <paul@codesourcery.com>
5375
5376         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5377         (arm_coproc_mem_operand): ... To this.
5378         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5379         (arm_legitimate_index_p): Ditto.
5380         (vfp_mem_operand): Rename ...
5381         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5382         (vfp_secondary_reload_class): Use it.
5383         (output_move_double): Use doubleword load/store instructions.
5384         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5385         * config/arm/arm.h (TARGET_LDRD): Define.
5386         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5387         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5388         New splitter for invalid doubleword loads.
5389         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5390         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5391         * doc/md.texi: Document Uy constraint.
5392
5393 2004-05-05  Jan Hubicka  <jh@suse.cz>
5394
5395         PR opt/14980
5396         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5397         inline clones.
5398
5399 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5400
5401         PR target/15290
5402         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5403         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5404
5405 2004-05-05  Mike Stump  <mrs@apple.com>
5406
5407         * config/darwin-c.c (add_framework): Copy the directory name as it
5408         can be freed later.  Also, ensure we always allocate enough room
5409         for the cached framework information.
5410         (find_subframework_header): Keep track of the directory where the
5411         subframework header was found.
5412         (framework_construct_pathname): Speed up by not trying to re-add a
5413         framework.
5414         * cppfiles.c (search_path_exhausted): Arrange for the missing
5415         header callback to be able to set the directory where the header
5416         was found.
5417         (cpp_get_dir): Add.
5418         * cpplib.h (missing_header_cb): Add a parameter.
5419         (cpp_get_dir): Add.
5420
5421 2004-05-03  Mike Stump  <mrs@apple.com>
5422
5423         * doc/invoke.texi (Directory Options): Document -iquote.
5424         * doc/cpp.texi: Likewise.
5425         * doc/cppopts.texi: Likewise.
5426         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5427         (c_common_handle_option): Likewise.
5428         * c.opt (iquote): Add.
5429         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5430         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5431
5432         * c-opts.c (case OPT_I): Deprecate -I- support.
5433         * doc/invoke.texi: Likewise.
5434         * doc/cpp.texi: Likewise.
5435         * doc/cppopts.texi: Likewise.
5436
5437 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5438
5439         * basic-block.h (free_basic_block_vars): Update prototype.
5440         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5441         argument.
5442         (life_analysis): Update call.
5443         * ifcvt.c (if_convert): Likewise.
5444         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5445         * passes.c (rest_of_handle_final): Likewise.
5446         (rest_of_compilation): Likewise.
5447         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5448
5449         * emit-rtl.c (next_real_insn): Use INSN_P.
5450         (prev_real_insn): Likewise.
5451
5452 2004-05-05  Eric Christopher  <echristo@redhat.com>
5453
5454         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5455         representation.
5456
5457 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5458
5459         * config/rs6000/rs6000.c (build_opaque_vector_type):
5460         New function.
5461         (rs6000_init_builtins): Use it.
5462
5463 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5464
5465         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5466         (func_table): Change type from char ** to vms_func_ref.
5467         (write_rtnbeg):  Update to reflect func_table change.  Use
5468         fde->funcdef_number instead of rtnnum in output.
5469         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5470
5471 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5472             Richard Henderson  <rth@redhat.com>
5473
5474         PR target/14899
5475
5476         * c-common.c (vector_types_convertible_p): New function.
5477         * c-typeck.c (comptypes): Recurse on vector types.
5478         (convert_for_assignment): Use vector_types_convertible_p.
5479         (digest_init): Use vector_types_convertible_p to check
5480         validness of constant vector initializers; otherwise treat
5481         them as scalars.
5482         * tree.c (make_or_reuse_type): New.
5483         (build_common_tree_nodes): Use it.
5484         * cp/call.c (standard_conversion): Likewise.
5485         * cp/typeck.c (comptypes): Recurse on vector types.
5486         (convert_for_assignment): Use vector_types_convertible_p.
5487
5488 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5489
5490         * config/mips/mips.c (override_options): Default to no
5491         generation of branch-likely operations when tuning for
5492         CPUs where they tend to have a negative performance impact
5493         (e.g., SB-1).
5494
5495 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5496
5497         * expr.c (store_constructor_field): Don't call store_constructor
5498         if bitsize is not a multiple of a byte.
5499
5500 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5501
5502         * reload1.c (inherit_piecemeal_p): New function.
5503         (emit_reload_insns): When reloading a group of hard registers, use
5504         inherit_piecemeal_p to decide whether the values of individual hard
5505         registers can be inherited.
5506
5507 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5508
5509         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5510         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5511         * config/t-linux (LIB2ADDEHDEP): Likewise.
5512
5513 2004-05-04  Paul Brook  <paul@codesourcery.com>
5514
5515         * config/arm/crti.asm: Push an even number of registers.
5516         * config/arm/crtn.asm: And restore them.  Load via sp.
5517
5518 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5519
5520         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5521         Collect overhead information.
5522         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5523         parameter and pass it through.
5524         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5525         MEM_STAT_DECL parameter and pass it through.
5526         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5527         MEM_STAT_DECL parameter and pass it through.
5528
5529 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5530
5531         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5532
5533         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5534
5535         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5536         rs6000_hard_regno_nregs.
5537
5538 2004-05-03  Eric Christopher  <echristo@redhat.com>
5539
5540         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5541         prologue insn instead of setting up call.
5542         (s390_emit_epilogue): Ditto.
5543         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5544         (define_constants): Add numbers for above patterns.
5545
5546 2004-05-03  Eric Christopher  <echristo@redhat.com>
5547
5548         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5549         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5550         * config/s390/s390-protos.h: Prototype.
5551
5552 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5553
5554         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5555         assignment.
5556
5557 2004-05-03  Eric Christopher  <echristo@redhat.com>
5558
5559         * config/mips/mips.md: Fix branch length attribute definition.
5560
5561 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5562
5563         * config.gcc: Remove --enable-altivec support.
5564
5565         * config/rs6000/altivec-defs.h: Remove.
5566
5567 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5568
5569         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5570         * fixinc/fixincl.x: Regenerate.
5571
5572 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5573
5574         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5575         definition.
5576         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5577         float_truncate insn.
5578         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5579         (logb?f2): Reimplement expanders with float_truncate insn.
5580
5581 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5582
5583         PR 14718
5584         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5585         force_type_die for CONST_DECL.
5586
5587 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5588             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5589
5590         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5591         tm-dwarf2.h to tm_file.
5592         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5593         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5594         (ASM_DEBUG_SPEC): Delete.
5595
5596 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5597
5598         * optabs.h (enum optab_index): Add new OTI_expm1.
5599         (expm1_optab): Define corresponding macro.
5600         * optabs.c (init_optabs): Initialize expm1_optab.
5601         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5602         patterns.
5603         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5604         using expm1_optab.
5605         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5606         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5607
5608         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5609         to implement expm1, expm1f and expm1l built-ins as inline x87
5610         intrinsics.
5611
5612 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5613
5614         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5615         * config/frv/frv.md (*return_true, *return_false): New patterns.
5616
5617 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5618
5619         * rtl.h (PHI_NODE_P): Remove.
5620
5621 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5622
5623         PR middle-end/14988
5624         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5625         when passed -2 as 'align'.
5626         (put_var_into_stack): Use 'bool' as the type for the three local
5627         predicates.  Adjust calls to put_reg_into_stack.
5628         When passed a CONCAT, instruct put_reg_into_stack to use
5629         a consecutive stack slot for the second part.
5630         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5631         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5632         parameters.  Retrieve the register mode from 'reg'.
5633         When consecutive_p is true, instruct assign_stack_local_1 to use
5634         BITS_PER_UNIT alignment.
5635         (put_addressof_into_stack): Use 'bool' as the type for the two
5636         local predicates. Adjust call to put_reg_into_stack.
5637
5638 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5639
5640         * fold-const.c (fold_convert_const, fold): Add missing
5641         FIX_ROUND_EXPR case.
5642
5643 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5644
5645         * configure.ac (FLEX, BISON): Only use tools from the build tree
5646         if build equals host.
5647         * configure: Rebuilt.
5648
5649         * config/frv/frv-protos.h (frv_expand_epilogue,
5650         frv_expand_fdpic_call): Add bool argument.
5651         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5652         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5653         (frv_expand_epilogue): Use new argument to decide whether to emit
5654         return instruction or copy the return address to LR.
5655         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5656         sibcalls.
5657         (sibcall_operand): New.
5658         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5659         PLUS nor LABEL_REF.  Add sibcall_operand.
5660         * config/frv/frv.md (call, call_value): Pass false to
5661         frv_expand_fdpic_call.
5662         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5663         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5664         sibcall_value_internal, sibcall_value_fdpicdi): New.
5665         (return_unsigned_true, return_unsigned_false): New.
5666         (epilogue): Adjust call to frv_expand_epilogue.
5667         (sibcall_epilogue): New.
5668
5669         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5670         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5671         before redefining them.
5672
5673 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5674
5675         * builtins.c (fold_fixed_mathfn): New function.
5676         (fold_builtin_lround, fold_builtin): Use it.
5677
5678 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5679
5680         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5681         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5682
5683 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5684
5685         * config/cris/cris.h: Revert my "fix comment typos" patch.
5686
5687 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5688
5689         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5690
5691 2004-05-01  Falk Hueffner  <falk@debian.org>
5692
5693         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5694         builtin_insll): Disallow 0 as first input operand.
5695
5696 2004-05-01  Falk Hueffner  <falk@debian.org>
5697
5698         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5699
5700 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
5701
5702         PR middle-end/15054
5703         * expr.c (expand_expr_real): Do not call preserve_temp_slots
5704         on a TARGET_EXPR temp.
5705         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5706         TARGET_EXPR temp slots.
5707
5708 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
5709
5710         * simplify-rtx.c (simplify_ternary_operation): When
5711         converting an IF_THEN_ELSE to a relational op, return
5712         correct mode.
5713
5714 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5715
5716         * builtins.c (fold_builtin_round): Fix comment typo.
5717         (fold_builtin_lround): New function.
5718         (fold_builtin): Use it.
5719
5720 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
5721
5722         PR target/11608
5723         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
5724         more like the one in config/dbxelf.h.
5725
5726 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
5727
5728         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
5729         and adjust definition accordingly.
5730         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
5731         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
5732         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
5733         VECTOR_TYPE.
5734
5735 2004-04-30  Jason Merrill  <jason@redhat.com>
5736
5737         PR c++/14587
5738         * config/i386/winnt.c (associated_type): Look for attributes on
5739         the TYPE_MAIN_VARIANT of *this.
5740         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
5741         apply the attributes to the variants.
5742
5743 2004-04-30  Paul Brook  <paul@codesourcery.com>
5744
5745         * config.gcc: Simplify arm --with-{cpu,tune} test.
5746         * config/arm/arm-cores.def: Document whitespace restrictions.
5747
5748 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5749
5750         PR other/1963
5751         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
5752
5753 2004-04-30  Brian Ford  <ford@vss.fsi.com>
5754             DJ Delorie  <dj@redhat.com>
5755
5756         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5757         (DWARF2_DEBUGGING_INFO): Define to enable.
5758         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
5759         DWARF2.
5760         * configure.ac (Target-specific assembler checks)
5761         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
5762         relocs.
5763         * configure: Regenerate.
5764         * config.in: Likewise.
5765
5766         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5767         (ASM_OUPUT_DWARF_OFFSET): Define.
5768
5769 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
5770
5771         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
5772         (s390_emit_call): New function prototype added.
5773         (s390_tls_get_offset): Function removed.
5774         * config/s390/s390.c (s390_function_ok_for_sibcall,
5775         s390_call_saved_register_used_p): New functions.
5776         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
5777         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
5778         (s390_emit_tls_call_insn): New function.
5779         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
5780         emit_call_insn.
5781         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5782         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
5783         added.
5784         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
5785         register number used to hold the target address for sibcalls.
5786         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
5787         New expanders.
5788         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
5789         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5790         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
5791         Expanders removed.
5792         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5793         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
5794         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
5795         ("epilogue"): Changed the call to s390_emit_epilogue to use the
5796         new parameter.
5797
5798 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5799
5800         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5801         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5802         reg-stack.c, varasm.c, config/alpha/ev4.md,
5803         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5804         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5805         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5806         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5807         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5808         config/ia64/itanium2.md, config/ip2k/ip2k.c,
5809         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5810         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5811         comment typos.
5812
5813 2004-04-30  Paul Brook  <paul@codesourcery.com>
5814
5815         * config.gcc: Default ep9312 to hard-float.
5816         * config/arm/arm-cores.def: Add ARCH field.
5817         * config/arm/arm.c (FL_FOR_ARCH*): Define.
5818         (arm_arch_cirrus): New variable.
5819         (all_cores): Set and use arch.
5820         (all_architectures): Ditto.
5821         (arm_arch_name): New variable.
5822         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5823         Set and use arm_arch_cirrus.
5824         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5825         (enum processor_type): Update ARM_CORE define.
5826         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
5827         (CPP_SPEC): Remove %(cpp_cpu_arch).
5828         (CPP_ARCH_DEFAULT_SPEC): Remove.
5829         (CPP_CPU_ARCH_SPEC): Remove.
5830         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5831         (FPUTYPE_DEFAULT): Don't define here.
5832
5833 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
5834
5835         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
5836         updates too.
5837
5838 2004-04-30  Paul Brook  <paul@codesourcery.com>
5839
5840         * arm.c (arm_needs_doubleword_align): Use mode alignment.
5841
5842 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
5843
5844         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
5845         vec_sububs.
5846         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
5847         duplicates.
5848
5849 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5850
5851         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5852         atan2?f3 expanders.
5853
5854 2004-04-29  Nick Clifton  <nickc@redhat.com>
5855
5856         Bug 14093
5857         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5858         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5859         Delete static from definition.
5860         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5861
5862 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5863
5864         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5865         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5866         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5867         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5868
5869 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5870
5871         * commom.opt (Wfatal-errors): Add it.
5872         * diagnostic.c (flag_fatal_errors): Define it.
5873         (diagnostic_action_after_output): Check for flag_fatal_errors.
5874         * flags.h (flag_fatal_errors): Declare it.
5875         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5876         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5877
5878 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5879
5880         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5881         blocks which have kill flag set.
5882
5883 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5884
5885         * configure.ac (--with-as): Abort if user-supplied assembler
5886         cannot be executed.
5887         (--with-ld): Likewise for the linker.
5888         * configure: Regenerate.
5889
5890 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5891
5892         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5893         isn't NULL before using it.
5894
5895 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5896
5897         PR target/15189
5898         * config/mips/mips.md (load_df_low): Use default length.
5899         (load_df_high, store_df_high): Likewise.
5900
5901 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5902
5903         * config/mips/mips.md, config/mips/sb1.md,
5904         config/rs6000/rs6000.c: Fix comment typos.
5905
5906 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5907
5908         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5909         Fix comment typos.
5910
5911 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5912
5913         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5914         (delete_if_ordinary): Use above macro.
5915         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5916         Update copyright.
5917         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5918
5919 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5920
5921         * c-decl.c (get_parm_info): Use the correct tag keywords when
5922         warning about type declarations in prototypes.
5923
5924 2004-04-29  Paul Brook  <paul@codesourcery.com>
5925
5926         * config.gcc: Pull list of cores from arm-cores.def.
5927
5928 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5929
5930         * combine.c (combine_simplify_rtx): Adjust call to use
5931         simplify_relational_operation.  Do not use SELECT_CC_MODE
5932         when a comparison already has a MODE_CC mode.
5933
5934 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5935
5936         (simplify_set): simplify_relational_operation may now
5937         return another relational expression.
5938         * cse.c (fold_rtx): simplify_relational_operation now
5939         takes of computing the comparison mode.
5940         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5941         remove dead code.
5942         (do_compare_rtx_and_jump): Likewise.
5943         * integrate.c (subst_constants): simplify_relational_operation
5944         may now return another relational expression.
5945         * simplify-rtx.c (simplify_gen_relational): Move most code to
5946         the new simplify_relational_operation and
5947         simplify_relational_operation_1 functions.
5948         (simplify_relational_operation): Rewritten.
5949         (simplify_relational_operation_1): New function.
5950         (simplify_ternary_operation): simplify_relational_operation
5951         may now return another relational expression.
5952         (simplify_rtx): Remove unnecessary temp variable.
5953
5954 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5955
5956         * reg-stack.c (swap_to_top): New function.
5957         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5958         swap_to_top().
5959         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5960         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5961         UNSPEC_FSCALE_EXP.
5962
5963         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5964         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5965         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5966         x87's fscale insn.
5967         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5968         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5969         patterns.
5970
5971 2004-04-28  Serge Belyshev  <1319@bot.ru>
5972
5973         PR 14944
5974         * coverage.c (read_counts_file): Fix usage of warning () call.
5975         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5976
5977 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5978
5979         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5980         options with "-" in the option index.
5981         (SPARC Options): Likewise.
5982         (M32R/D Options): Likewise.
5983
5984 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5985
5986         * convert.c (convert_to_integer): Convert (long)round -> lround,
5987         etc.
5988
5989 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5990
5991         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5992         Return false if we do not have fp register.
5993         (addrs_ok_for_quad_peep): Rename to ...
5994         (mems_ok_for_quad_peep): this.
5995         Add check for volatile memory.
5996         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5997         Rename to ...
5998         (mems_ok_for_quad_peep): this.
5999         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
6000         to peephole2's.
6001         (lfq_power2): New instruction.
6002         (stfq_power2): Likewise.
6003
6004 2004-04-28  Jan Hubicka  <jh@suse.cz>
6005
6006         PR c/15004
6007         * function.c (do_warn_unused_parameter): Break out form ...
6008         (expand_function_end): ... here; warn only when not using cgraphunit.
6009         * function.h (do_warn_unused_parameter): Declare.
6010         * cgraphunit.c: Include function.h.
6011         (cgraph_finalize_function): Do unused parameter warning.
6012         * Makefile.in (cgraphunit.o): Depend on function.h
6013
6014 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6015
6016         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
6017         calling install-info on $(DESTDIR)$(infodir)/dir already being
6018         present.
6019
6020 2004-04-28  Paul Brook  <paul@codesourcery.com>
6021
6022         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
6023
6024 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6025
6026         * gcse.c (find_moveable_store): Do not accept store insns with
6027         REG_EH_REGION note.
6028
6029 2004-04-28  Paul Brook  <paul@codesourcery.com>
6030
6031         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
6032         * function.c (assign_temp): Ditto.
6033         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
6034
6035 2004-04-28  Paul Brook  <paul@codesourcery.com>
6036
6037         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
6038
6039 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
6040
6041         * var-tracking.c (variable_different_p): Add a parameter
6042         compare_current_location, compare current location of variable parts
6043         if it is true.
6044         (dataflow_set_different_1): Pass compare_current_location == false.
6045         (dataflow_set_different_2): Pass compare_current_location == false.
6046         (emit_notes_for_differences_1): Pass compare_current_location == true.
6047
6048 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6049
6050         * config/s390/s390.md ("casesi"): Mark jump table access as
6051         non-trapping and unchanging.
6052
6053 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6054
6055         PR debug/14829
6056         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
6057         callers.
6058         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
6059         number for indexing hard_regno_nregs array.
6060
6061 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
6062
6063         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
6064         * config/darwin-crt2.c: Only have contents on __ppc__.
6065
6066 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
6067
6068         * config/xtensa/xtensa.c (call_insn_operand): Check
6069         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
6070         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
6071         * config/xtensa/xtensa.md (call, call_value): Likewise.
6072
6073 2004-04-27  Wu Yongwei  <adah@sh163.net>
6074
6075         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
6076         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
6077         (__gthread_mutex_init_function): Replace CreateMutex with
6078         initialization of custom mutex using CreateSemaphore.
6079         (__gthread_mutex_lock): Use InterlockedIncrement.
6080         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
6081         (__gthread_mutex_unlock): Use InterlockedDecrement and
6082         ReleaseSemaphore to unlock
6083         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
6084         __gthread_mutex_lock, __gthread_mutex_trylock,
6085         __gthread_mutex_unlock): Adjust to match inline versions in
6086         gthr-win32.h.
6087
6088 2004-04-27  Paul Brook  <paul@codesourcery.com>
6089
6090         * config/arm/arm.c (arm_promote_prototypes): New function.
6091         (TARGET_PROMOTE_PROTOTYPES): Use it.
6092
6093 2004-04-27  Paul Brook  <paul@codesourcery.com>
6094
6095         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
6096
6097 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
6098
6099         * config/alpha.c (alpha_end_function): For OpenVMS gas,
6100         correctly output .pdesc directive before .end.
6101
6102 2004-04-26  James E Wilson  <wilson@specifixinc.com>
6103
6104         Bug 14927
6105         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
6106         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
6107
6108 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
6109
6110         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
6111         * config/pa/pa-hpux10.h: Likewise.
6112         * config/pa/pa-hpux11.h: Likewise.
6113
6114 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
6115
6116         * doc/invoke.texi (Overall Options): Document default for -o
6117         for PCH files.
6118
6119 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6120
6121         * builtins.c (expand_builtin_update_setjmp_buf): New function.
6122         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
6123         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
6124
6125 2004-04-26  Paul Brook  <paul@codesourcery.com>
6126
6127         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
6128
6129 2004-04-26  Paul Brook  <paul@codesourcery.com>
6130
6131         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
6132
6133 2004-04-25  Roger Sayle  <roger@eyesopen.com>
6134
6135         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
6136         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
6137         X % -1 as 0.
6138
6139 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
6140
6141         PR bootstrap/15141
6142         * except.c (connect_post_landing_pads): Delete insns after the
6143         barrier when generating a unwind_resume_libfunc call.
6144
6145 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6146
6147         PR/c++ 15119
6148         * tree.c (substitute_placeholder_in_expr, case 4): New case,
6149         for TARGET_EXPR.
6150
6151 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6152
6153         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6154         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
6155         inhibit_libc is defined.
6156
6157 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
6158
6159         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
6160         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
6161         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
6162         (TARGET_SCHED_VARIABLE_ISSUE): Define.
6163         (mips_adjust_cost): Move later in file, next to other sched hooks.
6164         (mips_macc_chains_last_hilo): New variable.
6165         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
6166         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
6167         * config/mips/mips.md (may_clobber_hilo): New attribute.
6168
6169 2004-04-24  Roger Sayle  <roger@eyesopen.com>
6170             Bruce Korb  <bkorb@gnu.org>
6171
6172         * fixinc/inclhack.def (aix_syswait_2): New fix.
6173         * fixinc/fixincl.x: Regenerate.
6174         * fixinc/tests/base/sys/wait.h: Update for new test.
6175
6176 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
6177
6178         PR target/14960
6179         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
6180         to non_fixed_size, and leave out fixed_size from the sum.
6181         (generate_set_vrsave): Correct clobbers.
6182         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
6183         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
6184         (rs6000_libcall_value): Likewise.
6185         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
6186         (FUNCTION_ARG_REGNO_P): Likewise.
6187
6188 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6189
6190         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
6191         is a CONST_INT.
6192         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
6193         with NARROW_OP1 instead of OP1.
6194
6195 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6196
6197         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
6198         and __s390x__ hosts.
6199
6200 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6201
6202         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
6203         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
6204         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
6205         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
6206         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
6207         * builtins.c (expand_builtin_fork_or_exec): New.
6208         (expand_builtin): Call it.
6209         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
6210         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
6211         * c-common.c (PID_TYPE): New macro.
6212         (c_common_nodes_and_builtins): Initialize pid_type_node.
6213         * calls.c (special_function_p): Do not handle fork and exec.
6214         (expand_call): Do not handle ECF_FORK_OR_EXEC.
6215         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6216         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
6217         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6218         __gcov_execv, __gcov_execvp, __gcov_execve): New.
6219         * tree.h (enum tree_index): Add TI_PID_TYPE.
6220         (pid_type_node): New macro.
6221         (ECF_FORK_OR_EXEC): Removed.
6222
6223 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6224
6225         PR optimization/13985
6226         * cfgloopmanip.c (fix_loop_placements): New prototype.
6227         Call fix_bb_placements on the preheader of loops that have
6228         been reparented.
6229         (remove_path): Adjust call to fix_loop_placements.
6230
6231 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
6232
6233         * config/darwin7.h: New file.
6234         * config.gcc (*-*-darwin*): Add darwin7.h if the
6235         version is greater than 6.
6236         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
6237         (MATH_LIBRARY): Wrap in ifdefs.
6238
6239 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
6240
6241         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
6242         loading iWMMXt registers with a frame pointer.  Use post-increment
6243         without a frame pointer.
6244         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
6245
6246 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
6247
6248         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
6249         mode" rather than "-funit-at-a-time" since -O2 enables it
6250         without requiring -f* options.  Refer to -fprofile-generate and
6251         -fprofile-use correctly.  Move -funit-at-a-time among options
6252         enabled by -O.  Add information about unit-at-a-time caveats.
6253
6254 2004-04-22  Per Bothner  <per@bothner.com>
6255
6256         * line-map.h (struct line_maps):  New field highest_line.
6257         (linemap_position_for_column):  Make non-inline function.
6258         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
6259         * line-map.c (linemap_init):  Clear highest_line field.
6260         (linemap_add):  Set highest_line field.
6261         (linemap_line_start):  Minor optimization - use highest_line field.
6262         Reduce maximum column hint to 10000.  Update highest_line field.
6263         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
6264         * cpphash.h (struct cpp_reader):  Remove line field - instead use
6265         line_table->highest_line.
6266         (saved_line):  Remove unused field.
6267         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
6268         Use  line_table's highest_line field instead of cpp_reader's line.
6269         * cpplib.c (start_directive):  Likewise use highest_line field.
6270         (do_line, do_linemarker):  Likewise just use newest map.
6271         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
6272         * cpperror.c (cpp_error):  Likewise use highest_line field.
6273         * cppfiles.c (open_file_failed:  Likewise.
6274         (cpp_make_system_header):  Likewise use newest map and highest_line.
6275         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
6276         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
6277         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
6278         _cpp_lex_direct):  Likewise use highest_line.
6279         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
6280         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
6281         and use newest map.
6282         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
6283         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
6284         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
6285
6286 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
6287
6288         PR bootstrap/14992
6289         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
6290         * config/linux.h (USE_LD_AS_NEEDED): Define.
6291         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
6292         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
6293         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
6294         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
6295         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
6296         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
6297         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
6298
6299 2004-04-22  Per Bothner  <per@bothner.com>
6300
6301         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
6302         Fixes PR preprocessor/15067.
6303
6304 2004-04-23  Andreas Schwab  <schwab@suse.de>
6305
6306         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
6307         avoid aliasing warning.
6308
6309 2004-04-22  Jan Hubicka  <jh@suse.cz>
6310             Mostafa Hagog <mustafa@il.ibm.com>
6311
6312       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
6313       * cfgloopanal.c (expected_loop_iterations): Change the return value
6314
6315 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
6316
6317         * cselib.h (struct elt_loc_list): Remove canon_loc field.
6318         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6319         (cselib_invalidate_mem): Remove all canon_loc and canon_x
6320         traces.
6321
6322 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
6323
6324         Revert
6325         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6326
6327                 * var-tracking.c (variable_part_different_p): Variable parts
6328                 differ when the most recent locations differ.
6329
6330 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
6331
6332         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6333         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6334         (embedded_pic_offset): Delete.
6335         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
6336         MASK_* constants.
6337         (TARGET_EMBEDDED_PIC): Delete.
6338         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6339         (ASM_SPEC): Remove -membedded-pic.
6340         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6341         (ASM_OUTPUT_CASE_LABEL): Likewise.
6342         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6343         * config/mips/windiss.h (ASM_SPEC): Likewise.
6344         * config/mips/mips.c (struct machine_function): Remove
6345         embedded_pic_fnaddr_rtx.
6346         (TARGET_ENCODE_SECTION_INFO): Remove override.
6347         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6348         (override_options): Remove -membedded-pic handling.
6349         (print_operand): Remove handling of '%S'.
6350         (mips_select_section: Remove -membedded-pic handling.
6351         (mips_encode_section_info): Delete.
6352         (mips_output_conditional_branch): Remove mention of -membedded-pic.
6353         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6354         -membedded-pic handling.
6355         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6356
6357 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
6358
6359         * var-tracking.c (frame_base_decl): Remove useless GTY.
6360
6361 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
6362
6363         * config/rs6000/rs6000.c (rs6000_override_options): Error when
6364         user wants altivec and e500 instructions.
6365
6366 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6367
6368         PR target/14813
6369         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6370         in .init_array section to ...
6371         * config/ia64/crtbegin.asm: Here.
6372
6373         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6374         and hidden if HAVE_INITFINI_ARRAY is defined.
6375
6376 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6377
6378         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6379         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6380         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6381         (fp_register_operand, lo_operand): New.
6382         (mips_rtx_costs): Add TUNE_SB1 support.
6383         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6384         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6385         (mips_multipass_dfa_lookahead): New.
6386         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6387         TUNE_SB1): New.
6388         (TARGET_SWITCHES): Add -mfp-exceptions support.
6389         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6390         (BRANCH_COST): Fix whitespace.
6391         * config/mips/mips.md: Include sb1.md.
6392         * config/mips/sb1.md: New file.
6393         * doc/invoke.texi: Document -mfp-exceptions.
6394
6395         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6396         comment.
6397         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6398         (fixincl.o-warn): Delete.
6399
6400 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6401
6402         * config/rs6000/rs6000 (print_operand) ['z']:
6403         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6404
6405 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6406
6407         * config.gcc: Support --with-arch=iwmmxt for ARM.
6408
6409 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6410
6411         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6412         in two more places; remove unneeded force_reg
6413
6414 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6415
6416         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6417         for TARGET_MACHO.
6418         (print_operand): For TARGET_MACHO check to see if we need a stub
6419         and output one if we need it.
6420
6421         PR debug/15033
6422         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6423         rtl.
6424
6425 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6426
6427         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6428         (vall_value_gp): Likewise.
6429
6430 2004-04-20  DJ Delorie  <dj@redhat.com>
6431
6432         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6433         variables stored in word registers, then in memory.
6434
6435 2004-04-20  Eric Christopher  <echristo@redhat.com>
6436
6437         * cp/parser.c (cp_parser_declaration): Move translate
6438         up before tokens are lexed.
6439
6440 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6441
6442         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6443         (asin_optab, acos_optab): Define corresponding macros.
6444         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6445         * genopinit.c (optabs): Implement asin_optab and acos_optab
6446         using asin?f2 and acos?f2 patterns.
6447         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6448         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6449         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6450         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6451
6452         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6453         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6454         acos, acosf and acosl built-ins as inline x87 intrinsics.
6455
6456 2004-04-20  Paul Brook  <paul@codesourcery.com>
6457
6458         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6459
6460 2004-04-20  Paul Brook  <paul@codesourcery.com>
6461
6462         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6463
6464 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6465
6466         Revert part of 2004-04-17 change that moved -frename-registers
6467         to -O1.  -frename-registers is buggy.
6468
6469         * toplev.c (flag_rename_registers): Initialize to 0.
6470         * doc/invoke.texi (Optimize options): Move -frename-registers
6471         to "Not triggered by any -O level" section.  Adjust commentary
6472         accordingly.
6473
6474 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6475
6476         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6477
6478 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6479
6480         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6481         for mflo and mfhi instructions.
6482         (mips_output_move): Remove mflo and mfhi handling.
6483         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6484         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6485         Likewise various define_peephole2s.
6486         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6487         alternatives.
6488         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6489         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6490         (mfhilo_di, mfhilo_si): New patterns.
6491
6492 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6493
6494         * function.c (assign_parms): Force
6495         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6496
6497 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6498
6499         * var-tracking.c (variable_part_different_p): Variable parts differ
6500         when the most recent locations differ.
6501
6502 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6503
6504         * rtl.h (reg_set_last): Delete declaration.
6505         * rtlanal.c (reg_set_last): Delete.
6506
6507 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6508
6509         * fold-const.c (fold_convert): Make function extern/public.
6510         * tree.h (fold_convert): Prototype here.
6511         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6512         expand_builtin_strrchr, expand_builtin_strpbrk,
6513         expand_builtin_mempcpy, expand_builtin_bcopy,
6514         expand_builtin_bzero, expand_builtin_memcmp,
6515         expand_builtin_strcmp, expand_builtin_strncmp,
6516         stabilize_va_list, expand_builtin_sprintf,
6517         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6518         fold_builtin_exponent, fold_builtin_mempcpy,
6519         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6520         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6521         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6522
6523 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6524
6525         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6526         (move_from_CR_gt_bit): New.
6527         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6528         E500.
6529         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6530         E500.
6531
6532         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6533         (tstsfeq_gpr): Same.
6534         (cmpsfgt_gpr): Same.
6535         (tstsfgt_gpr): Same.
6536         (cmpsflt_gpr): Same.
6537         (tstsflt_gpr): Same.
6538         (e500_cceq_ior_compare): New.
6539         (e500_flip_gt_bit): New.
6540
6541         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6542         (print_operand): Add 'c' and 'D'.
6543         (rs6000_generate_compare): Rewrite to generate correct rtl.
6544         (rs6000_emit_sCOND): Handle E500.
6545         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6546         (output_e500_flip_gt_bit): New.
6547
6548         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6549         Protoize.
6550
6551 2004-04-19  Eric Christopher  <echristo@redhat.com>
6552
6553         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6554
6555 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6556
6557         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6558         fix information.
6559
6560 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6561
6562         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6563         download URL.
6564
6565 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6566
6567         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6568         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6569
6570 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6571
6572         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6573         (fold_builtin): Update caller to match.
6574
6575         PR bootstrap/15009
6576         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6577
6578         PR bootstrap/14999
6579         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6580
6581 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6582
6583         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6584
6585         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6586         (expand_mult_highpart_optab): Likewise.
6587         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6588
6589 2004-04-19  Paul Brook  <paul@codesourcery.com>
6590
6591         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6592         floatunssisf2, floatunssidf2): New patterns.
6593
6594 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6595
6596         PR other/14918
6597         * doc/invoke.texi (-fprofile-generate): Document requirement to
6598         use -fprofile-generate when linking.
6599
6600         * doc/extend.texi (Strong Using): Warn users against using this
6601         feature.
6602
6603 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6604
6605         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6606         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6607         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6608         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6609         constant.  Propogate change throughout file.
6610         (struct machine_function): Remove insns_len.
6611         (mips_string_length, mips16_strings, string_constants): Delete.
6612         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6613         when generating mips16 code.  Remove special mips16 treatment of
6614         string constants.
6615         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6616         to have the form LABEL+CONSTANT.
6617         (mips_symbolic_address_p): Fix comment.
6618         (m16_usym8_4, m16_usym5_4): Delete.
6619         (mips_output_function_epilogue): Remove mips16 string handling.
6620         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6621         (mips_select_section, mips_encode_section_info): Remove mips16
6622         string handling.
6623         (struct mips16_constant_pool): New.
6624         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6625         sorted into order of ascending mode size.  Keep track of the highest
6626         possible start address, taking padding and the masking of the base PC
6627         value into account.
6628         (dump_constants_1): New function, split out from dump_constants.
6629         Handle vector constants.  Use gen_consttable_{int,float} rather than
6630         separate functions for each mode.
6631         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6632         rather than separate functions for each alignment.
6633         (mips_find_symbol): Delete.
6634         (mips16_insn_length): New function, split out from
6635         mips16_lay_out_constants.
6636         (mips16_rewrite_pool_refs): New function.
6637         (mips16_lay_out_constants): Rework. Remove string handling.
6638         Always create an inline constant pool.
6639         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6640         (UNSPEC_ALIGN): New constants.
6641         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6642         (UNSPEC_ALIGN_[248]): Delete.
6643         (consttable_int, consttable_float, align): New patterns.
6644         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6645
6646 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6647
6648         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6649         __unn_args_eq.
6650
6651 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6652
6653         PR target/14715
6654         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6655         with STARTING_FRAME_OFFSET.
6656
6657 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6658
6659         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6660         * config/mips/mips.c (macc_msac_operand): New function.
6661         * config/mips/mips.md (*msac): Move after *macc.
6662         (*msac2): New.  Generalize macc-related peepholes so that they apply
6663         to msac too.
6664
6665 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6666
6667         * opts.c (decode_options): Do not enable flag_rename_registers
6668         and flag_web at -O3.
6669         * toplev.c (flag_rename_registers): Initialize
6670         flag_rename_registers and flag_web to
6671         AUTODETECT_FLAG_VAR_TRACKING.
6672         (default_debug_hooks): New global.
6673         (process_options): Initialize default_debug_hooks.  Warn if
6674         -fvar-tracking specified but not supported by the current
6675         debug format.  Do not run var tracking at -O0 or if not
6676         supported by the current debug format, even if
6677         -fvar-tracking was given.  If -fno-rename-registers
6678         is not specified, always run register renaming if var
6679         tracking is supported by the default debugging information
6680         format for the target, and we are at -O1 or higher; similarly
6681         for -fweb, but only at -O2 or higher.
6682         * doc/invoke.texi (Optimize Options): Document this.
6683
6684 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6685
6686         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6687         * configure: Regenerate.
6688
6689 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6690
6691         * gcc.c (used_arg): Check whether an option has been removed.
6692
6693 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6694
6695         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6696         debugging on Solaris 7 and up.
6697
6698 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6699
6700         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6701         IRIX 5 port.
6702         Remove -save-temps workaround, handled automatically.
6703         Require GNU binutils 2.15 for debugging.
6704         Remove SGI make warnings since GNU make is now required.
6705         (Specific, mips-sgi-irix6): Some markup fixes.
6706         Describe MIPSpro C problems and workarounds.
6707         Mention working O32 ABI support.
6708         Recommend GNU as 2.15 for O32 with debugging.
6709         Remove description of fixed structure pass/return bug.
6710
6711 2004-04-16  DJ Delorie  <dj@redhat.com>
6712
6713         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6714         TYPE_FIELDS.
6715         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6716
6717 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6718
6719         * pa.md: Remove unnecessary declarations for asm_out_file.
6720
6721         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
6722         SAR register.  Fix comment.
6723         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
6724         (%cr11).
6725
6726         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
6727
6728 2004-04-16  Nick Clifton  <nickc@redhat.com>
6729
6730         * config/arm/arm.c (arm_override_options): Revert previous patch.
6731         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
6732         be safely built.
6733
6734 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6735
6736         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
6737         bug.
6738         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
6739         TARGET_DEFAULT): Changed. Ditto.
6740         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
6741         TARGET_ENDIAN_DEFAULT): Added. Ditto.
6742         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
6743         (TARGET_ENDIAN_DEFAULT): Added.
6744
6745 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6746
6747         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
6748         ATTR_CONST_NOTHROW_LIST.
6749
6750 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6751
6752         PR/middle-end 14915
6753         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
6754         BITS_BIG_ENDIAN.
6755
6756 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6757
6758         * ra-debug.c (ra_print_rtx): Add break's to case legs.
6759
6760 2004-04-14  James E Wilson  <wilson@specifixinc.com>
6761
6762         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
6763
6764 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6765
6766         * libada-mk.in: New file.
6767         * configure.ac: Create libada-mk from libada-mk.in.
6768         * configure: Regenerate.
6769
6770 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
6771
6772         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
6773         (logb_optab, ilogb_optab): Define corresponding macros.
6774         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
6775         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
6776         using logb?f2 and ilogb?i2 patterns.
6777         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
6778         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
6779         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
6780         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6781
6782         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
6783         and UNSPEC_XTRACT_EXP.
6784
6785         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
6786         patterns to implement fxtract x87 instruction.
6787         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
6788         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
6789         intrinsics.
6790         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
6791         x87's fxtract insn.
6792
6793 2004-04-14  Eric Christopher  <echristo@redhat.com>
6794
6795         * config/mips/t-elf: Enable multilibs by default.
6796
6797 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
6798
6799         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6800         previous fix to check HAVE_return at runtime too.
6801
6802 2004-04-14  Nick Clifton  <nickc@redhat.com>
6803
6804         * config/arm/arm.c (arm_override_options): If the user has not
6805         specified an ABI, then default to AAPCS for the iWMMXt processor.
6806         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6807         * config/arm/t-xscale-coff: Likewise.
6808
6809 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6810
6811         * builtins.c (fold_builtin_isdigit): New.
6812         (fold_builtin): Handle BUILT_IN_ISDIGIT.
6813         * defaults.h: Add TARGET_DIGIT0 and sort.
6814         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6815
6816 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6817
6818         * builtins.c (fold_builtin_cabs, fold_builtin): Use
6819         `mathfn_built_in' to determine the new builtin.
6820         * fold-const.c (fold): Likewise.
6821
6822 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
6823
6824         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6825         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6826         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6827         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6828         (ASM_SPEC): Update accordingly.
6829         * config/mips/mips.c: Update after above renaming.
6830         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6831         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6832
6833 2004-04-13  James E Wilson  <wilson@specifixinc.com>
6834
6835         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
6836         increment errorcount and return false instead of true.
6837
6838 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
6839
6840         * optabs.c (expand_twoval_unop): Reorder function arguments.
6841         * builtins.c (expand_builtin_mathfn_3): Update calls to
6842         expand_twoval_unop.
6843
6844         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
6845         and UNSPEC_TAN_TAN. Add missing comment.
6846
6847         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
6848         patterns to implement fptan x87 instruction.
6849         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6850         and tanl built-ins as inline x87 intrinsics. Define corresponding
6851         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6852         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6853         x87's fptan insn.
6854
6855 2004-03-13  Richard Henderson  <rth@redhat.com>
6856
6857         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6858         for LABEL_REFs.
6859
6860         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6861         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6862         * doc/invoke.texi: Update to match.
6863
6864         * varasm.c (unlikely_text_section): Use assemble_align instead of
6865         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6866         correct alignment argument.
6867
6868 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6869
6870         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6871         after setting reg_last_reload_reg for optional output reloads.
6872
6873 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6874
6875         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6876         Definition of these two macros are corrected by adding
6877         matchine right paren.
6878
6879 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6880
6881         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6882
6883 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6884
6885         * config/i386/i386.c (output_387_reg_move): New function.
6886         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6887         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6888         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6889         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6890         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6891
6892 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6893
6894         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6895         TYPE_DECL.
6896         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6897         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6898         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6899         Use skip_simple_arithmetic to find SAVE_EXPR.
6900         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6901         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6902         Properly chain multiple pointers.
6903         (copy_tree_r): Copy a TYPE_DECL.
6904         * tree.c (variably_modified_type_p): Add some missing tests and
6905         make some other minor changes.
6906         * tree.h (force_type_save_exprs): New declaration.
6907
6908 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6909
6910         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6911         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6912         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6913         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6914         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6915         x%-1 into 0 (or x&0 if x has side-effects).
6916
6917 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6918
6919         * config/rs6000/rs6000.md: Document why a pattern is not
6920         available.
6921
6922         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6923         of floats on the E500.
6924         (branch_positive_comparison_operator): Do not allow NE even on the
6925         E500.
6926
6927 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6928
6929         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6930         in_text_unlikely_section to in_unlikely_text_section.
6931
6932 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6933
6934         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6935         calling convention to allow a NULL_TREE to be returned.  Factor
6936         sanity checks from callers, return NULL_TREE when appropriate.
6937         (fold): Handle COMPOUND_EXPR operands of binary expressions
6938         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6939         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6940         calls to fold_binary_op_with_conditional_arg.
6941
6942 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6943
6944         * config/mips/iris5.h (current_section_flags):  Add
6945         in_unlikely_executed_text and default case.
6946
6947 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
6948
6949         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6950         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6951         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6952         HAVE_return and place it around the place where it is needed.
6953
6954 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6955
6956         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6957         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6958         and NORMAL_TEXT_SECTION_NAME.
6959         (unlikely_text_section): Check targetm.have_named_sections
6960         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6961         instead of SECTION_FORMAT_STRING.
6962         * config/mips/iris5.h (current_section_name): Add
6963         in_unlikely_executed_text case and move the abort into the switch.
6964         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6965         (NORMAL_TEXT_SECTION_NAME): Remove.
6966         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6967         (SECTION_FORMAT_STRING): Remove.
6968         * defaults.h (SECTION_FORMAT_STRING): Remove.
6969         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6970         (SECTION_FORMAT_STRING): Remove.
6971
6972 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6973
6974         * c-typeck.c (common_type): Prefer long long to long when same
6975         precision.
6976
6977 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6978
6979         PR 14887
6980         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6981         mode argument.
6982         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6983         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6984
6985 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6986
6987         * simplify-rtx.c (mode_signbit_p): New function to check whether
6988         an RTX is an immediate constant that represents the most significant
6989         bit of a given machine mode.
6990         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6991         C is the sign bit.
6992         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6993         when C2 is the sign bit.
6994         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6995         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6996         sign bit.
6997
6998 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6999
7000         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
7001         TYPE_MODE.
7002
7003 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
7004
7005         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
7006         of TREE_READONLY for types.
7007
7008 2004-04-09  Caroline Tice  <ctice@apple.com>
7009
7010         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
7011         (struct basic_block_def):  Add new field, partition.
7012         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
7013         definitions.
7014         (partition_hot_cold_basic_blocks): Add extern function
7015         declaration.
7016         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
7017         include statements.
7018         (N_ROUNDS): Increase the maximum number of rounds by 1.
7019         (branch_threshold): Add array value for new round.
7020         (exec_threshold): Add array value for new round.
7021         (push_to_next_round_p): New function.
7022         (add_unlikely_executed_notes): New function.
7023         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
7024         (mark_bb_for_unlikely_executed_section): New function.
7025         (add_labels_and_missing_jumps): New function.
7026         (add_reg_crossing_jump_notes): New function.
7027         (fix_up_fall_thru_edges): New function.
7028         (find_jump_block): New function.
7029         (fix_crossing_conditional_branches): New function.
7030         (fix_crossing_unconditional_branches): New function.
7031         (fix_edges_for_rarely_executed_code): New function.
7032         (partition_hot_cold_basic_blocks): New function.
7033         (find_traces):  Add an extra round for partitioning hot/cold
7034         basic blocks.
7035         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
7036         and only cold blocks, into the last (extra) round of collecting traces.
7037         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
7038         over crossing edges.
7039         (bb_to_key):  Add code to correctly identify cold blocks when
7040         doing partitioning.
7041         (connect_traces): Modify to connect all the non-cold traces first, then
7042         go back and connect up all the cold traces.
7043         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
7044         * cfg.c (entry_exit_blocks): Add initialization for partition field in
7045         entry and exit blocks.
7046         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
7047         if we are doing hot/cold partitioning.
7048         * cfgcleanup.c (cfglayout.h): Add new include statement.
7049         (try_simplify_condjump): Modify to not attempt on blocks with jumps
7050         that cross section boundaries.
7051         (try_forward_edges): Likewise.
7052         (merge_blocks_move_predecessor_nojumps): Likewise.
7053         (merge_blocks_move_successor_nojumps): Likewise.
7054         (merge_blocks_move): Likewise.
7055         (try_crossjump_to_edge): Modify to not attempt after we have done
7056         the block partitioning.
7057         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
7058         cross section boundaries.
7059         (try_optimize_cfg): Likewise.
7060         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
7061         jumps that cross section boundaries.
7062         * cfglayout.c (flags.h): Add new include statement.
7063         (update_unlikely_executed_notes):  New function.
7064         (fixup_reorder_chain):  Add code so when a new jumping basic block is
7065         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
7066         updated appropriately.
7067         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
7068         introduced by this optimization.
7069         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
7070         extern function declaration.
7071         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
7072         list of notes that can be deleted.
7073         (create_basic_block_structure):  Add initialization for partition field.
7074         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
7075         section boundaries.
7076         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
7077         cross section boundaries.
7078         (commit_one_edge_insertion): Add code so newly created basic block
7079         ends up in correct (hot or cold) section.  Modify to disallow
7080         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
7081         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
7082         crosses section boundaries.
7083         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
7084         cross section boundaries.
7085         (force_nonfallthru_and_redirect): Modify to make sure new basic block
7086         ends up in correct section, with correct notes attached.
7087         * common.opt (freorder-blocks-and-partition):  Add new flag for this
7088         optimization.
7089         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
7090         the end of functions are written into the correct (hot or cold)
7091         section.
7092         (dbx_source_file): Add code so writing debug file information
7093         doesn't incorrectly change sections.
7094         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
7095         in partitioning hot/cold basic blocks into separate sections.
7096         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
7097         section partitioning.
7098         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
7099         conditional branches can span all of memory.
7100         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
7101         unconditional branches can span all of memory.
7102         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
7103         (final_scan_insn):  Add code to check for NOTE instruction indicating
7104         whether basic block belongs in hot or cold section, and to make sure
7105         the current basic block is being written to the appropriate section.
7106         Also added code to ensure that jump table basic blocks end up in the
7107         correct section.
7108         * flags.h (flag_reorder_blocks_and_partition):  New flag.
7109         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
7110         one of the branches has a jump that crosses between sections.
7111         (find_if_case_2): Likewise.
7112         (ifcvt): Modify to not attempt to mark loop exit edges after
7113         hot/cold partitioning has occurred.
7114         * opts.c (decode_options): Code to handle new flag,
7115         flag_reorder_blocks_and_partition; also to turn it off if
7116         flag_exceptions is on.
7117         (common_handle_option): Code to handle new flag,
7118         flag_reorder_blocks_and_partition.
7119         * output.h (unlikely_text_section): New extern function declaration.
7120         (in_unlikely_text_section): New extern function declaration.
7121         * passes.c (rest_of_handle_stack_regs):  Add
7122         flag_reorder_blocks_and_partition as an 'or' condition for calling
7123         reorder_basic_blocks.
7124         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
7125         as an 'or' condition for calling reorder_basic_blocks.
7126         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
7127         * print-rtl.c (print_rtx): Add code for handling new note,
7128         NOTE_INSN_UNLIKELY_EXECUTED_CODE
7129         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
7130         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
7131         cross between section boundaries.
7132         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
7133         indicating the basic block containing it belongs in the cold section.
7134         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
7135         between hot and cold sections.
7136         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
7137         initialize this flag, and to tie it to the command-line option
7138         freorder-blocks-and-partition.
7139         * varasm.c (cfglayout.h):  Add new include statement.
7140         (unlikely_section_label_printed):  New global variable, used for
7141         determining when to output section name labels for cold sections.
7142         (in_section):  Add in_unlikely_executed_text to enum data structure.
7143         (text_section):  Modify code to use SECTION_FORMAT_STRING and
7144         NORMAL_TEXT_SECTION_NAME macros.
7145         (unlikely_text_section):  New function.
7146         (in_unlikely_text_section):  New function.
7147         (function_section):  Add code to make sure beginning of function is
7148         written into correct section (hot or cold).
7149         (assemble_start_function):  Add code to make sure stuff is written to
7150         the correct section.
7151         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
7152         to an if statement that was checking 'in_text_section'.
7153         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
7154         condition to an if statement that was checking 'in_text_section'.
7155         (default_section_type_flags_1):  Add check: if in cold section
7156         flags = SECTION_CODE.
7157         * config/darwin.c (darwin_asm_named_section):  Modify to use
7158         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7159         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
7160         specifically for the i386.
7161         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
7162         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
7163         text string to something more informative.
7164         (NORMAL_TEXT_SECTION_NAME): Add new definition.
7165         (SECTION_FORMAT_STRING):  Add new definition.
7166         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
7167         '!in_unlikely_text_section' as an 'and' condition to an if statement
7168         that was already checking '!in_text_section'.
7169         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
7170         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
7171         sure these are properly defined for linux on ppc.
7172         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
7173         for this new flag.
7174         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
7175         reg_note.
7176         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
7177         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
7178         these new macros.
7179
7180 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7181
7182         * function.c (gen_mem_addressof): When changing the RTX from a REG
7183         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
7184
7185 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7186
7187         PR target/14888
7188         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
7189         truncxfdf2_noop): Provide dummy "fmov" implementations.
7190
7191 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
7192
7193         * gcc.c (default_compilers): Add missing initializers.
7194
7195         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7196         Return 1 if file was successfully mapped.
7197
7198 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
7199
7200         PR pch/13419
7201         PR pch/14137
7202         Radar #: 3315288
7203         * doc/invoke.texi (Precompiled Headers): Suggest -o
7204         to put an output file in a particular place.  Be more detailed
7205         about which options affect PCH validity and which options
7206         might not work.
7207         * c-pch.c (pch_matching): New.
7208         (MATCH_SIZE): New.
7209         (struct c_pch_validity): New field 'match'.
7210         (pch_init): Handle pch_matching.
7211         (c_common_valid_pch): Check pch_matching.
7212
7213         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
7214
7215 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
7216
7217         * doc/invoke.texi (Precompiled Headers): Warn about known
7218         problems.
7219
7220 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
7221
7222         PR c++/14808
7223         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
7224         to 1 if ASM_OUTPUT_DEF is defined.
7225         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
7226         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
7227         Set to non-zero iff not a one_only decl.
7228
7229 2004-04-08  Paul Brook  <paul@codesourcery.com>
7230
7231         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
7232
7233 2004-04-08  Paul Brook  <paul@codesourcery.com>
7234
7235         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
7236         PROMOTE_FOR_CALL_ONLY.
7237         * config/arm/arm-protos.h (arm_function_value): Declare.
7238         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
7239         (TARGET_PROMOTE_PROTOTYPES): Return false.
7240         (arm_function_value): New function.
7241         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
7242         (FUNCTION_VALUE): Call arm_function_value.
7243         * config/cris/cris.h (PROMOTE_MODE): Rename ...
7244         (PROMOTE_FUNCTION_MODE): ... to this.
7245         (PROMOTE_FOR_CALL_ONLY): Remove.
7246         * config/mmix/mmix.h: Likewise.
7247         * config/s390/s390.h: Likewise.
7248         * config/sparc/sparc.h: Likewise.
7249         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
7250         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
7251         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
7252         (PROMOTE_FOR_CALL_ONLY): Remove.
7253
7254 2004-04-08  Joel Sherrill <joel@oarcorp.com>
7255
7256         PR ada/14538
7257         * ada/5rosinte.adb: Remove fake mprotect() body.
7258         * ada/5rosinte.ads: Add SA_SIGINFO.
7259         * ada/5rtpopsp.adb: Rewrite to use new interface.
7260         * ada/init.c: Reorder so the simple single OS conditional __rtems__
7261         is tested before more complex ones which mix UNIX and embedded
7262         systems in the conditional.
7263
7264 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
7265
7266         PR ada/14665
7267         * ada/osint.adb (Find_Program_Name): Rework to properly handle
7268         filenames which end in .exe or have versioning suffixes like VMS.
7269
7270 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
7271
7272         PR target/10129
7273         * config/darwin.c (darwin_encode_section_info): When the decl has
7274         a DECL_INITIAL, it is only defined also when it is not a common.
7275
7276 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7277
7278         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
7279         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
7280
7281 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
7282
7283         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
7284         global register variables.
7285
7286 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
7287
7288         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
7289         rpc_xdr_lvalue_cast_b): New fixes.
7290         * fixinc/fixincl.x: Regenerate.
7291         * fixinc/tests/base/rpc/xdr.h: Add new tests.
7292
7293 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
7294
7295         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
7296         to power4 and power5 entries.
7297
7298 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
7299
7300         * c-common.h (pending_lang_change): Mark for PCH.
7301
7302 2004-04-07  Caroline Tice  <ctice@apple.com>
7303
7304         * gcc.c (main): Move 'break' in main loops (on an error)
7305         to wait until error processing has occurred.
7306
7307 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
7308
7309         * config.gcc: Stop changing enable_threads midstream.
7310         Replace uses of enable_threads_flag with enable_threads.
7311         * configure.ac: Replace uses of enable_threads_flag with
7312         enable_threads.  Improve autoconf quotation in one place.
7313         * configure: Regenerate.
7314
7315 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
7316
7317         * builtins.c: Implement support for sincos function.
7318         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7319         BUILT_IN_COS{,F,L}.
7320         (expand_builtin_mathfn_3): New function.
7321         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7322         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7323         flag_unsafe_math_optimization is set.
7324
7325         * optabs.h (enum optab_index): Add new OTI_sincos.
7326         (sincos_optab): Define corresponding macro.
7327
7328         * optabs.c (init_optabs): Initialize sincos_optab.
7329         (expand_twoval_unop): New function.
7330
7331         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7332         patterns.
7333
7334         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7335         and UNSPEC_SINCOS_SIN.
7336
7337         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7338         sincosxf3): New patterns to implement sincos, sincosf and sincosl
7339         built-ins as inline x87 intrinsics. Define splits for
7340         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7341         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7342         sincos patterns.
7343         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7344         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7345
7346         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7347         x87's fsincos insn.
7348
7349 2004-04-06  Devang Patel  <dpatel@apple.com>
7350
7351         PR 14467
7352         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7353
7354 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7355
7356         * doc/install.texi: Update HP-UX 11 installation procedure.
7357
7358 2004-04-06  Paul Brook  <paul@codesourcery.com>
7359
7360         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7361
7362 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7363
7364         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7365         when the TLS address is generated by a function call.
7366         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7367         (tls_local_dynamic): Likewise.
7368
7369 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7370
7371         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7372         and TYPE_VOLATILE.
7373
7374 2004-04-05  Caroline Tice  <ctice@apple.com>
7375
7376         * gcc.c (combine_flag): New global variable, for new driver option.
7377         (struct compiler): Add two new fields, to be used when
7378         combining multiple input files in a single pass (IMA).
7379         (default_compilers):  Add values for the new fields to all
7380         compiler entries. Modify the "@c" compiler entry for doing IMA
7381         properly with "-save-temps" and the "combine" flag.
7382         (option_map):  Add new driver option, "--combine", to tell driver
7383         to pass multiple input files to compiler at one time.
7384         (have_o_argbuf_index): New global variable.
7385         (store_arg): Modify to assign value to have_o_argbuf_index.
7386         (struct infile):  Add three new fields, to help with IMA.
7387         (display_help): Add help for new "combine" option.
7388         (process_command): Remove local variable have_o; add code to check
7389         for new "combine" option; remove assignment to combine_inputs.
7390         (do_spec_1):  Modify to deal with IMA better.
7391         (main): Make variable 'lang_n_infiles' local to entire function
7392         rather than to a single block.  Use flag combine_flag to
7393         determine whether to do IMA or not; Modify loop initializing
7394         infiles to deal properly with linker files.
7395         Add code for doing preprocessing in presence of
7396         IMA with "-save-temps" flag.  Modify "main" loop to handle
7397         multiple input files, in multiple languages, with or without
7398         preprocessing,  gracefully.
7399         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7400         re-set it to same directory it's previously been set to (avoid
7401         irritating, meaningless warning messages when doing IMA with
7402         save-temps).
7403         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7404         remove documentation about IMA that is no longer accurate; Add
7405         documentation explaining what "-combine" does.
7406         * ada/lang-specs.h: Add initialization values for new fields in
7407         "struct compiler".
7408         * cp/lang-specs.h: Likewise.
7409         * f/lang-specs.h: Likewise.
7410         * java/lang-specs.h: Likewise.
7411         * objc/lang-specs.h: Likewise.
7412         * treelang/lang-specs.h: Likewise.
7413
7414 2004-04-05  David Edelsohn
7415
7416         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7417         symbol handling.
7418
7419 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7420             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7421
7422         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7423         * pa.md: Use replace_equiv_address to retain the attributes of the
7424         memory operands used in the split and peephole2 patterns for optimizing
7425         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7426
7427 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7428
7429         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7430         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7431         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7432         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7433         PARM_DECL.
7434         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7435         for a type.
7436         * print-tree.c (print_node): Properly handle side-effects, readonly,
7437         and constant flags.
7438         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7439         and TREE_CONSTANT if not a type.
7440         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7441         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7442         (NON_TYPE_CHECK): New macro.
7443         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7444
7445 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7446
7447         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7448         to DWARF2_DEBUG unconditionally.
7449         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7450
7451 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7452             Nathanael Nerode  <neroden@gcc.gnu.org>
7453
7454         PR target/14548
7455         * config.host: Set the shell variable host_can_use_collect2.
7456         Set it to yes by default, and to no for alpha*-dec-*vms*,
7457         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7458         * configure.ac: Set and substitute the shell variable collect2.
7459         Give an error if use_collect2 is yes and host_can_use_collect2 is
7460         no.
7461         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7462         uses.  Initialize to @collect2@.
7463         (STAGESTUFF): Remove $(USE_COLLECT2).
7464         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7465         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7466         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7467         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7468         * configure: Regenerate.
7469
7470 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7471
7472         * simplify-rtx.c (simplify_binary_operation): Constant fold
7473         DIV, MOD, UDIV and UMOD using div_and_round_double.
7474
7475 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7476
7477         PR c++/14804
7478         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7479         RECORD_TYPEs.
7480
7481 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7482
7483         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7484         documentation.
7485
7486 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7487
7488         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7489         updating the REG_EQUAL note on an insn's libcall_insn.
7490
7491 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7492
7493         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7494
7495 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7496
7497         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7498         with reorder_operands_p.
7499
7500 2004-04-03  Jan Hubicka  <jh@suse.cz>
7501
7502         * md.texi (vec_set, vec_extract, vec_init): Document.
7503
7504 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7505
7506        * opts.c (decode_options): Do function inlining with very small
7507        max-inline-insns-* parameters when optimizing for size.
7508
7509 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7510
7511         * config/i386/i386.h (TARGET_NOCONA): New macro.
7512         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7513         (processor_type): Add PROCESSOR_NOCONA.
7514
7515         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7516
7517         * config/i386/i386.c (nocona_cost): New variable.
7518         (m_NOCONA): New macro.
7519         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7520         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7521         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7522         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7523         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7524         x86_decompose_lea, x86_arch_always_fancy_math_387,
7525         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7526         x86_ext_80387_constants, x86_four_jump_limit):
7527         (override_options): Add nocona_cost to processor_target_table.
7528         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7529         (incdec_operand): Prevent inc/dec generation for Nocona too.
7530         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7531
7532 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7533
7534         * rtlanal.c (find_reg_note): Manually
7535         unswitch the loop.
7536
7537 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7538
7539         * genemit.c (gen_split): Change prototype of generated code.
7540         * genrecog.c (write_action): Adjust prototype for and calls to
7541         gen_split_*.
7542         * gensupport.c (struct queue_elem): Add split field.
7543         (queue_pattern): Return a value.  Clear the split field.
7544         (process_rtx): Maintain an association between an insn and the
7545         split generated from it for a define_insn_and_split.
7546         (process_one_cond_exec): Generate a new split for a
7547         define_insn_and_split.
7548         * config/arm/arm-protos.h (arm_split_constant): Add insn
7549         parameter.
7550         (emit_constant_insn): New function.
7551         (arm_gen_constant): Use it.
7552         * config/arm/arm.md: Adjust calls to arm_split_constant.
7553
7554 2004-04-02  Jan Hubicka  <jh@suse.cz>
7555
7556         * cgraph.c: Add overall comment.
7557         (cgraph_inline_hash): New global variable.
7558         (cgraph_create_node): Break out from ...
7559         (cgraph_node): ... here.
7560         (cgraph_edge): New function.
7561         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7562         (cgraph_remove_edge): Accept edge, intead of source and destination.
7563         (cgraph_redirect_edge_callee): New.
7564         (cgraph_remove_node): Update all new datastructures.
7565         (cgraph_record_call, cgraph_remove_call): Kill.
7566         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7567         (dump_cgraph): ... here.
7568         (cgraph_function_possibly_inlined_p): Use new hashtable.
7569         (cgraph_clone_edge, cgraph_clone_node): New.
7570         * cgraph.h: Include hashtab.h
7571         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7572         fields, add inlined_to pointer.
7573         (cgraph_node): Add pointer to next_clone.
7574         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7575         (cgraph_remove_call, cgraph_record_call): Kill.
7576         (cgraph_inline_hash): Declare.
7577         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7578         cgraph_redirect_edge_callee): Declare.
7579         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7580         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7581         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7582         * cgraphunit.c: Add overall comment.
7583         (cgraph_optimize_function): Kill.
7584         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7585         (cgraph_finalize_function): Update call of cgraph_remove_node
7586         (record_call_1): Record call sites.
7587         (cgraph_create_edges): Accept node instead of decl argument.
7588         (error_found): New static variable.
7589         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7590         (cgraph_analyze_function): Update for new datastructures.
7591         (cgraph_finalize_compilation_unit): Plug memory leak.
7592         (cgraph_optimize_function): Kill.
7593         (cgraph_expand_function): Do not use cgraph_optimize_function.
7594         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7595         cgraph_inlined_callees): Kill.
7596         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7597         clones.
7598         (estimate_growth): Simplify.
7599         (cgraph_clone_inlined_nodes): New function.
7600         (cgraph_mark_inline_edge): Re-implement.
7601         (cgraph_mark_inline): Likewise.
7602         (cgraph_check_inline_limits): Simplify.
7603         (cgraph_recursive_inlining_p): New.
7604         (update_callee_keys): Break out from ...
7605         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7606         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7607         Likewise.
7608         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7609         list.
7610         (cgraph_preserve_function_body_p): New predicate.
7611         (cgraph_optimize): Verify cgraph.
7612         * function.h (struct function): Add fields saved_tree/saved_args.
7613         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7614         * toplev.c (rest_of_compilation): Do not free cfun.
7615         * tree-inline.c: Include function.h
7616         (struct inline_data): Add saving_p field; replace decl/current_decl by
7617         node/current_node.
7618         (insert_decl_map): New function.
7619         (copy_body_r): Handle saving; update cgraph datastructure.
7620         (copy_body): Handle recursive inlining.
7621         (initialize_inlined_parameters): Likewise.
7622         (expand_call_inline): Propagate node attributes; update cgraph.
7623         (optimize_inline_calls): Verify that datastructure still match.
7624         (save_body): New function.
7625         * tree-inline.h (save_body): New.
7626         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7627         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7628         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7629
7630 2004-04-01  Serge Belyshev  <1319@bot.ru>
7631
7632         PR target/14702
7633         * config/i386/i386.md: fix source operand constraints in
7634         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7635
7636 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7637
7638         * fold-const.c (folda): Preserve types of comparisons.
7639
7640 2004-04-01  Richard Henderson  <rth@redhat.com>
7641
7642         * toplev.c (backend_init): Move init_optimization_passes call ...
7643         (lang_dependent_init): ... here.
7644
7645 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7646             Jakub Jelinek  <jakub@redhat.com>
7647
7648         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7649         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7650         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7651         * configure: Rebuilt.
7652         * config.in: Rebuilt.
7653         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7654         (stage2-start, stage3-start, stage4-start): Likewise.
7655         (stageprofile-start, stagefeedback-start): Likewise.
7656
7657 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7658
7659         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7660         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7661         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7662         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7663         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7664         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7665         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7666         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7667         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7668         * config/sparc/t-linux: Removed.
7669
7670 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7671
7672         PR c++/14755
7673         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7674         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7675
7676 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7677
7678         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7679         * stor-layout.c (layout_decl): Likewise.
7680         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7681         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7682         * print-tree.c (print_node): Handle various used of unsigned_flag.
7683         * tree.def (BIT_FIELD_REF): Update comment.
7684         * tree.h (TREE_UNSIGNED): Deleted.
7685         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7686
7687 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7688
7689         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7690         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7691         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7692         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7693         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7694         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7695         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7696         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7697         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7698         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7699         REAL_TYPE, not INTEGER_TYPE.
7700         (layout_type, case VECTOR_TYPE): Simplify code.
7701         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7702         * tree.h: Update comments.
7703         (STRIP_NOPS): Use TYPE_UNSIGNED.
7704         (TYPE_UNSIGNED): New macro.
7705         (TYPE_TRAP_SIGNED): Remove now redundant check.
7706         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7707
7708 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7709
7710         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7711
7712 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
7713
7714         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7715         Add darwin-fpsave.asm, darwin-vecsave.asm,
7716         and darwin-world.asm.
7717         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7718         as the asm files contain altivec instructions.
7719         * config/rs6000/darwin-fpsave.asm: New file.
7720         * config/rs6000/darwin-vecsave.asm: New file.
7721         * config/rs6000/darwin-world.asm: New file.
7722
7723 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
7724
7725         * gengtype-yacc.y (option, stringseq): Add missing
7726         terminating semicolon.
7727
7728 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
7729
7730         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
7731         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
7732         tls_dtprel_ha_32, tls_dtprel_ha_64,
7733         tls_dtprel_lo_32, tls_dtprel_lo_64,
7734         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
7735         tls_tprel_ha_32, tls_tprel_ha_64,
7736         tls_tprel_lo_32, tls_tprel_lo_64,
7737         tls_got_tprel_32, tls_got_tprel_64,
7738         tls_tls_32, tls_tls_64): Replace register_operand with
7739         gpc_reg_operand.
7740
7741 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
7742
7743         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
7744         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
7745         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
7746         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
7747         *ctrdi_internal6): Replace register_operand with
7748         nonimmediate_operand.
7749
7750 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
7751
7752         * fold-const.c (fold): Reassociate multiply expression
7753         with an adjacent non-multiply expression to use
7754         architecture's multiply-add instruction.
7755
7756 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
7757
7758         * gengtype.c (create_option): New function.
7759         * gengtype.h: Prototype it.
7760         * gengtype-yacc.y (stringseq): New rule.
7761         (option): Use create_option.  Add new bare ID production.  Use
7762         stringseq, not STRING directly.
7763
7764         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
7765         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
7766         * varray.h, config/alpha/alpha.c:
7767         Use new shorter form of GTY markers.
7768
7769         * doc/gty.texi: Rewrite.
7770
7771 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
7772
7773         * config/darwin.c (machopic_function_base_name):
7774         Remove current_name and getting the name of the
7775         current function.
7776
7777 2004-03-30  Nick Clifton  <nickc@redhat.com>
7778
7779         * config/arm/arm.md (thumb_jump): Reduce the backward branch
7780         range, and increase the forward branch range, to allow for
7781         the fact that the PC will be off by 4.
7782
7783 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
7784
7785         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
7786
7787 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7788
7789         * config/rs6000/rs6000.c (output_vec_const_move):
7790         Find all cases of EASY_VECTOR_15_ADD_SELF.
7791         (easy_vector_constant_add_self): Accept
7792         all vector constant loadable by vsplt* and vadd*.
7793         (easy_vector_same): Use easy_vector_splat_const.
7794         (easy_vector_const): Use easy_vector_splat_const.
7795         (easy_vector_splat_const): New function.
7796         (gen_easy_vector_constant_add_self): New function.
7797
7798         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7799         New prototype.
7800
7801         * config/rs6000/altivec.md (movv4si splitter): Change to
7802         emit move insn with halfed vector constant.
7803         (*movv8hi splitter): Likewise.
7804         (*movv16qi splitter): Likewise.
7805
7806 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7807
7808         PR 11591
7809         * config/rs6000/rs6000.c (rs6000_legitimate_address):
7810         Allow any offset to argument pointer in no-strict case.
7811
7812 2004-03-30  Jan Hubicka  <jh@suse.cz>
7813
7814         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7815         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7816         dump file in non-unit-at-a-time mode.
7817
7818 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
7819
7820         * config/cris/cris.h: Correct #ifdef to test for
7821         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7822         HAVE_AS_MUL_BUG_ABORT_OPTION.
7823
7824 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7825
7826         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7827         the address inside the old RTL.
7828
7829 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
7830
7831         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7832         (struct c_binding, struct c_scope): Add chain_next
7833         attributes to GTY markers.
7834         (struct lang_identifier, struct lang_tree_node): Define
7835         here...
7836         * c-tree.h: ... not here.  No longer need to declare struct
7837         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7838         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
7839         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7840
7841         PR 14734, 11944
7842         * c-decl.c (get_parm_info): If error_mark_node is encountered
7843         in the bindings chain, unbind and discard it; don't abort.
7844
7845 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
7846             Dorit Naishlos <dorit@il.ibm.com>
7847
7848         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7849         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
7850
7851 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
7852
7853         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7854
7855         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7856         (m68hc11_attribute_table): New attribute "page0" to mark a global
7857         variable as being allocated from within page0 section.
7858         (m68hc11_encode_label): New function.
7859         (m68hc11_strip_name_encoding): New function.
7860         (m68hc11_page0_symbol_p): New function.
7861         (m68hc11_indirect_p): Accept global variables marked in page0.
7862         (m68hc11_encode_section_info): Lookup "page0" attribute.
7863
7864         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7865         represents access to page0 variables.
7866
7867         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7868         ("*logicalsi3_silshl16_zext"): Likewise.
7869         ("*ashldi3_const32"): Likewise.
7870         (peephole2 ashift): Likewise.
7871
7872 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7873
7874         * c-tree.h (C_DECL_REGISTER): New.
7875         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7876         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7877         (build_array_ref, c_mark_addressable): Set and use it.
7878         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7879         Allow structures with volatile fields to be declared register.
7880         Don't check TREE_ADDRESSABLE before warning about taking address
7881         of register.
7882         * c-decl.c (finish_decl): Don't allow structures with volatile
7883         fields to be placed in named register.
7884         * doc/trouble.texi: Remove reference to structures with volatile
7885         fields in registers.
7886
7887 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7888
7889         * function.c (thread_prologue_and_epilogue): Move
7890         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7891         before the epilogue.
7892
7893 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7894
7895         * expr.c (store_constructor): Use gen_int_mode to correctly
7896         sign-extend CONST_INT value.
7897
7898 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7899
7900         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7901         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7902         * doc/extend.texi: Likewise.
7903
7904 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7905
7906         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7907           with TYPE_ORIG_SIZE_TYPE.
7908
7909 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7910
7911         PR 14219
7912         * c-typeck.c (build_binary_op): Do not allow comparisons of
7913         vectors.
7914
7915 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7916
7917         * config.gcc: Remove sparc-tti-*.
7918         * config/sparc/pbd.h: Delete.
7919
7920         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7921         * config/sparc/aout.h: Likewise.
7922
7923         * config/sparc/sparc.h: Remove if 0'd code.
7924         * config/sparc/sparc.md (call): Remove if 0'd code.
7925         (call_value): Likewise.
7926         (nonlocal_goto): Likewise.
7927         (unimp_insn): Delete.
7928
7929 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7930
7931         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7932         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7933
7934 2004-03-25  Richard Henderson  <rth@redhat.com>
7935
7936         PR 11527
7937         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7938         rather than later.
7939
7940 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7941
7942         * builtins.c (fold_builtin): Fix error in last change.
7943
7944 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
7945
7946         * config/mips/mips.h: Formatting fix.
7947
7948 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7949
7950         * builtins.def: Add ctype builtins.
7951         * doc/extend.texi: Likewise.
7952
7953 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7954
7955         * builtins.c (fold_builtin): Add new builtin optimizations for
7956         sqrt and/or cbrt.
7957         * fold-const.c (fold): Likewise.
7958
7959 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7960
7961         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7962         (rs6000_sched_groups): New variable.
7963         (processor_target_table): Add power5.
7964         (rs6000_override_options): Set rs6000_sched_insert_nops,
7965         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7966         from rs6000_sched_groups.
7967         (output_cbranch): Use rs6000_always_hint.
7968         (rs6000_variable_issue): Use rs6000_sched_groups.
7969         (rs6000_adjust_cost): Add CPU_POWER5.
7970         (is_microcoded_insn): Use rs6000_sched_groups.
7971         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7972         Return 2 for POWER5 cracked instructions.
7973         (is_cracked_insn): Use rs6000_sched_groups.
7974         (is_branch_slot_insn): Use rs6000_sched_groups.
7975         (rs6000_issue_rate): Add CPU_POWER5.
7976         (rs6000_sched_finish): Use rs6000_sched_groups.
7977         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7978         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7979         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7980         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7981         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7982         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7983         * config/rs6000/power5.md: New file.
7984         * doc/invoke.texi: Add power5 option.
7985
7986 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7987
7988         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7989         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7990         * doc/invoke.texi: Fix a typo.
7991
7992 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7993
7994         PR optimization/9707.
7995         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7996         of recursing if both children are single-valued cases with no
7997         children.
7998
7999 2004-03-25  Paul Brook  <paul@codesourcery.com>
8000
8001         * config/arm/arm.c (vfp_print_multi): Remove.
8002         (arm_output_fldmx): New function.
8003         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
8004         (arm_expand_prologue): Update to match.
8005         (arm_get_vfp_saved_size): New Function.
8006         (arm_get_frame_offsets): Use it.
8007         (arm_output_epilogue): Use new functions.
8008
8009 2004-03-24  Richard Henderson  <rth@redhat.com>
8010
8011         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
8012         (reg_known_value, reg_known_value_size): Likewise; make static.
8013         (reg_known_equiv_p): Make static.
8014         (clear_reg_alias_info): Update for new indexing.
8015         (get_reg_known_value, set_reg_known_value): New.
8016         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
8017         (canon_rtx): Use them.
8018         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
8019         Don't play queer offsetting games with reg_known_value and
8020         reg_known_equiv_p.
8021         (end_alias_analysis): Free reg_known_value with gc.
8022         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
8023         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
8024         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
8025         functions instead.
8026
8027 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8028
8029         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
8030         config/i386/mmintrin.h: Update copyright.
8031
8032 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8033
8034         * configure.ac: Add --enable-werror-always (for top level bootstrap
8035         support).
8036         * configure: Regenerate.
8037
8038 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
8039
8040         * objc/objc-act.c (objc_comptypes): Treat comparisons
8041         between 'Class' and '<class> *' as explicitly invalid.
8042
8043 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
8044
8045         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
8046         (-fprofile-values): Add enabled with profile-{generate,use}.
8047         (-fvpt): Same.
8048         (-ftracer): Add enabled with profile-use.
8049         (-funit-at-a-time): Add enabled at -O2,-O3.
8050         (-funroll-loops): Add enabled with profile-use.
8051         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
8052         (max-gcse-passes): Mention default.
8053         (max-cse-path-length): Mention default.
8054
8055 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8056
8057         * Makefile.in (STRICT2_WARN): Reorder.
8058         * configure.ac: Check for -Wold-style-definition, and use it
8059         in strict1_warn if it's available.
8060         * configure: Regnerate.
8061
8062 2004-03-24  Paul Brook  <paul@nowt.org>
8063
8064         * config.gcc <arm>: Add --with-abi=
8065         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
8066         thumb_far_jump_used): Remove prototypes.
8067         (arm_needs_doubleword_align): Add prototype.
8068         (thumb_compute_initial_elimination_offset): Ditto.
8069         * config/arm/arm.c (arm_get_frame_offsets): New function.
8070         (use_return_insn, output_return_instruction, arm_output_epilogue,
8071         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
8072         arm_expand_prologue, thumb_expand_epilogue): Use it.
8073         (arm_abi, target_abi_name, all_arm_abis): New variables.
8074         (arm_override_options): Set them.  Set structure padding for AAPCS.
8075         (arm_return_in_memory): Update ABI check.
8076         (arm_init_cumulative_args): Initialize can_split.
8077         (arm_needs_doubleword_align): New function.
8078         (arm_function_arg): Don't split args after pushing to stack. Handle
8079         doubleword/even reg alignment.
8080         (arm_va_arg): Handle all doubleword aligned args.
8081         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
8082         on ABI, not CPU.
8083         (arm_compute_save_reg0_reg12_mask): Fix comment.
8084         (thumb_get_frame_size, thumb_get_frame_size): Remove.
8085         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
8086         value for alignment.
8087         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
8088         to match.
8089         (thumb_compute_initial_elimination_offset): New function.
8090         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
8091         unneccessary rounding.
8092         * config/arm/arm.h (target_abi_name): Declare.
8093         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
8094         arm_abi_type, ARM_DEFAULT_ABI): Define.
8095         (ARM_FLAG_ATPCS): Remove.
8096         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
8097         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
8098         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
8099         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
8100         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
8101         Contitionalize on ABI, not CPU.
8102         (struct arm_stack_offsets): Define.
8103         (struct machine_function): Add stack_offsets.  Remove frame_size.
8104         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
8105         pushed.
8106         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
8107         doubleword alignment.
8108         (THUMB_INITIAL_ELIMINATION_OFFSET,
8109         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
8110         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
8111         * config/arm/arm.md (align_8): Enable for all targets.
8112         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
8113         (ARM_DEFAULT_ABI): Define.
8114         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
8115         -mstructure-size-boundary.
8116
8117 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8118
8119         * configure.ac: Check for -Wno-variadic-macros; don't use
8120         -pedantic (in stage 1 or a simple 'make all') unless it's available,
8121         and if it's available, use it.  Also, clean up check for
8122         -Wno-long-long.
8123         * configure: Regenerate.
8124
8125 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8126
8127         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
8128         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
8129         (MULTILIB_DEFAULTS): Use it.
8130         (MIPS_CPU_STRING_DEFAULT): Remove.
8131         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
8132         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
8133         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
8134         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
8135         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
8136         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
8137         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
8138         accordingly.
8139
8140 2004-03-24  DJ Delorie  <dj@redhat.com>
8141             Richard Sandiford  <rsandifo@redhat.com>
8142
8143         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
8144         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
8145         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
8146         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
8147         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
8148         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
8149         if TARGET_FIX_VR4122.
8150         * config/mips/mips.md (define_attr length): Account for nops inserted
8151         after macc and dmult when using -mfix-vr4122-bugs.
8152         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
8153         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
8154         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
8155         * config/mips/vr4122-div.S: New file.
8156         * doc/invoke.texi: Document -mfix-vr4122-bugs.
8157
8158 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8159
8160         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
8161         (TARGET_MIPS4130): New macro.
8162         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
8163         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
8164         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
8165         with PROCESSOR_R4130.
8166         * config/mips/mips.md (define_attr cpu): Add r4130.
8167         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
8168
8169 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8170             Richard Sandiford  <rsandifo@redhat.com>
8171
8172         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
8173
8174 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
8175
8176         PR preprocessor/14438
8177         * cpplib.c (do_pragma): Remove line_change call after pragma
8178         handler.
8179
8180 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
8181
8182         * doc/extend.texi (ARM Built-in Functions): Replace with correct
8183         declarations.
8184
8185 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8186
8187         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
8188         if flag_unsafe_math_optimizations.
8189         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
8190         and TARGET_80387 expand using truncdfsf2_noop pattern.
8191         (truncxfsf2): Likewise using truncxfsf2_noop.
8192         (truncxfdf2): Likewise using truncxfdf2_noop.
8193         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
8194
8195 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
8196
8197         * hooks.c (hook_constcharptr_tree_null): New hook.
8198         * hooks.h (hook_constcharptr_tree_null): New prototype.
8199         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
8200         * target.h (mangle_fundamental_type): New target hook.
8201         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
8202         target hook at rs6000_mangle_fundamental_type.
8203         (rs6000_mangle_fundamental_type): New function.
8204         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
8205
8206 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
8207
8208         PR 12267, 12391, 12560, 13129, 14114, 14133
8209         * c-tree.h: Forward declare struct c_binding.  Declare
8210         c_override_bindings_to_false.  Update prototypes.
8211         (struct lang_identifier): Update comments.  Change fields to be
8212         struct c_binding *.
8213         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
8214         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
8215         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
8216         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
8217         * c-common.h: Update prototypes.
8218         * c-decl.c (struct c_scope): Update commentary.  Remove names,
8219         names_last, parms, parms_last, tags, and shadowed fields.  Add
8220         bindings and depth fields.
8221         (scope_freelist): Move to more appropriate location.
8222         (c_print_identifier): Update for changes to struct lang_identifier.
8223         (objc_mark_locals_volatile): Update for new bindings structures.
8224         (global_bindings_p): Honor c_override_global_bindings_to_false.
8225         (pushlevel): Rename to push_scope; take no arguments; use the
8226         scope_freelist; initialize scope->depth and check for overflow.
8227         (poplevel): Rename to pop_scope; totally rewritten for new bindings
8228         structures.
8229         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
8230         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
8231         Improve some commentary.  Adjust handling of forward parm decls.
8232         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
8233         Preserve C_DECL_IN_EXTERNAL_SCOPE.
8234         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
8235         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
8236         decls.  Rewrite for new bindings structures.  Improve commentary.
8237         Eliminate the copy_node call.
8238         (implicit_decl_warning): Use the "diag" idiom (as seen in
8239         locate_old_decl) to reduce code duplication; call locate_old_decl
8240         if appropriate.  Relocate to remove need for forward declaration.
8241         (implicitly_declare): Adjust for new bindings structures.  Kludge
8242         around Objective-C not-really-builtin functions.
8243         (undeclared_variable): Improve diagnostics.  If current_function_decl
8244         is nonnull but current_function_scope is null, use current_scope.
8245         Use bind.
8246         (lookup_tag): Adjust for new bindings structures.  Kludge around
8247         Objective-C's tag declarations that wind up in the external scope.
8248         (lookup_name): Adjust for new bindings structures.  Kludge around
8249         c-common.c's pseudo-typedefs that wind up in the external scope.
8250         (lookup_name_current_level): Rename lookup_name_in_scope; take a
8251         second argument indicating the scope to examine; rewrite for
8252         new bindings structures.
8253         (c_init_decl_processing): Adjust for renamed functions.  Do not
8254         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
8255         First scope pushed is the external scope, not the global scope.
8256         (builtin_function): Use bind, not pushdecl.  Adjust other bits
8257         for new data structures.  Keep track of builtins that should be
8258         made visible automatically.
8259         (start_decl): Adjust diagnostics.  Remove unnecessary call to
8260         expand_decl.
8261         (grokparms): Return 0 if arg_types is error_mark_node.
8262         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
8263         reversed sense.  Rewrite for new bindings structures.  Do not
8264         leave any decls in the scope, to prevent pop_scope from doing
8265         contradictory things with them.
8266         (finish_struct, finish_enum): Remove redundant diagnostics.
8267         (build_enumerator): Don't cascade diagnostics for error_mark_node.
8268         Mark location where -pedantic changes the meaning of the program.
8269         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
8270         parameter decls into the function's scope structure using bind.
8271         Warn here about function definitions in the wrong style.
8272         Adjust diagnostics.
8273         (store_parm_decls): Correct the determination of whether a
8274         function was defined with a prototype.
8275         (c_write_global_declarations): Operate on all file decls and on
8276         the external scope.  Split body of the loop to...
8277         (c_write_global_declarations_1): ... this new function, to avoid
8278         code duplication.
8279         (truly_local_externals, first_builtin_decl, last_builtin_decl)
8280         (make_scope, pop_scope, in_parm_level_p, set_block)
8281         (any_external_decl, record_external_decl, bind_label, getdecls)
8282         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
8283         (c_reset_state): Delete.
8284         (visible_builtins, c_override_global_bindings_to_false)
8285         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
8286         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
8287         (external_scope, binding_freelist, bind, free_binding_and_advance)
8288         (push_file_scope, pop_file_scope): New.
8289         (pushtag, pushdecl_top_level, lookup_label, declare_label)
8290         (define_label, c_make_fname_decl, finish_decl)
8291         (mark_forward_parm_decls, build_compound_literal)
8292         (grokdeclarator, start_function, check_for_loop_decls)
8293         (identifier_global_value, record_builtin_type): Minor adjustments
8294         for new bindings structures.  Improve diagnostics and commentary.
8295         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
8296         pushlevel/poplevel respectively.
8297         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
8298         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
8299         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
8300         correct loop over multiple translation units; call fatal_error if
8301         requested to compile more than one file at once.  (This disables
8302         IMA temporarily - an up-front error being preferable to a crash.)
8303         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
8304         (all actions): Adjust calls to pushlevel/poplevel.
8305         (parsing_iso_function_signature): Delete.
8306         (extdef_1): Fold into extdef.
8307         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
8308         warn here about function definitions in the wrong style.
8309         (after_tyle_declarator, parm_declarator_starttypename)
8310         (parm_declarator_nostarttypename, notype_declarator): Remove
8311         commented-out productions.
8312         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
8313         an empty TREE_LIST node.  Adjust calls to get_parm_info.
8314         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
8315         to suppress -Wold-style-definition after this error.
8316         (c_parse_file): Don't clear the binding stack or call
8317         finish_fname_decls here.  Correct comment.
8318         * c-typeck.c (same_translation_unit_p): Export.
8319         (common_type): Use c_override_global_bindings_to_false, not
8320         pushlevel/poplevel/declare_parm_level.
8321         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8322         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8323         and LANG_HOOKS_GETDECLS with do-nothing stubs.
8324         * objc/objc-lang.c: Likewise.
8325         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8326         get_parm_info.
8327         (OBJC_VOID_AT_END): Delete; replace all uses
8328         with void_list_node.
8329         (generate_forward_declaration_to_string_table): Delete.
8330         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8331
8332         * coverage.c (create_coverage): Don't pushdecl anything.
8333         * langhooks.c (lhd_clear_binding_stack): Call
8334         lang_hooks.decls.poplevel, not poplevel.
8335         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8336         circular list rather than going into an infinite loop.
8337
8338 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
8339
8340         * optabs.c (expand_binop): When synthesizing double word rotates
8341         from single word shifts, use a new register target if the provided
8342         target is not a REG already.
8343
8344 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8345
8346         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8347         * c-common.c (handle_mode_attribute): Add extra arg to
8348         build_pointer_type_for_mode and build_reference_type_for_mode.
8349         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8350         for INTEGER_CST.
8351         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8352         Chain pointers via TYPE_NEXT_PTR_TO.
8353         (build_reference_type_for_mode): Similarly.
8354         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8355         and build_reference_type_for_mode.
8356         (tree_check4_failed): New function.
8357         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8358         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8359         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8360         Add check.
8361
8362 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8363
8364         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8365         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
8366         when both A and B are nonnegative.
8367         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8368         nonzero.
8369
8370 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8371
8372         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8373         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8374
8375 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8376
8377         PR optimization/14669
8378         * fold-const.c (fold): Only unwiden integer comparisons for equality
8379         and inequality operators, or when the signedness doesn't change.
8380
8381 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8382
8383         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8384         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8385         * config/sparc/t-linux: New file.
8386
8387 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8388
8389         * gcse.c (can_assign_to_reg_p): New function, split out from...
8390         (want_to_gcse_p): ...here.
8391         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8392         the rhs of a store.
8393
8394 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8395
8396         * c-typeck.c (same_translation_unit_p): Fix pasto.
8397
8398 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8399
8400         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8401         (PARAM_MAX_SCHED_REGION_INSNS): New.
8402         * sched-rgn.c: Include params.h
8403         (MAX_RGN_BLOCKS): Delete.
8404         (MAX_RGN_INSNS): Delete.
8405         (too_large): Return bool.  Convert to PARAM_VALUE.
8406         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8407         * doc/invoke.texi (param): Document max-sched-region-blocks and
8408         max-sched-region-insns.
8409
8410 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8411
8412         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8413         for base types.
8414
8415 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8416
8417         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8418         change.
8419
8420 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8421
8422         PR c/14069
8423         * c-decl.c (finish_struct): Change type of incorrect flexible array
8424         field into error_mark_node.
8425
8426 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8427
8428         PR target/14580
8429         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8430         who are not local for Darwin PIC.
8431
8432 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8433
8434         * regrename.c (regrename_optimize): Set regs_ever_live for all
8435         registers introduced as replacement.
8436
8437 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8438
8439         PR middle-end/14470
8440         * expr.c (mark_queue): New function.
8441         (emit_insns_enqueued_after_mark): New function replacing
8442         emit_queue.  Clear the body of emitted queued insns.
8443         (emit_queue): Call emit_insns_enqueued_after_mark.
8444         (store_expr): Mark the increment queue on entry.  Emit
8445         only the incrementations queued when expanding the source.
8446
8447 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8448
8449         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8450         of top level bootstrap, and consistency).  Reindent.
8451         * configure: Regenerate.
8452
8453 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8454
8455         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8456         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8457         unnecessary casts.
8458
8459 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8460
8461         PR target/14291
8462         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8463         __MINGW32__.
8464
8465 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8466
8467         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8468         to nonimmediate_operand.
8469         ("*doloop_di"): Likewise.
8470
8471 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8472
8473         * real.h (struct real_value): Use the same type for all
8474         bitfields.  Rename exp to uexp.
8475         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8476         Adjust all uses of exp...
8477         * builtins.c: ... here, ...
8478         * emit-rtl.c: ... here, and ...
8479         * real.c: ... and here.
8480
8481 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8482
8483         * pretty-print.c (pp_base_maybe_space): New function.
8484         * pretty-print.h (pp_base_maybe_space): Declare.
8485         (pp_maybe_space): New macro.
8486
8487 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8488
8489         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8490
8491 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8492
8493         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8494         of using register multiplication cost.
8495         (expand_mult): Adapt choose_mult_variant call.
8496         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8497         of MODE; pass appropriate cost bound.  Adjust result when
8498         performing signed multiplication by a negative constant.
8499         Don't use intermediate modes larger than word_mode.
8500
8501 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8502
8503         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8504         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8505         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8506         * explow.c (expr_size): Likewise.
8507         * expr.h (placeholder_list, find_placeholder): Deleted.
8508         * expr.c (store_constructor): Likewise.
8509         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8510         (placeholder_list, find_placeholder): Deleted.
8511         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8512         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8513         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8514         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8515         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8516         Likewise.
8517         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8518         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8519         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8520         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8521         Clean up by using first_rtl_op.
8522         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8523         (substitute_placeholder_in_expr): New function.
8524         * tree.def (WITH_RECORD_EXPR): Deleted.
8525         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8526         (substitute_placeholder_in_expr): New.
8527
8528 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8529
8530         * dojump.c (prefer_and_bit_test): Fix which part of
8531         the and_test is replaced.
8532
8533 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8534
8535         * frontends.texi: Add missing line.
8536
8537 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8538             Chris Devers  <cdevers@pobox.com>
8539             Joseph S. Myers  <jsm@polyomino.org.uk>
8540
8541         * doc/frontends.texi: Rewrite.
8542         * doc/gcc.texi: Update last modification date.
8543
8544 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8545
8546         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8547         message before redirecting the edge.
8548
8549 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8550
8551         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8552         flag.
8553         * explow.c (force_not_mem): Set REG_POINTER flag according to
8554         MEM_POINTER one.
8555         * rtl.h (MEM_POINTER): New macro.
8556         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8557         for MEM_POINTER.
8558
8559 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8560
8561         PR target/13889
8562         * cse.c (fold_rtx): Avoid substituting constants into unary
8563         conversion operations.
8564
8565 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8566
8567         * fold-const.c (fold): Replace "expr" with "t".
8568
8569 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8570
8571         PR c/12373
8572         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8573         DECL_ORIGINAL_TYPE if there isn't one.
8574
8575 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8576
8577         * fold-const.c (fold): Replace "final_type" with "type".
8578         Remove variable "final_type".
8579
8580 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8581
8582         * fold-const.c (fold): Constify "type".
8583         Replace "TREE_TYPE (t)" with "type".
8584
8585 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8586
8587         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8588         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8589         via (*targetm.foo) () with targetm.foo ().
8590
8591 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8592
8593         PR other/14630
8594         * doc/install.texi: Add info directory category and entry.
8595
8596 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8597
8598         * fold-const.c (fold): Replace "t" with "tem" where it is used
8599         as a temporary variable.  Remove "orig_t" and all of its uses.
8600
8601 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8602
8603         * fold-const.c (fold): Remove variable "invert".
8604         Move the handling of relational expressions that can be folded
8605         to a constant ...
8606         (fold_relational_const): ... here.
8607         (tree_expr_nonzero_p): New.
8608
8609 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8610
8611         PR c/14635
8612         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8613         DEF_GCC_BUILTIN.
8614
8615 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8616
8617         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8618         (GTFILES): Add $(srcdir)/dojump.h.
8619         (gt-dojump.h): New dependency.
8620         * dojump.c (and_reg, and_test, shift_test): New static variables.
8621         (prefer_and_bit_test): New function.
8622         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8623
8624 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8625
8626         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8627         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8628         reorg.c, tree.h: Fix comment typos.
8629
8630 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8631
8632         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8633         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8634         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8635         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8636         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8637         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8638         targetm.foo ().
8639
8640 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8641
8642         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8643         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8644         always_inline attribute.
8645         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8646         Treat expansion as completed even if literal argument is
8647         invalid (so that other expansions are not tried in vain).
8648
8649 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8650
8651         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8652         const0_rtx.
8653
8654 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8655
8656         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8657         ...
8658         (fold_abs_const): ... here.
8659
8660 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8661
8662         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8663
8664 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8665
8666         PR target/11520
8667         * config/avr/avr.md ("call_insn"): Handle explicit integer
8668         specially.
8669         (call_value_insn): Likewise.
8670
8671 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8672
8673         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8674
8675 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8676
8677         * fold-const.c (negate_expr): Move the handling of constants
8678         ...
8679         (fold_negate_const): ... here.
8680
8681 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8682
8683         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8684         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8685         * tree.c (debug_no_type_hash): Deleted.
8686         (type_hash_canon): Abort if passed a variant.
8687         Check lang_hooks.types.hash_types.
8688         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8689         (build_array_type): Remove unnecessary allocation of pointer type.
8690         (build_complex_type): Properly qualify resulting type.
8691
8692 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8693
8694         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8695
8696 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8697
8698         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8699         (expand_mult): ...here.
8700         (extract_high_half): New, split out from expand_mult_highpart.
8701         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
8702         (expand_highpart): Evaluate the cost of a shift/add sequence,
8703         then see if any of the specialized optabs are cheaper.
8704
8705 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
8706
8707         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8708
8709 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8710
8711         * convert.c (convert_to_real): Add more math builtins.
8712
8713 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8714
8715         * convert.c (convert_to_real): Reformat using switch stmt.
8716
8717 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8718
8719         * c-common.c (pointer_int_sum): Do not complain about using
8720         pointers to pointers-to-members.
8721
8722 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8723
8724         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
8725         have moved to the target hooks structure".
8726
8727 2004-03-18  James E Wilson  <wilson@specifixinc.com>
8728
8729         * config/mips/mips.md (type): Split move into arith and fmove.  Split
8730         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
8731         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
8732         Likewise.
8733         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
8734         Likewise.
8735         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
8736         rm7_fp_quick): Likewise.
8737         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
8738         rm9k_fquick): Likewise.
8739         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
8740         Likewise.
8741         (ir_sr70_icmp): Delete.
8742
8743 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8744
8745         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
8746         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
8747         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
8748         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
8749         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
8750         Protect with proper check.
8751         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
8752         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
8753         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
8754         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
8755         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
8756         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
8757         not TYPE_FIELDS.
8758         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
8759
8760 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
8761
8762         * gcse.c (eliminate_partially_redundant_loads): Reject change if
8763         dest is set between beginning and current insn.
8764
8765 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8766
8767         * c-decl.c (grokdeclarator): Do not complain about redeclaring
8768         visible "static" identifiers "extern" in a local scope.
8769         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
8770         post-increments/decrements.
8771
8772 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
8773
8774         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
8775         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
8776         (xtensa_va_start): Remove assignment to current_function_arg_words.
8777
8778 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
8779
8780         * alias.c (record_set): Detect the case where a register is assigned
8781         a new value that has the same base term as the old one.
8782
8783 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8784
8785         * doloop.c: Removed.
8786         * loop-doloop.c: New file.
8787         * Makefile.in (doloop.o): Remove.
8788         (loop-doloop.o): New.
8789         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
8790         * cfgloopanal.c (get_loop_level): New function.
8791         * loop-iv.c (iv_number_of_iterations): Handle case when loop
8792         is leaved immediatelly.
8793         * loop.c (strength_reduce): Do not call doloop optimization.
8794         * loop.h (LOOP_BCT): Removed.
8795         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8796         (rest_of_handle_loop2): Call doloop_optimize_loops.
8797         (rest_of_compilation): Test for optimizations moved to
8798         rest_of_handle_loop2.
8799
8800 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
8801
8802         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8803         for mixed mode.
8804         (rs6000_emit_prologue): Ditto.
8805         (rs6000_emit_epilogue): Ditto.
8806         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8807         macro for mixed mode.
8808
8809 2004-03-18  Jan Hubicka  <jh@suse.cz>
8810
8811         * predict.c (propagate_freq): Compute correctly frequency of
8812         EXIT_BLOCK.
8813
8814 2004-03-17  Eric Christopher  <echristo@redhat.com>
8815
8816         * builtins.c (apply_args_size): Use reg_raw_mode.
8817         (apply_result_size): Ditto.
8818
8819 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8820
8821         PR target/14620
8822         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8823
8824 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
8825
8826         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8827         32-bit builds when defaulting to 32-bit.
8828
8829 2004-03-17  Jan Hubicka  <jh@suse.cz>
8830
8831         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8832         array.
8833
8834 2004-03-17  James E Wilson  <wilson@specifixinc.com>
8835
8836         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
8837         (hazard_nop): Change type to nop.
8838         (type): Split arith into arith, shift, slt, clz.  Delete darith.
8839         Fix all uses.  Change arith to multi if more than one insn emitted.
8840         * config/mips/5400.md (ir_vr54_arith): Likewise.
8841         * config/mips/5500.md (ir_vr55_arith): Likewise.
8842         * config/mips/7000.md (rm7_int_other): Likewise.
8843         * config/mips/9000.md (rm9k_int): Likewise.
8844         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
8845
8846 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
8847
8848         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8849         to hold the subtype tree instead of recomputing it several times.
8850
8851 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8852
8853         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8854         CC_INVERT.
8855         * config/mn10300/mn10300.md (cc): Remove "invert".
8856
8857 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8858
8859         * builtins.c (integer_valued_real_p): Add builtin rint.
8860         (fold_builtin): Likewise.
8861         * convert.c (convert_to_real): Likewise.
8862
8863         * convert.c (convert_to_real): Fix typos in `long double'
8864         builtins.
8865
8866 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8867
8868         PR c++/14481
8869         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8870         generated COMPOUND_EXPRs.
8871
8872 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8873
8874         * config/h8300/t-rtems (h8300-*-rtems*): New.
8875
8876 2004-03-16  Eric Christopher  <echristo@redhat.com>
8877
8878         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8879
8880 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8881
8882         * config/i386/i386-protos.h: Add a prototype for
8883         ix86_reverse_condition.
8884         * config/i386/i386.c (ix86_reverse_condition): New.
8885         * config/i386/i386.h (REVERSE_CONDITION): Use
8886         ix86_reverse_condition.
8887         * config/i386/i386.md: Use ix86_reverse_condition instead of
8888         REVERSE_CONDITION.
8889
8890 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8891
8892         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8893
8894 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8895
8896         PR bootstrap/12974
8897         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8898
8899 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8900
8901         * c-common.c (c_common_type_for_mode): Build vector types on
8902         demand.
8903         (handle_mode_attribute): Deprecate using the mode attribute
8904         to create vector types.  Fix indentation.
8905         (vector_type_node_list): Remove.
8906         (handle_vector_size_attribute): Create vector types on demand.
8907         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8908         * c-typeck.c (comptypes): Make vector types compatible if they
8909         have the same underlying mode.
8910         (convert_for_assignment): Use comptypes to convert between
8911         vector types.
8912         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8913         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8914         vector types.
8915         * tree.h: Remove vector types.
8916         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8917         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8918         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8919         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8920         * doc/extend.texi (Vector Types): Document how to use the
8921         vector_size attribute to create vectors, rather than mode.
8922
8923         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8924         * config/i386/emmintrin.h: Likewise.
8925         * config/i386/mmintrin.h: Likewise.
8926         * config/i386/xmmintrin.h: Likewise.
8927         * config/sh/ushmedia.h: Likewise.
8928
8929 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8930
8931         * config/freebsd-spec.h, config/arc/arc-protos.h,
8932         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8933         config/arm/linux-gas.h, config/arm/semi.h,
8934         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8935         config/ia64/freebsd.h, config/mips/7000.md,
8936         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8937         config/sparc/pbd.h: Update copyright.
8938
8939 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8940
8941         PR target/14577
8942         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
8943
8944 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8945
8946         * combine.c (combine_simplify_rtx): Remove the "last"
8947         parameter and its documentation.  Adjust recursive calls.
8948         (simplify_logical): Always perform the only simplification
8949         controlled by "last", if the simplified expression is
8950         actually different.
8951         (try_combine): Do not pass the "last" parameter to
8952         combine_simplify_rtx.
8953
8954 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8955
8956         PR target/14599
8957         * config/mips/mips.md (UNSPEC_GP): New constant.
8958         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8959         an UNSPEC instead of (reg $gp).
8960         (mips16_gp_pseudo_reg): Change accordingly.
8961         (print_operand): Print $gp directly when handling CONST_GP_P.
8962
8963 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8964
8965         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8966         * longlong.h: Make code 68060 clean when compiling for m68060.
8967
8968 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8969
8970         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8971         * doc/md.texi: Clarify description of "i" constraint.
8972
8973 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8974
8975         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8976         Split store into store, fpstore, fpidxstore.  Fix all uses.
8977         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8978         Likewise.
8979         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8980         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8981         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8982         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8983         ir_sr70_fstore): Likewise.
8984
8985 2004-03-15  Richard Henderson  <rth@redhat.com>
8986
8987         PR middle-end/14535
8988         * except.c (collect_one_action_chain): Record action for cleanup
8989         outer of exception spec.
8990
8991 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8992
8993         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8994         Fix the check for abort and only do the mmap if we can.
8995
8996 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8997
8998         * config/sparc/sparc.h: Rework comments about the code model
8999         in 64-bit environment and the mode 'Pmode'.
9000         * doc/invoke.texi (SPARC options): Rework description of the
9001         different code models supported in 64-bit environment.
9002
9003 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9004
9005         * defaults.h (REVERSIBLE_CC_MODE): Define.
9006         * jump.c (reversed_comparison_code_parts): Don't check if
9007         REVERSIBLE_CC_MODE is defined.
9008
9009 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9010
9011         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
9012         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
9013         hosthooks.h, params.h, ra-colorize.c, web.c,
9014         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
9015         config/avr/avr-protos.h, config/avr/avr.md,
9016         config/fr30/fr30-protos.h, config/fr30/fr30.md,
9017         config/h8300/fixunssfsi.c, config/i386/darwin.h,
9018         config/i386/freebsd.h, config/i386/freebsd64.h,
9019         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
9020         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
9021         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
9022         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
9023         config/pa/pa64-regs.h, config/rs6000/aix41.h,
9024         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
9025         config/sparc/aout.h, config/sparc/freebsd.h,
9026         config/sparc/litecoff.h, config/vax/vax-protos.h,
9027         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
9028         copyright.
9029
9030 2004-03-15  Paul Brook  <paul@codesourcery.com>
9031
9032         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
9033
9034 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9035
9036         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
9037         (pp_c_cv_qualifier): Document.
9038         (pp_c_space_for_pointer_operator): Likewise.
9039         (pp_c_integer_constant): Likewise.
9040         (pp_c_identifier): Likewise.
9041         (pp_c_init_declarator): Don't print function body.
9042
9043 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
9044
9045         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
9046         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
9047         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
9048         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
9049         wording and grammar.
9050
9051 2004-03-14  Roger Sayle  <roger@eyesopen.com>
9052
9053         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
9054         with lang_hooks.foo ().
9055         * builtins.c (expand_builtin_va_arg): Likewise.
9056         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
9057         c_common_type_for_mode, c_common_nodes_and_builtins,
9058         handle_mode_attribute, handle_vector_size_attribute): Likewise.
9059         * c-convert.c (convert): Likewise.
9060         * c-format.c (check_format_types): Likewise.
9061         * c-objc-common.c (c_tree_printer): Likewise.
9062         * c-typeck.c (build_unary_op, build_conditional_expr,
9063         build_binary_op): Likewise.
9064         * calls.c (try_to_integrate, expand_call,
9065         emit_library_call_value_1): Likewise.
9066         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
9067         Likewise.
9068         * cgraphunit.c (record_call_1, cgraph_analyze_function,
9069         cgraph_expand_function): Likewise.
9070         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
9071         * coverage.c (build_fn_info_type, build_ctr_info_type,
9072         build_gcov_info, create_coverage): Likewise.
9073         * dbxout.c (dbxout_init): Likewise.
9074         * diagnostic.c (diagnostic_report_current_function): Likewise.
9075         * dojump.c (do_jump): Likewise.
9076         * dwarf2out.c (dwarf2_name): Likewise.
9077         * except.c (init_eh): Likewise.
9078         * explow.c (expr_size, int_expr_size): Likewise.
9079         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
9080         Likewise.
9081         * expr.c (store_expr, store_constructor, safe_from_p,
9082         expand_expr_real, do_store_flag, try_casesi): Likewise.
9083         * function.c (push_function_context_to, pop_function_context_from,
9084         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
9085         put_var_into_stack, allocate_struct_function, current_function_name):
9086         Likewise.
9087         * integrate.c (copy_decl_for_inlining, expand_inline_function):
9088         Likewise.
9089         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
9090         lhd_print_error_function): Likewise.
9091         * opts.c (handle_option, decode_options): Likewise.
9092         * passes.c (open_dump_file): Likewise.
9093         * print-tree.c (print_node): Likewise.
9094         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
9095         expand_decl_cleanup, emit_case_nodes): Likewise.
9096         * stor-layout.c (variable_size): Likewise.
9097         * toplev.c (announce_function, wrapup_global_declarations,
9098         check_global_declarations, compile_file, default_tree_printer,
9099         process_options, lang_dependent_init, finalize): Likewise.
9100         * tree-dump.c (dequeue_and_dump): Likewise.
9101         * tree-inline.c (remap_decl, remap_block, copy_body_r,
9102         initialize_inlined_parameters, declare_return_variable,
9103         inlinable_function_p, expand_call_inline, optimize_inline_calls,
9104         walk_tree, copy_tree_r): Likewise.
9105         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9106         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
9107         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
9108         variably_modified_type_p, dump_tree_statistics): Likewise.
9109         * varasm.c (assemble_variable, compare_constant, copy_constant,
9110         force_const_mem, compute_reloc_for_constant, output_constant,
9111         output_addressed_constants, initializer_constant_valid_p): Likewise.
9112
9113 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
9114
9115         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
9116
9117 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
9118
9119         * doc/install.texi: Reflect autoconf and automake version for
9120         libffi. Update autoconf version to 2.59.
9121
9122 2004-03-13  Roger Sayle  <roger@eyesopen.com>
9123
9124         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
9125         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
9126         make_range, build_range_check, fold_range_test, unextend,
9127         constant_boolean_node, fold_binary_op_with_conditional_arg,
9128         fold_truthop, fold_mathfn_compare, fold_inf_compare,
9129         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
9130         with lang_hooks.foo ().
9131
9132 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
9133
9134         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
9135
9136 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
9137
9138         * doc/install.texi: Note status of -fnew-ra.
9139
9140 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
9141
9142         PR middle-end/14470
9143         * expr.c (store_expr): Call emit_queue before generating the move
9144         from the temporary to the original target.  Protect the temporary
9145         from emit_queue.
9146
9147 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
9148
9149         PR target/14533
9150         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
9151         other than UNSPEC_GOTOFF.
9152
9153 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
9154
9155         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
9156         to arm_legitimate_index_p.  Update all callers with SET as default
9157         value.
9158         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
9159         range if OUTER is a sign-extend operation on QImode.  Correctly
9160         reject shift operations on sign-extended QImode addresses.
9161         (bad_signed_byte_operand): Delete.
9162         (arm_extendqisi_mem_op): New function.
9163         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
9164         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
9165         constraints.
9166         (CONSTRAINT_LEN): New.
9167         (EXTRA_CONSTRAINT): Delete.  Replace with...
9168         (EXTRA_CONSTRAINT_STR): ... this.
9169         (PREDICATE_CODES): Remove bad_signed_byte_operand.
9170         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
9171         is now always default.
9172         (define_splits for bad sign-extend loads): Delete.
9173         (arm_extendqisi, arm_extendqisi_v5): Likewise.
9174         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
9175         Rework 'U' constraint to 'Uv'.
9176         * arm-protos.h: Remove bad_signed_byte_operand.  Add
9177         arm_extendqisi_mem_op.
9178         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
9179         Add Uq constraint.
9180
9181 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
9182
9183         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
9184         with targetm version.
9185
9186         PR target/14567
9187         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
9188         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
9189         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
9190         Update all users of RS6000_ARG_SIZE.
9191         (function_arg_advance): Count fregno using mode size.
9192         (function_arg): Handle long double split over regs and memory.
9193         (function_arg_partial_nregs): Likewise.
9194         (rs6000_va_arg): Repackage complex args.
9195
9196 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
9197
9198         PR target/14047
9199         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
9200         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
9201         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
9202
9203 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
9204
9205         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
9206         prototype.
9207         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
9208         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9209
9210 2003-03-12  Andrew Pinski  <apinski@apple.com>
9211
9212         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9213         Use ret instead of result. Use addr instead of base.
9214
9215 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
9216
9217         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
9218         fixes required by libstdc++ and update installation instructions
9219         for libstdc++.a.
9220
9221 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
9222
9223         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
9224         leading '@' on fastcall symbols before stripping suffix.
9225
9226 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9227
9228         * combine.c (unmentioned_reg_p): New function to check whether an
9229         expression is a "specialization" of another, i.e. that there are
9230         no registers or memory references mentioned in the first that don't
9231         appear in the second.
9232         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
9233         (combine_instructions): Also try combining instructions using the
9234         REG_EQUAL note from a preceding log-linked instruction.
9235
9236 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9237
9238         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
9239
9240 2004-03-12  Matt Austern  <austern@apple.com>
9241
9242         * target.h (struct gcc_target): New target hook, unwind_label.
9243         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
9244         * output.h (default_emit_unwind_label): New function.
9245         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
9246         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
9247         (TARGET_SUPPORTS_HIDDEN): New target macro.
9248         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
9249         that corresponds to this FDE.
9250         (FRAME_BEGIN_LABEL): Allow target to override default label.
9251         (output_call_frame_info): If FDEs are linknonce, then use extra
9252         indirection for FDE encoding, output a label for each FDE, and
9253         output an empty label for each function without an FDE.
9254         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
9255         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
9256         decls with DECL_ONE_ONLY set, if that macro is defined.
9257         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
9258         for a SUPPORTS_ONE_ONLY target.
9259         * config/darwin-protos.h (darwin_unique_section): Declare.
9260         (darwin_asm_named_section): Likewise.
9261         (darwin_section_type_flags): Likewise.
9262         (darwin_non_lazy_pcrel): Likewise.
9263         (darwin_emit_unwind_label): Likewise.
9264         (darwin_make_decl_one_only): Likewise.
9265         * config/darwin.c (machopic_finish): Get rid of tweak that
9266         eliminate stubs for symbols that are defined.
9267         (darwin_encode_section_info): Don't treat weak functions as defined.
9268         (darwin_make_decl_one_only): Define.
9269         (darwin_asm_named_section): Likewise.
9270         (darwin_section_type_flags): Likewise.
9271         (darwin_unique_section): Likewise.
9272         (darwin_emit_unwind_label): Likewise.
9273         (darwin_non_lazy_pcrel): Likewise.
9274         (darwin_asm_output_dwarf_delta): Difference between two labels is
9275         local only if both labels are local.
9276         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
9277         (ASM_MAKE_LABEL_LINKONCE): Likewise.
9278         (TARGET_SUPPORTS_HIDDEN): Likewise.
9279         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
9280         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
9281         (FRAME_BEGIN_LABEL): Likewise.
9282         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
9283         (ASM_DECLARE_FUNCTION_NAME): Likewise.
9284         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
9285         (TARGET_ASM_UNIQUE_SECTION): Define.
9286         (EH_FRAME_SECTION_NAME): Define.
9287         (EH_FRAME_SECTION_ATTR): Likewise.
9288         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9289         (TARGET_ASM_NAMED_SECTION): Likewise.
9290         (TARGET_SECTION_TYPE_FLAGS): Likewise.
9291         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
9292         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
9293         TARGET_ASM_EMIT_UNWIND_LABEL.
9294
9295 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9296
9297         * builtins.c (expand_builtin_mathfn): Add pow10* to the
9298         existing exp10* case.
9299         (expand_builtin): Likewise.
9300
9301 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9302
9303         * doc/tm.texi (registers) <Values in Registers>: Add
9304         entry for REGMODE_NATURAL_SIZE.
9305
9306 2004-03-12  Richard Henderson  <rth@redhat.com>
9307
9308         PR target/14547
9309         * target.h (struct gcc_target): Move calls substructure before
9310         booleans.  Add split_complex_arg.
9311         * function.c (assign_parms, split_complex_args): Use it.
9312         * calls.c (expand_call): Likewise.
9313         (split_complex_values): Likewise.  Check for splittable types
9314         before allocating memory.
9315         (split_complex_types): Likewise.
9316         * system.h (SPLIT_COMPLEX_ARGS): Poison.
9317         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9318         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9319         * config/alpha/alpha.c (alpha_split_complex_arg): New.
9320         (TARGET_SPLIT_COMPLEX_ARG): New.
9321         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9322         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9323         (rs6000_override_options): Zap it for non-AIX.
9324         (rs6000_function_value): Use targetm.calls.split_complex_arg.
9325         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9326         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9327         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9328         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9329         SPLIT_COMPLEX_ARGS entry.
9330
9331 2004-03-11  Richard Henderson  <rth@redhat.com>
9332
9333         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9334         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9335         (alpha_emit_xfloating_arith): Update to match.
9336         (alpha_emit_xfloating_compare): Likewise.
9337         (alpha_emit_xfloating_cvt): Likewise.
9338         (alpha_emit_xfloating_libcall): Take already built symbol,
9339         mark call const.
9340         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9341         op1 in a register.
9342
9343 2004-03-11  Richard Henderson  <rth@redhat.com>
9344
9345         PR target/14539
9346         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9347
9348         * simplify-rtx.c (simplify_relational_operation): Fix typo.
9349
9350 2004-03-11  Richard Henderson  <rth@redhat.com>
9351
9352         PR middle-end/14477
9353         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9354
9355 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9356
9357         PR target/14262
9358         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9359         defined, pass small BLKmode values in registers in the low-order part.
9360
9361 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9362
9363         * combine.c (if_then_else_cond): Check for NULL return value of
9364         simplify_gen_subreg.
9365
9366 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9367
9368         PR target/14496
9369         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9370         TARGET_SINGLE_FLOAT.
9371
9372 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9373
9374         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9375         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9376         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9377         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9378
9379 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9380
9381         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9382         -((int)X>>C) where C is an integer constant one bit less than the
9383         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9384         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9385
9386         * simplify-rtx.c (simplify_unary_operation): Also implement the
9387         above transformations at the RTL level.
9388
9389 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9390
9391         * real.c (encode_ibm_extended): Do round low word.
9392
9393 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9394
9395         * config/arm/arm.md (is_xscale): Comment this attribute and move
9396         it a bit further up in the file, closer to related attributes.
9397
9398 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9399
9400         * config/host-solaris.c (sol_gt_pch_use_address): Add
9401         missing terminating marker to comment.
9402
9403 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9404
9405         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9406         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9407         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9408         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9409         move_operand as source predicate in all cases.
9410         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9411         Test reg_or_0_operand.  Use move_operand as source predicate.
9412         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9413         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9414         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9415         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9416         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9417         Use move_operand as source predicate.  Remove 'K' constraint.
9418         (*movqi_internal): Likewise movqi_internal.
9419         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9420         reg_or_0_operand.  Use move_operand as source predicate.
9421         (*movsf_softfloat): Likewise movsf_internal2.
9422         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9423         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9424         (*movdf_softfloat): Likewise movdf_internal2.
9425         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9426         for DImode if !TARGET_64BIT.
9427         (mips_legitimize_move): Simplify accordingly.
9428
9429 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9430
9431         PR/14362
9432         * var-tracking.c (struct variable_def): Added field refcount.
9433         (variable_htab_free): Decrease the refcount and delete variable
9434         only if there are no more references.
9435         (unshare_variable): New function.
9436         (vars_copy_1): Increase refcount instead of copying the variable.
9437         (variable_union): Share the variables where possible, unshare
9438         the variables if needed.
9439         (variable_different_p): Return false if var1 and var2 are
9440         the same structure.
9441         (variable_was_changed): Init the refcount of new variable.
9442         (set_frame_base_location): Unshare variable if needed.
9443         (set_variable_part): Init the refcount of new variable.
9444         Unshare the variables if needed.
9445         (delete_variable_part): Unshare the variables if needed.
9446         (emit_notes_for_differences_1): Init the refcount of new variable.
9447         (vt_add_function_parameters): Do not add function parameters to
9448         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9449         (vt_initialize): Do not add frame_base_decl to IN set of
9450         ENTRY_BLOCK_PTR because it is unused anyway.
9451
9452 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9453
9454         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9455         (vars_copy): Likewise.
9456         (variable_union): Likewise.
9457         (set_variable_part): Likewise.
9458         (delete_variable_part): Likewise.
9459
9460 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9461
9462         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9463         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9464         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9465         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9466         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9467         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9468         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9469         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9470         config/stormy16/stormy16.c: Fix comment typos and formatting.
9471
9472 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9473
9474         * configure: Regenerate, since I forgot to while committing Paolo's
9475         changes.
9476
9477 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9478
9479         PR ada/14131
9480         Move language detection to the top level.
9481         * configure.ac: Remove code to detect languages,
9482         it now lives exclusively in the top level.
9483         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9484         top level, renamed to ACX_PROG_GNAT.
9485
9486 2004-03-10  Richard Henderson  <rth@redhat.com>
9487
9488         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9489         extra arguments.
9490         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9491         and host_xmake_file fragments.
9492         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9493         (gt_pch_restore): Similarly for gt_pch_use_address.
9494         (default_gt_pch_get_address): New.
9495         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9496         (default_gt_pch_use_address): Split out of gt_pch_restore.
9497         (mmap_gt_pch_use_address): Likewise.
9498         * hooks.c (hook_voidp_size_t_null): Remove.
9499         (hook_bool_voidp_size_t_false): Remove.
9500         * hooks.h: Likewise.
9501         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9502         default_ or mmap_ definitions.
9503         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9504         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9505         and gt_pch_use_address.
9506         * config/host-linux.c, config/host-solaris.c: New files.
9507         * config/x-linux, config/x-solaris: New files.
9508         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9509         Update for changed definition.
9510         (darwin_rs6000_gt_pch_use_address): Likewise.
9511         * doc/hostconfig.texi: Update docs.
9512
9513 2004-03-10  Richard Henderson  <rth@redhat.com>
9514
9515         PR c/14517
9516         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9517         except for pedantic c90 mode.
9518
9519 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9520
9521         * configure.ac: Bump AC_PREREQ to 2.59.
9522         * configure: Regenerate.
9523
9524 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9525
9526         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9527         (exp10_optab, exp2_optab): Define corresponding macros.
9528         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9529         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9530         using exp10?f2 and exp2?f2 patterns.
9531         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9532         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9533         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9534         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9535
9536         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9537         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9538         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9539
9540 2004-03-10  Anthony Green  <green@redhat.com>
9541
9542         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9543
9544 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9545
9546         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9547         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9548         __LONGDOUBLE128.
9549         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9550         TARGET_OS_AIX_CPP_BUILTINS.
9551         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9552         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9553         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9554         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9555         previous change.
9556
9557 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9558
9559         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9560
9561 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9562
9563         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9564         __LONGDOUBLE128 on AIX.
9565
9566 2004-03-10  Andrew Haley  <aph@redhat.com>
9567
9568         PR optimization/14381
9569         * function.c (expand_function_end): Emit a blockage insn before
9570         the epilogue when -fnon-call-exceptions is used.
9571
9572         * except.c (expand_start_all_catch): Make comment more accurate.
9573
9574 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9575
9576         PR target/14480
9577         * config/rs6000/t-rtems: Add missing file on branch.
9578
9579 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9580
9581         * dbxout.c (dbxout_symbol_location): Do not output references
9582         to optimized-out constant pool symbols.
9583
9584 2004-03-10  Andreas Schwab  <schwab@suse.de>
9585
9586         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9587         twon34_r.
9588
9589 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9590
9591         * alias.c (alias_sets_might_conflict_p): New.
9592         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9593         * common.opt (Wstrict-aliasing=): New.
9594         * flags.h (warn_strict_aliasing): Change type to int.
9595         * opts.c (warn_strict_aliasing): Change type to int.
9596         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9597         * tree.h (alias_sets_might_conflict_p): Declare it.
9598         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9599
9600 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9601
9602         PR bootstrap/12371
9603         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9604         (CALL_USED_REGISTERS): Likewise.
9605         (REG_CLASS_CONTENTS): Likewise.
9606         (REG_ALLOC_ORDER): New.
9607         (REGNO_REG_CLASS): Use regno_reg_class.
9608         * config/m68k/m68k.c: Add regno_reg_class array.
9609
9610 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9611
9612         * config/ia64/ia64.md (divsi3): Fix algorithm.
9613           (udivsi3): Ditto.
9614           (setf_exp_xf): Remove '*' from name.
9615         * testsuite/gcc.dg/20040309-1.c: New test.
9616
9617 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9618
9619         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9620         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9621         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9622         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9623         (sparc_aout_select_rtx_section): Don't check
9624         SUNOS4_SHARED_LIBRARIES.
9625         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9626
9627 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9628
9629         PR other/14474
9630         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9631         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9632         INTERNALS".
9633
9634 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9635
9636         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9637         (LIBGCC_SPEC): Update to match.
9638
9639 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9640
9641         * c-decl.c (last_function_parms, last_function_parm_tags)
9642         (last_function_parm_others, current_function_parms)
9643         (current_function_parm_tags, current_function_parm_others):
9644         Delete.
9645         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9646         New macros.
9647         (grokdeclarator): For function definitions, save the arg-info
9648         block from the declarator in DECL_ARGUMENTS.
9649         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9650         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9651         contains only PARM_DECLs.  Improve diagnostics.
9652         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9653         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9654         (store_parm_decls_newstyle): Take the function to operate on,
9655         and an arg-info block, as arguments; don't get anything from
9656         current_function_* globals.
9657         (store_parm_decls_oldstyle): Likewise.
9658         (store_parm_decls): Pass fndecl and its arg-info block down to
9659         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9660         argument lists through store_parm_decls_newstyle to reduce
9661         overhead.
9662         (pushdecl): Comment on the problems with the call to copy_node.
9663         Clear DECL_ARGUMENTS of the old node after copying it, if it
9664         is an arg-info block instead of a chain of decls.
9665         (start_function): Do not manipulate current_function_parm* or
9666         last_function_parm*.
9667
9668 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9669             Andrew Pinski  <pinskia@physics.uc.edu>
9670
9671         * ifcvt.c (noce_try_sign_mask): New function to transform
9672         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9673         (noce_process_if_block): Call noce_try_sign_mask.
9674
9675 2004-03-09  Andrew Pinski  <apinski@apple.com>
9676
9677         * c-typeck.c (tagged_types_tu_compatible_p):
9678         Fix typo.
9679
9680 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9681
9682         * simplify-rtx.c (simplify_const_relational_operation): New function
9683         renamed from simplify_relational_operation.
9684         (simplify_relational_operation): Change prototype to accept an
9685         additional mode argument.  Call simplify_const_relational_operation.
9686         (simplify_gen_relational): Update simplify_relational_operation call.
9687         (simplify_ternary_operation): Update simplify_relational_operation
9688         subroutine call to use simplify_const_relational_operation instead.
9689
9690         * rtl.h (simplify_const_relational_operation): Prototype here.
9691         (simplify_relational_operation): Add addtional mode argument.
9692
9693         * combine.c (combine_simplify_rtx): Update calls to
9694         simplify_relational_operation.
9695         (simplify_set): Likewise.
9696         (gen_binary): Likewise.
9697         * cse.c (fold_rtx): Likewise.
9698         * dojump.c (compare_from_rtx): Likewise.
9699         (do_compare_rtx_and_jump): Likewise.
9700         * integrate.c (subst_constants): Likewise.
9701         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9702
9703 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9704
9705         * config/m32r/m32r.md: Remove all define_peephole's.
9706
9707 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
9708
9709         * config/rs6000/rs6000.md: Remove trailing whitespace.
9710
9711 2004-03-08  Eric Christopher  <echristo@redhat.com>
9712
9713         * Makefile.in (site.exp): Add libiconv variable definition.
9714
9715 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
9716
9717         * configure: Regenerate for config/accross.m4 correction.
9718
9719 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9720
9721         PR target/14480
9722         * config/rs6000/t-rtems: Add missing file on branch.
9723
9724 2004-03-08  Roger Sayle  <roger@eyesopen.com>
9725
9726         PR middle-end/14289
9727         * c-typeck.c (c_mark_addressable): A register variable should
9728         be considered global if its not automatic, i.e. TREE_PUBLIC,
9729         TREE_STATIC or DECL_EXTERNAL.
9730         * function.c (put_var_into_stack): Call abort when placing a
9731         hard register into the stack, if x_parm_reg_stack_loc is NULL.
9732
9733 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
9734
9735         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
9736         ("*extendqisi2_short_displ"): Likewise.
9737
9738 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9739
9740         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
9741         (comp_operator): Likewise.
9742         * config/pdp11/pdp11-protos.h: Remove corresponding
9743         prototypes.
9744
9745 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
9746
9747         * expr.c (highest_pow2_factor_for_type): Rename into
9748         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
9749         TYPE_ALIGN when the target is a COMPONENT_REF.
9750         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
9751
9752 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9753
9754         * config/rs6000/rs6000.c: Formatting fix.
9755         (legitimate_offset_address_p): Correct offset range check.
9756
9757         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
9758         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
9759         and MASK_STRING.
9760
9761 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9762
9763         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
9764         for little endian.
9765         ("ashrdi3_no_power"): Disable for little endian.
9766         (ashrdi3): Same.
9767
9768 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9769
9770         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
9771         builtins.
9772
9773 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
9774
9775         PR target/14471
9776         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
9777         case, checking for -no-mul-bug-abort option.
9778         * configure, config.in: Regenerate.
9779         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
9780         and -mno-mul-bug-workaround.
9781         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
9782         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
9783         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
9784         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
9785         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
9786         sure mulu.d is not last on cache-line.
9787         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
9788         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
9789         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
9790         (TARGET_SWITCHES): New options -mmul-bug-workaround and
9791         -mno-mul-bug-workaround.
9792         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
9793         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
9794         * config/cris/cris.c (cris_operand_extend_operator): Clarify
9795         relation to MULT in head comment.
9796         (cris_op_str): Abort for MULT.
9797         (cris_print_operand) <case '!'>: New case.
9798
9799 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9800
9801         PR debug/11983
9802         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9803         dw_val_class_vec.  Replace use throughout file.
9804         (dw_float_const): Delete.
9805         (dw_vec_const): New.
9806         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
9807         throughout file.
9808         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
9809         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
9810         (size_of_die): Adjust dw_val_class_vec sizing.
9811         (output_die): Output dw_val_class_vec.
9812         (insert_int, extract_int, insert_float): New functions.
9813         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9814         Handle CONST_VECTOR.
9815         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9816
9817 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9818
9819         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9820         AltiVec abi cannot co-exist.
9821
9822         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9823
9824 2004-03-07  Jan Hubicka  <jh@suse.cz>
9825
9826         * except.c (emit_to_new_bb_before):  Break fallthru edges.
9827
9828 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
9829
9830         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9831         ("*lshrsi3"): Also accept an immediate for 68HC12.
9832         ("*ashrsi3_const"): Likewise.
9833         ("*ashrsi3"): Likewise.
9834         ("*ashlsi3_const"): Likewise.
9835         ("*ashlsi3"): Likewise.
9836         ("cmphi_1_hc12"): Compare two hard register by pushing them and
9837         comparing with a pop; don't use a split for that.
9838         ("cmphi split"): Disable compare split for 68HC12.
9839
9840         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
9841         the status operands if they have side effects.
9842
9843 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
9844
9845         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
9846         definition.
9847         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
9848         config/h8300/h8300.h, config/ia64/ia64.h,
9849         config/mcore/mcore.h, config/mmix/mmix.h,
9850         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9851         config/stormy16/stormy16.h, config/v850/v850.h,
9852         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9853         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9854         definition.
9855
9856 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9857
9858         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9859         <XOR_EXPR>: Fold x ^ x as zero.
9860         <AND_EXPR>: Fold x & x as x.
9861
9862 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9863
9864         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9865         "foo++ == const" into "++foo == const+incr".
9866
9867 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9868
9869         * config/mips/mips.c (mips_in_small_data_p): Return false if
9870         TARGET_ABICALLS.
9871
9872 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9873
9874         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9875         the stack register.
9876         (expand_prologue): Don't make an interrupt or a trap handler a far
9877         symbol.
9878         (m68hc11_initial_elimination_offset): Likewise.
9879
9880 2004-03-06  Richard Henderson  <rth@redhat.com>
9881
9882         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9883
9884 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9885
9886         * config/ns32k/ns32k-protos.h: Add a prototype for
9887         ns32k_notice_update_cc.
9888         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9889         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9890         ns32k_notice_update_cc.
9891
9892 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9893
9894         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9895         "*load_multiple_si"): Allow only if reload_completed.
9896         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9897         Likewise.
9898
9899 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9900
9901         * config/vax/vax-protos.h: Add a prototype for
9902         vax_notice_update_cc.
9903         * config/vax/vax.c (vax_notice_update_cc): New.
9904         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9905         vax_notice_update_cc.
9906
9907 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9908
9909         * collect2.c (main): Only export initfunc and finifunc if
9910         LD_INIT_SWITCH not defined.
9911         (scan_prog_file): Only export constructors and destructors if
9912         LD_INIT_SWITCH not defined.  Only export symbols not found in
9913         shared objects.
9914
9915 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9916
9917         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9918         last.
9919         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9920         from calls to gen_icacheflush.
9921
9922 2004-03-06  Richard Henderson  <rth@redhat.com>
9923
9924         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9925         (TARGET_LONG_DOUBLE_128): New.
9926         (TARGET_SWITCHES): Add long-double-{128,64}.
9927         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9928         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9929         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9930         (WIDEST_HARDWARE_FP_SIZE): New.
9931         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9932         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9933         if TARGET_VAX_FLOAT.
9934         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9935         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9936
9937 2004-03-06  Richard Henderson  <rth@redhat.com>
9938
9939         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9940         botched rtx class conversion.
9941
9942 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9943
9944         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9945         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9946
9947         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9948         macros.
9949         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9950
9951 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9952
9953         PR target/14343
9954         * config/i386/i386.md (movv2di_internal): Conditionalize on
9955         TARGET_SSE, not TARGET_SSE2.
9956
9957 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9958
9959         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9960         duplicated line.
9961
9962 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9963
9964         * builtins.c: Consistently use logN not log* in comments.
9965
9966 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9967
9968         * rtl.h (mem_expr_equal_p): Function prototype added.
9969         * cfgcleanup.c (merge_memattrs): New function.
9970         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9971         * emit-rtl.c (mem_expr_equal_p): New function.
9972
9973 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9974
9975         * objc/objc-act.c (synth_module_prologue): Const-qualify
9976         objc_selector type if using the GNU runtime; fix generated
9977         signatures for objc_msg_lookup and objc_msg_lookup_super
9978         to match what GNU ObjC headers provide; reformat and clean up.
9979         (synth_self_and_ucmd_args): Use previously constructed (and
9980         hence possibly const-qualified) objc_selector type.
9981
9982 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9983
9984         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9985
9986 2004-03-05  Jason Merrill  <jason@redhat.com>
9987
9988         * tree.h (TYPE_HASH): Use TYPE_UID.
9989         (TREE_HASH): New macro with old definition of TYPE_HASH.
9990         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9991         (build_array_type, build_function_type): Likewise.
9992         (build_method_type_directly): Likewise.
9993         (build_offset_type, build_complex_type): Likewise.
9994         (type_hash_list, attribute_hash_list): Likewise. Now static.
9995         * except.c: s/TYPE_HASH/TREE_HASH/.
9996
9997 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9998
9999         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
10000         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
10001         __va_ndx by 2 words when referencing an argument on the stack.
10002         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
10003         words when an arg on the stack is first seen.
10004
10005 2004-03-05  Paul Brook  <paul@codesourcery.com>
10006
10007         * arm.h (ARM_FLAG_VFP): Remove.
10008         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
10009         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
10010
10011 2004-03-05  Paul Brook  <paul@codesourcery.com>
10012
10013         * function.c (assign_parms): Include pretend alignment offset.
10014
10015 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10016
10017         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
10018         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
10019
10020 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
10021
10022         * configure.ac: When passing --enable-languages to subdir
10023         configure when host != build, make sure we don't pass an empty
10024         value.
10025         * configure: Regenerate.
10026
10027 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
10028
10029         PR 13577
10030         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
10031         options.
10032
10033 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10034
10035         * simplify-rtx.c (simplify_relational_operation): If
10036         flag_wrapv is set, do not move terms between the two
10037         side of a relational operator.
10038
10039 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10040
10041         * rtlanal.c: Include target.h and output.h
10042         (rtx_cost, address_cost, default_address_cost): Move from...
10043         * cse.c (rtx_cost, address_cost, default_address_cost):
10044         ... this file.
10045         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
10046         * Makefile.in: Adjust dependencies.
10047
10048 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
10049
10050         * cse.c (cse_end_of_basic_block): Make static.
10051         * local-alloc.c (function_invariant_p): Move to
10052         reload1.c.
10053         * loop.c (libcall_other_reg, record_excess_regs):
10054         Make static.
10055         * reload1.c (function_invariant_p): Moved here
10056         from local-alloc.c, made static.
10057         * rtl.h (cse_end_of_basic_block, function_invariant_p,
10058         libcall_other_reg, record_excess_regs): Remove
10059         declarations.
10060
10061 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10062
10063         * config/m32r/m32r.c (signed_comparison_operator): Add a
10064         missing parenthesis.
10065
10066 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
10067
10068         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
10069         going to call mmap again.  Read the file into the right place.
10070         Give a fatal error if we have to relocate.
10071
10072 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
10073
10074         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
10075         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
10076
10077 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
10078
10079         PR other/14354
10080         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
10081         round the same.  When rounding, clear bits that would cause a
10082         second rounding in pack_d.
10083         (_fpmul_parts): Ditto.  Remove #if 0:d code.
10084
10085 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
10086
10087         PR c++/14425, c++/14426
10088         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
10089         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
10090         Change C++ definitions to accept a 'const int' argument;
10091         the prototypes already do.
10092         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
10093         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
10094         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
10095         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
10096         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
10097         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
10098         end in ..._int; change them to accept an int instead of a char
10099         as the last parameter.
10100
10101 2004-03-04  Phil Edwards  <phil@codesourcery.com>
10102
10103         * genmultilib:  Change '=' to '-' when translating option names
10104         to directory names.
10105
10106 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10107
10108         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
10109         stack slot for temp used for result of BLKmode but in integral mode.
10110
10111 2004-03-04  Jan Hubicka  <jh@suse.cz>
10112
10113         * reload.c (find_reloads): Reorganize if seqeunce to switch.
10114
10115         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
10116         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
10117
10118 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
10119
10120         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
10121         * testsuite/gcc.dg/20040303-1.c: New test.
10122
10123 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10124
10125         * ppro.md: Rewrite as a DFA pipeline description.
10126         * i386.md: Remove all uses of the ppro_uops attribute.
10127         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
10128         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
10129         ix86_sched_reorder, ix86_variable_issue,
10130         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
10131         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
10132         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
10133         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
10134         * athlon.md (athlon_ssecmp_load): Fix comment
10135
10136 2004-03-04  Stuart Hastings  <stuart@apple.com>
10137
10138         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
10139
10140 2004-03-04  Stuart Hastings  <stuart@apple.com>
10141
10142         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
10143         686, tell Darwin assembler to allow prefetch insns, non-empty def
10144         of SUBTARGET_OPTION_TRANSLATE_TABLE.
10145
10146 2004-03-04  DJ Delorie  <dj@redhat.com>
10147
10148         PR optimization/14282
10149         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
10150         between a call and the assignment of its return value.
10151
10152 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10153
10154         * config/h8300/h8300.c: Put a comment for every function.
10155
10156 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10157
10158         * config/h8300/h8300.md: Add comments about peephole2's.
10159
10160 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10161
10162         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
10163
10164 2004-03-04  Jan Hubicka  <jh@suse.cz>
10165
10166         * cfgcleanup.c (thread_jump): Update call of cselib_init.
10167         * cselib.c (cselib_record_memory): New static variable.
10168         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
10169         Give up on memories when asked for.
10170         (cselib_init): Accept new argument.
10171         * cselib.h (cselib_init): Update prototype.
10172         * gcse.c (local_cprop_pass): Update call of cselib_init.
10173         * loop.c (load_mems): Update call of cselib_init.
10174         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
10175         * sched-deps.c (sched_analyze): Update call of cselib_init.
10176
10177 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10178             GP <gp@qnx.com>
10179
10180         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
10181         when compiling PIC.
10182
10183 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
10184
10185         PR/14362
10186         * var-tracking.c (track_expr_p): Do not track variables which
10187         should be ignored for debugging purposes.
10188
10189 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10190
10191         * real.c (encode_ibm_extended): Don't bother rounding low double.
10192         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
10193         when fmt->pnan < fmt->p.
10194
10195 2004-03-04  Eric Christopher  <echristo@redhat.com>
10196
10197         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
10198         only range of valid arg registers and fixed_regs.
10199
10200 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10201
10202         PR target/14406
10203         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
10204         (abstf2, abstf2_internal): New define_expand.
10205
10206 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10207
10208         PR optimization/14235
10209         * expr.c (convert_move): Copy the source to a new pseudo
10210         when converting from a sub-word source to a larger-than-word
10211         register which conflicts with the source.
10212
10213 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
10214
10215         PR 13728
10216         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
10217         parameters with the same name, unless one is a forward decl.
10218         Do not issue a redundant-redeclaration warning for forward
10219         decls of parameters.
10220
10221 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10222
10223         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
10224         configuration.
10225
10226 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
10227
10228         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
10229
10230 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10231
10232         * target-def.h (TARGET_OPTF): Delete.
10233         * c-opts.c (TARGET_OPTF): Define.
10234
10235 2004-03-04  Jan Hubicka  <jh@suse.cz>
10236
10237         * cselib.c (cselib_finish): Fix another miss-application of my previous
10238         patch.
10239
10240 2004-03-03  Mike Stump  <mrs@apple.com>
10241
10242         Add framework support for darwin.
10243
10244         * c-incpath.c: Include target.h and machmode.h.
10245         (add_path): Use a consistent style for cpp_dir.  Initialize
10246         p->construct to 0.
10247         (add_cpp_dir_path): New.
10248         (register_include_chains): Add use of extra_includes callback.
10249         (hook_void_int): Add.
10250         (target_c_incpath): Add.
10251         * c-incpath.h (add_cpp_dir_path): New.
10252         (target_c_incpath_s): Add.
10253         (target_c_incpath): Add.
10254         (C_INCPATH_INIT): Add.
10255         * c-opts.c (c_common_missing_argument,
10256         c_common_handle_option): Add -F argument processing.
10257         * c.opt: Add -F argument processing.
10258         * gcc.c (trad_capable_cpp): Add -F argument processing.
10259         * cppfiles.c (find_file_in_dir): Update to use construct
10260         callback.
10261         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
10262         cpp_get_prev): New.
10263         (_cpp_find_file): Use search_path_exhausted.
10264         (make_cpp_dir): Initialize construct to 0.
10265         * cpplib.h (missing_header_cb
10266         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
10267         (cpp_callbacks): Add missing_header
10268         (cpp_dir): Add construct.
10269         * target-def.h: (TARGET_OPTF): New.
10270         * hooks.c (hook_void_int, hook_void_charptr): Add.
10271         * hooks.h (hook_void_int, hook_void_charptr): Add.
10272         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
10273         $(MACHMODE_H) dependencies.
10274         * doc/invoke.texi (Darwin Options): Document -F.
10275         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
10276         (TARGET_OPTF): Add.
10277         * fix-header.c (target_c_incpath): Add.
10278
10279         * config/darwin-c.c: Add c-incpath.h include.
10280         (using_frameworks, find_subframework_file,
10281         find_subframework_header, add_system_framework_path,
10282         frameworks_in_use, num_frameworks, max_frameworks,
10283         add_framework, find_framework, struct framework_header,
10284         framework_header_dirs, framework_construct_pathname,
10285         find_subframework_file, add_system_framework_path,
10286         add_framework_path, framework_defaults,
10287         darwin_register_frameworks, find_subframework_header): Add.
10288         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
10289         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
10290         (CPP_SPEC): Add __APPLE_CC__ support.
10291         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
10292
10293 2004-03-04  Jan Hubicka  <jh@suse.cz>
10294
10295         * cselib.c (cselib_finish): Fix miss-application of my previous
10296         patch.
10297
10298 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10299
10300         * hooks.c (hook_tree_tree_identity): New.
10301         * hooks.h: Add a prototype for hook_tree_tree_identity.
10302         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
10303         instead of MD_ASM_CLOBBERS.
10304         * system.h (MD_ASM_CLOBBERS): Poison.
10305         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
10306         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
10307         * target.h (gcc_target): Add md_asm_clobbers.
10308         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
10309         (ix86_md_asm_clobbers): New.
10310         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
10311         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
10312         TARGET_MD_ASM_CLOBBERS.
10313
10314 2004-03-03  Stuart Hastings  <stuart@apple.com>
10315
10316         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
10317
10318 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10319
10320         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10321
10322         * config/sparc/sparc.h (ASM_FLOAT): Delete.
10323         (ASM_DOUBLE): Likewise.
10324         (ASM_LONGDOUBLE): Likewise.
10325         * config/sparc/pbd.h (ASM_INT_OP): Delete.
10326
10327 2003-03-03  Richard Henderson  <rth@redhat.com>
10328
10329         PR opt/13862
10330         * cselib.c (cselib_record_sets): Don't record multiple sets in
10331         asm insns.
10332
10333 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
10334
10335         * common.opt: Add description of the new -fgcse-after-reload flag.
10336
10337         * flags.h (flag_gcse_after_reload): Declaration of global variable.
10338
10339         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10340         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10341         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10342         get_bb_avail_insn, hash_scan_set_after_reload,
10343         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10344         gcse_after_reload, get_bb_avail_insn): New functions to implement
10345         gcse-after-reload.
10346         (gcse_after_reload_main): New function, the main entry point to
10347         gcse-after-reload.
10348
10349         * rtl.h (gcse_after_reload_main): Declaration of the new function.
10350
10351         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10352
10353         * toplev.c (flag_gcse_after_reload): Initialization.
10354
10355         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10356
10357         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10358         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10359         the gcse after reload optimization.
10360
10361         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10362         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10363         parameters.
10364
10365         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10366
10367 2004-03-03  Nicolas Pitre <nico@cam.org>
10368
10369         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10370         small negative values.
10371
10372 2004-03-03  Jan Hubicka  <jh@suse.cz>
10373
10374         * cselib.c (hash_table):  Remove GTY marker.
10375         (reg_values): Turn into array.
10376         (used_regs): Likewise.
10377         (n_used_regs): New static variable.
10378         (reg_values_old): Kill.
10379         (clear_table): Update uses of arrays.
10380         (cselib_lookup): Likewise.
10381         (cselib_record_set): Likewise.
10382         (cselib_init): Likewise.
10383         (cselib_finish): Likewise.
10384         (cselib_udpate_varray_sizes): Kill.
10385         * cselib.h (cselib_update_varray_sizes): Kill.
10386
10387 2004-03-03  Paul Brook  <paul@codesourcery.com>
10388
10389         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10390
10391 2004-03-03  Jan Hubicka  <jh@suse.cz>
10392
10393         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10394         Rename from ...; make statistics transparent.
10395         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10396         (loc_descriptor): New structure.
10397         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10398         add_statistics):
10399         New static function.
10400         (ggc_record_overhead, dump_statistics): New global function.
10401         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10402         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10403         from ...; accept locations
10404         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10405         ggc_realloc, ggc_alloc_typed):  ... this one.
10406         from ...; accept locations
10407         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10408         ggc_alloc_stat): Rename from ... ; pass locations
10409         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10410         ... this one.
10411         (ggc_alloc_stat): Record overehead.
10412         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10413         ggc_realloc, ggc_alloc_typed):  Turn to macros
10414         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10415         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10416         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10417         * langhooks.h (lhd_make_node): Declare.
10418         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10419         * langhooks.c (lhd_make_node): New.
10420         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10421         locations.
10422         (rtx_alloc, swallow_copy_rtx): ... this one.
10423         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10424         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10425         * toplpev.c (finalize): Dump stats.
10426         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10427         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10428         Rename from ... ; pass locators.
10429         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10430         build?,  build_decl): Declare.
10431         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10432         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10433         Declare.
10434         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10435         build?,  build_decl): New macros.
10436         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10437         * statistics.h: New file.
10438
10439 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10440             Richard Sandiford  <rsandifo@redhat.com>
10441
10442         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10443         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10444         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10445         * config/mips/mips.c (mips_output_division): Fill the branch delay
10446         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10447         TARGET_FIX_R4400.
10448         (mips_output_division): Adjust accordingly.
10449         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10450         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10451
10452 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10453
10454         * alias.c (rtx_equal_for_memref_p): Use predicates
10455         to test rtx classes and new rtx class codes, possibly
10456         splitting conditionals that tested against '<' and 'o'.
10457         * caller-save.c (save_call_clobbered_regs): Likewise.
10458         * combine.c (contains_muldiv, find_split_point, subst,
10459         combine_simplify_rtx, simplify_if_then_else,
10460         simplify_set, simplify_logical, expand_compound_operation,
10461         make_compound_operation, if_then_else_cond, known_cond,
10462         apply_distributive_law, cached_nonzero_bits,
10463         cached_num_sign_bit_copies, simplify_shift_const,
10464         gen_binary, simplify_comparison, update_table_tick,
10465         record_value_for_reg, get_lsat_value_validate): Likewise.
10466         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10467         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10468         Likewise.
10469         * emit-rtl.c (copy_insn_1): Likewise.
10470         * expr.c (force_operand): Likewise.
10471         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10472         * flow.c (notice_stack_pointer_modification_1,
10473         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10474         and_reg_cond, elim_reg_cond): Likewise.
10475         * function.c (update_epilogue_consts): Likewise.
10476         * genattrtab.c (attr_rtx_1): Likewise.
10477         * genopinit.c (gen_insn): Likewise.
10478         * integrate.c (subst_constants): Likewise.
10479         * jump.c (reversed_comparison_code_parts,
10480         reversed_comparison_code, delete_related_insns,
10481         rtx_renumbered_equal_p): Likewise.
10482         * local-alloc.c (block_alloc): Likewise.
10483         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10484         canonicalize_condition): Likewise.
10485         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10486         Likewise.
10487         * optabs.c (add_equal_node, expand_binop): Likewise.
10488         * predict.c (estimate_probability): Likewise.
10489         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10490         * recog.c (validate_replace_rtx_1, comparison_operator,
10491         offsettable_address_p, constrain_operands): Likewise.
10492         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10493         Likewise.
10494         * regclass.c (scan_one_insn): Likewise.
10495         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10496         * regrename.c (kill_autoinc_value): Likewise.
10497         * reload.c (find_reusable_reload, find_reloads,
10498         reg_overlap_mentioned_for_reload_p): Likewise.
10499         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10500         * rtl.c (copy_rtx): Likewise.
10501         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10502         * rtlanal.c (commutative_operand_precedence): Likewise.
10503         * sched-deps.c (conditions_mutex_p): Likewise.
10504         * sched-rgn.c (is_cfg_nonregular): Likewise.
10505         * simplify-rtx.c (simplify_gen_binary,
10506         simplify_gen_relational, simplify_replace_rtx,
10507         simplify_unary_operation, simplify_binary_operation,
10508         simplify_ternary_operation, simplify_rtx): Likewise.
10509         * unroll.c (reg_dead_after_loop): Likewise.
10510         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10511         print_operand): Likewise.
10512         * config/arc/arc.c (proper_comparison_operator): Likewise.
10513         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10514         Likewise.
10515         * config/avr/avr.c (_reg_unused_after): Likewise.
10516         * config/frv/frv.c (frv_ifcvt_modify_tests,
10517         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10518         * config/i386/i386.c (ix86_comparison_operator,
10519         ix86_carry_flag_operator, fcmov_comparison_operator,
10520         arith_or_logical_operator, print_operand,
10521         ix86_expand_binary_operator, ix86_binary_operator_ok):
10522         Likewise.
10523         * config/i386/i386.md: Likewise.
10524         * config/ia64/ia64.c (not_postinc_memory_operand,
10525         ia64_print_operand, update_set_flags, errata_emit_nops):
10526         Likewise.
10527         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10528         CONSTRAINT_OK_FOR_S): Likewise.
10529         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10530         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10531         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10532         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10533         Likewise.
10534         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10535         eqne_comparison_operator, signed_comparison_operator):
10536         Likewise.
10537         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10538         Likewise.
10539         * config/mmix/mmix (mmix_foldable_comparison_operator,
10540         mmix_comparison_operator): Likewise.
10541         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10542         * config/rs6000/rs6000.c (stmw_operation,
10543         branch_comparison_operator, trap_comparison_operator,
10544         ccr_bit): Likewise.
10545         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10546         * config/s390/s390.c (s390_alc_comparison,
10547         s390_slb_comparison):L Likewise.
10548         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10549         Likewise.
10550         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10551         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10552         emit_hard_tfmode_operation, reg_unused_after)
10553         * doc/md.texi, doc/rtl.texi: Likewise.
10554
10555         * ra-debug.c: Add 2004 to list of copyright years.
10556         * unroll.c: Likewise.
10557
10558         * combine.c (simplify_logical): Remove dummy test,
10559         (apply_distributive_law): Fix typo in comment.
10560         GET_CODE (x) == AND so x is a commutative binary op.
10561         * jump.c (delete_related_insns): simplify loop
10562         condition, move testing of RTX codes inside the loop.
10563         (rtx_renumbered_equal_p): do not use RTX_CODE.
10564         * rtl.c (rtx_class): Declare as enum rtx_class.
10565         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10566         Move to RTX_COMM_COMPARE class.
10567         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10568         Move to RTX_CONST_OBJ class.
10569         * rtl.h (enum rtx_class): New declaration,
10570         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10571         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10572         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10573         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10574         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10575         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10576         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10577         OBJECT_P): New macros.
10578         * config/sparc/sparc.c (noov_compare_op): Remove register
10579         from parameter.
10580
10581 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10582
10583         * target.h: Remove texi jargons in comments.
10584
10585 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10586
10587         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10588         threshold to 0x4f.
10589
10590         Revert:
10591         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10592         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10593         as well.
10594         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10595         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10596
10597 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10598
10599         * doc/md.texi (cbranchmode4): New.
10600
10601 2004-03-02  Eric Christopher  <echristo@redhat.com>
10602
10603         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10604         fix_trunc.
10605         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10606         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10607         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10608         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10609
10610 2004-03-02  Richard Henderson  <rth@redhat.com>
10611
10612         PR middle-end/11767
10613         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10614         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10615         before the compare, if flag_non_call_exceptions.
10616
10617 2004-03-02  Richard Henderson  <rth@redhat.com>
10618
10619         PR middle-end/14327
10620         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10621         emitting the label, not after.
10622
10623 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10624
10625         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10626         (m68hc11_mov_addr_mode): Likewise.
10627         (m68hc11_override_options): Initialize them based on target.
10628         (register_indirect_p): Allow a MEM for indirect addressing modes and
10629         use flags to control what is allowed.
10630         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10631         supported addressing modes.
10632         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10633         (go_if_legitimate_address_internal): Likewise.
10634         (m68hc11_indirect_p): Likewise and check the mode.
10635         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10636
10637 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10638
10639         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10640         (expand_builtin_setjmp_setup): Use
10641         targetm.builtin_setjmp_frame_value instead of
10642         BUILTIN_SETJMP_FRAME_VALUE.
10643         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10644         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10645         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10646         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10647         * targhooks.c (default_builtin_setjmp_frame_value): New.
10648         * targhooks.h: Add a prototype for
10649         default_builtin_setjmp_frame_value.
10650         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10651         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10652
10653 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10654
10655         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10656         sequences of moves.
10657         (add peepholes): New peepholes to optimize sequences adding small
10658         constants.
10659         (bset peepholes): New peepholes to transform an OR in a bset form
10660         (bclr peepholes): Likewise for bclr form.
10661         (cmp peepholes): New peepholes to avoid register copies when comparing.
10662
10663 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10664
10665         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10666         to separate push from moves.
10667         ("*pushdf_internal"): Likewise.
10668         ("*pushsf_internal"): Likewise.
10669         ("*pushsi_internal"): Likewise.
10670         ("movdi_internal"): Use define_insn_and_split; non push operand.
10671         ("movdf_internal"): Likewise.
10672         ("movsf_internal"): Likewise.
10673         ("movsi_internal"): Likewise.
10674         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10675         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10676         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10677
10678 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10679
10680         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10681         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10682         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10683         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10684         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10685         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10686         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10687         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10688         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10689         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10690         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10691
10692 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10693
10694         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10695         (SOFT_XY_REGNUM): Define.
10696         (cmp split): Use the above instead of hard coded numbers.
10697         (8-bit op split): No need to check the mode; allow Q_REG.
10698         (ashift split): Adjust the first operand if it uses the SP and we
10699         are pushing the shifted value.
10700         (plus shift split): Fix when a source is in register D+X.
10701         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10702
10703 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10704
10705         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10706         comparing with Z register.
10707
10708 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10709
10710         * cfgloop.h (struct loop_desc): Removed.
10711         (struct loop): Fields simple, desc and has_desc removed.
10712         (simple_loop_p, count_loop_iterations): Declaration removed.
10713         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10714         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10715         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10716         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10717         simple_loop_exit_p, variable_initial_value, variable_initial_values,
10718         simple_condition_p, simple_increment, count_strange_loop_iterations,
10719         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10720         Removed.
10721         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
10722
10723 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10724
10725         * genattrtab.c: Don't handle MATCH_INSN.
10726         * genrecog.c: Likewise.
10727         * gensupport.c: Likewise.
10728         * rtl.def (match_insn): Remove.
10729         * doc/md.texi (match_insn, match_insn2): Remove.
10730
10731 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
10732
10733         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
10734         macro results in memory allocation.
10735
10736 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
10737
10738         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
10739         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
10740         %(fbsd_dynamic_linker),
10741         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
10742         config/i386/freebsd.h
10743         * config/arm/freebsd.h: Ditto.
10744         * config/i386/freebsd.h: Ditto.
10745         * config/i386/freebsd64.h: Ditto.
10746         * config/ia64/freebsd.h: Ditto.
10747         * config/rs6000/sysv4.h: Ditto.
10748         * config/sparc/freebsd.h: Ditto.
10749
10750 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
10751
10752         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
10753
10754 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10755
10756         * rtl.def (define_combine): Remove.
10757
10758 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10759
10760         * config/h8300/h8300.md: Tweak formatting.
10761
10762 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10763
10764         * config/h8300/h8300.md (*cmphi_h8300): Rename to
10765         *cmphi_h8300_znvc.
10766         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
10767
10768 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
10769
10770         PR bootstrap/14356
10771         * gcc.c (process_command): Remove const-qualification from argv.
10772         (main): Likewise.
10773
10774 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10775
10776         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
10777         pushqi1_h8300hs_advanced.  Adjust its caller.
10778         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
10779         Adjust its caller.
10780
10781 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
10782
10783         * Makefile.in (install-libgcc, install-multilib): Pass
10784         mkinstalldirs var to libgcc.mk.
10785
10786 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10787
10788         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
10789         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
10790
10791 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10792
10793         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
10794         * config/h8300/h8300.md: Split several peephole2's, each into
10795         two.
10796
10797 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10798
10799         * dominance.c (recount_dominator): Handle postdominators.
10800
10801 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10802
10803         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10804         (NUM_SYMBOL_TYPES): Likewise.
10805         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10806         (mips_unspec_address): Declare.
10807         (mips_gotoff_page, mips_gotoff_global): Delete.
10808         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10809         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10810         (mips_symbolic_constant_p, mips_symbolic_address_p)
10811         (mips_symbol_insns): Handle new symbol types.
10812         (general_symbolic_operand): New predicate.
10813         (mips_unspec_address): Make extern.
10814         (mips_gotoff_page, mips_gotoff_global): Delete.
10815         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10816         Handle new symbol types.
10817         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10818         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10819         mips_unspec_address directly.
10820         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10821         the documentation of -mexplicit-relocs.
10822
10823 2004-03-01  Jeff Law  <law@redhat.com>
10824
10825         * fold-const.c (fold): An equality comparison of a non-weak object
10826         against zero has a known result.  Similarly an equality comparison
10827         of the address of two non-weak, unaliased symbols has a known result.
10828
10829         * ggc-page.c (struct page_entry): New field PREV.
10830         (ggc_alloc): Update PREV field appropriately.
10831         (sweep_pages): Likewise.
10832         (ggc_free): Likewise.  Use PREV field rather than loop to
10833         improve ggc_free performance.
10834
10835 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10836
10837         * config/mips/mips.c (mips_output_division): Use the division
10838         instruction to fill the delay slot of a zero check.
10839         (mips_idiv_insns): Adjust accordingly.
10840
10841 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
10842
10843         * config.gcc: Create a default tmake_file for linux, and use
10844         it in all but two linux clauses.  Comment those two.
10845
10846 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
10847
10848         * combine.c (try_combine):  Do not refer to is_replaced.
10849         (gen_lowpart_for_combine):  Perverse subregs now have a
10850         more politically correct name.
10851         * cse.c (cse_insn): Likewise.
10852         * jump.c: Fix bogus reference to delete_insn.
10853
10854 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
10855
10856         PR debug/14328
10857         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10858         constants as signed values.
10859
10860         PR middle-end/13448
10861         * c-tree.h (readonly_warning): Rename to ...
10862         (readonly_error): ... this.
10863         * c-typeck.c (build_unary_op): Adjust accordingly.
10864         (readonly_warning): Rename to ...
10865         (readonly_error): ... this and issue errors, not warnings.
10866         (build_modify_expr): Call readonly_error, not readonly_warning.
10867         (c_expand_asm_operands): Likewise.
10868         * tree-inline.c (optimize_inline_calls): Do not inline functions
10869         after errors have occurred.
10870
10871 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10872
10873         * configure.ac: Rearrange some threading code for clarity;
10874         add section comment.
10875         * configure: Regenerate.
10876
10877 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10878
10879         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10880         typos.
10881         * doc/cppopts.texi: Fix a typo.
10882
10883 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10884
10885         * config/i386/i386.md: Fix formatting.
10886
10887 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10888
10889         * configure.ac: Add some comments delineating sections of code.
10890
10891         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10892
10893         * doc/install.texi: Fix idiot typo in previous commit.
10894
10895         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10896
10897 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10898
10899         * config/h8300/h8300.md: Add comments about peephole2's.
10900
10901 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10902
10903         * config/h8300/h8300.md: Tweak operand numbers of some
10904         peephole2's.
10905
10906 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10907
10908         * config/h8300/h8300.md: Tweak comments about peephole2's.
10909
10910 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10911
10912         PR middle-end/14203
10913         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10914         instead of testing whether DECL_RTL is not NULL.
10915
10916 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10917
10918         * config/sh/sh.c: Fix formatting.
10919
10920 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10921
10922         * config/sh/sh.c: Convert to ISO-C.
10923
10924 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10925
10926         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10927         my previous patch.
10928
10929         * config/darwin.h (machopic_finish): Output stub even if the
10930         symbol is already defined.
10931
10932 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10933
10934         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10935
10936 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10937
10938         * genattr.c (main): Don't define
10939         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10940         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10941         (DFA_PIPELINE_INTERFACE): Likewise.
10942         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10943         (DFA_PIPELINE_INTERFACE): Likewise.
10944
10945 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
10946
10947         * config/mips/mips.md (tstsi, tstdi): Delete.
10948
10949 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10950
10951         * config/mips/mips.c (override_options): Remove an obsolete
10952         duplicate definition of the "e" constraint.
10953         * config/mips/mips.h: Update a comment accordingly.
10954
10955 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10956
10957         * config/mips/mips.md: Complete the unfinished R4000
10958         multiply/shift errata workaround.  Improve documentation.
10959         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10960         has a hilo hazard.
10961         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10962         (muldi3, muldi3_internal): Likewise.
10963         (muldi3_internal2): Remove, replacing with...
10964         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10965         (mulsidi3): Take the errata into account.
10966         (mulsidi3_32bit): Remove, replacing with...
10967         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10968         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10969         (umulsidi3): Take the errata into account.
10970         (umulsidi3_32bit): Remove, replacing with..
10971         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10972         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10973         TARGET_FIX_R4000.
10974         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10975         (smuldi3_highpart, umuldi3_highpart): Likewise.
10976         * doc/invoke.texi: Document the errata workaround.
10977
10978 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10979
10980         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10981         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10982         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10983         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10984         * config/mips/mips.c (mips_idiv_insns): New function.
10985         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10986         (mips_output_division): Add a workaround for the R4000 divide/shift
10987         errata.
10988         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10989         the length of an "idiv" instruction.
10990         * doc/invoke.texi: Document the new switches.
10991
10992 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10993
10994         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10995         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10996
10997 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10998
10999         PR optimization/14229
11000         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
11001
11002 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
11003
11004         * fold-const.c (fold): Strip NOPs that change the signedness
11005         for RSHIFT too.  Expand comment.
11006
11007 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
11008
11009         PR optimization/7871
11010         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
11011         from or to call insns.
11012
11013 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
11014
11015         PR optimization/7871
11016         * flow.c (propagate_one_insn): Interpret calls as setting global
11017         registers, not merely clobbering them.
11018
11019 2004-02-27  Dale Johannesen  <dalej@apple.com>
11020
11021         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
11022         config/darwin-protos.h:  Ditto.
11023         config/darwin.h:  Remove call to it.
11024         * combine.c (distribute_notes): Do not place a REG_DEAD note
11025         when value is both set and used.
11026
11027 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11028
11029         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
11030         as well.
11031         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
11032         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
11033
11034 2004-02-27  Andrew Pinski  <apinski@apple.com>
11035
11036         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
11037         Speedup common case of the type values being in the same order.
11038
11039 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
11040
11041         * config/ia64/ia64.h (no-inline-float-divide): New option.
11042         * config/ia64/ia64.h (no-inline-int-divide): New option.
11043         * config/ia64/ia64.h (no-inline-sqrt): New option.
11044         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
11045         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
11046         * config/ia64/ia64.c (ia64_override_options): Modify error
11047         checking for inlined division/sqrt.
11048
11049 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11050
11051         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
11052         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
11053         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
11054         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
11055         copyright.
11056
11057 2004-02-27  Paul Brook  <paul@codesourcery.com>
11058
11059         * function.c (assign_parms): Don't count pretend args for alignment.
11060
11061 2004-02-27  Richard Henderson  <rth@redhat.com>
11062
11063         * passes.c: New file.
11064         * Makefile.in (OBJS-common): Add it.
11065         * diagnostic.c (rtl_dump_and_exit): Move decl ...
11066         * flags.h (rtl_dump_and_exit): ... here.
11067         * output.h (size_directive_output, last_assemble_variable_decl):
11068         Move from toplev.c.
11069         * rtl.h (reg_alloc): Move from toplev.c.
11070         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
11071         struct dump_file_info, enum dump_file_index, dump_file_tbl,
11072         open_dump_file, close_dump_file, rest_of_decl_compilation,
11073         rest_of_type_compilation, rest_of_handle_final,
11074         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
11075         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
11076         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
11077         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
11078         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
11079         rest_of_handle_tracer, rest_of_handle_if_conversion,
11080         rest_of_handle_if_after_combine, rest_of_handle_web,
11081         rest_of_handle_branch_prob,
11082         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
11083         rest_of_handle_addressof, rest_of_handle_sibling_calls,
11084         rest_of_handle_jump_bypass, rest_of_handle_inlining,
11085         rest_of_handle_null_pointer, rest_of_handle_combine,
11086         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
11087         rest_of_handle_gcse, rest_of_handle_loop_optimize,
11088         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
11089         (decode_d_option): Use enable_rtl_dump_file.
11090         (compile_file, finalize, do_compile): Move profile+combine+graph
11091         cleanup to finish_optimization_passes.
11092         * toplev.h (init_optimization_passes, finish_optimization_passes,
11093         enable_rtl_dump_file): Declare.
11094
11095 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
11096             Roger Sayle  <roger@eyesopen.com>
11097
11098         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
11099         operands to build a tree with swapped operands.
11100         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
11101         'unsignedp' predicate to specify the signedness.
11102
11103 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11104
11105         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
11106         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
11107         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
11108         comment typos and formatting.  Follow spelling conventions.
11109
11110 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
11111
11112         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
11113         fix_truncsfsi2.
11114
11115         * config/rs6000/spe.md: Delete spe_efsctuiz.
11116         Add spe_fixuns_truncsfsi2.
11117         Add spe_fix_truncsfsi2.
11118
11119 2004-02-26  Eric Christopher  <echristo@redhat.com>
11120
11121         * c-lex.c (c_lex_string_translate): New variable.
11122         (lex_string): Use to determine string translation.
11123         * c-pragma.h: Prototype.
11124         * c-parse.in (start_string_translation): New. Set above.
11125         (stop_string_translation): Ditto.
11126         (attribute, attribute_list, asm_def, asm_stmt,
11127         asm_operand): Use above functions.
11128         * cp/parser.c (cp_parser_declaration): Translate strings
11129         unless token is RID_EXTERN. Set c_lex_string_translate
11130         for recursive use.
11131         (cp_parser_asm_definition): Only translate argument strings
11132         to asms.
11133         (cp_parser_asm_operand_list): Ditto.
11134         (cp_parser_attribute_list): Do not translate attribute strings.
11135
11136 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11137
11138         * stmt.c (expand_start_case_dummy): Remove.
11139         * tree.h: Remove the corresponding prototype.
11140
11141 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11142
11143         * builtins.c (apply_args_register_offset): Remove.
11144         * tree.h: Remove the corresponding prototype.
11145
11146 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11147
11148         * stor-layout.c (is_pending_size): Remove.
11149         * tree.h: Remove the corresponding prototype.
11150
11151 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11152
11153         * recog.c (validate_replace_src): Remove.
11154         * recog.h: Remove the corresponding prototype.
11155
11156 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11157
11158         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
11159         MAYBE_REG_PARM_STACK_SPACE.
11160         * function.c: Likewise.
11161         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
11162         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11163         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
11164         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11165
11166 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11167
11168         * c-decl.c (c_expand_deferred_function): Remove.
11169         * c-tree.h: Remove the corresponding prototype.
11170
11171 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11172
11173         * postreload.c (reload_cse_move2add): Generate just a PLUS
11174         instead of an entire SET.
11175
11176 2004-02-26  Jan Hubicka  <jh@suse.cz>
11177
11178         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
11179         /pentium4m.
11180         * i386.c (override_options): Add support for new CPUs.
11181         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
11182         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
11183         constants.
11184         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
11185
11186 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
11187
11188         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
11189
11190 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
11191
11192         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
11193         (sparc_emit_fixunsdi): New prototype.
11194         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
11195         (sparc_emit_fixunsdi): New function.
11196         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
11197         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
11198         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
11199         to sparc_emit_floatunsdi.
11200         (fixuns_truncsfdi2): New expander.
11201         (fixuns_truncdfdi2): Likewise.
11202
11203 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
11204
11205         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
11206         unless HAVE_cc0.
11207
11208 2004-02-25  Richard Henderson  <rth@redhat.com>
11209
11210         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
11211         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
11212         use (op0-op1) == 0 if op0 is a pointer.
11213         * config/alpha/alpha.md (cmpdi): Use some_operand.
11214         (three comparison combine splits): Remove.
11215
11216 2004-02-25  Richard Henderson  <rth@redhat.com>
11217
11218         PR c/12794
11219         * c-common.c (handle_alias_attribute): Reject the attribute if
11220         current_function_decl is set.
11221
11222 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11223
11224         * config.gcc: Add comment describing extra_gcc_objs.
11225         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
11226         * configure.ac (extra_gcc_objs): New substitution variable.
11227         (host_extra_gcc_objs): Don't substitute.
11228         * configure: Regenerate.
11229         * Makefile.in: Use extra_gcc_objs.
11230
11231 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11232
11233         * doc/contrib.texi: Add an entry for myself.
11234
11235 2004-02-25  Jan Hubicka  <jh@suse.cz>
11236
11237         * basic-block.h (make_eh_edge, break_superblocks): Declare.
11238         * cfgbuild.c (make_eh_edge):  Make global.
11239         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
11240         * except.c (build_post_landing_pads, connect_post_landing_pads,
11241         dw2_build_landing_pads, sjlj_emit_function_enter,
11242         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
11243         sjlj_build_landing_pads): Update CFG.
11244         (emit_to_new_bb_before): New function.
11245         (finish_eh_generation): Do not rebuild the CFG.
11246
11247 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11248
11249         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
11250         target_cpu_default defines.
11251         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
11252         * pa.h (TARGET_DEFAULT): Likewise.
11253
11254 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
11255
11256         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
11257         comparisons with regard to signedness.
11258
11259 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11260
11261         * arm.c (thumb_legitimize_address): New function.
11262         * arm-protos.h: Prototype it.
11263         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
11264         (LEGITIMIZE_ADDRESS): Use it.
11265
11266 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
11267
11268         * reload1.c (reload): Only spill eliminable register with multiple
11269         adjacent elimination alternatives if all alternatives fail.
11270
11271 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11272
11273         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
11274         is -4095...+4095 inclusive.
11275
11276 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
11277
11278         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
11279         the bootstrap failure with Sun CC 5.4 and 5.5.
11280
11281 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11282
11283         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
11284         which modifies NEWREG.
11285         (cse_condition_code_reg): Update the mode of CC_REG in
11286         CC_SRC_INSN on our own.
11287
11288 2004-02-24  Michael Matz  <matz@suse.de>
11289
11290         * config/i386/i386.c (ix86_comp_type_attributes): Check for
11291         regparm attributes.
11292
11293 2004-02-24  Richard Henderson  <rth@redhat.com>
11294
11295         * toplev.c (dump_file_tbl): Rename from dump_file.
11296         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
11297         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
11298         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
11299         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
11300         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
11301         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
11302         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
11303         s/rtl_dump_file/dump_file/g.
11304
11305 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
11306
11307         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
11308         (spe_fixuns_truncsfsi2): Delete.
11309
11310         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
11311         (fixuns_truncsfsi2): Delete.
11312
11313 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
11314
11315         PR/14240
11316         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11317
11318 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
11319
11320         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11321
11322 2004-02-24  Jason Merrill  <jason@redhat.com>
11323
11324         * tree.c (check_qualified_type): New fn.
11325         (get_qualified_type): Use it.  If type already has the desired
11326         quals, just return it.
11327         * tree.h: Declare it.
11328
11329 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
11330
11331         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11332         TARGET_SCHED_FINISH_GLOBAL): New macros.
11333
11334         * target.h (md_init_global, md_finish_global): Function
11335         declarations corresponding to new target macros.
11336
11337         * haifa-sched.c (sched_init, sched_finish): Allow target to
11338         call the new schedular hooks.
11339
11340         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11341         call to update_life_info.
11342
11343         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11344         flag_schedule_insns for SH4.
11345
11346         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11347         find_set_regmode_weight, find_insn_regmode_weight,
11348         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11349         sh_variable_issue, high_pressure, ready_reorder,
11350         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11351         functions used to throttle the insn movement in first
11352         scheduling pass for SH.
11353
11354         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11355         TARGET_SCHED_FINISH_GLOBAL.
11356
11357 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
11358
11359         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11360         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
11361         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11362         symbols in sections named by the user.
11363         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
11364         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11365         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
11366         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11367         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11368         the above.
11369         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11370         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11371         one more pseudo to further improve code generation.
11372         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11373         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11374         inside UNSPEC.
11375         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11376         * config/frv/frv.c (frv_legitimate_address_p): Added
11377         allow_double_reg_p argument.  Adjust all callers.  Use it to
11378         decide whether to enable double-register indirect addressing.
11379         (frv_funcdesc_alias_set): Remove.
11380         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11381         register.  Emit movdi_ldd.
11382         (ldd_address_operand): New.
11383         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11384         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11385         (PREDICATE_CODES): Add ldd_address_operand.
11386         * config/frv/frv.md (movdi_ldd): New.
11387         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11388         intermediate computations if possible.
11389         (symGOTOFF2reg_i): Fix harmless typo.
11390         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11391         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11392         relocated p_vaddr to vaddr type.
11393         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11394         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11395         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11396         MEM, or use a funcdesc alias set.  Use regular move instead of
11397         ldd.
11398         (dbl_memory_one_insn_operand): Recognize function descriptors by
11399         type or by alias set, and don't split them.
11400         * config/frv/frv.md (call, call_value): Never use call_internal
11401         for fdpic.
11402         (call_internal, call_value_internal): Never match for FDPIC.
11403         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11404         call_value_fdpicsi): Require FDPIC.
11405         (ldd): Removed.
11406         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11407         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11408         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11409         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11410         FDPIC.  Compute data base address.
11411         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11412         before the other self-specs are processed.
11413         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11414         Build with -fPIC.
11415         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11416         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11417         inhibit_libc is defined.
11418         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11419         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11420         __FRV_FDPIC__.
11421         (__RELOC_POINTER): Define.
11422         (_Unwind_IteratePhdrCallback): Use it.
11423         * config/frv/frv.h (Twrite): Define.
11424         (TRANSFER_FROM_TRAMPOLINE): Use it.
11425         * config/frv/linux.h (INVOKE__main): Undefine.
11426         (Twrite): Override.
11427         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11428         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11429         (-mlibrary-pic): Emphasize that this option generates EABI code.
11430         (-mcpu): Add fr550.
11431         (-mpack): Remove.
11432         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11433         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11434         and CONSTs in FDPIC mode.
11435         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11436         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11437         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11438         constants.
11439         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11440         rather than 'i' constraint for the 2-instruction alternative.
11441         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11442         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11443         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11444         EXTRA_CONSTRAINT_FOR_Y.
11445         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11446         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11447         (addsi3): Change 'Y' constraint to 'Q'.
11448         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11449         * reload.c (CONST_POOL_OK_P): New macro.
11450         (find_reloads): Use it to decide whether a constant can be forced
11451         into memory.
11452         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11453         constant satisfies got12_operand.
11454         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11455         (frv_legitimate_address_p): Check for valid unspec offsets using
11456         got12_operand rather than frv_legitimate_fdpic_operand_p.
11457         (frv_legitimate_fdpic_operand_p): Delete.
11458         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11459         or after reload.
11460         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11461         TARGET_FDPIC.
11462         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11463         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11464         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11465         (frv_fdpic_fptr_operand): Don't declare here.
11466         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11467         rather than fdpic_got12_operand.
11468         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11469         got12_operand and const_unspec_operand.
11470         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11471         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11472         (symbolic_operand): Remove.
11473         (const_unspec_operand): New predicate.
11474         * config/frv/frv.md (*movsi_got): Use got12_operand.
11475         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11476         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11477         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11478         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11479         * config/frv/frv.c (frv_unspec): New structure.
11480         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11481         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11482         validate CONST indices.  Use frv_output_const_unspec to print them.
11483         (frv_print_operand): Update call to unspec_got_name.  Use
11484         frv_output_const_unspec to print constant unspecs.
11485         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11486         Reject UNSPECs otherwise.
11487         (unspec_got_name): Take the relocation number as argument, not an
11488         rtx containing it.
11489         (frv_output_addr_const_extra): Remove, replacing with...
11490         (frv_output_const_unspec): ...this new function.
11491         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11492         (gpr_or_int12_operand): Use fdpic_got12_operand.
11493         (dbl_memory_one_insn_operand): Likewise.
11494         (fdpic_got12_operand): Use frv_const_unspec_p.
11495         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11496         are already legitimate.  Use frv_small_data_reloc_p when deciding
11497         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11498         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11499         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11500         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11501         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11502         label, for real this time.
11503         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11504         representation of visibility.
11505         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11506         such.
11507         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11508         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11509         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11510         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11511         it was explicitly disabled.
11512         (frv_stack_info): There is no need to save the link register in every
11513         frame unless TARGET_LINKED_FP is true.
11514         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11515         frame pointer if the stack pointer might change value.
11516         (frv_return_addr_rtx): Check and process "count" argument.
11517         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11518         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11519         (frv_find_base_term): Declare.
11520         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11521         (FIND_BASE_TERM): Define.
11522         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11523         small_data_register_operand, small_data_symbolic_operand.  Add
11524         symbolic_operand.
11525         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11526         (frv_print_operand_memory_reference, output_move_single): Remove
11527         special handling for unlegitimized sdata addresses.
11528         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11529         and symbolic addresses.
11530         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11531         (frv_find_base_term): New function.
11532         (int_2word_operand): Check specifically for symbolic address constants.
11533         (pic_register_operand, pic_symbolic_operand): Delete.
11534         (small_data_register_operand, small_data_symbolic_operand): Delete.
11535         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11536         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11537         (move_source_operand): Only accept CONSTs if they're a two-insn
11538         symbolic constant.
11539         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11540         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11541         using gen_symGOTOFF2reg*.
11542         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11543         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11544         themselves a cost of 3 insns.
11545         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11546         Change predicate to symbolic_operand.
11547         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11548         (*movsi_lda_sdata): Delete.
11549         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11550         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11551         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11552         frv-*-*linux*.
11553         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11554         label.
11555         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11556         -multilib-library-pic.
11557         (LINK_SPEC): Add -z text for -mfdpic.
11558         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11559         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11560         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11561         Override.
11562         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11563         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11564         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11565         crtstuff-generated files.
11566         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11567         * config.gcc: Add frv-*-*linux*.
11568         * config/frv/linux.h, config/frv/t-linux: New.
11569         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11570         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11571         when -mfdpic even if a linker script is explicitly listed.
11572         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11573         * config/frv/frv.c (frv_override_options): Clear asm_out
11574         unaligned_op for SImode on FDPIC.
11575         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11576         argument passed to decl_readonly_section.
11577         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11578         whole block run with FDPIC even with -fno-PIC.
11579         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11580         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11581         symbol or label plus offset to memory.
11582         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11583         GOTOFF and GPREL for LABEL_REF.
11584         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11585         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11586         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11587         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11588         * doc/invoke.texi: Document them.
11589         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11590         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11591         (frv_splittable_got_operand): Removed.
11592         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11593         LO_SUM.  Add comments.
11594         (frv_override_options): Moved enabling of FDPIC to
11595         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11596         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11597         (frv_legitimize_fdpic_address): Don't duplicate logic in
11598         frv_emit_movsi.
11599         (frv_gen_GPsym2reg): New.
11600         (unspec_got_name): Added gprel.
11601         (frv_expand_fdpic_call): Add support for inlining PLTs.
11602         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11603         (gpr_or_int12_operand): Added GPREL12.
11604         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11605         (small_data_symbolic_operand): Fail if FDPIC.
11606         (fdpic_splittable_got_operand): Removed.
11607         (fdpic_got12_operand): Added GPREL12.
11608         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11609         when appropriate.  Fix sdata GOTOFF.
11610         (frv_legitimate_constant_p): Require legitimate PIC operand for
11611         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11612         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11613         flag_pic case.
11614         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11615         frv_assemble_integer fails.
11616         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11617         (SUBTARGET_DRIVER_SELF_SPECS): New.
11618         (ASM_SPEC): Don't pass -mno-fdpic.
11619         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11620         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11621         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11622         -multilib-library-pic.
11623         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11624         condexec_si_media_operator, condexec_sf_add_operator and
11625         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11626         and condexec_sf_unary_operator.
11627         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11628         New.
11629         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11630         movsi_internal.  Give them internal names.  movsi_got has type
11631         int.
11632         (fdpic got splitters): Remove.
11633         (symGPREL2reg, symGPREL2reg_hilo): New.
11634         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11635         to -mlibrary-pic.  Map -multilib-library-pic to it.
11636         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11637         Document.
11638         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11639         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11640         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11641         (frv_cannot_force_const_mem): New function.
11642         (const_small_data_p, plus_small_data_p): Update comments on sdata
11643         on FDPIC.
11644         (frv_override_options): Set flag_pie for FDPIC too.
11645         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11646         call-saved registers on FDPIC.
11647         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11648         don't force LR to be preserved.
11649         (frv_expand_prologue): Likewise.
11650         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11651         (frv_frame_pointer_required): Don't force it just because the
11652         FDPIC register is used.
11653         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11654         operand only if !condexec_p.
11655         (frv_legitimize_address): Return the FDPIC-legitimized address.
11656         Don't match small data here on FDPIC.
11657         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11658         symbols.  Use TRUE/FALSE instead of 1/0.
11659         (frv_local_funcdesc_p): New.
11660         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11661         immediates when possible.
11662         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11663         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11664         an UNSPEC_GOT.
11665         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11666         12-bit immediates when possible.
11667         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11668         are not legitimate pic operands.
11669         (frv_in_small_data_p): Re-enable for FDPIC.
11670         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11671         (FRV_GLOBAL_P): Removed.
11672         * config/frv/frv.md: Add modes to CONSTs.
11673         (movsi_got): New.
11674         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11675         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11676         (fdpic splittable operations): Match on flag_pic != 1.
11677         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11678         * config/frv/frv.c (frv_asm_out_constructor,
11679         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11680         bytes, not bits.
11681         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11682         * config/frv/frv.c (frv_assemble_integer): Reject complex
11683         expressions referencing function SYMBOL_REFs.
11684         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11685         (move_source_operand): Reject CONSTs that reference function
11686         SYMBOL_REFs on FDPIC.
11687         (frv_emit_movsi): If we get such a CONST, break it up.
11688         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11689         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11690         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11691         MEM.
11692         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11693         (frv_trampoline_size): Increase for FDPIC.
11694         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11695         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11696         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11697         Disable use of GOTOFF for now.
11698         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11699         Disable use of small data in FDPIC for now.
11700         (frv_asm_output_mi_thunk): Implement for FDPIC.
11701         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11702         * config/frv/frv.c (frv_asm_out_constructor): Use
11703         frv_assemble_integer for FDPIC pointers.
11704         (frv_asm_out_destructor): Likewise.
11705         * config/frv/frv.md (ldd): Fix order of operands.  Use
11706         address_operand for input.
11707         2003-09-18  DJ Delorie  <dj@redhat.com>
11708         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11709         (unspec_got_name): Correct typo.
11710         (frv_emit_movsi): Pre-expand splittable GOTs.
11711         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11712         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11713         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11714         * config/frv/t-frv: Add -mfdpic multilibs.
11715         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11716         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11717         * config/frv/frv.c (frv_override_options): -mfdpic assumes
11718         flag_pic, default to 32-bit pics, require DWORD ops.
11719         (frv_override_options): Add W and Z constraints.
11720         (frv_expand_prologue): No pic prologue for -mfdpic.
11721         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
11722         (frv_print_operand_memory_reference): Handle GOT constants.
11723         (frv_legitimate_address_p): Allow GOT constants.
11724         (frv_legitimize_address): Handle GOT addresses too.
11725         (frv_legitimate_fdpic_operand_p): New.
11726         (frv_legitimize_fdpic_address): New.
11727         (unspec_got_name): New.
11728         (frv_output_addr_const_extra): New.
11729         (frv_expand_fdpic_call): New.
11730         (frv_fdpic_fptr_operand): New.
11731         (gpr_or_int12_operand): Handle GOT operands.
11732         (int_2word_operand): Handle GOT operands.
11733         (fdpic_operand): New.
11734         (fdpic_splittable_got_operand): New.
11735         (fdpic_got12_operand): New.
11736         (frv_emit_movsi): Handle GOT operands.
11737         (frv_assemble_integer): -mfdpic doesn't use rofixups.
11738         (frv_print_operand): Support 'g' code for GOT operands.
11739         * config/frv/frv-protos.h: Add prototypes as needed.
11740         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
11741         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
11742         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
11743         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
11744         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
11745         R_FRV_GOTOFFLO): New.
11746         (movsi_high_got, movsi_lo_sum_got): New.
11747         (*movsi_pic): Don't use this splitter for -mfdpic.
11748         (addsi3): Allow GOT references also.
11749         (call, call_value): Handle -mfdpic separately.
11750         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
11751         call_value_fdpicsi): New.
11752         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
11753         symGOTOFF2reg_i): New.
11754         * config/frv/frv.h (MASK_FDPIC): New.
11755         (TARGET_FDPIC): New.
11756         (TARGET_SWITCHES): Add -mfdpic.
11757         (FDPIC_FPTR_REGNO): New.
11758         (FDPIC_REGNO): New.
11759         (OUR_FDPIC_REG): New.
11760         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
11761         FDPIC_CALL_REGS.
11762         (REG_CLASS_NAMES): Likewise.
11763         (REG_CLASS_CONTENTS): Likewise.
11764         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
11765         (EXTRA_CONSTRAINT): Add it here.
11766         (FRV_GLOBAL_P): New.
11767         (OUTPUT_ADDR_CONST_EXTRA): New.
11768
11769 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11770
11771         * config/sparc/sparc.h: Remove commented-out definitions of
11772         TARGET_EDOM and GEN_ERRNO_RTX.
11773
11774 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11775
11776         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
11777         df_analyse with df_analyze.
11778
11779 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
11780
11781         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
11782         beginning of block.
11783
11784 2004-02-23  James E Wilson  <wilson@specifixinc.com>
11785
11786         * calls.c (precompute_arguments): Update comment.
11787
11788 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11789
11790         * et-forest.c: Replace et_occurences with et_occurrences.
11791
11792 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11793
11794         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
11795         with iv_analyze.
11796
11797 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
11798
11799         * config/i386/i386.c: Rename pni to sse3.
11800         * config/i386/i386.h: Likewise.
11801         * config/i386/i386.md: Likewise.
11802         * config/i386/pmmintrin.h: Likewise.
11803         * doc/extend.texi: Likewise.
11804         * doc/invoke.texi: Likewise.
11805
11806 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
11807             Kazu Hirata  <kazu@cs.umass.edu>
11808
11809         Remove -fwritable-strings.
11810         * c-common.c (fix_string_type): Don't check
11811         flag_writable_strings.
11812         (fix_string_type): Likewise.
11813         * c-opts.c (set_std_c89): Don't initialize
11814         flag_writable_strings.
11815         (set_std_c99): Likewise.
11816         * common.opt (fwritable-strings): Remove.
11817         * flags.h: Remove the external declaration of
11818         flag_writable_strings.
11819         * opts.c (common_handle_option) <OPT_fwritable_strings>:
11820         Remove.
11821         * toplev.c (flag_writable_strings): Remove.
11822         (f_options): Remove an entry for writable-strings.
11823         * varasm.c (const_hash_1) <STRING_CST>: Don't check
11824         flag_writable_strings.
11825         (compare_constant) <STRING_CST>: Likewise.
11826         (build_constant_desc): Likewise.
11827         * config/darwin.c (machopic_select_section): Likewise.
11828         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11829         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11830         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11831         * config/mips/mips.c (mips_select_section): Likewise.
11832         (mips_encode_section_info): Likewise.
11833         * config/pa/pa.c (pa_select_section): Likewise.
11834         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
11835         * config/v850/v850.c (v850_select_section): Likewise.
11836         * doc/invoke.texi (-fwritable-strings): Remove.
11837         (-fno-const-strings): Don't mention -fwritable-strings.
11838         * doc/trouble.texi: Don't mention -fwritable-strings.
11839
11840 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
11841
11842         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
11843
11844 2004-02-23  Dale Johannesen  <dalej@apple.com>
11845
11846         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
11847         (movdf_hardfloat64):  Ditto.
11848         (movdf_softfloat64):  Ditto.
11849
11850 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
11851         * config/rs6000/rs6000.c (function_arg): call to
11852         rs6000_mixed_function_arg for DFmode moved to allow
11853         normal DFmode incoming register assignment.
11854
11855 2004-02-23  Dale Johannesen  <dalej@apple.com>
11856
11857         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11858         (movdf_hardfloat64):  Ditto.
11859
11860 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11861
11862         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11863         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11864         copyright.
11865
11866 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11867
11868         PR c/14156
11869         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11870         to use DECL_P instead.
11871
11872         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11873         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11874
11875 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11876
11877         * Makefile.in (opts.o): Depend on target.h.
11878         * opts.c (decode_options): Use targetm.default_short_enums
11879         instead of DEFAULT_SHORT_ENUMS.
11880         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11881         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11882         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11883         * target.h (gcc_target): Add default_short_enums.
11884         * config/cris/cris.h: Remove a comment about
11885         DEFAULT_SHORT_ENUMS.
11886         * config/ip2k/ip2k.h: Likewise.
11887         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11888         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11889
11890 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11891             Falk Hueffner  <falk@debian.org>
11892
11893         PR c/14188
11894         * builtins.c (expand_builtin_va_arg): Emit an informative message
11895         if a trap is generated.
11896         * c-typeck.c (build_function_call): Likewise.
11897
11898 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11899
11900         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11901         fopen.
11902         * libgcov.c: Include sys/stat.h.
11903         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11904         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11905         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11906         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11907
11908 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11909
11910         * reorg.c: Remove comments about dead ports.
11911
11912 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11913
11914         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11915         extra host object file when targetting cygwin rather than generic
11916         object files.
11917
11918 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11919
11920         Merge from tree-ssa:
11921         2003-11-20  Richard Henderson  <rth@redhat.com>
11922
11923                 * tree-inline.c (insert_decl_map): New.
11924                 (remap_decl, remap_type, remap_block, copy_body_r,
11925                 initialize_inlined_parameters, declare_return_variable,
11926                 remap_save_expr): Use it.
11927
11928         * function.c (copy_body_r): Add mapping from id->ret_label to
11929         id->ret_label.  Revert test for ret_label.
11930
11931 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11932
11933         * genoutput.c (process_template): Strip trailing whitespace in @
11934         templates and issue a warning if there was any.
11935
11936 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11937
11938         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11939         object file when targetting cygwin.
11940         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11941         overridden by top-level Makefile.
11942
11943 2004-02-21  Roger Sayle  <roger@eyesopen.com>
11944
11945         * config/i386/i386.c (standard_80387_constant_p): Also prefer
11946         the x87's load constant instructions when optimizing for size.
11947
11948 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11949
11950         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11951         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11952         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11953         * fold-const.c: Likewise.
11954         * simplify-rtx.c: Likewise.
11955
11956 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11957
11958         * combine.c (can_combine_p): Don't ignore SETs marked with
11959         REG_EH_REGION notes.
11960         (try_combine): When attemting to fix unrecognized insns, don't
11961         split a PARALLEL that contains the original i2.
11962
11963 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11964
11965         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11966         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11967         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11968         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11969         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11970         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11971         portion of header.
11972         (__altivec_link_error_invalid_argument): Remove prototype; will use
11973         __builtin_altivec_compiletime_error("vec_*") instead.
11974         (vec_*): Fix/complete set of available operation overloads given the
11975         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11976         cv-correctness of pointer arguments; in C, always check for correct
11977         argument types before macro expansion.
11978         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11979         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11980         '-W[no-]altivec-long-deprecated' switches.
11981         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11982         '__vector', '__pixel' and '__bool' macros using
11983         '__attribute__((altivec(...)))' types.
11984         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11985         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11986         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11987         New type nodes.
11988         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11989         handling '-W[no-]altivec-long-deprecated'.
11990         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11991         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11992         altivec_expand_dst_builtin): Remove casts from integer literals.
11993         (altivec_expand_builtin): Likewise; handle expansion of new
11994         '__builtin_altivec_compiletime_error' function.
11995         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11996         types, and make them distinct from other vector types; register
11997         '__builtin_altivec_compiletime_error' function.
11998         (print_operand): For 'P', print a full target register name instead of
11999         merely its number.
12000         (rs6000_attribute_table): Add "altivec" attribute.
12001         (rs6000_handle_altivec_attribute): New function.
12002         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
12003         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
12004         maps to).
12005         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
12006         declare.
12007         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
12008
12009 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12010
12011         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
12012         check.
12013         (shift_mix4left+2): Delete redundant pattern.
12014
12015 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12016
12017         * alias.c (OUTGOING_REGNO): Don't define the default.
12018         * builtins.c (OUTGOING_REGNO): Likewise.
12019         (INCOMING_REGNO): Likewise.
12020         (apply_args_register_offset): Always use OUTGOING_REGNO.
12021         * combine.c (OUTGOING_REGNO): Likewise.
12022         * sibcall.c (OUTGOING_REGNO): Likewise.
12023         * defaults.h (INCOMING_REGNO): Provide the default.
12024         (OUTGOING_REGNO): Likewise.
12025
12026 2004-02-21  Jan Hubicka  <jh@suse.cz>
12027
12028         * params.def (max-peeled-insns, max-completely-peeled-insns,
12029         max-once-peeled-insns): Set to 400.
12030
12031 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12032
12033         PR c++/12007
12034         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
12035         are set for parameters before outputing debugging information.
12036
12037 2004-02-20  Falk Hueffner  <falk@debian.org>
12038
12039         PR target/14201
12040         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
12041         numbers.
12042
12043 2004-02-20  Per Bothner  <per@bothner.com>
12044
12045         * input.h:  Don't #include line-map.h.  It may cause link problems
12046         with undefined linemap_line_start when line-map.h is included but
12047         line-map.o is not linked, as currently happens with gengtype on
12048         compilers that don't support inline.
12049         * toplev.c:  So we do have to explicitly #include line-map.h here.
12050
12051 2004-02-20  Richard Henderson  <rth@redhat.com>
12052
12053         * doc/invoke.texi: Add -Wvariadic-macros.
12054
12055 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12056
12057         * haifa-sched.c (sched_emit_insn): Remove.
12058         * sched-int.h: Remove the corresponding prototype.
12059
12060 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12061
12062         Revert:
12063         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12064         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12065         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12066         * config/cris/cris.h: Remove a comment about
12067         DEFAULT_SHORT_ENUMS.
12068         * config/ip2k/ip2k.h: Likewise.
12069         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12070
12071 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
12072             Tom Tromey  <tromey@redhat.com>
12073
12074         * doc/install.texi: Moved --disable-libgcj and
12075         --with-system-zlib documentation to new section for
12076         Java-specific options.
12077         Added explicit Cross-Compiler-Specific Options subheading.
12078         Added section for Java-specific options.
12079
12080 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
12081
12082         * doc/install.texi (Building the Ada compiler): Remove
12083         example.
12084
12085 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12086
12087         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
12088
12089 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12090
12091         * gcc.c (process_command): Allow translation of the copyright
12092         symbol but not the rest of the copyright message.
12093         * gcov.c (print_version): Likewise.  Allow translation of the
12094         message about warranty.
12095
12096 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
12097
12098         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
12099         predicate.
12100         ("*andsi_clear"): Tweak constraints to not match postincrement.
12101         Adjust the predicate to exclude a volatile memory reference.
12102         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
12103         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
12104
12105 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
12106
12107         * move-if-change: Remove.
12108         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
12109         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
12110         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
12111         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
12112         (s-gtyp-gen, s-iov): Use the top level move-if-change.
12113         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
12114
12115 2004-02-19  James E Wilson  <wilson@specifixinc.com>
12116
12117         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
12118         for operand2.  Add condition that requires register_operand operand2
12119         before reload.
12120
12121 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
12122             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12123
12124         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
12125         * config/mips/mips.md: Expand comment above unaligned loads and stores.
12126
12127 2004-02-19  Richard Henderson  <rth@redhat.com>
12128
12129         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
12130         * tree.c (build0, build1, build2, build3, build4): Split out from...
12131         (build): ... here.  Call them.
12132         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
12133
12134         * convert.c (convert_to_integer): Remove extra build argument.
12135         * tree-inline.c (expand_call_inline): Likewise.
12136
12137 2004-02-19  Richard Henderson  <rth@redhat.com>
12138
12139         * c-opts.c (warn_variadic_macros): New.
12140         (c_common_handle_option): Set it.
12141         (sanitize_cpp_opts): Copy it to cpp_opts.
12142         * c.opt (Wvariadic-macros): New.
12143         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
12144         * cppinit.c (cpp_create_reader): Initialize it.
12145         * cppmacro.c (parse_params): Check it.
12146
12147 2004-02-19  David Daney <ddaney@avtrex.com>
12148
12149         PR preprocessor/14198
12150         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
12151         builtin_assert ("machine=mips")
12152
12153 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12154
12155         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12156         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12157         * config/cris/cris.h: Remove a comment about
12158         DEFAULT_SHORT_ENUMS.
12159         * config/ip2k/ip2k.h: Likewise.
12160         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12161
12162 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12163
12164         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
12165         when passing single SFmode quantities in general registers,
12166         put them in the high half.
12167
12168 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12169
12170         * doc/md.texi (Standard Names): Document additional dependency on
12171         fix pattern.
12172
12173         * optabs.c (ftruncify): Remove.
12174         (expand_fix): Manually inline ftruncify above.
12175         (can_fix_p): Add FIXME note.
12176
12177 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12178
12179         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
12180         spe_fixuns_truncsfsi2.
12181
12182         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
12183         fixuns_truncsfsi2.
12184
12185 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
12186
12187         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12188         * testsuite/gcc.dg/20040219-1.c: New test.
12189
12190 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
12191
12192         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
12193         "*subsf3_cconly"): Subtraction is not commutative.
12194
12195 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12196
12197         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
12198         (sdbout_symbol): If called before sdbout_init, queue DECL for
12199         later and return.
12200         (sdbout_init): Set sdbout_initialized true, process decls
12201         queued earlier by sdbout_symbol.
12202         (sdbout_finish): Use size_t for index variable.
12203
12204 2004-02-19  Jeff Law  <law@redhat.com>
12205
12206         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
12207         for unordered comparison codes.
12208
12209 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
12210
12211         * reload1.c (reload): Correct comment.
12212         (scan_paradoxical_subregs): Remove #if 0 and old comment.
12213         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
12214         register variables are not used by reload.
12215
12216 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
12217
12218         PR target/14209
12219         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
12220         constraints to not match postincrement.  Adjust the predicate to
12221         exclude a volatile memory reference.
12222
12223 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12224
12225         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
12226
12227 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12228
12229         * hooks.c (hook_void_tree_int): Remove.
12230         (hook_void_constcharptr): Likewise.
12231         (hook_int_void_0): Likewise.
12232         * hooks.h: Remove the prototypes for the above three
12233         functions.
12234         * targhooks.c (hook_bool_machine_mode_true): Remove.
12235         * targhooks.h: Remove the prototype for
12236         hook_bool_machine_mode_true.
12237
12238 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12239
12240         * emit-rtl.c (subreg_realpart_p): Remove.
12241         (reorder_insns_with_line_notes): Likewise.
12242         (end_full_sequence): Likewise.
12243         * rtl.h: Remove the prototype for the above functions.
12244
12245 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12246
12247         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
12248         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12249         config/iq2000/iq2000.h, config/m32r/m32r.h,
12250         config/pdp11/pdp11.h, config/sparc/sparc.h,
12251         config/xtensa/xtensa.h: Remove commented-out or useless
12252         definitions of CASE_VECTOR_PC_RELATIVE.
12253
12254 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12255
12256         * loop.c (all_sets_invariant_p): Remove.
12257
12258 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
12259
12260         PR target/12916
12261         * config/sparc/sparc.h (NPARM_REGS): Delete.
12262         (BASE_RETURN_VALUE_REG): Likewise.
12263         (BASE_OUTGOING_VALUE_REG): Likewise.
12264         (BASE_PASSING_ARG_REG): Likewise.
12265         (BASE_INCOMING_ARG_REG): Likewise.
12266         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
12267         TARGET_ARCH64, not TARGET_V9.
12268         (function_arg_slotno): Dispatch based on the mode class.
12269         Handle vector modes like floating-point modes.
12270         (function_arg_record_value_1): Handle vector types like
12271         floating-point types.
12272         (function_arg_record_value_2): Likewise.
12273         Calculate regno after mode transformation.
12274         (function_arg): Handle vector modes like floating-point modes.
12275         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
12276         If ARCH64, do not recheck alignment.
12277         (function_arg_pass_by_reference): Reorder the conditions.
12278         (sparc_return_in_memory): Move after function_arg_padding.
12279         Implement calling conventions for vector modes.
12280         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
12281         (function_value): Move scope of 'regbase'.
12282         Implement calling conventions for vector modes.
12283         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
12284         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
12285         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
12286         the argument is passed by reference.
12287         (sparc_type_code): Handle vector types.
12288
12289 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
12290
12291         * function.c (assign_parms): When building decl_rtl for
12292         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
12293
12294 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
12295
12296         * expr.c (is_aligning_offset): Check if we are aligning the
12297         expressions's address over BIGGEST_ALIGNMENT in bytes, not
12298         in bits.
12299
12300 2003-02-18  Matt Austern  <austern@apple.com>
12301
12302         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
12303         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
12304         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
12305         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
12306         spec string.
12307         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
12308
12309 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
12310
12311         * dwarf2out.c (loclabel_num): Move outside #ifdef
12312         DWARF2_DEBUGGING_INFO and mark with GTY(()).
12313         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
12314         Mark with GTY(()).
12315         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12316         Allocate memory with ggc_alloc.  No need to copy anything.
12317         (ia64_hpux_file_end): Update to match.
12318
12319 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12320
12321         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12322         by default.
12323
12324 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12325
12326         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12327         ("divmodtisi3"): Likewise.
12328         ("udivmoddi4", "udivmodtidi3"): Likewise.
12329         ("divmodsi4", "divmoddisi3"): Likewise.
12330         ("udivmodsi4", "udivmoddisi3"): Likewise.
12331         ("udivsi3", "umodsi3"): Likewise.
12332
12333 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12334
12335         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12336         placeholder insn when chunkifying the pool.
12337
12338 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12339
12340         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12341         generating PIC code.
12342
12343 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12344
12345         * config/h8300/h8300-protos.h: Add a prototype for
12346         h8300_expand_branch.
12347         * config/h8300/h8300.c (h8300_expand_branch): New.
12348         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12349         bgtu, beq, bne): Call h8300_expand_branch().
12350
12351 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12352
12353         * config/h8300/h8300-protos.h: Add prototypes for
12354         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12355         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12356         (h8300_hard_regno_mode_ok): Likewise.
12357         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12358         h8300_hard_regno_nregs().
12359         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12360
12361 2004-02-18  Per Bothner  <per@bothner.com>
12362
12363         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
12364         partly reverts my 2003-10-01 change, because we're back to logically
12365         including <command line> inside the main line.
12366         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
12367         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
12368         Fixes PR preprocessor/14103.
12369
12370         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12371         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12372         (cpp_push_include):  Don't need to increment pfile's line field.
12373         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12374
12375         * c-ppoutput.c (print struct):  New first_time field.
12376         (init_pp_output):  Set print.first_time.
12377         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12378         which is set also for (say) <command line>.  Clear print.first_time.
12379
12380         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12381         does not match the code, so fix both.
12382         (should_stack_file):  Inline include_pch_p function.
12383         (include_pch_p):  Remove pointless function.
12384
12385         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12386
12387 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12388
12389         * config/h8300/h8300.md (four define_peephole2's): Use
12390         h8300_regs_ok_for_stm().
12391
12392 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12393
12394         * config/h8300/h8300-protos.h: Update the prototype for
12395         expand_a_rotate().
12396         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12397         argument.
12398         * config/h8300/h8300.md: Update all callers.
12399
12400 2004-02-18  Jan Hubicka  <jh@suse.cz>
12401
12402         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12403         floats.
12404         (simplify_binary_operation): Deal with logicals on floats.
12405
12406         * i386.md (SSE fabs splitters): Emit new patterns.
12407         (SSE cmov splitters): Likewise.
12408         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12409         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12410         subregs.
12411         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12412         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12413
12414 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12415
12416         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12417         by hand.
12418         (output_a_rotate): Tweak a comment.
12419         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12420         (*rotlhi3_1): Change to rotlhi3_1.
12421         (*rotlsi3_1): Change to rotlsi3_1.
12422
12423 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12424
12425         PR target/13866
12426         * arm.c (load_multiple_operation): Don't insist that the source reg
12427         of a post-increment component is the same as the destination.
12428         (store_multiple_operation): Likewise.
12429
12430 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12431
12432         * config/h8300/h8300.md: Move movsf patterns into one section
12433         of the file.
12434
12435 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12436
12437         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12438         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12439         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12440         config/mips/linux64.h, config/pa/pa-64.h,
12441         config/rs6000/aix51.h, config/rs6000/aix52.h,
12442         config/rs6000/spe.md, config/sparc/linux.h,
12443         config/sparc/linux64.h: Update copyright.
12444
12445 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12446
12447         * config/h8300/h8300.md: Move push patterns into one
12448         section of the file.
12449
12450 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12451
12452         PR c++/11326
12453         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12454         fntype.
12455
12456 2004-02-18  Paul Brook  <paul@codesourcery.com>
12457
12458         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12459
12460 2004-02-18  Paul Brook  <paul@codesourcery.com>
12461
12462         PR debug/12934
12463         * dwarf2out.c (loc_descriptor_from_tree): Handle
12464         EXPR_WITH_FILE_LOCATION.
12465
12466 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12467
12468         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12469         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12470         trailing whitespace from instructions.
12471
12472 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12473
12474         * configure.ac: When generating auto-build.h, pass
12475         --enable-languages to the sub-configure.
12476         Put quotes around ${program_transform_name} when generating
12477         name of as, ld, nm, objdump.
12478         * configure: Regenerate.
12479
12480 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12481
12482         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12483         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12484         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12485         (s-preds, s-iov): Do not depend on move-if-change.
12486
12487 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12488
12489         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12490         (insert_save): Likewise.
12491
12492 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12493
12494         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12495         warning.
12496
12497 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12498
12499         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12500         *one_cmplsi2_h8300.
12501         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12502
12503 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12504
12505         * config/h8300/h8300-protos.h: Update the prototype of
12506         fix_bit_operand().
12507         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12508         argument "what".
12509         * config/h8300/h8300.md: Update all callers.
12510
12511 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12512
12513         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12514         the last argument to "code" from "type".
12515
12516 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12517
12518         * config/h8300/h8300.c: Remove an extern declaration of
12519         rtx_equal_function_value_matters.
12520
12521 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12522
12523         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12524         by hand.
12525         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12526         (*iorqi3_1): Change to iorqi3_1.
12527         (*xorqi3_1): Change to xorqi3_1.
12528
12529 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12530
12531         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12532         typos.
12533
12534 2004-02-17  Jan Hubicka  <jh@suse.cz>
12535
12536         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12537
12538 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12539
12540         PR optimization/14119
12541         * combine.c (try_combine): When attemting to fix unrecognized insns,
12542         don't delete SETs marked with REG_EH_REGION notes.
12543
12544 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12545
12546         * combine.c (simplify_if_then_else): Do not replace
12547         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12548         modes differ.
12549
12550 2004-02017  Steven Bosscher  <stevenb@suse.de>
12551
12552         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12553         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12554         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12555         * ada/utils.c: Likewise.
12556         * cp/decl.c: Likewise.
12557         * f/com.c: Likewise.
12558         * java/class.c: Likewise.
12559
12560 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12561
12562         * config/h8300/h8300.md: Fix comment typos.
12563
12564 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12565
12566         * config/mips/t-iris6gld: Renamed to ...
12567         * config/mips/t-irix-gld: ... this.
12568         * config.gcc (mips-sgi-irix6*): Reflect this
12569         (mips-sgi-irix5*): Use it with GNU ld.
12570
12571         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12572         to ...
12573         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12574         * config/mips/t-irix-gld: Reflect this.
12575         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12576
12577         * config/mips/iris5gld.h: New file.
12578         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12579         Only use collect2 without gas.
12580
12581         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12582         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12583         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12584         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12585
12586         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12587         * config/mips/iris5.h: ... here.
12588
12589         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12590         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12591         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12592
12593         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12594         using irix_startfile_spec, irix_endfile_spec.
12595
12596 2004-02-16  Gunther Nikl  <gni@gecko.de>
12597
12598         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12599
12600 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12601
12602         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12603         insns by hand.
12604
12605 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12606
12607         * cfghooks.c (split_edge): Speed up updating of dominators.
12608
12609 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12610
12611         PR c++/11326
12612         * c-common.c (flag_abi_version): Remove.
12613         * c-common.h (flag_abi_version): Likewise.
12614         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12615         * c.opt (fabi-version): Remove.
12616         * calls.c (expand_call): Always pass a function type to
12617         struct_value_rtx.  Use convert_memory_address.
12618         * common.opt (fabi-version): Add it.
12619         * flags.h (flag_abi_version): Likewise.
12620         (abi_version_at_least): New macro.
12621         * opts.c (common_handle_option): Add OPT_fabi_version.
12622         * toplev.c (flag_abi_version): Define it.
12623         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12624         New function.
12625         (ia64_output_mi_thunk): Use it.
12626         (ia64_struct_value_rtx): Likewise.
12627
12628 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12629
12630         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12631         Don't generate insns by hand.
12632
12633 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12634
12635         PR c++/14178
12636         * doc/invoke.texi (fabi-version): The default is 2 now.
12637
12638 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12639
12640         * loop-iv.c: New file.
12641         * Makefile.in (loop-iv.o): New.
12642         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12643         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12644         num_loop_branches): New functions.
12645         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12646         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12647         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12648         get_simple_loop_desc, free_simple_loop_desc): Declare.
12649         (simple_loop_desc): New inline function.
12650         (struct rtx_iv, struct niter_desc): New.
12651         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12652         * expr.c (force_operand): Handle subregs of expressions created by
12653         loop unroller.
12654         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12655         parts of the initialization to toplev.c
12656         * loop-unroll.c (loop_exit_at_end_p): New.
12657         (unroll_and_peel_loops): Call iv_analysis_done.
12658         (decide_peel_once_rolling, decide_peel_completely,
12659         decide_unroll_stupid, decide_unroll_constant_iterations,
12660         decide_unroll_runtime_iterations, decide_peel_simple,
12661         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12662         unroll_loop_runtime_iterations): Use new simple loop analysis.
12663         * loop-unswitch.c (compare_and_jump_seq): New.
12664         (may_unswitch_on_p): Renamed to ...
12665         (may_unswitch_on): Use new iv analysis.
12666         (reversed_condition): Export.
12667         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12668         * predict.c (estimate_probability): Use new simple loop analysis.
12669         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12670         canon_condition, simplify_using_condition): Declare.
12671         * stor-layout.c (get_mode_bounds): New.
12672         * toplev.c (rest_of_handle_loop2): Some parts of
12673         initialization/finalization moved here from loop-init.c.
12674
12675 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12676
12677         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12678         pointer.
12679         (CALL_USED_REGISTERS): Likewise.
12680         (REG_ALLOC_ORDER): Likewise.
12681         (REG_CLASS) <GENERAL_REGS>: Likewise.
12682
12683 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12684
12685         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12686         in associative operators.
12687         * rtlanal.c (commutative_operand_precedence): Create some new
12688         variables.  Prefer a commutative operand on the left, then
12689         binary expressions, then NEG and NOT.
12690
12691 2004-02-16  Matthias Klose  <doko@debian.org>
12692
12693         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12694         in terms of SHLIB_SOVERSION.
12695         * config/m68k/t-slibgcc-elf-ver: New file.
12696         * config/pa/t-slibgcc-elf-ver: New file.
12697         * config.gcc (m68k-linux, parisc-linux): Use them when not
12698         sjlj exceptions are not configured.
12699
12700 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12701
12702         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12703
12704 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
12705
12706         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12707
12708 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
12709
12710         * doc/sourcebuild.texi: Mention backends.html.
12711
12712 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12713
12714         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12715         line-map.c, line-map.h, var-tracking.c: Fix comment
12716         formatting.
12717
12718 2004-02-16  Richard Henderson  <rth@redhat.com>
12719
12720         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
12721
12722         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
12723
12724 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12725
12726         * config/h8300/h8300.md: Remove unnecessary parallels from
12727         all define_insn and define_split patterns.
12728
12729 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12730
12731         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
12732         "clobber").
12733
12734 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
12735
12736         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
12737         '%#'.
12738
12739 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12740
12741         * config/ia64/ia64.c, config/mips/mips.c,
12742         config/mmix/mmix-modes.def: Fix comment typos.
12743
12744 2004-02-15  Roger Sayle  <roger@eyesopen.com>
12745
12746         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
12747         (get_directive_line): Remove unused function prototype.
12748
12749 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12750
12751         * tree-inline.c (copy_body_r): Do not replace ret_label.
12752
12753 2004-02-14  Jan Hubicka  <jh@suse.cz>
12754
12755         * i386.c (x86_four_jump_limit): New variable.
12756         (k8_avoid_jump_misspredicts): Rename to ...
12757         (ix86_avoid_jump_misspredicts): .. this one.
12758         (ix86_pad_returns): Break out from ...
12759         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
12760         to.
12761         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
12762
12763 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12764
12765         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
12766         PARALLEL is NULL.
12767
12768 2004-02-14  Per Bothner  <per@bothner.com>
12769
12770         * fix-header.c (line_table):  Move local variable in main to global.
12771         * scan.h (line_table):  Use it.
12772         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
12773         line (recently renamed to src_loc) before calling recognized_function.
12774
12775 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
12776
12777         * Makefile.in: Fix comment typos.
12778
12779 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
12780
12781         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
12782         for start_value when it is directly moved into reg, and factorize
12783         the retrieval of GET_MODE (reg).
12784
12785 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12786
12787         * config/mips/mips-protos.h (mips_load_got_page): Delete.
12788         (mips_load_got_global): Delete.
12789         (mips_gotoff_page): Declare.
12790         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
12791         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
12792         UNSPEC_LOAD_GOT pattern rather than a MEM.
12793         (*load_got[sd]i): New patterns.
12794         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
12795         (mips_load_got_page, mips_load_got_global): Delete.
12796         (mips_gotoff_page): New function.
12797         (override_options): Don't initialize mips_got_alias_set.
12798
12799 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12800
12801         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12802         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12803         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12804         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12805         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12806         * config/mips/mips.c: Fix some overly-long lines.
12807         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12808         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12809
12810 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12811
12812         * configure.ac: Search for as, ld below libexec/gcc.
12813         * configure: Regenerate.
12814
12815 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12816
12817         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12818         __builtin_arm_setwcx ().
12819         * config/arm/arm.c (arm_expand_builtin): Generate operands
12820         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12821
12822 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12823
12824         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12825         and "wmuluh" to "wmulsm" and "wmulum", respectively.
12826         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12827         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12828         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12829         (_mm_mulhi_pu16): Likewise.
12830
12831 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
12832
12833         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
12834         DECL_NAME != 0 before dereferencing.
12835
12836 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
12837
12838         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
12839         (s390_output_addr_const_extra): Declare.
12840         (s390_output_pool_entry): Remove FILE * argument.
12841         * config/s390/s390.c (s390_output_symbolic_const): Remove.
12842         (s390_output_addr_const_extra): New function.
12843         (print_operand_address): Call output_addr_const instead of
12844         s390_output_symbolic_const.
12845         (print_operand): Likewise.
12846         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
12847         Remove FILE * argument.
12848         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12849         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12850         call.
12851
12852 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12853
12854         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12855         (struct edge, struct vertex, struct graph): New.
12856         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12857         free_graph): New functions.
12858
12859 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12860
12861         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12862         Use ".set macro" to avoid warnings about multi-instruction
12863         macros, since they're intentional.
12864
12865 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12866
12867         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12868         comment about STANDARD_EXEC_PREFIX.
12869
12870         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12871         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12872         for installing .1 manpages.  Add rules for installing cpp
12873         and gcov manpages under their installed names.
12874
12875 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12876
12877         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12878         host, but try LD_FOR_TARGET first.
12879         * configure: Rebuilt.
12880
12881 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12882
12883         * dbxout.c: Move declaration of dbxout_type_decl outside
12884         #ifdef DBX_DEBUGGING_INFO.
12885         * c-parse.in: Don't give the asmdef production a type.
12886
12887 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12888
12889         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12890         (debug_nothing_tree_int): Prototype.
12891         (dwarf_debug_hooks): Delete, unused.
12892         * debug.c (do_nothing_debug_hooks): Update.
12893         (debug_nothing_tree_int): New function.
12894         * langhooks.h (struct lang_hooks_for_decls):
12895         Remove builtin_type_decls field.
12896         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12897         (LANG_HOOKS_DECLS): Update.
12898         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12899         Use debug_hooks->type_decl.
12900         * dbxout.c (preinit_symbols): New static.
12901         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12902         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12903         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12904         for symbols to output.
12905         (dbxout_type_decl): New function.
12906         (dbxout_symbol): If called before dbxout_init has run, queue
12907         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12908         to TYPE_DECLs before emitting them.
12909         * xcoffout.c (assign_type_number): Delete.
12910         (xcoff_type_numbers): New static table.
12911         (xcoff_assign_fundamental_type_number): New function.
12912         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12913         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12914         * sdbout.c: Include varray.h.
12915         (deferred_global_decls): New static.
12916         (sdb_debug_hooks): Update.
12917         (sdbout_global_decl): If we can't emit something right now,
12918         remember it in deferred_global_decls.
12919         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12920         (sdbout_init): Initialize deferred_global_decls.
12921         * Makefile.in: Update dependencies of sdbout.o.
12922         * dwarf2out.c (dwarf2out_type_decl): New function.
12923         (dwarf2_debug_hooks): Update.
12924         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12925         * c-decl.c (getdecls): Just return 0.
12926         (check_for_loop_decls): Don't use getdecls.
12927         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12928         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12929
12930 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12931
12932         * config/s390/s390.c (s390_sched_reorder2): Remove.
12933         (TARGET_SCHED_REORDER2): Do not redefine.
12934
12935 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12936
12937         * c-parse.in (maybe_type_qual): Delete.
12938         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12939         (asm_argument): New grammar rules.
12940         (extdef_1): Use asmdef.
12941         (maybeasm): Move down with other asm rules; use simple_asm_expr.
12942         (xexpr): Move up with other expression rules.
12943         (stmt): Use asm_stmt.
12944
12945         * c-typeck.c (build_asm_expr): New function - body mostly
12946         pulled from build_asm_stmt.
12947         (build_asm_stmt): Just handle tacking on the volatile qualifier.
12948         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12949
12950 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12951
12952         PR bootstrap/13617
12953         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12954         (mips_declare_object): Make variadic.
12955         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12956         mips_output_aligned_decl_common.
12957         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12958         (mips_declare_object): Make variadic.
12959
12960 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12961
12962         * function.c (update_epilogue_consts): Teach about binary operations.
12963
12964         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12965         previous MEM_VOLATILE in REF.
12966         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12967         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12968
12969 2004-02-12  Gunther Nikl  <gni@gecko.de>
12970
12971         * config.gcc: Restore support for m68k-openbsd.
12972
12973 2004-02-12  Jan Hubicka  <jh@suse.cz>
12974
12975         * tree-optimize.c (tree_rest_of_compilation): Do not release
12976         DECL_ARGUMENTS.
12977
12978 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12979
12980         * doc/install.texi: Fix the spelling of "explicitly".
12981
12982 2004-02-11  Eric Christopher  <echristo@redhat.com>
12983
12984         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12985         duplicate argument structure of cpp_interpret_string.
12986         * cpphash.h: Move prototype...
12987         * cpplib.h: Here.
12988         * cpplib.c: Fix calls to match new function signature.
12989
12990 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12991
12992         PR c/456
12993         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12994         constant expressions at all outside C99 mode if pedantic.
12995
12996 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12997
12998         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12999         (log10_optab, log2_optab): Define corresponding macros.
13000         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
13001         * genopinit.c (optabs): Implement log10_optab and log2_optab
13002         using log10?f2 and log2?f2 patterns.
13003         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
13004         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
13005         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
13006         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
13007
13008         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
13009         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
13010         log2, log2f and log2l built-ins as inline x87 intrinsics.
13011
13012 2004-02-11  Richard Henderson  <rth@redhat.com>
13013
13014         PR target/1532
13015         * flow.c (insn_dead_p): A clobber of a dead hard register is a
13016         dead insn after reload.
13017
13018 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
13019
13020         * tree.h (frame_base_decl): Add GTY marker.
13021         * var-tracking.c (frame_base_decl): Likewise.
13022
13023 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
13024
13025         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
13026         incorrect, hunk.
13027         (add_location_or_const_value_attribute): Use text_section_label,
13028         not TEXT_SECTION_NAME.
13029
13030 2004-02-11  Per Bothner  <per@bothner.com>
13031
13032         Represent column numbers using line-map's source_location.
13033         The "next available source_location" is now managed internally by
13034         line-maps.c rather than by clients.
13035         * line-map.h (struct line_map):  New field column_bits.
13036         <from_line>:  Rename field to start_location.
13037         (struct line_maps):  New fields highest_location and max_column_hint.
13038         (linemap_check_files_exited):  New declaration.
13039         (linemap_line_start):  New declaration.
13040         (linemap_add):  Remove from_line parameter; use highest_location field.
13041         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
13042         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
13043         (CURRENT_LINE_MAP):  Remove macro.
13044         (linemap_position_for_column):  New inline function.
13045         * line-map.c (linemap_init):  Clear new fields.
13046         (linemap_check_files_exited):  New function, extracted from ...
13047         (linemap_free):  Use linemap_check_files_exited.
13048         (linemap_add):  Remove from_line parameter.  Various updates.
13049         (linemap_line_start):  New function.
13050         (linemap_lookeup):  Update for new field names.
13051         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
13052         linemap_position_for_column may unpredictably change the current map,
13053         it is cleaner and simpler for us to not cache it in cpp_reader.
13054         (struct cpp_buffer):  New sysp field.
13055         Changed warned_cplusplus_comments and from_stage3 to bitfields.
13056         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
13057         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
13058         current map using linemap_lookup.
13059         (do_linemarker):  Also set buffer's sysp field.
13060         (destringize_and_run):  No longer need to decrement current line.
13061         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
13062         (search_path_head, open_file_failed):  Use buffer's sysp.
13063         (cpp_make_system_header):  Get current map using linemap_lookup.
13064         Also set buffer's sysp flag.
13065         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
13066         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
13067         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
13068         (struct cpp_reader):  ... and adding saved_line_base field.
13069         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
13070         Update accordingly.  Don't adjust line.
13071         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
13072         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
13073         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
13074         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
13075         * cpplex.c (_cpp_lex_direct):  Likewise.
13076         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
13077         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
13078         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
13079         Remove col field as it is now subsumed by src_loc.
13080         * cpperror.c:  Update various field, parameter, and macro names.
13081         (print_location):  If col==0, try SOURCE_COLUMN of line.
13082         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
13083         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
13084         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
13085         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
13086         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
13087         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
13088         (_cpp_lex_direct):  Use linemap_position_for_column.
13089         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
13090         parameter.  Instead get it from the line_table global.  Adjust callers.
13091         (print):  Remove map field.  Replace line field to src_line.
13092         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
13093         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
13094         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
13095         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
13096         * cpptrad.c (copy_comment):  Rename variable.
13097         * c-lex.c (map):  Remove static variable, for same reason we removed
13098         cpp_reader's map field.
13099         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
13100         to call linemap_lookup.
13101         (cb_line_change):  Token's line field replaced by src_loc.
13102         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
13103         Don't save new_map.
13104
13105         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
13106         source_location.
13107
13108 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13109
13110         * config/rs6000/altivec.md (*movv4si_internal): At least one
13111         operand must be register_operand.
13112         (*movv8hi_internal1): Likewise.
13113         (*movv16qi_internal1): Likewise.
13114         (*movv4sf_internal1): Likewise.
13115
13116 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
13117
13118         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
13119         operand.
13120         (movv4hi_internal): Same.
13121         (movv2sf_internal): Same.
13122         (movv1di_internal): Same.
13123
13124 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
13125
13126         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
13127         TARGET_OLDABI consistently.
13128         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
13129         mips_va_arg,override_options,compute_frame_size,
13130         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
13131         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
13132         and TARGET_OLDABI consistently.
13133         * config/mips/mips.md (exception_receiver): Likewise.
13134         * config/mips/linux64.h: Likewise.
13135
13136 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13137
13138         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
13139         Set AltiVec ABI and vrsave as default for ppc64 linux.
13140         (init_cumulative_args): Post error, if try to return
13141         value in AltiVec register without enable AltiVec.
13142         (function_arg_advance): Ditto for passing arguments.
13143
13144 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
13145
13146         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
13147         a label before updating its usage count.
13148
13149 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
13150
13151         * doc/install.texi: Remove extra cd.
13152
13153 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
13154
13155         * c-common.c (vector_size_helper): Remove; call
13156         reconstruct_complex_type() instead.
13157         * tree.c (reconstruct_complex_type): New function
13158         (formerly vector_size_helper() in c-common.c).
13159         (make_vector): Make externally visible.
13160         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
13161
13162 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13163
13164         * config/h8300/h8300-protos.h: Add a prototype for
13165         h8300_regs_ok_for_stm.
13166         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
13167         * config/h8300/h8300.md (stm_h8300s_2_advanced,
13168         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
13169         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
13170         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
13171         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
13172         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
13173         ldm_h8300s_4_normal, ldm_h8300s_4): Use
13174         h8300_regs_ok_for_stm().
13175
13176 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
13177
13178         PR c/14088
13179         * real.c (real_from_string): Look for 'X' as well as 'x' in
13180         hexfloat strings.
13181
13182 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13183
13184         * config/h8300/h8300.md: Remove an incorrect comment about
13185         peephole2.  Add comments.
13186
13187 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
13188
13189         PR/14058
13190         * emit-rtl.c (set_decl_incoming_rtl): New.
13191         * tree.h (set_decl_incoming_rtl): New.
13192         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
13193         DECL_INCOMING_RTL.
13194         * ada/misc.c (adjust_decl_rtl): Likewise.
13195
13196 2004-02-10  Per Bothner  <per@bothner.com>
13197
13198         * c-opts.c (c_common_post_options):   Don't emit working directory
13199         in cpp output if -P was specified.
13200
13201 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13202
13203         PR c/14092
13204         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
13205         negate_expr back to the original type.
13206
13207 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
13208
13209         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
13210         bump retaddr here.
13211
13212 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13213
13214         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
13215         gen_lowpart_SUBREG): Move under the file in which they
13216         are actually declared.
13217
13218 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
13219
13220         * doc/sourcebuild.texi: Add libada documentation.
13221
13222         * doc/install.texi: Update documentation on Ada build, now
13223         that the GNAT lib and tools are built automatically.
13224
13225 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
13226
13227         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
13228         && TARGET_IRIX.
13229
13230 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
13231
13232         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
13233         boundaries outside build_component_ref() call (a macro in ObjC++).
13234
13235 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
13236
13237         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
13238         (init_cumulative_args): Likewise.
13239         (a7_overlap_mentioned_p): Delete prototype.
13240         * config/xtensa/xtensa.c (struct machine_function): Replace
13241         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
13242         Add set_frame_ptr_insn field.
13243         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
13244         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
13245         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
13246         at the function entry and replace the operand with the pseudo.
13247         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
13248         argument and record this flag in CUMULATIVE_ARGS.
13249         (function_arg): Remove result_mode and special-case code to handle
13250         arguments in a7.  Instead, set need_a7_copy flag when there is an
13251         incoming argument in a7.
13252         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
13253         and use the value recorded in cfun->machine->set_frame_ptr_insn.
13254         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
13255         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
13256         special-case code.
13257         (a7_overlap_mentioned_p): Delete.
13258         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
13259         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
13260         arguments to init_cumulative_args and pass "incoming" flag instead.
13261         (BLOCK_REG_PADDING): Delete.
13262         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
13263         checks for reload_in_progress and reload_completed.  Update calls to
13264         xtensa_copy_incoming_a7.
13265         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
13266         to call xtensa_copy_incoming_a7.
13267
13268 2004-02-09  DJ Delorie  <dj@redhat.com>
13269
13270         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
13271         longer modify standard_exec_prefix, standard_bindir_prefix, or
13272         standard_startfile_prefix.
13273
13274 2004-02-09  James E Wilson  <wilson@specifixinc.com>
13275
13276         PR c++/11295
13277         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
13278         to expand_expr_real call, and pass in alt_rtl as last argument.
13279
13280         PR libstdc++/5625
13281         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
13282         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
13283         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
13284         * except.c (expand_builtin_extend_pointer): New.
13285         * except.h (expand_builtin_extend_pointer): Declare.
13286
13287 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
13288
13289         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
13290         unaligned loads and stores.
13291
13292 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13293
13294         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
13295         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
13296
13297         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
13298         * config/mips/iris5.h: ... here.
13299         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
13300
13301         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
13302         * config/mips/iris5.h: ... here.
13303
13304 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13305
13306         * configure.ac: Remove default executable files before AC_PROG_CC.
13307         * configure: Regenerate.
13308
13309 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
13310
13311         PR target/13721
13312         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
13313         print a operand other than a register.
13314
13315 2004-02-09  Roger Sayle  <roger@eyesopen.com>
13316
13317         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13318         tree code rather than call fold_convert, which doesn't specify a
13319         default floating point to integer conversion.
13320
13321 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
13322
13323         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13324         code to support SGS assembler.  Reformat adjacent code where possible.
13325         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13326         definition.
13327         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13328         for '%#'.
13329         * config/m68k/linux.h, config/m68k/m68k.c,
13330         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13331         macros and asm_printf() format strings.
13332         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13333         * config/m68k/linux.h: Update copyright.
13334         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13335
13336 2004-02-08  Andreas Schwab  <schwab@suse.de>
13337             Bernardo Innocenti  <bernie@develer.com>
13338
13339         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13340         REGISTER_PREFIX.
13341         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13342         frame pointer register, overridable by OS targets.
13343         * (M68K_REGNAME): Macro to obtain register name for asm output,
13344         eventually replacing %a6 with M68K_FP_REG_NAME.
13345         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13346         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13347         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13348         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13349         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13350
13351 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13352
13353         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13354         hook_rtx_tree_int_null.
13355         * targhooks.c (default_struct_value_rtx): Remove.
13356         * targhooks.h: Remove the prototype for
13357         default_struct_value_rtx.
13358         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13359         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13360         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13361         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13362         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13363         config/rs6000/rs6000.c, config/s390/s390.c,
13364         config/stormy16/stormy16.c, config/v850/v850.c,
13365         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13366         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13367
13368 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13369
13370         * README.Portability: Change "ISO C89" to "ISO C90".
13371         * c-parse.in (primary, initelt): Likewise.
13372
13373 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13374
13375         * real.c (encode_ibm_extended): Normalize the input value before
13376         converting it to a double.  Handle the case where a normal value
13377         rounds to infinity.
13378
13379 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13380
13381         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13382         warning.
13383         * cse.c (preferrable): Change to preferable. Update all of its
13384         callers.
13385         * genautomata.c (ainsn): Change
13386         first_ainsn_with_given_equialence_num to
13387         first_ainsn_with_given_equivalence_num.  Update all of its
13388         references.
13389
13390 2004-02-08  Jan Hubicka  <jh@suse.cz>
13391
13392         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13393
13394 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13395
13396         * function.c (assign_parms): Fix formatting.
13397
13398 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13399
13400         * default.h (PROMOTE_PROTOTYPES): Remove.
13401         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13402         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13403         EXPAND_BUILTIN_SAVEREGS): Poison.
13404         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13405         hook_bool_tree_false.
13406         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13407         * target.h: Replace SETUP_INCOMING_VARARGS with
13408         targetm.calls.setup_incoming_varargs().
13409         * targhooks.c (default_promote_function_return): Remove.
13410         (default_promote_prototypes): Likewise.
13411         (default_struct_value_rtx): Always abort().
13412         (default_expand_builtin_saveregs): Always print an error
13413         message.
13414         (default_setup_incoming_varargs): Do nothing.
13415         (default_pretend_outgoing_varargs_named): Don't depend on
13416         SETUP_INCOMING_VARARGS.
13417         * targhooks.h: Remove the prototype for
13418         default_promote_function_return and
13419         default_promote_prototypes.
13420
13421 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13422
13423         * system.h (SHARED_SECTION_ASM_OP): Poison.
13424         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13425         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13426
13427 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13428
13429         Bug 13856
13430         * c-decl.c (diagnose_mismatched_decls): Only give special
13431         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13432         is also true.
13433         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13434         DECL_FUNCTION_CODE when defining a built-in function.
13435         Don't update DECL_ESTIMATED_INSNS.
13436         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13437         FUNCTION_DECLs.
13438         * tree.h: Delete DECL_ESTIMATED_INSNS.
13439         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13440         (expand_call_inline, optimize_inline_calls): Don't update
13441         DECL_ESTIMATED_INSNS nor inlined_insns.
13442         * cgraphunit.c (cgraph_analyze_function): Don't update
13443         DECL_ESTIMATED_INSNS.
13444
13445 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13446
13447         * c-common.c (shadow_warning): Delete.
13448         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13449         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13450         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13451         * c-parse.in (free_parser_stacks): Delete.
13452
13453 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13454
13455         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13456         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13457         Use the top level mkinstalldirs, not the one in the gcc subdir.
13458         * mkinstalldirs: Remove (from the gcc subdir).
13459
13460 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13461
13462         PR middle-end/13696
13463         * fold-const.c (fold_convert): New function to provide type
13464         conversion to the middle-end without using convert.
13465         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13466         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13467         invert_truthvalue, optimize_bit_field_compare, range_binop,
13468         decode_field_reference, make_range, build_range_check, unextend,
13469         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13470         fold_binary_op_with_conditional_arg, fold_inf_compare,
13471         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13472         convert with calls to fold_convert.
13473
13474 2004-02-07  Jan Hubicka  <jh@suse.cz>
13475
13476         * genrecog.c (find_operand): add extra argument stop.
13477         (validate_pattern): Verify that mach_dup is duplicating operand
13478         defined lexically earlier.
13479
13480 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13481
13482         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13483         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13484         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13485         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13486         config/ia64/ia64.h, config/ip2k/ip2k.h,
13487         config/iq2000/iq2000.h, config/mips/iris5.h,
13488         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13489         config/rs6000/aix51.h, config/rs6000/aix52.h,
13490         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13491         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13492         config/sparc/linux.h, config/sparc/linux64.h,
13493         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13494         config/xtensa/xtensa.h: Remove the definitions of
13495         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13496         MAX_WCHAR_TYPE_SIZE.
13497         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13498         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13499
13500 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13501
13502         PR bootstrap/13990
13503         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13504         gen_rtx_NE.
13505
13506 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13507
13508         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13509         #ifdef ENABLE_CHECKING and #endif.
13510
13511 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13512
13513         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13514         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13515         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13516         integer types and floating point with unsafe_math_optimizations.
13517         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13518         Optimize A - B as A + (-B), if B is easily negated.
13519
13520 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13521
13522         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13523         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13524         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13525         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13526         Update copyright.
13527
13528 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13529
13530         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13531
13532 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13533
13534         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13535         glibc 2.3 or better.
13536
13537 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13538
13539         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13540         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13541
13542 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13543
13544         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13545         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13546         (SHLIB_MKMAP_OPTS): Delete.
13547         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13548         (bispecs): Add rule.
13549         * config/rs6000/libgcc-ppc64.ver: New file.
13550         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13551         (__floatdidf, __floatdisf): Optimize multiply.
13552         (__fixunstfdi): New function.
13553         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13554         real and imag parts larger than one register.
13555         (function_arg): Correct type of reg used when fp arg split partially
13556         to stack.
13557         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13558         and __MACH__ or __powerpc64__.
13559
13560 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13561             Ulrich Weigand  <uweigand@de.ibm.com>
13562
13563         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13564         of gen_highpart or gen_lowpart when the floating point format is
13565         wider than the result mode.
13566
13567 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13568
13569         * dwarf2out.c (loclabel_num): Move into #ifdef
13570         DWARF2_DEBUGGING_INFO.
13571
13572 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13573
13574         * objc/objc-act.c (build_super_template) the 'class' field of
13575         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13576         (get_super_receiver): Likewise.
13577
13578 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13579
13580         * reload1.c (check_eliminable_occurrences): Optimize the reset
13581         of can_eliminate.
13582         (eliminate_regs_in_insn): Likewise.
13583
13584 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13585             Josef Zlomek  <zlomekj@suse.cz>
13586
13587         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13588         at the beginning of function, call dwarf2out_var_location for
13589         NOTE_INSN_VAR_LOCATION note.
13590         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13591         decl_loc_table): New.
13592         (lookup_decl_loc): New function.
13593         (add_var_loc_to_decl): New function.
13594         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13595         only if can_use_fbreg.
13596         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13597         functions.
13598         (loc_descriptor): Likewise. Process VAR_LOCATION.
13599         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13600         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13601         can_use_fbreg == true.
13602         (add_location_or_const_value_attribute): Added parameter enum
13603         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13604         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13605         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13606         with attr == DW_AT_location.
13607         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13608         if frame_base_decl is defined and has a location list.
13609         (gen_variable_die): Call add_location_or_const_value_attribute with
13610         attr == DW_AT_location.
13611         (dwarf2out_var_location): New function.
13612         (dwarf2out_begin_function): New function.
13613         (dwarf2out_init): Create decl_loc_table.
13614
13615 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13616
13617         * loop.c (force_movables): Transitively increase the priorities of
13618         all insns forces by an insn, not just the first one.
13619
13620 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13621             Daniel Berlin <dberlin@dberlin.org>
13622
13623         Josef Zlomek  <zlomekj@suse.cz>
13624         * Makefile.in (var-tracking.o): New.
13625         * common.opt (fvar-tracking): New.
13626         * flags.h (flag_var_tracking): New.
13627         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13628         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13629         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13630         * rtl.c (note_insn_name): Likewise.
13631         * rtl.def (VAR_LOCATION): New.
13632         * rtl.h (NOTE_VAR_LOCATION): New.
13633         (NOTE_VAR_LOCATION_DECL): New.
13634         (NOTE_VAR_LOCATION_LOC): New.
13635         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13636         (variable_tracking_main): New exported function.
13637         * timevar.def (TV_VAR_TRACKING): New.
13638         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13639         (dump_file): "vartrack" was added (-dV).
13640         (flag_var_tracking): New.
13641         (f_options): "var-tracking" was added.
13642         (rest_of_handle_variable_tracking): New function.
13643         (rest_of_compilation): Run variable tracking.
13644         (process_options): If user has not specified flag_var_tracking set it
13645         according to optimize, debug_info_level and debug_hooks.
13646         * tree.h (frame_base_decl): New.
13647         * var-tracking.c: New file.
13648         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13649         (ia64_override_options): Set flags to run variable tracking in machine
13650         dependent reorg instead of toplev.c.
13651         (ia64_reorg): Run variable tracking if wanted.
13652         * doc/invoke.texi: Mention variable tracking in -dV,
13653         add and -fvar-tracking.
13654         * doc/passes.texi: Added variable tracking pass.
13655
13656         Daniel Berlin <dberlin@dberlin.org>
13657         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13658         * dbxout.c (dbx_debug_hooks): Likewise.
13659         (xcoff_debug): Likewise.
13660         * debug.c (do_nothing_debug_hooks): Likewise.
13661         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13662         * dwarfout.c (dwarf_debug_hooks): Likewise.
13663         * sdbout.c (sdb_debug_hooks): Likewise.
13664         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13665         * final.c (final_scan_insn): Call var_location debug hook for each
13666         NOTE_INSN_VAR_LOCATION.
13667
13668 2004-02-06  Jan Hubicka  <jh@suse.cz>
13669
13670         * flow.c (update_life_info): Allocate reg_deaths when called from
13671         scheudler.
13672         (attempt_auto_inc):  Update life ranges accordingly.
13673
13674 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13675
13676         PR debug/11816
13677         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13678
13679 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13680
13681         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13682
13683 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13684
13685         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13686         a separate line info table in use.
13687         Use the correct size for terminators.
13688         (output_die): Use offset, not delta.
13689
13690 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13691
13692         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13693
13694 2004-02-06  Jan Hubicka  <jh@suse.cz>
13695
13696         * recog.c (split_all_insns): Do not update reg info.
13697         * regrename.c (regrename_optimize): Likewise.
13698         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13699         * flow.c (struct propagate_block_info): Add insn_num field.
13700         (reg_deaths): New array.
13701         (life_analysis): Free reg_deaths info.
13702         (allocate_reg_life_data): Allocate reg_deaths array.
13703         (propagate_one_insn): Use new array.
13704         (init_propagate_block): Initialize it.
13705         (free_propagate_block_info): Finish compuation of
13706         REG_LIVE_LENGTH
13707         (attempt_auto_inc): Sanity check that REG_INFO is not
13708         computed at same time.
13709         (mark_used_regs): Update new array.
13710
13711         * reg-stack.c (subst_stack_regs): Unshare clobbers before
13712         substitution.
13713
13714 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13715
13716         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13717         *extendqisi2_short_displ.
13718
13719 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
13720
13721         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
13722         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
13723         (emit_library_call_value_1): Likewise pass nargs.
13724         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
13725         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
13726         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
13727         parameter instead of scanning TYPE_ARGS_TYPES to count args.
13728         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
13729         prototype.
13730         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
13731         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
13732         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
13733         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
13734         INIT_CUMULATIVE_ARGS.
13735         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
13736         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
13737         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
13738         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
13739         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13740         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
13741         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13742         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
13743         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
13744         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
13745         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13746         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
13747
13748 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13749
13750         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
13751         possible.
13752
13753 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13754
13755         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
13756         note containing (plus (reg) (const_int)), where reg is an
13757         eliminable reg, then perform the register elimination without
13758         depending on eliminate_regs().
13759
13760 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13761
13762         * config/arc/arc.c (arc_return_in_memory): Check the return
13763         value of int_size_in_bytes against -1.  Don't check
13764         TREE_ADDRESSABLE.
13765         * config/avr/avr.c (avr_return_in_memory): Check the return
13766         value of int_size_in_bytes against -1.
13767         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
13768         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
13769         Likewise.
13770         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
13771         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
13772         Likewise.
13773
13774 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13775
13776         * config/frv/frv-protos.h: Remove the prototype for
13777         frv_setup_incoming_varargs.
13778         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
13779         (frv_setup_incoming_varargs): Make it static.
13780         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
13781
13782 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13783
13784         * config/fr30/fr30-protos.h: Remove the prototype for
13785         fr30_setup_incoming_varargs.
13786         Update the prototypes for fr30_num_arg_regs and
13787         fr30_function_arg_partial_nregs.
13788         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
13789         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13790         (fr30_setup_incoming_varargs): Make it static.
13791         Add argument second_time.  Don't do anything when second_time
13792         is nonzero.
13793         (fr30_num_arg_regs): Change the type of the first argument to
13794         enum machine_mode.
13795         (fr30_function_arg_partial_nregs): Change the type of the
13796         second argument to enum machine_mode.
13797         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13798         (SETUP_INCOMING_VARARGS): Remove.
13799
13800 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13801
13802         * config/arc/arc-protos.h: Remove the prototype for
13803         arc_setup_incoming_varargs.
13804         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13805         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13806         (arc_setup_incoming_varargs): Make it static.
13807         (arc_external_libcall): Likewise.
13808         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13809         Remove the commented-out definition of
13810         ASM_OUTPUT_EXTERNAL_LIBCALL.
13811
13812 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13813
13814         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13815         to $$(slibdir) in the installation commands.
13816
13817 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13818
13819         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13820         with inner_regno, not regno.
13821         * rtlanal.c (refers_to_regno_p): Same.
13822
13823 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13824
13825         * config.gcc: Remove i370 support.
13826
13827 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13828
13829         * doc/install.texi:  Update automake and autoconf version
13830         requirements.  Note where to find gcj automake version.
13831
13832 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13833
13834         * Makefile.in (generate-manpages): Move dependencies to ...
13835         (man): here.
13836         * doc/makefile.texi: Document new targets.
13837         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
13838
13839 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13840
13841         PR/13485
13842         Makefile.in (srcextra):  Add a level of indirection to ...
13843         (gcc.srcextra): ... here.
13844         (po-generated): Delete.
13845         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
13846         options.c.
13847         (start.encap): Remove superfluous lang.srcextra dependency.
13848         objc/Make-lang.in (po-generated):  Delete.
13849
13850 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13851
13852         * config/ia64/ia64.c (REG_GP): Remove.
13853
13854 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13855
13856         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13857
13858 2004-02-05  Devang Patel  <dpatel@apple.com>
13859
13860         * dwarf2out.c (force_type_die): Look up input type itself
13861         instead of root_type() of type.
13862
13863 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13864
13865         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13866         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13867         pre-reload splitters are transformed to post-reload
13868         define_insn_and_split patterns.
13869         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13870
13871 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13872
13873         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13874         TARGET_PROMOTE_PROTOTYPES.
13875
13876 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13877
13878         PR middle-end/13750
13879         Revert:
13880         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13881         PR pch/13361
13882         * c-typeck.c (constructor_asmspec): Delete.
13883         (struct initializer_stack): Delete field 'asmspec'.
13884         (start_init): Delete saving of asmspec.
13885         (finish_init): Don't update constructor_asmspec.
13886         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13887         * stmt.c (expand_asm): Duplicate strings from tree.
13888         (expand_asm_operands): Likewise.
13889         * tree.c (tree_size): Update computation of size of STRING_CST.
13890         (make_node): Don't make STRING_CST nodes.
13891         (build_string): Allocate string with tree node.
13892         * tree.def (STRING_CST): Update comment.
13893         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13894         (tree_string): Place contents of string in tree node.
13895         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13896         from tree.
13897
13898 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13899
13900         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13901         msgid.
13902
13903 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13904
13905         * config/rs6000/altivec.md (*movv4si_internal): At least one
13906         operand must be altivec_register_operand.
13907         (*movv8hi_internal1): Likewise.
13908         (*movv16qi_internal1): Likewise.
13909         (*movv4sf_internal1): Likewise.
13910
13911 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13912
13913         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13914         * configure: Regenerate.
13915
13916 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13917
13918         * doc/install.texi: Update description of --gxx-include-dir to
13919         give correct default value.
13920
13921 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13922
13923         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13924         8 with MAC_REG.
13925
13926 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13927
13928         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13929         gen_rtx_PARALLEL.
13930
13931 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13932
13933         * emit-rtl.c: Update the comment about the file.
13934
13935 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13936
13937         * sourcebuild.texi (Test Idioms): Update testcase naming
13938         conventions.
13939
13940 2004-02-04  Per Bothner  <per@bothner.com>
13941
13942         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13943         * c-ppoutput.c (pp_dir_change):  New function.
13944         * c-common.h (pp_dir_change):  New declaration.
13945         * cpplib.h (struct cpp_options):  Remove working_directory field.
13946         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
13947         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
13948         Don't handle -fworking_directory here, but in c_common_post_options.
13949         (read_original_directory): Don't back up when done.
13950         Don't clear no-longer used working_directory flag.
13951         * cpplib.h:  Update declarations to match.
13952         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13953         (init_c_lex):  Don't set dir_change callback here, since we want
13954         to set it even if flag_preprocess_only.
13955         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13956         (c_common_post_options):  Set dir_change callback.
13957         Call pp_dir_change if approporiate.
13958         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13959         unneeded parameter and result. Do LC_RENAME for <built-in>.
13960         (c_common_post_options):  Call cpp_read_main_file here instead.
13961         (c_common_init):  Update accordingly.
13962         (push_command_line_include):  Don't cpp_push_main_file.
13963         Do LC_RENAME rather than LC_LEASE to get back to main file.
13964         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13965         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13966         files, but call finish_options for all files.
13967         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13968         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13969         cpp_find_main_file + cpp_push_main_file.
13970         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13971         * opts.c (handle_options):  Only set main_input_filename first time.
13972
13973 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13974
13975         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13976
13977 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13978
13979         * reload.c (find_equiv_reg): When checking for register overlap,
13980         don't index hard_regno_nregs with a pseudo-reg.
13981
13982 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13983
13984         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13985
13986 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13987
13988         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13989         against FIRST_PSEUDO_REGISTER.
13990
13991 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13992
13993         * Makefile.in: Move target, host overrides after per-language
13994         fragments.
13995
13996         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13997         (GNATLIBCFLAGS): Remove -g.
13998
13999 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14000
14001         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
14002         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14003         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14004         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
14005         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
14006         config/sparc/sparc.c, config/vax/vax.c: Revert the
14007         replacements of "FALLTHRU" with "Fall through" done in the
14008         previous patch.
14009
14010 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14011
14012         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
14013         config/arm/arm.c, config/arm/arm.md,
14014         config/cris/cris-protos.h, config/fr30/fr30.c,
14015         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
14016         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
14017         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
14018         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
14019         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
14020         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
14021         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
14022         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
14023         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
14024         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
14025         config/s390/s390.md, config/sparc/netbsd-elf.h,
14026         config/sparc/openbsd.h, config/sparc/sparc.c,
14027         config/xtensa/lib2funcs.S: Fix comment formatting.
14028
14029 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14030
14031         * config/alpha/alpha.c, config/arc/arc.c,
14032         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
14033         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
14034         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
14035         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
14036         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14037         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14038         config/iq2000/iq2000.c, config/m32r/m32r.c,
14039         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
14040         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
14041         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
14042         config/rs6000/rs6000.h, config/sparc/sparc.c,
14043         config/vax/vax.c: Fix comment typos.  Follow spelling
14044         conventions.
14045
14046 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14047
14048         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
14049         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
14050         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
14051         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
14052         config/arm/fpa.md, config/arm/iwmmxt.md,
14053         config/arm/netbsd-elf.h, config/arm/netbsd.h,
14054         config/m68hc11/m68hc11.md, config/mips/iris5.h,
14055         config/mn10300/mn10300.md, config/rs6000/altivec.md,
14056         config/sparc/netbsd-elf.h: Update copyright.
14057
14058 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
14059
14060         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14061         for all modes whose size is greater than 8 bytes if ARCH32.
14062         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
14063         by reference if ARCH32.
14064
14065 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
14066
14067         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
14068
14069 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14070
14071         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
14072         to before adddi3 insn patterns.
14073         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
14074         "reload_insi"): Move to before addsi3 insn patterns.
14075
14076 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
14077
14078         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
14079         parameter.  Use it instead of current_function_is_thunk.
14080         * function.h (struct function): Update documentation for is_thunk.
14081         * tree.h (CALL_FROM_THUNK_P): New macro.
14082         * config/alpha/alpha.c (alpha_sa_mask): Do not check
14083         no_new_pseudos when testing current_function_is_thunk.
14084         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
14085
14086 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14087
14088         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
14089         TARGET_SETUP_INCOMING_VARARGS.
14090
14091 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14092
14093         * emit-rtl.c (gen_rtx): Remove.
14094         * genattrtab.c: Don't mention gen_rtx in a comment.
14095         * rtl.h: Remove the prototype for gen_rtx.
14096         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
14097
14098 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14099
14100         * config/arc/arc.h, config/fr30/fr30.h
14101         (SETUP_INCOMING_VARARGS): Remove the target-independent
14102         comments.
14103         * doc/tm.texi: Don't mention deprecated target macros.
14104
14105 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14106
14107         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
14108         target-independent comment.
14109
14110 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14111
14112         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
14113         mention deprecated target macros.
14114
14115 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14116
14117         * config.gcc: Remove obsolete ports and configurations.
14118         * config/linux-aout.h, config/netware.h,
14119         config/t-linux-gnulibc1, config/d30v/abi,
14120         config/d30v/d30v-protos.h, config/d30v/d30v.c,
14121         config/d30v/d30v.h, config/d30v/d30v.md,
14122         config/d30v/libgcc1.asm, config/d30v/t-d30v,
14123         config/dsp16xx/dsp16xx-modes.def,
14124         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
14125         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
14126         config/i370/README, config/i370/i370-c.c,
14127         config/i370/i370-protos.h, config/i370/i370.c,
14128         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
14129         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
14130         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
14131         config/i386/moss.h, config/i386/netware.h,
14132         config/i386/svr3.ifile, config/i386/svr3dbx.h,
14133         config/i386/svr3gas.h, config/i386/svr3z.ifile,
14134         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
14135         config/i960/i960-c.c, config/i960/i960-coff.h,
14136         config/i960/i960-modes.def, config/i960/i960-protos.h,
14137         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
14138         config/i960/rtems.h, config/i960/t-960bare,
14139         config/m68k/hp310.h, config/m68k/hp320.h,
14140         config/m68k/hp320base.h, config/m68k/m68kv4.h,
14141         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
14142         Remove.
14143         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
14144         doc/md.texi: Remove mentions of obsolete ports.
14145
14146 2004-02-04  Jan Hubicka  <jh@suse.cz>
14147
14148         * alias.c (find_base_term, get_addr):  Do not dereference NULL
14149         pointer when all VALUE's locations has been invalidated.
14150         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
14151
14152 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
14153
14154         * doc/invoke.texi (x86 options): Fix spelling/wording.
14155
14156 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
14157
14158         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
14159         put the original string in a comment.
14160         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
14161         * config/mips/mips.c (mips_output_ascii): Likewise.
14162         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
14163
14164 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14165
14166         * system.h (GIV_SORT_CRITERION): Poison.
14167         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
14168         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
14169
14170 2004-02-03  Roger Sayle  <roger@eyesopen.com>
14171
14172         PR target/9348
14173         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
14174         multiplies with a multiplication of the wrong signedness, its the
14175         signedness of the multiplication that we've performed that needs to
14176         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
14177         if expand_mult_highpart_adjust places the result in target.
14178
14179 2004-02-03  Richard Henderson  <rth@redhat.com>
14180
14181         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
14182
14183 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
14184
14185         * config.gcc (sh[234]l): Use little endian fragments.
14186
14187 2004-02-03  Paul Koning  <pkoning@equallogic.com>
14188
14189         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
14190         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
14191         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
14192         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
14193         floating point format.
14194         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
14195         the above functions.
14196         (output_move_quad): Output float values in correct target format.
14197         (legitimate_const_double_p): New function.
14198         * config/pdp11/pdp11.h: Fix typos.
14199         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
14200         (TARGET_FLOAT_FORMAT): Ditto.
14201         (pdp11_f_format, pdp11_d_format): Add external declarations.
14202         (MAX_REGS_PER_ADDRESS): Corrected.
14203         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
14204         (PRINT_OPERAND): Output float literals in target format.
14205
14206 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
14207
14208         PR c++/13975
14209         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
14210         TI_PRIVATE.
14211         (access_public_node): Redefine.
14212         (access_protected_node): Likewise.
14213         (access_private_node): Likewise.
14214         * tree.c (build_common_tree_nodes): Create access_public_node,
14215         access_protected_node, and access_private_node.
14216
14217 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
14218
14219         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
14220         (MASK_INLINE_INT_DIV_THR): Ditto.
14221         (MASK_INLINE_SQRT_LAT): Ditto.
14222         (MASK_INLINE_SQRT_THR): Ditto.
14223         (MASK_DWARF2_ASM): Ditto.
14224         (MASK_EARLY_STOP_BITS): Ditto.
14225
14226 2004-02-02  Paul Brook  <paul@codesourcery.com>
14227
14228         Merge from csl-arm-branch.
14229
14230         2004-01-30  Paul Brook  <paul@codesourcery.com>
14231
14232         * aof.h (REGISTER_NAMES): Add vfp reg names
14233         (ADDITIONAL_REGISTER_NAMES): Ditto.
14234         * aout.h (REGISTER_NAMES): Ditto.
14235         (ADDITIONAL_REGISTER_NAMES): Ditto.
14236         * arm-protos.h: Update/Add Prototypes.
14237         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
14238         Only allow 0.0 for VFP.
14239         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
14240         (values_fp): Rename from values_fpa.  Update Users.
14241         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
14242         Update users.  Only check valid constants for this hardware.
14243         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
14244         Only allow consts for FPA.
14245         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
14246         Only allow consts for FPA.
14247         (use_return_insn): Check for saved VFP regs.
14248         (arm_legitimate_address_p): Handle VFP DFmode addressing.
14249         (arm_legitimize_address): Ditto.
14250         (arm_general_register_operand): New function.
14251         (vfp_mem_operand): New function.
14252         (vfp_compare_operand): New function.
14253         (vfp_secondary_reload_class): New function.
14254         (arm_float_compare_operand): New function.
14255         (vfp_print_multi): New function.
14256         (vfp_output_fstmx): New function.
14257         (vfp_emit_fstm): New function.
14258         (arm_output_epilogue): Output VPF reg restore code.
14259         (arm_expand_prologue): Output VFP reg save code.
14260         (arm_print_operand): Add 'P'.
14261         (arm_hard_regno_mode_ok): Return modes for VFP regs.
14262         (arm_regno_class): Return classes for VFP regs.
14263         (arm_compute_initial_elimination_offset): Include space for VFP regs.
14264         (arm_get_frame_size): Ditto.
14265         * arm.h (FIXED_REGISTERS): Add VFP regs.
14266         (CALL_USED_REGISTERS): Ditto.
14267         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
14268         (FIRST_VFP_REGNUM): Define.
14269         (LAST_VFP_REGNUM): Define.
14270         (IS_VFP_REGNUM): Define.
14271         (FIRST_PSEUDO_REGISTER): Include VFP regs.
14272         (HARD_REGNO_NREGS): Handle VFP regs.
14273         (REG_ALLOC_ORDER): Add VFP regs.
14274         (enum reg_class): Add VFP_REGS.
14275         (REG_CLASS_NAMES): Ditto.
14276         (REG_CLASS_CONTENTS): Ditto.
14277         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
14278         (REG_CLASS_FROM_LETTER): Add 'w'.
14279         (EXTRA_CONSTRAINT_ARM): Add 'U'.
14280         (EXTRA_MEMORY_CONSTRAINT): Define.
14281         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
14282         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14283         (REGISTER_MOVE_COST): Ditto.
14284         (PREDICATE_CODES): Add arm_general_register_operand,
14285         arm_float_compare_operand and vfp_compare_operand.
14286         * arm.md (various): Rename as above.
14287         (divsf3): Enable when TARGET_VFP.
14288         (divdf3): Ditto.
14289         (movdfcc): Ditto.
14290         (sqrtsf2): Ditto.
14291         (sqrtdf2): Ditto.
14292         (arm_movdi): Disable when TARGET_VFP.
14293         (arm_movsi_insn): Ditto.
14294         (movsi): Only split with general regs.
14295         (cmpsf): Use arm_float_compare_operand.
14296         (push_fp_multi): Restrict to TARGET_FPA.
14297         (vfp.md): Include.
14298         * vfp.md: New file.
14299         * fpa.md (various): Rename as above.
14300         * doc/md.texi: Document ARM w and U constraints.
14301
14302         2004-01-15  Paul Brook  <paul@codesourcery.com>
14303
14304         * config.gcc: Add with_fpu.  Allow with-float=softfp.
14305         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
14306         Break out of loop when we find a float-abi.  Fix typo.
14307         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
14308         Set -mfloat-abi=.
14309         * doc/install.texi: Document --with-fpu.
14310
14311         2003-01-14  Paul Brook  <paul@codesourcery.com>
14312
14313         * config.gcc (with_arch): Add armv6.
14314         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
14315         * config/arm/arm.c (arm_overrride_options): Ditto.
14316
14317         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
14318
14319         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14320         (FL_ARCH6): Renamed from FL_ARCH6J.
14321         (arm_arch3m): Renamed from arm_fast_multiply.
14322         (arm_arch6): Renamed from arm_arch6j.
14323         * arm.h: Update all uses of above.
14324         * arm-cores.def: Likewise.
14325         * arm.md: Likewise.
14326
14327         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14328         not arm6j.  Add entry for arch armv6.
14329
14330         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
14331
14332         * arm.c (arm_emit_extendsi): Delete.
14333         * arm-protos.h (arm_emit_extendsi): Delete.
14334         * arm.md (zero_extendhisi2): Also handle zero-extension of
14335         non-subregs.
14336         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14337         (thumb_zero_extendhisi2): Only match if not v6.
14338         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14339         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14340         (thumb_extendqisi2): Likewise.
14341         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14342         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14343         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14344         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14345         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14346         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14347         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
14348         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14349         (arm_extendqisi2addsi): Likewise.
14350
14351         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
14352
14353         Revert this change:
14354         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14355         + REG addressing modes.
14356
14357         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14358         + REG addressing modes.
14359
14360         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
14361
14362         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14363         CONSTANT_P_RTX.
14364
14365         2003-30-12  Paul Brook  <paul@codesourcery.com>
14366
14367         * longlong.h: protect arm inlines with !defined (__thumb__)
14368
14369         2003-30-12  Paul Brook  <paul@codesourcery.com>
14370
14371         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14372
14373         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14374
14375         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14376         change.
14377
14378         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14379
14380         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14381         to the virtual incoming args pointer for downward stacks.
14382
14383         2003-12-29  Paul Brook  <paul@codesourcery.com>
14384
14385         * config/arm/arm-cores.def: Add cost function.
14386         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14387         (arm_rtx_costs): Remove
14388         (struct processors): Add rtx_costs field.
14389         (all_cores, all_architectures): Ditto.
14390         (arm_override_options): Set targetm.rtx_costs.
14391         (thumb_rtx_costs): New function.
14392         (arm_rtx_costs_1): Remove cases handled elsewhere.
14393         * config/arm/arm.h (processor_type): Add COSTS parameter.
14394
14395         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14396
14397         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14398         (arm926ejs.md): Include it.
14399         * config/arm/arm926ejs.md: New pipeline description.
14400
14401         2003-12-24  Paul Brook  <paul@codesourcery.com>
14402
14403         * config/arm/arm.c (arm_arch6j): New variable.
14404         (arm_override_options): Set it.
14405         (arm_emit_extendsi): New function.
14406         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14407         * config/arm/arm.h (arm_arch6j): Declare.
14408         * config/arm/arm.md: Add sign/zero extend insns.
14409
14410         2003-12-23  Paul Brook  <paul@codesourcery.com>
14411
14412         * config/arm/arm.c (all_architectures): Add armv6.
14413         * doc/invoke.texi: Document it.
14414
14415         2003-12-19  Paul Brook  <paul@codesourcery.com>
14416
14417         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14418         insn patterns to match.
14419         * config/arm/arm-generic.md: Ditto.
14420         * config/arm/cirrus.md: Ditto.
14421         * config/arm/fpa.md: Ditto.
14422         * config/amm/iwmmxt.md: Ditto.
14423         * config/arm/arm1026ejs.md: Ditto.
14424         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14425         for 11_loadb.
14426
14427         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14428
14429         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14430         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14431         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14432         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14433         arm_no_early_mul_dep): Correctly deal with conditional execution,
14434         parallels and single shift operations.
14435         (arm_no_early_alu_shift_value_dep): Define.
14436         * arm.md (attr type): Replace 'normal' with 'alu',
14437         'alu_shift' and 'alu_shift_reg'.
14438         (attr core_cycles): Adjust.
14439         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14440         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14441         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14442         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14443         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14444         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14445         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14446         attribute appropriately.
14447         * config/arm/arm1026ejs.md (alu_op): Adjust.
14448         (alu_shift_op, alu_shift_reg_op): New.
14449         * config/arm/arm1136.md: Add better bypasses for early
14450         registers. Remove load[234] and store[234] bypasses.
14451         (11_alu_op): Adjust.
14452         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14453
14454         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14455
14456         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14457         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14458         * config/arm/arm.c (arm_no_early_store_addr_dep,
14459         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14460         * config/arm/arm1026ejs.md: Add load-store bypass.
14461         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14462         Add bypasses between instructions.
14463
14464         2003-12-10  Paul Brook  <paul@codesourcery.com>
14465
14466         * config/arm/arm.c (arm_fpu_model): New variable.
14467         (arm_fload_abi): New variable.
14468         (target_fpe_name): Rename from target_fp_name.
14469         (target_fpu_name): New variable.
14470         (arm_is_cirrus): Remove.
14471         (fpu_desc): New struct.
14472         (all_fpus): Define.
14473         (pf_model_for_fpu): Define.
14474         (all_loat_abis): Define.
14475         (arm_override_options): Set fp arch flags based on -mfpu=
14476         and -float-abi=.
14477         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14478         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14479         (*): Use new TARGET_* flags.
14480         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14481         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14482         (TARGET_SOFT_FLOAT): Ditto.
14483         (TARGET_SOFT_FLOAT_ABI): New.
14484         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14485         TARGET_HARD_FLOAT.
14486         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14487         (TARGET_OPTIONS): Add -mfpu=.
14488         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14489         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14490         (arm_pf_model): Define.
14491         (arm_float_abi_type): Define.
14492         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14493         * config/arm/arm.md: Use new TARGET_* flags.
14494         * config/arm/cirrus.md: Ditto.
14495         * config/arm/fpa.md: Ditto.
14496         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14497         * config/arm/semi.h (ASM_SPEC): Ditto.
14498         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14499         (FPUTYPE_DEFAULT): Set to VFP.
14500         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14501
14502         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14503
14504         PR target/12476
14505         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14506         'bx' instead of 'b' to avoid branch range restrictions.  Output
14507         the thunk immediately before the thunked-to function.
14508         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14509         .thumb_func if a thunk is being generated.  Emit .code 16 along
14510         with .thumb_func if a thunk is not being generated.
14511
14512         2003-11-15  Nicolas Pitre <nico@cam.org>
14513
14514         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14515         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14516         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14517         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14518         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14519
14520         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14521             Ian Lance Taylor  <ian@wasabisystems.com>
14522
14523         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14524         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14525
14526         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14527
14528         * config/arm/arm.md (insn):  Add new V6 instruction names.
14529         (generic_sched):  New attr.
14530         * config/arm/arm-generic.md:  Use generic_sched here.
14531         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14532         stages of pipeline.  Adjust latency counts accordingly.
14533         * config/arm/arm1136jfs.md:  New file.
14534
14535         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14536
14537         * config/arm/arm.h (processor_type): New enumeration type.
14538         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14539         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14540         (CPP_CPU_ARCH_SPEC): Likewise.
14541         * config/arm/arm.c (arm_tune): New variable.
14542         (all_cores): Use cores.def.
14543         (all_architectures): Add representative processor.
14544         (arm_override_options): Restructure way in which tuning
14545         information is deduced.
14546         * arm.md: Update "insn" and "type" attributes throughout.
14547         (insn): New attribute.
14548         (type): Compute "mult" from "insn" attribute.  Add load2,
14549         load3, load4 alternatives.
14550         (arm automaton): Move to arm-generic.md.
14551         * config/arm/arm-cores.def: New file.
14552         * config/arm/arm-generic.md: Likewise.
14553         * config/arm/arm1026ejs.md: Likewise.
14554
14555 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14556
14557         * doc/invoke.texi (SPARC options): Remove -mflat and
14558         all -mxxx (xxx:chip) options.
14559         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14560         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14561         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14562         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14563         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14564         * config/sparc/sparc.c: Likewise.
14565         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14566         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14567         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14568         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14569         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14570         (sparc_flat_must_save_register_p): Likewise.
14571         (sparc_flat_compute_frame_size): Likewise.
14572         (sparc_flat_save_restore): Likewise.
14573         (sparc_flat_function_prologue): Likewise.
14574         (sparc_flat_function_epilogue): Likewise.
14575         (sparc_flat_epilogue_delay_slots): Likewise.
14576         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14577         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14578         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14579         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14580         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14581         (CONDITIONAL_REGISTER_USAGE): Likewise.
14582         (FRAME_POINTER_REQUIRED): Likewise.
14583         (INITIAL_ELIMINATION_OFFSET): Likewise.
14584         (BASE_RETURN_VALUE_REG): Likewise.
14585         (BASE_OUTGOING_VALUE_REG): Likewise.
14586         (BASE_PASSING_ARG_REG): Likewise.
14587         (BASE_INCOMING_ARG_REG): Likewise.
14588         (INCOMING_REGNO): Likewise.
14589         (OUTGOING_REGNO): Likewise.
14590         (LOCAL_REGNO): Likewise.
14591         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14592         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14593         (EPILOGUE_USES): Likewise.
14594         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14595         ("flat" attribute): Delete.
14596         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14597         handling.
14598         (call followed by jump define_peephole's): Delete.
14599         (exception_receiver): Likewise.
14600         (builtin_setjmp_receiver): Likewise.
14601         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14602
14603 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14604
14605         PR c/11658
14606         PR c/13994
14607         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14608         on langhooks.h.
14609         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14610         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14611         Include langhooks.h.  Replace c_common_truthvalue_conversion
14612         with the truthvalue_conversion language hook throughout.
14613         (expr_no_commas): Call default_conversion before save_expr
14614         for the first term of the production 'x ? : y'.
14615         * c-common.c (c_common_truthvalue_conversion): Remove
14616         obsolete block.  Invoke recursively the hook instead
14617         of this function.
14618         * c-convert.c (convert): handle ERROR_MARK_NODE.
14619         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14620         returned by the truthvalue_conversion language hook.
14621         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14622         c_objc_common_truthvalue_conversion.
14623         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14624         New function.
14625         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14626         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14627         c_objc_common_truthvalue_conversion.
14628
14629 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14630
14631         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14632         of gen_rtx.
14633         (LIBCALL_VALUE): Likewise.
14634         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14635         gen_rtx_CC0 instead of gen_rtx.
14636         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14637         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14638         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14639         gen_rtx.
14640         (m68hc11_emit_logical): Likewise.
14641
14642 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14643
14644         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14645         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14646         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14647         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14648         config/mips/mips.md, config/mmix/mmix.c,
14649         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14650         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14651         config/rs6000/altivec.md, config/s390/s390.c,
14652         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14653         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14654         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14655         constants that are readily available.
14656
14657 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14658
14659         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14660         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14661         instead of GEN_INT (0).  Do the same for other constants that
14662         are readily available.
14663
14664 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14665
14666         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14667         gen_rtx.
14668         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14669         instead of gen_rtx.
14670         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14671         gen_rtx.
14672         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14673         gen_rtx_ASHIFT instead of gen_rtx.
14674         (udivmodqi4): Likewise.
14675
14676 2004-02-02  Richard Henderson  <rth@redhat.com>
14677
14678         PR target/13789
14679         * expr.c (store_expr): Use force_operand before emit_move_insn.
14680
14681 2004-02-02  Jeff Law  <law@redhat.com>
14682             Roger Sayle  <roger@eyesopen.com>
14683
14684         * tree.c (commutative_tree_code, associative_tree_code): New
14685         functions.
14686         (iterative_hash_expr): Use commutative_tree_code.
14687         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14688         * fold-const.c (operand_equal_p): Use commutative_tree_code
14689         rather than inlining the commutativity check.
14690         (fold): Likewise.
14691
14692 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14693
14694         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14695         * config/frv/frv-protos.h: Remove the prototype for
14696         frv_function_arg_keep_as_reference.
14697         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14698         Remove.
14699         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14700         * config/stormy16/stormy16.h: Remove the commented-out
14701         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14702
14703 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
14704
14705         PR target/13914
14706         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14707         for retaddr_column.
14708
14709 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14710
14711         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14712         gen_rtx.
14713
14714 2004-02-02  Eric Christopher  <echristo@redhat.com>
14715             Zack Weinberg  <zack@codesourcery.com>
14716
14717         * c-opts.c (c_common_handle_option): Add -finput-charset.
14718         * c.opt: Ditto.
14719         * cppcharset.c (one_iso88591_to_utf8): Remove.
14720         (convert_iso88591_utf8): Ditto.
14721         (conversion_tab): Remove 8859-1 converter.
14722         (_cpp_input_to_utf8): Remove.
14723         (_cpp_init_iconv_buffer): Ditto.
14724         (_cpp_close_iconv_buffer): Ditto.
14725         (_cpp_convert_input): New function.
14726         (_cpp_default_encoding): Ditto.
14727         * cpphash.h: Add/remove prototypes for above.
14728         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
14729         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
14730         for narrow execution and input character sets.
14731         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
14732         * doc/cppopts.texi: Document -finput-charset.
14733
14734 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
14735
14736         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
14737         against FIRST_PSEUDO_REGISTER.
14738
14739 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14740
14741         * doc/invoke.texi (SPARC options): Further improve.
14742
14743 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14744
14745         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
14746         config/h8300/h8300.c, config/ip2k/ip2k.md,
14747         config/iq2000/iq2000.c, config/mips/mips.c,
14748         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
14749         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
14750         config/v850/v850.md: Fix indentation.
14751
14752 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14753
14754         * config/sparc/sparc.c (function_arg_slotno): Align TImode
14755         arguments on a 16-byte boundary in the parameter array if ARCH64.
14756         Split handling of TFmode.
14757
14758 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
14759
14760         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
14761         Don't test CONSTANT_P (x).
14762         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
14763         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
14764         Fix misindentation.
14765
14766 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14767
14768         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
14769
14770 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14771
14772         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
14773         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
14774         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
14775         config/iq2000/iq2000.c, config/m32r/m32r.c,
14776         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
14777         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
14778         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
14779         config/stormy16/stormy16.c, config/v850/v850.md,
14780         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
14781
14782 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14783
14784         * config/mcore/mcore.c (block_move_sequence): Replace
14785         gen_rtx_CONST_INT with GEN_INT.
14786
14787 2004-02-02  Jan Hubicka  <jh@suse.cz>
14788
14789         * alias.c (record_set): Use hard_regno_nregs.
14790         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
14791         * builtins.c (apply_args_size): Likewise.
14792         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
14793         mark_set_regs, add_stored_regs, mark_referenced_regs,
14794         insert_restore, insert_save, insert_one_insn): Likewise.
14795         * cfgcleanup.c: Include regs.h
14796         (mark_effect, mentions_nonequal_regs): Likewise.
14797         * cfgrtl.c (mark_killed_regs): Likewise
14798         * combine.c (update_table_tick, record_value_for_reg,
14799         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14800         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14801         reg_bitfield_target_p, distribute_notes): Likewise.
14802         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14803         exp_equiv_p, cse_insn): Likewise.
14804         * cselib.c (cselib_lookup): Likewise.
14805         (cselib_invalidate_regno, cselib_record_set): Likewise.
14806         * df.c (df_ref_record): Likewise.
14807         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14808         Likewise.
14809         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14810         count_or_remove_death_notes_bb): Likewise.
14811         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14812         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14813         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14814         * integrate.c (mark_stores): Likewise.
14815         * jump.c (delete_prior_computation): Likewise.
14816         * lcm.c (reg_dies, reg_becomes_live): Likewise.
14817         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14818         * loop.c (LOOP_REGNO_NREGS): Likewise.
14819         * postreload.c (reload_combine, reload_combine_note_store,
14820         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14821         * ra-colorize.c (combine, color_usable_p, get_free_reg,
14822         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
14823         try_recolor_web, insert_coalesced_conflicts, check_colors,
14824         break_precolored_alias): Likewise.
14825         * ra-debug.c: Include regs.h
14826         (ra_print_rtx_object): Likewise.
14827         * ra-rewrite (choose_spill_colors): Likewise.
14828         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14829         * ra.c (init_ra): Likewise.
14830         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14831         peep2_find_free_register): Likewise.
14832         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14833         * regclass.c (hard_regno_nregs): New array.
14834         (init_reg_modes_once): Initialize it.
14835         (choose_hard_reg_mode): Use it.
14836         (record_reg_classes): Likewise.
14837         * regmove.c (mark_flags_life_zones): Likewise.
14838         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
14839         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
14840         copy_value, maybe_mode_change, find_oldest_value_reg,
14841         copyprop_hardreg_forward_1):
14842         * regs.h (hard_regno_nregs): Declare.
14843         * realod.c (reload_inner_reg_of_subreg): Use it.
14844         (push_reload, combine_reloads, find_dummy_reload,
14845         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
14846         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
14847         reload_adjust_reg_for_mode): Likewise.
14848         * reload1.c (compute_use_by_pseudos, count_pseudo,
14849         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14850         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14851         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14852         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14853         delete_output_reload): Likewise.
14854         * resource.c (update_live_status, mark_referenced_resources,
14855         mark_set_resources, mark_target_live_regs): Likewise.
14856         * rtlanal.c:  Include regs.h
14857         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14858         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14859         subreg_regno_offset, subreg_offset_representable_p,
14860         hoist_test_store): Likewise.
14861         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14862         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14863         * stmt.c: Include regs.h
14864         (decl_conflicts_with_clobbers_p): Likewise.
14865         * varasm.c (make_decl_rtl): Likewise.
14866         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14867
14868 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14869
14870         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14871         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14872         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14873         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14874         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14875         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14876         config/iq2000/iq2000.h, config/m32r/m32r.c,
14877         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14878         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14879         config/mcore/mcore.c, config/mcore/mcore.h,
14880         config/mcore/mcore.md, config/mips/mips.c,
14881         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14882         config/rs6000/rs6000.c, config/s390/s390.c,
14883         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14884         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14885         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14886
14887 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14888
14889         * config/h8300/h8300.md (two peephole2's): New.
14890
14891 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14892
14893         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14894         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14895         (ASM_CPU_SPEC): Likewise
14896         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14897         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14898
14899 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14900
14901         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14902         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14903         (expand_builtin): Always call expand_builtin_pow.
14904
14905 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14906
14907         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14908         BUILT_IN_SIGNBITL): New GCC builtins.
14909         * builtins.c (expand_builtin_signbit): New function to RTL expand
14910         calls to signbit, signbitf and signbitl as inline intrinsics.
14911         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14912         (fold_builtin_signbit): New function to perform constant folding
14913         of signbit, signbitf and signbitl.
14914         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14915
14916         * doc/extend.texi: Document new signbit{,f,l} builtins.
14917
14918 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14919
14920         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14921
14922 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14923
14924         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14925         "mips_const_double_ok" and "simple_memory_operand", which were
14926         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14927         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14928         for removal of simple_memory_operand.
14929
14930 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14931
14932         * config/c4x/c4x.md: Use GEN_INT instead of
14933         gen_rtx (CONST_INT, ...).
14934
14935 2004-01-31  Richard Henderson  <rth@redhat.com>
14936
14937         * varasm.c (output_constant_pool): Don't zap the pool.
14938
14939 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14940
14941         * genrecog.c (decision_type): Add DT_const_int.
14942         (write_cond) [DT_const_int]: Print a comparison against small
14943         constant.
14944         (write_node): Simplify comparisons against small constants
14945         before printing tests.
14946
14947 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14948
14949         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14950         instead of gen_rtx_CONST_INT.
14951
14952 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14953
14954         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14955         instead of gen_rtx_CONST_INT.
14956
14957 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14958
14959         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14960         hook_bool_CUMULATIVE_ARGS_false.
14961         * targhooks.c (default_strict_argument_naming): Rename to
14962         hook_bool_CUMULATIVE_ARGS_false.
14963         * targhooks.h: Update the prototype for
14964         default_strict_argument_naming.
14965
14966 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14967
14968         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14969         * config/sh/sh.h: Likewise.
14970         * config/sh/sh.md: Likewise.
14971
14972 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14973
14974         * doc/invoke.texi (SPARC options): Restructure and update.
14975
14976 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14977
14978         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14979         STRICT_ARGUMENT_NAMING): Poison.
14980         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14981         hook_bool_tree_false.
14982         * targhooks.c (default_promote_function_args): Remove.
14983         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14984         Don't check incoming.
14985         (default_strict_argument_naming): Don't use
14986         STRICT_ARGUMENT_NAMING.
14987         * targhooks.h: Remove the prototype for
14988         default_promote_function_args.
14989
14990 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14991
14992         * config/i386/i386-protos.h: Remove the prototype for
14993         ix86_setup_incoming_varargs.
14994         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14995         (ix86_setup_incoming_varargs): Make it static.
14996         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14997
14998 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14999
15000         * alloc-pool.c: Fix comment typos.
15001         * builtin-types.def: Likewise.
15002         * builtins.def: Likewise.
15003         * c-pretty-print.c: Likewise.
15004         * df.h: Likewise.
15005         * reload1.c: Likewise.
15006
15007 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15008
15009         * doc/invoke.texi: Follow spelling conventions.
15010         * doc/tm.texi: Likewise.
15011
15012 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15013
15014         * doc/install.texi: Fix typos.
15015         * doc/invoke.texi: Likewise.
15016
15017 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
15018
15019         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
15020         registers as pointers.
15021         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
15022
15023 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
15024
15025         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
15026         and restore it to gen_lowpart_general on exit.
15027         (gen_lowpart_for_combine): Adjust all callers to go through
15028         gen_lowpart.
15029         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
15030         and restore it to gen_lowpart_general on exit.
15031         (gen_lowpart_if_possible): Adjust all callers to go through
15032         gen_lowpart.
15033         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
15034         (gen_lowpart): Declare as pointer to function, initialized to
15035         gen_lowpart_general.
15036         * rtl.h (gen_lowpart): Declare as pointer to function.
15037
15038 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15039
15040         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15041         * calls.c: Likewise.
15042         * emit-rtl.c: Likewise.
15043         * function.c: Likewise.
15044         * reload1.c: Likewise.
15045         * config/i386/cygming.h: Likewise.
15046         * config/i386/i386.c: Likewise.
15047         * config/i386/winnt.c: Likewise.
15048
15049 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
15050
15051         PR bootstrap/9249
15052         * doc/install.texi: document --enable-__cxa_atexit option.
15053         * configure.ac: Disable __cxa_atexit if not supported.
15054         * configure: Regenerate.
15055
15056 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
15057
15058         * ggc-zone.c (ggc_free): New function.
15059
15060 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15061
15062         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
15063         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
15064         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
15065         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
15066         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
15067         config/alpha/alpha.c, config/alpha/alpha.h,
15068         config/alpha/alpha.md, config/alpha/unicosmk.h,
15069         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
15070         config/c4x/c4x-protos.h, config/c4x/c4x.md,
15071         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
15072         config/frv/frvend.c, config/i386/cygming.h,
15073         config/i386/djgpp.h, config/i386/emmintrin.h,
15074         config/i386/gthr-win32.c, config/i386/i386-interix.h,
15075         config/i386/i386-protos.h, config/i386/openbsd.h,
15076         config/i386/winnt.c, config/i386/xm-mingw32.h,
15077         config/i386/xmmintrin.h, config/ia64/ia64.md,
15078         config/iq2000/iq2000.md, config/m32r/m32r.md,
15079         config/m68k/m68k.md, config/mcore/mcore-elf.h,
15080         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
15081         config/mips/iris5gas.h, config/mips/iris6.h,
15082         config/mips/iris6gas.h, config/mips/linux.h,
15083         config/mips/mips.md, config/mips/netbsd.h,
15084         config/mips/openbsd.h, config/mips/windiss.h,
15085         config/pa/fptr.c, config/rs6000/aix.h,
15086         config/rs6000/altivec.h, config/rs6000/darwin.h,
15087         config/rs6000/xcoff.h, config/s390/s390-protos.h,
15088         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
15089         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
15090         config/sparc/sol2.h: Update copyright.
15091
15092 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
15093
15094         * Makefile.in (abs_docdir, abs_srcdir): Define.
15095         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
15096
15097 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15098
15099         * genconfig.c (main): Have CC0_P check its operand even on a
15100         target without cc0.
15101
15102 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15103
15104         * config/alpha/alpha.c: Remove mentions of deprecates macros
15105         in comments, remove some target-independent comments about target
15106         macros, and/or add minimal function comments for target hook
15107         implementations.
15108         * config/avr/avr.c: Likewise.
15109         * config/ia64/ia64.h: Likewise.
15110         * config/ip2k/ip2k.c: Likewise.
15111         * config/iq2000/iq2000.c: Likewise.
15112         * config/m32r/m32r.h: Likewise.
15113         * config/m68hc11/m68hc11.c: Likewise.
15114         * config/mcore/mcore.c: Likewise.
15115         * config/mmix/mmix.c: Likewise.
15116         * config/mn10300/mn10300.c: Likewise.
15117         * config/pa/pa.c: Likewise.
15118         * config/pdp11/pdp11.c: Likewise.
15119         * config/rs6000/rs6000.h: Likewise.
15120         * config/sh/sh.c: Likewise.
15121         * config/sh/sh.h: Likewise.
15122         * config/sparc/sparc.c: Likewise.
15123         * config/sparc/sparc.h: Likewise.
15124         * config/stormy16/stormy16.c: Likewise.
15125         * config/xtensa/xtensa.c: Likewise.
15126
15127 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15128
15129         PR optimization/12147
15130         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
15131         RELOAD_FOR_OPADDR_ADDR.
15132         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
15133         might be reused as RELOAD_FOR_OPADDR_ADDR register.
15134
15135 2004-01-30  Jan Hubicka  <jh@suse.cz>
15136
15137         * reload.c (get_secondary_mem): Fix updating of
15138         secondary_memlocs_elim_used.
15139
15140 2004-01-30  Richard Henderson  <rth@redhat.com>
15141
15142         * varasm.c (struct rtx_const, struct pool_constant): Remove.
15143         (MAX_RTX_HASH_TABLE): Remove.
15144         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
15145         (first_pool, last_pool, pool_offset): Remove.
15146         (struct rtx_constant_pool): Split out from ...
15147         (struct varasm_status): ... here.  Reference one via pointer.
15148         (struct constant_descriptor_rtx): Merge struct pool_constant.
15149         (SYMHASH): Remove.
15150         (decode_rtx_const): Remove.
15151         (const_hash_rtx, compare_constant_rtx): Remove.
15152         (record_constant_rtx): Remove.
15153         (const_desc_rtx_hash, const_desc_rtx_eq): New.
15154         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
15155         (const_rtx_hash_1, const_rtx_hash): New.
15156         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
15157         (simplify_subtraction): Use simplify_rtx.
15158         (force_const_mem): Rewrite to use new data structures.
15159         (find_pool_constant): Likewise.
15160         (get_pool_constant, get_pool_constant_mark,
15161         get_pool_constant_for_function, get_pool_mode,
15162         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
15163         (output_constant_pool_2): Split out from output_constant_pool.
15164         (output_constant_pool_1): Likewise.  Use new pool datastructures.
15165         (output_constant_pool): Zap entire pool datastructure.
15166         (mark_constant): Use new pool datastructures.
15167         (mark_constants): Use for_each_rtx.
15168         (mark_constant_pool): Use new pool datastructures.
15169
15170 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
15171
15172         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
15173         Copy operands[1] to pseudo for simplify_gen_subreg.
15174
15175 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15176
15177         * gcse.c (bypass_block): Fix a typo in the previous check-in
15178         to the file.
15179
15180 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
15181
15182         * toplev.c: Include alloc-pool.h.
15183         * Makefile.in (toplev.c): Update dependencies.
15184
15185 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15186
15187         * combine.c (simplify_shift_const, case XOR): Be careful when
15188         commuting XOR with ASHIFTRT.
15189
15190 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15191             Eric Botcazou  <ebotcazou@libertysurf.fr>
15192
15193         * config/sparc/sparc-protos.h: Remove the prototype for
15194         sparc_builtin_saveregs.
15195         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15196         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15197         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15198         (TARGET_STRUCT_VALUE_RTX): Likewise.
15199         (TARGET_RETURN_IN_MEMORY): Likewise.
15200         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15201         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15202         (sparc_builtin_saveregs): Make it static.
15203         (sparc_promote_prototypes): New.
15204         (sparc_struct_value_rtx): Likewise.
15205         (sparc_return_in_memory): Likewise.
15206         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
15207         (PROMOTE_FUNCTION_RETURN): Likewise.
15208         (RETURN_IN_MEMORY): Likewise.
15209         (STRUCT_VALUE): Likewise.
15210         (STRUCT_VALUE_INCOMING): Likewise.
15211         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15212         (STRICT_ARGUMENT_NAMING): Likewise.
15213         (PROMOTE_PROTOTYPES): Likewise.
15214
15215         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
15216
15217 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15218
15219         PR c/12818
15220         * varasm.c (const_hash_1) <STRING_CST>: Use the
15221         address to compute the hash value if flag_writable_strings.
15222         (compare_constant) <STRING_CST>: Compare the addresses
15223         if flag_writable_strings.
15224         (build_constant_desc): Do not copy the expression for a
15225         STRING_CST if flag_writable_strings.
15226
15227 2004-01-30  Jan Hubicka  <jh@suse.cz>
15228
15229         * alloc-pool.c: Include hashtab.h
15230         (alloc_pool_descriptor): New structure
15231         (alloc_pool_hash): New global variable.
15232         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
15233         (create_alloc_pool): Update statistics.
15234         (free_alloc_pool): Likewise.
15235         (pool_alloc): Likewise.
15236         (output_info): New structure
15237         (print_statistics, dump_alloc_pool_statistics): New function.
15238         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
15239         (dump_alloc_pool_statistics): Declare.
15240         * toplev.c (finalize):  Dump statistics.
15241
15242         * reload.c (secondary_memlocs_elim_used): New static variable.
15243         (get_secondary_mem): Update it.
15244         (find_reloads): Use it.
15245
15246 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
15247
15248         * toplev.c: Fix broken checkin of 2003-12-30, again.
15249
15250 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15251
15252         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
15253         s390*-*-* targets by specifying a 'nop' insn.
15254         * configure: Regenerate.
15255
15256 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15257
15258         PR target/11475
15259         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
15260
15261 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15262
15263         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
15264         of addr when creating MEM copy.
15265
15266 2004-01-29  Devang Patel  <dpatel@apple.com>
15267
15268         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
15269
15270 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15271
15272         PR inline-asm/6162
15273         * reload.c (find_reloads): Only support one pair of commutative
15274         operands.
15275
15276 2004-01-29  Roger Sayle  <roger@eyesopen.com>
15277
15278         PR java/13824
15279         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
15280         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
15281         recursion.
15282
15283 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15284
15285         * config/frv/frv.c: Don't mention deprecated macros in
15286         comments.  Remove some target-independent comments about
15287         target macros.
15288         * config/frv/frv.h: Likewise.
15289
15290 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15291
15292         * cfghooks.c (split_block): Set probability and count of the
15293         new edge.
15294
15295 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
15296
15297         * dwarf2out.c (struct die_struct): Added field decl_id.
15298         (decl_die_table): Changed to hash table.
15299         (decl_die_table_allocated): Deleted.
15300         (decl_die_table_in_use): Deleted.
15301         (DECL_DIE_TABLE_INCREMENT): Deleted.
15302         (decl_die_table_hash): New function.
15303         (decl_die_table_eq): New function.
15304         (lookup_decl_die): Lookup in a hash table.
15305         (equate_decl_number_to_die): Insert into a hash table.
15306         (dwarf2out_init): Init hash table decl_die_table.
15307
15308 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15309
15310         PR optimization/13424
15311         * expr.c (store_constructor): Revert 2003-12-03 change.
15312
15313         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
15314         expected before returning early.  Avoid sharing RTL if they
15315         need to be changed.
15316
15317         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15318         handling so that memory attributes are preserved.  Don't call
15319         ix86_set_move_mem_attrs.
15320         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15321         (ix86_expand_clrstr): Rename src argument to
15322         dst.  Rework rep_stos and strset handling so that memory attributes
15323         are preserved.
15324         (ix86_expand_strlen): Pass src argument to
15325         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
15326         memory attributes are preserved.
15327         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
15328         change_address instead of gen_rtx_MEM.
15329         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15330         expanders.
15331         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15332         strmovqi, strmovqi_rex64): Remove.
15333         (rep_mov*, strmov*): Prefix insn names with *.
15334         (strset, strset_singleop, rep_stos): New expanders.
15335         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15336         strsetqi, strsetqi_rex64): Remove.
15337         (rep_stos*, strset*): Prefix insn names with *.
15338         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
15339         to SImode.
15340         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15341         are preserved.
15342         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15343         Prefix insn names with *.
15344         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15345         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15346         (strlenqi_1): New expander.
15347         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15348
15349 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15350
15351         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15352         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15353         verify_flow_info): Declaration removed.
15354         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15355         (debug_bb, debug_bb_n): Add argument to dump_bb call.
15356         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15357         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15358         instead of delete_block.
15359         * cfghooks.c: Include timevar.h and toplev.h.
15360         (cfg_hooks): Define here.
15361         (verify_flow_info, dump_bb): Moved from cfg.c.
15362         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15363         split_block, split_block_after_labels, move_block_after,
15364         delete_basic_block, split_edge, create_basic_block,
15365         create_empty_bb, can_merge_blocks_p, merge_blocks,
15366         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15367         New functions.
15368         * cfghooks.h (struct cfg_hooks): Added fields name,
15369         make_forwarder_block, tidy_fallthru_edge and
15370         move_block_after. Changed type of verify_flow_info, dump_bb,
15371         split_block fields. Renamed cfgh_split_edge and delete_block
15372         fields.
15373         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15374         split_block, delete_block, split_edge, create_basic_block,
15375         can_merge_blocks_p, merge_blocks): Macros removed.
15376         (cfg_hooks): Do not export.
15377         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15378         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15379         move_block_after, delete_basic_block, split_edge, create_basic_block,
15380         create_empty_bb, can_merge_blocks_p, merge_blocks,
15381         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15382         Declare.
15383         (cfg_layout_rtl_cfg_hooks): Declare.
15384         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15385         New functions.
15386         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15387         (redirect_edge_with_latch_update): Removed.
15388         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15389         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15390         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15391         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15392         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15393         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15394         cfghooks.c.
15395         (rtl_create_basic_block): Coding style fix.
15396         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15397         rtl_make_forwarder_block): New functions.
15398         (update_cfg_after_block_merging): Removed.
15399         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15400         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15401         to dump_bb.
15402         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15403         find_if_case_2): Don't update dominators.
15404         * timevar.def (TV_CFG_VERIFY): New.
15405         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15406         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15407         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15408         (remove_bbs): Don't call remove_bbs.
15409         (create_preheader): Use make_forwarder_block.
15410         (mfb_keep_just, mfb_update_loops): New static functions.
15411
15412 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15413
15414         * config/avr/avr.h: Remove target-independent comments about
15415         target macros.
15416
15417 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15418
15419         * timevar.c (timevar_print): Mention when checking is enabled.
15420
15421 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15422
15423         * c-lex.c (c_lex): Rename to...
15424         (c_lex_with_flags): Add new parameter to get CPP flags.
15425         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15426         * c-pragma.h (c_lex_with_flags): Declare.
15427
15428 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15429
15430         * config/mcore/mcore.c (mcore_external_libcall): Add a
15431         comment.
15432         (mcore_return_in_memory): Likewise.
15433
15434 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15435
15436         * config/mcore/mcore-protos.h: Remove the prototype for
15437         mcore_setup_incoming_varargs.
15438         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15439         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15440         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15441         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15442         (TARGET_STRUCT_VALUE_RTX): Likewise.
15443         (TARGET_RETURN_IN_MEMORY): Likewise.
15444         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15445         (mcore_setup_incoming_varargs): Make it static.  Receive the
15446         first argument by reference.  Add argument second_time.
15447         (mcore_external_libcall): New.
15448         (mcore_return_in_memory): Likewise.
15449         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15450         (PROMOTE_FUNCTION_RETURN): Likewise.
15451         (STRUCT_VALUE): Likewise.
15452         (RETURN_IN_MEMORY): Likewise.
15453         (SETUP_INCOMING_VARARGS): Likewise.
15454         (PROMOTE_PROTOTYPES): Likewise.
15455         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15456
15457 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15458
15459         * config/m32r/m32r-protos.h: Remove the prototype for
15460         m32r_setup_incoming_varargs.
15461         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15462         (TARGET_STRUCT_VALUE_RTX): Likewise.
15463         (TARGET_RETURN_IN_MEMORY): Likewise.
15464         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15465         (m32r_return_in_memory): New.
15466         (m32r_setup_incoming_varargs): Make it static.
15467         * config/m32r/m32r.h: Remove #undef of
15468         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15469         definitions of PROMOTE_FUNCTION_ARGS and
15470         PROMOTE_FUNCTION_RETURN.
15471         (PROMOTE_PROTOTYPES): Remove.
15472         (RETURN_IN_MEMORY): Likewise.
15473         (STRUCT_VALUE): Likewise.
15474
15475 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15476
15477         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15478         (TARGET_STRUCT_VALUE_RTX): Likewise.
15479         (m68k_struct_value_rtx): Likewise.
15480         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15481         STRUCT_VALUE_REGNUM.
15482         (PROMOTE_PROTOTYPES): Remove.
15483         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15484         STRUCT_VALUE_REGNUM.
15485         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15486         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15487
15488 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15489
15490         * config/stormy16/stormy16.c
15491         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15492         TARGET_BUILD_BUILTIN_VA_LIST.
15493
15494 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15495
15496         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15497         (TARGET_STRUCT_VALUE_RTX): Likewise.
15498         (TARGET_RETURN_IN_MEMORY): Likewise.
15499         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15500         (v850_return_in_memory): Likewise.
15501         (v850_setup_incoming_varargs): Likewise.
15502         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15503         (SETUP_INCOMING_VARARGS): Likewise.
15504         (RETURN_IN_MEMORY): Likewise.
15505         (STRUCT_VALUE): Likewise.
15506
15507 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15508
15509         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15510         (fr30_setup_incoming_varargs): Don't use
15511         STRICT_ARGUMENT_NAMING.
15512         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15513         (STRICT_ARGUMENT_NAMING): Likewise.
15514
15515 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15516
15517         * config/frv/frv-protos.h: Remove the prototype for
15518         frv_expand_builtin_saveregs.
15519         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15520         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15521         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15522         STRUCT_VALUE_REGNUM.
15523         (frv_expand_builtin_saveregs): Make it static.
15524         (frv_struct_value_rtx): New.
15525         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15526
15527 2004-01-29  Jan Hubicka  <jh@suse.cz>
15528
15529         PR c++/12850
15530         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15531         initial pointers.
15532         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15533         for functions that will be only inlined.
15534         (cgraph_mark_function_to_output): Likewise.
15535         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15536         do not clear function body.
15537         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15538         (tree_rest_of_compilation): Reorganize the logic releasing function
15539         body to use callgraph datastructure.
15540
15541 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15542
15543         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15544         to register_operand.
15545
15546 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15547
15548         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15549         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15550         match_operand expressions so that all match_dups appear
15551         lexically after their corresponding match_operands.
15552
15553 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15554
15555         * config/h8300/h8300.c (WORD_REG_USED): Use
15556         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15557         (compute_saved_regs): Likewise.
15558         (h8300_expand_prologue): Likewise.  Allocate locals after
15559         saving registers.
15560         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15561         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15562         registers.
15563         (h8300_initial_elimination_offset): Adjust for the new frame
15564         layout, which swaps flips the order of locals and saved
15565         registers.
15566         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15567         (HARD_FRAME_POINTER_REGNUM): New.
15568         (ELIMINABLE_REGS): Add an elimination rule from
15569         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15570         (REGISTER_NAMES): Add fp.
15571         * config/h8300/h8300.md (FP_REG): Change to 11.
15572         (HFP_REG): New.
15573
15574 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15575
15576         * genrecog.c (write_node): Remove a useless local variable.
15577
15578 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15579
15580         * Makefile.in (options.c options.h): Use stamp file s-options to
15581         avoid unnecessary rebuilds.
15582         (options.o): New target listing dependencies.
15583         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15584         (STAGESTUFF): Add s-gtyp-gen.
15585
15586 2004-01-28  Richard Henderson  <rth@redhat.com>
15587
15588         * ggc.h (ggc_free): Declare.
15589         * ggc-common.c (ggc_realloc): Use it.
15590         * ggc-page.c: Remove lots of inline markers.
15591         (globals): Add free_object_list.
15592         (ggc_alloc): Tidy.
15593         (ggc_free, validate_free_objects): New.
15594         (poison_pages): Provide default.
15595         (ggc_collect): Call validate_free_objects; emit markers to
15596         the debug file.
15597
15598 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15599             Jim Wilson  <wilson@specifixinc.com>
15600
15601         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15602         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15603         scratch pointer.
15604         (ia64_secondary_reload_class): Delete case GR_REGS.
15605         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15606         Do not allocate a scratch register.
15607         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15608
15609 2004-01-28  Jan Hubicka  <jh@suse.cz>
15610
15611         * gcse.c (bypass_block): Prevent edges to be unified when we are
15612         about to emit compenstation code.
15613
15614 2004-01-28  Nick Clifton  <nickc@redhat.com>
15615
15616         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15617         the setcwx insn into a register.
15618
15619 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15620
15621         * config/fp-bit.c (pack_d): When using paired doubles to implement
15622         a long double, round the high part separately.
15623         (unpack_d): Fix the case in which the high part is a power of two
15624         and the low part is a nonzero value of the opposite sign.
15625
15626 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15627
15628         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15629         (TARGET_STRUCT_VALUE_RTX): Likewise.
15630         (c4x_external_libcall): Likewise.
15631         (c4x_struct_value_rtx): Likewise.
15632         * config/c4x/c4x.h: Remove.
15633         (STRUCT_VALUE_REGNUM): Likewise.
15634         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15635
15636 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15637
15638         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15639         (TARGET_STRUCT_VALUE_RTX): Likewise.
15640         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15641         (STRUCT_VALUE): Likewise.
15642         (PROMOTE_PROTOTYPES): Likewise.
15643
15644 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15645
15646         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15647         CONST_INT before using INTVAL.
15648
15649 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15650
15651         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15652         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15653         frame if !TARGET_BACKCHAIN.
15654         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15655         TARGET_BACKCHAIN.
15656         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15657
15658 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15659
15660         * ia64.c (ia64_function_arg): When placing HFAs in integer
15661         registers, do not special case the mode used for complex
15662         types.  Do not advance int_regs until the current register
15663         is full.
15664
15665 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15666
15667         PR target/7297
15668         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15669
15670 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15671
15672         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15673         slow, unaligned loads and stores while debugging.  Fix formatting.
15674
15675 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15676
15677         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15678         of computing wmode.
15679         (restore_stack_nonlocal): Same.
15680
15681 2004-01-27  Devang Patel <dpatel@apple.com>
15682
15683         * Makefile.in (dwarf2out.o): Depend on input.h
15684         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15685         imported_module_or_decl.
15686         (xcoff_debug_hooks): Same.
15687         * sdbout.c (sdb_debug_hooks): Same.
15688         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15689         * debug.c (do_nothing_debug_hooks): Same.
15690         (debug_nothing_tree_tree): New function.
15691         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15692         * dwarf2out.c: Include input.h.
15693         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15694         (remove_child_TAG): New function.
15695         (dwarf_tag_name): Handle DW_TAG_imported_module.
15696         (gen_subprogram_die): Equate decl number to declaration die. Do not
15697         remove all children dies while reusing declaration die for definition.
15698         Instead, selectively remove only formal parameters.
15699         (gen_variable_die): Equate variable decl to declaration die.
15700         (gen_field_die): Equate field decl to line number.
15701         (force_namespace_die): Replace it with ...
15702         (force_decl_die): ... this.
15703         (force_type_die): New function.
15704         (setup_namespace_context): Replace use of force_namespace_die() with
15705         force_decl_die().
15706         (gen_namespace_die): Same.
15707         (dwarf2out_imported_module_or_decl): New function.
15708
15709 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
15710
15711         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15712         on CQImode and CHImode incoming arguments in register a7.
15713         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15714         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15715         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15716         xtensa_copy_incoming_a7 before reload.
15717
15718 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15719
15720         * coverage.c (get_coverage_counts): Give a different message
15721         if flag_guess_branch_prob is set.
15722         * predict.c (counts_to_freqs): Return an int.
15723         (estimate_bb_frequencies): If counts_to_freqs returns zero,
15724         calculate estimates.
15725
15726 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
15727
15728         * config/iq2000/iq2000-protos.h: Remove the prototype for
15729         iq2000_setup_incoming_varargs.
15730         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15731         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15732         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15733         (TARGET_STRUCT_VALUE_RTX): Likewise.
15734         (TARGET_RETURN_IN_MEMORY): Likewise.
15735         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15736         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15737         (iq2000_return_in_memory): Likewise.
15738         (iq2000_setup_incoming_varargs): Make it static.  Receive the
15739         first argument by reference.
15740         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
15741         (PROMOTE_FUNCTION_RETURN): Likewise.
15742         (PROMOTE_PROTOTYPES): Likewise.
15743         (RETURN_IN_MEMORY): Likewise.
15744         (STRUCT_VALUE): Likewise.
15745         (SETUP_INCOMING_VARARGS): Likewise.
15746         (STRICT_ARGUMENT_NAMING): Likewise.
15747
15748 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
15749
15750         * fixinc/fixinc.c (test_test): Initialize res.
15751         (start_flexer): Initialize pz_cmd_save.
15752
15753 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15754
15755         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
15756         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
15757
15758 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15759
15760         PR 7198
15761         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
15762         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
15763         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
15764         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
15765         Possibly rename pattern for consistency.
15766         Remove ??? comments suggesting that this be done.
15767         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
15768         New patterns.
15769         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
15770         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
15771         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
15772         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
15773         Update to match.
15774
15775 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
15776
15777         * config/arm/arm.c (output_return_instruction): Only restore IP
15778         into SP if frame_pointer_needed.
15779
15780 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15781
15782         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15783         for SCmode and DCmode if ARCH32.
15784         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
15785         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
15786         if ARCH32.
15787         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
15788         if ARCH32.
15789         (BASE_OUTGOING_VALUE_REG): Likewise.
15790
15791 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15792
15793         PR target/10904
15794         PR target/13058
15795         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15796         Forbid mode changes from SImode for lower FP regs if ARCH64.
15797
15798 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15799
15800         * Makefile.in (bt-load.o): Depend on except.h.
15801         * bt-load.c (except.h): #include.
15802         (compute_defs_uses_and_gen): If insn at end of BB can throw
15803         within this function, consider registers used by it unavailable for
15804         btr migration.
15805         (move_btr_def): If insn at end of BB can throw, insert before rather
15806         than after.
15807
15808         * flags.h (flag_btr_bb_exclusive): Declare.
15809         * toplev.c (flag_btr_bb_exclusive): New variable.
15810         (f_options): Add btr-bb-exclusive.
15811         * bt-load.c (augment_live_range): Restore old behaviour if
15812         flag_btr_bb_exclusive is set.
15813         * common.opt: Add entry for -fbtr-bb-exclusive.
15814         * opts.c (common_handle_options): Same.
15815         * doc/invoke.texi: Document -fbtr-bb-exclusive.
15816
15817         * bt-load.c (btrs_live_at_end): New variable.
15818         (compute_defs_uses_and_gen): Compute its pointed-to array.
15819         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15820         (augment_live_range): When augmenting with a new dominator,
15821         use only its btrs_live_at_end set, but also add in the full set
15822         of the old dominator.
15823         (btr_def_live_range): Use btrs_live_at_end.
15824         (move_btr_def): Set other_btr_uses_before_def, and move new set
15825         to the end of the basic block, if appropriate.
15826         (migrate_btr_defs): Allocate and free btrs_live_at_end.
15827
15828         * bt-load.c (basic_block_freq): Remove outdated comment.
15829
15830 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
15831
15832         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15833         (PREDICATE_CODES): Remove duplicate.
15834         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
15835         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
15836         (MASK_PROFILE_KERNEL): Adjust define.
15837
15838 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
15839
15840         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
15841         of long string literals from 32 bytes to sizeof (void *) when !-Os
15842         and to 1 with -Os.
15843
15844 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15845
15846         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
15847         constant addresses in the normal mode.
15848
15849 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15850
15851         * system.h (CHAR_BITFIELD): Delete.
15852         (BOOL_BITFIELD): New.
15853         * c-decl.c (c_scope): Use BOOL_BITFIELD.
15854         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15855
15856 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15857
15858         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15859         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15860         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15861         (TARGET_STRUCT_VALUE_RTX): Likewise.
15862         (TARGET_RETURN_IN_MEMORY): Likewise.
15863         (arc_return_in_memory): Likewise.
15864         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15865         (PROMOTE_FUNCTION_RETURN): Likewise.
15866         (RETURN_IN_MEMORY): Likewise.
15867         (STRUCT_VALUE): Likewise.
15868
15869 2004-01-26  Richard Henderson  <rth@redhat.com>
15870
15871         * c-parse.in (extension): Use itype.
15872         (SAVE_EXT_FLAGS): Don't allocate a tree.
15873         (RESTORE_EXT_FLAGS): Don't read a tree.
15874
15875 2004-01-26  Jan Hubicka  <jh@suse.cz>
15876
15877         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15878         to datastructure to be recycled.
15879
15880 2004-01-25  Jan Hubicka  <jh@suse.cz>
15881
15882         * genextract.c (main): Do not output the memset when not checking.
15883
15884 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15885
15886         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15887         switch statement instead of a chain of if statements.
15888
15889 2004-01-26  Jeff Law  <law@redhat.com>
15890
15891         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15892         acute accents for Petur Runolfsson's entry.
15893
15894 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15895
15896         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15897         (TARGET_RETURN_IN_MEMORY): Likewise.
15898         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15899         (RETURN_IN_MEMORY): Likewise.
15900
15901 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15902
15903          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15904          unaligned load/store into smaller loads and stores.
15905
15906 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15907
15908         * function.c (assign_parms): Do not assign
15909         long long argument to memory in prologue if
15910         is it loaded into register.
15911
15912 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15913
15914          PR middle-end/13779
15915          * expr.c (emit_group_load): split constant
15916          correctly into register components of PARALLEL insn.
15917
15918 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15919
15920         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15921         Use adjust_address_nv directly with appropriate mode.
15922         (restore_stack_nonlocal): Ditto.
15923
15924 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15925
15926         * config/xtensa/xtensa-protos.h: Remove the prototype for
15927         xtensa_builtin_saveregs.
15928         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15929         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15930         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15931         (TARGET_STRUCT_VALUE_RTX): Likewise.
15932         (TARGET_RETURN_IN_MEMORY): Likewise.
15933         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15934         (xtensa_builtin_saveregs): Make it static.
15935         (xtensa_return_in_memory): New.
15936         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15937         (PROMOTE_FUNCTION_RETURN): Likewise.
15938         (PROMOTE_PROTOTYPES): Likewise.
15939         (STRUCT_VALUE): Likewise.
15940         (RETURN_IN_MEMORY): Likewise.
15941         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15942
15943 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15944
15945         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15946         (arm_setup_incoming_varargs): Likewise.
15947         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15948
15949 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15950
15951         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15952         (cris_setup_incoming_varargs): Likewise.
15953         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15954
15955 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15956
15957         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15958         (ns32k_struct_value_rtx): Likewise.
15959         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15960         NS32K_STRUCT_VALUE_REGNUM.
15961
15962 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15963
15964         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15965         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15966         (TARGET_STRUCT_VALUE_RTX): Likewise.
15967         (arm_struct_value_rtx): Likewise.
15968         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15969         (STRUCT_VALUE): Likewise.
15970         (STRUCT_VALUE_REGNUM): Likewise.
15971         (PROMOTE_PROTOTYPES): Likewise.
15972
15973 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15974
15975         * config/ia64/ia64-protos.h: Remove the prototype for
15976         ia64_setup_incoming_varargs and ia64_return_in_memory.
15977         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15978         (TARGET_RETURN_IN_MEMORY): Likewise.
15979         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15980         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15981         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15982         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15983         (ia64_return_in_memory): Make it static.  Change the return
15984         type to bool from int.  Add an argument.
15985         (ia64_struct_value_rtx): New.
15986         * config/ia64/ia64.h: Remove commented-out definitions of
15987         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15988         PROMOTE_PROTOTYPES.
15989         (RETURN_IN_MEMORY): Remove.
15990         (STRUCT_VALUE_REGNUM): Likewise.
15991         (STRICT_ARGUMENT_NAMING): Likewise.
15992
15993 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15994
15995         PR target/13666
15996         * config/sparc/sparc.c (function_arg_union_value): New function.
15997         (function_arg): Use it to deal with unions.
15998         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15999         Replace a conditional statement by a simpler one.
16000
16001 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
16002
16003         * config/mips/mips.c (mips16_optimize_gp): Delete.
16004         (mips_reorg): Don't call it.
16005
16006 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16007
16008         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
16009         (floatunsqihf2): Remove operand 6.
16010         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
16011         fix patterns.
16012         (ldi_conditional, ldf_conditional): Validate operands.
16013
16014 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16015
16016         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
16017         (HAVE_GAS_HIDDEN): Undefine as interim measure.
16018
16019 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16020
16021         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
16022         memory references if TARGET_EXPOSE_LDP nonzero.
16023
16024 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16025
16026         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
16027
16028 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16029
16030         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
16031         invalid operand combinations.
16032
16033 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16034
16035         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
16036         c4x_legitimate_address_p.  Fix post_modify check.
16037
16038         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
16039         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
16040
16041 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16042
16043         * config/pa/pa-protos.h: Remove the prototype for
16044         hppa_builtin_saveregs.  Add a prototype for
16045         pa_return_in_memory.
16046         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
16047         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16048         (TARGET_STRUCT_VALUE_RTX): Likewise.
16049         (TARGET_RETURN_IN_MEMORY): Likewise.
16050         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16051         (pa_struct_value_rtx): Likewise.
16052         (pa_return_in_memory): Likewise.
16053         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
16054         PA_STRUCT_VALUE_REGNUM.
16055         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
16056         (EXPAND_BUILTIN_SAVEREGS): Remove.
16057         (PROMOTE_PROTOTYPES): Likewise.
16058         (PROMOTE_FUNCTION_RETURN): Likewise.
16059
16060 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16061
16062         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
16063         (TARGET_STRUCT_VALUE_RTX): Likewise.
16064         (vax_struct_value_rtx): Likewise.
16065         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
16066         VAX_STRUCT_VALUE_REGNUM.
16067         (PROMOTE_PROTOTYPES): Remove.
16068
16069 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16070
16071         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
16072
16073 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
16074
16075         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
16076         and MIPS64 have HI/LO interlocks.  Update comment.
16077
16078 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16079
16080         * config/stormy16/stormy16-protos.h: Remove the prototype for
16081         xstormy16_setup_incoming_varargs.
16082         * config/stormy16/stormy16.c
16083         (xstormy16_setup_incoming_varargs): Remove.
16084         (xstormy16_return_in_memory): New.
16085         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
16086         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16087         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16088         (TARGET_STRUCT_VALUE_RTX): Likewise.
16089         (TARGET_RETURN_IN_MEMORY): Likewise.
16090         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
16091         (PROMOTE_FUNCTION_RETURN): Likewise
16092         (PROMOTE_PROTOTYPES): Likewise
16093         (RETURN_IN_MEMORY): Likewise
16094         (STRUCT_VALUE): Likewise
16095         (SETUP_INCOMING_VARARGS): Likewise
16096
16097 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16098
16099         * config/mips/mips.c (mips_offset_within_object_p): New function.
16100         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
16101         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
16102         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
16103
16104 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16105
16106         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
16107         (PROMOTE_FUNCTION_RETURN): Likewise.
16108
16109 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16110
16111         * config/mn10300/mn10300-protos.h: Remove the prototype for
16112         mn10300_builtin_saveregs.
16113         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
16114         (TARGET_STRUCT_VALUE_RTX): Likewise.
16115         (TARGET_RETURN_IN_MEMORY): Likewise.
16116         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16117         (mn10300_return_in_memory): Likewise.
16118         (mn10300_builtin_saveregs): Make it static.
16119         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
16120         (RETURN_IN_MEMORY): Likewise.
16121         (STRUCT_VALUE): Likewise.
16122         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16123
16124 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
16125
16126         PR bootstrap/13853
16127         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
16128
16129 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16130
16131         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
16132         using ccr.
16133
16134 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16135
16136         * config/i860/i860-protos.h: Remove the prototype for
16137         i860_saveregs.
16138         * config/i860/i860.c (i860_saveregs): Make it static.
16139         (i860_struct_value_rtx): New.
16140         (TARGET_STRUCT_VALUE_RTX): Likewise.
16141         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16142         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
16143         I860_STRUCT_VALUE_REGNUM.
16144         (EXPAND_BUILTIN_SAVEREGS): Remove.
16145
16146 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16147
16148         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
16149         (TARGET_RETURN_IN_MEMORY): Likewise.
16150         (m68hc11_struct_value_rtx): Likewise.
16151         (m68hc11_return_in_memory): Likewise.
16152         * config/m68hc11/m68hc11.h: Remove a commented-out definition
16153         of PROMOTE_PROTOTYPES.
16154         (RETURN_IN_MEMORY): Remove.
16155         (STRUCT_VALUE_REGNUM): Likewise.
16156
16157 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16158
16159         * config/mmix/mmix-protos.h: Remove the prototype for
16160         mmix_setup_incoming_varargs.
16161         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16162         (TARGET_STRUCT_VALUE_RTX): Likewise.
16163         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16164         (mmix_setup_incoming_varargs): Make it static.
16165         (mmix_struct_value_rtx): New.
16166         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
16167         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
16168         (STRUCT_VALUE_REGNUM): Remove.
16169         (SETUP_INCOMING_VARARGS): Likewise.
16170
16171 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16172
16173         * config/mips/mips-protos.h: Remove the prototypes for
16174         mips_setup_incoming_varargs and mips_return_in_memory.
16175         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16176         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16177         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16178         (TARGET_STRUCT_VALUE_RTX): Likewise.
16179         (TARGET_RETURN_IN_MEMORY): Likewise.
16180         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16181         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16182         (mips_setup_incoming_varargs): Match the prototype for
16183         TARGET_SETUP_INCOMING_VARARGS.
16184         (mips_return_in_memory): Make it static.  Add argument fntype.
16185         (mips_strict_argument_naming): New.
16186         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
16187         (PROMOTE_FUNCTION_ARGS): Likewise.
16188         (PROMOTE_FUNCTION_RETURN): Likewise.
16189         (STRUCT_VALUE): Likewise.
16190         (RETURN_IN_MEMORY): Likewise.
16191         (SETUP_INCOMING_VARARGS): Likewise.
16192         (STRICT_ARGUMENT_NAMING): Likewise.
16193
16194 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16195
16196         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
16197         (TARGET_RETURN_IN_MEMORY): Likewise.
16198         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16199         (ip2k_return_in_memory): Likewise.
16200         (ip2k_setup_incoming_varargs): Likewise.
16201         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
16202         (STRUCT_VALUE): Likewise.
16203         (STRUCT_VALUE_INCOMING): Likewise.
16204         (SETUP_INCOMING_VARARGS): Likewise.
16205
16206 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16207
16208         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
16209         (TARGET_RETURN_IN_MEMORY): Likewise.
16210         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16211         (avr_return_in_memory): Remove.
16212         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
16213         (STRUCT_VALUE): Likewise.
16214         (STRUCT_VALUE_INCOMING): Likewise.
16215         (STRICT_ARGUMENT_NAMING): Likewise.
16216
16217 2004-01-25  Jan Hubicka  <jh@suse.cz>
16218
16219         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
16220
16221 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16222
16223         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
16224         (mips_regno_mode_ok_for_base_p): Declare.
16225         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
16226         (FRAME_POINTER_REGNUM): Renumber to 78.
16227         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
16228         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
16229         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
16230         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
16231         (REG_MODE_OK_FOR_BASE_P): Likewise.
16232         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
16233         entry for 77 to "$arg" and entry for 78 to "$frame".
16234         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
16235         (mips_reg_mode_ok_for_base_p): Remove.
16236         (mips_regno_mode_ok_for_base_p): New function, derived from old
16237         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
16238         restrictions unless we're being strict.
16239         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
16240
16241 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16242
16243         * c-common.h: Fix comment typos.
16244         * c-decl.c: Likewise.
16245         * cgraphunit.c: Likewise.
16246         * combine.c: Likewise.
16247         * et-forest.c: Likewise.
16248         * flow.c: Likewise.
16249         * function.c: Likewise.
16250         * ifcvt.c: Likewise.
16251         * integrate.c: Likewise.
16252         * jump.c: Likewise.
16253         * postreload.c: Likewise.
16254         * varray.c: Likewise.
16255
16256 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16257
16258         * doc/frontends.texi: Update copyright.
16259         * doc/gcov.texi: Likewise.
16260         * doc/gty.texi: Likewise.
16261         * doc/sourcebuild.texi: Likewise.
16262         * doc/standards.texi: Likewise.
16263
16264 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
16265
16266         PR target/12978
16267         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
16268         Remove movstrqi_small because it conflicts with movstrqi_large.
16269
16270 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16271
16272         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16273         (TARGET_STRUCT_VALUE_RTX): Likewise.
16274         (cris_struct_value_rtx): Likewise.
16275         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
16276         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
16277         STRUCT_VALUE_REGNUM.
16278         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
16279
16280 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
16281
16282         PR bootstrap/13848
16283         * cse.c (cse_cc_succs): Change the mode of the source expression
16284         as soon as decide we need a new mode.  Don't permit changing modes
16285         if we found a match in a successor block.
16286         (cse_condition_code_reg): Save original mode of source expression
16287         so that we know whether we have to change the mode in other
16288         insns.
16289
16290 2004-01-24  Jan Hubicka  <jh@suse.cz>
16291
16292         * emit-rtl.c (change_address, adjust_address_1, offset_address,
16293         widen_memory_access):  Return early when there is nothing to change.
16294
16295 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
16296
16297         * simplify-rtx.c (simplify_relational_operation): Don't
16298         simplify address == constant into address + -constant == 0.
16299
16300 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16301
16302         * gcc.c (process_command): Don't internationalize the
16303         Copyright message.
16304         * mips-tfile.c (main): Likewise.
16305
16306 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
16307
16308         * cse.c: (cse_cc_succs) Fix comparison warning.
16309
16310 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16311
16312         * config/h8300/h8300.md: Remove extraneous USE in expanders.
16313
16314 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16315
16316         * config/h8300/h8300-protos.h: Provide prototypes for
16317         h8300_legitimate_constant_p and h8300_legitimate_address_p.
16318         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16319         (h8300_rtx_ok_for_base_p): Likewise.
16320         (h8300_legitimate_address_p): Likewise.
16321         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16322         h8300_legitimate_constant_p.
16323         (RTX_OK_FOR_BASE_P): Remove.
16324         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16325
16326 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16327
16328         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16329         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16330         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16331         (REG_OK_FOR_BASE_STRICT_P): Likewise.
16332         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16333         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16334         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16335         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16336
16337 2004-01-24  Jan Hubicka  <jh@suse.cz>
16338
16339         * cselib.c (remove_useless_values):  Do not access discarded values.
16340
16341 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
16342
16343         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16344         arrays.
16345
16346 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16347
16348         * recog.c: Fix a typo in copyright.
16349
16350 2004-01-23  Andrew Pinski  <apinski@apple.com>
16351
16352         * config/rs6000/rs6000.md (call): Fix misappiled patch.
16353         (call_value): Likewise.
16354
16355 2004-01-23  Richard Henderson  <rth@redhat.com>
16356
16357         PR opt/12941
16358         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16359         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16360         if SHIFT_COUNT_TRUNCATED is set.
16361
16362 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
16363
16364         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16365         separate real and imaginary parts.
16366         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16367
16368 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
16369
16370         PR target/13674
16371         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16372         loading into GPR.
16373
16374 2004-01-23  Jan Hubicka  <jh@suse.cz>
16375
16376         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16377         change.
16378
16379         * alloc-pool.c (align_four): Kill.
16380         (create_alloc_pool): Align size to eight.
16381         (free_alloc_pool, free_pool): Invalidate deallocated data.
16382
16383 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16384
16385         PR gcc/1532
16386         * cse.c (cse_change_cc_mode): New static function.
16387         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16388         (cse_condition_code_reg): New function.
16389         * rtl.h (cse_condition_code_reg): Declare.
16390         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16391         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16392         cc_modes_compatible.
16393         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16394         (TARGET_CC_MODES_COMPATIBLE): Define.
16395         (TARGET_INITIALIZER): Add new initializers.
16396         * targhooks.c (default_cc_modes_compatible): New function.
16397         * targhooks.c (default_cc_modes_compatible): Declare.
16398         * hooks.c (hook_bool_intp_intp_false): New function.
16399         * hooks.h (hook_bool_intp_intp_false): Declare.
16400         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16401         (TARGET_CC_MODES_COMPATIBLE): Define.
16402         (ix86_fixed_condition_code_regs): New static function.
16403         (ix86_cc_modes_compatible): Likewise.
16404         * doc/tm.texi (Condition Code): Document new hooks.
16405
16406 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16407
16408         * fixinc/inclhack.def (bad_lval): Renamed to ...
16409         (alpha_bad_lval): ... this.
16410         Removed file list.
16411         Restrict to alpha*-dec-osf*.
16412         * fixinc/fixincl.x: Regenerate.
16413         * fixinc/tests/base/dirent.h: Remove, moving test ...
16414         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16415
16416 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16417
16418         PR c/13814
16419         * c-decl.c (diagnose_mismatched_decls): Also discard a
16420         built-in if we encounter an old-style definition with the
16421         same name.
16422
16423 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16424
16425         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16426         set to default{32,64}.
16427
16428 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16429
16430         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16431         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16432
16433 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16434             Olivier Hainque  <hainque@act-europe.fr>
16435
16436         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16437         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16438
16439 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16440
16441         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16442         size for minipool references.
16443
16444 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16445
16446         * real.c (real_floor, real_ceil): Tweak to allow input and output
16447         arguments to overlap.
16448         (real_round): New function to implement round(3m) semantics.
16449         * real.h (real_round): Prototype here.
16450         * builtins.c (fold_builtin_round): New function to constant fold
16451         round, roundf and roundl.
16452         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16453
16454 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16455
16456         PR optimization/13819
16457         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16458         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16459         (sh_handle_sp_switch_attribute): Remove warning.
16460
16461 2003-11-30  Jan Hubicka  <jh@suse.cz>
16462
16463         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16464
16465 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16466
16467         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16468         may or may not return non-NIL.
16469         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16470         check CANNOT_CHANGE_MODE_CLASS
16471
16472 2004-01-23  Jan Hubicka  <jh@suse.cz>
16473
16474         * basic-block.h (PROP_POSTRELOAD): New macro.
16475         (CLEANUP_LOG_LINKS): New.
16476         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16477         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16478
16479         * cselib.c (value_pool): New.
16480         (new_cselib_val): Use pool.
16481         (cselib_init): Initialize value_pool
16482         (cselib_finish): Free pool.
16483
16484 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16485
16486         * config/sparc/sparc.c (scan_record_type): New function.
16487         (function_arg_slotno): Use it to determine which kinds of
16488         registers the record can be passed in.
16489
16490 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16491
16492         * config/pa/fptr.c: Fix old-style definition.
16493
16494 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16495
16496         PR optimization/13724
16497         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16498         represents the zero bits produced by a ZERO_EXTEND operation.
16499
16500 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16501
16502         PR optimization/13821
16503         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16504         correctly calculate the lowpart offset of the contracted subreg.
16505
16506 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16507
16508         * doc/invoke.texi (Optimize Options): Note that --param arguments
16509         are subject to change without notice.
16510
16511 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16512
16513         * config.gcc (mips-sgi-irix6*o32): Removed.
16514         * config/mips/iris6-o32-as.h: Likewise.
16515         * config/mips/iris6-o32-gas.h: Likewise.
16516         * config/mips/iris6-o32.h: Likewise.
16517
16518 2004-01-22  Jan Hubicka  <jh@suse.cz>
16519
16520         * cfgcleanup.c (first_pass): New static variable.
16521         (try_forward_edges):  Add work limiting check for threading.
16522         (try_crossjump_bb):  Add work limiting check for crossjumping.
16523         (try_optimize_cfg):  Maintain first pass variable.
16524
16525 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16526
16527         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16528         handles complex and vector modes.
16529
16530 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16531
16532         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16533         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16534         (STRICT): Likewise.
16535
16536 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16537
16538         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16539         (genrtl_for_stmt): Remove emit_nop calls.
16540
16541 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16542
16543         PR target/13713
16544         PR target/13324
16545         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16546         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16547         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16548
16549 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16550
16551         * config/arm/arm.c: Include "debug.h".
16552         (thumb_pushpop): Take two new arguments.  Add some commentary.
16553         Output frame information when pushing.
16554         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16555         thumb_pushpop.
16556         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16557         offset, and pass it to thumb_pushpop.  Output CFI information.
16558         (thumb_expand_prologue): Add some frame-related markers and notes.
16559
16560 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16561
16562         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16563         for TARGET_64BIT.
16564         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16565         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16566
16567 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16568             Paolo Bonzini  <bonzini@gnu.org>
16569
16570         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16571         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16572         * rtl.h (subreg_lsb_1): Prototype here.
16573         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16574         sign extensions.
16575
16576 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16577
16578         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16579         macro need not be defined if jump-tables should contain
16580         relative addresses only when -fPIC or -fPIC is in effect.
16581
16582 2004-01-22  Jan Hubicka  <jh@suse.cz>
16583
16584         * alias.c (reg_base_value): Turn into varray.
16585         (reg_base_value_size): Kill.
16586         (old_reg_base_value): New deletable varray.
16587         (alias_invariant_size): New variable.
16588         (REG_BASE_VALUE): Update to use varray.
16589         (find_base_value): Likewise.
16590         (record_set): Likewise.
16591         (record_base_value): Likewise.
16592         (memrefs_conflict_p): Likewise.
16593         (record_set): Likewise
16594         (record_base_value): Likewise.
16595         (memrefs_conflict_p): Use alias_invariant_size.
16596         (init_alias_analysis): Use varray; set alias_invariant_size;
16597         rescale other arrays to be sized by maxreg.
16598         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16599
16600 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16601
16602         * config/sparc/sparc.c (function_arg_slotno): Use
16603         FLOAT_TYPE_P to detect FP fields in structures.
16604         (function_arg_record_value_1): Likewise.
16605         (function_arg_record_value_2): Likewise.
16606
16607 2004-01-22  Jan Hubicka  <jh@suse.cz>
16608
16609         * function.c (allocate_struct_function): Do not initialize expr, emit
16610         and varasm.
16611         (prepare_function_start): Do it here.
16612         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16613
16614 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16615
16616         PR target/13559
16617         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16618         to 'word_mode' once the first slot has been filled.
16619
16620 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16621
16622         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16623         computation of the number of integer registers required.
16624
16625 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16626
16627         * config/i386/i386.md: Simplify certain comparisons of
16628         const_int.
16629
16630 2004-01-21  Andrew Pinski  <apinski@apple.com>
16631
16632         PR target/13785
16633         * config/rs6000/rs6000.md (call_value): Force operand
16634         1 not operand 0 into a register.
16635
16636 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16637
16638         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16639         unwind-dw2-fde.h: Update copyright.
16640
16641 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16642
16643         * pa-protos.h: Update copyright.
16644         * pa.h: Likewise.
16645         * pa.md: Likewise.
16646
16647 2004-01-21  Caroline Tice  <ctice@apple.com>
16648
16649         PR target/12308
16650         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16651         flags register.
16652         (fix_truncdfdi2): Likewise.
16653         (fix_truncsfdi2): Likewise.
16654         (*fix_truncdi_1): Likewise.
16655         (fix_truncxfsi2): Likewise.
16656         (fix_truncdfsi2): Likewise.
16657         (fix_truncsfsi2): Likewise.
16658         (*fix_truncsi_1): Likewise.
16659         (fix_truncxfhi2): Likewise.
16660         (fix_truncdfhi2): Likewise.
16661         (fix_truncsfhi2): Likewise.
16662         (*fix_trunchi_1): Likewise.
16663
16664 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16665
16666         * alias.c, basic-block.h, c-common.c, c-common.h,
16667         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16668         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16669         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16670         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16671         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16672         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16673         genautomata.c, genconditions.c, genemit.c, genflags.c,
16674         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16675         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16676         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16677         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16678         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16679         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16680         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16681         unwind.h, varray.c, varray.h: Update copyright.
16682
16683 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16684
16685         * config/h8300/coff.h: Update copyright.
16686         * config/h8300/elf.h: Likewise.
16687         * config/h8300/h8300-protos.h: Likewise.
16688         * config/h8300/h8300.c: Likewise.
16689         * config/h8300/h8300.h: Likewise.
16690         * config/h8300/h8300.md: Likewise.
16691
16692 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16693
16694         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16695         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16696         ultrix_unistd): New hacks.
16697         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16698         ULTRIX_CONST2_CHECK): Add checks.
16699         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16700         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16701         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16702         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16703         * fixinc/tests/base/locale.h: New file.
16704         * fixinc/fixincl.x: Rebuilt.
16705
16706 2004-01-21  Andreas Jaeger  <aj@suse.de>
16707             Michael Matz  <matz@suse.de>
16708
16709         * doc/extend.texi (Extended Asm): Clarify memory clobber.
16710
16711 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16712
16713         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16714         _Jv_RegisterClasses through a function pointer.
16715
16716 2004-01-21  Falk Hueffner  <falk@debian.org>
16717
16718         PR target/12898
16719         * config/alpha/alpha.c (alpha_emit_set_const_1): If
16720         no_new_pseudos, use gen_rtx_SET directly for SImode constants
16721         which need multiple instructions to emit.
16722
16723 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
16724
16725         * config/m32r/m32r.h (CPP_SPEC): Define.
16726
16727 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
16728
16729         * c-decl.c (merge_decls): Kill different_binding_level and
16730         different_tu arguments; simplify throughout.
16731         (duplicate_decls): Likewise.
16732         (pushdecl, merge_translation_unit_decls): Update calls to
16733         duplicate_decls.
16734
16735 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16736
16737         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
16738         $(SYSTEM_H).
16739         (print-rtl1.o): Depend on $(SYSTEM_H).
16740
16741 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16742
16743         PR bootstrap/12730
16744         * configure.ac: Delete definition and subsitution of docdir.
16745         Add info, man, srcman and srcinfo to target hooks. Create doc/
16746         directory.
16747         * configure: Regenerate.
16748         * Makefile.in: Don't substitute docdir and delete all references
16749         throughout.
16750         (MAKEINFOFLAGS): Define.
16751         (stmp-docobjdir): Delete.
16752         (INFOFILES, MANFILES): Define.
16753         (info): Call lang.info, srcinfo and lang.srcinfo.
16754         (generated-manpages): Call lang.man, srcman and lang.srcman.
16755         (srcinfo, srcman): New rules to copy back files to source directory.
16756         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
16757         (install-man): Revamp rule.
16758         (clean): Update dvi directory.
16759         (distclean): Delete TAGS from front end directorys.
16760         (maintainer-clean): Delete all document files in source directory.
16761
16762         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
16763         (objc.srcman, objc.srcinfo): Likewise.
16764
16765 2004-01-20  Bruce Korb  <bkorb@gnu.org>
16766
16767         * fixinc/inclhack.def(math_exception): bypass only for glibc.
16768         (matherr_decl): rename & relocate as exception_structure.
16769         This fix must precede the math_exception fix.
16770
16771 2004-01-20  Roger Sayle  <roger@eyesopen.com>
16772
16773         * fold-const.c (fold_convert): Rename to fold_convert_const.
16774         (fold_convert_const): Change arguments to take a tree_code,
16775         a type and the operand/expression to be converted.  Return
16776         NULL_TREE if no simplification is possible.  Add support for
16777         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
16778         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
16779         Adjust call to fold_convert to match new fold_convert_const.
16780         Avoid modifying the tree passed to fold in-place.
16781
16782 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
16783
16784         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
16785         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
16786         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
16787
16788 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16789
16790         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
16791         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
16792         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
16793         (emit_move_sequence): Check scratch_reg first in various if statements.
16794         Extend source simplification to handle all 64-bit CONST_INTs.
16795         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16796         frame size.
16797         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16798         frame offset calculations.
16799         * pa.h (NEW_HP_ASSEMBLER): Add comment.
16800         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16801         LEGITIMATE_64BIT_CONST_INT_P): Define.
16802         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
16803         any CONST_INT as legitimate during and after reload.
16804         (VAL_32_BITS_P, INT_32_BITS): Define.
16805         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16806
16807 2004-01-20  Jan Hubicka  <jh@suse.cz>
16808
16809         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16810         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16811         containing hard regs are shared.
16812         (gen_hard_reg_clobber): New function.
16813         (hard_reg_clobbers): New array.
16814         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16815         (copy_rtx): Do not copy clobbers containing hard regs.
16816         * rtl.h (gen_hard_reg_clobber): Declare.
16817
16818 2004-01-20  Jan Hubicka  <jh@suse.cz>
16819
16820         * varray.c:  Include hashtab.h
16821         (varray_descriptor): New structure.
16822         (hash_descriptor, eq_descriptor, varray_descriptor,
16823         print_statistics): New static functions
16824         (varray_init, varray_grow): Update statistics
16825         (dump_varray_statistics): New function.
16826         * varray.h (dump_varray_statistics): Declare.
16827         * toplev.c (finalize): Call it.
16828         * Makefile.in (varray.o): Add dependency.
16829
16830 2004-01-20  Jan Hubicka  <jh@suse.cz>
16831
16832         * cselib.c: Include alloc-pool.h
16833         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
16834         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
16835         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
16836         unchain_one_elt_loc_list_pool, unchain_one_value,
16837         new_cselib_val): Simplify using allocpool.
16838         (cselib_init): Initialize allocpools.
16839         (cselib_finish): Finish allocpools.
16840         * Makefile.in (cselib.o): Depend on alloc-pool.h
16841
16842 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
16843
16844         * config/mips/mips.c (mips_load_call_address): Make the call insn
16845         use $gp if it could be calling a lazy binding stub.
16846
16847 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16848
16849         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16850         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16851         (TARGET_STRUCT_VALUE_RTX): Likewise.
16852         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16853         (PROMOTE_FUNCTION_RETURN): Remove.
16854         (STRUCT_VALUE): Remove.
16855
16856 2004-01-20  Denis Chertykov  <denisc@overta.ru>
16857
16858         PR bootstrap/13735
16859         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16860         register as pointer after reload.
16861
16862 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16863
16864         PR optimization/12440
16865         * loop.c: Include ggc.h.
16866         (loop_optimize): Run garbage collector between optimization of loops.
16867         * Makefile.in (loop.o): Add GGC_H dependency.
16868
16869 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16870
16871         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16872         vector register special in function without prototype.
16873         (function_arg_advance): Vector parameters get always
16874         GPRs allocated for the linux64 target.
16875
16876 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16877
16878         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16879         not TARGET_M32RX_MASK.
16880
16881 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16882
16883         PR target/13557
16884         * config/sparc/sparc.c (function_arg): Reorder the cases.
16885
16886 2004-01-19  Per Bothner  <per@bothner.com>
16887
16888         Move cpp_reader's line_maps field to a shared global.
16889         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16890         and change the type to a pointer rather than a struct.
16891         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16892         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16893         Likewise.
16894         * cppfiles.c (validate_pch):  Likewise.
16895         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16896         Likewise.
16897         * cpperror.c (print_location):  Likewise.
16898         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16899         * cppinit.c (cpp_create_reader):  Handle new parameter.
16900         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16901         * input.h (line_table):  New variable.
16902         * toplev.c (line_table):  Declare variable.
16903         (general_init):  Initialize line_table.
16904         * c-opts.c (c_common_init_options):  Pass line_table to
16905         cpp_create_reader.
16906         * fix-header.c (read_scan_file):  New local variable line_table.
16907         Initialize, and pass it to cpp_create_reader.
16908         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16909         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16910
16911 2004-01-19  Per Bothner  <per@bothner.com>
16912
16913         Implement a cache for linemap_lookup.
16914         * line-map.h (struct_line_maps):  Add cache field.
16915         * line-map.c (linemap_init):  Zero cache field.
16916         (linemap_add):  Set cache field to offset of newly allocated map.
16917         (linemap_lookup):  Use and set cache field.
16918
16919 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16920
16921         PR optimization/13567
16922         * cse.c (cse_basic_block): Call cse_insn with a non-null
16923         libcall_insn for the last SET insn of a no-confilict block.
16924
16925 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16926
16927         * Makefile.in (target_noncanonical, program_transform_name): Use
16928         immediate define instead of deferred.
16929         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16930         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16931         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16932         deferred backquote.
16933
16934 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16935
16936         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16937         true unconditionally.
16938         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16939         Remove.
16940         (build_unary_op, build_modify_expr): Don't handle extended
16941         lvalues.
16942         (build_component_ref, build_conditional_expr): Call non_lvalue
16943         instead of pedantic_non_lvalue.
16944         (build_c_cast): Don't condition use of non_lvalue on pedantic.
16945         * fold-const.c (fold): Don't check pedantic directly for
16946         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
16947         passed to pedantic_non_lvalue.
16948         * doc/extend.texi: Remove documentation of extended lvalues.
16949
16950 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16951
16952         PR optimization/5263
16953         * simplify-rtx.c (associative_constant_p): Delete.
16954         (simplify_associative_operation): Rewrite to linearize terms, and
16955         attempt to simplify new term against both left and right subterms.
16956         (simplify_binary_operation): Call swap_commutative_operands_p on
16957         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16958         trueop0 and trueop1 down to where first needed.
16959         (simplify_relational_operation): Likewise.
16960         * rtlanal.c (commutative_operand_precedence): Also order constant
16961         operands using avoid_constant_pool_reference.
16962
16963 2004-01-19  Richard Henderson  <rth@redhat.com>
16964
16965         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16966         don't check memory mode.
16967         (unaligned_memory_operand): Likewise.
16968         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16969         abort for op0 not MEM.
16970
16971         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16972         is not a reg, copy to a scratch first.
16973         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16974         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16975         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16976         (reload_inqi, reload_inhi): Fix mode of op0.
16977         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16978         reload_outhi_help): Likewise.  Use define_insn_and_split.
16979
16980         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16981         as well as $29 dead.
16982
16983 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16984
16985         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16986         "tls_object" for thread-local objects.
16987         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16988         "#tls" for thread-local sections.
16989         * configure.ac (thread-local checks): Specify --fatal-warnings in
16990         every binutils-specific checks.  For sparc*-*-*, test whether the
16991         OS is Solaris and the tools are native and act accordingly.
16992         * configure: Rebuild.
16993
16994 2004-01-19  Jeff Law  <law@redhat.com>
16995
16996         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16997         Jerry Quinn and Petur Runolfsson.
16998
16999 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17000
17001         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
17002         size, don't use the larger zero-extending loads.
17003
17004 2004-01-19  Richard Henderson  <rth@redhat.com>
17005
17006         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
17007         * alpha.md (UNSPEC_NT_LDA): Remove.
17008         (UNSPEC_CVTLQ, cvtlq): New.
17009         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
17010         (extendsidi2_fix): Remove.
17011         (extendsidi2 splitter): Use cvtlq.
17012         (extendsidi2 fp peepholes): Remove.
17013         (cvtql): Use SFmode instead of SImode.
17014         (fix_trunc?fsi): Update to match.
17015         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
17016         (movsi): Rename from movsi_nofix, remove f alternatives.
17017         (movsi_nt_vms): Similarly.
17018         (movsi_fix, movsi_nt_vms_fix): Remove.
17019         (nt_lda): Remove.
17020         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
17021
17022 2004-01-19  Jan Hubicka  <jh@suse.cz>
17023
17024         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
17025         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
17026         list.
17027         (cgraph_remove_unreachable_nodes): New function
17028         (cgraph_decide_inlining_of_small_function): Fix pasto.
17029         (cgraph_decide_inlining_incrementally): Fix pasto.
17030         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
17031
17032 2004-01-19  Steven Bosscher  <stevenb@suse.de>
17033
17034         * gengtype.c (header_file): Make it static.
17035         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
17036         * gengtype.h (header_file): No longer extern.
17037
17038 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17039
17040         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
17041         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
17042         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
17043
17044 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17045
17046         * stmt.c (HAVE_casesi): Define it not already defined.
17047         (HAVE_tablejump): Likewise.
17048         (expand_end_case_type): Resort to the binary tree method if
17049         neither casesi or tablejump is available.
17050
17051 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
17052
17053         * final.c (final_scan_insn): Make non-static again.
17054         * output.h (final_scan_insn): Re-add prototype.
17055         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
17056         to final_scan_insn call.
17057         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
17058         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
17059         * config/pa/pa.c (output_lbranch, output_call): Likewise.
17060         * config/sh/sh.c (print_slot): Likewise.
17061         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
17062         (output_sibcall, sparc_flat_function_epilogue): Likewise.
17063
17064 2004-01-18  Jan Hubicka  <jh@suse.cz>
17065
17066         * basic-block.h (try_redirect_by_replacing_jump): Declare.
17067         * cfgcleanup.c (try_optimize_cfg): Use it.
17068         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
17069         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
17070         Kill hack.
17071         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
17072
17073         Revert:
17074         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17075
17076                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17077                 even after reload, just don't remove the actual jump tables.
17078
17079 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17080
17081         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
17082
17083 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17084
17085         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
17086         the size of a pointer in bytes.
17087
17088 2004-01-18  Roger Sayle  <roger@eyesopen.com>
17089
17090         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
17091         live "next" variable, which could lead to an infinite loop.
17092
17093 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
17094
17095         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
17096         block.
17097
17098         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17099         Check for NULL in the chain and remove repeated code.
17100
17101 2004-01-18  Jan Hubicka  <jh@suse.cz>
17102
17103         * coverage.c (checksum_string): Rename to ...
17104         (coverage_checksum_string): ... this one, Use crc32_string; recognize
17105         names containing random number and zero the number out in order to get
17106         match.
17107
17108 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17109
17110         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
17111
17112 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17113
17114         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
17115         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
17116         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
17117         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
17118         doc/trouble.texi: Remove trailing whitespace.
17119
17120 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17121
17122         PR target/7618
17123         * config/mips/mips.c: Include cfglayout.h.
17124         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
17125         (mips_unspec_offset_high): Add temporary register argument.
17126         (mips_load_call_address): New function, split out from...
17127         (mips_expand_call): ...here.
17128         (mips_output_cplocal): New function.
17129         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
17130         (mips_emit_loadgp): New function, split out from...
17131         (mips_expand_prologue): ...here.
17132         (mips_output_mi_thunk): New function.
17133
17134 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
17135
17136         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
17137         mcpu32): Remove redundant checks for implied target predefines.
17138
17139 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
17140
17141         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17142         Return type is unsigned int not int.
17143         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17144         Likewise.
17145
17146 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17147
17148         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
17149         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
17150         "GNU/Linux" and "Microsoft Windows" terminology.
17151
17152 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17153
17154         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
17155         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
17156         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
17157         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
17158         @smallexample instead of @example.
17159
17160 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
17161
17162         * objc/objc-act.c (build_objc_method_call): Use target
17163         hooks instead of macros to determine if ..._stret
17164         dispatchers should be used (NeXT runtime only).
17165
17166 2004-01-17  Roger Sayle  <roger@eyesopen.com>
17167
17168         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
17169         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
17170
17171 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17172
17173         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
17174         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
17175         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
17176         macros.
17177         * reload1.c (emit_reload_insns): Use them.
17178         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
17179         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
17180         for NULL PATTERN.
17181
17182 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17183
17184         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
17185         (final_scan_insn): Update to take an additional SEEN argument.  Emit
17186         a line note after the prologue.  Make static.
17187         (line_note_exists): Remove.
17188         (final): Don't initialize line_note_exists.  Update call to
17189         final_scan_insn.
17190         * output.h (final_scan_insn): Remove prologue.
17191         * function.c (set_insn_locators): Update comment.
17192         (thread_prologue_and_epilogue_insns): Add a comment.
17193
17194 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
17195
17196         PR target/10781
17197         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17198         Prototype.
17199         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17200         New function.
17201         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
17202         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
17203         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
17204
17205 2004-01-17  Jan Hubicka  <jh@suse.cz>
17206
17207         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
17208         commit.
17209
17210         * toplev.c (HAVE_conditional_execution): Provide default.
17211         (rest_of_handle_reorder_blocks): For conditional_execution target
17212         update liveness once after all transformations
17213         (rest_of_compilation): Do crossjumping before ce3.
17214
17215 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
17216
17217         * alias.c (new_alias_set): Mark last_alias_set for PCH.
17218         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
17219         for PCH.
17220         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
17221         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
17222         (get_TOC_alias_set): Mark 'set' for PCH.
17223
17224 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17225
17226         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17227         even after reload, just don't remove the actual jump tables.
17228
17229 2004-01-17  J. Brobecker  <brobecker@gnat.com>
17230
17231         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
17232         Remove checks for is_ada() and TREE_UNSIGNED.
17233         (subrange_type_die): Emit a byte_size attribute if the subrange
17234         type size is different from the base type size.
17235         (modified_type_die): Replace call to is_ada_subrange_type() by
17236         call to is_subrange_type().
17237
17238 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
17239
17240         * config/sh/sh.c: Include ggc.h.
17241
17242 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17243
17244         * Makefile.in (MD5_H): New.
17245         (fold-const.o): Depend on md5.h.
17246         (dwarf2out.o): Likewise.
17247         (cppfiles.o): Likewise.
17248         * cppfiles.c: Include md5.h.
17249         (should_stack_file): Check against list read from PCH file.
17250         (struct pchf_data): New.
17251         (pchf): New variable.
17252         (struct pchf_adder_info): New.
17253         (pchf_adder): New.
17254         (pchf_save_compare): New.
17255         (_cpp_save_file_entries): New.
17256         (_cpp_read_file_entries): New.
17257         (struct pchf_compare_data): New.
17258         (pchf_compare): New.
17259         (check_file_against_entries): New.
17260         * cpphash.h (_cpp_save_file_entries): Prototype.
17261         (_cpp_read_file_entries): Prototype.
17262         * cpppch.c (cpp_write_pch_state): Write the list of headers.
17263         (cpp_read_state): Read the list of headers.
17264
17265 2004-01-17  Jan Hubicka  <jh@suse.cz>
17266
17267         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
17268         builtin_expect specially.
17269         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
17270         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
17271         * invoke.texi (max-inline-insns-single): Set to 100.
17272         (large-function-insns): Set to 3000.
17273
17274 2004-01-16  Eric Christopher  <echristo@redhat.com>
17275             Chandrakala Chavva <cchavva@redhat.com>
17276
17277         * cppcharset.c (one_iso88591_to_utf8): New function.
17278         (convert_iso88591_utf8): Ditto. Use.
17279         (conversion_tab): Use.
17280         (_cpp_input_to_utf8): New function.
17281         (_cpp_init_iconv_buffer): Ditto.
17282         (_cpp_close_iconv_buffer): Ditto.
17283         * cpphash.h: Prototype new functions.
17284         (cpp_buffer): Add input_cset_desc.
17285         * cppinit.c: Add input_charset default.
17286         * cpplib.c (cpp_push_buffer): Support init and
17287         close of iconv.
17288         * cpplib.h (cpp_options): Add input_charset.
17289
17290 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17291
17292         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
17293         * config/alpha/unicosmk.h: Remove a commented-out definition
17294         of ASM_OUTPUT_SECTION_NAME.
17295         * config/stormy16/stormy16.h: Likewise.
17296
17297 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17298
17299         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
17300         (alpha___extern_prefix_sys_stat): ... this.
17301         Apply to <sys/mount.h>, too.
17302         Tweak to match more variations.
17303         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
17304
17305         * fixinc/inclhack.def (alpha___extern_prefix,
17306         alpha___extern_prefix_standards): New hacks to obey
17307         __PRAGMA_EXTERN_PREFIX.
17308         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
17309         test.
17310         * fixinc/tests/base/standards.h: Likewise.
17311
17312         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
17313         variations.
17314         New testcase.
17315         * fixinc/tests/base/pthread.h: Handle it.
17316
17317         * fixincl/inclhack.def (bad_lval): Sort file list.
17318         Add many missing files up to Tru64 UNIX V5.1B.
17319         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17320         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17321         order.
17322
17323         * fixinc/fixincl.x: Regenerate.
17324
17325 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
17326
17327         * version.c (version_string): Change to 3.5.0.
17328         * doc/include/gcc-common.texi (version-GCC): Likewise.
17329
17330 2004-01-16  Jan Hubicka  <jh@suse.cz>
17331
17332         * i386.md (load_tp_di): Fix pasto.
17333
17334         PR opt/13608
17335         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17336
17337         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17338         pp_c_character_constant, pp_c_floating_constant,
17339         pp_c_additive_expression, pp_c_shift_expression,
17340         pp_c_equality_expression, pp_c_and_expression,
17341         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17342         pp_c_logical_and_expression): Remove inline modifier.
17343         * dwarf2out.c (get_AT): Likewise.
17344         * et-forest.c (et_splay): Likewise.
17345         * ra.h (ra_alloc, ra_calloc): Likewise
17346
17347 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17348
17349         * config/frv/frv-protos.h: Fix comment formatting.
17350         * config/frv/frv.c: Likewise.
17351         * config/frv/frv.h: Likewise.
17352         * config/frv/frv.md: Likewise.
17353         * config/frv/frvbegin.c: Likewise.
17354         * config/frv/frvend.c: Likewise.
17355
17356 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17357
17358         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17359         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17360         LINKER_DOES_NOT_WORK_WITH_DWARF2.
17361         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17362
17363 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
17364
17365         PR 11864
17366         * postreload.c (reload_cse_simplify_operands): Don't remove
17367         implicit extension from LOAD_EXTEND_OP.
17368
17369 2004-01-16  Jan Hubicka  <jh@suse.cz>
17370
17371         PR opt/11350
17372         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17373         after reload.
17374         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17375         rtl_try_redirect_by_replacing_branch): Likewise.
17376
17377 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17378
17379         PR pch/13689
17380         * alias.c (struct alias_set_entry): Mark for GC.
17381         (alias_sets): Make static, mark for GC.
17382         (record_alias_subset): Use GC to allocate alias structures.
17383         * varray.c (element): Make generic varrays GCed.
17384
17385         PR pch/13361
17386         * c-typeck.c (constructor_asmspec): Delete.
17387         (struct initializer_stack): Delete field 'asmspec'.
17388         (start_init): Delete saving of asmspec.
17389         (finish_init): Don't update constructor_asmspec.
17390         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17391         * stmt.c (expand_asm): Duplicate strings from tree.
17392         (expand_asm_operands): Likewise.
17393         * tree.c (tree_size): Update computation of size of STRING_CST.
17394         (make_node): Don't make STRING_CST nodes.
17395         (build_string): Allocate string with tree node.
17396         * tree.def (STRING_CST): Update comment.
17397         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17398         (tree_string): Place contents of string in tree node.
17399         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17400         from tree.
17401
17402         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17403         altivec operands.
17404
17405 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17406
17407         * c-common.h: Fix comment formatting.
17408         * c-cppbuiltin.c: Likewise.
17409         * c-pragma.c: Likewise.
17410         * calls.c: Likewise.
17411         * collect2.c: Likewise.
17412         * cppcharset.c: Likewise.
17413         * cpptrad.c: Likewise.
17414         * dbxout.c: Likewise.
17415         * defaults.h: Likewise.
17416         * dwarf2out.c: Likewise.
17417         * fold-const.c: Likewise.
17418         * genautomata.c: Likewise.
17419         * genconditions.c: Likewise.
17420         * genflags.c: Likewise.
17421         * gengtype.c: Likewise.
17422         * integrate.c: Likewise.
17423         * loop.c: Likewise.
17424         * predict.c: Likewise.
17425         * sdbout.c: Likewise.
17426
17427 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17428
17429         * config/ia64/ia64.md (*movti_internal): C output template
17430         extracted to ia64.c.
17431         (*movti_internal_reg): Delete.
17432         (reload_inti, reload_outti): Use the correct mode on operand 2
17433         in the first place, don't fix it up in the output template.
17434         (movtf, reload_ointf, reload_outtf): New expanders.
17435         (*movtf_internal): New define_insn_and_split.
17436         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17437         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17438         (ia64_split_tmode_move): New function, body mostly pulled
17439         from ia64.md:*movti_internal.
17440         (ia64_function_arg_words): New function, extracted common
17441         logic from ia64_function_arg et seq.
17442         (ia64_function_arg_offset): Likewise.  Handle correctly the
17443         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17444         (ia64_function_arg, ia64_function_arg_partial_nregs)
17445         (ia64_function_arg_advance): Use ia64_function_arg_words and
17446         ia64_function_arg_offset.
17447         (ia64_function_value): TCmode does not go in float regs.
17448         (ia64_secondary_reload_class): Also handle TFmode.
17449         * config/ia64/ia64-protos.h: Remove prototype for
17450         ia64_split_timode; add prototype for ia64_split_tmode_move.
17451
17452 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17453
17454         * Makefile.in (MAINT): Make it an immediate assignment.
17455
17456 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17457
17458         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17459
17460 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17461
17462         * config/h8300/coff.h: Replace Hitachi with Renesas.
17463         * config/h8300/elf.h: Likewise.
17464         * config/h8300/h8300-protos.h: Likewise.
17465         * config/h8300/h8300.c: Likewise.
17466         * config/h8300/h8300.h: Likewise.
17467         * config/h8300/h8300.md: Likewise.
17468         * config/h8300/lib1funcs.asm: Likewise.
17469
17470 2004-01-15  Andrew Pinski  <apinski@apple.com>
17471
17472         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17473         around it.
17474
17475 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17476
17477         * config/h8300/h8300.c (h8300_return_in_memory): New.
17478         (TARGET_STRUCT_VALUE_RTX): Likewise.
17479         (TARGET_RETURN_IN_MEMORY): Likewise.
17480         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17481         (RETURN_IN_MEMORY): Likewise.
17482
17483 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17484
17485         PR optimization/13375
17486         * gcse.c (handle_avail_expr): Just return if the source is not a
17487         single set.
17488
17489 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17490             Daniel Jacobowitz  <drow@mvista.com>
17491
17492         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17493         (EQUIV): Define.
17494         (ARM_FUNC_ALIAS): New macro.
17495         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17496         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17497
17498 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17499
17500         PR optimization/12372
17501         * calls.c (expand_call): Add call_fusage data for stack arguments in
17502         constant calls.
17503
17504 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17505
17506         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17507         (rs6000_elf_declare_function_name): Formatting.
17508         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17509
17510 2004-01-15  Jan Hubicka  <jh@suse.cz>
17511
17512         PR bootstrap/13692
17513         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17514         previous patch.
17515
17516 2004-01-15  Richard Henderson  <rth@redhat.com>
17517
17518         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17519         integer regs of the same call-savedness.
17520
17521 2004-01-15  Andreas Schwab  <schwab@suse.de>
17522
17523         PR bootstrap/13562
17524         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17525         status for NOTB/NOTW/NEGW methods.
17526
17527 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17528
17529         * doc/invoke.texi: Update dump file names.  Fix a typo.
17530
17531 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17532
17533         * builtins.c (expand_builtin_va_end): Don't use
17534         EXPAND_BUILTIN_VA_END.
17535         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17536         * config/d30v/d30v.h: Remove a commented-out definition of
17537         EXPAND_BUILTIN_VA_END.
17538         * config/stormy16/stormy16.h: Likewise.
17539
17540 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17541
17542         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17543         * targhooks.c (default_struct_value_rtx): Don't use
17544         STRUCT_VALUE_INCOMING_REGNUM.
17545
17546 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17547
17548         PR bootstrap/12744
17549         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17550         GENINSRC and not parsedir.  Define srcextra as a langhook.
17551         * configure: Regenerate.
17552         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17553         parsedir and delete all references throughout.  Conditionally define
17554         rule for srcextra dependent on GENINSRC.
17555         (stmp-docobjdir): Delete.
17556         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17557         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17558         and gengtype-yacc.h back to source directory.
17559         (maintainer-clean): Delete all parse files in source directory.
17560         (distclean): Delete generated files.
17561
17562         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17563         (objc-parse.c, objc-parse.y): Don't use parsedir.
17564         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17565         directory if requested.
17566         (po-generated): Don't use parsedir.
17567         (objc.maintainer-clean): Delete above files from source directory.
17568
17569 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17570
17571         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17572
17573 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17574
17575         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17576         TARGET_RETURN_IN_MEMORY.
17577
17578 2004-01-15  Jan Hubicka  <jh@suse.cz>
17579
17580         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17581         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17582         functions accepting SSE arguments
17583         (function_arg): Warn only when asked to warn.
17584         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17585
17586 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17587
17588         * c-parse.in (stmts_and_decls): Make label at end of compound
17589         statement a hard error.
17590
17591 2004-01-14  Jan Hubicka  <jh@suse.cz>
17592
17593         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17594         * cgraph.h (cgraph_local_info): Sort fields by size; add
17595         redefined_extern_inline
17596         (cgraph_global_info): Sort fields by size.
17597         (cgraph_node): Likewise.
17598         * cgraphunit.c (cgraph_finalize_function): Se
17599         local.redefined_extern_inline on redefinition.
17600         (cgraph_analyze_function): Use it; fix formating.
17601
17602 2004-01-14  Jan Hubicka  <jh@suse.cz>
17603
17604         PR c++/10776
17605         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17606         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17607         bitmaps
17608         (cache_size): New variable
17609         (add_dependence): Update use; canonize early memory locations
17610         (sched_analyze_1): Likewise.
17611         (sched_analyze_2): Likewise.
17612         (init_dependency_caches): Initialize bitmaps.
17613         (free_dependency_caches): Free bitmaps
17614
17615 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17616
17617         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17618         targetm.calls.strict_argument_naming().
17619         * target.h: Likewise.
17620
17621 2004-01-14  Richard Henderson  <rth@redhat.com>
17622
17623         PR debug/13231
17624         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17625         instructions.
17626
17627 2004-01-14  Richard Henderson  <rth@redhat.com>
17628
17629         PR c++/12491
17630         * except.c (struct eh_region): Add u.fixup.resolved.
17631         (resolve_one_fixup_region): Split out from ...
17632         (resolve_fixup_regions): ... here.
17633
17634 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17635
17636         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17637
17638 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17639
17640         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17641         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17642         (STRUCT_VALUE): Remove.
17643
17644 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17645
17646         * system.h: Poison PROMOTED_MODE
17647         * integrate.c (expand_inline_function): Don't mention the
17648         PROMOTED_MODE.
17649         * loop.c (update_giv_derive): Same.
17650         * tree.h (DECL_RTL): Same.
17651
17652 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17653
17654         PR target/9365
17655         * sh.c (gen_block_redirect): Add special handling of RETURN.
17656         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17657         far branch target (i.e. it's a return).
17658
17659 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17660
17661         * regrename.c (find_oldest_value_reg): Fix a warning.
17662
17663 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17664
17665         PR bootstrap/12527
17666         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17667         Move linux-gas.h and linux-elf.h before aout.h.
17668         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17669         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17670
17671 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17672
17673         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17674         (CONST_INT, VOIDmode, ...).
17675
17676 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17677
17678         * regrename.c (find_oldest_value_reg): If the replacement uses
17679         multiple hard registers, check that all of them are in CLASS.
17680
17681 2004-01-14  Jan Hubicka  <jh@suse.cz>
17682
17683         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17684         impossible.
17685
17686 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17687
17688         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17689
17690 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17691
17692         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17693         Calculate always vrsave_mask if TARGET_ALTIVEC.
17694         (rs6000_emit_prologue): Emit code for vrsave
17695         only if TARGET_ALTIVEC_VRSAVE.
17696         (rs6000_emit_epilogue): Likewise.
17697
17698 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17699
17700         * config/sparc/sparc.md (tie_add32): Fix pasto.
17701         (tie_add64): Likewise.
17702
17703 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17704
17705         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17706
17707 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17708
17709         * config/iq2000/iq2000-protos.h: Fix comment formatting.
17710         * config/iq2000/iq2000.c: Likewise.
17711         * config/iq2000/iq2000.md: Likewise.
17712
17713 2004-01-14  J. Brobecker  <brobecker@gnat.com>
17714
17715         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17716         (subrange_type_die): Add handle for nameless subrange types.
17717
17718 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17719
17720         * config/h8300/h8300-protos.h: Replace do_movsi with
17721         h8300_expand_movsi.
17722         * config/h8300/h8300.c (do_movsi): Change to
17723         h8300_expand_movsi.
17724         * config/h8300/h8300.md (movsi): Replace do_movsi with
17725         h8300_expand_movsi.
17726         (movsf): Likewise.
17727
17728 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17729
17730         * config/h8300/h8300.c (dosize): Change to
17731         h8300_emit_stack_adjustment.  Update callers.
17732
17733 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17734
17735         * config/h8300/h8300.md (movstrictqi): Add an alternative with
17736         the source being post_inc.  Tighten the predicate for the
17737         destination to register_operand.
17738         (movstricthi): Likewise.
17739
17740 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17741
17742         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
17743         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
17744         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
17745
17746 2004-01-14  Jan Hubicka  <jh@suse.cz>
17747
17748         Partial fix PR c++/12850
17749         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
17750         at zero nest level.
17751
17752 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
17753
17754         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
17755         pseudo-register.
17756
17757 2004-01-13  Devang Patel <dpatel@apple.com
17758
17759         PR debug/7078
17760         * dbxout.c (dbxout_symbol_name): Emit mangled names for
17761         NAMESPACE_DECL memebers.
17762
17763 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
17764
17765         PR c++/12709
17766         * c-common.c (finish_fname_decls): Use the chain only if the
17767         tree is an expr_stmt.
17768
17769 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
17770
17771         * rtl.def: Add comment about new option in automata_option.
17772
17773         * genautomata.c (PROGRESS_OPTION): New macro.
17774         (progress_flag): New global variable.
17775         (gen_automata_option): Process `progress'.
17776         (transform_insn_regexps, check_unit_distributions_to_automata,
17777         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
17778         expand_automata, write_automata): Print about the progress only if
17779         progress_flag.  Remove fflush.
17780         (initiate_automaton_gen): Process command line flag `-progress'.
17781
17782         * doc/md.texi: Describe the new option.
17783
17784 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17785
17786         * cfg.c (dump_bb): Dump entry edges.
17787
17788 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
17789
17790         * arm.c (thumb_legitimate_address_p): Only allow constant pool
17791         references from SImode.
17792         * arm.md (thumb_movhi_insn): Don't allow minipool references.
17793
17794 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17795
17796         * system.h (TEXT_SECTION): Poison.
17797         * varasm.c (text_section): Don't use TEXT_SECTION.
17798         * config/sh/sh.c (sh_file_start): Fix a comment typo.
17799         * doc/tm.texi (TEXT_SECTION): Remove.
17800
17801 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
17802
17803         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17804
17805 2004-01-12  James E Wilson  <wilson@specifixinc.com>
17806
17807         * unwind-libunwind.c: Delete.
17808
17809 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17810
17811         PR 13656
17812         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17813         oldtype is set, set *newtypep or *oldtypep too.  Do not set
17814         them at the very end.
17815         (validate_proto_after_old_defn): Restructure for comprehensibility;
17816         make error messages clearer.
17817
17818 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17819
17820         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17821         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17822         * varray.c: No need to prototype error.
17823         (varray_check_failed): Wrap long string onto two lines.
17824         (varray_underflow): New function.
17825
17826 2004-01-13  Steven Bosscher  <stevenb@suse.de>
17827
17828         PR c++/13376
17829         * function.h (struct function): Kill `name' field.
17830         (current_function_name): Make it an extern function.
17831         * function.c (current_function_name): New function.
17832         * graph.c: Update all uses of current_function_name.
17833         * gcse.c: Likewise.
17834         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
17835         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
17836         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
17837         instead of a strcmp with "main".
17838
17839 2004-01-13  Jan Hubicka  <jh@suse.cz>
17840
17841         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
17842
17843         * cgraphunit.c (cgraph_optimize_function):  Always do
17844         optimize_inline_calls when there is always_inline callee.
17845         (cgraph_decide_inlining): Fix formating.
17846         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
17847         functions.
17848         (expand_call_inline): Likewise.
17849         * toplev.h (sorry): Fix prototype.
17850
17851 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17852
17853         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17854         conditional jumps that drop through to unconditional jumps or the
17855         end of the sequence.
17856
17857 2004-01-13  Jan Hubicka  <jh@suse.cz>
17858
17859         * alias.c (new_alias_set): Construct the alias_set varray.
17860         (init_alias_once): Don't do it here.
17861
17862 2004-01-12  Marc Espie <espie@openbsd.org>
17863
17864         * system.h: handle YYBYACC like YYBISON.
17865
17866 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17867
17868         PR target/10847
17869         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17870         building on sparc64-*-openbsd*.
17871
17872 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17873
17874         PR debug/13539
17875         * dbxout.c (dbxout_type): Protected inheritance is not
17876         private but protected.
17877
17878 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17879
17880         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17881
17882 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17883
17884         PR optimization/12508.
17885         * combine.c (try_combine): Remove a dead set in a parallel
17886         even if its destination is a subreg.
17887
17888         Revert:
17889         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17890         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17891         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17892
17893 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17894
17895         * real.c: Update copyright date.
17896         * emit-rtl.c: Likewise.
17897         * rtl.h: Likewise.
17898         * dwarf2out.c: Likewise.
17899         * config/rs6000/darwin-ldouble.c: Likewise.
17900         * config/rs6000/rs6000.md: Likewise.
17901
17902 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17903
17904         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17905         TFmode to SImode libfuncs.
17906
17907 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17908
17909         PR middle-end/11397
17910         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17911
17912 2004-01-12  Jan Hubicka  <jh@suse.cz>
17913
17914         PR opt/12826
17915         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17916         stored.
17917
17918         PR opt/12863
17919         * cfgcleanup.c (label_is_jump_target_p): Move to...
17920         * rtlanal.c (label_is_jump_target_p): ... here.
17921         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17922         edges unified with branch edges.
17923
17924 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17925
17926         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17927         high word of an integral CONST_DOUBLE.
17928
17929 2004-01-12  Paul Brook  <paul@codesourcery.com>
17930
17931         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17932
17933 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17934
17935         PR target/13585
17936         * sh-protos.h (check_use_sfunc_addr): Declare.
17937         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17938         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17939
17940 2004-01-12  Jan Hubicka  <jh@suse.cz>
17941
17942         * alias.c:  Invlude varray.h
17943         (alias_sets): Turn into varray.
17944         (get_alias_set_entry): Use VARRAY; mark inline.
17945         (mems_in_disjoint_alias_sets_p): Mark inline.
17946         (record_alias_subset): Use varray.
17947         (init_alias_once): Initialize varray.
17948         (new_alias_set): Grow array.
17949         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17950
17951 2004-01-12  Jan Hubicka  <jh@suse.cz>
17952
17953         Partial fix for PR opt/10776 II
17954         * cselib.c: Include params.h
17955         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17956         locations.
17957         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17958         * Makefile.in (cselib.o): Depend on params.h
17959
17960 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17961
17962         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17963         simplify_unary_operation if the operand has a known mode.
17964
17965 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17966
17967         PR target/13534
17968         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17969         predicate to handle 'ld' conform addresses.
17970         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17971         contraint.
17972         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17973         are memory contraints.
17974         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17975         New prototype.
17976         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17977         Change 'o' to 'Y' constraint.
17978         (*movdf_softfloat64): Ditto.
17979
17980 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17981
17982         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17983         brace-enclosed syntax in all C output statements.
17984
17985 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17986
17987         PR target/13401
17988         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17989         Objective-C language type value is 14.
17990
17991 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17992
17993         PR c/12148
17994         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17995         `int' in a number of places to make sure we always have a SImode
17996         and not a HImode.  Add a 'L' suffix to a number of constants.
17997
17998 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17999
18000         * pa.c: Don't include obstack.h.
18001
18002         * pa.md: Correct constraint in pattern for loading PIC label address.
18003
18004 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
18005
18006         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
18007          before defining.
18008
18009 2004-01-11  Steven Bosscher  <stevenb@suse.de>
18010
18011         PR fortran/9972
18012         * toplev.c (rest_of_handle_inline): Also consider functions
18013         for deferral if the language is GNU F77.
18014
18015 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
18016
18017         * c-decl.c (diagnose_arglist_conflict): Add missing space to
18018         diagnostic messages.
18019
18020 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
18021
18022         PR middle-end/13392
18023         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
18024         to drop through label.  Don't fall back to SCC even when conditional
18025         jump has not been found.
18026
18027 2004-01-11  Jan Hubicka  <jh@suse.cz>
18028
18029         * invoke.texi: Fix syntax error in previous patch.
18030
18031         Partial fix for PR opt/10776
18032         * Makefile.in (reload.o): Include param.h
18033         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
18034         * reload.c: Include params.h.
18035         (find_equiv_reg): Work limiting check.
18036         * invoke.texi: Document.
18037
18038 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18039
18040         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
18041         out-of-bounds accesses to string constants.  Simplify mips16
18042         case accordingly.
18043
18044 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18045
18046         PR optimization/13469
18047         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
18048         reload_cse_regs (-fnon-call-exceptions only).
18049
18050 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
18051
18052         * config/mcore/lib1.asm: Fix comment formatting.
18053         * config/mcore/mcore-elf.h: Likewise.
18054         * config/mcore/mcore.c: Likewise.
18055         * config/mcore/mcore.h: Likewise.
18056         * config/mcore/mcore.md: Likewise.
18057
18058 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18059
18060         * c-decl.c (duplicate_decls): Break apart into...
18061         (diagnose_arglist_conflict, validate_proto_after_old_defn)
18062         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
18063         ... these new functions.  Restructure for comprehensibility.
18064         Remove various archaic special cases.  Always report the
18065         location of the previous declaration when a diagnostic is issued.
18066         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
18067         (match_builtin_function_types): Delete unnecessary forward declaration.
18068
18069 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18070
18071         * genautomata.c (make_automaton, NDFA_to_DFA):
18072         Print progress bars with '.' characters instead of '*'.
18073         (build_automaton): Change notes to match.
18074
18075 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18076
18077         * config/m32r/m32r.md: Use define_constants for unspec and
18078         unspec_volatile.
18079
18080 2004-01-10  Jan Hubicka  <jh@suse.cz>
18081
18082         PR opt/11635
18083         * expr.c (expand_expr_real):  More curefully expand union casts.
18084
18085 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18086
18087         * config/m32r/m32r.md (flush_icache): Use 1 for
18088         unspec_volatile.
18089
18090 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
18091             James E Wilson  <wilson@specifixinc.com>
18092
18093         PR debug/12860
18094         * dbxout.c (dbxout_symbol): Remove initialization of
18095         current_sym_code, current_sym_value, and current_sym_addr.
18096         (dbxout_symbol_location): Same.
18097         (dbxout_prepare_symbol): Zero current_sym_code,
18098         current_sym_value, and current_sym_addr.
18099
18100 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
18101
18102         * tree.c (get_unwidened): Reorder conditions so that the null pointer
18103         check is done first.
18104
18105 2004-01-09  Eric Christopher  <echristo@redhat.com>
18106
18107         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
18108         if we're running mark_constant_function.
18109
18110 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
18111
18112         PR target/12561
18113         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
18114
18115 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
18116
18117         PR debug/11231
18118         * dbxout.c (dbxout_type_fields): Return if any item is
18119         error_mark_node or the type is error_mark_node.
18120
18121 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
18122
18123         * config/rs6000/darwin-ldouble.c: Add big comment explaining
18124         exactly what is expected as a 'long double'.
18125         (_xlqadd): When a value to be returned is representable as a
18126         'double', just return it directly, do not construct it using a union.
18127         Also, correct final fixup.
18128         (_xlqmul): Likewise.
18129         (_xlqdiv): Likewise.
18130         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
18131
18132         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
18133
18134 2004-01-09  Richard Henderson  <rth@redhat.com>
18135
18136         * recog.c (constrain_operands): Validate mem operands.
18137
18138 2004-01-09   James E Wilson  <wilson@specifixinc.com>
18139
18140         * gcc.c (init_spec): Remove -lunwind from shared case.
18141         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
18142
18143 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
18144
18145         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
18146         * configure: Regenerate
18147
18148 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
18149
18150         PR c/11234
18151         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
18152         between function and object pointers.
18153         (digest_init): When comparing a pointer to function type to the
18154         target type, only apply TREE_TYPE once to the pointer to function
18155         type.
18156         * except.c (for_each_eh_label_1): Treat data as a pointer to a
18157         function pointer rather than casting it to a function pointer.
18158         (for_each_eh_label): Update caller.
18159         * recog.h (struct insn_data): Use a struct or union for output.
18160         * genoutput.c (output_insn_data): Update.
18161         * final.c (get_insn_template): Update.
18162
18163 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
18164
18165         * expr.h (expand_expr): Make it a macro, not a function.
18166         (expand_expr_real): New function.
18167         * expr.c (store_expr): Adjust logic for deciding whether or not to
18168         copy the value returned by expand_expr.
18169         (expand_expr): Rename to ...
18170         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
18171         calls to language hooks.
18172         * c-common.h (c_expand_expr): Adjust prototype.
18173         * c-common.c (c_expand_expr): Add alt_rtl parameter.
18174         * langhooks-def.h (lhd_expand_expr): Change prototype.
18175         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
18176         * langhooks.h (lang_hooks): Change type of expand_expr.
18177         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
18178         (last_expr_alt_rtl): Likewise.
18179         (expand_expr_stmt_value): Set last_expr_alt_rtl.
18180         (clear_last_expr): Clear it.
18181         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
18182         (expand_end_bindings): Save and restor last_expr_alt_rtl.
18183         * tree.def (RTL_EXPR): Give it an additional operand.
18184         * tree.h (RTL_EXPR_ALT_RTL): New macro.
18185
18186 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18187
18188         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
18189         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
18190
18191 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18192
18193         PR target/13380.
18194         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
18195         or (ne:SI (reg:CC 17) (const_int 0)).
18196         Be specific about modes wherever possible.
18197
18198 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18199
18200         * config/m32r/m32r.c (m32r_expand_block_move): Call
18201         gen_movestrsi_internal with two more arguments.
18202         (m32r_output_block_move): Adjust operand numbers.
18203         Properly update the source and destination pointers.
18204         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
18205         'r+'.  Change the set detinations to match_operand.
18206
18207 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18208
18209         * final.c (FIRST_INSN_ADDRESS): Remove.
18210         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
18211         * system.h (FIRST_INSN_ADDRESS): Poison.
18212         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
18213         * config/m32r/m32r-protos.h: Remove the prototype for
18214         m32r_first_insn_address.
18215         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
18216         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
18217         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
18218
18219 2004-01-09  J. Brobecker  <brobecker@gnat.com>
18220
18221         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
18222         we just created.
18223         (is_ada_subrange_type): DIEs for enumeration subtypes should be
18224         emitted as subrange types too.
18225         (subrange_type_die): Add handling of enumeration subtypes.
18226
18227 2004-01-08  Richard Henderson  <rth@redhat.com>
18228
18229         PR opt/12441
18230         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
18231         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
18232         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
18233         (ix86_address_cost): Be prepared for SUBREGed registers.
18234         (legitimate_address_p): Accept SUBREGed registers.
18235
18236 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
18237
18238         * Makefile.in: Rename configure.in to configure.ac
18239         * doc/sourcebuild.texi: Likewise.
18240         * configure: Regenerate.
18241         * config.in: Regenerate.
18242
18243 2004-01-08  Stuart Hastings  <stuart@apple.com>
18244
18245         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
18246
18247 2004-01-08  Jan Hubicka  <jh@suse.cz>
18248
18249         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
18250
18251 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
18252
18253         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
18254         (UNSPEC_FIX_TRUNC_TF): New constant.
18255         (movtf_internal): Make splitter active only when insn is active.
18256         (extenddftf2): Rewrite to properly load zero into low part.
18257         (extenddftf2_internal): New.
18258         (extendsftf2): Rewrite.
18259         (truncdftf2): Correct length.
18260         (floatditf2): Delete.
18261         (fix_trunc_helper): New.
18262         (fix_trunctfdi2): Use fix_trunc_helper.
18263         (fix_trunctfsi2): Likewise.fix_trunc
18264         (fix_trunctfsi2_internal): New.
18265
18266         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
18267         addresses are legitimate on Darwin even when flag_pic.
18268         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
18269         non-offsettable addresses for loads of TFmode constants.
18270
18271 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18272
18273         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
18274         variables in the appropriate bss section.
18275
18276 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
18277
18278         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
18279         target_flags has MASK_POWERPC64 when -m64.
18280         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
18281         to 620, 630, power3, power4 and rs64a entries.
18282         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
18283
18284 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
18285
18286         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
18287         floating-point constants.
18288
18289 2004-01-08  J. Brobecker  <brobecker@gnat.com>
18290
18291         * dwarf2out.c (subrange_type_die): Add context_die parameter.
18292         Create the subrange_type DIE using the given context DIE.
18293         (modified_type_die): Update call to subrange_type_die.
18294
18295 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
18296
18297         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
18298         Add multiple-include guard.
18299
18300 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
18301
18302         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
18303         all vector constant loadable by vsplt*.
18304         (output_vec_const_move): Likewise.
18305
18306 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18307
18308         PR c/6024
18309         * c-typeck.c (comptypes): Only treat enumerated types in the same
18310         translation unit as compatible with each other when they are the
18311         same type.
18312         * doc/extend.texi: Update.
18313
18314 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18315
18316         PR c/12165
18317         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18318         array type from the array element type.
18319
18320 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
18321
18322         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18323         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18324         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18325         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18326         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18327
18328 2004-01-06  Eric Christopher  <echristo@redhat.com>
18329
18330         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18331         (DWARF2_DEBUGGING_INFO): Define.
18332         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18333         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18334         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18335         for irix as.
18336         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18337         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18338         * config/mips/iris5gas.h: Ditto.
18339         (DBX_DEBUGGING_INFO): Remove.
18340         (DWARF2_DEBUGGING_INFO): Ditto.
18341         (MIPS_DEBUGGING_INFO): Ditto.
18342         (PREFERRED_DEBUGGING_TYPE): Ditto.
18343         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18344         (PREFERRED_DEBUGGING_TYPE): Ditto.
18345         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18346         * config/mips/elf64.h: Ditto.
18347
18348 2004-01-06  Jan Hubicka  <jh@suse.cz>
18349
18350         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18351         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18352
18353 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
18354
18355         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18356         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18357         * config/rs6000/darwin-ldouble.c: New.
18358
18359         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18360         for constants.
18361         (constant_subword): Delete.
18362         * rtl.h (constant_subword): Delete prototype.
18363         (immed_double_const): Is not in varasm.c.
18364         * simplify-rtx.c (simplify_immed_subreg): New.
18365         (simplify_subreg): Use simplify_immed_subreg.
18366
18367         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18368         than trying to generate RTL directly.
18369         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18370         RTL directly.
18371
18372         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18373
18374 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18375
18376         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18377         function into a separate macro.
18378         (read_only_data_section): Add void argument.
18379         (private_data_section): Same.
18380         (read_only_private_data_section): Same.
18381         (toc_section): Same.
18382
18383 2004-01-06  Jan Hubicka  <jh@suse.cz>
18384
18385         * invoke.texi:  Remove typo in last change.
18386
18387         PR target/10301
18388         * config.gcc: Accept opteron and athlon-64 as variants
18389         of k8.
18390         * i386.c (override_options): Likewise.
18391         * invoke.texi (i386 -mtune): Expand documentation.
18392
18393 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18394
18395         * alias.c: Fix comment typos.
18396         * builtins.c: Likewise.
18397         * cfg.c: Likewise.
18398         * df.c: Likewise.
18399         * dominance.c: Likewise.
18400         * dwarf2out.c: Likewise.
18401         * emit-rtl.c: Likewise.
18402         * expr.c: Likewise.
18403         * final.c: Likewise.
18404         * fold-const.c: Likewise.
18405         * gcse.c: Likewise.
18406         * genattrtab.c: Likewise.
18407         * genrecog.c: Likewise.
18408         * gensupport.c: Likewise.
18409         * ggc-zone.c: Likewise.
18410         * integrate.c: Likewise.
18411         * local-alloc.c: Likewise.
18412         * loop.c: Likewise.
18413         * recog.c: Likewise.
18414         * regmove.c: Likewise.
18415         * reg-stack.c: Likewise.
18416         * reorg.c: Likewise.
18417         * rtlanal.c: Likewise.
18418         * rtl.h: Likewise.
18419         * sched-ebb.c: Likewise.
18420         * simplify-rtx.c: Likewise.
18421         * toplev.c: Likewise.
18422         * varasm.c: Likewise.
18423
18424 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18425
18426         * doc/install.texi: Fix typos.
18427         * doc/invoke.texi: Likewise.
18428         * doc/md.texi: Likewise.
18429
18430 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18431
18432         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18433
18434 2004-01-06  Jan Hubicka  <jh@suse.cz>
18435
18436         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18437         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18438         of MMX_REGPARM.
18439         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18440         add MMX_REGPARM.
18441         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18442         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18443         (MMX_REGPARM_MAX): Similarly for -mmmx.
18444
18445 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18446
18447         * config/sh/linux.h: Fix comment formatting.
18448         * config/sh/netbsd-elf.h: Likewise.
18449         * config/sh/sh.c: Likewise.
18450         * config/sh/sh.h: Likewise.
18451         * config/sh/vxworks.h: Likewise.
18452
18453 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18454
18455         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18456         * toplev.c (output_file_directive): Don't use
18457         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18458
18459 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18460
18461         * toplev.c: Fix broken checkin of 2003-12-30.
18462
18463 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18464
18465         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18466         (USING_MMAP): We don't support non-mmap.
18467         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18468         large objects.
18469         (struct page_entry): Remove bytes_free.
18470         (struct page_table_chain): Remove.
18471         (struct globals): Remove page_table member.
18472         (loookup_page_table_entry): Function deleted.
18473         (set_page_table_entry): Ditto.
18474         (ggc_allocated_p): No longer need page table lookups.
18475         (ggc_marked_p): Ditto.
18476         (alloc_small_page): Don't care about bytes_free anymore.
18477         (alloc_large_page): Round up size.
18478         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18479         their size the new way.
18480         Remove page table lookups and setting.
18481         (ggc_get_size): Calculate large object size the new way.
18482         (sweep_pages): Redo to account for fact that we no longer have
18483         bytes_free.
18484         (ggc_collect): No longer need to reincrement bytes_free.
18485         (ggc_pch_alloc_object): Handle new large objects properly.
18486         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18487
18488 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18489
18490         * doc/invoke.texi: Remove a page break.
18491
18492 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18493
18494         * config/avr/avr.c (avr_output_function_prologue): Remove an
18495         extra pair of curly braces.
18496
18497 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18498
18499         * config/mn10300/mn10300.c: Fix comment formatting.
18500         * config/mn10300/mn10300.h: Likewise.
18501
18502 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18503
18504         * tree.h: Update documentation on nothrow_flag.
18505         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18506         types.
18507
18508 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18509
18510         * doc/invoke.texi: Remove traces of dead ports.
18511
18512 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18513
18514         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18515         option.
18516
18517 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18518
18519         PR target/12945
18520         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18521         counter labels.
18522         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18523         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18524         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18525         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18526         (mips_symbol_insns): Don't trust the local/global classification.
18527         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18528         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18529         -mno-explicit-relocs.
18530         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18531         between local and global symbols.
18532
18533 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18534
18535         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18536         (mips_preferred_reload_class): Declare.
18537         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18538         (EXTRA_CONSTRAINT): Update accordingly.
18539         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18540         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18541         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18542         mips_dangerous_for_la25_p.
18543         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18544         if mips_dangerous_for_la25_p.
18545
18546 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18547
18548         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18549         warning.
18550
18551 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18552
18553         * configure.ac: Use AC_PROG_CPP_WERROR.
18554         * configure: Regenerate.
18555
18556 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18557
18558         * .cvsignore: Add autom4te.cache.
18559
18560 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18561
18562         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18563         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18564         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18565         then architecture options, then ABI options.  General rewording.
18566
18567 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18568
18569         PR c/3414
18570         * doc/extend.texi: Clarify definition of malloc attribute.
18571
18572 2004-01-04  Jan Hubicka  <jh@suse.cz>
18573
18574         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18575         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18576         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18577         (cgraph_inline_p): Add extra argument reason.
18578         * cgraphunit.c: Minor formating fixes.
18579         cgraph_first_inlined_callee): New functions.
18580         (record_call_1): Record builtins too.
18581         (cgraph_analyze_function): Update inline_failed messages.
18582         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18583         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18584         (cgraph_check_inline_limits): Likewise; Add argument reason.
18585         (cgraph_set_inline_failed): New static function.
18586         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18587         reasons.
18588         (cgraph_inline_p): Add new argument reason.
18589         * tree-inline.c (expand_call_inline):  Update warning.
18590
18591 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18592
18593         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18594         with modern equivalents.
18595         * configure: Regenerate.
18596
18597         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18598         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18599         * configure: Regenerate.
18600
18601         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18602
18603         * configure.in: Rename to configure.ac.
18604         * configure.ac: Renamed from configure.in; make minimum necessary
18605         changes for autoconf 2.5x.
18606         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18607         * configure: Regenerate with autoconf 2.57.
18608
18609 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18610
18611         * config/mips/linux.h: Fix comment formatting.
18612         * config/mips/mips.c: Likewise.
18613         * config/mips/mips.h: Likewise.
18614         * config/mips/mips.md: Likewise.
18615         * config/mips/netbsd.h: Likewise.
18616         * config/mips/windiss.h: Likewise.
18617
18618 2004-01-02  Richard Henderson  <rth@redhat.com>
18619
18620         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18621         for sse and 387; add suppression for mmx.
18622
18623 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18624
18625         * loop.c (loop_optimize): Free all loops_info's mems.
18626
18627         * c-typeck.c (finish_init): Free spelling_base before
18628         setting it again.
18629
18630         * cfgloop.c (flow_loops_find): Always free the sbitmap
18631         headers.
18632
18633         * predict.c (estimate_probability): Free bbs after being
18634         done with it.
18635
18636 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18637
18638         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18639         const_8bit_operand and call_address_operand.
18640
18641 2004-01-02  Jan Hubicka  <jh@suse.cz>
18642
18643         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18644         when there is nothing to inline but warnings are requested.
18645         (cgraph_decide_inlining):  Fix memory leak.
18646
18647 2004-01-02  Jan Hubicka  <jh@suse.cz>
18648
18649         * expr.c (store_constructor):  Fix pasto in previous patch.
18650
18651 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18652
18653         * config/i386/cygming.h: Fix comment formatting.
18654         * config/i386/djgpp.h: Likewise.
18655         * config/i386/gthr-win32.c: Likewise.
18656         * config/i386/i386-interix.h: Likewise.
18657         * config/i386/i386.c: Likewise.
18658         * config/i386/i386.h: Likewise.
18659         * config/i386/openbsd.h: Likewise.
18660         * config/i386/winnt.c: Likewise.
18661         * config/i386/xm-mingw32.h: Likewise.
18662
18663 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18664
18665         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18666         copyright and last modification dates.
18667
18668 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18669
18670         * doc/install.texi (Specific): Mention x86_64.
18671
18672 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18673
18674         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18675         Call force_operand on plus_constant result.
18676
18677 2004-01-01  Jan Hubicka  <jh@suse.cz>
18678
18679         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18680         * expr.c (store_constructor): Use vec_init pattern.
18681         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18682         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18683         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18684         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18685         New patterns.
18686         (sse2_unpc?pd): Fix pattern.
18687         (sse2_movlpd): Kill.
18688         (sse2_movsd): Deal with movlpd too.
18689         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18690         (ix86_expand_vector_init): New.
18691         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18692         * md.texi (vec_set, vec_extract): Document
18693
18694 2003-12-31  Jan Hubicka  <jh@suse.cz>
18695
18696         PR opt/13473
18697         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18698         ASM input operands
18699
18700         PR opt/12617
18701         * toplev.c (dump_file_index): Reorder ce3 and bbro.
18702         (dump_file): Likewise.
18703         (rest_of_compilation): Likewise.
18704
18705         PR debug/13367
18706         * cgraph.c (cgraph_function_possibly_inlined):  Even with
18707         flag_really_no_inline we inline always_inline functions.
18708         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18709         for non-always_inline functions when there is flag_really_no_inline.
18710         (cgraph_decide_inlining): Limit work done when not inlining.
18711         (cgraph_decide_inlining_incrementally): Likewise.
18712         (cgraph_optimize_function): Check whether something got inlined.
18713         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18714         extern inline functions when not inlining.
18715
18716         * opts.c (decode_options):  Disable crossjumping at -O1
18717         * invoke.texi (-O1): Document change.
18718
18719 See ChangeLog.10 for earlier changes.