OSDN Git Service

* c-common.c (flag_objc_sjlj_exceptions): New.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-17  Richard Henderson  <rth@redhat.com>
2
3         * c-common.c (flag_objc_sjlj_exceptions): New.
4         * c-common.h (flag_objc_sjlj_exceptions): Declare.
5         * c-opts.c (c_common_handle_option): Set it.
6         (c_common_post_options): Handle interation of different
7         objective-c exception and runtime switches.
8         * c-decl.c (c_eh_initialized_p): New.
9         (finish_decl): Use it instead of local eh_initialized_p.
10         * c-parse.in (nested_function, notype_nested_function): Record
11         the result of compstmt.
12         (compstmt_or_error): Likewise.
13         (compstmt): Don't add_stmt the result.
14         (stmt): Don't return anything.  Rewrite objc try and sync rules.
15         (objc_try_stmt, objc_catch_list): Remove.
16         (objc_catch_block, objc_finally_block): Remove.
17         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
18         (objc_try_catch_clause, objc_finally_clause): New.
19         (objc_try_catch_stmt): Rewrite.
20         * c-tree.h (c_eh_initialized_p): Declare.
21         * c-opt (fobjc-sjlj-exceptions): New.
22         * except.c (output_function_exception_table): Don't call cgraph
23         on non-decls.
24         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
25         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
26         catch_count_stack, exc_binding_stack, if_nesting_count,
27         blk_nesting_count, objc_enter_block, objc_exit_block,
28         objc_declare_variable, val_stack_push, val_stack_pop, 
29         objc_build_try_enter_fragment, objc_build_extract_expr,
30         objc_build_try_exit_fragment, objc_build_extract_fragment,
31         objc_build_try_prologue, objc_build_try_epilogue, 
32         objc_build_catch_stmt, objc_build_catch_epilogue,
33         objc_build_finally_prologue, objc_build_finally_epilogue,
34         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
35         objc_build_synchronized_epilogue): Remove.
36         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
37         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
38         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
39         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
40         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
41         objc_begin_catch_clause, objc_finish_catch_clause,
42         objc_build_finally_clause, objc_finish_try_stmt,
43         objc_build_synchronized): New.
44         (objc_is_object_id, objc_is_class_id): New.
45         (objc_comptypes): Use them.
46         (build_next_objc_exception_stuff): Break NeXT sjlj out from
47         build_objc_exception_stuff.
48         (synth_module_prologue): Update to match.
49         (objc_build_throw_stmt): Use cur_try_context to decide if
50         we're in a @catch.
51         * objc/objc-act.h: Update prototypes.
52         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
53
54 2004-06-17  Andrew Pinski <apinski@apple.com>
55
56         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
57         Use TYPE_FIELDS instead of TYPE_VALUES.
58
59 2004-06-17  Jason Merrill  <jason@redhat.com>
60
61         PR c++/16015
62         * gimplify.c (gimplify_target_expr): Handle void initializer.
63         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
64         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
65         and AGGR_INIT_EXPR.
66
67 2004-06-17  Roger Sayle  <roger@eyesopen.com>
68
69         * fold-const.c (fold_relational_const): Use constant_boolean_node.
70
71 2004-06-17  Jan Hubicka  <jh@suse.cz>
72
73         PR target/15433
74         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
75         operand numbering in the output template.
76         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
77
78 2004-06-17  Jan Hubicka  <jh@suse.cz>
79
80         * except.c (can_throw_internal): Recognize RESX expresisons.
81
82 2004-06-17  Jan Hubicka  <jh@suse.cz>
83
84         * cfgbuild.c (make_edges): Do not use label_value_list.
85         (find_basic_blocks_1): Do not collect label_value_list.
86         (find_sub_basic_blocks): Update call of make_edges.
87
88 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
89
90         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
91         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
92         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
93         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
94         (get_v_may_def_result_ptr):  Return a def_operand_p.
95         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
96         (get_v_must_def_op_ptr):  Return a def_operand_p.
97         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
98         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
99         (phi_element_for_edge):  Remove.
100         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
101         (propagate_tree_value):  Add new prototype.
102         (phi_element_for_edge):  Remove prototype.
103         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
104         (prepare_operand_for_rename):  Split into two functions.
105         (prepare_use_operand_for_rename):  Prepare use operands.
106         (prepare_def_operand_for_rename):  Prepare def operands.
107         (rewrite_stmt):  Use new operand types.
108         (rewrite_operand):  Use new operand types, change parameter type.
109         * tree-outof-ssa.c (replace_variable):  Split into two functions.
110         (replace_use_variable):  Rewrite uses.
111         (replace_def_variable):  Rewrite defs.
112         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
113         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
114         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
115         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
116         (ccp_fold, replace_uses_in):  Use new operand types.
117         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
118         and no longer set the value, change parameter type.
119         (replace_exp_1):  Use new operand types.
120         (propagate_value):  Change parameter type, use new operand types.
121         (propagate_tree_value):  Propagate_value without SSA operands.
122         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
123         (cprop_into_successor_phis):  Use new operand types.
124         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
125         (eliminate_redundant_computations):  Use new operand types.
126         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
127         (fix_stmt_v_may_defs):  Use new operand_types.
128         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
129         (build_tree_conflict_graph):  Use new operand_types.
130         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
131         * tree-ssa-operands.c (struct freelist_d):  Remove.
132         (check_optype_freelist, add_optype_freelist):  Remove.
133         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
134         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
135         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
136         Call ggc_free instead of add_optype_freelist.
137         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
138         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
139         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
140         (struct use_optype_d):  Change underlying type.
141         (def_operand_p, use_operand_p):  New types for pointers to operands.
142         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP, 
143         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
144         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand 
145         pointer types.
146         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
147         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
148         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
149         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
150         PHI result as an operand.
151         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
152         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
153         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
154         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
155         PHI_ARG_DEF_FROM_EDGE.
156         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
157         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
158
159 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
160
161         PR tree-optimization/15991
162         * tree-cfg.c (tree_block_label): Export.
163         * tree-flow-inline.h (bsi_after_labels): New function.
164         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
165         * tree-ssa.c (propagate_into_addr): New function.
166         (replace_immediate_uses): Handle propagation of pointer constants.
167         (raise_value): Do not restrict propagation of pointer constants.
168         * tree-ssanames.c (duplicate_ssa_name): New function.
169         * tree.h (duplicate_ssa_name): Declare.
170
171 2004-06-17  David Ayers  <d.ayers@inode.at>
172  
173         * c-parse.in: Unify Objective-C token names.
174
175 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
176
177         Bug 14610
178         * Makefile.in (min-insn-modes.o): Correct dependencies.
179         * real.c (encode_ieee_extended, decode_ieee_extended): Always
180         produce/consume 12-byte little-endian Intel format.
181         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
182         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
183         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
184         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
185         New functions which convert between 12-byte little-endian Intel
186         format and the desired format.
187         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
188         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
189         Update.
190
191 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
192
193         * expmed.c (expand_mult_const): In sanity check, compare only
194         the bits of val and val_so_far that are significant in the
195         result mode.
196
197 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
198
199         * tree-ssa-pre.c:  Update comments.
200         (val_expr_pair_eq): Factor code from here.
201         (expr_pred_trans_eq): and here.
202         (expressions_equal_p): To here.
203         (print_value_set): Print value for expression.
204         (phi_trans_lookup): Rename some variables.
205         (lookup): Ditto.
206         (value_exists_in_set_bitmap): Ditto.
207         (value_remove_from_set_bitmap): Ditto.
208         (value_insert_into_set_bitmap): Ditto.
209
210 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
211
212         * config/s390/s390-modes.def (CCL3mode): New machine mode.
213         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
214         (s390_alc_comparison, s390_slb_comparison): Likewise.
215         (s390_branch_condition_mask): Likewise.
216         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
217         ("*subsi3_cc2", "*subsi3_cconly2"): New.
218
219         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
220         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
221         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
222         Handle SIGN_EXTEND and ZERO_EXTEND.
223
224         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
225         * config/s390/s390.c (s390_expand_addcc): New function.
226         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
227         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
228         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
229
230 2004-06-17  Ben Elliston  <bje@au.ibm.com>
231
232         * tree-alias-common.c: Add whitespace.
233         * tree-inline.c: Correct comment about this file's purpose.
234         * tree-optimize.c: Likewise.
235         * tree-tailcall.c: Likewise.
236
237         * tree-alias-ander.h: Add standard top-of-file comment.
238         * tree-alias-common.h: Likewise.
239         * tree-alias-type.h: Likewise.
240
241 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
242
243         * tree-ssa-pre.c (compute_avail): Value number uses as well.
244         Strip useless type conversions.
245         Casts have to be treated slightly different than normal unaries.
246
247 2004-06-16  Richard Henderson  <rth@redhat.com>
248
249         * c-common.def (COMPOUND_STMT): Remove.
250         * c-common.c (finish_fname_decls): Don't look through it.
251         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
252         * c-common.h (COMPOUND_BODY): Remove.
253         (c_common_stmt_codes): Remove COMPOUND_STMT.
254         * c-dump.c (c_dump_tree): Likewise.
255         * c-gimplify.c (c_gimplify_stmt): Likewise.
256         * c-pretty-print.c (pp_c_statement): Likewise.
257         * tree.h (DECL_SAVED_TREE): Update commentary.
258         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
259         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
260         (GOTO_EXPR): Rename from GOTO_STMT.
261         (GOTO_FAKE_P): Remove.
262         (COMPOUND_STMT): Remove.
263         (HANDLER): Update wrt COMPOUND_STMT.
264         (STMT_EXPR): Likewise.
265         (LABEL_EXPR): Rename from LABEL_STMT.
266         (SCOPE_STMT): Remove.
267         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
268         through COMPOUND_STMT.
269
270 2004-06-16  Richard Henderson  <rth@redhat.com>
271
272         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
273         c_finish_while_stmt_cond): Remove decls.
274         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
275         * c-typeck.c (c_begin_if_stmt): Return void.
276         (c_begin_else): Tidy.  Save stmt_count.
277         * c-tree.h (c_begin_if_stmt): Update decl.
278
279         * objc/objc-act.c (objc_build_try_enter_fragment,
280         objc_build_extract_fragment, objc_build_try_epilogue,
281         objc_build_catch_stmt, objc_build_catch_epilogue,
282         objc_build_finally_prologue, objc_build_finally_epilogue): Update
283         for if builder function changes.
284
285 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
286
287         * config/s390/s390.c (struct machine_function):  New member
288         last_restore_gpr.
289         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
290         Do not modify machine->save_return_addr_p or regs_ever_live.
291         Fill in machine->last_restore_gpr.
292         (s390_optimize_prolog): Use s390_frame_info to compute registers
293         to save/restore, remove duplicated code.
294         (s390_arg_frame_offset): Use s390_frame_info to compute frame
295         size, remove duplicated code.
296         (s390_emit_prologue): Adapt s390_frame_info call.  Update
297         machine->save_return_addr_p and regs_ever_live.
298         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
299         machine->last_save_gpr.
300
301 2004-06-16  Richard Henderson  <rth@redhat.com>
302
303         * c-parse.in (if_stmt_locus): Remove.
304         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
305         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
306         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
307         empty_locus.  Add stmt_count, saw_else.
308         (c_begin_if_stmt): Push if_stack here.
309         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
310         (c_finish_then, c_finish_else): Record empty_locus.
311         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
312         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
313         if or else body.
314         * c-tree.h: Update prototypes.
315
316 2004-06-16  Steven Bosscher  <stevenb@suse.de>
317
318         * tree.h (PHI_CHAIN): New.
319         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
320         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
321         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
322         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
323         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
324         when traversing a list of PHI_NODEs.
325
326 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
327
328         PR target/13292
329         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
330         on -msoft-float.
331         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
332         68040 and soft-float.
333         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
334         in the TARGET_68040_ONLY case.
335
336 2004-06-16 Peter Barada  <peter@the-baradas.com>
337
338         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
339         (movsi_cf): Make named, don't match TARGET_CFV4.
340         (pushexthisi_const): Use mov3q if possible.
341         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
342         to special case mvz.w for ColdFire V4.
343         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
344         to special case mvz.b for ColdFire V4.
345         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
346         divide.
347         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
348         * config/m68k/m68k.c(valid_mov3q_const):  New function.
349         (const_method): SWAP is valid for ColdFire.
350         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
351         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
352
353 2004-06-16  Richard Henderson  <rth@redhat.com>
354
355         * c-common.def (CASE_LABEL): Remove.
356         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
357         (match_case_to_enum_1): Likewise.
358         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
359         * c-dump.c (c_dump_tree): Likewise.
360         * c-gimplify.c (c_gimplify_stmt): Likewise.
361         * c-pretty-print.c (pp_c_statement): Likewise.
362         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
363         * tree.h (CASE_LOW): Update commentary.
364
365 2004-06-16  Richard Henderson  <rth@redhat.com>
366
367         * c-common.def (ASM_STMT): Remove.
368         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
369         * c-dump.c (c_dump_tree): Likewise.
370         * c-gimplify.c (c_gimplify_stmt): Likewise.
371         * c-pretty-print.c (pp_c_statement): Likewise.
372         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
373         * tree.h: Fix commentary.
374
375 2004-06-16  Richard Henderson  <rth@redhat.com>
376
377         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
378         * c-common.c (c_add_case_label): Use LABEL_EXPR.
379         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
380         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
381         * c-dump.c (c_dump_tree): Likewise.
382         * c-gimplify.c (c_gimplify_stmt): Likewise.
383         * c-pretty-print.c (pp_c_statement): Likewise.
384         * c-parse.in (stmt): Use GOTO_EXPR.
385         (label): Use LABEL_EXPR.
386         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
387         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
388
389 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
390
391         * cfgcleanup.c (try_simplify_condjump): Update test to make
392         sure we have a conditional branch around am unconditional branch.
393
394 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
395
396         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
397
398 2004-06-16  Dale Johannesen  <dalej@apple.com>
399
400         * loop.c (loop_givs_reduce): Avoid miscompilation of
401         loops entered at bottom.
402
403 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
404
405         * cfglayout.c (fixup_reorder_chain): Handle case where the
406         destination of E_FALL is EXIT_BLOCK_PTR.
407
408 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
409
410         PR target/15653
411         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
412         after shifts before asm.
413
414 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
415
416         PR tree-optimization/15993
417         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
418         destination is unchanged.
419
420 2004-06-16  Andreas Jaeger  <aj@suse.de>
421
422         * doc/install.texi (Configuration): Update description for
423         --enable-version-specific-runtime-libs.
424
425 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
426
427         * doc/install.texi: boehm-gc now uses automake 1.8.5.
428
429 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
430
431         * toplev.h (rest_of_compilation): Adjust prototype.
432
433 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
434
435         * coverage.c: Remove argument to rest_of_compilation.
436         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
437         * passes.c (rest_of_compilation): Remove argument.
438         (pass_rest_of_compilation): New.
439         (rest_of_handle_final, rest_of_handle_delay_slots,
440         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
441         rest_of_handle_machine_reorg, rest_of_handle_regrename
442         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
443         rest_of_handle_regmove, rest_of_handle_tracer
444         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
445         rest_of_handle_web, rest_of_handle_branch_prob
446         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
447         rest_of_handle_addressof, rest_of_handle_jump_bypass
448         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
449         Check that the two arguments are actually superfluous.
450         * tree-optimize.c (register_dump_files): Add properties argument.
451         Track validity of passes.  Only initialize dump files for
452         tree-based passes.  Store the full set of provided passes in
453         the pass.
454         (init_tree_optimization_passes): Register pass_expand and
455         pass_rest_of_compilation.
456         (execute_one_pass): Do not track the presence of required properties
457         here.  Set in_gimple_form.  Do not update current_properties.
458         (current_properties): Remove.
459         (set_save_expr_context): Remove.
460         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
461         expand to RTL here, and do not call rest_of_compilation.  Push
462         GGC context even before gimplification.
463         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
464         (pass_expand, pass_rest_of_compilation): Declare.
465
466 2004-06-15  Jeff Law  <law@redhat.com>
467
468         * fold-const.c (swap_tree_comparison): No longer static.
469         (tree_swap_operands_p): Similarly.  Return true if both operands
470         are SSA_NAMEs and the first operand has a higher version number than
471         the second operand.
472         * tree.h (swap_tree_comparison): Prototype.
473         (tree_swap_operands_p): Prototype.
474         * tree-ssa-operands.c (get_expr_operands): For commutative
475         operators and relational comparisons, canonicalize the
476         order of the operands.
477
478 2004-06-15  Richard Henderson  <rth@redhat.com>
479
480         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
481         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
482         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
483         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
484         (finish_fname_decls, fname_decl): Use statement_lists.
485         (c_expand_expr_stmt): Don't set last_expr_type.
486         (c_type_hash): Fix indentation.
487         (c_safe_from_p): Don't follow TREE_CHAIN.
488         (c_tree_chain_matters_p): Remove.
489         * c-common.def (SCOPE_STMT): Remove.
490         (CLEANUP_STMT): Redefine to contain its own body.
491         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
492         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
493         Add x_cur_stmt_list.
494         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
495         (cur_stmt_list): New.
496         (STATEMENT_LIST_STMT_EXPR): New.
497         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
498         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
499         (CLEANUP_BODY): New.
500         (CLEANUP_DECL): Move to operand 2.
501         (c_common_stmt_codes): Remove SCOPE_STMT.
502         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
503         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
504         (c_push_function_context, c_pop_function_context): Don't save it.
505         (finish_decl): Set TREE_USED on the decl for a cleanup.
506         Use push_cleanup.
507         (store_parm_decls): Use statement lists.
508         (finish_function): Remove compstmt rule workaround.  Use statement
509         lists.  Call finish_fname_decls after finalizing the body.
510         (c_begin_compound_stmt): Move to c-typeck.c.
511         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
512         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
513         (c_genericize): Invoke them.
514         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
515         (c_build_bind_expr): Export.
516         (gimplify_block, gimplify_cleanup): Remove.
517         (gimplify_condition): Use gimplify_stmt.
518         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
519         (gimplify_if_stmt): Remove recursion hack.
520         (c_gimplify_expr): Remove STMT_EXPR handling.
521         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
522         (is_last_stmt_of_scope): Remove.
523         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
524         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
525         c_end_compound_stmt.
526         * c-objc-common.c (build_cdtor): Likewise.
527         * c-parse.in (primary): Use c_finish_stmt_expr.
528         (push_scope, pop_scope): Remove.
529         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
530         (c99_block_end, compstmt): Use c_end_compound_stmt.
531         (c99_block_lineno_labeled_stmt): Likewise.
532         (compstmt_primary_start): Use c_begin_stmt_expr.
533         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
534         (do_stmt_start): Fill in body directly.
535         (lineno_stmt): Avoid setting lineno on constants.
536         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
537         Remove SCOPE_STMT.
538         * c-semantics.c (begin_stmt_tree): Remove.
539         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
540         (add_stmt): Use statement lists.
541         (add_scope_stmt, finish_stmt_tree): Remove.
542         (push_cleanup): New.
543         * c-tree.h: Move some decls from c-common.h.
544         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
545         (do_case, c_finish_case): Likewise.
546         (c_finish_then): Take body for then as argument.
547         (c_finish_else): Similarly.
548         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
549         c_finish_for_stmt_incr, c_finish_for_stmt): New.
550         (c_begin_stmt_expr, c_finish_stmt_expr): New.
551         (c_begin_compound_stmt): Do scope management.
552         (c_end_compound_stmt): New.
553         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
554         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
555         Look through exception handling constructs.
556         (gimplify_bind_expr): Accept temporary argument.
557         (gimplify_target_expr): Special case BIND_EXPR bodies.
558         (gimplify_expr): Handle fallback == fb_none like a statement.
559         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
560         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
561         * langhooks.h (tree_chain_matters_p): Remove.
562         * stub-objc.c (objc_clear_super_receiver): New.
563         * tree-gimple.h (voidify_wrapper_expr): Update decl.
564         (append_to_statement_list, append_to_statement_list_force): Move
565         to tree-iterator.h.
566         * tree-inline.c (expand_call_inline): Update call.
567         (clone_body): Use statement lists.
568         (walk_tree): Don't check tree_chain_matters_p.
569         (copy_tree_r): Likewise.
570         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
571         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
572         * tree-iterator.h (append_to_statement_list,
573         append_to_statement_list_force): Moved from tree-gimple.h.
574         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
575         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
576         (objc_enter_block): Likewise.
577         (objc_exit_block): Use c_end_compound_stmt.
578         (objc_build_try_enter_fragment): Add #error and comment for
579         rewriting for OBJCPLUS.
580         (objc_build_extract_fragment, objc_build_try_epilogue,
581         objc_build_catch_stmt, objc_build_finally_prologue,
582         objc_build_finally_epilogue): Update for C statement builders.
583         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
584         Remove.
585
586 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
587
588         * df.c (df_reg_clobber_gen): Removed.
589         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
590         Make more effective for hard regs.
591         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
592
593 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
594
595         * c-pragma.h (c_lex_string_translate): Change type to int.
596         * c-parse.in: Change all assignments of c_lex_string_translate
597         to true and false to 1 and 0.
598         * c-lex.c (c_lex_string_translate): Likewise.
599         (lex_string): Convert string without translation in the -1
600         case.
601
602 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
603
604         * convert.h: Add include guards
605
606 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
607
608         * tree-flow-inline.h: Document all functions.
609
610 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
611
612         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
613         * tree-dfa.c (create_stmt_ann): Ditto.
614         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
615         * tree-inline.c (estimate_num_insns_1): Ditto.
616         * tree.c (tree_size): Ditto.
617         (make_node_stat): Ditto.
618         (tree_node_structure): Ditto.
619         (ephi_node_elt_check_failed): Remove.
620         (is_essa_node): Ditto.
621         * tree.def (EPHI_NODE): Ditto.
622         (EEXIT_NODE): Ditto.
623         (EUSE_NODE): Ditto.
624         (EKILL_NODE): Ditto.
625         * tree.h (EREF_NODE_CHECK): Remove.
626         (EPHI_NODE_ELT_CHECK): Ditto.
627         (struct tree_eref_common): Ditto.
628         (struct tree_euse_node): Ditto.
629         (struct ephi_arg_d): Ditto.
630         (struct tree_ephi_node): Ditto.
631         (ephi_node_elt_check_failed): Remove prototype.
632         (is_essa_node): Ditto.
633         (enum tree_node_structure_enum): Remove TS_E*_NODE.
634         (union tree_node): Remove E*_NODE uses.
635
636 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
637
638         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
639         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
640         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
641         Likewise.
642         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
643         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
644         expand_builtin_strcmp, expand_builtin_strncmp,
645         expand_builtin_frame_address): Likewise.
646         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
647         insert_one_insn): Likewise.
648         * calls.c (prepare_call_address, precompute_register_parameters,
649         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
650         * cfganal.c (flow_active_insn_p): Likewise.
651         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
652         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
653         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
654         make_extraction, recog_for_combine, gen_lowpart_for_combine,
655         simplify_comparison, record_dead_and_set_regs_1,
656         record_dead_and_set_regs, record_promoted_value,
657         check_promoted_subreg, get_last_value_validate, get_last_value,
658         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
659         unmentioned_reg_p_1): Likewise.
660         * conflict.c (mark_reg): Likewise.
661         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
662         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
663         merge_equiv_classes, flush_hash_table, invalidate,
664         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
665         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
666         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
667         record_jump_cond, cse_insn, addr_affects_sp_p,
668         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
669         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
670         cse_cc_succs, cse_condition_code_reg): Likewise.
671         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
672         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
673         cselib_record_set, cselib_record_sets): Likewise.
674         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
675         dbxout_block): Likewise.
676         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
677         * dojump.c (do_jump): Likewise.
678         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
679         is_based_loc, rtl_for_decl_location): Likewise.
680         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
681         set_decl_incoming_rtl, mark_user_reg): Likewise.
682         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
683         copy_to_suggested_reg, allocate_dynamic_stack_space,
684         probe_stack_range, hard_function_value): Likewise.
685         * expmed.c (store_bit_field, store_fixed_bit_field,
686         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
687         extract_split_bit_field, expand_divmod, emit_store_flag_force):
688         Likewise.
689         * expr.c (convert_move, convert_modes,
690         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
691         use_group_regs, emit_move_insn, emit_move_insn_1,
692         compress_float_constant, push_block, emit_single_push_insn,
693         emit_push_insn, get_subtarget, expand_assignment, store_expr,
694         store_constructor, store_field, force_operand, safe_from_p,
695         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
696         Likewise.
697         * final.c (profile_function, final_scan_insn, alter_subreg,
698         get_mem_expr_from_op, output_asm_operand_names, output_operand,
699         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
700         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
701         find_regno_partial, propagate_one_insn, init_propagate_block_info,
702         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
703         attempt_auto_inc, find_auto_inc, mark_used_regs,
704         count_or_remove_death_notes_bb): Likewise.
705         * function.c (find_temp_slot_from_address, update_temp_slot_address,
706         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
707         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
708         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
709         purge_single_hard_subreg_set, instantiate_decl,
710         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
711         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
712         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
713         expand_function_start, diddle_return_value, clobber_return_register,
714         expand_function_end, keep_stack_depressed, handle_epilogue_set,
715         update_epilogue_consts): Likewise.
716         * genemit.c (gen_exp, gen_insn): Likewise.
717         * genrecog.c (make_insn_sequence): Likewise.
718         * global.c (global_conflicts, expand_preferences, mark_reg_store,
719         mark_reg_conflicts, set_preference, reg_becomes_live,
720         build_insn_chain, mark_reg_change): Likewise.
721         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
722         Likewise.
723         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
724         Likewise.
725         * integrate.c (copy_rtx_and_substitute, try_constants,
726         subst_constants, mark_stores, allocate_initial_values): Likewise.
727         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
728         delete_computation, rtx_renumbered_equal_p, true_regnum,
729         reg_or_subregno): Likewise.
730         * lcm.c (reg_dies, reg_becomes_live): Likewise.
731         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
732         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
733         wipe_dead_reg, no_conflict_p): Likewise.
734         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
735         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
736         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
737         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
738         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
739         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
740         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
741         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
742         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
743         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
744         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
745         try_swap_copy_prop): Likewise.
746         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
747         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
748         Likewise.
749         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
750         reload_cse_simplify_operands, reload_combine,
751         reload_combine_note_store, reload_combine_note_use,
752         reload_cse_move2add, move2add_note_store): Likewise.
753         * print-rtl.c (print_rtx): Likewise.
754         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
755         contains_pseudo, handle_asm_insn): Likewise.
756         * ra-debug.c (ra_print_rtx_object, dump_constraints,
757         dump_static_insn_cost): Likewise.
758         * ra-rewrite.c (slots_overlap_p, emit_colors,
759         remove_suspicious_death_notes): Likewise.
760         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
761         register_operand, scratch_operand, nonmemory_operand,
762         constrain_operands): Likewise.
763         * reg-stack (check_asm_stack_operands, remove_regno_note,
764         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
765         subst_asm_stack_regs): Likewise.
766         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
767         record_address_regs, reg_scan_mark_refs): Likewise.
768         * regmove.c (discover_flags_reg, replacement_quality,
769         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
770         fixup_match_1): Likewise.
771         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
772         kill_set_value, copyprop_hardreg_forward_1): Likewise.
773         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
774         reload_inner_reg_of_subreg, can_reload_into, push_reload,
775         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
776         operands_match_p, decompose, find_reloads, find_reloads_toplev,
777         find_reloads_address, subst_indexed_address, find_reloads_address_1,
778         find_reloads_subreg_address, find_replacement,
779         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
780         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
781         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
782         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
783         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
784         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
785         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
786         do_output_reload, emit_reload_insns, gen_reload,
787         delete_address_reloads_1, inc_for_reload): Likewise.
788         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
789         update_reg_unused_notes, fill_slots_from_thread): Likewise.
790         * resource.c (update_live_status, mark_referenced_resources,
791         mark_set_resources, mark_target_live_regs): Likewise.
792         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
793         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
794         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
795         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
796         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
797         parms_set, find_first_parameter_load, keep_with_call_p,
798         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
799         num_sign_bit_copies1): Likewise.
800         * rtlhooks.c (gen_lowpart_general): Likewise.
801         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
802         sched_analyze): Likewise.
803         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
804         Likewise.
805         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
806         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
807         simplify_binary_operation, simplify_const_relational_operation,
808         simplify_subreg): Likewise.
809         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
810         expand_end_stmt_expr, expand_return, expand_decl,
811         expand_anon_union_decl): Likewise.
812         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
813         find_splittable_regs, find_splittable_givs, find_common_reg_term,
814         loop_iterations): Likewise.
815         * var-tracking.c (variable_union, variable_part_different_p,
816         variable_different_p, count_uses, add_uses, add_stores,
817         compute_bb_dataflow, set_variable_part, delete_variable_part,
818         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
819         Likewise.
820         * varasm.c (assemble_variable): Likewise.
821
822 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
823
824         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
825         definition.
826         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
827         #undef and #if 0'd definition.
828
829 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
830
831         * combine.c (distribute_notes): Comment typo fix.
832
833 2004-06-15  Roger Sayle  <roger@eyesopen.com>
834
835         * expmed.c (synth_mult): Mask bits of the multiplier to the
836         machine mode of the multiplication.  Don't consider shifts
837         by more than (or equal to) the width of the operation's mode.
838
839 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
840
841         * doc/install.texi: Yet another update for autoconf
842         and automake versions.
843
844 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
845
846         * function.h (struct function): Remove cannot_inline field.
847         (current_function_cannot_inline): Remove.
848         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
849         Simplify conditionals to ignore warn_return_type.
850         * tree-optimize.c (tree_rest_of_compilation): Do not reset
851         DECL_DEFER_OUTPUT.
852         * objc/objc-act.c (build_module_descriptor, finish_method_def):
853         Do not set current_function_cannot_inline.
854
855 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
856
857         * cfglayout.c (fixup_reorder_chain): Handle case where the
858         destination of E_TAKEN is EXIT_BLOCK_PTR.
859
860 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
861
862         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
863
864 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
865
866         * fold-const.c (operand_equal_p): Update comment.
867
868 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
869
870         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
871         (INCOMING_RETURN_ADDR_RTX): Define.
872         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
873         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
874         __builtin_return_address(0).
875         (m32r_return_addr): Added for __builtin_return_address(0).
876         (m32r_reload_lr): Ditto.
877
878         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
879
880 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
881
882         * doc/install.texi (Prerequisites): Update libbanshee,
883         fastjar, libcpp, libjava/libltdl entries to
884         automake 1.8.5.
885
886 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
887             Olivier Hainque  <hainque@act-europe.fr>
888
889         * function.c (fixup_var_refs): Also adjust the start of sequence
890         after fixing up the insns.
891
892 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
893
894         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
895
896 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
897
898         * doc/install.texi (Prerequisites): Update libstdc++ entry to
899         automake 1.8.5.
900
901 2004-06-14  Eric Christopher  <echristo@redhat.com>
902
903         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
904         to -mtpf-trace (-mno-tpf-trace).
905         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
906         documentation.
907
908 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
909
910         * real.c: Fix bit count in head comment.
911
912 2004-06-14  Jeff Law  <law@redhat.com>
913
914         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
915         PHIs where the destination or an argument is marked with
916         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
917
918 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
919
920         PR middle-end/15945
921         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
922         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
923
924 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
925
926         * opts.sh (var_args): Fix regexp.
927
928 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
929
930         PR target/15178
931         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
932
933 2004-06-14  Paul Brook  <paul@codesourcery.com>
934
935         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
936
937 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
938
939         * Makefile.in (FLAGS_H): New.
940         (flags.h): Replace by FLAGS_H.
941         * c.opt: Document Var, VarExists, Init and Report attributes.
942         * common.opt: Fill the values of the attributes.
943         * diagnostic.c (flag_fatal_errors): Do not define.
944         * except.c (flag_non_call_exceptions): Do not define.
945         * flags.h: Include options.h.  Remove declarations conflicting with
946         the automatically defined ones.
947         * opts.c: Remove automatically defined variables.
948         (handle_option): Perform default initialization.
949         (common_handle_option): Do not handle options covered by the
950         default initialization.
951         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
952         fields.
953         (CL_REPORT): New.
954         * opts.sh: Generate variable declarations, handle CL_REPORT.
955         * toplev.c: Remove automatically defined variables.
956         (f_options): Removed.
957         (print_switch_values): Use cl_options instead of f_options.
958         * toplev.h (version_flag): Declaration removed.
959
960 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
961
962         * config/sparc/sparc.h: Correct comment about availability of
963         little endian option.
964
965         * config.gcc: Remove sparc64-*-aout*.
966         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
967         * config/sparc/sp64-aout.h: Remove.
968         * config/sparc/aout.h: Remove.
969
970 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
971
972         * config/s390/s390.c: Include "tree-gimple.h".
973         (s390_gimplify_va_arg): New function.
974         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
975         (s390_va_arg): Remove.
976         * config/s390/s390-protos.h (s390_va_arg): Remove.
977         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
978
979 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
980
981         * basic-block.h (could_fall_through): Declare.
982         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
983         Fail if the source already has a fallthrough edge to the exit
984         block pointer.
985         (could_fall_through): New function.
986         * cfgbuild.c (make_edges): Check if we already have a fallthrough
987         edge to the exit block pointer.
988         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
989         not called before reload has completed.
990         Handle special case of first block having a fall-through exit edge.
991         (cfg_layout_finalize): Don't call it before reload or if we have
992         rtl epilogues.
993         (fixup_reorder_chain): A fall through to the exit block does not
994         require the block to come last.  Add sanity checks.
995         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
996         edges to the exit block.
997         * function.c (cfglayout.h): #include.
998         (thread_prologue_and_epilogue_insns): If we have neither return nor
999         epilogue, but a fall through to the exit block from mid-function,
1000         force a non-fall-through exit.
1001         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1002
1003 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
1004
1005         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1006         for power5 and rs64a.  Correct condition for default.  Correct power3,
1007         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
1008
1009 2004-06-13  Steven Bosscher <stevenb@suse.de>
1010
1011         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1012         Revert previous change, don't use CALL_P.
1013
1014 2004-06-13  Jason Merrill  <jason@redhat.com>
1015
1016         * tree.h: Move std_gimplify_va_arg_expr protoype here.
1017         * tree-gimple.h: From here.
1018
1019 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1020
1021         Fix PR tree-optimization/15979
1022         Fix PR tree-optimization/15981
1023         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1024         try to insert values undefined along some path.
1025
1026 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1027
1028         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1029         are available everywhere too.
1030
1031 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
1032
1033         * fold-const.c (fold_checksum_tree <case 't'>): Only
1034         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1035         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1036         EXPR is an INTEGERAL_TYPE or a scalar float type.
1037
1038 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
1039
1040         * tree-sra.c (tree_sra): Update documentation.
1041
1042 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
1043
1044         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1045         function_types_compatible_p, type_lists_compatible_p): Remove
1046         flags parameter.
1047         * c-tree.h (comptypes): Likewise.
1048         (COMPARE_STRICT): Remove.
1049         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1050         callers changed.
1051
1052 2004-06-13  Eric Christopher  <echristo@redhat.com>
1053
1054         * c-decl.c (diagnose_mismatched_decls): Improve error message.
1055         Remove unused code.
1056         * c-typeck.c (comptypes): Add location in standard we're checking.
1057
1058 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1059
1060         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1061         version 3.3.4.
1062
1063 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1064
1065         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1066         index by machine mode.
1067         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1068         tables inside the loop over machine modes.
1069         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1070         expand_divmod): Index shift*_cost by the appropriate machine mode.
1071
1072 2004-06-12  Eric Christopher  <echristo@redhat.com>
1073
1074         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1075         * config/s390/s390.md: Ditto.
1076         * config/s390/s390.c: Ditto.
1077         (s390_frame_info): Conditionalize frame and setup info on
1078         TARGET_TPF_PROFILING.
1079         (s390_arg_frame_offset): Ditto.
1080
1081 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1082
1083         * fold-const.c (omit_two_operands): New function.
1084         * tree.h (omit_two_operands): Prototype here.
1085         * builtins.c (fold_builtin_unordered_cmp): New function to lower
1086         C99 unordered comparison builtins to the appropriate tree nodes.
1087         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1088         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1089         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
1090         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1091         (simplify_builtin_memcmp, simplify_builtin_strncmp,
1092         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1093         omit_two_operands function to build the required COMPOUND_EXPRs.
1094
1095 2004-06-12  Steven Bosscher <stevenb@suse.de>,
1096             Andreas Jaeger  <aj@suse.de>
1097
1098         * gcse.c (record_set_info): Use predicates like REG_P.
1099         (mems_conflict_for_gcse_p): Likewise.
1100         (load_killed_in_block_p): Likewise.
1101         (hash_expr_1): Likewise.
1102         (insert_set_in_table): Likewise.
1103         (gcse_constant_p): Likewise.
1104         (hash_scan_set): Likewise.
1105         (hash_scan_insn): Likewise.
1106         (canon_list_insert): Likewise.
1107         (record_last_mem_set_info): Likewise.
1108         (record_last_set_info): Likewise.
1109         (compute_hash_table_work): Likewise.
1110         (mark_set): Likewise.
1111         (mark_clobber): Likewise.
1112         (mark_oprs_set): Likewise.
1113         (compute_transp): Likewise.
1114         (find_avail_set): Likewise.
1115         (cprop_insn): Likewise.
1116         (do_local_cprop): Likewise.
1117         (cprop): Likewise.
1118         (find_implicit_sets): Likewise.
1119         (find_bypass_set): Likewise.
1120         (bypass_conditional_jumps): Likewise.
1121         (insert_insn_end_bb): Likewise.
1122         (pre_insert_copy_insn): Likewise.
1123         (compute_transpout): Likewise.
1124         (next_ls_expr): Likewise.
1125         (invalidate_any_buried_refs): Likewise.
1126         (compute_ld_motion_mems): Likewise.
1127         (reg_set_info): Likewise.
1128         (reg_clear_last_set): Likewise.
1129         (find_moveable_store): Likewise.
1130         (compute_store_table): Likewise.
1131         (find_loads): Likewise.
1132         (store_killed_in_insn): Likewise.
1133         (insert_insn_start_bb): Likewise.
1134         (reg_set_between_after_reload_p): Likewise.
1135         (reg_used_between_after_reload_p): Likewise.
1136         (is_jump_table_basic_block): Likewise.
1137         (gcse_after_reload): Likewise.
1138         (hash_scan_set_after_reload): Likewise.
1139         (compute_hash_table_after_reload): Likewise.
1140
1141 2004-06-12  Steven Bosscher  <stevenb@suse.de>
1142
1143         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1144         (INSN_P): Don't look at the rtx code class, just explicitly
1145         check for one of the tree RTX_INSN codes.
1146
1147 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1148
1149         * c-typeck.c (default_function_array_conversion): Use
1150         build_pointer_type not TYPE_POINTER_TO.
1151
1152 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1153
1154         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1155         * configure, config.in: Regenerate.
1156         * system.h: Unconditionally define bool as unsigned char,
1157         BOOL_BITFIELD as unsigned int.
1158         * domwalk.h: Use BOOL_BITFIELD.
1159
1160 2004-06-12  Andreas Jaeger  <aj@suse.de>
1161
1162         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1163         * libgcc-darwin.ver: Likewise.
1164
1165 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
1166
1167         * reload.c (find_reloads): Force reload for pseudo registers on big
1168         endian machines.
1169
1170 2004-06-11  Steven Bosscher <stevenb@suse.de>
1171
1172         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1173         Don't try to mark anything control dependent on the entry or
1174         exit blocks.
1175
1176 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
1177
1178         Fix Bug 15899
1179         Fix Bug 15460
1180         * tree.h (SSA_NAME_VALUE): New macro.
1181         (struct tree_ssa_name): Add value_handle member.
1182         * tree-ssa-pre.c: Replaced.
1183         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1184         (struct cst_ann_d): New.
1185         (struct expr_ann_d): New.
1186         (union tree_ann_d): Add cst_ann, expr_ann.
1187         * tree-dfa.c (create_cst_ann): New function.
1188         (create_expr_ann): Ditto.
1189         * tree-flow-inline.h (cst_ann): New function.
1190         (expr_ann): Ditto.
1191         (get_cst_ann): Ditto.
1192         (get_expr_ann): Ditto..
1193
1194 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1195
1196         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1197         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1198         _U_Qfcmp library function.
1199         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1200         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1201
1202         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1203         unspec used for loading address from DLT.
1204         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1205         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1206         Don't use short code sequence when loading the address of a nonlocal
1207         label.
1208         (nonlocal_goto): New expander.
1209         (indirect_goto): New jump pattern for nonlocal gotos.
1210         (short_jump): Remove extra whitespace.
1211         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
1212         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1213         pattern.
1214
1215 2004-06-11  Roger Sayle  <roger@eyesopen.com>
1216
1217         * expmed.c (synth_mult): Add an additional MODE argument for the
1218         machine mode of the multiplication.  Update recursive calls.  Use
1219         mode instead of word_mode for determining operation costs.
1220         (choose_mult_variant): Update calls to synth_mult with "mode".
1221
1222 2004-06-11  Richard Henderson  <rth@redhat.com>
1223
1224         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1225         and makes_aliased_stores.
1226
1227 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1228
1229         * doc/install.text (--enable-shared): Fix typo.
1230
1231 2004-06-11  Richard Henderson  <rth@redhat.com>
1232
1233         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1234         argument.  Use internal post for call to gimplify_expr.  Tidy
1235         rounded type size computation.
1236         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1237         get_initialized_tmp_var.
1238
1239 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1240
1241         * doc/install.texi (--enable-shared): Update libobjc's shared library
1242         status.  Remove reference to libf2c.
1243
1244 2004-06-11  Jason Merrill  <jason@redhat.com>
1245
1246         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1247         * config/i386/i386.c (ix86_va_arg): Remove.
1248         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1249         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1250         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1251         * config/alpha/alpha.c (alpha_va_arg): Remove.
1252         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1253         * config/sparc/sparc.c (sparc_va_arg): Remove.
1254
1255         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1256         assignment might throw.
1257         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1258         expressions.
1259
1260 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
1261
1262         PR 15886:
1263         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1264
1265 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1266
1267         * doc/install.texi (Prerequisites): Update documentation of
1268         required versions of autoconf and automake.  Remove mention of
1269         libf2c.
1270
1271 2004-06-11  Jason Merrill  <jason@redhat.com>
1272
1273         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1274         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1275
1276 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
1277
1278         * typeclass.h: Add GPL plus exception license.  Add include
1279         guard.
1280
1281 2004-06-10  Jason Merrill  <jason@redhat.com>
1282
1283         * gimplify.c (gimplify_modify_expr): Don't force a temporary
1284         of an aggregate_value_p type.
1285
1286 2004-06-10  Jeff Law  <law@redhat.com>
1287
1288         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1289         code when we are in gimple form.
1290
1291 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
1292
1293         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1294         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1295         (highest_ssa_version): Remove.
1296         * tree-outof-ssa.c (new_temp_expr_table): Replace
1297         highest_ssa_version with num_ssa_names.
1298         (dump_replaceable_exprs): Likewise.
1299         (rewrite_vars_out_of_ssa): Likewise.
1300         * tree-ssa-ccp.c (initialize): Likewise
1301         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1302         * tree-ssa-dce.c (tree_dce_init): Likewise.
1303         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1304         * tree-ssa-live.c (create_ssa_var_map): Likewise.
1305         (dump_var_map): Likewise.
1306         * tree-ssa.c (verify_ssa): Likewise.
1307         (kill_redundant_phi_nodes): Likewise.
1308         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
1309         * tree-ssanames.c: Include tree-flow.h
1310         (ssa_names): New varray.
1311         (init_ssa_names): Initialize ssa_names.
1312         Reserve the first slot of the ssa_names table.
1313         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1314         Assign version numbers using num_ssa_names.
1315
1316 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1317
1318         * doc/sourcebuild.texi (Front End): Add details of more
1319         installation documentation required.
1320
1321 2004-06-10  Brian Booth  <bbooth@redhat.com>
1322
1323         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1324         of V_MAY_DEF and V_MUST_DEF.
1325         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1326         num_vdefs to num_v_may_defs.
1327         (compute_immediate_uses_for_stmt): Rename occurences of vdef
1328         to v_may_def.
1329         (redirect_immediate_uses): Ditto.
1330         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1331         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1332         Also add code to sum up the number of v_must_defs.
1333         (vdefs_disappeared_p): Replace with...
1334         (v_may_defs_disappeared_p): This.
1335         (v_must_defs_disappeared_p): New function.
1336         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1337         Also add code to mark new variables found in V_MUST_DEFs for
1338         renameing.
1339         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1340         vdef_ops to v_may_def_ops.
1341         (get_vdef_ops): Replace with...
1342         (get_v_may_def_ops): This.
1343         * tree-flow-inline.h (get_vdef_ops): Replace with...
1344         (get_v_may_def_ops): This.
1345         (get_v_must_def_ops): New function.
1346         (get_vdef_result_ptr): Replace with...
1347         (get_v_may_def_result_ptr): This.
1348         (get_vdef_op_ptr): Ditto with...
1349         (get_v_may_def_op_ptr); This.
1350         (get_v_must_def_op_ptr): New function.
1351         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1352         to v_may_def. Also add code to mark statements with
1353         V_MUST_DEFs as definition sites.
1354         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1355         add code to register new V_MUST_DEFs made by the statement.
1356         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1357         (check_replaceable): Rename occurences of vdef to v_may_def. Also
1358         add check for V_MUST_DEFs.
1359         (find_replaceable_in_bb): Ditto.
1360         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1361         to v_may_def. Also add code to dump V_MUST_DEFs.
1362         * tree-sra.c (mark_all_vdefs): Replace with...
1363         (mark_all_v_may_defs): This.
1364         (mark_all_v_must_defs): New function.
1365         (create_scalar_copies): Replace call to mark_all_vdefs with
1366         calls to mark_all_v_may_defs and mark_all_v_must_defs.
1367         (scalarize_structures): Rename occurences of vdef to v_may_def.
1368         Also add a check for V_MUST_DEFs.
1369         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1370         * tree-ssa-alias.c (global_var): Update comment.
1371         (compute_may_aliases): Ditto.
1372         (compute_points_to_and_addr_escape): Rename occurences of vdef
1373         to v_may_def. Also add code to mark variables in V_MUST_DEF
1374         operands as being written to.
1375         (group_aliases): Update comment.
1376         (maybe_create_global_var): Ditto.
1377         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1378         Also add a check for V_MUST_DEFs on GIMPLE registers.
1379         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1380         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1381         to v_may_def. Also add code to mark all V_MUST_DEF operands
1382         VARYING.
1383         (initialize): Ditto.
1384         (set_rhs): Rename occurences of vdef to v_may_def. Also add
1385         code to update SSA_NAMEs in V_MUST_DEFs.
1386         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1387         to v_may_def.
1388         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1389         occurences of vdef to v_may_def. Also add code to mark statements
1390         with V_MUST_DEFs as necessary.
1391         (propagate_necessity): Rename occurences of vdef to v_may_def.
1392         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1393         occurences of vdef to v_may_def. Also add code to mark operands
1394         in V_MUST_DEFs for renaming.
1395         (eliminate_redundant_computations): Rename occurences of vdef
1396         to v_may_def.
1397         (record_equivalences_from_stmt): Rename occurences of vdef
1398         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1399         (optimize_stmt): Remove unnesessary variable vdefs. Update
1400         comment.
1401         (register_definitions_for_stmt): Rename occurences of vdef
1402         to v_may_def. Also add code to register definitions made with
1403         V_MUST_DEFs.
1404         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1405         (fix_stmt_v_may_defs): This.
1406         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1407         (dse_optimize_stmt): Ditto.
1408         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1409         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1410         used in virtual operators.
1411         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1412         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1413         renaming.
1414         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1415         definitions.
1416         (build_vdefs): Renamed to...
1417         (build_v_may_defs): This.
1418         (build_v_must_defs): New variable.
1419         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1420         v_may_def_ops.
1421         (append_vdef): Replace with...
1422         (append_v_may_def): This.
1423         (append_v_must_def): New function.
1424         (NUM_FREE): Increment for V_MUST_DEF
1425         (optype_freelist): Increment its size for V_MUST_DEF
1426         (allocate_vdef_optype): Replace with...
1427         (allocate_v_may_def_optype): This.
1428         (allocate_v_must_def_optype): New function.
1429         (free_vdefs): Replace with...
1430         (free_v_may_defs): This.
1431         (free_v_must_defs): New function.
1432         (remove_vdefs): Replace with...
1433         (remove_v_may_defs): This.
1434         (remove_v_must_defs): New function.
1435         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1436         add code to initialize build_v_must_defs.
1437         (finalize_ssa_vdefs): Replace with...
1438         (finalize_ssa_v_may_defs): This.
1439         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1440         (finalize_ssa_v_must_defs): New function.
1441         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1442         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1443         (verify_start_operands): Rename occurences of vdef to v_may_def.
1444         Also add check for build_v_must_defs.
1445         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1446         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1447         killing definitions.
1448         (get_expr_operands): Update comment and use opf_kill_def for
1449         killing definitions.
1450         (add_stmt_operand): Replace code that appends VDEFs with code
1451         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1452         otherwise.
1453         (add_call_clobber_ops): Update comments.
1454         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1455         (v_may_def_optype_d): This.
1456         (v_must_def_optype_d): New structure.
1457         (VDEF_OPS): Replace with...
1458         (V_MAY_DEF_OPS): This.
1459         (STMT_VDEF_OPS): Same with...
1460         (STMT_V_MAY_DEF_OPS): This.
1461         (NUM_VDEFS): And...
1462         (NUM_V_MAY_DEFS): This.
1463         (VDEF_RESULT_PTR): As well as...
1464         (V_MAY_DEF_RESULT_PTR): This.
1465         (VDEF_RESULT): Same goes for...
1466         (V_MAY_DEF_RESULT): This.
1467         (VDEF_OP_PTR): And...
1468         (V_MAY_DEF_OP_PTR): This.
1469         (VDEF_OP): And...
1470         (V_MAY_DEF_OP): This.
1471         (V_MUST_DEF_OPS): New macro.
1472         (STMT_V_MUST_DEF_OPS): Ditto.
1473         (NUM_V_MUST_DEFS): Ditto.
1474         (V_MUST_DEF_OP_PTR): Ditto.
1475         (V_MUST_DEF_OP): Ditto.
1476         (remove_vdefs): Replace signature with...
1477         (remove_v_may_defs): This.
1478         (remove_v_must_defs): New function signature.
1479         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1480         with calls to remove_v_may_defs and remove_v_must_defs.
1481         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1482         Also add code that marks left occurences of operands in V_MUST_DEFs.
1483         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1484         to v_may_def. Also add check for V_MUST_DEFs.
1485         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1486
1487 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1488
1489         PR target/15653
1490         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1491         insn.
1492
1493 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1494
1495         PR web/15263
1496         * doc/install.texi: Remove superfluous linebreak.
1497
1498 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1499
1500         * builtins.c (expand_builtin): Fall back to library function call for
1501         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1502         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1503         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1504         IMAGPART_EXPR respectively.
1505
1506 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1507
1508         * sh.c (dump_table): New argument start.  Changed caller.
1509         (fixup_mova): New function.
1510         (find_barrier): Use it.
1511         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1512         If the label a mova refers to is above the mova itself, change
1513         the mova into a load.
1514         * sh.md (*casesi_worker): Rename to:
1515         (casesi_worker_1).
1516         (casesi_worker_2): New insn.
1517
1518 2004-06-10  Jason Merrill  <jason@redhat.com>
1519
1520         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1521         hook signature.
1522         * tree-gimple.h: Adjust.
1523         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1524         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1525         Use fold_convert.
1526         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1527         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1528         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1529         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1530         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1531         Gimplify valist rather than calling stabilize_va_list.
1532
1533 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1534
1535         * Makefile.in (df.o): Remove fibheap dependency.
1536         * df.h: Do not include sbitmap.h.
1537         (struct ref): New field "data".
1538         (DF_REF_DATA): New accessor macro.
1539         (struct df): Field "dom" removed.
1540         (df_analyze_subcfg): New function.
1541         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1542         (transfer_function): ... new type.
1543         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1544         (iterative_dataflow): ... new function.
1545         (enum set_representation, struct dataflow): New.
1546         * df.c: Do not include fibheap.h.
1547
1548         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1549         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1550         prune_to_subcfg, df_bb_modify): New functions.
1551         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1552         df_refs_update, df_reg_table_realloc, df_ref_create,
1553         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1554         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1555         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1556
1557         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1558         (df_rd_transfer_function, df_ru_transfer_function,
1559         df_lr_transfer_function): Type of bitmaps changed to void *.
1560         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1561         (hybrid_search): ... new function.
1562         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1563         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1564         a worklist.  Do not process basic blocks unnecessarily.
1565
1566 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1567
1568         * fold-const.c (fold_abs_const): Make extern.
1569         * tree.h (fold_abs_const): Prototype here.
1570         * builtins.c (fold_builtin_fabs): New function to transform
1571         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1572         (fold_builtin_abs): New function to transform abs, labs, llabs
1573         and imaxabs builtins into ABS_EXPR tree nodes.
1574         (expand_builtin): Fall back to a function call for abs, labs,
1575         llabs and imaxabs builtins that survive constant folding.
1576         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1577         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1578
1579 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1580
1581         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1582         leaf function without unwind info at RP 0.
1583
1584 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1585
1586         PR c++/14791
1587         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1588         (fileptr_type_node): Define.
1589         * tree.c (build_common_tree_nodes_2): Initialize
1590         fileptr_type_node to ptr_type_node.
1591         * c-common.c (c_common_nodes_and_builtins): For C++, make
1592         fileptr_type_node a distinct type copy.
1593         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1594         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1595         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1596         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1597         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1598         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1599         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1600         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1601         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1602         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1603         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1604         the above *FILEPTR* types instead of *PTR*.
1605
1606 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1607
1608         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1609         match.
1610
1611 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1612
1613         * fold-const.c (fold_not_const): New function.
1614         (fold) <ABS_EXPR>: Don't bother testing wins.
1615         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1616         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1617
1618 2004-06-09  Richard Henderson  <rth@redhat.com>
1619
1620         PR middle-end/15228
1621         * function.c (assign_parms): Always set_mem_align with the computed
1622         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1623
1624 2004-06-09  Richard Henderson  <rth@redhat.com>
1625
1626         PR opt/15108
1627         * tree-tailcall.c (find_tail_calls): Don't check early for
1628         tail_recursion failure.
1629
1630 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1631
1632         Move SSA_NAME annotations into tree_ssa_name.
1633
1634         * tree-dfa.c (create_ssa_name_ann): Remove.
1635         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1636         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1637         (struct ssa_name_ann_d): Remove.
1638         (union tree_ann_d): Update.
1639         (ssa_name_ann_t): Remove.
1640         * tree-ssa-alias.c: (get_ptr_info): New local function.
1641         Replace references to ssa_name_ann_t with struct ptr_info_def.
1642         * tree-ssa-operands.c (get_expr_operands): Likewise.
1643         * tree.h (SSA_NAME_PTR_INFO): Define.
1644         (struct ptr_info_def): Declare.
1645         (struct tree_ssa_name): Add field 'ptr_info'.
1646
1647 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1648
1649         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1650         misplaced ')'.
1651
1652 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1653
1654         * config/i386/k6.md: Rewrite using the DFA model.
1655         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1656         cost of load-operation insns for the K6.
1657         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1658         (ia32_multipass_dfa_lookahead): Likewise.
1659
1660 2004-06-09  Richard Henderson  <rth@redhat.com>
1661
1662         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1663         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1664
1665 2004-06-09  Richard Henderson  <rth@redhat.com>
1666
1667         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1668
1669 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1670
1671         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1672         (CPP_ID_DATA_H): New.
1673         (gtype-desc.o): Update dependencies.
1674         (GTFILES): Use CPP_ID_DATA_H.
1675
1676 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1677
1678         Revert:
1679         PR c++/15815
1680         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1681         * doc/extend.texi: Deprecate #pragma interface and #pragma
1682         implementation.
1683
1684 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1685
1686         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1687
1688 2004-06-09  Richard Henderson  <rth@redhat.com>
1689
1690         * basic-block.h (struct edge_def): Add goto_locus.
1691         * tree-cfg.c (make_goto_expr_edges): Set it.
1692         (disband_implicit_edges): Use it.
1693         * tree-pretty-print.c (dump_implicit_edges): Print it.
1694
1695 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1696
1697         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1698
1699 2004-06-08  Jason Merrill  <jason@redhat.com>
1700
1701         Gimplify VA_ARG_EXPR into simpler forms.
1702         * target.h: Add gimplify_va_arg_expr hook.
1703         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1704         * fold-const.c (build_fold_addr_expr)
1705         (build_fold_addr_expr_with_type): Move from gimplify.c.
1706         * tree.h: Declare them.
1707         * gimplify.c (gimplify_and_add): New fn.
1708         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1709         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1710         (gimplify_expr): Use build_fold_*.
1711         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1712         don't know how to gimplify it.
1713         * builtins.c (std_gimplify_va_arg_expr): New fn.
1714         (dummy_object): New static fn.
1715         (gimplify_va_arg_expr): New fn.
1716         (stabilize_va_list): Use build_fold_*.
1717         * tree-gimple.h: Declare new fns.
1718         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1719         (ix86_gimplify_va_arg): New fn.
1720         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1721         (ia64_gimplify_va_arg): New fn.
1722         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1723         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1724         * alias.c (get_varargs_alias_set): Just return 0 for now.
1725
1726         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1727
1728 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1729
1730         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1731         of convert.
1732         * tree-inline.c (setup_one_parameter): Likewise.
1733         * tree-sra.c (csc_build_component_ref): Likewise.
1734         * tree-ssa-ccp.c (ccp_fold): Likewise.
1735         * tree-ssa-copy.c (cprop_operand): Likewise.
1736         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1737         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1738
1739 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1740
1741         PR rtl-optimization/15521:
1742         * sched-int.h (in_post_call_group_p): Change type to enum.
1743         * sched-deps.c (sched_analyze_insn):
1744         (sched_analyze): When in_post_call_group_p is post_call_initial,
1745         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1746         and also reset in_post_call_group_p to post_call.
1747         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1748         initialize in_post_call_group_p as post_call_initial.
1749         (init_deps): initialize in_post_call_group_p to not_post_call.
1750
1751 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1752
1753         PR ada/6637
1754         * doc/install.texi: List ada, libada as options to --enable-shared
1755
1756 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1757
1758         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1759         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1760         config.in entries.
1761         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1762         if hard links are not available.
1763         * configure: Regenerate.
1764         * config.in: Regenerate.
1765
1766 2004-06-08  Per Bothner  <per@bothner.com>
1767
1768         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1769
1770 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1771
1772         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1773         Correct formatting.
1774
1775 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1776
1777         PR target/15790
1778         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1779
1780 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1781
1782         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1783         POINTER_TYPE and INTEGER_TYPE.
1784
1785 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
1786
1787         * modulo-sched.c: Compile only when INSN_SCHEDULING is
1788         defined.
1789
1790 2004-06-08  Jeff Law  <law@redhat.com>
1791
1792         * doc/contrib.texi: Add entries for Stefan Olsson and
1793         Ola Ronnerup.
1794
1795 2004-06-08  DJ Delorie  <dj@redhat.com>
1796
1797         * toplev.c (floor_log2_wide): Replace loop with faster bit
1798         operations.
1799         (exact_log2_wide): Define in terms of the above.
1800         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1801         available.
1802
1803 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1804
1805         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1806         Make sure that we are in INDIRECT mode when getting the
1807         stub name.
1808
1809 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1810
1811         * h8300.md (extendqisi2_h8300): Add constraints.
1812         (ldm_h8300s_4_normal): Fix typo.
1813
1814 2004-06-08  Richard Henderson  <rth@redhat.com>
1815
1816         * gimple-low.c (struct lower_data): Replace the_return_label and
1817         one_return_stmt with return_statements.
1818         (lower_function_body): Process the entire list of return_statements.
1819         (lower_return_expr): Check source value before unifying return_exprs.
1820         * gimplify.c (gimplify_return_expr): Force the use of a temporary
1821         for !aggregate_value_p.
1822         * tree-gimple.c: Update RETURN_EXPR grammer.
1823
1824 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1825
1826         PR target/15598
1827         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1828
1829 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1830
1831         PR rtl-optimization/15717
1832         * config/i386/i386.c (legitimate_constant_p): Do not allow
1833         x - symbol_ref.
1834
1835 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
1836
1837         * gimplify.c (copy_if_shared_r): Revert:
1838         2004-05-21  Richard Henderson  <rth@redhat.com>
1839         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1840
1841 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1842
1843         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1844         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
1845         (init_expmed): Initialize these cost arrays as appropriate.
1846         (store_bit_field, extract_bit_field): Correct whitespace.
1847         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1848         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1849         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1850         word_mode or compute_mode as appropriate.
1851
1852 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1853
1854         PR target/15783
1855         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1856         parameter.  Enumerate the registers inside the PARALLEL.
1857         (function_arg): Adjust call to function_arg_union_value.
1858         (function_value): Likewise.
1859
1860         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1861
1862 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1863
1864         * real.c (real_copysign): New function to implement libm's copysign.
1865         * real.h (real_copysign): Prototype here.
1866         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1867         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1868         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1869         fold_builtin_isdigit): Add function prototypes.
1870         (fold_builtin_copysign): New function to fold copysign, copysignf
1871         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1872         constant arguments at compile-time using real_copysign.  Fold
1873         copysign(X,Y) as fabs(X) if Y is always non-negative.
1874         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1875         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1876
1877 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
1878
1879         * tree.c (iterative_hash_expr): Use real_hash.
1880
1881 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1882
1883         PR c/14765
1884         * c-parse.in (compstmt_primary_start): Set last_expr_type to
1885         NULL_TREE.
1886
1887 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1888
1889         PR c++/15815
1890         * doc/extend.texi: Deprecate #pragma interface and #pragma
1891         implementation.
1892
1893 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
1894
1895         PR middle-end/15666
1896         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1897         builtin decl as well.
1898
1899 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1900
1901         PR c/14649
1902         * c-typeck.c (require_constant_value, require_constant_elements):
1903         Move declarations to the top of the file.
1904         (build_function_call): If we require a constant value, fold with
1905         fold_initializer.  If the result is a constant, and the function
1906         wasn't called using __builtin_foo, issue a pedantic warning.
1907         (build_unary_op): If we require a constant value, fold tree with
1908         fold_initializer.
1909         (build_binary_op): Use require_constant_value to determine whether
1910         to call fold or fold_initializer.
1911
1912 2004-06-07  Richard Henderson  <rth@redhat.com>
1913
1914         * gimple-low.c (struct lower_data): Add the_return_label and
1915         one_return_stmt.
1916         (lower_function_body): Initialize and use them.
1917         (lower_return_expr): New.
1918         (lower_stmt): Call it.
1919         * gimplify.c (gimplify_return_expr): Force the argument to be either
1920         null or a result_decl.
1921         * tree-gimple.c: Update gimple grammer to match.
1922         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1923         coalescing of result_decls.
1924
1925 2004-06-07  Richard Henderson  <rth@redhat.com>
1926
1927         PR rtl-opt/15193
1928         * expmed.c (extract_bit_field): Fix vector_extract return.
1929
1930         * config/i386/i386.md (negv4sf2): New pattern.
1931
1932 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1933
1934         PR c++/15337
1935         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1936         message.
1937
1938 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1939
1940         * config.in: Regenerate.
1941
1942 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1943
1944         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1945         SWITCH_LABELS are always sorted.
1946
1947 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1948
1949         * hooks.c (hook_int_void_1): New generic hook.
1950         * hooks.h (hook_int_void_1): Add prototype.
1951         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1952         Define to hook_int_void_1.
1953         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1954         with dummies for the new one.
1955
1956 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1957
1958         * tree.h (lvalue_or_else): Delete function prototype.
1959         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1960
1961 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1962
1963         PR target/14542
1964         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1965         a live change of a register after peephole replacement.
1966
1967 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1968
1969         PR c/13519
1970         * c-typeck.c (composite_type, common_pointer_type): New functions.
1971         (common_type): Split parts into composite_type and
1972         common_pointer_type.  Ensure that arithmetic operations return
1973         unqualified types without attributes.  Don't make composite type
1974         of signed enum and compatible integer be unsigned.
1975         (build_conditional_expr, build_binary_op): Use
1976         common_pointer_type.
1977         * c-decl.c (merge_decls): Use composite_type.
1978         * c-tree.h (composite_type): Declare.
1979
1980 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1981
1982         PR target/14457
1983         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1984         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1985         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1986         (inhibit_libc): Must define.
1987         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1988         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1989         ("xorhi3"): Likewise.
1990
1991 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1992
1993         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1994         always_inline pass.
1995
1996 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1997
1998         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1999         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2000
2001 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
2002
2003         * regclass.c (init_reg_sets): Check for missing registers in target
2004         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2005
2006 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
2007
2008         * Makefile.in (MKDEPS_H): New shorthand.
2009         (c-opts.o): Update dependencies.
2010         * c-opts.c: Include mkdeps.h.
2011         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2012         not cpp_add_dependency_target.
2013
2014 2004-06-05  Steven Bosscher  <stevenb@suse.de>
2015
2016         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2017         * config/v850/v850.md: Convert to DFA scheduler description.
2018
2019 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2020
2021         PR fortran/15478
2022         * doc/install.texi: Document GMP as prerequisite. Document
2023         --with-gmp and --with-gmp-dir configure options.
2024         * fortran/gfortran.texi: Remove section "Compiling and testing",
2025         remove TOC reference to it.
2026
2027 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
2028
2029         * combine.c(simplify_shift_const): Check shift amount is a
2030         CONST_INT.
2031
2032 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
2033
2034         * toplev.c (init_asm_output): Add explicit 'b' to mode when
2035         opening asm_out_file.
2036         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2037         reading asm_out_file. Replace fflush after reading asm_out_file
2038         with fseek.
2039         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
2040         default and add to HOST_HOOKS_INITIALIZER.
2041         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2042         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
2043         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
2044         to set mmi.offset padding.
2045          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2046         $(srcdir)/config/i386/winnt.c.
2047         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2048         (i[34567]86-*-uwin*): Likewise.
2049         *i[34567]86-*-interix3*): Likewise.
2050         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2051         * config/i386/host-mingw32.c: New file.
2052         * config/i386/x-mingw32: Add rule for host-mingw32.o.
2053         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2054         (extern_head): Likewise.
2055         (struct export_list) Likewise.
2056         (export_head): Likewise.
2057         (i386_pe_record_external_function): Use ggc_alloc.
2058         (i386_pe_record_exported_symbol): Likewise.
2059         Include "gt-winnt.h" at end.
2060         * doc/hostconfig.texi: Document
2061         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2062
2063 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
2064
2065         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2066         Rename 68000 and 68k to m68k for consistency in comments.  Remove
2067         trailing whitespace before EOLs and before TABs.
2068         (MAX_CODE_ALIGN): Remove unused macro.
2069         (CALL_USED_REGISTERS): Reformat and add comments.
2070
2071 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
2072
2073         * gcc.c (MFLIB_SPEC): Remove library references, to require users
2074         to enumerate -lmudflap* and dependencies when linking.
2075
2076 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
2077
2078         PR target/15822
2079         * dojump.c (do_jump): Fix uninitialized variable tcode1.
2080
2081 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
2082
2083         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2084         * genconditions.c (write_header): Back out removal of reload.h.
2085
2086 2004-06-04  Jan Hubicka  <jh@suse.cz>
2087
2088         Re-apply hopefully fixed patch:
2089         * i386.md (UNSPECV_EH_RETURN): Kill.
2090         (eh_return): Use jump_insn.
2091         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2092
2093 2004-06-04  Jeff Law  <law@redhat.com>
2094
2095         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2096
2097 2004-06-04  Steven Bosscher  <stevenb@suse.de>
2098
2099         * except.c (for_each_eh_region): New function.
2100         * except.h (for_each_eh_region): Add a prototype for it.
2101         * tree-cfg.c (update_eh_labels): New function, callback for
2102         for_each_eh_region.
2103         (label_for_bb): Make global static, unfortunately.
2104         (cleanup_dead_labels): Also update label references for
2105         exception regions.
2106
2107 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
2108
2109         * config/mips/mips.c (struct irix_section_align_entry): Fix
2110         GTY marker.
2111
2112 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
2113
2114         * toplev.c (check_global_declarations): Don't ask for
2115         DECL_ASSEMBLER_NAME unless the function really is declared
2116         static and not defined.
2117
2118 2004-06-03  Matt Austern  <austern@apple.com>
2119
2120         PR c++/15428
2121         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2122         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2123         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2124         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2125         documentation to reflect the new macro name and to clarify its
2126         meaning.
2127
2128 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2129
2130         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2131
2132 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
2133
2134         * config/darwin.c (machopic_indirect_data_reference): Copy
2135         the SYMBOL_REF_DECL from the original RTX for the new
2136         non-lazy pointer RTX.
2137
2138 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
2139
2140         * tree.h: Remove include of version.h
2141         * c-cppbuiltin.c: Include version.h
2142         * diagnostic.c: Include version.h
2143         * dwarf2out.c: Include version.h
2144         * toplev.c: Include version.h
2145         * vmsdbgout.c: Include version.h
2146         * Makefile.in: Remove dependency on version.h from TREE_H, and
2147         add dependencies to required .o targets
2148
2149 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
2150
2151         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2152         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2153         (TARGET_H): Add insn-modes.h.
2154         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2155         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2156         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2157         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2158         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2159         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2160         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2161         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2162         CFGLAYOUT_H.
2163         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2164         Replace ra.h with RA_H.
2165         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2166         insn-recog.o): Replace resource.h with RESOURCE_H.
2167         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2168         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
2169         with SCHED_INT_H.
2170         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2171         ra-rewrite.o): Replace df.h with DF_H.
2172         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2173         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2174         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2175         (insn-conditions.o): Remove unused reload.h.
2176         * cfglayout.h: Add include guard.  Include basic-block.h.
2177         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
2178         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2179         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
2180         basic-block.h.
2181         * genconditions.c:  Remove reload.h.
2182         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
2183         hard-reg-set.h, insn-modes.h.
2184         * resource.h: Add include guard.  Include hard-reg-set.h.
2185         * sched-int.h:  Add include guard.  Include insn-attr.h,
2186         basic-block.h, rtl.h.
2187         * target.h: Add include guard.  Include insn-modes.h.
2188         * tree-ssa-live.h: Include partition.h.
2189
2190 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
2191                 Kenneth Zadeck <zadeck@naturalbridge.com>
2192
2193         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2194         (add_var_to_ssa_edges_worklist): Add value argument.
2195         Update callers.
2196         Use new worklist.
2197         (process_ssa_edge_worklist): New function.
2198         (tree_ssa_ccp): Move worklist processing core to
2199         process_ssa_edge_worklist, and just call that for the two worklists.
2200
2201 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2202
2203         * basic-block.c (tail_recursion_label_list): Don't declare.
2204         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
2205         accordingly.
2206         * cfgbuild.c (find_label_refs): Remove.
2207         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2208         * cfgcleanup.c (tail_recursion_label_p): Remove.
2209         (merge_blocks_move): Do not check for tail recursion.
2210         (try_optimize_cfg): Likewise.
2211         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2212         * cfgrtl.c (tail_recursion_label_list): Remove.
2213         * except.c (remove_unreachable_regions): Don't handle
2214         CALL_PLACEHOLDER insns.
2215         (convert_from_eh_region_ranges_1, can_throw_internal,
2216         can_throw_external): Likewise.
2217         * function.c (free_after_compilation): Don't clear
2218         x_tail_recursion_label.
2219         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2220         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2221         (reorder_blocks_1): Likewise.
2222         * function.h (struct function): Remove x_tail_recursion_label
2223         member.  Don't define tail_recursion_label.
2224         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2225         * print-rtl.c (print_rtx): Likewise.
2226         * rtl.def (CALL_PLACEHOLDER): Remove.
2227         * rtl.h (sibcall_use_t): Remove enum.
2228         (optimize_sibling_and_tail_recursive_calls,
2229         replace_call_placeholder): Remove function prototypes.
2230         * stmt.c (tail_recursion_args): Remove.
2231         (optimize_tail_recursion): Remove.
2232         (expand_return): Don't check for possible tail recursion.
2233         * tree.h (optimize_tail_recursion): Remove prototype.
2234
2235 2004-06-02  Jan Hubicka  <jh@suse.cz>
2236
2237         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
2238         return_stmt.
2239
2240 2004-06-02  Jason Merrill  <jason@redhat.com>
2241
2242         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2243         Do include c-parse.in.
2244
2245 2004-06-02  Eric Christopher  <echristo@redhat.com>
2246
2247         * c-typeck.c (common_type): Don't lose type qualifiers
2248         when creating new variants.
2249
2250 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
2251
2252         PR tree-optimization/14042
2253         PR tree-optimization/14729
2254         PR tree-optimization/14736
2255         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2256         Check the type which the pointer points to
2257         instead of the pointer types.
2258
2259 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2260
2261         PR tree-optimization/15738.
2262         * builtins.c (fold_builtin_strchr): Transform
2263         strrchr (s, '\0') to strchr (s, '\0').
2264
2265 2004-06-02  Steven Bosscher  <stevenb@suse.de>
2266
2267         * i386.c (ix86_adjust_cost): Don't increase the cost for
2268         load+operation for PROCESSOR_PENTIUMPRO, it is already
2269         modelled in the DFA description
2270
2271 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
2272
2273         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2274         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2275         (ALIAS_H, EMIT_RTL_H): New.
2276         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2277         (cfgcleanup.o): Add EMIT_RTL_H.
2278         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2279         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2280         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2281         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2282         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
2283         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2284         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2285         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2286         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2287         set_mem_size): Move to emit-rtl.h.
2288         * emit-rtl.h: New.
2289         * alias.h: New.
2290
2291 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
2292
2293         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2294         Call fixup_memory_subreg only if the MEM is equal to 'var'.
2295         Adjust recursive calls to self.
2296         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2297
2298 2004-06-01  Richard Henderson  <rth@redhat.com>
2299             Andrew Pinski  <pinskia@physics.uc.edu>
2300
2301         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2302         (primary): Handle offsetof.  Add error productions for faux functions.
2303         Move component_ref objc checking to build_component_ref.
2304         (reswords): Add offsetof.
2305         (rid_to_yy): Add offsetof.
2306         * c-tree.h (build_offsetof): Declare.
2307         * c-common.h (objc_is_public): Declare.
2308         * c-typeck.c (build_component_ref): Check objc_is_public.
2309         (build_offsetof): New.
2310         * stub-objc.c (objc_is_public): New.
2311         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2312         from is_public.
2313         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2314         * doc/extend.texi (Offsetof): Move from C++ section to C section
2315         and rewrite for __builtin_offsetof.
2316
2317 2004-06-01  Peter Barada  <peter@the-baradas.com>
2318             Peter Jakubek  <peter@laseranimation.com>
2319
2320         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
2321         a scratch to perform an add to memory.
2322
2323 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2324
2325         PR target/14018
2326         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2327         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2328         m68k_align_funcs): Remove.
2329         (override_options): Remove code to handle -malign-* options.
2330         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2331         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2332         (m68k_align_loops_string, m68k_align_jumps_string,
2333         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2334         m68k_align_funcs): Remove definitions.
2335
2336 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
2337
2338         PR target/15626
2339         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2340         by the Sun linker in conjunction with the Sun assembler.
2341         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2342
2343 2004-06-01  Jeff Law  <law@redhat.com>
2344
2345         * stmt.c (expand_decl): Be more selective about calling
2346         mark_reg_pointer.
2347
2348 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
2349
2350         PR objc/7993
2351         * objc-act.c (is_private): Do not emit the 'instance variable %s
2352         is declared private' error.
2353         (is_public): Emit the error after calling is_private.
2354         (lookup_objc_ivar): If the instance variable is private, return 0
2355         - the instance variable is invisible here.
2356
2357 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2358
2359         * doc/invoke.texi (-static-libgcc): Explicitly mention
2360         non-GNU linkers.
2361
2362 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2363
2364         PR target/12968
2365         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2366
2367 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2368
2369         PR c/15749
2370         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2371         misuses of structures with flexible array members if
2372         in_system_header.
2373
2374 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2375
2376         PR target/15693
2377         * config/sparc/sparc.c (compare_operand): New predicate.
2378         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2379         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
2380         operand is a ZERO_EXTRACT and the second operand is not zero,
2381         force the former to a register.
2382         (cmpdi expander): Likewise.
2383
2384 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
2385
2386         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2387         looks at.
2388         * alias.c (alias_invariant_size): Make alias_invariant_size
2389         static, fix GTY marker.
2390
2391 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2392
2393         PR tree-optimization/15743.
2394         * builtins.c (fold_builtin_1): Fold index() and rindex().
2395
2396 2004-05-31  Roger Sayle  <roger@eyesopen.com>
2397
2398         PR middle-end/15069
2399         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2400         into "X < 0" (where C is the signbit) if X's type is a full mode.
2401
2402 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2403
2404         * pa.md: Disable the peephole2 patterns that generate indexed
2405         floating-point stores when indexing is disabled.
2406
2407 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2408
2409         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2410         (pp_c_right_bracket): Likewise.
2411         (pp_c_star): Likewise.
2412         (pp_c_ampersand): Define.
2413         * c-pretty-print.h (pp_c_left_bracket): Declare.
2414         (pp_c_right_bracket): Likewise.
2415         (pp_c_star): Likewise.
2416         (pp_c_ampersand): Likewise.
2417
2418 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2419
2420         * config/sol2.h (__enable_execute_stack): ANSIfy function
2421         definition.
2422
2423 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2424
2425         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2426         HAVE_DOS_BASED_FILESYSTEM.
2427
2428 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2429
2430         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2431         Only look at case labels if the immediate dominator is also
2432         the only predecessor.  Don't look for more case labels if the
2433         first seen is a case range.
2434
2435 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2436
2437         * builtins.c: Add a prototype for fold_builtin_strchr().
2438
2439 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2440
2441         Revert this patch:
2442         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2443
2444         * combine.c (gen_binary): Remove.
2445         (known_cond, simplify_shift_const
2446         find_split_point, combine_simplify_rtx,
2447         simplify_if_then_else, simplify_set,
2448         simplify_logical, expand_field_assignment,
2449         extract_left_shift, force_to_mode,
2450         if_then_else_cond, apply_distributive_law,
2451         simplify_and_const_int, simplify_shift_const,
2452         gen_lowpart_for_combine, simplify_comparison,
2453         reversed_comparison): Replace with
2454         simplify_gen_binary, simplify_gen_relational or
2455         distribute_and_simplify_rtx.
2456         (distribute_and_simplify_rtx): New function.
2457
2458 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2459
2460         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2461         when generating PIC code.
2462
2463 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2464
2465         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2466         (c_expand_body): here.
2467         (c_expand_decl): Move to ...
2468         * c-common.c (c_expand_decl): Here and remove check for nested
2469         functions.
2470         * c-common.h (c_expand_decl): Add prototype.
2471         * c-tree.h (c_expand_decl): Remove.
2472
2473 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2474
2475         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2476         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2477         fold_mathfn_compare, fold_inf_compare, fold,
2478         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2479         Use constant_boolean_node where appropriate.  Don't bother using
2480         fold_convert on the second argument to omit_one_operand.
2481
2482 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2483
2484         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2485         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2486         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2487         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2488         Add missing (but documented) tree nodes to the index.
2489
2490 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2491
2492         PR tree-optimization/14819
2493         * builtins.c (fold_builtin_strchr): New.
2494         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2495         with fold_builtin_strchr().
2496
2497 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2498
2499         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2500         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2501         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2502         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2503         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2504         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2505         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2506         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2507         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2508         formatting.
2509
2510 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2511
2512         * gimplify.c (sort_case_labels): New.  Split out from...
2513         (gimplify_switch_expr): ...here.  Use it.
2514         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2515         the SWITCH_EXPR created here before leaving the function.
2516         * tree.c (sort_case_labels): Add prototype.
2517
2518 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2519
2520         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2521         of BOOLEAN_TYPE.
2522
2523 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2524
2525         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2526         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2527         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2528         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2529         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2530         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2531         comment typos.  Follow spelling conventions.
2532
2533 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2534
2535         * gengtype-yacc.y: Add NESTED_PTR token.
2536         (option): Record `nested_ptr' option.
2537         * gengtype-lex.l: Handle `nested_ptr' keyword.
2538         * gengtype.c (walk_type): Process `nested_ptr' option.
2539         * gengtype.h (struct nested_ptr_data): New.
2540         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2541         * stringpool.c (struct string_pool_data): Make 'entries' point to
2542         ht_identifier instead of tree.
2543         (gt_pch_save_stringpool): Don't adjust pointers.
2544         (gt_pch_restore_stringpool): Call ht_load.
2545
2546 2004-05-29  Jason Merrill  <jason@redhat.com>
2547
2548         * gimplify.c (gimplify_expr): Don't build a statement list
2549         if no gimplification was necessary.
2550
2551 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2552
2553         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2554         and %> as well as %'.
2555         * c-format.c: Use %< and %>.
2556         (gcc_diag_char_table, gcc_cdiag_char_table,
2557         gcc_cxxdiag_char_table): Update.
2558
2559 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2560
2561         * c-typeck.c (common_type): Correct comment.
2562
2563 2004-05-29  Peter Barada  <peter@the-baradas.com>
2564
2565         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2566         * config/m68k/m68k.c (const_method): Likewise.
2567         * config/m68k/m68k.c (const_int_cost): Likewise.
2568         * config/m68k/m68k.c (const_int_cost): Likewise.
2569         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2570
2571 2004-05-29  Peter Barada  <peter@the-baradas.com>
2572
2573         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2574         addressing.
2575         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2576         movsi,movhi,movqi insn patterns.
2577
2578 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2579
2580         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2581
2582         PR target/15720
2583         * config/darwin.c (machopic_indirect_call_target): Copy
2584         the SYMBOL_REF_DECL from the original RTX for the new
2585         stub RTX.
2586
2587 2004-05-28  DJ Delorie  <dj@redhat.com>
2588
2589         * stor-layout.c (place_field): Revert erroneous commit.
2590
2591 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2592
2593         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2594         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2595         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2596         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2597         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2598         vec_ste): Remove type checks for integral parameters and literals
2599         from '..._args_eq' macros.
2600
2601 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2602
2603         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2604
2605 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2606
2607         * testsuite/g++.dg/charset/function.cc: New.
2608
2609         * testsuite/gcc.dg/charset/function.c: New.
2610
2611         * c-decl.c (c_make_fname_decl): Free return value from
2612         fname_as_string.
2613
2614         * cp/decl.c (cp_make_fname_decl): Free return value from
2615         fname_as_string.
2616
2617         * c-common.c (fname_as_string): Translate if necessary.
2618
2619 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2620
2621         * stringpool.c: Add comments to PCH saving/restoring routines.
2622
2623 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2624
2625         * c-common.c (c_estimate_num_insns_1): Kill.
2626         (c_estimate_num_insns): Kill.
2627         * c-common.h (c_estimate_num_insns): Kill.
2628
2629         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2630         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2631         Remove comment about not checking for
2632         _POSIX_PRIORITY_SCHEDULING.
2633         * gthr-posix.c: Likewise.
2634
2635 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2636             Roger Sayle  <roger@eyesopen.com>
2637
2638         PR rtl-optimization/15649
2639         Add LTGT_EXPR and improve pretty-printing of unordered
2640         comparisons.
2641         * c-common.c (c_common_truthvalue_conversion):
2642         Handle LTGT_EXPR.
2643         * c-typeck.c (build_binary_op): Likewise.
2644         * dojump.c (do_jump): Likewise.
2645         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2646         * predict.c (tree_predict_by_opcode): Likewise.
2647         * real.c (real_compare): Likewise.
2648         * tree-cfg.c (verify_expr): Likewise.
2649         * tree-inline.c (estimate_num_insns_1): Likewise.
2650         * tree-pretty-print.c (dump_generic_node): Likewise.
2651         Handle ORDERED_EXPR, UNORDERED_EXPR.
2652         (op_symbol): Print unordered comparisons differently
2653         than ordered ones.
2654         * tree.def (LTGT_EXPR): New '<' tree code.
2655         * doc/c-tree.texi (Expressions): Document floating-point
2656         comparison nodes.
2657
2658         Fold comparisons between floating point values.
2659         * fold-const.c (enum comparison_code): New, from
2660         #define'd constants.  Define compcodes for unordered
2661         comparisons and for invalid transformations.
2662         (invert_tree_comparison): Add "honor_nans" parameter.
2663         (fold_truthop): Revamp to work on floating-point types too.
2664         (comparison_to_compcode): Support unordered comparisons.
2665         Use new enum comparison_code.
2666         (compcode_to_comparison): Likewise.
2667         (combine_compcodes): New function.
2668         (invert_truthvalue): Let invert_tree_comparison decide
2669         whether it is valid to fold the comparison.  Fold ORDERED
2670         and UNORDERED even if flag_unsafe_math_optimizations is off,
2671         and the remaining even if flag_unsafe_math_optimizations
2672         is off but we are under -fno-trapping-math.
2673         (fold_relational_const): Integer modes do not honor NaNs.
2674
2675 2004-05-28  Paul Brook  <paul@codesourcery.com>
2676
2677         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2678
2679 2004-05-28  Paul Brook  <paul@codesourcery.com>
2680
2681         * config/arm/arm.c (thumb_force_lr_save): New function.
2682         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2683         thumb_output_function_prologue): Use it.
2684         (thumb_expand_prologue): Set lr_save_eliminated.
2685
2686 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2687
2688         * config/mips/mips.md (extendsidi2): Tie the source and destination
2689         of the register alternative.  Split it into nothing.
2690
2691 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2692
2693         * rtl.h (skip_consecutive_labels): Declare.
2694         * emit-rtl.c (skip_consecutive_labels): New function.
2695         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2696         * jump.c (follow_jumps): Say what null return values mean.
2697
2698 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2699
2700         PR target/13250
2701         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2702
2703 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2704
2705         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2706         libgcc-std.ver.
2707         * config/sh/libgcc-std.ver: New file.
2708
2709 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2710
2711         * except.c: Revert change of 2004-05-26.
2712         * config/i386/i386.md: Revert change of 2004-05-27.
2713
2714 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2715
2716         * configure.ac: Remove --enable-tree-browser option.
2717         Define TREEBROWSER when ac_tree_checking is defined.
2718         * configure: Rebuilt.
2719
2720 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2721
2722         * expr.c (store_constructor): Restore sanity check on
2723         the size of the type before clearing.
2724
2725 2004-05-27  Jan Hubicka  <jh@suse.cz>
2726
2727         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2728
2729 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2730
2731         * combine.c (gen_binary): Remove.
2732         (known_cond, simplify_shift_const
2733         find_split_point, combine_simplify_rtx,
2734         simplify_if_then_else, simplify_set,
2735         simplify_logical, expand_field_assignment,
2736         extract_left_shift, force_to_mode,
2737         if_then_else_cond, apply_distributive_law,
2738         simplify_and_const_int, simplify_shift_const,
2739         gen_lowpart_for_combine, simplify_comparison,
2740         reversed_comparison): Replace with
2741         simplify_gen_binary, simplify_gen_relational or
2742         distribute_and_simplify_rtx.
2743         (distribute_and_simplify_rtx): New function.
2744         * simplify-rtx.c (simplify_binary_operation):
2745         Use nonzero_bits to simplify ANDs where we are
2746         turning off bits already known to be off in OP0.
2747
2748 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2749
2750         PR target/14478
2751         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2752
2753 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2754
2755         PR middle-end/14084
2756         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2757         to size of decl.
2758
2759 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2760
2761         PR/14924
2762         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2763
2764 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2765
2766         * tree.h: Fix comment typo.
2767
2768 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2769
2770         * gimplify.c (compare_case_labels): New function.
2771         (gimplify_switch_expr): Sort case labels, and make sure the
2772         last label in the label vector is the default case.
2773         * tree-cfg.c (group_case_labels): New function.
2774         (build_tree_cfg): Cleanup redundant labels and group case labels
2775         before creating edges.
2776         (cleanup_dead_labels): Handle GOTO_EXPRs.
2777         (find_case_label_for_value): Use a binary search to find the
2778         case label for the given value.
2779         * tree-gimple.c: Mention that labels are sorted, and that the
2780         last label must be the default.
2781
2782 2004-05-27  Jan Hubicka  <jh@suse.cz>
2783
2784         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2785
2786 2004-05-27  Jan Hubicka  <jh@suse.cz>
2787
2788         * i386.md (UNSPECV_EH_RETURN): Kill.
2789         (eh_return): Use jump_insn.
2790         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2791
2792 2004-05-26  Jan Hubicka  <jh@suse.cz>
2793
2794         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
2795         not loop optimizing.
2796
2797 2004-05-26  Jan Hubicka  <jh@suse.cz>
2798
2799         * except.c (can_throw_internal):  Notice RESX instructions.
2800
2801 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
2802
2803         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2804         of the two sizes to assemble_integer.
2805
2806 2004-05-25  Paul Brook  <paul@codesourcery.com>
2807
2808         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2809         pointless #ifdef.
2810
2811 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2812
2813         * Makefile.in (top_builddir): Define to .
2814
2815 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
2816
2817         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2818         top-level detects, except when in-tree ld is being cross-built.
2819         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
2820         then AS only if target is host.
2821         * configure: Rebuilt.
2822
2823 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
2824
2825         * global.c (global_alloc): Call make_accurate_live_analysis.
2826         (record_one_conflict): Remove dead code.
2827         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2828         (bb_info): New structure.
2829         (BB_INFO, BB_INFO_BY_INDEX): New macros.
2830         (allocate_bb_info, free_bb_info, mark_reg_change,
2831         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2832         modify_bb_reg_pav, calculate_reg_pav,
2833         make_accurate_live_analysis): New functions.
2834
2835 2004-05-25  Devang Patel  <dpatel@apple.com>
2836
2837         * alias.c (init_alias_analysis): Use ggc_calloc instead of
2838         xrealloc.
2839         (end_alias_analysis): Use ggc_free instead fo free.
2840
2841 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
2842
2843         PR target/15546
2844         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2845         as needed to be outputted.
2846
2847 2004-05-25  Jan Hubicka  <jh@suse.cz>
2848
2849         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
2850
2851 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
2852         Mostafa Hagog  <mustafa@il.ibm.com>
2853
2854         * Makefile.in (modulo-sched.o, ddg.o): New.
2855         * ddg.h, ddg.c, modulo-sched.c: New files.
2856         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2857         internals to "dupicate_insn".
2858         (duplicate_insn): New function.
2859         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2860         declarations.
2861         * common.opt (fmodulo-sched): New flag.
2862         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2863         Remove static and forward declaration.
2864         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2865         functions.
2866         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2867         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2868         declarations.
2869         * flags.h (flag_modulo_sched): New flag.
2870         * opts.c (common_handle_option): Handle modulo-sched flag.
2871         * params.def (max-sms-loop-number, sms-max-ii-factor,
2872         sms-dfa-history, sms-loop-average-count-threshold): New
2873         parameters.
2874         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2875         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2876         parameters.
2877         * passes.c ("sms", "sms-vcg"): New dumps.
2878         (rest_of_handle_sched): Call sms_schedule.
2879         * rtl.h (sms_schedule): New declaration.
2880         * timevar.def (TV_SMS): New.
2881         * toplev.c (flag_modulo_sched): Initialize.
2882         (f_options): Handle -fmodulo-sched option.
2883         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2884         * docs/passes.texi: Document new SMS pass.
2885
2886 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2887
2888         * Makefile.in (OBJS): Add rtlhooks.o.
2889         (rtlanal.o): Depend on function.h.
2890         (cse.o): Depend on rtlhooks-def.h.
2891         (combine.o): Depend on rtlhooks-def.h.
2892         (rtlhooks.o): New rule.
2893         * combine.c: Include rtlhooks-def.h.
2894         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2895         num_sign_bit_copies, cached_num_sign_bit_copies,
2896         num_sign_bit_copies1): Move most of the code to rtlanal.c.
2897         (reg_nonzero_bits_for_combine,
2898         reg_num_sign_bit_copies_for_combine): New functions holding
2899         the remnants of the above.
2900         (combine_rtl_hooks): New.
2901         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2902         * cse.c: Include rtlhooks-def.h.
2903         (cse_rtl_hooks): New.
2904         (cse_main): Set rtl_hooks instead of gen_lowpart.
2905         * emit-rtl.c (gen_lowpart): Remove.
2906         (gen_lowpart_general): Move to rtlhooks.c.
2907         * rtl.h (nonzero_bits, num_sign_bit_copies,
2908         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2909         (gen_lowpart_general): Remove.
2910         (gen_lowpart): Temporarily redefine as a macro.
2911         * rtlanal.c: Include function.h.
2912         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2913         num_sign_bit_copies, cached_num_sign_bit_copies,
2914         num_sign_bit_copies1): New, from combine.c.
2915         * rtlhooks.c: New file.
2916         * rtlhooks-def.h: New file.
2917
2918 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2919
2920         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2921         to support 32-bit -mint8 mode.
2922
2923         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2924         option in the AVR architecture.
2925
2926 2004-05-24  Mike Stump  <mrs@apple.com>
2927
2928         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2929
2930 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2931
2932         * intl.h (open_quote, close_quote): New.
2933         * intl.c (open_quote, close_quote): New.
2934         (gcc_init_libintl): Set them.
2935         * pretty-print.c: Include "intl.h".
2936         (pp_base_format_text): Support 'q' format flag and %` and %'
2937         formats.  Use ' instead of ` in comments.
2938         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2939         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2940         foramt_types_orig): Describe these new formats.
2941         (decode_format_attr, check_function_format,
2942         check_format_info_main): Use these new formats.
2943         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2944         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2945         check these formats to 3.5.
2946
2947 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2948
2949         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2950         (BACKEND): Reflect this.
2951         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2952         (LIBS): Likewise.
2953
2954 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2955
2956         PR tree-optimization/14197
2957         * builtins.c: Include "tree-gimple.h"
2958         (readonly_data_expr): Use get_base_address.  Make sure to call
2959         decl_readonly_section only on trees it can handle.
2960         * tree-gimple.c (get_base_address): Accept STRING_CST and
2961         CONSTRUCTOR expressions.
2962         * Makefile.in: Update dependencies.
2963
2964 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2965
2966         Move libcpp to the toplevel.
2967         * Makefile.in: Remove references to libcpp files,
2968         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2969         and change hashtable.h to that.
2970         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2971         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2972         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2973         * configure: Regenerate.
2974         * config.in: Regenerate.
2975         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2976         * cppcharset.c: Removed.
2977         * cpperror.c: Removed.
2978         * cppexp.c: Removed.
2979         * cppfiles.c: Removed.
2980         * cpphash.c: Removed.
2981         * cpphash.h: Removed.
2982         * cppinit.c: Removed.
2983         * cpplex.c: Removed.
2984         * cpplib.c: Removed.
2985         * cpplib.h: Removed.
2986         * cppmacro.c: Removed.
2987         * cpppch.c: Removed.
2988         * cpptrad.c: Removed.
2989         * cppucnid.h: Removed.
2990         * cppucnid.pl: Removed.
2991         * cppucnid.tab: Removed.
2992         * hashtable.c: Removed.
2993         * hashtable.h: Removed.
2994         * line-map.c: Removed.
2995         * line-map.h: Removed.
2996         * mkdeps.c: Removed.
2997         * mkdeps.h: Removed.
2998         * stringpool.h: Include symtab.h instead of hashtable.h.
2999         * tree.h: Include symtab.h instead of hashtable.h.
3000         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
3001
3002 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3003
3004         * gcc.c (struct prefix_list): Add forward declaration.
3005         (do_spec_path): New function, extracted from...
3006         (do_spec_1) <'D'>: ... here.  Drop support for
3007         SPACE_AFTER_L_OPTION.
3008         (do_spec_1) <'I'>: Use do_spec_path.
3009         (process_command): Do not store the 'include' suffix
3010         in include_prefixes.
3011         * system.h: Poison SPACE_AFTER_L_OPTION.
3012
3013 2002-05-23  Roger Sayle  <roger@eyesopen.com>
3014
3015         * fold-const.c (non_lvalue): Explicitly list the tree codes that
3016         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
3017
3018 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
3019
3020         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
3021         Update based on printed manual.  Enable setting of offsets for
3022         FSFPRINT and move it to gcc-common.texi.
3023         * doc/gcc.texi: Update FSF printing details.
3024         * doc/gccint.texi: Remove FSF printing details.
3025
3026 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
3027
3028         * config/rs6000/t-rs6000: Remove the disabling -Werror.
3029
3030 2004-05-22  Roger Sayle  <roger@eyesopen.com>
3031
3032         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3033         expand_builtin_strrchr, expand_builtin_strpbrk,
3034         expand_builtin_mempcpy, expand_builtin_memcmp,
3035         expand_builtin_strcmp, expand_builtin_strncmp,
3036         expand_builtin_strcat, std_expand_builtin_va_start,
3037         std_expand_builtin_va_arg, expand_builtin_va_copy,
3038         expand_builtin_signbit, fold_builtin_cabs,
3039         fold_builtin_logarithm, fold_builtin_mempcpy,
3040         fold_builtin_signbit, fold_builtin_isascii,
3041         fold_builtin_toascii, fold_builtin_isdigit,
3042         fold_builtin_1, build_function_call_expr,
3043         simplify_builtin_strchr, simplify_builtin_strrchr,
3044         simplify_builtin_strpbrk, simplify_builtin_strncpy,
3045         simplify_builtin_memcmp, simplify_builtin_strcmp,
3046         simplify_builtin_strncmp, simplify_builtin_strncat,
3047         simplify_builtin_strspn, simplify_builtin_strcspn,
3048         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
3049         to build with calls to build2, build3 or omit_one_operand.
3050
3051 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3052
3053         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
3054         section when generating EABI code.
3055
3056 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3057
3058         PR 15546
3059         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
3060         Call mark_decl_referenced on the SYMBOL_REF_DECL.
3061
3062 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3063
3064         * c-common.c (c_common_truthvalue_conversion): Handle
3065         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
3066         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
3067         i.e. set the type to truthvalue_type_node and return.
3068
3069 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
3070
3071        * tree.h (struct tree_decl): Add possibly_inlined bit.
3072         (DECL_POSSIBLY_INLINED): New accessor macro.
3073         * cgraph.h: Remove declaration of cgraph_inline_hash.
3074         * cgraph.c: Remove definition of cgraph_inline_hash.
3075         (hash_node): Revert to hashing DECL_UID.
3076         (eq_node): Take two pointers to cgraph_node structures.
3077         Compare DECL_UIDs.
3078         (cgraph_remove_node): Pass the node directly to htab_find_slot.
3079         (cgraph_varpool_hash_node): Rename hash_varpool_node;
3080         hash on DECL_UID.
3081         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
3082         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
3083         (cgraph_node): Allocate a temporary node on the stack, fill in
3084         its DECL field, and pass that to htab_find_slot.
3085         (cgraph_varpool_node): Likewise.
3086         (cgraph_function_possibly_inlined_p): If global info is ready,
3087         return the DECL_POSSIBLY_INLINED bit.
3088         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
3089         instead of mucking with cgraph_inline_hash.
3090
3091 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3092
3093         * doc/contrib.texi: Add g77 contributors.
3094
3095 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3096
3097         * calls.c (initialize_argument_information): Forbid sibcalls if a
3098         callee-copied argument is stored in the current function's frame.
3099
3100 2004-05-22  Eric Christopher  <echristo@redhat.com>
3101
3102         * fix-header.c (read_scan_file): Update for add_path change.
3103
3104 2004-05-22  Ben Elliston  <bje@au.ibm.com>
3105
3106         * c.opt (Wmissing-include-dirs): New.
3107         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
3108         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
3109         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
3110         * c-incpath.h (add_path): Add fourth (bool) argument.
3111         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
3112         (add_standard_paths): Likewise.
3113         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
3114         is used and the directory was user-supplied via -I.
3115         (add_path): Set p->user_supplied_p.  Remove duplicated code by
3116         using add_cpp_dir_path ().
3117         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
3118         (struct cpp_dir): Add user_supplied_p.
3119         * doc/invoke.texi (Warning Options): Document new option.
3120
3121 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
3122
3123         * fold-const.c (fold_read_from_constant_string): Convert result to
3124         requested type.
3125
3126 2004-05-21  Richard Henderson  <rth@redhat.com>
3127
3128         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
3129         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
3130         Don't mark VA_ARG_EXPRs volatile here.
3131         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
3132
3133 2004-05-21  Richard Henderson  <rth@redhat.com>
3134
3135         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
3136         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
3137
3138 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3139
3140         * fold-const.c (fold, fold_relational_hi_lo,
3141         nondestructive_fold_binary_to_constant,
3142         fold_read_from_constant_string): Use fold_convert instead of convert.
3143         * builtins.c (simplify_builtin, simplify_builtin_strstr,
3144         simplify_builtin_strchr, simplify_builtin_strrchr,
3145         simplify_builtin_strpbrk): Use fold_convert instead of convert.
3146
3147 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
3148
3149         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
3150         is NULL.
3151
3152 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
3153
3154         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
3155         override sparc.h definition.
3156
3157 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3158
3159         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
3160         get_unwidened, get_narrower): Replace build with build2.
3161         * fold-const.c (negate_expr, associate_trees, size_binop,
3162         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
3163         pedantic_omit_one_operand, distribute_bit_expr,
3164         make_bit_field_ref, optimize_bit_field_compare,
3165         decode_field_reference, range_binop, make_range,
3166         build_range_check, fold_range_test, fold_truthop,
3167         optimize_minmax_comparison, extract_muldiv_1,
3168         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
3169         fold_inf_compare, fold_single_bit_test, fold,
3170         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3171         Likewise replace build with either build2 or build3.
3172
3173 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
3174
3175         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3176         * calls.c (prepare_call_address): Don't test
3177         NO_RECURSIVE_FUNCTION_CSE.
3178         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3179         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3180         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3181         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3182         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3183         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3184         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3185         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3186         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3187         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3188         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3189         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3190         Likewise.
3191         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3192         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3193         * doc/tm.texi (Costs): Remove documentation for
3194         NO_RECURSIVE_FUNCTION_CSE.
3195
3196 2004-05-20  Paul Brook  <paul@codesourcery.com>
3197
3198         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3199         * unwind-dw2.c (extract_cie_info): Ditto.
3200         (_Unwind_FrameState): Change retaddr_column to word type.
3201
3202 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3203
3204         PR middle-end/3074
3205         * fold-const.c (strip_compound_expr): Delete function.
3206         (count_cond): Delete function.
3207         (fold_binary_op_with_conditional_arg): Only perform transformations
3208         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3209         when a is constant.  This greatly simplifies this routine.
3210
3211         * tree.c (saved_expr_p): Delete function.
3212         * tree.h (saved_expr_p): Delete function prototype.
3213
3214 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3215
3216         * common.opt (ftree-loop-optimize): Remove.
3217
3218 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
3219
3220         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3221         (NM_FOR_TARGET): Use := and $(shell).
3222         (mainversion): Remove unused variable.
3223
3224 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3225
3226         * reorg.c (delete_from_delay_slot): If we have a barrier after the
3227         sequence containing the insn to be deleted, always reemit it.
3228
3229 2004-05-20  Richard Henderson  <rth@redhat.com>
3230
3231         PR 15454
3232         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3233         * function.c (expand_function_start): Expand static_chain_decl by hand.
3234         * gimplify.c (create_tmp_var_name): Export.
3235         * tree-gimple.h (create_tmp_var_name): Declare.
3236
3237 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3238
3239         * rs6000.c (print_operand) <case 'z'>: Call
3240         mark_decl_referenced before assemble_name.
3241
3242 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
3243
3244         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3245         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3246         (cgraph_varpool_node): Hash on the pointer to the decl, not
3247         the DECL_UID.  Fixes 64-bit bootstrap failure.
3248
3249 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
3250
3251         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3252         we don't earlyclobber operands used in the second insn.
3253
3254 2004-05-20  Steven Bosscher  <stevenb@suse.de>
3255
3256         * tree-mudflap.c: Formatting fixes.
3257
3258 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
3259
3260         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3261         * gengtype.c (open_base_files): Include reload.h in ifiles.
3262         * reload.h (reg_equiv_memory_loc_varray): Declare.
3263         * reload1.c (reg_equiv_memory_loc_varray): New variable.
3264         (init_reload): Initialize it.
3265         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3266         reg_equiv_memory_loc_varray to size 0.
3267         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3268         growing reg_equiv_memory_loc_varray to the desired size.
3269         * passes.c (rest_of_handle_old_regalloc): Likewise.
3270         * reload.c: Amend comment on calling init_reload.
3271
3272 2004-05-20  Nick Clifton  <nickc@redhat.com>
3273
3274         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3275         with 'TRAMP' in the body of the macro definition.
3276
3277 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3278
3279         PR target/15383
3280         * config/ia64/ia64.c (ia64_expand_compare): Don't check
3281         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3282         cmptf_libfunc isn't set.
3283         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3284         conventions.
3285         (ia64_sysv4_init_libfuncs): New.
3286
3287         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3288         ia64_sysv4_init_libfuncs.
3289
3290 2004-05-20  Falk Hueffner  <falk@debian.org>
3291
3292         PR other/15526
3293         * libgcc2.c (__mulvsi3): Fix overflow test.
3294
3295 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
3296
3297         PR c/14171
3298         * reg-stack.c (nan): Rename to ...
3299         (not_a_num): Here.
3300         (reg_to_stack): Rename nan to not_a_num.
3301         (subst_stack_regs_pat): Likewise.
3302         (convert_regs_entry): Likewise.
3303         (convert_regs_1): Likewise.
3304
3305         * tree-cfg.c (find_case_label_for_value): Replace call to
3306         simple_cst_equal with tree_int_cst_equal.
3307
3308 2004-05-19  Jeff Law <law@redhat.com>
3309
3310         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3311         If the operand is for a use, then strip away the SSA_NAME, do not
3312         strip away the SSA_NAME for a set.  Never call release_ssa_name.
3313         (mark_def_sites): Appropriately pass additional argument to
3314         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
3315         then set the VDEF_RESULT to the VDEF_OP.
3316         (set_def_block): Strip away any SSA_NAME to get to the real
3317         underlying variable.
3318
3319         * tree-ssa-phiopt.c (value_replacement): Handle the case where
3320         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3321         BB directly.
3322
3323 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3324
3325         PR c++/15463
3326         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
3327         result of inverse.
3328
3329         PR rtl-optimization/15274
3330         * loop-iv.c (determine_max_iter, shorten_into_mode,
3331         iv_number_of_iterations): Handle constants correctly.
3332         * rtl.h (get_mode_bounds): Declaration changed.
3333         * stor-layout.c (get_mode_bounds): Return a constant suitable for
3334         the target mode.
3335
3336         PR rtl-optimization/14692
3337         * loop-unswitch.c (may_unswitch_on): Try folding the result.
3338         (unswitch_single_loop): Work correctly when may_unswitch_on
3339         returns a folded constant.
3340
3341         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3342         * simplify-rtx.c (simplify_const_relational_operation): Optimize
3343         comparisons with mode bounds.
3344
3345         * function.c (struct temp_slot): Add new field prev.
3346         (free_after_compilation, init_temp_slots): Free new fields.
3347         (cut_slot_from_list, insert_slot_to_list,
3348         temp_slots_at_level, max_slot_level, move_slot_to_level,
3349         make_slot_available): New functions.
3350         (assign_stack_temp_for_type, combine_temp_slots,
3351         find_temp_slot_from_address, preserve_temp_slots,
3352         preserve_rtl_expr_result, free_temp_slots,
3353         free_temps_for_rtl_expr, pop_temp_slots): Work with
3354         the new structure of lists.
3355         (mark_all_temps_used): Removed.
3356         * function.h (struct function): Field x_temp_slots
3357         replaced by x_used_temp_slots and x_avail_temp_slots.
3358         (temp_slots): Replaced by ...
3359         (used_temp_slots, avail_temp_slots): New.
3360         * tree.h (mark_all_temps_used): Declaration removed.
3361
3362         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3363         simplify_using_assignment): Take the expression out of
3364         the expr_list wrapper.
3365
3366         * loop-iv.c (iv_number_of_iterations): Improve clasification of
3367         infinite loops.
3368
3369 2004-05-19  Roger Sayle  <roger@eyesopen.com>
3370
3371         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3372         costs should be based on code size when optimizing for size.
3373
3374 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
3375
3376         * fold-const.c: Remove non-printable character 160.
3377
3378 2004-05-19  Nick Clifton  <nickc@redhat.com>
3379
3380         * doc/invoke.texi (ARM Options): Fix typo.
3381         Remove descrption of -mshort-load-bytes and
3382         -mno-short-load-bytes.
3383
3384         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3385         missing parenthesis.
3386         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3387         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3388
3389 2004-05-19  Steven Bosscher  <stevenb@suse.de>
3390
3391         * expr.c (store_constructor): Build loop start and end by hand
3392         instead of via loop functions from stmt.c.
3393         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3394         Remove the code to expand them.
3395
3396         * stmt.c (loop_stack): Remove this and everything related.
3397         (struct nesting, enum nesting_desc): Update.
3398         (expand_fixup): Likewise.
3399         (expand_loop_start, expand_start_loop_continue_elsewhere,
3400         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3401         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3402         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3403         expand_exit_something): Remove.
3404         * tree.h: Remove prototypes.
3405
3406 2004-05-18  Mike Stump  <mrs@apple.com>
3407             Devang Patel  <dpatel@apple.com>
3408
3409         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3410         if this label is for eh.
3411         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3412         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3413         * dwarf2out.c (output_call_frame_info): Likewise.
3414         * output.h (default_emit_unwind_label): Likewise.
3415         * target.h (unwind_label): Likewise.
3416         * varasm.c (default_emit_unwind_label): Likewise.
3417
3418         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3419         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3420         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3421         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3422         DEBUG_RANGES_SECTION): Define.
3423
3424 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3425
3426         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3427         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3428         (cgraph_varpool_node):
3429         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3430         (cgraph_function_possibly_inlined_p): Use the decl itself for
3431         the key, not DECL_ASSEMBLER_NAME.
3432         (change_decl_assembler_name): No need to muck with the hash tables.
3433         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3434         Delete.
3435         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3436         for the key, not DECL_ASSEMBLER_NAME.
3437         * cgraph.h: Remove prototypes of deleted functions.
3438         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3439         (mark_decl_referenced): New function.
3440         * tree.h: Prototype mark_decl_referenced.
3441         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3442         mark_decl_referenced before assemble_name.
3443         * c-decl.c (finish_decl): Use mark_decl_referenced.
3444
3445 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3446             Jeff Law <law@redhat.com>
3447
3448         * tree-ssa-phiopt.c (abs_replacement): New function.
3449         (empty_block_p): New function extracted from...
3450         (candidate_bb_for_phi_optimization): Break out empty block test.
3451         (conditional_replacement): Use empty_block_p.
3452         (value_replacement): Similarly.
3453
3454         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3455         * tree-ssa-phiopt.c: Include flags.h.
3456         (conditional_replacement): Remove argument names from prototype.
3457         Minor formatting and comment fixes.
3458         (tree_ssa_phiopt): If conditional_replacement returns false, then
3459         call value_replacement.
3460         (value_replacement): New function.
3461
3462 2004-05-18  Jeff Law  <law@redhat.com>
3463
3464         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3465         from conditional_replacement.
3466         (candidate_bb_for_phi_optimization): Similarly.
3467         (conditional_replacement): Use replace_phi_with_stmt and
3468         candidate_bb_for_phi_optimization.
3469
3470         * tree-ssa-phiopt.c: Fix various formatting issues.
3471
3472 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3473
3474         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3475         s390_expand_cmpmem): Do not use expand_start_loop and
3476         expand_end_loop, instead build the loop manually.
3477
3478 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3479
3480         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3481         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3482
3483 2004-05-17  Jeff Law  <law@redhat.com>
3484
3485         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3486         * flags.h (flag_delete_null_pointer_checks): Here.
3487         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3488         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3489         (add_phi_arg, remove_phi_arg_num): Similarly.
3490         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3491         property into PHI nodes.
3492         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3493         (record_equivalences_from_phis): If all PHI arguments are known to be
3494         nonzero, then the result must be nonzero as well.
3495         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3496         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3497         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3498         as appropriate.
3499         * tree.h (PHI_ARG_NONZERO): Define.
3500         (phi_arg_d): Add nonzero flag.
3501
3502 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3503
3504         * f: Entire directory removed
3505
3506         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3507         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3508         (g77_integer_type_node, g77_uinteger_type_node)
3509         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3510         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3511         the above set of variables.
3512
3513         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3514         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3515         to g77 manual.
3516
3517 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3518
3519         PR tree-optimization/15438
3520         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3521         attributed functions as pure or const.
3522
3523 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3524
3525         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3526         from source code with errors.
3527
3528 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3529
3530         Enable tree browser for all front ends.
3531         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3532         (BACKEND): ...to here.
3533
3534 2004-05-17  Jan Hubicka  <jh@suse.cz>
3535
3536         * i386.c (construct_container): Do not produce BLKmode registers.
3537         (classify_argument): Properly compute alignment of complex types.
3538
3539 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3540
3541         PR target/15084
3542         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3543         and renamed to movdi_insv_1_rex64.
3544         (insv): Support SImode for 32bit and DImode for 64bit.
3545
3546 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3547
3548         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3549         (TARGET_SWITCHES): Remove debugg.
3550         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3551         TARGET_64BIT.
3552         (subdi3): Replace the define_expand with a define_insn, the latter
3553         renamed from subdi3_internal_3.
3554         (negdi2): Likewise negdi2_internal_2.
3555         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3556         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3557         and associated define_splits.
3558         (adddi3_internal): Renamed from adddi3_internal_3.
3559         (ashldi3_internal): Likewise ashldi3_internal4.
3560         (ashrdi3_internal): Likewise ashrdi3_internal4.
3561         (lshrdi3_internal): Likewise lshrdi3_internal4.
3562
3563 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3564
3565         * optabs.c (expand_unop): Try implementing negation using subtraction
3566         from zero.
3567
3568 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3569
3570         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3571         SAR register.
3572
3573 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3574
3575         PR target/10982
3576         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3577         (ne_zeroextractsi_shifted): New pattern.
3578         (ite_ne_zeroextractsi): New pattern.
3579         (ite_ne_zeroextractsi_shifted): New pattern.
3580
3581 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3582
3583         * c-gimplify.c (c_genericize):
3584         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3585         * c-parse.in <expr_no_commas>: Likewise.
3586         <if_prefix>: Likewise.
3587         <select_or_iter_stmt>: Likewise.
3588         * expr.c (expand_var, expand_expr_real_1): Likewise.
3589         * expr.h (expand_expr): Make it a static inline function.
3590         Move prototype for expand_expr_real up before this.
3591         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3592         Likewise.
3593         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3594         gimplify_asm_expr, gimplify_expr): Likewise.
3595         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3596         dump_function_to_file): Likewise.
3597         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3598         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3599         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3600         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3601         Likewise.
3602         * tree-optimize.c (execute_one_pass): Likewise.
3603         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3604         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3605
3606         * objc/objc-act.c (objc_build_try_enter_fragment,
3607         objc_build_try_epilogue, objc_build_catch_stmt,
3608         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3609         with lang_hooks.foo ().
3610
3611 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3612
3613         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3614         that simplify_builtin doesn't destructively modify its argument.
3615
3616 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3617
3618         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3619         implementations for ARM and Thumb.
3620         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3621
3622 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3623
3624         * prefix.c (update_path): Replace PREFIX with KEY only
3625         when it matches a full directory name in PATH.
3626
3627 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3628
3629         * arm.h (TARGET_APCS_32): Delete.
3630         (TARGET_MMU_TRAPS): Delete.
3631         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3632         define __APCS_26__.
3633         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3634         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3635         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3636         (prog_mode_type): Delete.
3637         (PROMOTE_MODE): Always promote unsigned for HImode.
3638         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3639         (MASK_RETURN_ADDR): Simplify.
3640         * arm.c (arm_prgmode): Delete.
3641         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3642         (print_multi_reg, output_return_instruction): Simplify.
3643         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3644         (arm_return_addr): Simplify.
3645         * arm.md (prog_mode): Delete.
3646         (conds): Simplify.
3647         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3648         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3649         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3650         (loadhi_shiftpredec): Delete.
3651         (peephole for post-increment on HImode load): Delete.
3652         * arm/crtn.asm: (FUNC_END): Simplify.
3653         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3654         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3655         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3656         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3657         MULTILIB_DEFAULTS as required.
3658         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3659         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3660         variables as required.
3661         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3662
3663 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3664
3665         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3666         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3667         count to 8 to handle n_reg > 2.
3668
3669 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3670
3671         * doc/extend.texi: Update WG14 URL.
3672
3673 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3674
3675         * basic-block.h (life_analysis, delete_noop_moves):
3676         Update prototypes.
3677         * bt-load.c (branch_target_load_optimize): Don't take the
3678         insns stream as an argument.  Update the life_analysis calls.
3679         * combine.c (combine_instructions): Update delete_noop_moves
3680         calls.
3681         * flow.c (notice_stack_pointer_modification): Don't take the
3682         insns stream as an argument.  Work on the flow graph.
3683         (life_analysis): Likewise.
3684         (delete_noop_moves): Likewise.
3685         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3686         (rest_of_handle_life): Update life_analysis call.
3687         (rest_of_compilation): Likewise, and also update
3688         branch_target_load_optimize call.
3689         * ra.c (reg_alloc): Update life_analysis call.
3690         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3691         the insns stream as an argument.
3692         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3693         call.
3694         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3695         prototypes.
3696         * value-profile.c (branch_prob): Update life_analysis call.
3697         * web.c (web_main): Work on the CFG, not on the insns stream.
3698
3699         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3700         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3701         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3702
3703 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3704
3705         PR c/15444
3706         * c-format.c (avoid_dollar_number): New function.
3707         (check_format_info_main): Call avoid_dollar_number when operand
3708         numbers might occur but has_operand_number == 0.
3709
3710 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3711
3712         * arm.md (all peephole2 patterns): Use predicates that validate
3713         register classes as appropriate.
3714
3715 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3716
3717         PR opt/14472
3718         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3719         ignore type conversions that do not inhibit tail calling.
3720         (find_tail_calls): Likewise.
3721
3722 2004-05-14  Jeff Law  <law@redhat.com>
3723
3724         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3725         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3726         bypassed virtuals into vars_to_rename just before into-ssa pass.
3727
3728         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3729         so that it picks up more opportunities to eliminate ABS expressions
3730         or turn them into negations.
3731
3732 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3733
3734         * passes.c (rest_of_handle_null_pointer): Remove.
3735         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3736         (rest_of_compilation): Likewise.
3737         * rtl.h (delete_null_pointer_checks): Remove prototype.
3738         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3739         Remove declarations.
3740         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3741         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3742         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3743         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3744         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3745         one_classic_gcse_pass, invalidate_nonnull_info,
3746         delete_null_pointer_checks_1, delete_null_pointer_checks,
3747         expr_reached_here_p_work): Remove.
3748         (gcse_main): Do not perform classic GCSE when optimizing for size.
3749         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3750         are never used.
3751
3752 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3753
3754         PR optimization/14466
3755         * tree-complex.c (make_temp): Remove.
3756         (gimplify_val): Replace make_temp with make_rename_temp
3757         and add NULL as the second argument.
3758         (expand_complex_div_wide): Likewise.
3759         * tree-dfa.c (make_rename_temp): New function.
3760         * tree-flow.h (make_rename_temp): Declare.
3761         * tree-sra.c (make_temp): Remove.
3762         (lookup_scalar): Replace make_temp with make_rename_temp.
3763         (create_scalar_copies): Likewise.
3764         * tree-ssa-phiopt.c (conditional_replacement): When we
3765         get non gimple create a temporary variable to hold the
3766         casted expression.
3767
3768 2004-05-14  Paul Brook  <paul@codesourcery.com>
3769
3770         * stor-layout.c (update_alignment_for_field): Use
3771         targetm.align_anon_bitfield.
3772         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3773         (TARGET_INITIALIZER): Use it.
3774         * target.h (struct gcc_target): Add align_anon_bitfield.
3775         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3776         (TARGET_ALIGN_ANON_BITFIELD): Define.
3777         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3778
3779 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
3780
3781         * tree.def (documentation): Remove mention of class 'b'.
3782         (BLOCK): Now in class 'x'.
3783         * c-common.c (verify_tree): Remove case 'b'.
3784         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3785         * calls.c (calls_function_1): Control cannot get past the switch
3786         when exp is a BLOCK.
3787         * print-tree.c (print_node): Move code for class 'b' to the class
3788         'c'/'x' switch, as case BLOCK.
3789         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3790         (unsafe_for_reeval, substitute_placeholder_in_expr)
3791         (stabilize_reference_1): Remove case 'b'.
3792         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3793         of something being 'b' to tests for TREE_CODE of something being
3794         BLOCK.
3795         * tree-ssa-operands.c (get_expr_operands): Likewise.
3796
3797 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3798
3799         * tree-gimple.c: Rename from tree-simple.c.
3800         * tree-gimple.h: Rename from tree-simple.h.
3801         * c-gimplify.c: Rename from c-simplify.c
3802         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3803         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3804         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3805         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3806         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3807         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3808         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3809         Update.
3810
3811 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
3812
3813         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3814
3815 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3816
3817         * tree-ssa.c (delete_tree_ssa): XFREE
3818         bitmaps allocated with BITMAP_XMALLOC.
3819
3820         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3821         idfs_cache at the end of the function.
3822
3823         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
3824         at the end of the function.
3825
3826         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
3827         el at the end of the function.
3828
3829         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
3830         bitmaps allocated with BITMAP_XMALLOC.
3831
3832         * loop-unswitch.c (unswitch_single_loop): Free bbs at
3833         the end.
3834
3835         * final.c (shorten_branches): Free uid_shuid before
3836         reallocating it.
3837
3838         * bb-reoder.c (connect_traces): Free cold_traces at the end.
3839
3840 2004-05-13  Jeff Law  <law@redhat.com>
3841
3842         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
3843         variables.  Simplify slightly by using USE_OP/DEF_OP instead
3844         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
3845
3846         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
3847         rather than iterating through the blocks testing each bit in
3848         livein to initialize the worklist.
3849         (mark_def_sites): Remove useless checks of KILLS for virtual
3850         operands.
3851
3852         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
3853         new parameters for the statement and variable worklist as well
3854         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
3855         worklist recording interesting variables in the variable worklist
3856         and bitmap.  Handle casts between integral and boolean types.
3857         (substitute_single_use_vars): Accept new parameters for the statement
3858         and variable worklist.  When a substitution is made add a new
3859         entry to the statement worklist.  Handle casts between integral
3860         and boolean types.
3861         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3862         worklists to children.  Iterate until the statement worklist
3863         is empty.
3864
3865 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3866
3867         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3868         the end of the block.
3869
3870         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3871         with BITMAP_XMALLOC.
3872
3873         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3874         with BITMAP_XMALLOC.
3875
3876         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3877         Free nonzero_vars at the end of the function.
3878
3879         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3880         need to generate code instead of a NOP_EXPR.
3881
3882 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
3883
3884         * gcc.c (default_compilers): Fill out initializers for new Fortran
3885         entries.
3886
3887 2004-05-13  Paul Brook  <paul@codesourcery.com>
3888
3889         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3890
3891 2004-05-13  Paul Brook  <paul@codesourcery.com>
3892
3893         * config/arm/arm.c (arm_default_short_enums): New function.
3894         (TARGET_DEFAULT_SHORT_ENUMS): Define.
3895
3896 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3897
3898         Merge from tree-ssa-20020619-branch.
3899
3900         * Makefile.in (reload1.o-warn): Add.
3901         (tree-alias-ander.o-warn): Add.
3902         (GMPLIBS): Define.
3903         (GMPINC): Define.
3904         (BANSHEELIB): Define.
3905         (BANSHEEINC): Define.
3906         (TREE_DUMP_H): Define.
3907         (TREE_SIMPLE_H): Define.
3908         (TREE_FLOW_H): Define.
3909         (LIBDEPS): Add BANSHEELIB.
3910         (INCLUDES): Add BANSHEEINC and GMPINC.
3911         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3912         c-mudflap.o and c-pretty-print.o.
3913         (C_OBJS): Remove c-pretty-print.o.
3914         (OBJS-common): Remove sibcall.o.
3915         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3916         tree-ssa.o, tree-optimize.o, tree-simple.o,
3917         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3918         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3919         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3920         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3921         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3922         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3923         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3924         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3925         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3926         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3927         tree-profile.o.
3928         (OBJC-archive): Add tree-nomudflap.o.
3929         (cc1): Add dependency on @TREEBROWSER@.
3930         (c-decl.o): Add dependency on TREE_DUMP_H.
3931         (c-dump.o): Likewise.
3932         (c-common.o): Add dependency on tree-iterator.h
3933         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3934         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3935         (tree.o): Add dependency on tree-iterator.h,
3936         BASIC_BLOCK_H and TREE_FLOW_H.
3937         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3938         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3939         (tree-alias-type.o, tree-alias-ander.o,
3940         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3941         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3942         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3943         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3944         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3945         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3946         tree-nested.o, tree-iterator.o, tree-dfa.o,
3947         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3948         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3949         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3950         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3951         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3952         tree-sra.o, tree-complex.o, tree-profile.o,
3953         rtl-profile.o): New rules.
3954         (function.o): Add dependency on basic-block.h
3955         (expr.o): Add dependency on tree-iterator.h.
3956         (sibcall.o): Remove.
3957         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3958         (cfg.o): Add dependency on TIMEVAR_H.
3959         (cfghooks.o): Add dependency on TREE_FLOW_H.
3960         (reg-stack.o): Add dependency on basic-block.h.
3961         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3962         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3963         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3964         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3965         tree-alias-type.h, tree-alias-common.h,
3966         tree-alias-type.c, tree-alias-common.c,
3967         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3968         rtl-profile.c and tree-nested.c.
3969         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3970         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3971         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3972         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3973         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3974         * basic-block.h: Include predict.h
3975         (struct edge_def): Add GTY marker.
3976         Change field 'insns' to be a union of tree and rtx.
3977         (EDGE_TRUE_VALUE): Define.
3978         (EDGE_FALSE_VALUE): Define.
3979         (EDGE_EXECUTABLE): Define.
3980         (struct bb_ann_d): Forward declare.
3981         (struct basic_block_def): Add GTY marker.
3982         Remove fields head_tree and end_tree.
3983         Add fields stmt_list, rbi and tree_annotations.
3984         (struct reorder_block_def): Define.
3985         (basic_block_info): Add GTY marker.
3986         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3987         variables instead of macros.
3988         (flow_call_edges_add): Remove declaration.
3989         (make_eh_edge): Remove declaration.
3990         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3991         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3992         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3993         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3994         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3995         (try_redirect_by_replacing_jump): Modfiy return type to
3996         edge instead of bool.
3997         * bb-reorder.c (copy_bb): Call duplicate_block
3998         instead of cfg_layout_duplicate_bb.
3999         (copy_bb_p): Call can_duplicate_block_p instead of
4000         cfg_layout_can_duplicate_bb_p.
4001         * bitmap.c (bitmap_first_set_bit): Abort if word
4002         wasn't found.
4003         (bitmap_last_set_bit): Likewise.
4004         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
4005         (DEF_FUNCTION_TYPE_3): Add.
4006         * builtins.c (c_strlen): Make extern.
4007         (builtin_save_expr): New.
4008         (expand_builtin_nonlocal_goto): New.
4009         (expand_builtin_constant_p): Remove.
4010         (expand_builtin_mathfn): Call builtin_save_expr instead
4011         of save_expr.
4012         (expand_builtin_mathfn_2): Likewise.
4013         (expand_builtin_strcmp): Likewise.
4014         (expand_builtin_strncmp): Likewise.
4015         (expand_builtin_strcat): Likewise.
4016         (fold_builtin_cabs): Likewise.
4017         (expand_builtin_alloca): Don't trigger if -fmudflap is
4018         given.
4019         (build_string_literal): Set TREE_INVARIANT on new node.
4020         (expand_builtin_profile_fun): New.
4021         (round_trampoline_addr): New.
4022         (expand_builtin_init_trampoline): New.
4023         (expand_builtin_adjust_trampoline): New.
4024         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
4025         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
4026         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
4027         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
4028         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
4029         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
4030         Handle.
4031         (fold_builtin_expect): New.
4032         (fold_builtin_isascii): Don't return non-constant results
4033         in GIMPLE form.
4034         (fold_builtin_isdigit): Likewise.
4035         (fold_builtin_1): New.
4036         (fold_builtin): Call it.
4037         (build_function_call_expr): Update call to build a new
4038         CALL_EXPR.
4039         (purge_builtin_constant_p): Remove.
4040         (simplify_builtin, simplify_builtin_memcmp,
4041         simplify_builtin_strcmp, simplify_builtin_strncmp,
4042         simplify_builtin_strpbrk, simplify_builtin_strstr,
4043         simplify_builtin_strchr, simplify_builtin_strrchr,
4044         simplify_builtin_strcat, simplify_builtin_strncat,
4045         simplify_builtin_strspn, simplify_builtin_strcspn,
4046         simplify_builtin_next_arg, simplify_builtin_va_start,
4047         simplify_builtin_sprintf): New.
4048         * builtins.def (BUILT_IN_STACK_ALLOC,
4049         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
4050         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
4051         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
4052         BUILT_IN_PROFILE_FUNC_EXIT): Define.
4053         * c-common.c: Include tree-iterator.h and hashtab.h.
4054         (lang_statement_code_p): Declare.
4055         (lang_gimplify_stmt): Declare.
4056         (fix_string_type): Set TREE_INVARIANT for value.
4057         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
4058         (c_type_hash): New.
4059         (c_common_get_alias_set): Handle multiple type nodes
4060         referring to "the same" type, currently for C90 only.
4061         (c_add_case_label): Use create_artificial_label.
4062         (finish_label_address_expr): Don't set TREE_CONSTANT on
4063         result.
4064         (c_expand_expr): Don't handle STMT_EXPR.
4065         (handle_alias_attribute): Marke aliased variables to be
4066         TREE_STATIC.
4067         (handle_nonnull_attribute): Initialize arg_num.
4068         (check_function_nonnull): Likewise.
4069         (c_walk_subtrees): New.
4070         (c_estimate_num_insns_1): Don't handle
4071         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
4072         (c_decl_uninit_1): Remove.
4073         (c_decl_uninit): Remove.
4074         (c_warn_unused_result): New.
4075         * c-common.def (ASM_STMT): Change number of operands
4076         to 4.
4077         (FILE_STMT): Remove.
4078         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
4079         Remove.
4080         (lang_gimplify_stmt): Add.
4081         (expand_stmt): Remove.
4082         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
4083         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
4084         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
4085         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
4086         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
4087         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4088         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4089         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
4090         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
4091         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
4092         genrtl_compound_stmt, genrtl_asm_stmt,
4093         genrtl_cleanup_stmt, c_decl_uninit): Remove.
4094         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
4095         c_tree_chain_matters_p, c_warn_unused_result,
4096         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
4097         Declare.
4098         * c-convert.c (convert): Make convert work when
4099         converting to compatible types across translation unit.
4100         * c-decl.c: Include langhooks.h, tree-mudflap.h,
4101         tree-simple.h, diagnostic.h and tree-dump.h
4102         (merge_decls): Initialize oldtype to NULL.
4103         (finish_decl): Use DECL_HARD_REGISTER instead of
4104         DECL_C_HARD_REGISTER.
4105         (check_bitfield_type_and_width): Check for null
4106         lang_type_specific when check the precision of an enum.
4107         (grokdeclarator): Immediately layout an ARRAY_TYPE used
4108         in a pointer-to-array declarator.
4109         (finish_struct): Clear allocated struct lang_type.
4110         (finish_enum): Set enum_min and enum_max.  Set
4111         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
4112         not to the enumerators.
4113         (set_decl_nonlocal): New.
4114         (store_parm_decls): Use it via walk_tree.
4115         (c_finalize): New.
4116         (finish_function): When !targetm.have_ctors_dtors,
4117         record static constructors and destructors here...
4118         (c_expand_body_1): ... not here.
4119         (c_expand_decl): Rename from c_expand_decl_stmt.
4120         Handle all C-specific expansion semantics.
4121         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
4122         STMT_LINENO.
4123         * c-format.c (handle_format_arg_attribute): Initialize
4124         format_num.
4125         * c-lang.c: Include tree-inline.h
4126         (LANG_HOOKS_EXPAND_DECL,
4127         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4128         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
4129         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
4130         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
4131         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
4132         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
4133         (c_types_compatible_p): New.
4134         * c-mudflap.c: New file.
4135         * c-objc-common.c: Include tree-mudflap.h
4136         (start_cdtor, finish_cdtor): Collapse
4137         together into
4138         (build_cdtor): ...here.  Update to construct a complete tree
4139         for the function.  No need to call push_scope, pop_scope, or
4140         clear_last_expr, or set current_function_cannot_inline.
4141         (c_missing_noreturn_ok_p): Change prototype to return
4142         bool.
4143         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
4144         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
4145         opts.c.
4146         (c_common_post_options): Don't ever use rtl inlining.
4147         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
4148         * c-pragma.c (handle_pragma_redefine_extname): Define
4149         always.
4150         (init_pragma): Activate #pragma redefine_extname for mudflap.
4151         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
4152         (pp_c_initializer): Accept any type CONSTRUCTOR.
4153         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
4154         COMPLEX_TYPE.
4155         (decl_name_str): New local function.
4156         (pp_c_direct_declarator): Call it.
4157         (pp_c_primary_expression): Call it.
4158         (pp_c_id_expression): Call it.
4159         (pp_c_statement): Call it.
4160         (print_c_tree): Create new pp object.
4161         * c-pretty-print.h (pp_c_tree_decl_identifier,
4162         print_c_tree): Declare.
4163         * c-semantics.c: Include langhooks.h
4164         (lang_expand_stmt, lang_expand_decl_stmt,
4165         find_reachable_label_1, find_reachable_label,
4166         expand_unreachable_if_stmt, expand_unreachable_stmt,
4167         genrtl_do_stmt_1): Remove.
4168         (begin_stmt_tree): Don't check for changed filename.
4169         Call annotate_with_locus.
4170         (finish_stmt_tree): Don't set line for end of function.
4171         (build_stmt): Don't check type nodes for
4172         side effects.
4173         (build_stmt): Set TREE_SIDE_EFFECTS.
4174         Set EXPR_LOCUS instead of STMT_LINENO.
4175         (lang_expand_stmt, lang_expand_decl_stmt,
4176         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4177         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4178         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
4179         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
4180         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
4181         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
4182         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
4183         find_reachable_label_1, expand_unreachable_if_stmt,
4184         expand_unreachable_stmt): Remove.
4185         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
4186         * c-simplify.c: New file.
4187         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
4188         (struct lang_type): Add fields enum_min and enum_max.
4189         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
4190         (c_expand_decl, c_missing_noreturn_ok_p,
4191         c_types_compatible_p): Declare.
4192         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
4193         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
4194         (default_function_array_conversion): Rely on build to
4195         set TREE_CONSTANT.
4196         (parser_build_binary_op, pointer_diff): Likewise.
4197         (build_unary_op, build_binary_op): Likewise.
4198         (build_array_ref):
4199         (build_external_ref): Set TREE_INVARIANT.
4200         (build_c_cast, pop_init_level): Likewise.
4201         (process_init_element): Use ASM_VOLATILE_P.
4202         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
4203         (c_finish_case): Call c_do_switch_warnings.
4204         * c.opt (fdump-): Remove.
4205         * calls.c (try_to_integrate): Remove.
4206         (prepare_call_address): Replace fndecl arg with a
4207         precomputed static chain value.
4208         (emit_call_1): New argument for full call expr.
4209         (flags_from_decl_or_type): Call special_function_p.
4210         (initialize_argument_information): Add argument
4211         may_tailcall.
4212         (purge_reg_equiv_notes): New.
4213         (expand_call): Do not try to expand calls inline.
4214         (fixup_tail_calls): New.
4215         * cfg.c: Include timevar.h and ggc.h.
4216         (bb_pool, edge_pool): Remove.
4217         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
4218         (entry_exit_blocks): Remove.
4219         (rbi_pool): Declare.
4220         (init_flow): Do not create pools.
4221         Allocate entry/exit block.
4222         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
4223         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
4224         (unlink_block): Clear b->prev_bb and b->next_bb.
4225         (compact_blocks): Clear all slots of BASIC_BLOCK array.
4226         (dump_flow_info): Work on trees too.
4227         (dump_cfg_bb_info): New.
4228         (brief_dump_cfg): New.
4229         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
4230         (find_edge): New.
4231         * cfgbuild.c (rtl_make_eh_edge): Rename from
4232         make_eh_edge.  Update all users.
4233         (find_basic_blocks): Don't call VARRAY_FREE on
4234         basic_block_info.
4235         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
4236         and newpos2.
4237         (delete_unreachable_blocks): Return changed status.
4238         (merge_seq_blocks): New.
4239         * cfghooks.c: Include tree-flow.h
4240         (tree_register_cfg_hooks, ir_type): New.
4241         (redirect_edge_and_branch): Change return type to edge.
4242         (predict_edge, predicted_by_p, can_duplicate_block_p,
4243         duplicate_block, block_ends_with_call_p,
4244         block_ends_with_condjump_p, flow_call_edges_add): New.
4245         * cfghooks.h (redirect_edge_and_branch): Change return
4246         type to edge.
4247         (predict_edge, predicted_by_p, can_duplicate_block_p,
4248         duplicate_block, block_ends_with_call_p,
4249         block_ends_with_condjump_p, flow_call_edges_add): Declare.
4250         (redirect_edge_and_branch): Change return type to edge.
4251         (struct cfg_hooks): Add fields block_ends_with_call_p,
4252         block_ends_with_condjump_p, flow_call_edges_add,
4253         predict_edge, predicted_by_p, can_duplicate_block_p and
4254         duplicate_block.
4255         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
4256         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
4257         (fixup_reorder_chain): Use initialize_bb_rbi.
4258         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
4259         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
4260         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
4261         (insn_locators_initialize): Use new info about blocks.
4262         * cfglayout.h (typedef struct reorder_block_def): Moved to
4263         basic_block.h.
4264         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
4265         removed.
4266         * cfgloop.c: Include tree.h and tree-flow.h.
4267         * cfgloop.h (create_loop_notes): Declare.
4268         * cfgloopmanip.c (create_loop_notes): New.
4269         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
4270         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
4271         and duplicate_block fields.
4272         (create_basic_block_structure): Don't look at
4273         RTX_INTEGRATED_P.
4274         (rtl_block_ends_with_call_p): New.
4275         (rtl_block_ends_with_condjump_p): New.
4276         (need_fake_edge_p): Moved from cfganal.c.
4277         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
4278         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
4279         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
4280         (cfg_layout_rtl_cfg_hooks): Ditto.
4281         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
4282         functions to be reachable.
4283         * cgraphunit.c (decide_is_function_needed):
4284         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
4285         inline functions don't need to be output.
4286         (cgraph_assemble_pending_functions): Don't do anything
4287         special for nested functions.
4288         (cgraph_mark_functions_to_output): Likewise.
4289         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
4290         (cgraph_analyze_function): Use estimate_num_insns.
4291         (cgraph_mark_functions_to_output): Likewise.
4292         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
4293         (cgraph_expand_function): Allow functions to not be
4294         emitted.
4295         (cgraph_remove_unreachable_nodes):
4296         (cgraph_recursive_inlining_p): Simplify.
4297         (lookup_recursive_calls,
4298         cgraph_decide_recursive_inlining): New.
4299         (cgraph_decide_inlining_*): Update calls of
4300         cgraph_mark_inline.
4301         * combine.c (get_pos_from_mask): Always set *plen.
4302         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
4303         ftree-based-profiling, ftree-ccp, ftree-ch,
4304         ftree-combine-temps, ftree-copyrename, ftree-dce,
4305         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
4306         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
4307         ftree-lrs): Add.
4308         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
4309         Undefine.
4310         * configure.ac: Add --enable-tree-browser option.
4311         Add --with-libbanshee option.
4312         Add GMPLIBS and GMPINC.
4313         * configure: Regenerate.
4314         * coverage.c (tree_ctr_tables): New.
4315         (coverage_counter_alloc): Use it.
4316         (build_ctr_info_value): Ditto.
4317         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
4318         (tree_coverage_counter_ref): New.
4319         * coverage.h (coverage_counter_ref): Remove declaration.
4320         (rtl_coverage_counter_ref): Declare.
4321         (tree_coverage_counter_ref): Declare.
4322         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
4323         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
4324         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
4325         (struct cse_basic_block_data): Rename enum values to not
4326         conflict with profile.h; update all uses.
4327         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
4328         in comments.
4329         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
4330         * diagnostic.h (debug_output_buffer, dump_generic_node,
4331         print_generic_stmt, print_generic_stmt_indented,
4332         print_generic_expr, print_generic_decl,
4333         debug_generic_expr, debug_generic_stmt, debug_c_tree):
4334         Declare.
4335         * dominance.c: Cache immediate dominators.
4336         * domwalk.c: New file.
4337         * domwalk.h: New file.
4338         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
4339         (gen_subprogram_die): Generate a DIE for a named
4340         return value.
4341         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
4342         (add_location_or_const_value_attribute): Likewise.
4343         (add_bound_info): Likewise.
4344         (gen_decl_die): Likewise.
4345         * emit-rtl.c (maybe_set_first_label_num): New.
4346         (copy_most_rtx): Don't copy the integrated flag.
4347         Copy the new return_val flag.
4348         * et-forest.c (MAX_NODES): Define.
4349         (record_path_before_1): Abort if len is greater than
4350         MAX_NODES.
4351         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
4352         gen_eh_region_catch, gen_eh_region_allowed,
4353         gen_eh_region_must_not_throw, get_eh_region_number,
4354         get_eh_region_may_contain_throw, get_eh_region_tree_label,
4355         set_eh_region_tree_label, expand_resx_expr): New.
4356         (expand_eh_region_start, expand_start_catch): Use them.
4357         (expand_end_catch): Tidy.
4358         (note_eh_region_may_contain_throw): Take region argument.
4359         (note_current_region_may_contain_throw): New.
4360         (get_exception_filter): Export.
4361         (collect_eh_region_array): Export.
4362         (remove_unreachable_regions): Check ERT_TRY based on reachability
4363         of catches, not reachability of continue_label.  Never remove
4364         ERT_MUST_NOT_THROW regions.
4365         (collect_rtl_labels_from_trees): New.
4366         (convert_from_eh_region_ranges): Use it.
4367         (connect_post_landing_pads): Handle dying cleanups.
4368         (struct reachable_info): Add callback data.
4369         (add_reachable_handler): Invoke the callback.
4370         (foreach_reachable_handler): New.
4371         (reachable_handlers): Use it.
4372         (arh_to_landing_pad, arh_to_label): New.
4373         (can_throw_internal_1): Split out from can_throw_internal.
4374         (can_throw_external_1): Similarly.
4375         * except.h: Update.
4376         * explow.c (emit_stack_save): Remove savearea mode check.
4377         (update_nonlocal_goto_save_area): New.
4378         (allocate_dynamic_stack_space): Use it.
4379         (probe_stack_range): Never emit loop notes.
4380         * expmed.c (extract_fixed_bit_field): Always propagate the
4381         target for the shift if it is a REG.
4382         * expr.c: Include tree-iterator.h
4383         (is_zeros_p): Remove.
4384         (categorize_ctor_elements_1, categorize_ctor_elements): New.
4385         (count_type_elements): New.
4386         (mostly_zeros_p): Use them.
4387         (expr_wfl_stack): Remove.
4388         (convert_move): Do nothing if to and from are the same.
4389         (emit_block_move_via_loop): Don't emit LOOP notes.
4390         (emit_move_insn): Don't handle CONSTANT_P_RTX.
4391         (emit_move_insn_1): Don't generate inline warnings.
4392         (expand_vars, expand_var): Split from ...
4393         (expand_expr_1): ... here.
4394         (expand_expr_real, expand_expr_real_1):  Use new macros
4395         EXPR_LOCATION and EXPR_HAS_LOCATION.
4396         * expr.h (simplify_builtin_fputs,
4397         simplify_builtin_strcpy, simplify_builtin_strncpy,
4398         expand_var, fixup_tail_calls,
4399         update_nonlocal_goto_save_area): Declare.
4400         (lookup_static_chain, expand_inline_function,
4401         mark_seen_cases): Remove.
4402         (prepare_call_address): Change type of 2nd argument to
4403         rtx.
4404         * final.c (profile_function): Update static chain test.
4405         (final): Don't look at RTX_INTEGRATED_P.
4406         * flags.h (flag_mudflap, flag_mudflap_threads,
4407         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4408         flag_tree_dce, flag_tree_combine_temps,
4409         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4410         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4411         flag_tree_points_to): Declare.
4412         (enum pta_type): Declare.
4413         * flow.c (lang_missing_noreturn_ok_p): Remove.
4414         (check_function_return_warnings): Remove.
4415         (update_life_info): Update comments.
4416         (free_basic_block_vars): Don't call VARRAY_FREE for
4417         basic_block_info.
4418         (regno_uninitialized): Remove.
4419         * fold-const.c (int_const_binop): Make extern.
4420         (non_lvalue): Rely on build to set TREE_CONSTANT.
4421         (operand_equal_p): Replace only_const argument with
4422         flags.  Allow pure functions if OEP_PURE_SAME.
4423         (fold): Use OEP_ONLY_CONST.
4424         (invert_truthvalue) <NOP_EXPR> Break if argument is of
4425         boolean type.
4426         (fold_relational_hi_lo,
4427         nondestructive_fold_binary_to_constant,
4428         nondestructive_fold_unary_to_constant,
4429         fold_read_from_constant_string): New.
4430         * function.c (struct function): Remove calls_constant_p.
4431         (current_function_calls_constant_p): Remove.
4432         (inline_function_decl): Remove.
4433         (put_var_into_stack): Don't use it.
4434         (fix_lexical_addr): Likewise.
4435         (inline_function_decl): Remove extern declaration.
4436         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4437         (trampolines_created): Move to varasm.c.
4438         (free_after_compilation): Update for removed fields.
4439         (allocate_struct_function): Likewise.
4440         (delete_handlers, lookup_static_chain): Remove.
4441         (fix_lexical_addr): Don't consider non-local variable refs.
4442         (trampoline_address): Remove.
4443         (round_trampoline_addr): Move to builtins.c.
4444         (adjust_trampoline_addr): Remove.
4445         (expand_function_start): Update for changes to static chain
4446         and nonlocal goto handling.
4447         (initial_trampoline): Move to varasm.c.
4448         (expand_function_end): Don't build trampolines or kill
4449         unreferenced nonlocal goto labels.
4450         (free_after_compilation): Don't set it.
4451         (expand_function_end): Likewise.
4452         (setjmp_vars_warning): Rename from
4453         uninitialized_vars_warning, remove uninitialized vars warning.
4454         (uninitialized_vars_warning): Remove old comment
4455         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4456         and do not call the langhook.
4457         (expand_function_start, expand_function_end): Don't do
4458         function instrumentation here.
4459         (clear_block_marks): Rename from reorder_blocks_0, export.
4460         (blocks_nreverse): Export.
4461         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4462         of rtl.
4463         (reset_block_changes, record_block_change, finalize_block_changes,
4464         check_block_change, free_block_changes): New functions.
4465         (assign_parms): Setting of current_function_stdarg
4466         moved ...
4467         (allocate_struct_function): ... here.
4468         * function.h (struct function): Remove x_nonlocal_labels,
4469         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4470         x_context_display, x_trampoline_list, needs_context.
4471         Add static_chain_decl, nonlocal_goto_save_area.
4472         (struct function): Remove x_clobber_return_insn.
4473         Add tail_call_emit field, last_label_uid,
4474         unexpanded_var_list, dont_emit_block_notes,
4475         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4476         (clear_block_marks): Declare.
4477         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4478         (mfwrap_spec, mflib_spec): Declare.
4479         (cpp_unique_options, cc1_options): Ditto.
4480         (default_compilers): Add .F and .f90.
4481         (static_specs): Add mfwrap and mflib.
4482         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4483         CONSTANT_RTX_P.
4484         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4485         Update to match insns field in struct edge_def.
4486         * gdbinit.in (pgs, pge): Define.
4487         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4488         instead of the integrated flag.
4489         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4490         * gengtype-yacc.y (bitfieldlen): Add empty action.
4491         (struct_fields): Accept unnamed bitfields.
4492         (bitfieldlen): Split from ...
4493         (bitfieldopt): ... here.
4494         * gengtype.c (ifiles): Add tree-alias-type.h and
4495         tree-flow.h.
4496         * genrecog.c (validate_pattern): Do not handle
4497         CONSTANT_P_RTX.
4498         * gimple-low.c: New file.
4499         * gimplify.c: New file.
4500         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4501         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4502         * ifcvt.c (dead_or_predicable): Initialize local variable
4503         'earliest'.
4504         * input.h (expr_wfl_stack): Remove.
4505         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4506         (setup_initial_hard_reg_value_integration): Likewise.
4507         (initialize_for_inline): Likewise.
4508         (note_modified_parmregs): Likewise.
4509         (integrate_parm_decls): Likewise.
4510         (process_reg_param): Likewise.
4511         (save_parm_insns): Likewise.
4512         (copy_insn_list): Likewise.
4513         (copy_insn_notes): Likewise.
4514         (compare_blocks): Likewise.
4515         (find_block): Likewise.
4516         (inlining): Likewise.
4517         (function_cannot_inline_p): Likewise.
4518         (parmdecl_map): Likewise.
4519         (in_nonparam_insns): Likewise.
4520         (save_for_inline): Likewise.
4521         (FIXED_BASE_PLUS): Likewise.
4522         (expand_inline_function): Likewise.
4523         (copy_rtx_and_substitute): Don't look at map->integrating,
4524         map->inline_target, and inlining, since we are never copying
4525         for integrating.
4526         Don't abort on RTX_INTEGRATED_P.
4527         (old_fun): Remove.
4528         (output_inline_function): Remove.
4529         * integrate.h (struct inline_map): Remove fields integrating,
4530         block_map, leaf_reg_map, inline_target, and local_return_label.
4531         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4532         copy_loop_headers, never_reached_warning): Removed.
4533         (any_uncondjump_p): Reject nonlocal goto.
4534         * langhooks-def.h (lhd_types_compatible_p,
4535         lhd_expand_decl, lhd_gimplify_expr): Declare.
4536         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4537         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4538         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4539         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4540         LANG_HOOKS_GIMPLIFY_EXPR,
4541         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4542         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4543         LANG_HOOKS_GIMPLIFY_EXPR,
4544         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4545         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4546         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4547         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4548         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4549         LANG_HOOKS_DECL_UNINIT,
4550         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4551         * langhooks.c: Include tree-simple.h.
4552         (lhd_expand_decl): New.
4553         (lhd_types_compatible_p): New.
4554         (lhd_decl_uninit): Remove.
4555         (lhd_gimplify_expr): New.
4556         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4557         Remove.
4558         (struct lang_hooks_for_functions): Add field
4559         missing_noreturn_ok_p.
4560         (struct lang_hooks): Add field expand_decl,
4561         types_compatible_p, gimplify_expr and
4562         gimple_before_inlining.
4563         Remove fields decl_uninit and rtl_expand
4564         * opts.c (decode_options): Set flag_tree_ccp,
4565         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4566         flag_tree_pre, flag_tree_ter,
4567         flag_tree_live_range_split, flag_tree_sra,
4568         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4569         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4570         OPT_fmudflapth, OPT_fmudflapir,
4571         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4572         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4573         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4574         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4575         OPT_ftree_points_to_ and OPT_ftree_pre.
4576         * output.h (regno_uninitialized, find_basic_blocks,
4577         cleanup_cfg, delete_unreachable_blocks,
4578         check_function_return_warnings): Remove.
4579         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4580         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4581         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4582         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4583         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4584         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4585         Define.
4586         * passes.c (rest_of_decl_compilation):
4587         (rest_of_handle_sibling_calls): Remove.
4588         (rest_of_handle_inlining): Remove.
4589         (rest_of_handle_gcse): Do not run
4590         purge_builtin_constant_p.
4591         (rest_of_compilation): Update.
4592         Do not call copy_loop_headers.
4593         Do rtl-based profiling only when
4594         !flag_tree_based_profiling.  Register rtl-based profiling
4595         hooks.
4596         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4597         (predicted_by_p): Rename to ...
4598         (rtl_predicted_by_p): .. this one; make global
4599         (tree_predicted_by_p): New.
4600         (dump_prediction): Add FILE argument.
4601         (predict_edge): Rename to ...
4602         (rtl_predict_edge): .. this one.
4603         (tree_predict_edge): New.
4604         (combine_predictions_for_insn): Update calls of predict_edge.
4605         (predict_loops): Break out from ...
4606         (estimate_probability): ... here; update comments; move updating
4607         of unknown probabilities from ...
4608         (estimate_bb_frequencies): ... here.
4609         (combine_predictions_for_bb): New.
4610         (tree_predict_by_opcode): New.
4611         (tree_estimate_probability): New.
4612         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4613         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4614         * predict.h: Add include guard.
4615         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4616         * pretty-print.c (pp_write_text_to_stream): Make extern.
4617         * pretty-print.h (pp_write_text_to_stream): Declare.
4618         * print-rtl.c (print_rtx): Don't print the integrated flag.
4619         Print the return_val flag.
4620         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4621         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4622         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4623         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4624         * profile.c: Include cfghooks.h, tree-flow.h.
4625         (profile_hooks): New.
4626         (profile_dump_file): New.
4627         (instrument_edges): Use hooks instead of RTL-specific code.
4628         (instrument_values): Ditto.
4629         (get_exec_counts): Ditto.
4630         (compute_branch_probabilities): Ditto.
4631         (compute_value_histograms): Ditto.
4632         (branch_prob): Ditto.
4633         (find_spanning_tree): Ditto.
4634         (end_branch_prob): Ditto.
4635         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4636         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4637         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4638         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4639         (tree_register_profile_hooks): New.
4640         (rtl_register_profile_hooks): New.
4641         * ra-rewrite.c (rewrite_program): Clear variable info.
4642         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4643         * regs.h: Add include guards.
4644         * reload.c (decompose): Clear val using memset.
4645         * rtl.def (CONSTANT_P_RTX): Remove.
4646         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4647         (copy_loop_headers): Remove.
4648         (struct rtx_def): Replace the integrated flag with the
4649         return_val flag.
4650         (maybe_set_first_label_num): Declare.
4651         (init_branch_prob): Move declaration to value-prof.h.
4652         (end_branch_prob): Ditto.
4653         (branch_prob): Ditto.
4654         (never_reached_warning): Don't declare it.
4655         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4656         (hoist_insn_to_edge): Update to match field insns in
4657         struct edge_def.
4658         * sbitmap.c (sbitmap_realloc): New.
4659         * sbitmap.h (sbitmap_realloc): Declare.
4660         * sibcall.c: Remove file.
4661         * simplify-rtx.c (simplify_rtx): Do not handle
4662         CONSTANT_P_RTX.
4663         * stmt.c (parse_output_constraint): Don't warn for read-write
4664         memory operand.
4665         (tail_recursion_args): Use types_compatible_p langhook.
4666         (force_label_rtx): Don't look at inline_function_decl.
4667         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4668         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4669         (declare_nonlocal_label): Remove.
4670         (expand_goto): Don't handle nonlocal gotos.
4671         (expand_nl_handler_label): Remove.
4672         (expand_nl_goto_receivers): Remove.
4673         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4674         update_nonlocal_goto_save_area.
4675         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4676         (warn_if_unused_value): Likewise.
4677         (expand_start_loop, expand_loop_continue_here,
4678         expand_end_loop): Don't create loop notes.
4679         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4680         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4681         (expand_end_case_type): Don't do warn_switch handling.
4682         (pushcase, pushcase_range) Update add_case_node calls.
4683         (add_case_node): Add dont_expand_label argument.
4684         (same_case_target_p): Don't search rtl.
4685         (expand_start_bindings_and_block, expand_end_bindings):
4686         Don't emit block notes when dont_emit_block_notes.
4687         (using_eh_for_cleanups_p): Export.
4688         (expand_return): Allow any typed rhs.
4689         (expand_stack_alloc): New.
4690         (expand_stack_save, expand_stack_restore): New.
4691         (containing_blocks_have_cleanups_or_stack_level): New
4692         function.
4693         (asm_op_is_mem_input): New fn.
4694         (expand_asm_expr): New fn.
4695         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4696         nodes.
4697         * stor-layout.c (layout_type): Just return if type is
4698         error_mark_node.
4699         (update_alignment_for_field): Export.
4700         (variable_size): We don't care about global_bindings_p if
4701         the frontend doesn't want a list of the expressions.
4702         * system.h: Poison INTEGRATE_THRESHOLD.
4703         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4704         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4705         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4706         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4707         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4708         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4709         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4710         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4711         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4712         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4713         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4714         TV_CONTROL_DEPENDENCES): Define.
4715         * toplev.c: Include tree-alias-common.h
4716         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4717         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4718         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4719         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4720         flag_tree_combine_temps, flag_tree_ter,
4721         flag_tree_live_range_split, flag_tree_dom,
4722         flag_tree_copyrename, flag_tree_dse): Declare.
4723         (f_options): Add tree-based-profiling, tree-gvn,
4724         tree-pre, tree-ccp, tree-dce,
4725         tree-dominator-opts, tree-copyrename, tree-dse,
4726         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4727         (wrapup_global_declarations): Don't output nested inlined functions.
4728         (general_init): Call init_tree_optimization_passes.
4729         (process_options): Sorry for -ftree-based-profiling plus
4730         -ftest-coverage or -fprofile-values.
4731         * toplev.h (init_tree_optimization_passes,
4732         flag_tree_based_profiling): Declare.
4733         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4734         * tree-alias-ander.c: New file.
4735         * tree-alias-ander.h: New file.
4736         * tree-alias-common.c: New file.
4737         * tree-alias-common.h: New file.
4738         * tree-alias-type.c: New file.
4739         * tree-alias-type.h: New file.
4740         * tree-browser.c: New file.
4741         * tree-browser.def: New file.
4742         * tree-cfg.c: New file.
4743         * tree-complex.c: New file.
4744         * tree-dfa.c: New file.
4745         * tree-dump.c (dump_enable_all): New.
4746         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4747         (dump_node): Remove const from field suffix and swtch.
4748         (dump_files): Add null entry, .generic, .nested, .vcg,
4749         .xml and a match-all entry.
4750         (extra_dump_files, extra_dump_files_in_use,
4751         extra_dump_files_alloced): Declare
4752         (dump_option_value_info): Add raw, details, stats,
4753         blocks, vops, lineno, uid and all.
4754         (dump_register): New.
4755         (get_dump_file_info): New.
4756         (dump_begin): Call it.
4757         Do nothing for TDI_none.
4758         (dump_begin): Include phase number in dump filename.
4759         (dump_enable_all): New.
4760         (dump_switch_p_1): Split out from dump_switch_p.
4761         (dump_switch_p): Handle extra_dump_files.
4762         Start our scan at TDI_none + 1.
4763         If -fdump-tree-all was given, call dump_enable_all.
4764         * tree-dump.h: Include splay-tree.h.
4765         (dump_function, dump_function_to_file, dump_register):
4766         Declare.
4767         * tree-eh.c: New file.
4768         * tree-flow-inline.h: New file.
4769         * tree-flow.h: New file.
4770         * tree-inline.c: Re-write to handle inlining on GIMPLE.
4771         * tree-inline.h (walk_tree,
4772         walk_tree_without_duplicates): Move to tree.h.
4773         (estimate_num_insns): Declare.
4774         * tree-into-ssa.c: New file.
4775         * tree-iterator.c: New file.
4776         * tree-iterator.h: New file.
4777         * tree-mudflap.c: New file.
4778         * tree-mudflap.h: New file.
4779         * tree-nested.c: New file.
4780         * tree-nomudflap.c: New file.
4781         * tree-nrv.c: New file.
4782         * tree-optimize.c (dump_flags, vars_to_rename,
4783         in_gimple_form, all_passes, pass_gimple,
4784         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
4785         (execute_gimple, execute_rebuild_bind,
4786         gate_all_optimizations, execute_del_cfg,
4787         register_one_dump_file, register_dump_files, dup_pass_1,
4788         init_tree_optimization_passes, execute_todo,
4789         execute_one_pass, execute_pass_list): New.
4790         (clear_decl_rtl): Remove.
4791         (tree_rest_of_compilation): Update to use tree
4792         optimizers.
4793         * tree-outof-ssa.c: New file.
4794         * tree-pass.h: New file.
4795         * tree-phinodes.c: New file.
4796         * tree-pretty-print.c: New file.
4797         * tree-profile.c: New file.
4798         * tree-simple.c: New file.
4799         * tree-simple.h: New file.
4800         * tree-sra.c: New file.
4801         * tree-ssa-alias.c: New file.
4802         * tree-ssa-ccp.c: New file.
4803         * tree-ssa-copy.c: New file.
4804         * tree-ssa-copyrename.c: New file.
4805         * tree-ssa-dce.c: New file.
4806         * tree-ssa-dom.c: New file.
4807         * tree-ssa-dse.c: New file.
4808         * tree-ssa-forwprop.c: New file.
4809         * tree-ssa-live.c: New file.
4810         * tree-ssa-live.h: New file.
4811         * tree-ssa-loop.c: New file.
4812         * tree-ssa-operands.c: New file.
4813         * tree-ssa-operands.h: New file.
4814         * tree-ssa-phiopt.c: New file.
4815         * tree-ssa-pre.c: New file.
4816         * tree-ssa.c: New file.
4817         * tree-ssanames.c: New file.
4818         * tree-tailcall.c: New file.
4819         * tree.c: Include tree-iterator.h, basic-block.h and
4820         tree-flow.h.
4821         (tree_node_kind): Add phi_nodes and ssa names.
4822         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
4823         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
4824         (make_node_stat): Handle PHI_NODE and SSA_NAME.
4825         <'c'> Set TREE_INVARIANT.
4826         (copy_node_stat): Abort if trying to copy a
4827         STATEMENT_LIST.
4828         Clear TREE_VISITED.
4829         Clear annotation field.
4830         (build_constructor): Copy TREE_INVARIANT from vals.
4831         Don't clear TREE_CONSTANT.
4832         (expr_first, expr_last, expr_length): Remove.
4833         (staticp): Pass unknown component references to the language.
4834         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
4835         (skip_simple_arithmetic): Likewise.
4836         (stabilize_reference_1): Likewise.
4837         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
4838         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
4839         STATEMENT_LIST.
4840         (lhd_unsave_expr_now): Remove.
4841         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
4842         (recompute_tree_invarant_for_addr_expr): New.
4843         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
4844         Call recompute_tree_invarant_for_addr_expr.
4845         Set TREE_INVARIANT accordingly.
4846         (build2_stat): Don't handle CALL_EXPR.
4847         (build3_stat): Don't call build2_stat for CALL_EXPRs.
4848         (build_expr_wfl): Remove.
4849         (annotate_with_file_line, annotate_with_locus): New.
4850         (simple_cst_equal): Call simple_cst_list_equal to compare
4851         CONSTRUCTOR_ELTS pointers.
4852         (iterative_hash_expr): Don't hash types associated
4853         with conversions.  Instead hash on the signedness of the
4854         toplevel object and the operand of the conversion.
4855         (dump_tree_statistics): Call ssanames_print_statistics
4856         and phinodes_print_statistics.
4857         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4858         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4859         needs_to_live_in_memory): New.
4860         (initializer_zerop): Handle VECTOR_CST.  Don't check
4861         AGGREGATE_TYPE_P for CONSTRUCTOR.
4862         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4863         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4864         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4865         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4866         (CALL_EXPR): Add another operand.
4867         (EXPR_WITH_FILE_LOCATION): Remove.
4868         (SWITCH_EXPR): Add another operand.
4869         * tree.h: Update various comments.
4870         (union tree_ann_d): Forward declare.
4871         (struct tree_common): Add fields nowarning_flag,
4872         invariant_flag and visited.
4873         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4874         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4875         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4876         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4877         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4878         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4879         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4880         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4881         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4882         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4883         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4884         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4885         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4886         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4887         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4888         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4889         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4890         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4891         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
4892         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
4893         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
4894         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
4895         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
4896         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
4897         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
4898         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
4899         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
4900         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
4901         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
4902         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
4903         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
4904         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
4905         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
4906         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4907         TDF_UID,): Define.
4908         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4909         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4910         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4911         EXPR_WFL_SET_LINECOL): Remove.
4912         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4913         make_phi_node, init_phinodes, fini_phinodes,
4914         release_phi_node, phinodes_print_statistics,
4915         init_ssanames, fini_ssanames, make_ssa_name,
4916         release_ssa_name, ssanames_print_statistics,
4917         annotate_with_file_line, build_empty_stmt,
4918         annotate_with_locus, expr_only, categorize_ctor_elements,
4919         count_type_elements, add_var_to_bind_expr, is_essa_node,
4920         expand_stack_alloc, expand_stack_save,
4921         expand_stack_restore, add_case_node, operand_equal_p,
4922         nondestructive_fold_unary_to_constant,
4923         nondestructive_fold_binary_to_constant,
4924         fold_read_from_constant_string, int_const_binop,
4925         strip_float_extensions, simplify_builtin, c_strlen,
4926         recompute_tree_invarant_for_addr_expr,
4927         needs_to_live_in_memory, make_vector,
4928         setjmp_vars_warning, update_alignment_for_field,
4929         expand_asm_expr, asm_op_is_mem_input,
4930         containing_blocks_have_cleanups_or_stack_level,
4931         create_artificial_label, gimplify_function_tree,
4932         get_name, unshare_expr, walk_tree,
4933         walk_tree_without_duplicates, in_gimple_form): Declare.
4934         (struct tree_exp): Add fields locus and block.
4935         (struct tree_ssa_name, struct edge_def, struct
4936         tree_phi_node, struct tree_eref_common, struct
4937         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4938         union alias_var_def, struct tree_statement_list_node,
4939         struct tree_statement_list, enum operand_equal_flag): Declare.
4940         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4941         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4942         TS_STATEMENT_LIST.
4943         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4944         euse and stmt_list.
4945         (function_cannot_inline_p, uninitialized_vars_warning,
4946         save_for_inline, output_inline_function, all_cases_count,
4947         check_for_full_enumeration_handling,
4948         declare_nonlocal_label): Remove.
4949         (enum tree_dump_index): Add TDI_none, TDI_tu,
4950         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4951         * unroll.c (unroll_loop): Don't clear map->inline_target.
4952         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4953         function.
4954         * value-prof.c (value_prof_hooks): New.
4955         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4956         Move rtl-specific bits in from branch_prob.
4957         (value_profile_transformations): Rename to
4958         rtl_value_profile_transformations.
4959         (struct value_prof_hooks): New.
4960         (rtl_value_prof_hooks): New.
4961         (rtl_register_value_prof_hooks): New.
4962         (tree_find_values_to_profile): New stub.
4963         (tree_value_profile_transformations): New stub.
4964         (tree_value_prof_hooks): New stub.
4965         (tree_register_value_prof_hooks): New stub.
4966         (find_values_to_profile): New.
4967         (value_profile_transformations): New.
4968         * value-prof.h: Add multiple inclusion guard.
4969         (struct histogram_value): Change rtx fields to void *.
4970         (rtl_register_value_prof_hooks): New declaration.
4971         (tree_register_value_prof_hooks): New declaration.
4972         (find_values_to_profile): New declaration.
4973         (free_profiled_values): New declaration.
4974         (value_profile_transformations): New declaration.
4975         (struct profile_hooks): New declaration.
4976         (init_branch_prob): Declaration moved from rtl.h.
4977         (branch_prob): Declaration moved from rtl.h.
4978         (end_branch_prob): Declaration mooved from rtl.h.
4979         (tree_register_profile_hooks): New declaration.
4980         (rtl_register_profile_hooks): New declaration.
4981         (tree_profile_hooks): New declaration.
4982         (rtl_profile_hooks): New declaration.
4983         * varasm.c: Include tree-mudflap.h.
4984         (TRAMPOLINE_ALIGNMENT): Remove.
4985         (make_decl_rtl): Call mudflap_enqueue_decl.
4986         (assemble_static_space):
4987         (assemble_trampoline_template): Set and return
4988         TRAMPOLINE_ALIGNMENT.
4989         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4990         Add entry for 'tree *'.
4991         Add entry for struct edge_def *.
4992         (varray_copy): New.
4993         * varray.h (enum varray_data_enum): Add
4994         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4995         VARRAY_DATA_TREE_PTR.
4996         (union varray_data_tag): Corresponding changes.
4997         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4998         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4999         VARRAY_EDGE, VARRAY_TREE_PTR,
5000         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
5001         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
5002         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
5003
5004         * config/*/*: Various updates for changed macros, tree
5005         codes, etc.  Check ChangeLog.tree-ssa.
5006
5007         * doc/cfg.texi: New file.
5008         * doc/tree-ssa.texi: New file.
5009         * doc/c-tree.texi: Document new codes.
5010         * doc/gccint.texi: Include new files.
5011         * doc/install.texi: Document new features.
5012         * doc/invoke.texi: Document new switches.
5013         * doc/passes.texi: Document new passes.
5014         * doc/rtl.texi: Update changed RTL codes.
5015         * doc/sourcebuild.texi: Update build instructions.
5016         * doc/standards.texi: Document Fortran changes.
5017         * doc/tm.texi: Update.
5018
5019 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
5020
5021         Replace several arrays with a struct of arrays.
5022         * combine.c (struct reg_stat): New.
5023         (init_reg_last_arrays): Renamed to...
5024         (init_reg_last): ...this.  Callers adjusted.
5025         (reg_stat): New.
5026         (combine_instructions): Allocate it and use it.
5027         (reg_last_death, reg_last_set, reg_last_set_value,
5028         reg_last_set_label, reg_last_set_table_tick,
5029         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
5030         reg_last_set_mode, reg_last_set_nonzero_bits,
5031         reg_last_set_sign_bit_copies): Replace throughout
5032         with items of reg_stat.
5033
5034 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5035
5036         PR optimization/15100
5037         * combine.c (distribute_notes): Don't create a dangling
5038         REG_LIBCALL/REG_RETVAL note.
5039
5040 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5041
5042         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
5043
5044         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
5045         negv2si2.
5046
5047 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5048
5049         * doc/md.texi (Standard Names): Fix typo in vec_init description.
5050
5051 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
5052
5053         * doc/gty.texi (GTY Options): Clarify example.
5054
5055 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
5056
5057         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
5058         Add const qualifier to altivec vector type if one is needed.
5059
5060 2004-05-11  Paul Brook  <paul@codesourcery.com>
5061
5062         * flags.h (flag_short_enums): Update comment.
5063         * opts.c (decode_options): Set flag_short_enums to 2.
5064         * toplev.c (flag_short_enums): Update comment.
5065         (process_options): Call default_short_enums target hook.
5066
5067 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
5068
5069         PR target/14063
5070         * config/rs6000/altivec.md (altivec_dssall):
5071         Change to unspec_volatile.
5072         (altivec_dss): Likewise.
5073
5074 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
5075
5076         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
5077         vnor.
5078         ("one_cmplv8hi2"): Same.
5079         ("one_cmplv4si2"): Same.
5080
5081 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
5082
5083         PR target/15130
5084         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
5085         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
5086         into account.  Compute the correct number of general registers
5087         for the return value.  Generate a special push/pop sequence when
5088         failing to get a temporary register for non SHmedia epilogue.
5089         (sh_expand_epilogue): Add an argument to show whether it's for
5090         sibcall or not.  Set the 3rd argument of output_stack_adjust to
5091         -1 if needed.
5092         (sh_need_epilogue): Call sh_expand_epilogue with 0.
5093         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
5094         with 1.
5095         (epilogue): Call sh_expand_epilogue with 0.
5096
5097 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
5098
5099         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
5100         goto a cleanup label.  After the cleanup, free the allocated memory.
5101
5102 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
5103
5104         * config/rs6000/altivec.h (vec_sld): Add overloads for
5105         argument/return types of 'vector bool int', 'vector bool short'
5106         and 'vector bool char'.
5107
5108 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
5109
5110         * c-decl.c (store_parm_decls_newstyle): Correct test for a
5111         nested function.
5112
5113 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
5114
5115         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
5116         treating missing ones as "".
5117         * config/mips/mips.md: Remove constraints from match_operands and
5118         match_scratches if they appear in define_expands (except reload*),
5119         define_peephole2s, define_splits or attribute specifications.
5120         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
5121         constraint strings.
5122
5123 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5124
5125         * config/rs6000/rs6000.c (function_arg_boundary): Always align
5126         AltiVec vectors.
5127         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
5128         vectors by refererence.  Align the same for TARGET_64BIT to a 16
5129         byte boundary.  Remove useless code.  Add function comment.
5130         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
5131         call to where it belongs.
5132         (function_arg_partial_nregs): Return true for all TARGET_32BIT
5133         -mabi=no-altivec AltiVec vectors.  Fix debug output.
5134         (rs6000_va_arg): Adjust for AltiVec change.
5135
5136 2004-05-10  Paul Brook  <paul@codesourcery.com>
5137
5138         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5139         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5140         (TARGET_DOUBLEWORD_ALIGN): Use it.
5141         (WCHAR_TYPE): Define.
5142         (WCHAR_SIZE_TYPE): Define.
5143         (SIZE_TYPE): Define.
5144
5145 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5146
5147         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
5148         when size is 8 bytes.
5149         (function_arg_advance): Account for stack space used by AltiVec
5150         args when -mabi=altivec.  Simplify alignment calculations.  For
5151         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
5152         (function_arg): Similarly.
5153         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
5154         not AltiVec ABI.
5155         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
5156         Correct alignment, and align before testing reg count.  Remove
5157         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
5158         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
5159         TARGET_FPRS here..
5160         (rs6000_function_value): .. not here before call.
5161
5162 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5163
5164         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
5165
5166 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
5167
5168         PR 15007
5169         * c-decl.c (current_file_decl): Rename to all_translation_units,
5170         adjust comment.
5171         (pop_scope): If popping file_scope, construct a
5172         TRANSLATION_UNIT_DECL and make it the context of all the
5173         symbols in the scope.
5174         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
5175         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
5176         anything to current_file_decl.
5177         (pushdecl_top_level): Likewise.
5178         (store_parm_decls_newstyle): Adjust check for nested function.
5179         (c_write_global_declarations): Update for renamed variable.
5180
5181 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5182
5183         * config/rs6000/rs6000-protos.h
5184         (rs6000_conditional_register_usage): Protoize.
5185
5186         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
5187
5188         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
5189         function.
5190
5191 2004-05-08  Roger Sayle  <roger@eyesopen.com>
5192
5193         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
5194         where op is a comparison operator and C1 and C2 are integer constants
5195         into a range check.
5196         (fold): Call fold_div_compare.
5197
5198 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5199
5200         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
5201         problems with earlier versions of the GNU compiler.
5202
5203 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
5204
5205         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5206         Declare.
5207
5208         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
5209         (rs6000_hard_regno_mode_ok): New.
5210         (rs6000_init_hard_regno_mode_ok): New.
5211         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
5212
5213         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
5214         result.
5215
5216 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
5217
5218         * config/rs6000/altivec.h (vector, pixel, bool): Do not
5219         define as macros #ifdef __APPLE_ALTIVEC__.
5220
5221 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
5222
5223         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
5224         Generate appropriate parallels for vector arguments
5225         passed to vararg functions. (function_arg): make the call
5226         to rs6000_mixed_function_arg for vector args as needed.
5227
5228 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5229
5230         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
5231         EABI_FLOAT_VARARGS_P.
5232
5233 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5234
5235         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
5236         * config/mips/mips.c (override_options): Disable branch likely
5237         instructions if TUNE_MIPS5500.
5238
5239 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5240
5241         * config/mips/mips.c (override_options): Allow the hi and lo registers
5242         to store any integral mode, not just MODE_INTs.
5243
5244 2004-05-07  Paul Brook  <paul@codesourcery.com>
5245
5246         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5247         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5248         (TARGET_DOUBLEWORD_ALIGN): Use it.
5249         (WCHAR_TYPE): Define.
5250         (WCHAR_SIZE_TYPE): Define.
5251         (SIZE_TYPE): Define.
5252
5253 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5254
5255         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
5256         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
5257
5258 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
5259
5260         * loop-doloop.c (doloop_valid_p): Make sure that body
5261         gets freed.
5262
5263 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
5264
5265         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
5266         declaration.
5267         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
5268         (sparc_skip_caller_unimp): New global variable.
5269         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
5270         Use it instead of SKIP_CALLERS_UNIMP_P.
5271         * config/sparc/sparc.md (call expander): Add sanity check.
5272         (call_address_struct_value_sp32): Re-sync with expander.
5273         (call_symbolic_struct_value_sp32): Likewise.
5274         (return peepholes): Use 'sparc_skip_caller_unimp' instead
5275         of custom predicate.
5276
5277 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5278
5279         PR c++/14962
5280         * c-pragma.c (handle_pragma_redefine_extname): Only change
5281         the assembler name of FUNCTION_DECLs and VAR_DECLs.
5282
5283 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5284
5285         * optabs.h (enum optab_index): Add new OTI_log1p.
5286         (log1p_optab): Define corresponding macro.
5287         * optabs.c (init_optabs): Initialize log1p_optab.
5288         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
5289         patterns.
5290         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
5291         using log1p_optab.
5292         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
5293         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5294
5295         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
5296
5297         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
5298         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
5299         Prototype here.
5300         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
5301         x87's fyl2xp1 instruction.
5302         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
5303         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
5304         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
5305         log1p  and log1pl built-ins as inline x87 intrinsics.
5306
5307 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
5308
5309         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
5310         * config/arm/freebsd.h: Likewise.
5311         * config/ia64/freebsd.h: Likewise.
5312         * config/sparc/freebsd.h: Likewise.
5313
5314 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
5315
5316         PR optimization/15296
5317         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
5318         getting last consecutive label at a branch.
5319         (relax_delay_slots): Similar, near top of loop.
5320
5321 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5322
5323         PR target/15202
5324         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
5325         register to general register.
5326
5327 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
5328
5329         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
5330         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
5331         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
5332         (STACK_BOUNDARY): Delete.
5333
5334 2004-05-06  Stuart Hastings  <stuart@apple.com>
5335
5336         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
5337         mistakenly clobbered by 1.423.
5338
5339 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5340
5341         * doc/invoke.texi: Document -mvr4130-align.
5342         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
5343         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
5344         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
5345         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
5346         * config/mips/mips.md: Include sched-int.h.
5347         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
5348         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
5349         (override_options): Enable -mvr4130-align at -O3 and above.
5350         (mips_sim_insn): New variable.
5351         (mips_sim): New structure.
5352         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
5353         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
5354         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
5355         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
5356         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
5357         (mips_reorg): Call vr4130_align_insns.
5358         (vr4130_last_insn): New variable.
5359         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
5360         (vr4130_swap_insns_p, vr4130_reorder): New functions.
5361         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
5362         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
5363         (mips_use_dfa_pipeline_interface): Return true for the same.
5364         * config/mips/4130.md: New file.
5365         * config/mips/mips.md: Include it.  Add a peephole2 to convert
5366         "mult;mflo" into "mtlo;macc".
5367         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
5368         target of maccs.
5369         (*msac_using_macc): New pattern.
5370
5371 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5372
5373         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5374         (ir_vr55_hilo): Split into...
5375         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5376         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5377         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
5378         Add various multiplication bypasses.
5379         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5380         multiplication.
5381
5382 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
5383
5384         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5385         attribute to "XF".
5386
5387 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
5388
5389         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
5390         (fmod_optab, drem_optab): Define corresponding macros.
5391         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5392         * genopinit.c (optabs): Implement fmod_optab and drem_optab
5393         using fmod?f3 and drem?f3 patterns.
5394         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5395         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5396         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5397         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5398         flag_unsafe_math_optimizations is set.
5399
5400         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5401         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5402
5403         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5404         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5405         Prototype here.
5406         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5407         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5408         fprem and fprem1 instructions.
5409         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5410         Rename insn definition to x86_fnstsw_1.
5411         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5412         x87 instructions.
5413         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5414         and fmodl built-ins as inline x87 intrinsics.
5415         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5416         and dreml built-ins as inline x87 intrinsics.
5417
5418 2004-05-05  Roger Sayle  <roger@eyesopen.com>
5419
5420         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5421
5422 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
5423
5424         PR driver/9822
5425         * doc/invoke.texi (Spec Files): Remove documentation of %c.
5426
5427 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5428
5429         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5430         representation.
5431
5432 2004-05-06  Paul Brook  <paul@codesourcery.com>
5433
5434         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5435         (arm_coproc_mem_operand): ... To this.
5436         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5437         (arm_legitimate_index_p): Ditto.
5438         (vfp_mem_operand): Rename ...
5439         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5440         (vfp_secondary_reload_class): Use it.
5441         (output_move_double): Use doubleword load/store instructions.
5442         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5443         * config/arm/arm.h (TARGET_LDRD): Define.
5444         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5445         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5446         New splitter for invalid doubleword loads.
5447         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5448         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5449         * doc/md.texi: Document Uy constraint.
5450
5451 2004-05-05  Jan Hubicka  <jh@suse.cz>
5452
5453         PR opt/14980
5454         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5455         inline clones.
5456
5457 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5458
5459         PR target/15290
5460         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5461         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5462
5463 2004-05-05  Mike Stump  <mrs@apple.com>
5464
5465         * config/darwin-c.c (add_framework): Copy the directory name as it
5466         can be freed later.  Also, ensure we always allocate enough room
5467         for the cached framework information.
5468         (find_subframework_header): Keep track of the directory where the
5469         subframework header was found.
5470         (framework_construct_pathname): Speed up by not trying to re-add a
5471         framework.
5472         * cppfiles.c (search_path_exhausted): Arrange for the missing
5473         header callback to be able to set the directory where the header
5474         was found.
5475         (cpp_get_dir): Add.
5476         * cpplib.h (missing_header_cb): Add a parameter.
5477         (cpp_get_dir): Add.
5478
5479 2004-05-03  Mike Stump  <mrs@apple.com>
5480
5481         * doc/invoke.texi (Directory Options): Document -iquote.
5482         * doc/cpp.texi: Likewise.
5483         * doc/cppopts.texi: Likewise.
5484         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5485         (c_common_handle_option): Likewise.
5486         * c.opt (iquote): Add.
5487         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5488         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5489
5490         * c-opts.c (case OPT_I): Deprecate -I- support.
5491         * doc/invoke.texi: Likewise.
5492         * doc/cpp.texi: Likewise.
5493         * doc/cppopts.texi: Likewise.
5494
5495 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5496
5497         * basic-block.h (free_basic_block_vars): Update prototype.
5498         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5499         argument.
5500         (life_analysis): Update call.
5501         * ifcvt.c (if_convert): Likewise.
5502         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5503         * passes.c (rest_of_handle_final): Likewise.
5504         (rest_of_compilation): Likewise.
5505         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5506
5507         * emit-rtl.c (next_real_insn): Use INSN_P.
5508         (prev_real_insn): Likewise.
5509
5510 2004-05-05  Eric Christopher  <echristo@redhat.com>
5511
5512         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5513         representation.
5514
5515 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5516
5517         * config/rs6000/rs6000.c (build_opaque_vector_type):
5518         New function.
5519         (rs6000_init_builtins): Use it.
5520
5521 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5522
5523         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5524         (func_table): Change type from char ** to vms_func_ref.
5525         (write_rtnbeg):  Update to reflect func_table change.  Use
5526         fde->funcdef_number instead of rtnnum in output.
5527         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5528
5529 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5530             Richard Henderson  <rth@redhat.com>
5531
5532         PR target/14899
5533
5534         * c-common.c (vector_types_convertible_p): New function.
5535         * c-typeck.c (comptypes): Recurse on vector types.
5536         (convert_for_assignment): Use vector_types_convertible_p.
5537         (digest_init): Use vector_types_convertible_p to check
5538         validness of constant vector initializers; otherwise treat
5539         them as scalars.
5540         * tree.c (make_or_reuse_type): New.
5541         (build_common_tree_nodes): Use it.
5542         * cp/call.c (standard_conversion): Likewise.
5543         * cp/typeck.c (comptypes): Recurse on vector types.
5544         (convert_for_assignment): Use vector_types_convertible_p.
5545
5546 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5547
5548         * config/mips/mips.c (override_options): Default to no
5549         generation of branch-likely operations when tuning for
5550         CPUs where they tend to have a negative performance impact
5551         (e.g., SB-1).
5552
5553 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5554
5555         * expr.c (store_constructor_field): Don't call store_constructor
5556         if bitsize is not a multiple of a byte.
5557
5558 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5559
5560         * reload1.c (inherit_piecemeal_p): New function.
5561         (emit_reload_insns): When reloading a group of hard registers, use
5562         inherit_piecemeal_p to decide whether the values of individual hard
5563         registers can be inherited.
5564
5565 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5566
5567         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5568         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5569         * config/t-linux (LIB2ADDEHDEP): Likewise.
5570
5571 2004-05-04  Paul Brook  <paul@codesourcery.com>
5572
5573         * config/arm/crti.asm: Push an even number of registers.
5574         * config/arm/crtn.asm: And restore them.  Load via sp.
5575
5576 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5577
5578         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5579         Collect overhead information.
5580         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5581         parameter and pass it through.
5582         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5583         MEM_STAT_DECL parameter and pass it through.
5584         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5585         MEM_STAT_DECL parameter and pass it through.
5586
5587 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5588
5589         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5590
5591         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5592
5593         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5594         rs6000_hard_regno_nregs.
5595
5596 2004-05-03  Eric Christopher  <echristo@redhat.com>
5597
5598         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5599         prologue insn instead of setting up call.
5600         (s390_emit_epilogue): Ditto.
5601         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5602         (define_constants): Add numbers for above patterns.
5603
5604 2004-05-03  Eric Christopher  <echristo@redhat.com>
5605
5606         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5607         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5608         * config/s390/s390-protos.h: Prototype.
5609
5610 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5611
5612         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5613         assignment.
5614
5615 2004-05-03  Eric Christopher  <echristo@redhat.com>
5616
5617         * config/mips/mips.md: Fix branch length attribute definition.
5618
5619 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5620
5621         * config.gcc: Remove --enable-altivec support.
5622
5623         * config/rs6000/altivec-defs.h: Remove.
5624
5625 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5626
5627         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5628         * fixinc/fixincl.x: Regenerate.
5629
5630 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5631
5632         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5633         definition.
5634         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5635         float_truncate insn.
5636         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5637         (logb?f2): Reimplement expanders with float_truncate insn.
5638
5639 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5640
5641         PR 14718
5642         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5643         force_type_die for CONST_DECL.
5644
5645 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5646             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5647
5648         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5649         tm-dwarf2.h to tm_file.
5650         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5651         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5652         (ASM_DEBUG_SPEC): Delete.
5653
5654 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5655
5656         * optabs.h (enum optab_index): Add new OTI_expm1.
5657         (expm1_optab): Define corresponding macro.
5658         * optabs.c (init_optabs): Initialize expm1_optab.
5659         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5660         patterns.
5661         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5662         using expm1_optab.
5663         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5664         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5665
5666         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5667         to implement expm1, expm1f and expm1l built-ins as inline x87
5668         intrinsics.
5669
5670 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5671
5672         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5673         * config/frv/frv.md (*return_true, *return_false): New patterns.
5674
5675 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5676
5677         * rtl.h (PHI_NODE_P): Remove.
5678
5679 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5680
5681         PR middle-end/14988
5682         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5683         when passed -2 as 'align'.
5684         (put_var_into_stack): Use 'bool' as the type for the three local
5685         predicates.  Adjust calls to put_reg_into_stack.
5686         When passed a CONCAT, instruct put_reg_into_stack to use
5687         a consecutive stack slot for the second part.
5688         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5689         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5690         parameters.  Retrieve the register mode from 'reg'.
5691         When consecutive_p is true, instruct assign_stack_local_1 to use
5692         BITS_PER_UNIT alignment.
5693         (put_addressof_into_stack): Use 'bool' as the type for the two
5694         local predicates. Adjust call to put_reg_into_stack.
5695
5696 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5697
5698         * fold-const.c (fold_convert_const, fold): Add missing
5699         FIX_ROUND_EXPR case.
5700
5701 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5702
5703         * configure.ac (FLEX, BISON): Only use tools from the build tree
5704         if build equals host.
5705         * configure: Rebuilt.
5706
5707         * config/frv/frv-protos.h (frv_expand_epilogue,
5708         frv_expand_fdpic_call): Add bool argument.
5709         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5710         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5711         (frv_expand_epilogue): Use new argument to decide whether to emit
5712         return instruction or copy the return address to LR.
5713         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5714         sibcalls.
5715         (sibcall_operand): New.
5716         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5717         PLUS nor LABEL_REF.  Add sibcall_operand.
5718         * config/frv/frv.md (call, call_value): Pass false to
5719         frv_expand_fdpic_call.
5720         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5721         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5722         sibcall_value_internal, sibcall_value_fdpicdi): New.
5723         (return_unsigned_true, return_unsigned_false): New.
5724         (epilogue): Adjust call to frv_expand_epilogue.
5725         (sibcall_epilogue): New.
5726
5727         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5728         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5729         before redefining them.
5730
5731 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5732
5733         * builtins.c (fold_fixed_mathfn): New function.
5734         (fold_builtin_lround, fold_builtin): Use it.
5735
5736 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5737
5738         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5739         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5740
5741 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5742
5743         * config/cris/cris.h: Revert my "fix comment typos" patch.
5744
5745 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5746
5747         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5748
5749 2004-05-01  Falk Hueffner  <falk@debian.org>
5750
5751         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5752         builtin_insll): Disallow 0 as first input operand.
5753
5754 2004-05-01  Falk Hueffner  <falk@debian.org>
5755
5756         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5757
5758 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
5759
5760         PR middle-end/15054
5761         * expr.c (expand_expr_real): Do not call preserve_temp_slots
5762         on a TARGET_EXPR temp.
5763         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5764         TARGET_EXPR temp slots.
5765
5766 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
5767
5768         * simplify-rtx.c (simplify_ternary_operation): When
5769         converting an IF_THEN_ELSE to a relational op, return
5770         correct mode.
5771
5772 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5773
5774         * builtins.c (fold_builtin_round): Fix comment typo.
5775         (fold_builtin_lround): New function.
5776         (fold_builtin): Use it.
5777
5778 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
5779
5780         PR target/11608
5781         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
5782         more like the one in config/dbxelf.h.
5783
5784 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
5785
5786         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
5787         and adjust definition accordingly.
5788         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
5789         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
5790         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
5791         VECTOR_TYPE.
5792
5793 2004-04-30  Jason Merrill  <jason@redhat.com>
5794
5795         PR c++/14587
5796         * config/i386/winnt.c (associated_type): Look for attributes on
5797         the TYPE_MAIN_VARIANT of *this.
5798         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
5799         apply the attributes to the variants.
5800
5801 2004-04-30  Paul Brook  <paul@codesourcery.com>
5802
5803         * config.gcc: Simplify arm --with-{cpu,tune} test.
5804         * config/arm/arm-cores.def: Document whitespace restrictions.
5805
5806 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5807
5808         PR other/1963
5809         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
5810
5811 2004-04-30  Brian Ford  <ford@vss.fsi.com>
5812             DJ Delorie  <dj@redhat.com>
5813
5814         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5815         (DWARF2_DEBUGGING_INFO): Define to enable.
5816         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
5817         DWARF2.
5818         * configure.ac (Target-specific assembler checks)
5819         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
5820         relocs.
5821         * configure: Regenerate.
5822         * config.in: Likewise.
5823
5824         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5825         (ASM_OUPUT_DWARF_OFFSET): Define.
5826
5827 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
5828
5829         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
5830         (s390_emit_call): New function prototype added.
5831         (s390_tls_get_offset): Function removed.
5832         * config/s390/s390.c (s390_function_ok_for_sibcall,
5833         s390_call_saved_register_used_p): New functions.
5834         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
5835         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
5836         (s390_emit_tls_call_insn): New function.
5837         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
5838         emit_call_insn.
5839         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5840         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
5841         added.
5842         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
5843         register number used to hold the target address for sibcalls.
5844         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
5845         New expanders.
5846         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
5847         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5848         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
5849         Expanders removed.
5850         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5851         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
5852         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
5853         ("epilogue"): Changed the call to s390_emit_epilogue to use the
5854         new parameter.
5855
5856 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5857
5858         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5859         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5860         reg-stack.c, varasm.c, config/alpha/ev4.md,
5861         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5862         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5863         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5864         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5865         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5866         config/ia64/itanium2.md, config/ip2k/ip2k.c,
5867         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5868         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5869         comment typos.
5870
5871 2004-04-30  Paul Brook  <paul@codesourcery.com>
5872
5873         * config.gcc: Default ep9312 to hard-float.
5874         * config/arm/arm-cores.def: Add ARCH field.
5875         * config/arm/arm.c (FL_FOR_ARCH*): Define.
5876         (arm_arch_cirrus): New variable.
5877         (all_cores): Set and use arch.
5878         (all_architectures): Ditto.
5879         (arm_arch_name): New variable.
5880         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5881         Set and use arm_arch_cirrus.
5882         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5883         (enum processor_type): Update ARM_CORE define.
5884         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
5885         (CPP_SPEC): Remove %(cpp_cpu_arch).
5886         (CPP_ARCH_DEFAULT_SPEC): Remove.
5887         (CPP_CPU_ARCH_SPEC): Remove.
5888         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5889         (FPUTYPE_DEFAULT): Don't define here.
5890
5891 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
5892
5893         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
5894         updates too.
5895
5896 2004-04-30  Paul Brook  <paul@codesourcery.com>
5897
5898         * arm.c (arm_needs_doubleword_align): Use mode alignment.
5899
5900 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
5901
5902         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
5903         vec_sububs.
5904         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
5905         duplicates.
5906
5907 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5908
5909         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5910         atan2?f3 expanders.
5911
5912 2004-04-29  Nick Clifton  <nickc@redhat.com>
5913
5914         Bug 14093
5915         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5916         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5917         Delete static from definition.
5918         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5919
5920 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5921
5922         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5923         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5924         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5925         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5926
5927 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5928
5929         * commom.opt (Wfatal-errors): Add it.
5930         * diagnostic.c (flag_fatal_errors): Define it.
5931         (diagnostic_action_after_output): Check for flag_fatal_errors.
5932         * flags.h (flag_fatal_errors): Declare it.
5933         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5934         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5935
5936 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5937
5938         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5939         blocks which have kill flag set.
5940
5941 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5942
5943         * configure.ac (--with-as): Abort if user-supplied assembler
5944         cannot be executed.
5945         (--with-ld): Likewise for the linker.
5946         * configure: Regenerate.
5947
5948 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5949
5950         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5951         isn't NULL before using it.
5952
5953 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5954
5955         PR target/15189
5956         * config/mips/mips.md (load_df_low): Use default length.
5957         (load_df_high, store_df_high): Likewise.
5958
5959 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5960
5961         * config/mips/mips.md, config/mips/sb1.md,
5962         config/rs6000/rs6000.c: Fix comment typos.
5963
5964 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5965
5966         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5967         Fix comment typos.
5968
5969 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5970
5971         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5972         (delete_if_ordinary): Use above macro.
5973         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5974         Update copyright.
5975         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5976
5977 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5978
5979         * c-decl.c (get_parm_info): Use the correct tag keywords when
5980         warning about type declarations in prototypes.
5981
5982 2004-04-29  Paul Brook  <paul@codesourcery.com>
5983
5984         * config.gcc: Pull list of cores from arm-cores.def.
5985
5986 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5987
5988         * combine.c (combine_simplify_rtx): Adjust call to use
5989         simplify_relational_operation.  Do not use SELECT_CC_MODE
5990         when a comparison already has a MODE_CC mode.
5991
5992 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5993
5994         (simplify_set): simplify_relational_operation may now
5995         return another relational expression.
5996         * cse.c (fold_rtx): simplify_relational_operation now
5997         takes of computing the comparison mode.
5998         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5999         remove dead code.
6000         (do_compare_rtx_and_jump): Likewise.
6001         * integrate.c (subst_constants): simplify_relational_operation
6002         may now return another relational expression.
6003         * simplify-rtx.c (simplify_gen_relational): Move most code to
6004         the new simplify_relational_operation and
6005         simplify_relational_operation_1 functions.
6006         (simplify_relational_operation): Rewritten.
6007         (simplify_relational_operation_1): New function.
6008         (simplify_ternary_operation): simplify_relational_operation
6009         may now return another relational expression.
6010         (simplify_rtx): Remove unnecessary temp variable.
6011
6012 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
6013
6014         * reg-stack.c (swap_to_top): New function.
6015         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
6016         swap_to_top().
6017         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
6018         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
6019         UNSPEC_FSCALE_EXP.
6020
6021         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
6022         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
6023         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
6024         x87's fscale insn.
6025         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
6026         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
6027         patterns.
6028
6029 2004-04-28  Serge Belyshev  <1319@bot.ru>
6030
6031         PR 14944
6032         * coverage.c (read_counts_file): Fix usage of warning () call.
6033         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
6034
6035 2004-04-28  Ben Elliston  <bje@au.ibm.com>
6036
6037         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
6038         options with "-" in the option index.
6039         (SPARC Options): Likewise.
6040         (M32R/D Options): Likewise.
6041
6042 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6043
6044         * convert.c (convert_to_integer): Convert (long)round -> lround,
6045         etc.
6046
6047 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
6048
6049         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
6050         Return false if we do not have fp register.
6051         (addrs_ok_for_quad_peep): Rename to ...
6052         (mems_ok_for_quad_peep): this.
6053         Add check for volatile memory.
6054         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
6055         Rename to ...
6056         (mems_ok_for_quad_peep): this.
6057         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
6058         to peephole2's.
6059         (lfq_power2): New instruction.
6060         (stfq_power2): Likewise.
6061
6062 2004-04-28  Jan Hubicka  <jh@suse.cz>
6063
6064         PR c/15004
6065         * function.c (do_warn_unused_parameter): Break out form ...
6066         (expand_function_end): ... here; warn only when not using cgraphunit.
6067         * function.h (do_warn_unused_parameter): Declare.
6068         * cgraphunit.c: Include function.h.
6069         (cgraph_finalize_function): Do unused parameter warning.
6070         * Makefile.in (cgraphunit.o): Depend on function.h
6071
6072 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6073
6074         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
6075         calling install-info on $(DESTDIR)$(infodir)/dir already being
6076         present.
6077
6078 2004-04-28  Paul Brook  <paul@codesourcery.com>
6079
6080         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
6081
6082 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6083
6084         * gcse.c (find_moveable_store): Do not accept store insns with
6085         REG_EH_REGION note.
6086
6087 2004-04-28  Paul Brook  <paul@codesourcery.com>
6088
6089         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
6090         * function.c (assign_temp): Ditto.
6091         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
6092
6093 2004-04-28  Paul Brook  <paul@codesourcery.com>
6094
6095         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
6096
6097 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
6098
6099         * var-tracking.c (variable_different_p): Add a parameter
6100         compare_current_location, compare current location of variable parts
6101         if it is true.
6102         (dataflow_set_different_1): Pass compare_current_location == false.
6103         (dataflow_set_different_2): Pass compare_current_location == false.
6104         (emit_notes_for_differences_1): Pass compare_current_location == true.
6105
6106 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6107
6108         * config/s390/s390.md ("casesi"): Mark jump table access as
6109         non-trapping and unchanging.
6110
6111 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6112
6113         PR debug/14829
6114         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
6115         callers.
6116         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
6117         number for indexing hard_regno_nregs array.
6118
6119 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
6120
6121         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
6122         * config/darwin-crt2.c: Only have contents on __ppc__.
6123
6124 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
6125
6126         * config/xtensa/xtensa.c (call_insn_operand): Check
6127         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
6128         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
6129         * config/xtensa/xtensa.md (call, call_value): Likewise.
6130
6131 2004-04-27  Wu Yongwei  <adah@sh163.net>
6132
6133         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
6134         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
6135         (__gthread_mutex_init_function): Replace CreateMutex with
6136         initialization of custom mutex using CreateSemaphore.
6137         (__gthread_mutex_lock): Use InterlockedIncrement.
6138         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
6139         (__gthread_mutex_unlock): Use InterlockedDecrement and
6140         ReleaseSemaphore to unlock
6141         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
6142         __gthread_mutex_lock, __gthread_mutex_trylock,
6143         __gthread_mutex_unlock): Adjust to match inline versions in
6144         gthr-win32.h.
6145
6146 2004-04-27  Paul Brook  <paul@codesourcery.com>
6147
6148         * config/arm/arm.c (arm_promote_prototypes): New function.
6149         (TARGET_PROMOTE_PROTOTYPES): Use it.
6150
6151 2004-04-27  Paul Brook  <paul@codesourcery.com>
6152
6153         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
6154
6155 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
6156
6157         * config/alpha.c (alpha_end_function): For OpenVMS gas,
6158         correctly output .pdesc directive before .end.
6159
6160 2004-04-26  James E Wilson  <wilson@specifixinc.com>
6161
6162         Bug 14927
6163         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
6164         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
6165
6166 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
6167
6168         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
6169         * config/pa/pa-hpux10.h: Likewise.
6170         * config/pa/pa-hpux11.h: Likewise.
6171
6172 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
6173
6174         * doc/invoke.texi (Overall Options): Document default for -o
6175         for PCH files.
6176
6177 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6178
6179         * builtins.c (expand_builtin_update_setjmp_buf): New function.
6180         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
6181         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
6182
6183 2004-04-26  Paul Brook  <paul@codesourcery.com>
6184
6185         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
6186
6187 2004-04-26  Paul Brook  <paul@codesourcery.com>
6188
6189         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
6190
6191 2004-04-25  Roger Sayle  <roger@eyesopen.com>
6192
6193         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
6194         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
6195         X % -1 as 0.
6196
6197 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
6198
6199         PR bootstrap/15141
6200         * except.c (connect_post_landing_pads): Delete insns after the
6201         barrier when generating a unwind_resume_libfunc call.
6202
6203 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6204
6205         PR/c++ 15119
6206         * tree.c (substitute_placeholder_in_expr, case 4): New case,
6207         for TARGET_EXPR.
6208
6209 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6210
6211         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6212         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
6213         inhibit_libc is defined.
6214
6215 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
6216
6217         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
6218         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
6219         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
6220         (TARGET_SCHED_VARIABLE_ISSUE): Define.
6221         (mips_adjust_cost): Move later in file, next to other sched hooks.
6222         (mips_macc_chains_last_hilo): New variable.
6223         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
6224         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
6225         * config/mips/mips.md (may_clobber_hilo): New attribute.
6226
6227 2004-04-24  Roger Sayle  <roger@eyesopen.com>
6228             Bruce Korb  <bkorb@gnu.org>
6229
6230         * fixinc/inclhack.def (aix_syswait_2): New fix.
6231         * fixinc/fixincl.x: Regenerate.
6232         * fixinc/tests/base/sys/wait.h: Update for new test.
6233
6234 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
6235
6236         PR target/14960
6237         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
6238         to non_fixed_size, and leave out fixed_size from the sum.
6239         (generate_set_vrsave): Correct clobbers.
6240         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
6241         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
6242         (rs6000_libcall_value): Likewise.
6243         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
6244         (FUNCTION_ARG_REGNO_P): Likewise.
6245
6246 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6247
6248         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
6249         is a CONST_INT.
6250         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
6251         with NARROW_OP1 instead of OP1.
6252
6253 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6254
6255         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
6256         and __s390x__ hosts.
6257
6258 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6259
6260         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
6261         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
6262         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
6263         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
6264         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
6265         * builtins.c (expand_builtin_fork_or_exec): New.
6266         (expand_builtin): Call it.
6267         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
6268         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
6269         * c-common.c (PID_TYPE): New macro.
6270         (c_common_nodes_and_builtins): Initialize pid_type_node.
6271         * calls.c (special_function_p): Do not handle fork and exec.
6272         (expand_call): Do not handle ECF_FORK_OR_EXEC.
6273         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6274         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
6275         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6276         __gcov_execv, __gcov_execvp, __gcov_execve): New.
6277         * tree.h (enum tree_index): Add TI_PID_TYPE.
6278         (pid_type_node): New macro.
6279         (ECF_FORK_OR_EXEC): Removed.
6280
6281 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6282
6283         PR optimization/13985
6284         * cfgloopmanip.c (fix_loop_placements): New prototype.
6285         Call fix_bb_placements on the preheader of loops that have
6286         been reparented.
6287         (remove_path): Adjust call to fix_loop_placements.
6288
6289 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
6290
6291         * config/darwin7.h: New file.
6292         * config.gcc (*-*-darwin*): Add darwin7.h if the
6293         version is greater than 6.
6294         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
6295         (MATH_LIBRARY): Wrap in ifdefs.
6296
6297 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
6298
6299         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
6300         loading iWMMXt registers with a frame pointer.  Use post-increment
6301         without a frame pointer.
6302         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
6303
6304 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
6305
6306         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
6307         mode" rather than "-funit-at-a-time" since -O2 enables it
6308         without requiring -f* options.  Refer to -fprofile-generate and
6309         -fprofile-use correctly.  Move -funit-at-a-time among options
6310         enabled by -O.  Add information about unit-at-a-time caveats.
6311
6312 2004-04-22  Per Bothner  <per@bothner.com>
6313
6314         * line-map.h (struct line_maps):  New field highest_line.
6315         (linemap_position_for_column):  Make non-inline function.
6316         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
6317         * line-map.c (linemap_init):  Clear highest_line field.
6318         (linemap_add):  Set highest_line field.
6319         (linemap_line_start):  Minor optimization - use highest_line field.
6320         Reduce maximum column hint to 10000.  Update highest_line field.
6321         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
6322         * cpphash.h (struct cpp_reader):  Remove line field - instead use
6323         line_table->highest_line.
6324         (saved_line):  Remove unused field.
6325         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
6326         Use  line_table's highest_line field instead of cpp_reader's line.
6327         * cpplib.c (start_directive):  Likewise use highest_line field.
6328         (do_line, do_linemarker):  Likewise just use newest map.
6329         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
6330         * cpperror.c (cpp_error):  Likewise use highest_line field.
6331         * cppfiles.c (open_file_failed:  Likewise.
6332         (cpp_make_system_header):  Likewise use newest map and highest_line.
6333         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
6334         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
6335         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
6336         _cpp_lex_direct):  Likewise use highest_line.
6337         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
6338         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
6339         and use newest map.
6340         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
6341         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
6342         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
6343
6344 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
6345
6346         PR bootstrap/14992
6347         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
6348         * config/linux.h (USE_LD_AS_NEEDED): Define.
6349         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
6350         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
6351         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
6352         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
6353         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
6354         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
6355         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
6356
6357 2004-04-22  Per Bothner  <per@bothner.com>
6358
6359         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
6360         Fixes PR preprocessor/15067.
6361
6362 2004-04-23  Andreas Schwab  <schwab@suse.de>
6363
6364         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
6365         avoid aliasing warning.
6366
6367 2004-04-22  Jan Hubicka  <jh@suse.cz>
6368             Mostafa Hagog <mustafa@il.ibm.com>
6369
6370       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
6371       * cfgloopanal.c (expected_loop_iterations): Change the return value
6372
6373 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
6374
6375         * cselib.h (struct elt_loc_list): Remove canon_loc field.
6376         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6377         (cselib_invalidate_mem): Remove all canon_loc and canon_x
6378         traces.
6379
6380 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
6381
6382         Revert
6383         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6384
6385                 * var-tracking.c (variable_part_different_p): Variable parts
6386                 differ when the most recent locations differ.
6387
6388 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
6389
6390         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6391         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6392         (embedded_pic_offset): Delete.
6393         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
6394         MASK_* constants.
6395         (TARGET_EMBEDDED_PIC): Delete.
6396         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6397         (ASM_SPEC): Remove -membedded-pic.
6398         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6399         (ASM_OUTPUT_CASE_LABEL): Likewise.
6400         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6401         * config/mips/windiss.h (ASM_SPEC): Likewise.
6402         * config/mips/mips.c (struct machine_function): Remove
6403         embedded_pic_fnaddr_rtx.
6404         (TARGET_ENCODE_SECTION_INFO): Remove override.
6405         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6406         (override_options): Remove -membedded-pic handling.
6407         (print_operand): Remove handling of '%S'.
6408         (mips_select_section: Remove -membedded-pic handling.
6409         (mips_encode_section_info): Delete.
6410         (mips_output_conditional_branch): Remove mention of -membedded-pic.
6411         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6412         -membedded-pic handling.
6413         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6414
6415 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
6416
6417         * var-tracking.c (frame_base_decl): Remove useless GTY.
6418
6419 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
6420
6421         * config/rs6000/rs6000.c (rs6000_override_options): Error when
6422         user wants altivec and e500 instructions.
6423
6424 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6425
6426         PR target/14813
6427         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6428         in .init_array section to ...
6429         * config/ia64/crtbegin.asm: Here.
6430
6431         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6432         and hidden if HAVE_INITFINI_ARRAY is defined.
6433
6434 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6435
6436         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6437         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6438         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6439         (fp_register_operand, lo_operand): New.
6440         (mips_rtx_costs): Add TUNE_SB1 support.
6441         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6442         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6443         (mips_multipass_dfa_lookahead): New.
6444         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6445         TUNE_SB1): New.
6446         (TARGET_SWITCHES): Add -mfp-exceptions support.
6447         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6448         (BRANCH_COST): Fix whitespace.
6449         * config/mips/mips.md: Include sb1.md.
6450         * config/mips/sb1.md: New file.
6451         * doc/invoke.texi: Document -mfp-exceptions.
6452
6453         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6454         comment.
6455         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6456         (fixincl.o-warn): Delete.
6457
6458 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6459
6460         * config/rs6000/rs6000 (print_operand) ['z']:
6461         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6462
6463 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6464
6465         * config.gcc: Support --with-arch=iwmmxt for ARM.
6466
6467 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6468
6469         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6470         in two more places; remove unneeded force_reg
6471
6472 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6473
6474         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6475         for TARGET_MACHO.
6476         (print_operand): For TARGET_MACHO check to see if we need a stub
6477         and output one if we need it.
6478
6479         PR debug/15033
6480         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6481         rtl.
6482
6483 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6484
6485         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6486         (vall_value_gp): Likewise.
6487
6488 2004-04-20  DJ Delorie  <dj@redhat.com>
6489
6490         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6491         variables stored in word registers, then in memory.
6492
6493 2004-04-20  Eric Christopher  <echristo@redhat.com>
6494
6495         * cp/parser.c (cp_parser_declaration): Move translate
6496         up before tokens are lexed.
6497
6498 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6499
6500         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6501         (asin_optab, acos_optab): Define corresponding macros.
6502         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6503         * genopinit.c (optabs): Implement asin_optab and acos_optab
6504         using asin?f2 and acos?f2 patterns.
6505         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6506         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6507         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6508         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6509
6510         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6511         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6512         acos, acosf and acosl built-ins as inline x87 intrinsics.
6513
6514 2004-04-20  Paul Brook  <paul@codesourcery.com>
6515
6516         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6517
6518 2004-04-20  Paul Brook  <paul@codesourcery.com>
6519
6520         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6521
6522 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6523
6524         Revert part of 2004-04-17 change that moved -frename-registers
6525         to -O1.  -frename-registers is buggy.
6526
6527         * toplev.c (flag_rename_registers): Initialize to 0.
6528         * doc/invoke.texi (Optimize options): Move -frename-registers
6529         to "Not triggered by any -O level" section.  Adjust commentary
6530         accordingly.
6531
6532 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6533
6534         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6535
6536 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6537
6538         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6539         for mflo and mfhi instructions.
6540         (mips_output_move): Remove mflo and mfhi handling.
6541         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6542         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6543         Likewise various define_peephole2s.
6544         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6545         alternatives.
6546         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6547         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6548         (mfhilo_di, mfhilo_si): New patterns.
6549
6550 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6551
6552         * function.c (assign_parms): Force
6553         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6554
6555 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6556
6557         * var-tracking.c (variable_part_different_p): Variable parts differ
6558         when the most recent locations differ.
6559
6560 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6561
6562         * rtl.h (reg_set_last): Delete declaration.
6563         * rtlanal.c (reg_set_last): Delete.
6564
6565 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6566
6567         * fold-const.c (fold_convert): Make function extern/public.
6568         * tree.h (fold_convert): Prototype here.
6569         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6570         expand_builtin_strrchr, expand_builtin_strpbrk,
6571         expand_builtin_mempcpy, expand_builtin_bcopy,
6572         expand_builtin_bzero, expand_builtin_memcmp,
6573         expand_builtin_strcmp, expand_builtin_strncmp,
6574         stabilize_va_list, expand_builtin_sprintf,
6575         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6576         fold_builtin_exponent, fold_builtin_mempcpy,
6577         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6578         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6579         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6580
6581 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6582
6583         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6584         (move_from_CR_gt_bit): New.
6585         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6586         E500.
6587         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6588         E500.
6589
6590         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6591         (tstsfeq_gpr): Same.
6592         (cmpsfgt_gpr): Same.
6593         (tstsfgt_gpr): Same.
6594         (cmpsflt_gpr): Same.
6595         (tstsflt_gpr): Same.
6596         (e500_cceq_ior_compare): New.
6597         (e500_flip_gt_bit): New.
6598
6599         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6600         (print_operand): Add 'c' and 'D'.
6601         (rs6000_generate_compare): Rewrite to generate correct rtl.
6602         (rs6000_emit_sCOND): Handle E500.
6603         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6604         (output_e500_flip_gt_bit): New.
6605
6606         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6607         Protoize.
6608
6609 2004-04-19  Eric Christopher  <echristo@redhat.com>
6610
6611         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6612
6613 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6614
6615         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6616         fix information.
6617
6618 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6619
6620         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6621         download URL.
6622
6623 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6624
6625         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6626         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6627
6628 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6629
6630         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6631         (fold_builtin): Update caller to match.
6632
6633         PR bootstrap/15009
6634         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6635
6636         PR bootstrap/14999
6637         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6638
6639 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6640
6641         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6642
6643         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6644         (expand_mult_highpart_optab): Likewise.
6645         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6646
6647 2004-04-19  Paul Brook  <paul@codesourcery.com>
6648
6649         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6650         floatunssisf2, floatunssidf2): New patterns.
6651
6652 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6653
6654         PR other/14918
6655         * doc/invoke.texi (-fprofile-generate): Document requirement to
6656         use -fprofile-generate when linking.
6657
6658         * doc/extend.texi (Strong Using): Warn users against using this
6659         feature.
6660
6661 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6662
6663         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6664         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6665         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6666         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6667         constant.  Propogate change throughout file.
6668         (struct machine_function): Remove insns_len.
6669         (mips_string_length, mips16_strings, string_constants): Delete.
6670         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6671         when generating mips16 code.  Remove special mips16 treatment of
6672         string constants.
6673         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6674         to have the form LABEL+CONSTANT.
6675         (mips_symbolic_address_p): Fix comment.
6676         (m16_usym8_4, m16_usym5_4): Delete.
6677         (mips_output_function_epilogue): Remove mips16 string handling.
6678         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6679         (mips_select_section, mips_encode_section_info): Remove mips16
6680         string handling.
6681         (struct mips16_constant_pool): New.
6682         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6683         sorted into order of ascending mode size.  Keep track of the highest
6684         possible start address, taking padding and the masking of the base PC
6685         value into account.
6686         (dump_constants_1): New function, split out from dump_constants.
6687         Handle vector constants.  Use gen_consttable_{int,float} rather than
6688         separate functions for each mode.
6689         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6690         rather than separate functions for each alignment.
6691         (mips_find_symbol): Delete.
6692         (mips16_insn_length): New function, split out from
6693         mips16_lay_out_constants.
6694         (mips16_rewrite_pool_refs): New function.
6695         (mips16_lay_out_constants): Rework. Remove string handling.
6696         Always create an inline constant pool.
6697         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6698         (UNSPEC_ALIGN): New constants.
6699         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6700         (UNSPEC_ALIGN_[248]): Delete.
6701         (consttable_int, consttable_float, align): New patterns.
6702         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6703
6704 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6705
6706         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6707         __unn_args_eq.
6708
6709 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6710
6711         PR target/14715
6712         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6713         with STARTING_FRAME_OFFSET.
6714
6715 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6716
6717         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6718         * config/mips/mips.c (macc_msac_operand): New function.
6719         * config/mips/mips.md (*msac): Move after *macc.
6720         (*msac2): New.  Generalize macc-related peepholes so that they apply
6721         to msac too.
6722
6723 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6724
6725         * opts.c (decode_options): Do not enable flag_rename_registers
6726         and flag_web at -O3.
6727         * toplev.c (flag_rename_registers): Initialize
6728         flag_rename_registers and flag_web to
6729         AUTODETECT_FLAG_VAR_TRACKING.
6730         (default_debug_hooks): New global.
6731         (process_options): Initialize default_debug_hooks.  Warn if
6732         -fvar-tracking specified but not supported by the current
6733         debug format.  Do not run var tracking at -O0 or if not
6734         supported by the current debug format, even if
6735         -fvar-tracking was given.  If -fno-rename-registers
6736         is not specified, always run register renaming if var
6737         tracking is supported by the default debugging information
6738         format for the target, and we are at -O1 or higher; similarly
6739         for -fweb, but only at -O2 or higher.
6740         * doc/invoke.texi (Optimize Options): Document this.
6741
6742 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6743
6744         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6745         * configure: Regenerate.
6746
6747 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6748
6749         * gcc.c (used_arg): Check whether an option has been removed.
6750
6751 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6752
6753         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6754         debugging on Solaris 7 and up.
6755
6756 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6757
6758         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6759         IRIX 5 port.
6760         Remove -save-temps workaround, handled automatically.
6761         Require GNU binutils 2.15 for debugging.
6762         Remove SGI make warnings since GNU make is now required.
6763         (Specific, mips-sgi-irix6): Some markup fixes.
6764         Describe MIPSpro C problems and workarounds.
6765         Mention working O32 ABI support.
6766         Recommend GNU as 2.15 for O32 with debugging.
6767         Remove description of fixed structure pass/return bug.
6768
6769 2004-04-16  DJ Delorie  <dj@redhat.com>
6770
6771         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6772         TYPE_FIELDS.
6773         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6774
6775 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6776
6777         * pa.md: Remove unnecessary declarations for asm_out_file.
6778
6779         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
6780         SAR register.  Fix comment.
6781         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
6782         (%cr11).
6783
6784         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
6785
6786 2004-04-16  Nick Clifton  <nickc@redhat.com>
6787
6788         * config/arm/arm.c (arm_override_options): Revert previous patch.
6789         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
6790         be safely built.
6791
6792 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6793
6794         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
6795         bug.
6796         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
6797         TARGET_DEFAULT): Changed. Ditto.
6798         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
6799         TARGET_ENDIAN_DEFAULT): Added. Ditto.
6800         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
6801         (TARGET_ENDIAN_DEFAULT): Added.
6802
6803 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6804
6805         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
6806         ATTR_CONST_NOTHROW_LIST.
6807
6808 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6809
6810         PR/middle-end 14915
6811         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
6812         BITS_BIG_ENDIAN.
6813
6814 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6815
6816         * ra-debug.c (ra_print_rtx): Add break's to case legs.
6817
6818 2004-04-14  James E Wilson  <wilson@specifixinc.com>
6819
6820         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
6821
6822 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6823
6824         * libada-mk.in: New file.
6825         * configure.ac: Create libada-mk from libada-mk.in.
6826         * configure: Regenerate.
6827
6828 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
6829
6830         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
6831         (logb_optab, ilogb_optab): Define corresponding macros.
6832         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
6833         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
6834         using logb?f2 and ilogb?i2 patterns.
6835         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
6836         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
6837         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
6838         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6839
6840         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
6841         and UNSPEC_XTRACT_EXP.
6842
6843         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
6844         patterns to implement fxtract x87 instruction.
6845         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
6846         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
6847         intrinsics.
6848         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
6849         x87's fxtract insn.
6850
6851 2004-04-14  Eric Christopher  <echristo@redhat.com>
6852
6853         * config/mips/t-elf: Enable multilibs by default.
6854
6855 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
6856
6857         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6858         previous fix to check HAVE_return at runtime too.
6859
6860 2004-04-14  Nick Clifton  <nickc@redhat.com>
6861
6862         * config/arm/arm.c (arm_override_options): If the user has not
6863         specified an ABI, then default to AAPCS for the iWMMXt processor.
6864         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6865         * config/arm/t-xscale-coff: Likewise.
6866
6867 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6868
6869         * builtins.c (fold_builtin_isdigit): New.
6870         (fold_builtin): Handle BUILT_IN_ISDIGIT.
6871         * defaults.h: Add TARGET_DIGIT0 and sort.
6872         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6873
6874 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6875
6876         * builtins.c (fold_builtin_cabs, fold_builtin): Use
6877         `mathfn_built_in' to determine the new builtin.
6878         * fold-const.c (fold): Likewise.
6879
6880 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
6881
6882         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6883         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6884         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6885         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6886         (ASM_SPEC): Update accordingly.
6887         * config/mips/mips.c: Update after above renaming.
6888         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6889         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6890
6891 2004-04-13  James E Wilson  <wilson@specifixinc.com>
6892
6893         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
6894         increment errorcount and return false instead of true.
6895
6896 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
6897
6898         * optabs.c (expand_twoval_unop): Reorder function arguments.
6899         * builtins.c (expand_builtin_mathfn_3): Update calls to
6900         expand_twoval_unop.
6901
6902         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
6903         and UNSPEC_TAN_TAN. Add missing comment.
6904
6905         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
6906         patterns to implement fptan x87 instruction.
6907         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6908         and tanl built-ins as inline x87 intrinsics. Define corresponding
6909         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6910         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6911         x87's fptan insn.
6912
6913 2004-03-13  Richard Henderson  <rth@redhat.com>
6914
6915         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6916         for LABEL_REFs.
6917
6918         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6919         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6920         * doc/invoke.texi: Update to match.
6921
6922         * varasm.c (unlikely_text_section): Use assemble_align instead of
6923         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6924         correct alignment argument.
6925
6926 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6927
6928         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6929         after setting reg_last_reload_reg for optional output reloads.
6930
6931 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6932
6933         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6934         Definition of these two macros are corrected by adding
6935         matchine right paren.
6936
6937 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6938
6939         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6940
6941 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6942
6943         * config/i386/i386.c (output_387_reg_move): New function.
6944         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6945         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6946         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6947         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6948         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6949
6950 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6951
6952         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6953         TYPE_DECL.
6954         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6955         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6956         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6957         Use skip_simple_arithmetic to find SAVE_EXPR.
6958         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6959         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6960         Properly chain multiple pointers.
6961         (copy_tree_r): Copy a TYPE_DECL.
6962         * tree.c (variably_modified_type_p): Add some missing tests and
6963         make some other minor changes.
6964         * tree.h (force_type_save_exprs): New declaration.
6965
6966 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6967
6968         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6969         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6970         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6971         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6972         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6973         x%-1 into 0 (or x&0 if x has side-effects).
6974
6975 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6976
6977         * config/rs6000/rs6000.md: Document why a pattern is not
6978         available.
6979
6980         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6981         of floats on the E500.
6982         (branch_positive_comparison_operator): Do not allow NE even on the
6983         E500.
6984
6985 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6986
6987         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6988         in_text_unlikely_section to in_unlikely_text_section.
6989
6990 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6991
6992         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6993         calling convention to allow a NULL_TREE to be returned.  Factor
6994         sanity checks from callers, return NULL_TREE when appropriate.
6995         (fold): Handle COMPOUND_EXPR operands of binary expressions
6996         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6997         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6998         calls to fold_binary_op_with_conditional_arg.
6999
7000 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7001
7002         * config/mips/iris5.h (current_section_flags):  Add
7003         in_unlikely_executed_text and default case.
7004
7005 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
7006
7007         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
7008         failure on solaris. Place ifdef HAVE_return around gen_ret call.
7009         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
7010         HAVE_return and place it around the place where it is needed.
7011
7012 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
7013
7014         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
7015         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
7016         and NORMAL_TEXT_SECTION_NAME.
7017         (unlikely_text_section): Check targetm.have_named_sections
7018         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
7019         instead of SECTION_FORMAT_STRING.
7020         * config/mips/iris5.h (current_section_name): Add
7021         in_unlikely_executed_text case and move the abort into the switch.
7022         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
7023         (NORMAL_TEXT_SECTION_NAME): Remove.
7024         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
7025         (SECTION_FORMAT_STRING): Remove.
7026         * defaults.h (SECTION_FORMAT_STRING): Remove.
7027         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
7028         (SECTION_FORMAT_STRING): Remove.
7029
7030 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7031
7032         * c-typeck.c (common_type): Prefer long long to long when same
7033         precision.
7034
7035 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
7036
7037         PR 14887
7038         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
7039         mode argument.
7040         * config/ia64/ia64.c (ia64_hpux_file_end): Check
7041         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
7042
7043 2004-04-09  Roger Sayle  <roger@eyesopen.com>
7044
7045         * simplify-rtx.c (mode_signbit_p): New function to check whether
7046         an RTX is an immediate constant that represents the most significant
7047         bit of a given machine mode.
7048         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
7049         C is the sign bit.
7050         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
7051         when C2 is the sign bit.
7052         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
7053         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
7054         sign bit.
7055
7056 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7057
7058         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
7059         TYPE_MODE.
7060
7061 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
7062
7063         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
7064         of TREE_READONLY for types.
7065
7066 2004-04-09  Caroline Tice  <ctice@apple.com>
7067
7068         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
7069         (struct basic_block_def):  Add new field, partition.
7070         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
7071         definitions.
7072         (partition_hot_cold_basic_blocks): Add extern function
7073         declaration.
7074         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
7075         include statements.
7076         (N_ROUNDS): Increase the maximum number of rounds by 1.
7077         (branch_threshold): Add array value for new round.
7078         (exec_threshold): Add array value for new round.
7079         (push_to_next_round_p): New function.
7080         (add_unlikely_executed_notes): New function.
7081         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
7082         (mark_bb_for_unlikely_executed_section): New function.
7083         (add_labels_and_missing_jumps): New function.
7084         (add_reg_crossing_jump_notes): New function.
7085         (fix_up_fall_thru_edges): New function.
7086         (find_jump_block): New function.
7087         (fix_crossing_conditional_branches): New function.
7088         (fix_crossing_unconditional_branches): New function.
7089         (fix_edges_for_rarely_executed_code): New function.
7090         (partition_hot_cold_basic_blocks): New function.
7091         (find_traces):  Add an extra round for partitioning hot/cold
7092         basic blocks.
7093         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
7094         and only cold blocks, into the last (extra) round of collecting traces.
7095         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
7096         over crossing edges.
7097         (bb_to_key):  Add code to correctly identify cold blocks when
7098         doing partitioning.
7099         (connect_traces): Modify to connect all the non-cold traces first, then
7100         go back and connect up all the cold traces.
7101         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
7102         * cfg.c (entry_exit_blocks): Add initialization for partition field in
7103         entry and exit blocks.
7104         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
7105         if we are doing hot/cold partitioning.
7106         * cfgcleanup.c (cfglayout.h): Add new include statement.
7107         (try_simplify_condjump): Modify to not attempt on blocks with jumps
7108         that cross section boundaries.
7109         (try_forward_edges): Likewise.
7110         (merge_blocks_move_predecessor_nojumps): Likewise.
7111         (merge_blocks_move_successor_nojumps): Likewise.
7112         (merge_blocks_move): Likewise.
7113         (try_crossjump_to_edge): Modify to not attempt after we have done
7114         the block partitioning.
7115         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
7116         cross section boundaries.
7117         (try_optimize_cfg): Likewise.
7118         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
7119         jumps that cross section boundaries.
7120         * cfglayout.c (flags.h): Add new include statement.
7121         (update_unlikely_executed_notes):  New function.
7122         (fixup_reorder_chain):  Add code so when a new jumping basic block is
7123         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
7124         updated appropriately.
7125         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
7126         introduced by this optimization.
7127         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
7128         extern function declaration.
7129         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
7130         list of notes that can be deleted.
7131         (create_basic_block_structure):  Add initialization for partition field.
7132         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
7133         section boundaries.
7134         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
7135         cross section boundaries.
7136         (commit_one_edge_insertion): Add code so newly created basic block
7137         ends up in correct (hot or cold) section.  Modify to disallow
7138         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
7139         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
7140         crosses section boundaries.
7141         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
7142         cross section boundaries.
7143         (force_nonfallthru_and_redirect): Modify to make sure new basic block
7144         ends up in correct section, with correct notes attached.
7145         * common.opt (freorder-blocks-and-partition):  Add new flag for this
7146         optimization.
7147         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
7148         the end of functions are written into the correct (hot or cold)
7149         section.
7150         (dbx_source_file): Add code so writing debug file information
7151         doesn't incorrectly change sections.
7152         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
7153         in partitioning hot/cold basic blocks into separate sections.
7154         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
7155         section partitioning.
7156         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
7157         conditional branches can span all of memory.
7158         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
7159         unconditional branches can span all of memory.
7160         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
7161         (final_scan_insn):  Add code to check for NOTE instruction indicating
7162         whether basic block belongs in hot or cold section, and to make sure
7163         the current basic block is being written to the appropriate section.
7164         Also added code to ensure that jump table basic blocks end up in the
7165         correct section.
7166         * flags.h (flag_reorder_blocks_and_partition):  New flag.
7167         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
7168         one of the branches has a jump that crosses between sections.
7169         (find_if_case_2): Likewise.
7170         (ifcvt): Modify to not attempt to mark loop exit edges after
7171         hot/cold partitioning has occurred.
7172         * opts.c (decode_options): Code to handle new flag,
7173         flag_reorder_blocks_and_partition; also to turn it off if
7174         flag_exceptions is on.
7175         (common_handle_option): Code to handle new flag,
7176         flag_reorder_blocks_and_partition.
7177         * output.h (unlikely_text_section): New extern function declaration.
7178         (in_unlikely_text_section): New extern function declaration.
7179         * passes.c (rest_of_handle_stack_regs):  Add
7180         flag_reorder_blocks_and_partition as an 'or' condition for calling
7181         reorder_basic_blocks.
7182         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
7183         as an 'or' condition for calling reorder_basic_blocks.
7184         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
7185         * print-rtl.c (print_rtx): Add code for handling new note,
7186         NOTE_INSN_UNLIKELY_EXECUTED_CODE
7187         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
7188         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
7189         cross between section boundaries.
7190         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
7191         indicating the basic block containing it belongs in the cold section.
7192         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
7193         between hot and cold sections.
7194         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
7195         initialize this flag, and to tie it to the command-line option
7196         freorder-blocks-and-partition.
7197         * varasm.c (cfglayout.h):  Add new include statement.
7198         (unlikely_section_label_printed):  New global variable, used for
7199         determining when to output section name labels for cold sections.
7200         (in_section):  Add in_unlikely_executed_text to enum data structure.
7201         (text_section):  Modify code to use SECTION_FORMAT_STRING and
7202         NORMAL_TEXT_SECTION_NAME macros.
7203         (unlikely_text_section):  New function.
7204         (in_unlikely_text_section):  New function.
7205         (function_section):  Add code to make sure beginning of function is
7206         written into correct section (hot or cold).
7207         (assemble_start_function):  Add code to make sure stuff is written to
7208         the correct section.
7209         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
7210         to an if statement that was checking 'in_text_section'.
7211         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
7212         condition to an if statement that was checking 'in_text_section'.
7213         (default_section_type_flags_1):  Add check: if in cold section
7214         flags = SECTION_CODE.
7215         * config/darwin.c (darwin_asm_named_section):  Modify to use
7216         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7217         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
7218         specifically for the i386.
7219         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
7220         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
7221         text string to something more informative.
7222         (NORMAL_TEXT_SECTION_NAME): Add new definition.
7223         (SECTION_FORMAT_STRING):  Add new definition.
7224         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
7225         '!in_unlikely_text_section' as an 'and' condition to an if statement
7226         that was already checking '!in_text_section'.
7227         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
7228         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
7229         sure these are properly defined for linux on ppc.
7230         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
7231         for this new flag.
7232         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
7233         reg_note.
7234         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
7235         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
7236         these new macros.
7237
7238 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7239
7240         * function.c (gen_mem_addressof): When changing the RTX from a REG
7241         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
7242
7243 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7244
7245         PR target/14888
7246         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
7247         truncxfdf2_noop): Provide dummy "fmov" implementations.
7248
7249 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
7250
7251         * gcc.c (default_compilers): Add missing initializers.
7252
7253         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7254         Return 1 if file was successfully mapped.
7255
7256 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
7257
7258         PR pch/13419
7259         PR pch/14137
7260         Radar #: 3315288
7261         * doc/invoke.texi (Precompiled Headers): Suggest -o
7262         to put an output file in a particular place.  Be more detailed
7263         about which options affect PCH validity and which options
7264         might not work.
7265         * c-pch.c (pch_matching): New.
7266         (MATCH_SIZE): New.
7267         (struct c_pch_validity): New field 'match'.
7268         (pch_init): Handle pch_matching.
7269         (c_common_valid_pch): Check pch_matching.
7270
7271         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
7272
7273 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
7274
7275         * doc/invoke.texi (Precompiled Headers): Warn about known
7276         problems.
7277
7278 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
7279
7280         PR c++/14808
7281         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
7282         to 1 if ASM_OUTPUT_DEF is defined.
7283         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
7284         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
7285         Set to non-zero iff not a one_only decl.
7286
7287 2004-04-08  Paul Brook  <paul@codesourcery.com>
7288
7289         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
7290
7291 2004-04-08  Paul Brook  <paul@codesourcery.com>
7292
7293         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
7294         PROMOTE_FOR_CALL_ONLY.
7295         * config/arm/arm-protos.h (arm_function_value): Declare.
7296         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
7297         (TARGET_PROMOTE_PROTOTYPES): Return false.
7298         (arm_function_value): New function.
7299         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
7300         (FUNCTION_VALUE): Call arm_function_value.
7301         * config/cris/cris.h (PROMOTE_MODE): Rename ...
7302         (PROMOTE_FUNCTION_MODE): ... to this.
7303         (PROMOTE_FOR_CALL_ONLY): Remove.
7304         * config/mmix/mmix.h: Likewise.
7305         * config/s390/s390.h: Likewise.
7306         * config/sparc/sparc.h: Likewise.
7307         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
7308         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
7309         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
7310         (PROMOTE_FOR_CALL_ONLY): Remove.
7311
7312 2004-04-08  Joel Sherrill <joel@oarcorp.com>
7313
7314         PR ada/14538
7315         * ada/5rosinte.adb: Remove fake mprotect() body.
7316         * ada/5rosinte.ads: Add SA_SIGINFO.
7317         * ada/5rtpopsp.adb: Rewrite to use new interface.
7318         * ada/init.c: Reorder so the simple single OS conditional __rtems__
7319         is tested before more complex ones which mix UNIX and embedded
7320         systems in the conditional.
7321
7322 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
7323
7324         PR ada/14665
7325         * ada/osint.adb (Find_Program_Name): Rework to properly handle
7326         filenames which end in .exe or have versioning suffixes like VMS.
7327
7328 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
7329
7330         PR target/10129
7331         * config/darwin.c (darwin_encode_section_info): When the decl has
7332         a DECL_INITIAL, it is only defined also when it is not a common.
7333
7334 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7335
7336         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
7337         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
7338
7339 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
7340
7341         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
7342         global register variables.
7343
7344 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
7345
7346         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
7347         rpc_xdr_lvalue_cast_b): New fixes.
7348         * fixinc/fixincl.x: Regenerate.
7349         * fixinc/tests/base/rpc/xdr.h: Add new tests.
7350
7351 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
7352
7353         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
7354         to power4 and power5 entries.
7355
7356 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
7357
7358         * c-common.h (pending_lang_change): Mark for PCH.
7359
7360 2004-04-07  Caroline Tice  <ctice@apple.com>
7361
7362         * gcc.c (main): Move 'break' in main loops (on an error)
7363         to wait until error processing has occurred.
7364
7365 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
7366
7367         * config.gcc: Stop changing enable_threads midstream.
7368         Replace uses of enable_threads_flag with enable_threads.
7369         * configure.ac: Replace uses of enable_threads_flag with
7370         enable_threads.  Improve autoconf quotation in one place.
7371         * configure: Regenerate.
7372
7373 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
7374
7375         * builtins.c: Implement support for sincos function.
7376         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7377         BUILT_IN_COS{,F,L}.
7378         (expand_builtin_mathfn_3): New function.
7379         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7380         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7381         flag_unsafe_math_optimization is set.
7382
7383         * optabs.h (enum optab_index): Add new OTI_sincos.
7384         (sincos_optab): Define corresponding macro.
7385
7386         * optabs.c (init_optabs): Initialize sincos_optab.
7387         (expand_twoval_unop): New function.
7388
7389         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7390         patterns.
7391
7392         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7393         and UNSPEC_SINCOS_SIN.
7394
7395         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7396         sincosxf3): New patterns to implement sincos, sincosf and sincosl
7397         built-ins as inline x87 intrinsics. Define splits for
7398         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7399         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7400         sincos patterns.
7401         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7402         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7403
7404         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7405         x87's fsincos insn.
7406
7407 2004-04-06  Devang Patel  <dpatel@apple.com>
7408
7409         PR 14467
7410         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7411
7412 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7413
7414         * doc/install.texi: Update HP-UX 11 installation procedure.
7415
7416 2004-04-06  Paul Brook  <paul@codesourcery.com>
7417
7418         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7419
7420 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7421
7422         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7423         when the TLS address is generated by a function call.
7424         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7425         (tls_local_dynamic): Likewise.
7426
7427 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7428
7429         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7430         and TYPE_VOLATILE.
7431
7432 2004-04-05  Caroline Tice  <ctice@apple.com>
7433
7434         * gcc.c (combine_flag): New global variable, for new driver option.
7435         (struct compiler): Add two new fields, to be used when
7436         combining multiple input files in a single pass (IMA).
7437         (default_compilers):  Add values for the new fields to all
7438         compiler entries. Modify the "@c" compiler entry for doing IMA
7439         properly with "-save-temps" and the "combine" flag.
7440         (option_map):  Add new driver option, "--combine", to tell driver
7441         to pass multiple input files to compiler at one time.
7442         (have_o_argbuf_index): New global variable.
7443         (store_arg): Modify to assign value to have_o_argbuf_index.
7444         (struct infile):  Add three new fields, to help with IMA.
7445         (display_help): Add help for new "combine" option.
7446         (process_command): Remove local variable have_o; add code to check
7447         for new "combine" option; remove assignment to combine_inputs.
7448         (do_spec_1):  Modify to deal with IMA better.
7449         (main): Make variable 'lang_n_infiles' local to entire function
7450         rather than to a single block.  Use flag combine_flag to
7451         determine whether to do IMA or not; Modify loop initializing
7452         infiles to deal properly with linker files.
7453         Add code for doing preprocessing in presence of
7454         IMA with "-save-temps" flag.  Modify "main" loop to handle
7455         multiple input files, in multiple languages, with or without
7456         preprocessing,  gracefully.
7457         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7458         re-set it to same directory it's previously been set to (avoid
7459         irritating, meaningless warning messages when doing IMA with
7460         save-temps).
7461         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7462         remove documentation about IMA that is no longer accurate; Add
7463         documentation explaining what "-combine" does.
7464         * ada/lang-specs.h: Add initialization values for new fields in
7465         "struct compiler".
7466         * cp/lang-specs.h: Likewise.
7467         * f/lang-specs.h: Likewise.
7468         * java/lang-specs.h: Likewise.
7469         * objc/lang-specs.h: Likewise.
7470         * treelang/lang-specs.h: Likewise.
7471
7472 2004-04-05  David Edelsohn
7473
7474         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7475         symbol handling.
7476
7477 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7478             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7479
7480         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7481         * pa.md: Use replace_equiv_address to retain the attributes of the
7482         memory operands used in the split and peephole2 patterns for optimizing
7483         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7484
7485 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7486
7487         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7488         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7489         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7490         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7491         PARM_DECL.
7492         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7493         for a type.
7494         * print-tree.c (print_node): Properly handle side-effects, readonly,
7495         and constant flags.
7496         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7497         and TREE_CONSTANT if not a type.
7498         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7499         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7500         (NON_TYPE_CHECK): New macro.
7501         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7502
7503 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7504
7505         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7506         to DWARF2_DEBUG unconditionally.
7507         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7508
7509 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7510             Nathanael Nerode  <neroden@gcc.gnu.org>
7511
7512         PR target/14548
7513         * config.host: Set the shell variable host_can_use_collect2.
7514         Set it to yes by default, and to no for alpha*-dec-*vms*,
7515         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7516         * configure.ac: Set and substitute the shell variable collect2.
7517         Give an error if use_collect2 is yes and host_can_use_collect2 is
7518         no.
7519         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7520         uses.  Initialize to @collect2@.
7521         (STAGESTUFF): Remove $(USE_COLLECT2).
7522         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7523         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7524         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7525         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7526         * configure: Regenerate.
7527
7528 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7529
7530         * simplify-rtx.c (simplify_binary_operation): Constant fold
7531         DIV, MOD, UDIV and UMOD using div_and_round_double.
7532
7533 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7534
7535         PR c++/14804
7536         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7537         RECORD_TYPEs.
7538
7539 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7540
7541         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7542         documentation.
7543
7544 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7545
7546         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7547         updating the REG_EQUAL note on an insn's libcall_insn.
7548
7549 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7550
7551         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7552
7553 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7554
7555         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7556         with reorder_operands_p.
7557
7558 2004-04-03  Jan Hubicka  <jh@suse.cz>
7559
7560         * md.texi (vec_set, vec_extract, vec_init): Document.
7561
7562 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7563
7564        * opts.c (decode_options): Do function inlining with very small
7565        max-inline-insns-* parameters when optimizing for size.
7566
7567 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7568
7569         * config/i386/i386.h (TARGET_NOCONA): New macro.
7570         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7571         (processor_type): Add PROCESSOR_NOCONA.
7572
7573         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7574
7575         * config/i386/i386.c (nocona_cost): New variable.
7576         (m_NOCONA): New macro.
7577         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7578         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7579         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7580         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7581         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7582         x86_decompose_lea, x86_arch_always_fancy_math_387,
7583         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7584         x86_ext_80387_constants, x86_four_jump_limit):
7585         (override_options): Add nocona_cost to processor_target_table.
7586         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7587         (incdec_operand): Prevent inc/dec generation for Nocona too.
7588         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7589
7590 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7591
7592         * rtlanal.c (find_reg_note): Manually
7593         unswitch the loop.
7594
7595 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7596
7597         * genemit.c (gen_split): Change prototype of generated code.
7598         * genrecog.c (write_action): Adjust prototype for and calls to
7599         gen_split_*.
7600         * gensupport.c (struct queue_elem): Add split field.
7601         (queue_pattern): Return a value.  Clear the split field.
7602         (process_rtx): Maintain an association between an insn and the
7603         split generated from it for a define_insn_and_split.
7604         (process_one_cond_exec): Generate a new split for a
7605         define_insn_and_split.
7606         * config/arm/arm-protos.h (arm_split_constant): Add insn
7607         parameter.
7608         (emit_constant_insn): New function.
7609         (arm_gen_constant): Use it.
7610         * config/arm/arm.md: Adjust calls to arm_split_constant.
7611
7612 2004-04-02  Jan Hubicka  <jh@suse.cz>
7613
7614         * cgraph.c: Add overall comment.
7615         (cgraph_inline_hash): New global variable.
7616         (cgraph_create_node): Break out from ...
7617         (cgraph_node): ... here.
7618         (cgraph_edge): New function.
7619         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7620         (cgraph_remove_edge): Accept edge, intead of source and destination.
7621         (cgraph_redirect_edge_callee): New.
7622         (cgraph_remove_node): Update all new datastructures.
7623         (cgraph_record_call, cgraph_remove_call): Kill.
7624         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7625         (dump_cgraph): ... here.
7626         (cgraph_function_possibly_inlined_p): Use new hashtable.
7627         (cgraph_clone_edge, cgraph_clone_node): New.
7628         * cgraph.h: Include hashtab.h
7629         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7630         fields, add inlined_to pointer.
7631         (cgraph_node): Add pointer to next_clone.
7632         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7633         (cgraph_remove_call, cgraph_record_call): Kill.
7634         (cgraph_inline_hash): Declare.
7635         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7636         cgraph_redirect_edge_callee): Declare.
7637         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7638         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7639         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7640         * cgraphunit.c: Add overall comment.
7641         (cgraph_optimize_function): Kill.
7642         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7643         (cgraph_finalize_function): Update call of cgraph_remove_node
7644         (record_call_1): Record call sites.
7645         (cgraph_create_edges): Accept node instead of decl argument.
7646         (error_found): New static variable.
7647         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7648         (cgraph_analyze_function): Update for new datastructures.
7649         (cgraph_finalize_compilation_unit): Plug memory leak.
7650         (cgraph_optimize_function): Kill.
7651         (cgraph_expand_function): Do not use cgraph_optimize_function.
7652         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7653         cgraph_inlined_callees): Kill.
7654         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7655         clones.
7656         (estimate_growth): Simplify.
7657         (cgraph_clone_inlined_nodes): New function.
7658         (cgraph_mark_inline_edge): Re-implement.
7659         (cgraph_mark_inline): Likewise.
7660         (cgraph_check_inline_limits): Simplify.
7661         (cgraph_recursive_inlining_p): New.
7662         (update_callee_keys): Break out from ...
7663         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7664         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7665         Likewise.
7666         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7667         list.
7668         (cgraph_preserve_function_body_p): New predicate.
7669         (cgraph_optimize): Verify cgraph.
7670         * function.h (struct function): Add fields saved_tree/saved_args.
7671         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7672         * toplev.c (rest_of_compilation): Do not free cfun.
7673         * tree-inline.c: Include function.h
7674         (struct inline_data): Add saving_p field; replace decl/current_decl by
7675         node/current_node.
7676         (insert_decl_map): New function.
7677         (copy_body_r): Handle saving; update cgraph datastructure.
7678         (copy_body): Handle recursive inlining.
7679         (initialize_inlined_parameters): Likewise.
7680         (expand_call_inline): Propagate node attributes; update cgraph.
7681         (optimize_inline_calls): Verify that datastructure still match.
7682         (save_body): New function.
7683         * tree-inline.h (save_body): New.
7684         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7685         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7686         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7687
7688 2004-04-01  Serge Belyshev  <1319@bot.ru>
7689
7690         PR target/14702
7691         * config/i386/i386.md: fix source operand constraints in
7692         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7693
7694 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7695
7696         * fold-const.c (folda): Preserve types of comparisons.
7697
7698 2004-04-01  Richard Henderson  <rth@redhat.com>
7699
7700         * toplev.c (backend_init): Move init_optimization_passes call ...
7701         (lang_dependent_init): ... here.
7702
7703 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7704             Jakub Jelinek  <jakub@redhat.com>
7705
7706         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7707         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7708         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7709         * configure: Rebuilt.
7710         * config.in: Rebuilt.
7711         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7712         (stage2-start, stage3-start, stage4-start): Likewise.
7713         (stageprofile-start, stagefeedback-start): Likewise.
7714
7715 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7716
7717         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7718         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7719         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7720         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7721         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7722         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7723         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7724         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7725         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7726         * config/sparc/t-linux: Removed.
7727
7728 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7729
7730         PR c++/14755
7731         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7732         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7733
7734 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7735
7736         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7737         * stor-layout.c (layout_decl): Likewise.
7738         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7739         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7740         * print-tree.c (print_node): Handle various used of unsigned_flag.
7741         * tree.def (BIT_FIELD_REF): Update comment.
7742         * tree.h (TREE_UNSIGNED): Deleted.
7743         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7744
7745 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7746
7747         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7748         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7749         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7750         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7751         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7752         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7753         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7754         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7755         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7756         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7757         REAL_TYPE, not INTEGER_TYPE.
7758         (layout_type, case VECTOR_TYPE): Simplify code.
7759         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7760         * tree.h: Update comments.
7761         (STRIP_NOPS): Use TYPE_UNSIGNED.
7762         (TYPE_UNSIGNED): New macro.
7763         (TYPE_TRAP_SIGNED): Remove now redundant check.
7764         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7765
7766 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7767
7768         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7769
7770 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
7771
7772         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7773         Add darwin-fpsave.asm, darwin-vecsave.asm,
7774         and darwin-world.asm.
7775         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7776         as the asm files contain altivec instructions.
7777         * config/rs6000/darwin-fpsave.asm: New file.
7778         * config/rs6000/darwin-vecsave.asm: New file.
7779         * config/rs6000/darwin-world.asm: New file.
7780
7781 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
7782
7783         * gengtype-yacc.y (option, stringseq): Add missing
7784         terminating semicolon.
7785
7786 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
7787
7788         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
7789         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
7790         tls_dtprel_ha_32, tls_dtprel_ha_64,
7791         tls_dtprel_lo_32, tls_dtprel_lo_64,
7792         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
7793         tls_tprel_ha_32, tls_tprel_ha_64,
7794         tls_tprel_lo_32, tls_tprel_lo_64,
7795         tls_got_tprel_32, tls_got_tprel_64,
7796         tls_tls_32, tls_tls_64): Replace register_operand with
7797         gpc_reg_operand.
7798
7799 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
7800
7801         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
7802         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
7803         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
7804         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
7805         *ctrdi_internal6): Replace register_operand with
7806         nonimmediate_operand.
7807
7808 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
7809
7810         * fold-const.c (fold): Reassociate multiply expression
7811         with an adjacent non-multiply expression to use
7812         architecture's multiply-add instruction.
7813
7814 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
7815
7816         * gengtype.c (create_option): New function.
7817         * gengtype.h: Prototype it.
7818         * gengtype-yacc.y (stringseq): New rule.
7819         (option): Use create_option.  Add new bare ID production.  Use
7820         stringseq, not STRING directly.
7821
7822         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
7823         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
7824         * varray.h, config/alpha/alpha.c:
7825         Use new shorter form of GTY markers.
7826
7827         * doc/gty.texi: Rewrite.
7828
7829 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
7830
7831         * config/darwin.c (machopic_function_base_name):
7832         Remove current_name and getting the name of the
7833         current function.
7834
7835 2004-03-30  Nick Clifton  <nickc@redhat.com>
7836
7837         * config/arm/arm.md (thumb_jump): Reduce the backward branch
7838         range, and increase the forward branch range, to allow for
7839         the fact that the PC will be off by 4.
7840
7841 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
7842
7843         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
7844
7845 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7846
7847         * config/rs6000/rs6000.c (output_vec_const_move):
7848         Find all cases of EASY_VECTOR_15_ADD_SELF.
7849         (easy_vector_constant_add_self): Accept
7850         all vector constant loadable by vsplt* and vadd*.
7851         (easy_vector_same): Use easy_vector_splat_const.
7852         (easy_vector_const): Use easy_vector_splat_const.
7853         (easy_vector_splat_const): New function.
7854         (gen_easy_vector_constant_add_self): New function.
7855
7856         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7857         New prototype.
7858
7859         * config/rs6000/altivec.md (movv4si splitter): Change to
7860         emit move insn with halfed vector constant.
7861         (*movv8hi splitter): Likewise.
7862         (*movv16qi splitter): Likewise.
7863
7864 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7865
7866         PR 11591
7867         * config/rs6000/rs6000.c (rs6000_legitimate_address):
7868         Allow any offset to argument pointer in no-strict case.
7869
7870 2004-03-30  Jan Hubicka  <jh@suse.cz>
7871
7872         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7873         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7874         dump file in non-unit-at-a-time mode.
7875
7876 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
7877
7878         * config/cris/cris.h: Correct #ifdef to test for
7879         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7880         HAVE_AS_MUL_BUG_ABORT_OPTION.
7881
7882 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7883
7884         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7885         the address inside the old RTL.
7886
7887 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
7888
7889         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7890         (struct c_binding, struct c_scope): Add chain_next
7891         attributes to GTY markers.
7892         (struct lang_identifier, struct lang_tree_node): Define
7893         here...
7894         * c-tree.h: ... not here.  No longer need to declare struct
7895         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7896         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
7897         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7898
7899         PR 14734, 11944
7900         * c-decl.c (get_parm_info): If error_mark_node is encountered
7901         in the bindings chain, unbind and discard it; don't abort.
7902
7903 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
7904             Dorit Naishlos <dorit@il.ibm.com>
7905
7906         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7907         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
7908
7909 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
7910
7911         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7912
7913         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7914         (m68hc11_attribute_table): New attribute "page0" to mark a global
7915         variable as being allocated from within page0 section.
7916         (m68hc11_encode_label): New function.
7917         (m68hc11_strip_name_encoding): New function.
7918         (m68hc11_page0_symbol_p): New function.
7919         (m68hc11_indirect_p): Accept global variables marked in page0.
7920         (m68hc11_encode_section_info): Lookup "page0" attribute.
7921
7922         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7923         represents access to page0 variables.
7924
7925         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7926         ("*logicalsi3_silshl16_zext"): Likewise.
7927         ("*ashldi3_const32"): Likewise.
7928         (peephole2 ashift): Likewise.
7929
7930 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7931
7932         * c-tree.h (C_DECL_REGISTER): New.
7933         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7934         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7935         (build_array_ref, c_mark_addressable): Set and use it.
7936         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7937         Allow structures with volatile fields to be declared register.
7938         Don't check TREE_ADDRESSABLE before warning about taking address
7939         of register.
7940         * c-decl.c (finish_decl): Don't allow structures with volatile
7941         fields to be placed in named register.
7942         * doc/trouble.texi: Remove reference to structures with volatile
7943         fields in registers.
7944
7945 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7946
7947         * function.c (thread_prologue_and_epilogue): Move
7948         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7949         before the epilogue.
7950
7951 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7952
7953         * expr.c (store_constructor): Use gen_int_mode to correctly
7954         sign-extend CONST_INT value.
7955
7956 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7957
7958         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7959         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7960         * doc/extend.texi: Likewise.
7961
7962 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7963
7964         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7965           with TYPE_ORIG_SIZE_TYPE.
7966
7967 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7968
7969         PR 14219
7970         * c-typeck.c (build_binary_op): Do not allow comparisons of
7971         vectors.
7972
7973 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7974
7975         * config.gcc: Remove sparc-tti-*.
7976         * config/sparc/pbd.h: Delete.
7977
7978         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7979         * config/sparc/aout.h: Likewise.
7980
7981         * config/sparc/sparc.h: Remove if 0'd code.
7982         * config/sparc/sparc.md (call): Remove if 0'd code.
7983         (call_value): Likewise.
7984         (nonlocal_goto): Likewise.
7985         (unimp_insn): Delete.
7986
7987 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7988
7989         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7990         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7991
7992 2004-03-25  Richard Henderson  <rth@redhat.com>
7993
7994         PR 11527
7995         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7996         rather than later.
7997
7998 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7999
8000         * builtins.c (fold_builtin): Fix error in last change.
8001
8002 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
8003
8004         * config/mips/mips.h: Formatting fix.
8005
8006 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8007
8008         * builtins.def: Add ctype builtins.
8009         * doc/extend.texi: Likewise.
8010
8011 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8012
8013         * builtins.c (fold_builtin): Add new builtin optimizations for
8014         sqrt and/or cbrt.
8015         * fold-const.c (fold): Likewise.
8016
8017 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
8018
8019         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
8020         (rs6000_sched_groups): New variable.
8021         (processor_target_table): Add power5.
8022         (rs6000_override_options): Set rs6000_sched_insert_nops,
8023         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
8024         from rs6000_sched_groups.
8025         (output_cbranch): Use rs6000_always_hint.
8026         (rs6000_variable_issue): Use rs6000_sched_groups.
8027         (rs6000_adjust_cost): Add CPU_POWER5.
8028         (is_microcoded_insn): Use rs6000_sched_groups.
8029         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
8030         Return 2 for POWER5 cracked instructions.
8031         (is_cracked_insn): Use rs6000_sched_groups.
8032         (is_branch_slot_insn): Use rs6000_sched_groups.
8033         (rs6000_issue_rate): Add CPU_POWER5.
8034         (rs6000_sched_finish): Use rs6000_sched_groups.
8035         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
8036         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
8037         (DEFAULT_SCHED_COSTLY_DEP): Delete.
8038         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
8039         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
8040         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
8041         * config/rs6000/power5.md: New file.
8042         * doc/invoke.texi: Add power5 option.
8043
8044 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8045
8046         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
8047         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
8048         * doc/invoke.texi: Fix a typo.
8049
8050 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8051
8052         PR optimization/9707.
8053         * stmt.c (emit_case_nodes): Emit equality comparisons instead
8054         of recursing if both children are single-valued cases with no
8055         children.
8056
8057 2004-03-25  Paul Brook  <paul@codesourcery.com>
8058
8059         * config/arm/arm.c (vfp_print_multi): Remove.
8060         (arm_output_fldmx): New function.
8061         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
8062         (arm_expand_prologue): Update to match.
8063         (arm_get_vfp_saved_size): New Function.
8064         (arm_get_frame_offsets): Use it.
8065         (arm_output_epilogue): Use new functions.
8066
8067 2004-03-24  Richard Henderson  <rth@redhat.com>
8068
8069         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
8070         (reg_known_value, reg_known_value_size): Likewise; make static.
8071         (reg_known_equiv_p): Make static.
8072         (clear_reg_alias_info): Update for new indexing.
8073         (get_reg_known_value, set_reg_known_value): New.
8074         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
8075         (canon_rtx): Use them.
8076         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
8077         Don't play queer offsetting games with reg_known_value and
8078         reg_known_equiv_p.
8079         (end_alias_analysis): Free reg_known_value with gc.
8080         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
8081         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
8082         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
8083         functions instead.
8084
8085 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8086
8087         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
8088         config/i386/mmintrin.h: Update copyright.
8089
8090 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8091
8092         * configure.ac: Add --enable-werror-always (for top level bootstrap
8093         support).
8094         * configure: Regenerate.
8095
8096 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
8097
8098         * objc/objc-act.c (objc_comptypes): Treat comparisons
8099         between 'Class' and '<class> *' as explicitly invalid.
8100
8101 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
8102
8103         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
8104         (-fprofile-values): Add enabled with profile-{generate,use}.
8105         (-fvpt): Same.
8106         (-ftracer): Add enabled with profile-use.
8107         (-funit-at-a-time): Add enabled at -O2,-O3.
8108         (-funroll-loops): Add enabled with profile-use.
8109         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
8110         (max-gcse-passes): Mention default.
8111         (max-cse-path-length): Mention default.
8112
8113 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8114
8115         * Makefile.in (STRICT2_WARN): Reorder.
8116         * configure.ac: Check for -Wold-style-definition, and use it
8117         in strict1_warn if it's available.
8118         * configure: Regnerate.
8119
8120 2004-03-24  Paul Brook  <paul@nowt.org>
8121
8122         * config.gcc <arm>: Add --with-abi=
8123         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
8124         thumb_far_jump_used): Remove prototypes.
8125         (arm_needs_doubleword_align): Add prototype.
8126         (thumb_compute_initial_elimination_offset): Ditto.
8127         * config/arm/arm.c (arm_get_frame_offsets): New function.
8128         (use_return_insn, output_return_instruction, arm_output_epilogue,
8129         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
8130         arm_expand_prologue, thumb_expand_epilogue): Use it.
8131         (arm_abi, target_abi_name, all_arm_abis): New variables.
8132         (arm_override_options): Set them.  Set structure padding for AAPCS.
8133         (arm_return_in_memory): Update ABI check.
8134         (arm_init_cumulative_args): Initialize can_split.
8135         (arm_needs_doubleword_align): New function.
8136         (arm_function_arg): Don't split args after pushing to stack. Handle
8137         doubleword/even reg alignment.
8138         (arm_va_arg): Handle all doubleword aligned args.
8139         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
8140         on ABI, not CPU.
8141         (arm_compute_save_reg0_reg12_mask): Fix comment.
8142         (thumb_get_frame_size, thumb_get_frame_size): Remove.
8143         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
8144         value for alignment.
8145         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
8146         to match.
8147         (thumb_compute_initial_elimination_offset): New function.
8148         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
8149         unneccessary rounding.
8150         * config/arm/arm.h (target_abi_name): Declare.
8151         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
8152         arm_abi_type, ARM_DEFAULT_ABI): Define.
8153         (ARM_FLAG_ATPCS): Remove.
8154         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
8155         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
8156         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
8157         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
8158         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
8159         Contitionalize on ABI, not CPU.
8160         (struct arm_stack_offsets): Define.
8161         (struct machine_function): Add stack_offsets.  Remove frame_size.
8162         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
8163         pushed.
8164         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
8165         doubleword alignment.
8166         (THUMB_INITIAL_ELIMINATION_OFFSET,
8167         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
8168         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
8169         * config/arm/arm.md (align_8): Enable for all targets.
8170         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
8171         (ARM_DEFAULT_ABI): Define.
8172         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
8173         -mstructure-size-boundary.
8174
8175 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8176
8177         * configure.ac: Check for -Wno-variadic-macros; don't use
8178         -pedantic (in stage 1 or a simple 'make all') unless it's available,
8179         and if it's available, use it.  Also, clean up check for
8180         -Wno-long-long.
8181         * configure: Regenerate.
8182
8183 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8184
8185         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
8186         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
8187         (MULTILIB_DEFAULTS): Use it.
8188         (MIPS_CPU_STRING_DEFAULT): Remove.
8189         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
8190         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
8191         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
8192         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
8193         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
8194         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
8195         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
8196         accordingly.
8197
8198 2004-03-24  DJ Delorie  <dj@redhat.com>
8199             Richard Sandiford  <rsandifo@redhat.com>
8200
8201         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
8202         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
8203         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
8204         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
8205         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
8206         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
8207         if TARGET_FIX_VR4122.
8208         * config/mips/mips.md (define_attr length): Account for nops inserted
8209         after macc and dmult when using -mfix-vr4122-bugs.
8210         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
8211         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
8212         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
8213         * config/mips/vr4122-div.S: New file.
8214         * doc/invoke.texi: Document -mfix-vr4122-bugs.
8215
8216 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8217
8218         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
8219         (TARGET_MIPS4130): New macro.
8220         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
8221         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
8222         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
8223         with PROCESSOR_R4130.
8224         * config/mips/mips.md (define_attr cpu): Add r4130.
8225         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
8226
8227 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8228             Richard Sandiford  <rsandifo@redhat.com>
8229
8230         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
8231
8232 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
8233
8234         PR preprocessor/14438
8235         * cpplib.c (do_pragma): Remove line_change call after pragma
8236         handler.
8237
8238 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
8239
8240         * doc/extend.texi (ARM Built-in Functions): Replace with correct
8241         declarations.
8242
8243 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8244
8245         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
8246         if flag_unsafe_math_optimizations.
8247         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
8248         and TARGET_80387 expand using truncdfsf2_noop pattern.
8249         (truncxfsf2): Likewise using truncxfsf2_noop.
8250         (truncxfdf2): Likewise using truncxfdf2_noop.
8251         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
8252
8253 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
8254
8255         * hooks.c (hook_constcharptr_tree_null): New hook.
8256         * hooks.h (hook_constcharptr_tree_null): New prototype.
8257         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
8258         * target.h (mangle_fundamental_type): New target hook.
8259         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
8260         target hook at rs6000_mangle_fundamental_type.
8261         (rs6000_mangle_fundamental_type): New function.
8262         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
8263
8264 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
8265
8266         PR 12267, 12391, 12560, 13129, 14114, 14133
8267         * c-tree.h: Forward declare struct c_binding.  Declare
8268         c_override_bindings_to_false.  Update prototypes.
8269         (struct lang_identifier): Update comments.  Change fields to be
8270         struct c_binding *.
8271         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
8272         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
8273         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
8274         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
8275         * c-common.h: Update prototypes.
8276         * c-decl.c (struct c_scope): Update commentary.  Remove names,
8277         names_last, parms, parms_last, tags, and shadowed fields.  Add
8278         bindings and depth fields.
8279         (scope_freelist): Move to more appropriate location.
8280         (c_print_identifier): Update for changes to struct lang_identifier.
8281         (objc_mark_locals_volatile): Update for new bindings structures.
8282         (global_bindings_p): Honor c_override_global_bindings_to_false.
8283         (pushlevel): Rename to push_scope; take no arguments; use the
8284         scope_freelist; initialize scope->depth and check for overflow.
8285         (poplevel): Rename to pop_scope; totally rewritten for new bindings
8286         structures.
8287         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
8288         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
8289         Improve some commentary.  Adjust handling of forward parm decls.
8290         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
8291         Preserve C_DECL_IN_EXTERNAL_SCOPE.
8292         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
8293         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
8294         decls.  Rewrite for new bindings structures.  Improve commentary.
8295         Eliminate the copy_node call.
8296         (implicit_decl_warning): Use the "diag" idiom (as seen in
8297         locate_old_decl) to reduce code duplication; call locate_old_decl
8298         if appropriate.  Relocate to remove need for forward declaration.
8299         (implicitly_declare): Adjust for new bindings structures.  Kludge
8300         around Objective-C not-really-builtin functions.
8301         (undeclared_variable): Improve diagnostics.  If current_function_decl
8302         is nonnull but current_function_scope is null, use current_scope.
8303         Use bind.
8304         (lookup_tag): Adjust for new bindings structures.  Kludge around
8305         Objective-C's tag declarations that wind up in the external scope.
8306         (lookup_name): Adjust for new bindings structures.  Kludge around
8307         c-common.c's pseudo-typedefs that wind up in the external scope.
8308         (lookup_name_current_level): Rename lookup_name_in_scope; take a
8309         second argument indicating the scope to examine; rewrite for
8310         new bindings structures.
8311         (c_init_decl_processing): Adjust for renamed functions.  Do not
8312         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
8313         First scope pushed is the external scope, not the global scope.
8314         (builtin_function): Use bind, not pushdecl.  Adjust other bits
8315         for new data structures.  Keep track of builtins that should be
8316         made visible automatically.
8317         (start_decl): Adjust diagnostics.  Remove unnecessary call to
8318         expand_decl.
8319         (grokparms): Return 0 if arg_types is error_mark_node.
8320         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
8321         reversed sense.  Rewrite for new bindings structures.  Do not
8322         leave any decls in the scope, to prevent pop_scope from doing
8323         contradictory things with them.
8324         (finish_struct, finish_enum): Remove redundant diagnostics.
8325         (build_enumerator): Don't cascade diagnostics for error_mark_node.
8326         Mark location where -pedantic changes the meaning of the program.
8327         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
8328         parameter decls into the function's scope structure using bind.
8329         Warn here about function definitions in the wrong style.
8330         Adjust diagnostics.
8331         (store_parm_decls): Correct the determination of whether a
8332         function was defined with a prototype.
8333         (c_write_global_declarations): Operate on all file decls and on
8334         the external scope.  Split body of the loop to...
8335         (c_write_global_declarations_1): ... this new function, to avoid
8336         code duplication.
8337         (truly_local_externals, first_builtin_decl, last_builtin_decl)
8338         (make_scope, pop_scope, in_parm_level_p, set_block)
8339         (any_external_decl, record_external_decl, bind_label, getdecls)
8340         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
8341         (c_reset_state): Delete.
8342         (visible_builtins, c_override_global_bindings_to_false)
8343         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
8344         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
8345         (external_scope, binding_freelist, bind, free_binding_and_advance)
8346         (push_file_scope, pop_file_scope): New.
8347         (pushtag, pushdecl_top_level, lookup_label, declare_label)
8348         (define_label, c_make_fname_decl, finish_decl)
8349         (mark_forward_parm_decls, build_compound_literal)
8350         (grokdeclarator, start_function, check_for_loop_decls)
8351         (identifier_global_value, record_builtin_type): Minor adjustments
8352         for new bindings structures.  Improve diagnostics and commentary.
8353         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
8354         pushlevel/poplevel respectively.
8355         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
8356         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
8357         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
8358         correct loop over multiple translation units; call fatal_error if
8359         requested to compile more than one file at once.  (This disables
8360         IMA temporarily - an up-front error being preferable to a crash.)
8361         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
8362         (all actions): Adjust calls to pushlevel/poplevel.
8363         (parsing_iso_function_signature): Delete.
8364         (extdef_1): Fold into extdef.
8365         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
8366         warn here about function definitions in the wrong style.
8367         (after_tyle_declarator, parm_declarator_starttypename)
8368         (parm_declarator_nostarttypename, notype_declarator): Remove
8369         commented-out productions.
8370         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
8371         an empty TREE_LIST node.  Adjust calls to get_parm_info.
8372         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
8373         to suppress -Wold-style-definition after this error.
8374         (c_parse_file): Don't clear the binding stack or call
8375         finish_fname_decls here.  Correct comment.
8376         * c-typeck.c (same_translation_unit_p): Export.
8377         (common_type): Use c_override_global_bindings_to_false, not
8378         pushlevel/poplevel/declare_parm_level.
8379         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8380         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8381         and LANG_HOOKS_GETDECLS with do-nothing stubs.
8382         * objc/objc-lang.c: Likewise.
8383         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8384         get_parm_info.
8385         (OBJC_VOID_AT_END): Delete; replace all uses
8386         with void_list_node.
8387         (generate_forward_declaration_to_string_table): Delete.
8388         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8389
8390         * coverage.c (create_coverage): Don't pushdecl anything.
8391         * langhooks.c (lhd_clear_binding_stack): Call
8392         lang_hooks.decls.poplevel, not poplevel.
8393         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8394         circular list rather than going into an infinite loop.
8395
8396 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
8397
8398         * optabs.c (expand_binop): When synthesizing double word rotates
8399         from single word shifts, use a new register target if the provided
8400         target is not a REG already.
8401
8402 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8403
8404         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8405         * c-common.c (handle_mode_attribute): Add extra arg to
8406         build_pointer_type_for_mode and build_reference_type_for_mode.
8407         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8408         for INTEGER_CST.
8409         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8410         Chain pointers via TYPE_NEXT_PTR_TO.
8411         (build_reference_type_for_mode): Similarly.
8412         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8413         and build_reference_type_for_mode.
8414         (tree_check4_failed): New function.
8415         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8416         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8417         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8418         Add check.
8419
8420 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8421
8422         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8423         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
8424         when both A and B are nonnegative.
8425         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8426         nonzero.
8427
8428 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8429
8430         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8431         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8432
8433 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8434
8435         PR optimization/14669
8436         * fold-const.c (fold): Only unwiden integer comparisons for equality
8437         and inequality operators, or when the signedness doesn't change.
8438
8439 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8440
8441         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8442         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8443         * config/sparc/t-linux: New file.
8444
8445 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8446
8447         * gcse.c (can_assign_to_reg_p): New function, split out from...
8448         (want_to_gcse_p): ...here.
8449         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8450         the rhs of a store.
8451
8452 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8453
8454         * c-typeck.c (same_translation_unit_p): Fix pasto.
8455
8456 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8457
8458         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8459         (PARAM_MAX_SCHED_REGION_INSNS): New.
8460         * sched-rgn.c: Include params.h
8461         (MAX_RGN_BLOCKS): Delete.
8462         (MAX_RGN_INSNS): Delete.
8463         (too_large): Return bool.  Convert to PARAM_VALUE.
8464         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8465         * doc/invoke.texi (param): Document max-sched-region-blocks and
8466         max-sched-region-insns.
8467
8468 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8469
8470         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8471         for base types.
8472
8473 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8474
8475         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8476         change.
8477
8478 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8479
8480         PR c/14069
8481         * c-decl.c (finish_struct): Change type of incorrect flexible array
8482         field into error_mark_node.
8483
8484 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8485
8486         PR target/14580
8487         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8488         who are not local for Darwin PIC.
8489
8490 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8491
8492         * regrename.c (regrename_optimize): Set regs_ever_live for all
8493         registers introduced as replacement.
8494
8495 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8496
8497         PR middle-end/14470
8498         * expr.c (mark_queue): New function.
8499         (emit_insns_enqueued_after_mark): New function replacing
8500         emit_queue.  Clear the body of emitted queued insns.
8501         (emit_queue): Call emit_insns_enqueued_after_mark.
8502         (store_expr): Mark the increment queue on entry.  Emit
8503         only the incrementations queued when expanding the source.
8504
8505 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8506
8507         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8508         of top level bootstrap, and consistency).  Reindent.
8509         * configure: Regenerate.
8510
8511 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8512
8513         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8514         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8515         unnecessary casts.
8516
8517 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8518
8519         PR target/14291
8520         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8521         __MINGW32__.
8522
8523 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8524
8525         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8526         to nonimmediate_operand.
8527         ("*doloop_di"): Likewise.
8528
8529 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8530
8531         * real.h (struct real_value): Use the same type for all
8532         bitfields.  Rename exp to uexp.
8533         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8534         Adjust all uses of exp...
8535         * builtins.c: ... here, ...
8536         * emit-rtl.c: ... here, and ...
8537         * real.c: ... and here.
8538
8539 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8540
8541         * pretty-print.c (pp_base_maybe_space): New function.
8542         * pretty-print.h (pp_base_maybe_space): Declare.
8543         (pp_maybe_space): New macro.
8544
8545 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8546
8547         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8548
8549 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8550
8551         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8552         of using register multiplication cost.
8553         (expand_mult): Adapt choose_mult_variant call.
8554         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8555         of MODE; pass appropriate cost bound.  Adjust result when
8556         performing signed multiplication by a negative constant.
8557         Don't use intermediate modes larger than word_mode.
8558
8559 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8560
8561         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8562         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8563         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8564         * explow.c (expr_size): Likewise.
8565         * expr.h (placeholder_list, find_placeholder): Deleted.
8566         * expr.c (store_constructor): Likewise.
8567         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8568         (placeholder_list, find_placeholder): Deleted.
8569         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8570         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8571         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8572         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8573         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8574         Likewise.
8575         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8576         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8577         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8578         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8579         Clean up by using first_rtl_op.
8580         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8581         (substitute_placeholder_in_expr): New function.
8582         * tree.def (WITH_RECORD_EXPR): Deleted.
8583         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8584         (substitute_placeholder_in_expr): New.
8585
8586 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8587
8588         * dojump.c (prefer_and_bit_test): Fix which part of
8589         the and_test is replaced.
8590
8591 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8592
8593         * frontends.texi: Add missing line.
8594
8595 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8596             Chris Devers  <cdevers@pobox.com>
8597             Joseph S. Myers  <jsm@polyomino.org.uk>
8598
8599         * doc/frontends.texi: Rewrite.
8600         * doc/gcc.texi: Update last modification date.
8601
8602 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8603
8604         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8605         message before redirecting the edge.
8606
8607 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8608
8609         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8610         flag.
8611         * explow.c (force_not_mem): Set REG_POINTER flag according to
8612         MEM_POINTER one.
8613         * rtl.h (MEM_POINTER): New macro.
8614         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8615         for MEM_POINTER.
8616
8617 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8618
8619         PR target/13889
8620         * cse.c (fold_rtx): Avoid substituting constants into unary
8621         conversion operations.
8622
8623 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8624
8625         * fold-const.c (fold): Replace "expr" with "t".
8626
8627 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8628
8629         PR c/12373
8630         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8631         DECL_ORIGINAL_TYPE if there isn't one.
8632
8633 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8634
8635         * fold-const.c (fold): Replace "final_type" with "type".
8636         Remove variable "final_type".
8637
8638 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8639
8640         * fold-const.c (fold): Constify "type".
8641         Replace "TREE_TYPE (t)" with "type".
8642
8643 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8644
8645         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8646         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8647         via (*targetm.foo) () with targetm.foo ().
8648
8649 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8650
8651         PR other/14630
8652         * doc/install.texi: Add info directory category and entry.
8653
8654 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8655
8656         * fold-const.c (fold): Replace "t" with "tem" where it is used
8657         as a temporary variable.  Remove "orig_t" and all of its uses.
8658
8659 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8660
8661         * fold-const.c (fold): Remove variable "invert".
8662         Move the handling of relational expressions that can be folded
8663         to a constant ...
8664         (fold_relational_const): ... here.
8665         (tree_expr_nonzero_p): New.
8666
8667 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8668
8669         PR c/14635
8670         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8671         DEF_GCC_BUILTIN.
8672
8673 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8674
8675         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8676         (GTFILES): Add $(srcdir)/dojump.h.
8677         (gt-dojump.h): New dependency.
8678         * dojump.c (and_reg, and_test, shift_test): New static variables.
8679         (prefer_and_bit_test): New function.
8680         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8681
8682 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8683
8684         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8685         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8686         reorg.c, tree.h: Fix comment typos.
8687
8688 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8689
8690         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8691         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8692         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8693         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8694         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8695         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8696         targetm.foo ().
8697
8698 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8699
8700         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8701         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8702         always_inline attribute.
8703         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8704         Treat expansion as completed even if literal argument is
8705         invalid (so that other expansions are not tried in vain).
8706
8707 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8708
8709         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8710         const0_rtx.
8711
8712 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8713
8714         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8715         ...
8716         (fold_abs_const): ... here.
8717
8718 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8719
8720         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8721
8722 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8723
8724         PR target/11520
8725         * config/avr/avr.md ("call_insn"): Handle explicit integer
8726         specially.
8727         (call_value_insn): Likewise.
8728
8729 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8730
8731         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8732
8733 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8734
8735         * fold-const.c (negate_expr): Move the handling of constants
8736         ...
8737         (fold_negate_const): ... here.
8738
8739 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8740
8741         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8742         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8743         * tree.c (debug_no_type_hash): Deleted.
8744         (type_hash_canon): Abort if passed a variant.
8745         Check lang_hooks.types.hash_types.
8746         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8747         (build_array_type): Remove unnecessary allocation of pointer type.
8748         (build_complex_type): Properly qualify resulting type.
8749
8750 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8751
8752         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8753
8754 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8755
8756         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8757         (expand_mult): ...here.
8758         (extract_high_half): New, split out from expand_mult_highpart.
8759         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
8760         (expand_highpart): Evaluate the cost of a shift/add sequence,
8761         then see if any of the specialized optabs are cheaper.
8762
8763 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
8764
8765         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8766
8767 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8768
8769         * convert.c (convert_to_real): Add more math builtins.
8770
8771 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8772
8773         * convert.c (convert_to_real): Reformat using switch stmt.
8774
8775 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8776
8777         * c-common.c (pointer_int_sum): Do not complain about using
8778         pointers to pointers-to-members.
8779
8780 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8781
8782         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
8783         have moved to the target hooks structure".
8784
8785 2004-03-18  James E Wilson  <wilson@specifixinc.com>
8786
8787         * config/mips/mips.md (type): Split move into arith and fmove.  Split
8788         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
8789         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
8790         Likewise.
8791         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
8792         Likewise.
8793         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
8794         rm7_fp_quick): Likewise.
8795         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
8796         rm9k_fquick): Likewise.
8797         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
8798         Likewise.
8799         (ir_sr70_icmp): Delete.
8800
8801 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8802
8803         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
8804         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
8805         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
8806         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
8807         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
8808         Protect with proper check.
8809         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
8810         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
8811         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
8812         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
8813         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
8814         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
8815         not TYPE_FIELDS.
8816         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
8817
8818 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
8819
8820         * gcse.c (eliminate_partially_redundant_loads): Reject change if
8821         dest is set between beginning and current insn.
8822
8823 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8824
8825         * c-decl.c (grokdeclarator): Do not complain about redeclaring
8826         visible "static" identifiers "extern" in a local scope.
8827         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
8828         post-increments/decrements.
8829
8830 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
8831
8832         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
8833         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
8834         (xtensa_va_start): Remove assignment to current_function_arg_words.
8835
8836 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
8837
8838         * alias.c (record_set): Detect the case where a register is assigned
8839         a new value that has the same base term as the old one.
8840
8841 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8842
8843         * doloop.c: Removed.
8844         * loop-doloop.c: New file.
8845         * Makefile.in (doloop.o): Remove.
8846         (loop-doloop.o): New.
8847         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
8848         * cfgloopanal.c (get_loop_level): New function.
8849         * loop-iv.c (iv_number_of_iterations): Handle case when loop
8850         is leaved immediatelly.
8851         * loop.c (strength_reduce): Do not call doloop optimization.
8852         * loop.h (LOOP_BCT): Removed.
8853         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8854         (rest_of_handle_loop2): Call doloop_optimize_loops.
8855         (rest_of_compilation): Test for optimizations moved to
8856         rest_of_handle_loop2.
8857
8858 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
8859
8860         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8861         for mixed mode.
8862         (rs6000_emit_prologue): Ditto.
8863         (rs6000_emit_epilogue): Ditto.
8864         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8865         macro for mixed mode.
8866
8867 2004-03-18  Jan Hubicka  <jh@suse.cz>
8868
8869         * predict.c (propagate_freq): Compute correctly frequency of
8870         EXIT_BLOCK.
8871
8872 2004-03-17  Eric Christopher  <echristo@redhat.com>
8873
8874         * builtins.c (apply_args_size): Use reg_raw_mode.
8875         (apply_result_size): Ditto.
8876
8877 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8878
8879         PR target/14620
8880         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8881
8882 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
8883
8884         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8885         32-bit builds when defaulting to 32-bit.
8886
8887 2004-03-17  Jan Hubicka  <jh@suse.cz>
8888
8889         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8890         array.
8891
8892 2004-03-17  James E Wilson  <wilson@specifixinc.com>
8893
8894         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
8895         (hazard_nop): Change type to nop.
8896         (type): Split arith into arith, shift, slt, clz.  Delete darith.
8897         Fix all uses.  Change arith to multi if more than one insn emitted.
8898         * config/mips/5400.md (ir_vr54_arith): Likewise.
8899         * config/mips/5500.md (ir_vr55_arith): Likewise.
8900         * config/mips/7000.md (rm7_int_other): Likewise.
8901         * config/mips/9000.md (rm9k_int): Likewise.
8902         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
8903
8904 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
8905
8906         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8907         to hold the subtype tree instead of recomputing it several times.
8908
8909 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8910
8911         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8912         CC_INVERT.
8913         * config/mn10300/mn10300.md (cc): Remove "invert".
8914
8915 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8916
8917         * builtins.c (integer_valued_real_p): Add builtin rint.
8918         (fold_builtin): Likewise.
8919         * convert.c (convert_to_real): Likewise.
8920
8921         * convert.c (convert_to_real): Fix typos in `long double'
8922         builtins.
8923
8924 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8925
8926         PR c++/14481
8927         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8928         generated COMPOUND_EXPRs.
8929
8930 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8931
8932         * config/h8300/t-rtems (h8300-*-rtems*): New.
8933
8934 2004-03-16  Eric Christopher  <echristo@redhat.com>
8935
8936         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8937
8938 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8939
8940         * config/i386/i386-protos.h: Add a prototype for
8941         ix86_reverse_condition.
8942         * config/i386/i386.c (ix86_reverse_condition): New.
8943         * config/i386/i386.h (REVERSE_CONDITION): Use
8944         ix86_reverse_condition.
8945         * config/i386/i386.md: Use ix86_reverse_condition instead of
8946         REVERSE_CONDITION.
8947
8948 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8949
8950         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8951
8952 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8953
8954         PR bootstrap/12974
8955         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8956
8957 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8958
8959         * c-common.c (c_common_type_for_mode): Build vector types on
8960         demand.
8961         (handle_mode_attribute): Deprecate using the mode attribute
8962         to create vector types.  Fix indentation.
8963         (vector_type_node_list): Remove.
8964         (handle_vector_size_attribute): Create vector types on demand.
8965         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8966         * c-typeck.c (comptypes): Make vector types compatible if they
8967         have the same underlying mode.
8968         (convert_for_assignment): Use comptypes to convert between
8969         vector types.
8970         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8971         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8972         vector types.
8973         * tree.h: Remove vector types.
8974         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8975         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8976         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8977         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8978         * doc/extend.texi (Vector Types): Document how to use the
8979         vector_size attribute to create vectors, rather than mode.
8980
8981         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8982         * config/i386/emmintrin.h: Likewise.
8983         * config/i386/mmintrin.h: Likewise.
8984         * config/i386/xmmintrin.h: Likewise.
8985         * config/sh/ushmedia.h: Likewise.
8986
8987 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8988
8989         * config/freebsd-spec.h, config/arc/arc-protos.h,
8990         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8991         config/arm/linux-gas.h, config/arm/semi.h,
8992         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8993         config/ia64/freebsd.h, config/mips/7000.md,
8994         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8995         config/sparc/pbd.h: Update copyright.
8996
8997 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8998
8999         PR target/14577
9000         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
9001
9002 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9003
9004         * combine.c (combine_simplify_rtx): Remove the "last"
9005         parameter and its documentation.  Adjust recursive calls.
9006         (simplify_logical): Always perform the only simplification
9007         controlled by "last", if the simplified expression is
9008         actually different.
9009         (try_combine): Do not pass the "last" parameter to
9010         combine_simplify_rtx.
9011
9012 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
9013
9014         PR target/14599
9015         * config/mips/mips.md (UNSPEC_GP): New constant.
9016         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
9017         an UNSPEC instead of (reg $gp).
9018         (mips16_gp_pseudo_reg): Change accordingly.
9019         (print_operand): Print $gp directly when handling CONST_GP_P.
9020
9021 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9022
9023         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
9024         * longlong.h: Make code 68060 clean when compiling for m68060.
9025
9026 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9027
9028         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
9029         * doc/md.texi: Clarify description of "i" constraint.
9030
9031 2004-03-15  James E Wilson  <wilson@specifixinc.com>
9032
9033         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
9034         Split store into store, fpstore, fpidxstore.  Fix all uses.
9035         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
9036         Likewise.
9037         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
9038         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
9039         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
9040         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
9041         ir_sr70_fstore): Likewise.
9042
9043 2004-03-15  Richard Henderson  <rth@redhat.com>
9044
9045         PR middle-end/14535
9046         * except.c (collect_one_action_chain): Record action for cleanup
9047         outer of exception spec.
9048
9049 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
9050
9051         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9052         Fix the check for abort and only do the mmap if we can.
9053
9054 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
9055
9056         * config/sparc/sparc.h: Rework comments about the code model
9057         in 64-bit environment and the mode 'Pmode'.
9058         * doc/invoke.texi (SPARC options): Rework description of the
9059         different code models supported in 64-bit environment.
9060
9061 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9062
9063         * defaults.h (REVERSIBLE_CC_MODE): Define.
9064         * jump.c (reversed_comparison_code_parts): Don't check if
9065         REVERSIBLE_CC_MODE is defined.
9066
9067 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9068
9069         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
9070         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
9071         hosthooks.h, params.h, ra-colorize.c, web.c,
9072         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
9073         config/avr/avr-protos.h, config/avr/avr.md,
9074         config/fr30/fr30-protos.h, config/fr30/fr30.md,
9075         config/h8300/fixunssfsi.c, config/i386/darwin.h,
9076         config/i386/freebsd.h, config/i386/freebsd64.h,
9077         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
9078         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
9079         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
9080         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
9081         config/pa/pa64-regs.h, config/rs6000/aix41.h,
9082         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
9083         config/sparc/aout.h, config/sparc/freebsd.h,
9084         config/sparc/litecoff.h, config/vax/vax-protos.h,
9085         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
9086         copyright.
9087
9088 2004-03-15  Paul Brook  <paul@codesourcery.com>
9089
9090         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
9091
9092 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9093
9094         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
9095         (pp_c_cv_qualifier): Document.
9096         (pp_c_space_for_pointer_operator): Likewise.
9097         (pp_c_integer_constant): Likewise.
9098         (pp_c_identifier): Likewise.
9099         (pp_c_init_declarator): Don't print function body.
9100
9101 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
9102
9103         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
9104         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
9105         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
9106         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
9107         wording and grammar.
9108
9109 2004-03-14  Roger Sayle  <roger@eyesopen.com>
9110
9111         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
9112         with lang_hooks.foo ().
9113         * builtins.c (expand_builtin_va_arg): Likewise.
9114         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
9115         c_common_type_for_mode, c_common_nodes_and_builtins,
9116         handle_mode_attribute, handle_vector_size_attribute): Likewise.
9117         * c-convert.c (convert): Likewise.
9118         * c-format.c (check_format_types): Likewise.
9119         * c-objc-common.c (c_tree_printer): Likewise.
9120         * c-typeck.c (build_unary_op, build_conditional_expr,
9121         build_binary_op): Likewise.
9122         * calls.c (try_to_integrate, expand_call,
9123         emit_library_call_value_1): Likewise.
9124         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
9125         Likewise.
9126         * cgraphunit.c (record_call_1, cgraph_analyze_function,
9127         cgraph_expand_function): Likewise.
9128         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
9129         * coverage.c (build_fn_info_type, build_ctr_info_type,
9130         build_gcov_info, create_coverage): Likewise.
9131         * dbxout.c (dbxout_init): Likewise.
9132         * diagnostic.c (diagnostic_report_current_function): Likewise.
9133         * dojump.c (do_jump): Likewise.
9134         * dwarf2out.c (dwarf2_name): Likewise.
9135         * except.c (init_eh): Likewise.
9136         * explow.c (expr_size, int_expr_size): Likewise.
9137         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
9138         Likewise.
9139         * expr.c (store_expr, store_constructor, safe_from_p,
9140         expand_expr_real, do_store_flag, try_casesi): Likewise.
9141         * function.c (push_function_context_to, pop_function_context_from,
9142         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
9143         put_var_into_stack, allocate_struct_function, current_function_name):
9144         Likewise.
9145         * integrate.c (copy_decl_for_inlining, expand_inline_function):
9146         Likewise.
9147         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
9148         lhd_print_error_function): Likewise.
9149         * opts.c (handle_option, decode_options): Likewise.
9150         * passes.c (open_dump_file): Likewise.
9151         * print-tree.c (print_node): Likewise.
9152         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
9153         expand_decl_cleanup, emit_case_nodes): Likewise.
9154         * stor-layout.c (variable_size): Likewise.
9155         * toplev.c (announce_function, wrapup_global_declarations,
9156         check_global_declarations, compile_file, default_tree_printer,
9157         process_options, lang_dependent_init, finalize): Likewise.
9158         * tree-dump.c (dequeue_and_dump): Likewise.
9159         * tree-inline.c (remap_decl, remap_block, copy_body_r,
9160         initialize_inlined_parameters, declare_return_variable,
9161         inlinable_function_p, expand_call_inline, optimize_inline_calls,
9162         walk_tree, copy_tree_r): Likewise.
9163         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9164         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
9165         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
9166         variably_modified_type_p, dump_tree_statistics): Likewise.
9167         * varasm.c (assemble_variable, compare_constant, copy_constant,
9168         force_const_mem, compute_reloc_for_constant, output_constant,
9169         output_addressed_constants, initializer_constant_valid_p): Likewise.
9170
9171 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
9172
9173         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
9174
9175 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
9176
9177         * doc/install.texi: Reflect autoconf and automake version for
9178         libffi. Update autoconf version to 2.59.
9179
9180 2004-03-13  Roger Sayle  <roger@eyesopen.com>
9181
9182         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
9183         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
9184         make_range, build_range_check, fold_range_test, unextend,
9185         constant_boolean_node, fold_binary_op_with_conditional_arg,
9186         fold_truthop, fold_mathfn_compare, fold_inf_compare,
9187         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
9188         with lang_hooks.foo ().
9189
9190 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
9191
9192         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
9193
9194 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
9195
9196         * doc/install.texi: Note status of -fnew-ra.
9197
9198 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
9199
9200         PR middle-end/14470
9201         * expr.c (store_expr): Call emit_queue before generating the move
9202         from the temporary to the original target.  Protect the temporary
9203         from emit_queue.
9204
9205 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
9206
9207         PR target/14533
9208         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
9209         other than UNSPEC_GOTOFF.
9210
9211 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
9212
9213         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
9214         to arm_legitimate_index_p.  Update all callers with SET as default
9215         value.
9216         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
9217         range if OUTER is a sign-extend operation on QImode.  Correctly
9218         reject shift operations on sign-extended QImode addresses.
9219         (bad_signed_byte_operand): Delete.
9220         (arm_extendqisi_mem_op): New function.
9221         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
9222         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
9223         constraints.
9224         (CONSTRAINT_LEN): New.
9225         (EXTRA_CONSTRAINT): Delete.  Replace with...
9226         (EXTRA_CONSTRAINT_STR): ... this.
9227         (PREDICATE_CODES): Remove bad_signed_byte_operand.
9228         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
9229         is now always default.
9230         (define_splits for bad sign-extend loads): Delete.
9231         (arm_extendqisi, arm_extendqisi_v5): Likewise.
9232         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
9233         Rework 'U' constraint to 'Uv'.
9234         * arm-protos.h: Remove bad_signed_byte_operand.  Add
9235         arm_extendqisi_mem_op.
9236         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
9237         Add Uq constraint.
9238
9239 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
9240
9241         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
9242         with targetm version.
9243
9244         PR target/14567
9245         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
9246         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
9247         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
9248         Update all users of RS6000_ARG_SIZE.
9249         (function_arg_advance): Count fregno using mode size.
9250         (function_arg): Handle long double split over regs and memory.
9251         (function_arg_partial_nregs): Likewise.
9252         (rs6000_va_arg): Repackage complex args.
9253
9254 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
9255
9256         PR target/14047
9257         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
9258         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
9259         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
9260
9261 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
9262
9263         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
9264         prototype.
9265         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
9266         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9267
9268 2003-03-12  Andrew Pinski  <apinski@apple.com>
9269
9270         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9271         Use ret instead of result. Use addr instead of base.
9272
9273 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
9274
9275         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
9276         fixes required by libstdc++ and update installation instructions
9277         for libstdc++.a.
9278
9279 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
9280
9281         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
9282         leading '@' on fastcall symbols before stripping suffix.
9283
9284 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9285
9286         * combine.c (unmentioned_reg_p): New function to check whether an
9287         expression is a "specialization" of another, i.e. that there are
9288         no registers or memory references mentioned in the first that don't
9289         appear in the second.
9290         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
9291         (combine_instructions): Also try combining instructions using the
9292         REG_EQUAL note from a preceding log-linked instruction.
9293
9294 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9295
9296         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
9297
9298 2004-03-12  Matt Austern  <austern@apple.com>
9299
9300         * target.h (struct gcc_target): New target hook, unwind_label.
9301         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
9302         * output.h (default_emit_unwind_label): New function.
9303         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
9304         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
9305         (TARGET_SUPPORTS_HIDDEN): New target macro.
9306         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
9307         that corresponds to this FDE.
9308         (FRAME_BEGIN_LABEL): Allow target to override default label.
9309         (output_call_frame_info): If FDEs are linknonce, then use extra
9310         indirection for FDE encoding, output a label for each FDE, and
9311         output an empty label for each function without an FDE.
9312         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
9313         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
9314         decls with DECL_ONE_ONLY set, if that macro is defined.
9315         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
9316         for a SUPPORTS_ONE_ONLY target.
9317         * config/darwin-protos.h (darwin_unique_section): Declare.
9318         (darwin_asm_named_section): Likewise.
9319         (darwin_section_type_flags): Likewise.
9320         (darwin_non_lazy_pcrel): Likewise.
9321         (darwin_emit_unwind_label): Likewise.
9322         (darwin_make_decl_one_only): Likewise.
9323         * config/darwin.c (machopic_finish): Get rid of tweak that
9324         eliminate stubs for symbols that are defined.
9325         (darwin_encode_section_info): Don't treat weak functions as defined.
9326         (darwin_make_decl_one_only): Define.
9327         (darwin_asm_named_section): Likewise.
9328         (darwin_section_type_flags): Likewise.
9329         (darwin_unique_section): Likewise.
9330         (darwin_emit_unwind_label): Likewise.
9331         (darwin_non_lazy_pcrel): Likewise.
9332         (darwin_asm_output_dwarf_delta): Difference between two labels is
9333         local only if both labels are local.
9334         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
9335         (ASM_MAKE_LABEL_LINKONCE): Likewise.
9336         (TARGET_SUPPORTS_HIDDEN): Likewise.
9337         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
9338         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
9339         (FRAME_BEGIN_LABEL): Likewise.
9340         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
9341         (ASM_DECLARE_FUNCTION_NAME): Likewise.
9342         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
9343         (TARGET_ASM_UNIQUE_SECTION): Define.
9344         (EH_FRAME_SECTION_NAME): Define.
9345         (EH_FRAME_SECTION_ATTR): Likewise.
9346         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9347         (TARGET_ASM_NAMED_SECTION): Likewise.
9348         (TARGET_SECTION_TYPE_FLAGS): Likewise.
9349         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
9350         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
9351         TARGET_ASM_EMIT_UNWIND_LABEL.
9352
9353 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9354
9355         * builtins.c (expand_builtin_mathfn): Add pow10* to the
9356         existing exp10* case.
9357         (expand_builtin): Likewise.
9358
9359 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9360
9361         * doc/tm.texi (registers) <Values in Registers>: Add
9362         entry for REGMODE_NATURAL_SIZE.
9363
9364 2004-03-12  Richard Henderson  <rth@redhat.com>
9365
9366         PR target/14547
9367         * target.h (struct gcc_target): Move calls substructure before
9368         booleans.  Add split_complex_arg.
9369         * function.c (assign_parms, split_complex_args): Use it.
9370         * calls.c (expand_call): Likewise.
9371         (split_complex_values): Likewise.  Check for splittable types
9372         before allocating memory.
9373         (split_complex_types): Likewise.
9374         * system.h (SPLIT_COMPLEX_ARGS): Poison.
9375         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9376         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9377         * config/alpha/alpha.c (alpha_split_complex_arg): New.
9378         (TARGET_SPLIT_COMPLEX_ARG): New.
9379         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9380         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9381         (rs6000_override_options): Zap it for non-AIX.
9382         (rs6000_function_value): Use targetm.calls.split_complex_arg.
9383         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9384         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9385         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9386         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9387         SPLIT_COMPLEX_ARGS entry.
9388
9389 2004-03-11  Richard Henderson  <rth@redhat.com>
9390
9391         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9392         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9393         (alpha_emit_xfloating_arith): Update to match.
9394         (alpha_emit_xfloating_compare): Likewise.
9395         (alpha_emit_xfloating_cvt): Likewise.
9396         (alpha_emit_xfloating_libcall): Take already built symbol,
9397         mark call const.
9398         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9399         op1 in a register.
9400
9401 2004-03-11  Richard Henderson  <rth@redhat.com>
9402
9403         PR target/14539
9404         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9405
9406         * simplify-rtx.c (simplify_relational_operation): Fix typo.
9407
9408 2004-03-11  Richard Henderson  <rth@redhat.com>
9409
9410         PR middle-end/14477
9411         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9412
9413 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9414
9415         PR target/14262
9416         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9417         defined, pass small BLKmode values in registers in the low-order part.
9418
9419 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9420
9421         * combine.c (if_then_else_cond): Check for NULL return value of
9422         simplify_gen_subreg.
9423
9424 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9425
9426         PR target/14496
9427         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9428         TARGET_SINGLE_FLOAT.
9429
9430 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9431
9432         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9433         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9434         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9435         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9436
9437 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9438
9439         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9440         -((int)X>>C) where C is an integer constant one bit less than the
9441         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9442         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9443
9444         * simplify-rtx.c (simplify_unary_operation): Also implement the
9445         above transformations at the RTL level.
9446
9447 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9448
9449         * real.c (encode_ibm_extended): Do round low word.
9450
9451 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9452
9453         * config/arm/arm.md (is_xscale): Comment this attribute and move
9454         it a bit further up in the file, closer to related attributes.
9455
9456 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9457
9458         * config/host-solaris.c (sol_gt_pch_use_address): Add
9459         missing terminating marker to comment.
9460
9461 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9462
9463         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9464         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9465         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9466         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9467         move_operand as source predicate in all cases.
9468         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9469         Test reg_or_0_operand.  Use move_operand as source predicate.
9470         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9471         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9472         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9473         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9474         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9475         Use move_operand as source predicate.  Remove 'K' constraint.
9476         (*movqi_internal): Likewise movqi_internal.
9477         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9478         reg_or_0_operand.  Use move_operand as source predicate.
9479         (*movsf_softfloat): Likewise movsf_internal2.
9480         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9481         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9482         (*movdf_softfloat): Likewise movdf_internal2.
9483         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9484         for DImode if !TARGET_64BIT.
9485         (mips_legitimize_move): Simplify accordingly.
9486
9487 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9488
9489         PR/14362
9490         * var-tracking.c (struct variable_def): Added field refcount.
9491         (variable_htab_free): Decrease the refcount and delete variable
9492         only if there are no more references.
9493         (unshare_variable): New function.
9494         (vars_copy_1): Increase refcount instead of copying the variable.
9495         (variable_union): Share the variables where possible, unshare
9496         the variables if needed.
9497         (variable_different_p): Return false if var1 and var2 are
9498         the same structure.
9499         (variable_was_changed): Init the refcount of new variable.
9500         (set_frame_base_location): Unshare variable if needed.
9501         (set_variable_part): Init the refcount of new variable.
9502         Unshare the variables if needed.
9503         (delete_variable_part): Unshare the variables if needed.
9504         (emit_notes_for_differences_1): Init the refcount of new variable.
9505         (vt_add_function_parameters): Do not add function parameters to
9506         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9507         (vt_initialize): Do not add frame_base_decl to IN set of
9508         ENTRY_BLOCK_PTR because it is unused anyway.
9509
9510 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9511
9512         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9513         (vars_copy): Likewise.
9514         (variable_union): Likewise.
9515         (set_variable_part): Likewise.
9516         (delete_variable_part): Likewise.
9517
9518 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9519
9520         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9521         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9522         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9523         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9524         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9525         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9526         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9527         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9528         config/stormy16/stormy16.c: Fix comment typos and formatting.
9529
9530 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9531
9532         * configure: Regenerate, since I forgot to while committing Paolo's
9533         changes.
9534
9535 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9536
9537         PR ada/14131
9538         Move language detection to the top level.
9539         * configure.ac: Remove code to detect languages,
9540         it now lives exclusively in the top level.
9541         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9542         top level, renamed to ACX_PROG_GNAT.
9543
9544 2004-03-10  Richard Henderson  <rth@redhat.com>
9545
9546         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9547         extra arguments.
9548         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9549         and host_xmake_file fragments.
9550         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9551         (gt_pch_restore): Similarly for gt_pch_use_address.
9552         (default_gt_pch_get_address): New.
9553         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9554         (default_gt_pch_use_address): Split out of gt_pch_restore.
9555         (mmap_gt_pch_use_address): Likewise.
9556         * hooks.c (hook_voidp_size_t_null): Remove.
9557         (hook_bool_voidp_size_t_false): Remove.
9558         * hooks.h: Likewise.
9559         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9560         default_ or mmap_ definitions.
9561         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9562         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9563         and gt_pch_use_address.
9564         * config/host-linux.c, config/host-solaris.c: New files.
9565         * config/x-linux, config/x-solaris: New files.
9566         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9567         Update for changed definition.
9568         (darwin_rs6000_gt_pch_use_address): Likewise.
9569         * doc/hostconfig.texi: Update docs.
9570
9571 2004-03-10  Richard Henderson  <rth@redhat.com>
9572
9573         PR c/14517
9574         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9575         except for pedantic c90 mode.
9576
9577 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9578
9579         * configure.ac: Bump AC_PREREQ to 2.59.
9580         * configure: Regenerate.
9581
9582 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9583
9584         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9585         (exp10_optab, exp2_optab): Define corresponding macros.
9586         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9587         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9588         using exp10?f2 and exp2?f2 patterns.
9589         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9590         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9591         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9592         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9593
9594         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9595         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9596         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9597
9598 2004-03-10  Anthony Green  <green@redhat.com>
9599
9600         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9601
9602 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9603
9604         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9605         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9606         __LONGDOUBLE128.
9607         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9608         TARGET_OS_AIX_CPP_BUILTINS.
9609         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9610         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9611         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9612         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9613         previous change.
9614
9615 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9616
9617         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9618
9619 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9620
9621         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9622         __LONGDOUBLE128 on AIX.
9623
9624 2004-03-10  Andrew Haley  <aph@redhat.com>
9625
9626         PR optimization/14381
9627         * function.c (expand_function_end): Emit a blockage insn before
9628         the epilogue when -fnon-call-exceptions is used.
9629
9630         * except.c (expand_start_all_catch): Make comment more accurate.
9631
9632 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9633
9634         PR target/14480
9635         * config/rs6000/t-rtems: Add missing file on branch.
9636
9637 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9638
9639         * dbxout.c (dbxout_symbol_location): Do not output references
9640         to optimized-out constant pool symbols.
9641
9642 2004-03-10  Andreas Schwab  <schwab@suse.de>
9643
9644         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9645         twon34_r.
9646
9647 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9648
9649         * alias.c (alias_sets_might_conflict_p): New.
9650         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9651         * common.opt (Wstrict-aliasing=): New.
9652         * flags.h (warn_strict_aliasing): Change type to int.
9653         * opts.c (warn_strict_aliasing): Change type to int.
9654         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9655         * tree.h (alias_sets_might_conflict_p): Declare it.
9656         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9657
9658 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9659
9660         PR bootstrap/12371
9661         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9662         (CALL_USED_REGISTERS): Likewise.
9663         (REG_CLASS_CONTENTS): Likewise.
9664         (REG_ALLOC_ORDER): New.
9665         (REGNO_REG_CLASS): Use regno_reg_class.
9666         * config/m68k/m68k.c: Add regno_reg_class array.
9667
9668 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9669
9670         * config/ia64/ia64.md (divsi3): Fix algorithm.
9671           (udivsi3): Ditto.
9672           (setf_exp_xf): Remove '*' from name.
9673         * testsuite/gcc.dg/20040309-1.c: New test.
9674
9675 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9676
9677         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9678         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9679         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9680         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9681         (sparc_aout_select_rtx_section): Don't check
9682         SUNOS4_SHARED_LIBRARIES.
9683         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9684
9685 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9686
9687         PR other/14474
9688         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9689         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9690         INTERNALS".
9691
9692 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9693
9694         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9695         (LIBGCC_SPEC): Update to match.
9696
9697 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9698
9699         * c-decl.c (last_function_parms, last_function_parm_tags)
9700         (last_function_parm_others, current_function_parms)
9701         (current_function_parm_tags, current_function_parm_others):
9702         Delete.
9703         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9704         New macros.
9705         (grokdeclarator): For function definitions, save the arg-info
9706         block from the declarator in DECL_ARGUMENTS.
9707         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9708         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9709         contains only PARM_DECLs.  Improve diagnostics.
9710         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9711         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9712         (store_parm_decls_newstyle): Take the function to operate on,
9713         and an arg-info block, as arguments; don't get anything from
9714         current_function_* globals.
9715         (store_parm_decls_oldstyle): Likewise.
9716         (store_parm_decls): Pass fndecl and its arg-info block down to
9717         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9718         argument lists through store_parm_decls_newstyle to reduce
9719         overhead.
9720         (pushdecl): Comment on the problems with the call to copy_node.
9721         Clear DECL_ARGUMENTS of the old node after copying it, if it
9722         is an arg-info block instead of a chain of decls.
9723         (start_function): Do not manipulate current_function_parm* or
9724         last_function_parm*.
9725
9726 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9727             Andrew Pinski  <pinskia@physics.uc.edu>
9728
9729         * ifcvt.c (noce_try_sign_mask): New function to transform
9730         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9731         (noce_process_if_block): Call noce_try_sign_mask.
9732
9733 2004-03-09  Andrew Pinski  <apinski@apple.com>
9734
9735         * c-typeck.c (tagged_types_tu_compatible_p):
9736         Fix typo.
9737
9738 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9739
9740         * simplify-rtx.c (simplify_const_relational_operation): New function
9741         renamed from simplify_relational_operation.
9742         (simplify_relational_operation): Change prototype to accept an
9743         additional mode argument.  Call simplify_const_relational_operation.
9744         (simplify_gen_relational): Update simplify_relational_operation call.
9745         (simplify_ternary_operation): Update simplify_relational_operation
9746         subroutine call to use simplify_const_relational_operation instead.
9747
9748         * rtl.h (simplify_const_relational_operation): Prototype here.
9749         (simplify_relational_operation): Add addtional mode argument.
9750
9751         * combine.c (combine_simplify_rtx): Update calls to
9752         simplify_relational_operation.
9753         (simplify_set): Likewise.
9754         (gen_binary): Likewise.
9755         * cse.c (fold_rtx): Likewise.
9756         * dojump.c (compare_from_rtx): Likewise.
9757         (do_compare_rtx_and_jump): Likewise.
9758         * integrate.c (subst_constants): Likewise.
9759         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9760
9761 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9762
9763         * config/m32r/m32r.md: Remove all define_peephole's.
9764
9765 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
9766
9767         * config/rs6000/rs6000.md: Remove trailing whitespace.
9768
9769 2004-03-08  Eric Christopher  <echristo@redhat.com>
9770
9771         * Makefile.in (site.exp): Add libiconv variable definition.
9772
9773 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
9774
9775         * configure: Regenerate for config/accross.m4 correction.
9776
9777 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9778
9779         PR target/14480
9780         * config/rs6000/t-rtems: Add missing file on branch.
9781
9782 2004-03-08  Roger Sayle  <roger@eyesopen.com>
9783
9784         PR middle-end/14289
9785         * c-typeck.c (c_mark_addressable): A register variable should
9786         be considered global if its not automatic, i.e. TREE_PUBLIC,
9787         TREE_STATIC or DECL_EXTERNAL.
9788         * function.c (put_var_into_stack): Call abort when placing a
9789         hard register into the stack, if x_parm_reg_stack_loc is NULL.
9790
9791 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
9792
9793         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
9794         ("*extendqisi2_short_displ"): Likewise.
9795
9796 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9797
9798         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
9799         (comp_operator): Likewise.
9800         * config/pdp11/pdp11-protos.h: Remove corresponding
9801         prototypes.
9802
9803 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
9804
9805         * expr.c (highest_pow2_factor_for_type): Rename into
9806         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
9807         TYPE_ALIGN when the target is a COMPONENT_REF.
9808         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
9809
9810 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9811
9812         * config/rs6000/rs6000.c: Formatting fix.
9813         (legitimate_offset_address_p): Correct offset range check.
9814
9815         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
9816         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
9817         and MASK_STRING.
9818
9819 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9820
9821         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
9822         for little endian.
9823         ("ashrdi3_no_power"): Disable for little endian.
9824         (ashrdi3): Same.
9825
9826 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9827
9828         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
9829         builtins.
9830
9831 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
9832
9833         PR target/14471
9834         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
9835         case, checking for -no-mul-bug-abort option.
9836         * configure, config.in: Regenerate.
9837         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
9838         and -mno-mul-bug-workaround.
9839         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
9840         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
9841         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
9842         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
9843         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
9844         sure mulu.d is not last on cache-line.
9845         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
9846         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
9847         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
9848         (TARGET_SWITCHES): New options -mmul-bug-workaround and
9849         -mno-mul-bug-workaround.
9850         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
9851         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
9852         * config/cris/cris.c (cris_operand_extend_operator): Clarify
9853         relation to MULT in head comment.
9854         (cris_op_str): Abort for MULT.
9855         (cris_print_operand) <case '!'>: New case.
9856
9857 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9858
9859         PR debug/11983
9860         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9861         dw_val_class_vec.  Replace use throughout file.
9862         (dw_float_const): Delete.
9863         (dw_vec_const): New.
9864         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
9865         throughout file.
9866         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
9867         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
9868         (size_of_die): Adjust dw_val_class_vec sizing.
9869         (output_die): Output dw_val_class_vec.
9870         (insert_int, extract_int, insert_float): New functions.
9871         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9872         Handle CONST_VECTOR.
9873         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9874
9875 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9876
9877         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9878         AltiVec abi cannot co-exist.
9879
9880         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9881
9882 2004-03-07  Jan Hubicka  <jh@suse.cz>
9883
9884         * except.c (emit_to_new_bb_before):  Break fallthru edges.
9885
9886 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
9887
9888         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9889         ("*lshrsi3"): Also accept an immediate for 68HC12.
9890         ("*ashrsi3_const"): Likewise.
9891         ("*ashrsi3"): Likewise.
9892         ("*ashlsi3_const"): Likewise.
9893         ("*ashlsi3"): Likewise.
9894         ("cmphi_1_hc12"): Compare two hard register by pushing them and
9895         comparing with a pop; don't use a split for that.
9896         ("cmphi split"): Disable compare split for 68HC12.
9897
9898         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
9899         the status operands if they have side effects.
9900
9901 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
9902
9903         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
9904         definition.
9905         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
9906         config/h8300/h8300.h, config/ia64/ia64.h,
9907         config/mcore/mcore.h, config/mmix/mmix.h,
9908         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9909         config/stormy16/stormy16.h, config/v850/v850.h,
9910         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9911         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9912         definition.
9913
9914 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9915
9916         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9917         <XOR_EXPR>: Fold x ^ x as zero.
9918         <AND_EXPR>: Fold x & x as x.
9919
9920 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9921
9922         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9923         "foo++ == const" into "++foo == const+incr".
9924
9925 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9926
9927         * config/mips/mips.c (mips_in_small_data_p): Return false if
9928         TARGET_ABICALLS.
9929
9930 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9931
9932         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9933         the stack register.
9934         (expand_prologue): Don't make an interrupt or a trap handler a far
9935         symbol.
9936         (m68hc11_initial_elimination_offset): Likewise.
9937
9938 2004-03-06  Richard Henderson  <rth@redhat.com>
9939
9940         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9941
9942 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9943
9944         * config/ns32k/ns32k-protos.h: Add a prototype for
9945         ns32k_notice_update_cc.
9946         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9947         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9948         ns32k_notice_update_cc.
9949
9950 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9951
9952         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9953         "*load_multiple_si"): Allow only if reload_completed.
9954         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9955         Likewise.
9956
9957 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9958
9959         * config/vax/vax-protos.h: Add a prototype for
9960         vax_notice_update_cc.
9961         * config/vax/vax.c (vax_notice_update_cc): New.
9962         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9963         vax_notice_update_cc.
9964
9965 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9966
9967         * collect2.c (main): Only export initfunc and finifunc if
9968         LD_INIT_SWITCH not defined.
9969         (scan_prog_file): Only export constructors and destructors if
9970         LD_INIT_SWITCH not defined.  Only export symbols not found in
9971         shared objects.
9972
9973 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9974
9975         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9976         last.
9977         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9978         from calls to gen_icacheflush.
9979
9980 2004-03-06  Richard Henderson  <rth@redhat.com>
9981
9982         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9983         (TARGET_LONG_DOUBLE_128): New.
9984         (TARGET_SWITCHES): Add long-double-{128,64}.
9985         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9986         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9987         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9988         (WIDEST_HARDWARE_FP_SIZE): New.
9989         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9990         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9991         if TARGET_VAX_FLOAT.
9992         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9993         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9994
9995 2004-03-06  Richard Henderson  <rth@redhat.com>
9996
9997         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9998         botched rtx class conversion.
9999
10000 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10001
10002         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
10003         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
10004
10005         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
10006         macros.
10007         * fold-const.c (fold_mathfn_compare, fold): Likewise.
10008
10009 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
10010
10011         PR target/14343
10012         * config/i386/i386.md (movv2di_internal): Conditionalize on
10013         TARGET_SSE, not TARGET_SSE2.
10014
10015 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
10016
10017         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
10018         duplicated line.
10019
10020 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10021
10022         * builtins.c: Consistently use logN not log* in comments.
10023
10024 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
10025
10026         * rtl.h (mem_expr_equal_p): Function prototype added.
10027         * cfgcleanup.c (merge_memattrs): New function.
10028         (flow_find_cross_jump): Call merge_memattrs for matching insns.
10029         * emit-rtl.c (mem_expr_equal_p): New function.
10030
10031 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
10032
10033         * objc/objc-act.c (synth_module_prologue): Const-qualify
10034         objc_selector type if using the GNU runtime; fix generated
10035         signatures for objc_msg_lookup and objc_msg_lookup_super
10036         to match what GNU ObjC headers provide; reformat and clean up.
10037         (synth_self_and_ucmd_args): Use previously constructed (and
10038         hence possibly const-qualified) objc_selector type.
10039
10040 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10041
10042         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
10043
10044 2004-03-05  Jason Merrill  <jason@redhat.com>
10045
10046         * tree.h (TYPE_HASH): Use TYPE_UID.
10047         (TREE_HASH): New macro with old definition of TYPE_HASH.
10048         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
10049         (build_array_type, build_function_type): Likewise.
10050         (build_method_type_directly): Likewise.
10051         (build_offset_type, build_complex_type): Likewise.
10052         (type_hash_list, attribute_hash_list): Likewise. Now static.
10053         * except.c: s/TYPE_HASH/TREE_HASH/.
10054
10055 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
10056
10057         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
10058         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
10059         __va_ndx by 2 words when referencing an argument on the stack.
10060         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
10061         words when an arg on the stack is first seen.
10062
10063 2004-03-05  Paul Brook  <paul@codesourcery.com>
10064
10065         * arm.h (ARM_FLAG_VFP): Remove.
10066         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
10067         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
10068
10069 2004-03-05  Paul Brook  <paul@codesourcery.com>
10070
10071         * function.c (assign_parms): Include pretend alignment offset.
10072
10073 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10074
10075         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
10076         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
10077
10078 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
10079
10080         * configure.ac: When passing --enable-languages to subdir
10081         configure when host != build, make sure we don't pass an empty
10082         value.
10083         * configure: Regenerate.
10084
10085 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
10086
10087         PR 13577
10088         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
10089         options.
10090
10091 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10092
10093         * simplify-rtx.c (simplify_relational_operation): If
10094         flag_wrapv is set, do not move terms between the two
10095         side of a relational operator.
10096
10097 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10098
10099         * rtlanal.c: Include target.h and output.h
10100         (rtx_cost, address_cost, default_address_cost): Move from...
10101         * cse.c (rtx_cost, address_cost, default_address_cost):
10102         ... this file.
10103         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
10104         * Makefile.in: Adjust dependencies.
10105
10106 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
10107
10108         * cse.c (cse_end_of_basic_block): Make static.
10109         * local-alloc.c (function_invariant_p): Move to
10110         reload1.c.
10111         * loop.c (libcall_other_reg, record_excess_regs):
10112         Make static.
10113         * reload1.c (function_invariant_p): Moved here
10114         from local-alloc.c, made static.
10115         * rtl.h (cse_end_of_basic_block, function_invariant_p,
10116         libcall_other_reg, record_excess_regs): Remove
10117         declarations.
10118
10119 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10120
10121         * config/m32r/m32r.c (signed_comparison_operator): Add a
10122         missing parenthesis.
10123
10124 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
10125
10126         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
10127         going to call mmap again.  Read the file into the right place.
10128         Give a fatal error if we have to relocate.
10129
10130 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
10131
10132         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
10133         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
10134
10135 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
10136
10137         PR other/14354
10138         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
10139         round the same.  When rounding, clear bits that would cause a
10140         second rounding in pack_d.
10141         (_fpmul_parts): Ditto.  Remove #if 0:d code.
10142
10143 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
10144
10145         PR c++/14425, c++/14426
10146         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
10147         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
10148         Change C++ definitions to accept a 'const int' argument;
10149         the prototypes already do.
10150         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
10151         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
10152         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
10153         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
10154         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
10155         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
10156         end in ..._int; change them to accept an int instead of a char
10157         as the last parameter.
10158
10159 2004-03-04  Phil Edwards  <phil@codesourcery.com>
10160
10161         * genmultilib:  Change '=' to '-' when translating option names
10162         to directory names.
10163
10164 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10165
10166         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
10167         stack slot for temp used for result of BLKmode but in integral mode.
10168
10169 2004-03-04  Jan Hubicka  <jh@suse.cz>
10170
10171         * reload.c (find_reloads): Reorganize if seqeunce to switch.
10172
10173         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
10174         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
10175
10176 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
10177
10178         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
10179         * testsuite/gcc.dg/20040303-1.c: New test.
10180
10181 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10182
10183         * ppro.md: Rewrite as a DFA pipeline description.
10184         * i386.md: Remove all uses of the ppro_uops attribute.
10185         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
10186         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
10187         ix86_sched_reorder, ix86_variable_issue,
10188         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
10189         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
10190         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
10191         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
10192         * athlon.md (athlon_ssecmp_load): Fix comment
10193
10194 2004-03-04  Stuart Hastings  <stuart@apple.com>
10195
10196         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
10197
10198 2004-03-04  Stuart Hastings  <stuart@apple.com>
10199
10200         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
10201         686, tell Darwin assembler to allow prefetch insns, non-empty def
10202         of SUBTARGET_OPTION_TRANSLATE_TABLE.
10203
10204 2004-03-04  DJ Delorie  <dj@redhat.com>
10205
10206         PR optimization/14282
10207         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
10208         between a call and the assignment of its return value.
10209
10210 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10211
10212         * config/h8300/h8300.c: Put a comment for every function.
10213
10214 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10215
10216         * config/h8300/h8300.md: Add comments about peephole2's.
10217
10218 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10219
10220         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
10221
10222 2004-03-04  Jan Hubicka  <jh@suse.cz>
10223
10224         * cfgcleanup.c (thread_jump): Update call of cselib_init.
10225         * cselib.c (cselib_record_memory): New static variable.
10226         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
10227         Give up on memories when asked for.
10228         (cselib_init): Accept new argument.
10229         * cselib.h (cselib_init): Update prototype.
10230         * gcse.c (local_cprop_pass): Update call of cselib_init.
10231         * loop.c (load_mems): Update call of cselib_init.
10232         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
10233         * sched-deps.c (sched_analyze): Update call of cselib_init.
10234
10235 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10236             GP <gp@qnx.com>
10237
10238         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
10239         when compiling PIC.
10240
10241 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
10242
10243         PR/14362
10244         * var-tracking.c (track_expr_p): Do not track variables which
10245         should be ignored for debugging purposes.
10246
10247 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10248
10249         * real.c (encode_ibm_extended): Don't bother rounding low double.
10250         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
10251         when fmt->pnan < fmt->p.
10252
10253 2004-03-04  Eric Christopher  <echristo@redhat.com>
10254
10255         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
10256         only range of valid arg registers and fixed_regs.
10257
10258 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10259
10260         PR target/14406
10261         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
10262         (abstf2, abstf2_internal): New define_expand.
10263
10264 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10265
10266         PR optimization/14235
10267         * expr.c (convert_move): Copy the source to a new pseudo
10268         when converting from a sub-word source to a larger-than-word
10269         register which conflicts with the source.
10270
10271 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
10272
10273         PR 13728
10274         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
10275         parameters with the same name, unless one is a forward decl.
10276         Do not issue a redundant-redeclaration warning for forward
10277         decls of parameters.
10278
10279 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10280
10281         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
10282         configuration.
10283
10284 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
10285
10286         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
10287
10288 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10289
10290         * target-def.h (TARGET_OPTF): Delete.
10291         * c-opts.c (TARGET_OPTF): Define.
10292
10293 2004-03-04  Jan Hubicka  <jh@suse.cz>
10294
10295         * cselib.c (cselib_finish): Fix another miss-application of my previous
10296         patch.
10297
10298 2004-03-03  Mike Stump  <mrs@apple.com>
10299
10300         Add framework support for darwin.
10301
10302         * c-incpath.c: Include target.h and machmode.h.
10303         (add_path): Use a consistent style for cpp_dir.  Initialize
10304         p->construct to 0.
10305         (add_cpp_dir_path): New.
10306         (register_include_chains): Add use of extra_includes callback.
10307         (hook_void_int): Add.
10308         (target_c_incpath): Add.
10309         * c-incpath.h (add_cpp_dir_path): New.
10310         (target_c_incpath_s): Add.
10311         (target_c_incpath): Add.
10312         (C_INCPATH_INIT): Add.
10313         * c-opts.c (c_common_missing_argument,
10314         c_common_handle_option): Add -F argument processing.
10315         * c.opt: Add -F argument processing.
10316         * gcc.c (trad_capable_cpp): Add -F argument processing.
10317         * cppfiles.c (find_file_in_dir): Update to use construct
10318         callback.
10319         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
10320         cpp_get_prev): New.
10321         (_cpp_find_file): Use search_path_exhausted.
10322         (make_cpp_dir): Initialize construct to 0.
10323         * cpplib.h (missing_header_cb
10324         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
10325         (cpp_callbacks): Add missing_header
10326         (cpp_dir): Add construct.
10327         * target-def.h: (TARGET_OPTF): New.
10328         * hooks.c (hook_void_int, hook_void_charptr): Add.
10329         * hooks.h (hook_void_int, hook_void_charptr): Add.
10330         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
10331         $(MACHMODE_H) dependencies.
10332         * doc/invoke.texi (Darwin Options): Document -F.
10333         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
10334         (TARGET_OPTF): Add.
10335         * fix-header.c (target_c_incpath): Add.
10336
10337         * config/darwin-c.c: Add c-incpath.h include.
10338         (using_frameworks, find_subframework_file,
10339         find_subframework_header, add_system_framework_path,
10340         frameworks_in_use, num_frameworks, max_frameworks,
10341         add_framework, find_framework, struct framework_header,
10342         framework_header_dirs, framework_construct_pathname,
10343         find_subframework_file, add_system_framework_path,
10344         add_framework_path, framework_defaults,
10345         darwin_register_frameworks, find_subframework_header): Add.
10346         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
10347         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
10348         (CPP_SPEC): Add __APPLE_CC__ support.
10349         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
10350
10351 2004-03-04  Jan Hubicka  <jh@suse.cz>
10352
10353         * cselib.c (cselib_finish): Fix miss-application of my previous
10354         patch.
10355
10356 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10357
10358         * hooks.c (hook_tree_tree_identity): New.
10359         * hooks.h: Add a prototype for hook_tree_tree_identity.
10360         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
10361         instead of MD_ASM_CLOBBERS.
10362         * system.h (MD_ASM_CLOBBERS): Poison.
10363         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
10364         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
10365         * target.h (gcc_target): Add md_asm_clobbers.
10366         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
10367         (ix86_md_asm_clobbers): New.
10368         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
10369         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
10370         TARGET_MD_ASM_CLOBBERS.
10371
10372 2004-03-03  Stuart Hastings  <stuart@apple.com>
10373
10374         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
10375
10376 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10377
10378         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10379
10380         * config/sparc/sparc.h (ASM_FLOAT): Delete.
10381         (ASM_DOUBLE): Likewise.
10382         (ASM_LONGDOUBLE): Likewise.
10383         * config/sparc/pbd.h (ASM_INT_OP): Delete.
10384
10385 2003-03-03  Richard Henderson  <rth@redhat.com>
10386
10387         PR opt/13862
10388         * cselib.c (cselib_record_sets): Don't record multiple sets in
10389         asm insns.
10390
10391 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
10392
10393         * common.opt: Add description of the new -fgcse-after-reload flag.
10394
10395         * flags.h (flag_gcse_after_reload): Declaration of global variable.
10396
10397         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10398         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10399         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10400         get_bb_avail_insn, hash_scan_set_after_reload,
10401         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10402         gcse_after_reload, get_bb_avail_insn): New functions to implement
10403         gcse-after-reload.
10404         (gcse_after_reload_main): New function, the main entry point to
10405         gcse-after-reload.
10406
10407         * rtl.h (gcse_after_reload_main): Declaration of the new function.
10408
10409         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10410
10411         * toplev.c (flag_gcse_after_reload): Initialization.
10412
10413         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10414
10415         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10416         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10417         the gcse after reload optimization.
10418
10419         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10420         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10421         parameters.
10422
10423         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10424
10425 2004-03-03  Nicolas Pitre <nico@cam.org>
10426
10427         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10428         small negative values.
10429
10430 2004-03-03  Jan Hubicka  <jh@suse.cz>
10431
10432         * cselib.c (hash_table):  Remove GTY marker.
10433         (reg_values): Turn into array.
10434         (used_regs): Likewise.
10435         (n_used_regs): New static variable.
10436         (reg_values_old): Kill.
10437         (clear_table): Update uses of arrays.
10438         (cselib_lookup): Likewise.
10439         (cselib_record_set): Likewise.
10440         (cselib_init): Likewise.
10441         (cselib_finish): Likewise.
10442         (cselib_udpate_varray_sizes): Kill.
10443         * cselib.h (cselib_update_varray_sizes): Kill.
10444
10445 2004-03-03  Paul Brook  <paul@codesourcery.com>
10446
10447         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10448
10449 2004-03-03  Jan Hubicka  <jh@suse.cz>
10450
10451         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10452         Rename from ...; make statistics transparent.
10453         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10454         (loc_descriptor): New structure.
10455         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10456         add_statistics):
10457         New static function.
10458         (ggc_record_overhead, dump_statistics): New global function.
10459         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10460         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10461         from ...; accept locations
10462         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10463         ggc_realloc, ggc_alloc_typed):  ... this one.
10464         from ...; accept locations
10465         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10466         ggc_alloc_stat): Rename from ... ; pass locations
10467         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10468         ... this one.
10469         (ggc_alloc_stat): Record overehead.
10470         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10471         ggc_realloc, ggc_alloc_typed):  Turn to macros
10472         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10473         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10474         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10475         * langhooks.h (lhd_make_node): Declare.
10476         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10477         * langhooks.c (lhd_make_node): New.
10478         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10479         locations.
10480         (rtx_alloc, swallow_copy_rtx): ... this one.
10481         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10482         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10483         * toplpev.c (finalize): Dump stats.
10484         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10485         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10486         Rename from ... ; pass locators.
10487         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10488         build?,  build_decl): Declare.
10489         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10490         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10491         Declare.
10492         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10493         build?,  build_decl): New macros.
10494         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10495         * statistics.h: New file.
10496
10497 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10498             Richard Sandiford  <rsandifo@redhat.com>
10499
10500         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10501         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10502         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10503         * config/mips/mips.c (mips_output_division): Fill the branch delay
10504         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10505         TARGET_FIX_R4400.
10506         (mips_output_division): Adjust accordingly.
10507         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10508         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10509
10510 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10511
10512         * alias.c (rtx_equal_for_memref_p): Use predicates
10513         to test rtx classes and new rtx class codes, possibly
10514         splitting conditionals that tested against '<' and 'o'.
10515         * caller-save.c (save_call_clobbered_regs): Likewise.
10516         * combine.c (contains_muldiv, find_split_point, subst,
10517         combine_simplify_rtx, simplify_if_then_else,
10518         simplify_set, simplify_logical, expand_compound_operation,
10519         make_compound_operation, if_then_else_cond, known_cond,
10520         apply_distributive_law, cached_nonzero_bits,
10521         cached_num_sign_bit_copies, simplify_shift_const,
10522         gen_binary, simplify_comparison, update_table_tick,
10523         record_value_for_reg, get_lsat_value_validate): Likewise.
10524         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10525         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10526         Likewise.
10527         * emit-rtl.c (copy_insn_1): Likewise.
10528         * expr.c (force_operand): Likewise.
10529         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10530         * flow.c (notice_stack_pointer_modification_1,
10531         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10532         and_reg_cond, elim_reg_cond): Likewise.
10533         * function.c (update_epilogue_consts): Likewise.
10534         * genattrtab.c (attr_rtx_1): Likewise.
10535         * genopinit.c (gen_insn): Likewise.
10536         * integrate.c (subst_constants): Likewise.
10537         * jump.c (reversed_comparison_code_parts,
10538         reversed_comparison_code, delete_related_insns,
10539         rtx_renumbered_equal_p): Likewise.
10540         * local-alloc.c (block_alloc): Likewise.
10541         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10542         canonicalize_condition): Likewise.
10543         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10544         Likewise.
10545         * optabs.c (add_equal_node, expand_binop): Likewise.
10546         * predict.c (estimate_probability): Likewise.
10547         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10548         * recog.c (validate_replace_rtx_1, comparison_operator,
10549         offsettable_address_p, constrain_operands): Likewise.
10550         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10551         Likewise.
10552         * regclass.c (scan_one_insn): Likewise.
10553         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10554         * regrename.c (kill_autoinc_value): Likewise.
10555         * reload.c (find_reusable_reload, find_reloads,
10556         reg_overlap_mentioned_for_reload_p): Likewise.
10557         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10558         * rtl.c (copy_rtx): Likewise.
10559         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10560         * rtlanal.c (commutative_operand_precedence): Likewise.
10561         * sched-deps.c (conditions_mutex_p): Likewise.
10562         * sched-rgn.c (is_cfg_nonregular): Likewise.
10563         * simplify-rtx.c (simplify_gen_binary,
10564         simplify_gen_relational, simplify_replace_rtx,
10565         simplify_unary_operation, simplify_binary_operation,
10566         simplify_ternary_operation, simplify_rtx): Likewise.
10567         * unroll.c (reg_dead_after_loop): Likewise.
10568         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10569         print_operand): Likewise.
10570         * config/arc/arc.c (proper_comparison_operator): Likewise.
10571         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10572         Likewise.
10573         * config/avr/avr.c (_reg_unused_after): Likewise.
10574         * config/frv/frv.c (frv_ifcvt_modify_tests,
10575         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10576         * config/i386/i386.c (ix86_comparison_operator,
10577         ix86_carry_flag_operator, fcmov_comparison_operator,
10578         arith_or_logical_operator, print_operand,
10579         ix86_expand_binary_operator, ix86_binary_operator_ok):
10580         Likewise.
10581         * config/i386/i386.md: Likewise.
10582         * config/ia64/ia64.c (not_postinc_memory_operand,
10583         ia64_print_operand, update_set_flags, errata_emit_nops):
10584         Likewise.
10585         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10586         CONSTRAINT_OK_FOR_S): Likewise.
10587         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10588         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10589         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10590         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10591         Likewise.
10592         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10593         eqne_comparison_operator, signed_comparison_operator):
10594         Likewise.
10595         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10596         Likewise.
10597         * config/mmix/mmix (mmix_foldable_comparison_operator,
10598         mmix_comparison_operator): Likewise.
10599         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10600         * config/rs6000/rs6000.c (stmw_operation,
10601         branch_comparison_operator, trap_comparison_operator,
10602         ccr_bit): Likewise.
10603         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10604         * config/s390/s390.c (s390_alc_comparison,
10605         s390_slb_comparison):L Likewise.
10606         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10607         Likewise.
10608         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10609         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10610         emit_hard_tfmode_operation, reg_unused_after)
10611         * doc/md.texi, doc/rtl.texi: Likewise.
10612
10613         * ra-debug.c: Add 2004 to list of copyright years.
10614         * unroll.c: Likewise.
10615
10616         * combine.c (simplify_logical): Remove dummy test,
10617         (apply_distributive_law): Fix typo in comment.
10618         GET_CODE (x) == AND so x is a commutative binary op.
10619         * jump.c (delete_related_insns): simplify loop
10620         condition, move testing of RTX codes inside the loop.
10621         (rtx_renumbered_equal_p): do not use RTX_CODE.
10622         * rtl.c (rtx_class): Declare as enum rtx_class.
10623         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10624         Move to RTX_COMM_COMPARE class.
10625         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10626         Move to RTX_CONST_OBJ class.
10627         * rtl.h (enum rtx_class): New declaration,
10628         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10629         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10630         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10631         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10632         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10633         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10634         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10635         OBJECT_P): New macros.
10636         * config/sparc/sparc.c (noov_compare_op): Remove register
10637         from parameter.
10638
10639 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10640
10641         * target.h: Remove texi jargons in comments.
10642
10643 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10644
10645         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10646         threshold to 0x4f.
10647
10648         Revert:
10649         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10650         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10651         as well.
10652         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10653         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10654
10655 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10656
10657         * doc/md.texi (cbranchmode4): New.
10658
10659 2004-03-02  Eric Christopher  <echristo@redhat.com>
10660
10661         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10662         fix_trunc.
10663         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10664         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10665         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10666         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10667
10668 2004-03-02  Richard Henderson  <rth@redhat.com>
10669
10670         PR middle-end/11767
10671         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10672         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10673         before the compare, if flag_non_call_exceptions.
10674
10675 2004-03-02  Richard Henderson  <rth@redhat.com>
10676
10677         PR middle-end/14327
10678         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10679         emitting the label, not after.
10680
10681 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10682
10683         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10684         (m68hc11_mov_addr_mode): Likewise.
10685         (m68hc11_override_options): Initialize them based on target.
10686         (register_indirect_p): Allow a MEM for indirect addressing modes and
10687         use flags to control what is allowed.
10688         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10689         supported addressing modes.
10690         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10691         (go_if_legitimate_address_internal): Likewise.
10692         (m68hc11_indirect_p): Likewise and check the mode.
10693         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10694
10695 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10696
10697         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10698         (expand_builtin_setjmp_setup): Use
10699         targetm.builtin_setjmp_frame_value instead of
10700         BUILTIN_SETJMP_FRAME_VALUE.
10701         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10702         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10703         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10704         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10705         * targhooks.c (default_builtin_setjmp_frame_value): New.
10706         * targhooks.h: Add a prototype for
10707         default_builtin_setjmp_frame_value.
10708         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10709         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10710
10711 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10712
10713         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10714         sequences of moves.
10715         (add peepholes): New peepholes to optimize sequences adding small
10716         constants.
10717         (bset peepholes): New peepholes to transform an OR in a bset form
10718         (bclr peepholes): Likewise for bclr form.
10719         (cmp peepholes): New peepholes to avoid register copies when comparing.
10720
10721 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10722
10723         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10724         to separate push from moves.
10725         ("*pushdf_internal"): Likewise.
10726         ("*pushsf_internal"): Likewise.
10727         ("*pushsi_internal"): Likewise.
10728         ("movdi_internal"): Use define_insn_and_split; non push operand.
10729         ("movdf_internal"): Likewise.
10730         ("movsf_internal"): Likewise.
10731         ("movsi_internal"): Likewise.
10732         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10733         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10734         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10735
10736 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10737
10738         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10739         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10740         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10741         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10742         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10743         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10744         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10745         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10746         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10747         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10748         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10749
10750 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10751
10752         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10753         (SOFT_XY_REGNUM): Define.
10754         (cmp split): Use the above instead of hard coded numbers.
10755         (8-bit op split): No need to check the mode; allow Q_REG.
10756         (ashift split): Adjust the first operand if it uses the SP and we
10757         are pushing the shifted value.
10758         (plus shift split): Fix when a source is in register D+X.
10759         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10760
10761 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10762
10763         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10764         comparing with Z register.
10765
10766 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10767
10768         * cfgloop.h (struct loop_desc): Removed.
10769         (struct loop): Fields simple, desc and has_desc removed.
10770         (simple_loop_p, count_loop_iterations): Declaration removed.
10771         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10772         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10773         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10774         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10775         simple_loop_exit_p, variable_initial_value, variable_initial_values,
10776         simple_condition_p, simple_increment, count_strange_loop_iterations,
10777         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10778         Removed.
10779         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
10780
10781 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10782
10783         * genattrtab.c: Don't handle MATCH_INSN.
10784         * genrecog.c: Likewise.
10785         * gensupport.c: Likewise.
10786         * rtl.def (match_insn): Remove.
10787         * doc/md.texi (match_insn, match_insn2): Remove.
10788
10789 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
10790
10791         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
10792         macro results in memory allocation.
10793
10794 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
10795
10796         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
10797         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
10798         %(fbsd_dynamic_linker),
10799         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
10800         config/i386/freebsd.h
10801         * config/arm/freebsd.h: Ditto.
10802         * config/i386/freebsd.h: Ditto.
10803         * config/i386/freebsd64.h: Ditto.
10804         * config/ia64/freebsd.h: Ditto.
10805         * config/rs6000/sysv4.h: Ditto.
10806         * config/sparc/freebsd.h: Ditto.
10807
10808 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
10809
10810         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
10811
10812 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10813
10814         * rtl.def (define_combine): Remove.
10815
10816 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10817
10818         * config/h8300/h8300.md: Tweak formatting.
10819
10820 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10821
10822         * config/h8300/h8300.md (*cmphi_h8300): Rename to
10823         *cmphi_h8300_znvc.
10824         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
10825
10826 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
10827
10828         PR bootstrap/14356
10829         * gcc.c (process_command): Remove const-qualification from argv.
10830         (main): Likewise.
10831
10832 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10833
10834         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
10835         pushqi1_h8300hs_advanced.  Adjust its caller.
10836         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
10837         Adjust its caller.
10838
10839 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
10840
10841         * Makefile.in (install-libgcc, install-multilib): Pass
10842         mkinstalldirs var to libgcc.mk.
10843
10844 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10845
10846         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
10847         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
10848
10849 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10850
10851         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
10852         * config/h8300/h8300.md: Split several peephole2's, each into
10853         two.
10854
10855 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10856
10857         * dominance.c (recount_dominator): Handle postdominators.
10858
10859 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10860
10861         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10862         (NUM_SYMBOL_TYPES): Likewise.
10863         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10864         (mips_unspec_address): Declare.
10865         (mips_gotoff_page, mips_gotoff_global): Delete.
10866         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10867         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10868         (mips_symbolic_constant_p, mips_symbolic_address_p)
10869         (mips_symbol_insns): Handle new symbol types.
10870         (general_symbolic_operand): New predicate.
10871         (mips_unspec_address): Make extern.
10872         (mips_gotoff_page, mips_gotoff_global): Delete.
10873         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10874         Handle new symbol types.
10875         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10876         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10877         mips_unspec_address directly.
10878         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10879         the documentation of -mexplicit-relocs.
10880
10881 2004-03-01  Jeff Law  <law@redhat.com>
10882
10883         * fold-const.c (fold): An equality comparison of a non-weak object
10884         against zero has a known result.  Similarly an equality comparison
10885         of the address of two non-weak, unaliased symbols has a known result.
10886
10887         * ggc-page.c (struct page_entry): New field PREV.
10888         (ggc_alloc): Update PREV field appropriately.
10889         (sweep_pages): Likewise.
10890         (ggc_free): Likewise.  Use PREV field rather than loop to
10891         improve ggc_free performance.
10892
10893 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10894
10895         * config/mips/mips.c (mips_output_division): Use the division
10896         instruction to fill the delay slot of a zero check.
10897         (mips_idiv_insns): Adjust accordingly.
10898
10899 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
10900
10901         * config.gcc: Create a default tmake_file for linux, and use
10902         it in all but two linux clauses.  Comment those two.
10903
10904 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
10905
10906         * combine.c (try_combine):  Do not refer to is_replaced.
10907         (gen_lowpart_for_combine):  Perverse subregs now have a
10908         more politically correct name.
10909         * cse.c (cse_insn): Likewise.
10910         * jump.c: Fix bogus reference to delete_insn.
10911
10912 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
10913
10914         PR debug/14328
10915         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10916         constants as signed values.
10917
10918         PR middle-end/13448
10919         * c-tree.h (readonly_warning): Rename to ...
10920         (readonly_error): ... this.
10921         * c-typeck.c (build_unary_op): Adjust accordingly.
10922         (readonly_warning): Rename to ...
10923         (readonly_error): ... this and issue errors, not warnings.
10924         (build_modify_expr): Call readonly_error, not readonly_warning.
10925         (c_expand_asm_operands): Likewise.
10926         * tree-inline.c (optimize_inline_calls): Do not inline functions
10927         after errors have occurred.
10928
10929 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10930
10931         * configure.ac: Rearrange some threading code for clarity;
10932         add section comment.
10933         * configure: Regenerate.
10934
10935 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10936
10937         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10938         typos.
10939         * doc/cppopts.texi: Fix a typo.
10940
10941 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10942
10943         * config/i386/i386.md: Fix formatting.
10944
10945 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10946
10947         * configure.ac: Add some comments delineating sections of code.
10948
10949         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10950
10951         * doc/install.texi: Fix idiot typo in previous commit.
10952
10953         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10954
10955 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10956
10957         * config/h8300/h8300.md: Add comments about peephole2's.
10958
10959 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10960
10961         * config/h8300/h8300.md: Tweak operand numbers of some
10962         peephole2's.
10963
10964 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10965
10966         * config/h8300/h8300.md: Tweak comments about peephole2's.
10967
10968 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10969
10970         PR middle-end/14203
10971         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10972         instead of testing whether DECL_RTL is not NULL.
10973
10974 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10975
10976         * config/sh/sh.c: Fix formatting.
10977
10978 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10979
10980         * config/sh/sh.c: Convert to ISO-C.
10981
10982 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10983
10984         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10985         my previous patch.
10986
10987         * config/darwin.h (machopic_finish): Output stub even if the
10988         symbol is already defined.
10989
10990 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10991
10992         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10993
10994 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10995
10996         * genattr.c (main): Don't define
10997         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10998         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10999         (DFA_PIPELINE_INTERFACE): Likewise.
11000         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
11001         (DFA_PIPELINE_INTERFACE): Likewise.
11002
11003 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
11004
11005         * config/mips/mips.md (tstsi, tstdi): Delete.
11006
11007 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11008
11009         * config/mips/mips.c (override_options): Remove an obsolete
11010         duplicate definition of the "e" constraint.
11011         * config/mips/mips.h: Update a comment accordingly.
11012
11013 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11014
11015         * config/mips/mips.md: Complete the unfinished R4000
11016         multiply/shift errata workaround.  Improve documentation.
11017         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
11018         has a hilo hazard.
11019         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
11020         (muldi3, muldi3_internal): Likewise.
11021         (muldi3_internal2): Remove, replacing with...
11022         (muldi3_mult3, muldi3_r4000): ...these new patterns.
11023         (mulsidi3): Take the errata into account.
11024         (mulsidi3_32bit): Remove, replacing with...
11025         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
11026         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
11027         (umulsidi3): Take the errata into account.
11028         (umulsidi3_32bit): Remove, replacing with..
11029         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
11030         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
11031         TARGET_FIX_R4000.
11032         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
11033         (smuldi3_highpart, umuldi3_highpart): Likewise.
11034         * doc/invoke.texi: Document the errata workaround.
11035
11036 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11037
11038         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
11039         * config/mips/mips.h (MASK_FIX_SB1): Bump.
11040         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
11041         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
11042         * config/mips/mips.c (mips_idiv_insns): New function.
11043         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
11044         (mips_output_division): Add a workaround for the R4000 divide/shift
11045         errata.
11046         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
11047         the length of an "idiv" instruction.
11048         * doc/invoke.texi: Document the new switches.
11049
11050 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11051
11052         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
11053         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
11054
11055 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11056
11057         PR optimization/14229
11058         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
11059
11060 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
11061
11062         * fold-const.c (fold): Strip NOPs that change the signedness
11063         for RSHIFT too.  Expand comment.
11064
11065 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
11066
11067         PR optimization/7871
11068         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
11069         from or to call insns.
11070
11071 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
11072
11073         PR optimization/7871
11074         * flow.c (propagate_one_insn): Interpret calls as setting global
11075         registers, not merely clobbering them.
11076
11077 2004-02-27  Dale Johannesen  <dalej@apple.com>
11078
11079         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
11080         config/darwin-protos.h:  Ditto.
11081         config/darwin.h:  Remove call to it.
11082         * combine.c (distribute_notes): Do not place a REG_DEAD note
11083         when value is both set and used.
11084
11085 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11086
11087         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
11088         as well.
11089         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
11090         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
11091
11092 2004-02-27  Andrew Pinski  <apinski@apple.com>
11093
11094         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
11095         Speedup common case of the type values being in the same order.
11096
11097 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
11098
11099         * config/ia64/ia64.h (no-inline-float-divide): New option.
11100         * config/ia64/ia64.h (no-inline-int-divide): New option.
11101         * config/ia64/ia64.h (no-inline-sqrt): New option.
11102         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
11103         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
11104         * config/ia64/ia64.c (ia64_override_options): Modify error
11105         checking for inlined division/sqrt.
11106
11107 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11108
11109         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
11110         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
11111         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
11112         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
11113         copyright.
11114
11115 2004-02-27  Paul Brook  <paul@codesourcery.com>
11116
11117         * function.c (assign_parms): Don't count pretend args for alignment.
11118
11119 2004-02-27  Richard Henderson  <rth@redhat.com>
11120
11121         * passes.c: New file.
11122         * Makefile.in (OBJS-common): Add it.
11123         * diagnostic.c (rtl_dump_and_exit): Move decl ...
11124         * flags.h (rtl_dump_and_exit): ... here.
11125         * output.h (size_directive_output, last_assemble_variable_decl):
11126         Move from toplev.c.
11127         * rtl.h (reg_alloc): Move from toplev.c.
11128         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
11129         struct dump_file_info, enum dump_file_index, dump_file_tbl,
11130         open_dump_file, close_dump_file, rest_of_decl_compilation,
11131         rest_of_type_compilation, rest_of_handle_final,
11132         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
11133         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
11134         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
11135         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
11136         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
11137         rest_of_handle_tracer, rest_of_handle_if_conversion,
11138         rest_of_handle_if_after_combine, rest_of_handle_web,
11139         rest_of_handle_branch_prob,
11140         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
11141         rest_of_handle_addressof, rest_of_handle_sibling_calls,
11142         rest_of_handle_jump_bypass, rest_of_handle_inlining,
11143         rest_of_handle_null_pointer, rest_of_handle_combine,
11144         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
11145         rest_of_handle_gcse, rest_of_handle_loop_optimize,
11146         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
11147         (decode_d_option): Use enable_rtl_dump_file.
11148         (compile_file, finalize, do_compile): Move profile+combine+graph
11149         cleanup to finish_optimization_passes.
11150         * toplev.h (init_optimization_passes, finish_optimization_passes,
11151         enable_rtl_dump_file): Declare.
11152
11153 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
11154             Roger Sayle  <roger@eyesopen.com>
11155
11156         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
11157         operands to build a tree with swapped operands.
11158         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
11159         'unsignedp' predicate to specify the signedness.
11160
11161 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11162
11163         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
11164         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
11165         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
11166         comment typos and formatting.  Follow spelling conventions.
11167
11168 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
11169
11170         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
11171         fix_truncsfsi2.
11172
11173         * config/rs6000/spe.md: Delete spe_efsctuiz.
11174         Add spe_fixuns_truncsfsi2.
11175         Add spe_fix_truncsfsi2.
11176
11177 2004-02-26  Eric Christopher  <echristo@redhat.com>
11178
11179         * c-lex.c (c_lex_string_translate): New variable.
11180         (lex_string): Use to determine string translation.
11181         * c-pragma.h: Prototype.
11182         * c-parse.in (start_string_translation): New. Set above.
11183         (stop_string_translation): Ditto.
11184         (attribute, attribute_list, asm_def, asm_stmt,
11185         asm_operand): Use above functions.
11186         * cp/parser.c (cp_parser_declaration): Translate strings
11187         unless token is RID_EXTERN. Set c_lex_string_translate
11188         for recursive use.
11189         (cp_parser_asm_definition): Only translate argument strings
11190         to asms.
11191         (cp_parser_asm_operand_list): Ditto.
11192         (cp_parser_attribute_list): Do not translate attribute strings.
11193
11194 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11195
11196         * stmt.c (expand_start_case_dummy): Remove.
11197         * tree.h: Remove the corresponding prototype.
11198
11199 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11200
11201         * builtins.c (apply_args_register_offset): Remove.
11202         * tree.h: Remove the corresponding prototype.
11203
11204 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11205
11206         * stor-layout.c (is_pending_size): Remove.
11207         * tree.h: Remove the corresponding prototype.
11208
11209 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11210
11211         * recog.c (validate_replace_src): Remove.
11212         * recog.h: Remove the corresponding prototype.
11213
11214 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11215
11216         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
11217         MAYBE_REG_PARM_STACK_SPACE.
11218         * function.c: Likewise.
11219         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
11220         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11221         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
11222         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11223
11224 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11225
11226         * c-decl.c (c_expand_deferred_function): Remove.
11227         * c-tree.h: Remove the corresponding prototype.
11228
11229 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11230
11231         * postreload.c (reload_cse_move2add): Generate just a PLUS
11232         instead of an entire SET.
11233
11234 2004-02-26  Jan Hubicka  <jh@suse.cz>
11235
11236         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
11237         /pentium4m.
11238         * i386.c (override_options): Add support for new CPUs.
11239         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
11240         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
11241         constants.
11242         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
11243
11244 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
11245
11246         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
11247
11248 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
11249
11250         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
11251         (sparc_emit_fixunsdi): New prototype.
11252         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
11253         (sparc_emit_fixunsdi): New function.
11254         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
11255         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
11256         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
11257         to sparc_emit_floatunsdi.
11258         (fixuns_truncsfdi2): New expander.
11259         (fixuns_truncdfdi2): Likewise.
11260
11261 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
11262
11263         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
11264         unless HAVE_cc0.
11265
11266 2004-02-25  Richard Henderson  <rth@redhat.com>
11267
11268         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
11269         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
11270         use (op0-op1) == 0 if op0 is a pointer.
11271         * config/alpha/alpha.md (cmpdi): Use some_operand.
11272         (three comparison combine splits): Remove.
11273
11274 2004-02-25  Richard Henderson  <rth@redhat.com>
11275
11276         PR c/12794
11277         * c-common.c (handle_alias_attribute): Reject the attribute if
11278         current_function_decl is set.
11279
11280 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11281
11282         * config.gcc: Add comment describing extra_gcc_objs.
11283         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
11284         * configure.ac (extra_gcc_objs): New substitution variable.
11285         (host_extra_gcc_objs): Don't substitute.
11286         * configure: Regenerate.
11287         * Makefile.in: Use extra_gcc_objs.
11288
11289 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11290
11291         * doc/contrib.texi: Add an entry for myself.
11292
11293 2004-02-25  Jan Hubicka  <jh@suse.cz>
11294
11295         * basic-block.h (make_eh_edge, break_superblocks): Declare.
11296         * cfgbuild.c (make_eh_edge):  Make global.
11297         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
11298         * except.c (build_post_landing_pads, connect_post_landing_pads,
11299         dw2_build_landing_pads, sjlj_emit_function_enter,
11300         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
11301         sjlj_build_landing_pads): Update CFG.
11302         (emit_to_new_bb_before): New function.
11303         (finish_eh_generation): Do not rebuild the CFG.
11304
11305 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11306
11307         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
11308         target_cpu_default defines.
11309         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
11310         * pa.h (TARGET_DEFAULT): Likewise.
11311
11312 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
11313
11314         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
11315         comparisons with regard to signedness.
11316
11317 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11318
11319         * arm.c (thumb_legitimize_address): New function.
11320         * arm-protos.h: Prototype it.
11321         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
11322         (LEGITIMIZE_ADDRESS): Use it.
11323
11324 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
11325
11326         * reload1.c (reload): Only spill eliminable register with multiple
11327         adjacent elimination alternatives if all alternatives fail.
11328
11329 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11330
11331         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
11332         is -4095...+4095 inclusive.
11333
11334 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
11335
11336         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
11337         the bootstrap failure with Sun CC 5.4 and 5.5.
11338
11339 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11340
11341         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
11342         which modifies NEWREG.
11343         (cse_condition_code_reg): Update the mode of CC_REG in
11344         CC_SRC_INSN on our own.
11345
11346 2004-02-24  Michael Matz  <matz@suse.de>
11347
11348         * config/i386/i386.c (ix86_comp_type_attributes): Check for
11349         regparm attributes.
11350
11351 2004-02-24  Richard Henderson  <rth@redhat.com>
11352
11353         * toplev.c (dump_file_tbl): Rename from dump_file.
11354         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
11355         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
11356         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
11357         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
11358         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
11359         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
11360         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
11361         s/rtl_dump_file/dump_file/g.
11362
11363 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
11364
11365         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
11366         (spe_fixuns_truncsfsi2): Delete.
11367
11368         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
11369         (fixuns_truncsfsi2): Delete.
11370
11371 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
11372
11373         PR/14240
11374         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11375
11376 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
11377
11378         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11379
11380 2004-02-24  Jason Merrill  <jason@redhat.com>
11381
11382         * tree.c (check_qualified_type): New fn.
11383         (get_qualified_type): Use it.  If type already has the desired
11384         quals, just return it.
11385         * tree.h: Declare it.
11386
11387 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
11388
11389         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11390         TARGET_SCHED_FINISH_GLOBAL): New macros.
11391
11392         * target.h (md_init_global, md_finish_global): Function
11393         declarations corresponding to new target macros.
11394
11395         * haifa-sched.c (sched_init, sched_finish): Allow target to
11396         call the new schedular hooks.
11397
11398         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11399         call to update_life_info.
11400
11401         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11402         flag_schedule_insns for SH4.
11403
11404         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11405         find_set_regmode_weight, find_insn_regmode_weight,
11406         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11407         sh_variable_issue, high_pressure, ready_reorder,
11408         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11409         functions used to throttle the insn movement in first
11410         scheduling pass for SH.
11411
11412         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11413         TARGET_SCHED_FINISH_GLOBAL.
11414
11415 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
11416
11417         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11418         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
11419         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11420         symbols in sections named by the user.
11421         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
11422         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11423         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
11424         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11425         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11426         the above.
11427         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11428         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11429         one more pseudo to further improve code generation.
11430         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11431         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11432         inside UNSPEC.
11433         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11434         * config/frv/frv.c (frv_legitimate_address_p): Added
11435         allow_double_reg_p argument.  Adjust all callers.  Use it to
11436         decide whether to enable double-register indirect addressing.
11437         (frv_funcdesc_alias_set): Remove.
11438         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11439         register.  Emit movdi_ldd.
11440         (ldd_address_operand): New.
11441         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11442         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11443         (PREDICATE_CODES): Add ldd_address_operand.
11444         * config/frv/frv.md (movdi_ldd): New.
11445         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11446         intermediate computations if possible.
11447         (symGOTOFF2reg_i): Fix harmless typo.
11448         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11449         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11450         relocated p_vaddr to vaddr type.
11451         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11452         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11453         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11454         MEM, or use a funcdesc alias set.  Use regular move instead of
11455         ldd.
11456         (dbl_memory_one_insn_operand): Recognize function descriptors by
11457         type or by alias set, and don't split them.
11458         * config/frv/frv.md (call, call_value): Never use call_internal
11459         for fdpic.
11460         (call_internal, call_value_internal): Never match for FDPIC.
11461         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11462         call_value_fdpicsi): Require FDPIC.
11463         (ldd): Removed.
11464         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11465         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11466         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11467         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11468         FDPIC.  Compute data base address.
11469         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11470         before the other self-specs are processed.
11471         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11472         Build with -fPIC.
11473         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11474         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11475         inhibit_libc is defined.
11476         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11477         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11478         __FRV_FDPIC__.
11479         (__RELOC_POINTER): Define.
11480         (_Unwind_IteratePhdrCallback): Use it.
11481         * config/frv/frv.h (Twrite): Define.
11482         (TRANSFER_FROM_TRAMPOLINE): Use it.
11483         * config/frv/linux.h (INVOKE__main): Undefine.
11484         (Twrite): Override.
11485         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11486         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11487         (-mlibrary-pic): Emphasize that this option generates EABI code.
11488         (-mcpu): Add fr550.
11489         (-mpack): Remove.
11490         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11491         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11492         and CONSTs in FDPIC mode.
11493         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11494         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11495         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11496         constants.
11497         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11498         rather than 'i' constraint for the 2-instruction alternative.
11499         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11500         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11501         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11502         EXTRA_CONSTRAINT_FOR_Y.
11503         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11504         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11505         (addsi3): Change 'Y' constraint to 'Q'.
11506         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11507         * reload.c (CONST_POOL_OK_P): New macro.
11508         (find_reloads): Use it to decide whether a constant can be forced
11509         into memory.
11510         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11511         constant satisfies got12_operand.
11512         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11513         (frv_legitimate_address_p): Check for valid unspec offsets using
11514         got12_operand rather than frv_legitimate_fdpic_operand_p.
11515         (frv_legitimate_fdpic_operand_p): Delete.
11516         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11517         or after reload.
11518         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11519         TARGET_FDPIC.
11520         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11521         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11522         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11523         (frv_fdpic_fptr_operand): Don't declare here.
11524         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11525         rather than fdpic_got12_operand.
11526         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11527         got12_operand and const_unspec_operand.
11528         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11529         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11530         (symbolic_operand): Remove.
11531         (const_unspec_operand): New predicate.
11532         * config/frv/frv.md (*movsi_got): Use got12_operand.
11533         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11534         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11535         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11536         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11537         * config/frv/frv.c (frv_unspec): New structure.
11538         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11539         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11540         validate CONST indices.  Use frv_output_const_unspec to print them.
11541         (frv_print_operand): Update call to unspec_got_name.  Use
11542         frv_output_const_unspec to print constant unspecs.
11543         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11544         Reject UNSPECs otherwise.
11545         (unspec_got_name): Take the relocation number as argument, not an
11546         rtx containing it.
11547         (frv_output_addr_const_extra): Remove, replacing with...
11548         (frv_output_const_unspec): ...this new function.
11549         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11550         (gpr_or_int12_operand): Use fdpic_got12_operand.
11551         (dbl_memory_one_insn_operand): Likewise.
11552         (fdpic_got12_operand): Use frv_const_unspec_p.
11553         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11554         are already legitimate.  Use frv_small_data_reloc_p when deciding
11555         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11556         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11557         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11558         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11559         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11560         label, for real this time.
11561         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11562         representation of visibility.
11563         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11564         such.
11565         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11566         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11567         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11568         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11569         it was explicitly disabled.
11570         (frv_stack_info): There is no need to save the link register in every
11571         frame unless TARGET_LINKED_FP is true.
11572         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11573         frame pointer if the stack pointer might change value.
11574         (frv_return_addr_rtx): Check and process "count" argument.
11575         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11576         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11577         (frv_find_base_term): Declare.
11578         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11579         (FIND_BASE_TERM): Define.
11580         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11581         small_data_register_operand, small_data_symbolic_operand.  Add
11582         symbolic_operand.
11583         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11584         (frv_print_operand_memory_reference, output_move_single): Remove
11585         special handling for unlegitimized sdata addresses.
11586         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11587         and symbolic addresses.
11588         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11589         (frv_find_base_term): New function.
11590         (int_2word_operand): Check specifically for symbolic address constants.
11591         (pic_register_operand, pic_symbolic_operand): Delete.
11592         (small_data_register_operand, small_data_symbolic_operand): Delete.
11593         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11594         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11595         (move_source_operand): Only accept CONSTs if they're a two-insn
11596         symbolic constant.
11597         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11598         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11599         using gen_symGOTOFF2reg*.
11600         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11601         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11602         themselves a cost of 3 insns.
11603         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11604         Change predicate to symbolic_operand.
11605         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11606         (*movsi_lda_sdata): Delete.
11607         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11608         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11609         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11610         frv-*-*linux*.
11611         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11612         label.
11613         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11614         -multilib-library-pic.
11615         (LINK_SPEC): Add -z text for -mfdpic.
11616         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11617         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11618         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11619         Override.
11620         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11621         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11622         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11623         crtstuff-generated files.
11624         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11625         * config.gcc: Add frv-*-*linux*.
11626         * config/frv/linux.h, config/frv/t-linux: New.
11627         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11628         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11629         when -mfdpic even if a linker script is explicitly listed.
11630         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11631         * config/frv/frv.c (frv_override_options): Clear asm_out
11632         unaligned_op for SImode on FDPIC.
11633         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11634         argument passed to decl_readonly_section.
11635         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11636         whole block run with FDPIC even with -fno-PIC.
11637         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11638         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11639         symbol or label plus offset to memory.
11640         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11641         GOTOFF and GPREL for LABEL_REF.
11642         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11643         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11644         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11645         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11646         * doc/invoke.texi: Document them.
11647         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11648         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11649         (frv_splittable_got_operand): Removed.
11650         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11651         LO_SUM.  Add comments.
11652         (frv_override_options): Moved enabling of FDPIC to
11653         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11654         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11655         (frv_legitimize_fdpic_address): Don't duplicate logic in
11656         frv_emit_movsi.
11657         (frv_gen_GPsym2reg): New.
11658         (unspec_got_name): Added gprel.
11659         (frv_expand_fdpic_call): Add support for inlining PLTs.
11660         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11661         (gpr_or_int12_operand): Added GPREL12.
11662         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11663         (small_data_symbolic_operand): Fail if FDPIC.
11664         (fdpic_splittable_got_operand): Removed.
11665         (fdpic_got12_operand): Added GPREL12.
11666         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11667         when appropriate.  Fix sdata GOTOFF.
11668         (frv_legitimate_constant_p): Require legitimate PIC operand for
11669         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11670         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11671         flag_pic case.
11672         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11673         frv_assemble_integer fails.
11674         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11675         (SUBTARGET_DRIVER_SELF_SPECS): New.
11676         (ASM_SPEC): Don't pass -mno-fdpic.
11677         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11678         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11679         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11680         -multilib-library-pic.
11681         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11682         condexec_si_media_operator, condexec_sf_add_operator and
11683         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11684         and condexec_sf_unary_operator.
11685         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11686         New.
11687         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11688         movsi_internal.  Give them internal names.  movsi_got has type
11689         int.
11690         (fdpic got splitters): Remove.
11691         (symGPREL2reg, symGPREL2reg_hilo): New.
11692         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11693         to -mlibrary-pic.  Map -multilib-library-pic to it.
11694         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11695         Document.
11696         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11697         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11698         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11699         (frv_cannot_force_const_mem): New function.
11700         (const_small_data_p, plus_small_data_p): Update comments on sdata
11701         on FDPIC.
11702         (frv_override_options): Set flag_pie for FDPIC too.
11703         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11704         call-saved registers on FDPIC.
11705         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11706         don't force LR to be preserved.
11707         (frv_expand_prologue): Likewise.
11708         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11709         (frv_frame_pointer_required): Don't force it just because the
11710         FDPIC register is used.
11711         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11712         operand only if !condexec_p.
11713         (frv_legitimize_address): Return the FDPIC-legitimized address.
11714         Don't match small data here on FDPIC.
11715         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11716         symbols.  Use TRUE/FALSE instead of 1/0.
11717         (frv_local_funcdesc_p): New.
11718         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11719         immediates when possible.
11720         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11721         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11722         an UNSPEC_GOT.
11723         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11724         12-bit immediates when possible.
11725         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11726         are not legitimate pic operands.
11727         (frv_in_small_data_p): Re-enable for FDPIC.
11728         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11729         (FRV_GLOBAL_P): Removed.
11730         * config/frv/frv.md: Add modes to CONSTs.
11731         (movsi_got): New.
11732         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11733         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11734         (fdpic splittable operations): Match on flag_pic != 1.
11735         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11736         * config/frv/frv.c (frv_asm_out_constructor,
11737         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11738         bytes, not bits.
11739         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11740         * config/frv/frv.c (frv_assemble_integer): Reject complex
11741         expressions referencing function SYMBOL_REFs.
11742         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11743         (move_source_operand): Reject CONSTs that reference function
11744         SYMBOL_REFs on FDPIC.
11745         (frv_emit_movsi): If we get such a CONST, break it up.
11746         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11747         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11748         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11749         MEM.
11750         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11751         (frv_trampoline_size): Increase for FDPIC.
11752         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11753         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11754         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11755         Disable use of GOTOFF for now.
11756         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11757         Disable use of small data in FDPIC for now.
11758         (frv_asm_output_mi_thunk): Implement for FDPIC.
11759         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11760         * config/frv/frv.c (frv_asm_out_constructor): Use
11761         frv_assemble_integer for FDPIC pointers.
11762         (frv_asm_out_destructor): Likewise.
11763         * config/frv/frv.md (ldd): Fix order of operands.  Use
11764         address_operand for input.
11765         2003-09-18  DJ Delorie  <dj@redhat.com>
11766         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11767         (unspec_got_name): Correct typo.
11768         (frv_emit_movsi): Pre-expand splittable GOTs.
11769         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11770         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11771         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11772         * config/frv/t-frv: Add -mfdpic multilibs.
11773         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11774         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11775         * config/frv/frv.c (frv_override_options): -mfdpic assumes
11776         flag_pic, default to 32-bit pics, require DWORD ops.
11777         (frv_override_options): Add W and Z constraints.
11778         (frv_expand_prologue): No pic prologue for -mfdpic.
11779         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
11780         (frv_print_operand_memory_reference): Handle GOT constants.
11781         (frv_legitimate_address_p): Allow GOT constants.
11782         (frv_legitimize_address): Handle GOT addresses too.
11783         (frv_legitimate_fdpic_operand_p): New.
11784         (frv_legitimize_fdpic_address): New.
11785         (unspec_got_name): New.
11786         (frv_output_addr_const_extra): New.
11787         (frv_expand_fdpic_call): New.
11788         (frv_fdpic_fptr_operand): New.
11789         (gpr_or_int12_operand): Handle GOT operands.
11790         (int_2word_operand): Handle GOT operands.
11791         (fdpic_operand): New.
11792         (fdpic_splittable_got_operand): New.
11793         (fdpic_got12_operand): New.
11794         (frv_emit_movsi): Handle GOT operands.
11795         (frv_assemble_integer): -mfdpic doesn't use rofixups.
11796         (frv_print_operand): Support 'g' code for GOT operands.
11797         * config/frv/frv-protos.h: Add prototypes as needed.
11798         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
11799         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
11800         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
11801         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
11802         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
11803         R_FRV_GOTOFFLO): New.
11804         (movsi_high_got, movsi_lo_sum_got): New.
11805         (*movsi_pic): Don't use this splitter for -mfdpic.
11806         (addsi3): Allow GOT references also.
11807         (call, call_value): Handle -mfdpic separately.
11808         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
11809         call_value_fdpicsi): New.
11810         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
11811         symGOTOFF2reg_i): New.
11812         * config/frv/frv.h (MASK_FDPIC): New.
11813         (TARGET_FDPIC): New.
11814         (TARGET_SWITCHES): Add -mfdpic.
11815         (FDPIC_FPTR_REGNO): New.
11816         (FDPIC_REGNO): New.
11817         (OUR_FDPIC_REG): New.
11818         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
11819         FDPIC_CALL_REGS.
11820         (REG_CLASS_NAMES): Likewise.
11821         (REG_CLASS_CONTENTS): Likewise.
11822         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
11823         (EXTRA_CONSTRAINT): Add it here.
11824         (FRV_GLOBAL_P): New.
11825         (OUTPUT_ADDR_CONST_EXTRA): New.
11826
11827 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11828
11829         * config/sparc/sparc.h: Remove commented-out definitions of
11830         TARGET_EDOM and GEN_ERRNO_RTX.
11831
11832 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11833
11834         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
11835         df_analyse with df_analyze.
11836
11837 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
11838
11839         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
11840         beginning of block.
11841
11842 2004-02-23  James E Wilson  <wilson@specifixinc.com>
11843
11844         * calls.c (precompute_arguments): Update comment.
11845
11846 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11847
11848         * et-forest.c: Replace et_occurences with et_occurrences.
11849
11850 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11851
11852         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
11853         with iv_analyze.
11854
11855 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
11856
11857         * config/i386/i386.c: Rename pni to sse3.
11858         * config/i386/i386.h: Likewise.
11859         * config/i386/i386.md: Likewise.
11860         * config/i386/pmmintrin.h: Likewise.
11861         * doc/extend.texi: Likewise.
11862         * doc/invoke.texi: Likewise.
11863
11864 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
11865             Kazu Hirata  <kazu@cs.umass.edu>
11866
11867         Remove -fwritable-strings.
11868         * c-common.c (fix_string_type): Don't check
11869         flag_writable_strings.
11870         (fix_string_type): Likewise.
11871         * c-opts.c (set_std_c89): Don't initialize
11872         flag_writable_strings.
11873         (set_std_c99): Likewise.
11874         * common.opt (fwritable-strings): Remove.
11875         * flags.h: Remove the external declaration of
11876         flag_writable_strings.
11877         * opts.c (common_handle_option) <OPT_fwritable_strings>:
11878         Remove.
11879         * toplev.c (flag_writable_strings): Remove.
11880         (f_options): Remove an entry for writable-strings.
11881         * varasm.c (const_hash_1) <STRING_CST>: Don't check
11882         flag_writable_strings.
11883         (compare_constant) <STRING_CST>: Likewise.
11884         (build_constant_desc): Likewise.
11885         * config/darwin.c (machopic_select_section): Likewise.
11886         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11887         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11888         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11889         * config/mips/mips.c (mips_select_section): Likewise.
11890         (mips_encode_section_info): Likewise.
11891         * config/pa/pa.c (pa_select_section): Likewise.
11892         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
11893         * config/v850/v850.c (v850_select_section): Likewise.
11894         * doc/invoke.texi (-fwritable-strings): Remove.
11895         (-fno-const-strings): Don't mention -fwritable-strings.
11896         * doc/trouble.texi: Don't mention -fwritable-strings.
11897
11898 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
11899
11900         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
11901
11902 2004-02-23  Dale Johannesen  <dalej@apple.com>
11903
11904         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
11905         (movdf_hardfloat64):  Ditto.
11906         (movdf_softfloat64):  Ditto.
11907
11908 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
11909         * config/rs6000/rs6000.c (function_arg): call to
11910         rs6000_mixed_function_arg for DFmode moved to allow
11911         normal DFmode incoming register assignment.
11912
11913 2004-02-23  Dale Johannesen  <dalej@apple.com>
11914
11915         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11916         (movdf_hardfloat64):  Ditto.
11917
11918 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11919
11920         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11921         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11922         copyright.
11923
11924 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11925
11926         PR c/14156
11927         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11928         to use DECL_P instead.
11929
11930         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11931         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11932
11933 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11934
11935         * Makefile.in (opts.o): Depend on target.h.
11936         * opts.c (decode_options): Use targetm.default_short_enums
11937         instead of DEFAULT_SHORT_ENUMS.
11938         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11939         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11940         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11941         * target.h (gcc_target): Add default_short_enums.
11942         * config/cris/cris.h: Remove a comment about
11943         DEFAULT_SHORT_ENUMS.
11944         * config/ip2k/ip2k.h: Likewise.
11945         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11946         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11947
11948 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11949             Falk Hueffner  <falk@debian.org>
11950
11951         PR c/14188
11952         * builtins.c (expand_builtin_va_arg): Emit an informative message
11953         if a trap is generated.
11954         * c-typeck.c (build_function_call): Likewise.
11955
11956 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11957
11958         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11959         fopen.
11960         * libgcov.c: Include sys/stat.h.
11961         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11962         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11963         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11964         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11965
11966 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11967
11968         * reorg.c: Remove comments about dead ports.
11969
11970 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11971
11972         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11973         extra host object file when targetting cygwin rather than generic
11974         object files.
11975
11976 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11977
11978         Merge from tree-ssa:
11979         2003-11-20  Richard Henderson  <rth@redhat.com>
11980
11981                 * tree-inline.c (insert_decl_map): New.
11982                 (remap_decl, remap_type, remap_block, copy_body_r,
11983                 initialize_inlined_parameters, declare_return_variable,
11984                 remap_save_expr): Use it.
11985
11986         * function.c (copy_body_r): Add mapping from id->ret_label to
11987         id->ret_label.  Revert test for ret_label.
11988
11989 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11990
11991         * genoutput.c (process_template): Strip trailing whitespace in @
11992         templates and issue a warning if there was any.
11993
11994 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11995
11996         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11997         object file when targetting cygwin.
11998         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11999         overridden by top-level Makefile.
12000
12001 2004-02-21  Roger Sayle  <roger@eyesopen.com>
12002
12003         * config/i386/i386.c (standard_80387_constant_p): Also prefer
12004         the x87's load constant instructions when optimizing for size.
12005
12006 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
12007
12008         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
12009         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
12010         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
12011         * fold-const.c: Likewise.
12012         * simplify-rtx.c: Likewise.
12013
12014 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
12015
12016         * combine.c (can_combine_p): Don't ignore SETs marked with
12017         REG_EH_REGION notes.
12018         (try_combine): When attemting to fix unrecognized insns, don't
12019         split a PARALLEL that contains the original i2.
12020
12021 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
12022
12023         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
12024         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
12025         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
12026         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
12027         (vector, pixel, bool): #define to __vector, __pixel and __bool.
12028         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
12029         portion of header.
12030         (__altivec_link_error_invalid_argument): Remove prototype; will use
12031         __builtin_altivec_compiletime_error("vec_*") instead.
12032         (vec_*): Fix/complete set of available operation overloads given the
12033         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
12034         cv-correctness of pointer arguments; in C, always check for correct
12035         argument types before macro expansion.
12036         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
12037         defining Darwin/PowerPC-specific '-f[no-]altivec' and
12038         '-W[no-]altivec-long-deprecated' switches.
12039         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
12040         '__vector', '__pixel' and '__bool' macros using
12041         '__attribute__((altivec(...)))' types.
12042         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
12043         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
12044         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
12045         New type nodes.
12046         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
12047         handling '-W[no-]altivec-long-deprecated'.
12048         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
12049         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
12050         altivec_expand_dst_builtin): Remove casts from integer literals.
12051         (altivec_expand_builtin): Likewise; handle expansion of new
12052         '__builtin_altivec_compiletime_error' function.
12053         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
12054         types, and make them distinct from other vector types; register
12055         '__builtin_altivec_compiletime_error' function.
12056         (print_operand): For 'P', print a full target register name instead of
12057         merely its number.
12058         (rs6000_attribute_table): Add "altivec" attribute.
12059         (rs6000_handle_altivec_attribute): New function.
12060         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
12061         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
12062         maps to).
12063         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
12064         declare.
12065         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
12066
12067 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12068
12069         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
12070         check.
12071         (shift_mix4left+2): Delete redundant pattern.
12072
12073 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12074
12075         * alias.c (OUTGOING_REGNO): Don't define the default.
12076         * builtins.c (OUTGOING_REGNO): Likewise.
12077         (INCOMING_REGNO): Likewise.
12078         (apply_args_register_offset): Always use OUTGOING_REGNO.
12079         * combine.c (OUTGOING_REGNO): Likewise.
12080         * sibcall.c (OUTGOING_REGNO): Likewise.
12081         * defaults.h (INCOMING_REGNO): Provide the default.
12082         (OUTGOING_REGNO): Likewise.
12083
12084 2004-02-21  Jan Hubicka  <jh@suse.cz>
12085
12086         * params.def (max-peeled-insns, max-completely-peeled-insns,
12087         max-once-peeled-insns): Set to 400.
12088
12089 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12090
12091         PR c++/12007
12092         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
12093         are set for parameters before outputing debugging information.
12094
12095 2004-02-20  Falk Hueffner  <falk@debian.org>
12096
12097         PR target/14201
12098         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
12099         numbers.
12100
12101 2004-02-20  Per Bothner  <per@bothner.com>
12102
12103         * input.h:  Don't #include line-map.h.  It may cause link problems
12104         with undefined linemap_line_start when line-map.h is included but
12105         line-map.o is not linked, as currently happens with gengtype on
12106         compilers that don't support inline.
12107         * toplev.c:  So we do have to explicitly #include line-map.h here.
12108
12109 2004-02-20  Richard Henderson  <rth@redhat.com>
12110
12111         * doc/invoke.texi: Add -Wvariadic-macros.
12112
12113 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12114
12115         * haifa-sched.c (sched_emit_insn): Remove.
12116         * sched-int.h: Remove the corresponding prototype.
12117
12118 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12119
12120         Revert:
12121         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12122         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12123         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12124         * config/cris/cris.h: Remove a comment about
12125         DEFAULT_SHORT_ENUMS.
12126         * config/ip2k/ip2k.h: Likewise.
12127         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12128
12129 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
12130             Tom Tromey  <tromey@redhat.com>
12131
12132         * doc/install.texi: Moved --disable-libgcj and
12133         --with-system-zlib documentation to new section for
12134         Java-specific options.
12135         Added explicit Cross-Compiler-Specific Options subheading.
12136         Added section for Java-specific options.
12137
12138 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
12139
12140         * doc/install.texi (Building the Ada compiler): Remove
12141         example.
12142
12143 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12144
12145         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
12146
12147 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12148
12149         * gcc.c (process_command): Allow translation of the copyright
12150         symbol but not the rest of the copyright message.
12151         * gcov.c (print_version): Likewise.  Allow translation of the
12152         message about warranty.
12153
12154 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
12155
12156         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
12157         predicate.
12158         ("*andsi_clear"): Tweak constraints to not match postincrement.
12159         Adjust the predicate to exclude a volatile memory reference.
12160         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
12161         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
12162
12163 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
12164
12165         * move-if-change: Remove.
12166         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
12167         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
12168         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
12169         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
12170         (s-gtyp-gen, s-iov): Use the top level move-if-change.
12171         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
12172
12173 2004-02-19  James E Wilson  <wilson@specifixinc.com>
12174
12175         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
12176         for operand2.  Add condition that requires register_operand operand2
12177         before reload.
12178
12179 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
12180             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12181
12182         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
12183         * config/mips/mips.md: Expand comment above unaligned loads and stores.
12184
12185 2004-02-19  Richard Henderson  <rth@redhat.com>
12186
12187         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
12188         * tree.c (build0, build1, build2, build3, build4): Split out from...
12189         (build): ... here.  Call them.
12190         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
12191
12192         * convert.c (convert_to_integer): Remove extra build argument.
12193         * tree-inline.c (expand_call_inline): Likewise.
12194
12195 2004-02-19  Richard Henderson  <rth@redhat.com>
12196
12197         * c-opts.c (warn_variadic_macros): New.
12198         (c_common_handle_option): Set it.
12199         (sanitize_cpp_opts): Copy it to cpp_opts.
12200         * c.opt (Wvariadic-macros): New.
12201         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
12202         * cppinit.c (cpp_create_reader): Initialize it.
12203         * cppmacro.c (parse_params): Check it.
12204
12205 2004-02-19  David Daney <ddaney@avtrex.com>
12206
12207         PR preprocessor/14198
12208         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
12209         builtin_assert ("machine=mips")
12210
12211 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12212
12213         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12214         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12215         * config/cris/cris.h: Remove a comment about
12216         DEFAULT_SHORT_ENUMS.
12217         * config/ip2k/ip2k.h: Likewise.
12218         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12219
12220 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12221
12222         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
12223         when passing single SFmode quantities in general registers,
12224         put them in the high half.
12225
12226 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12227
12228         * doc/md.texi (Standard Names): Document additional dependency on
12229         fix pattern.
12230
12231         * optabs.c (ftruncify): Remove.
12232         (expand_fix): Manually inline ftruncify above.
12233         (can_fix_p): Add FIXME note.
12234
12235 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12236
12237         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
12238         spe_fixuns_truncsfsi2.
12239
12240         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
12241         fixuns_truncsfsi2.
12242
12243 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
12244
12245         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12246         * testsuite/gcc.dg/20040219-1.c: New test.
12247
12248 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
12249
12250         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
12251         "*subsf3_cconly"): Subtraction is not commutative.
12252
12253 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12254
12255         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
12256         (sdbout_symbol): If called before sdbout_init, queue DECL for
12257         later and return.
12258         (sdbout_init): Set sdbout_initialized true, process decls
12259         queued earlier by sdbout_symbol.
12260         (sdbout_finish): Use size_t for index variable.
12261
12262 2004-02-19  Jeff Law  <law@redhat.com>
12263
12264         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
12265         for unordered comparison codes.
12266
12267 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
12268
12269         * reload1.c (reload): Correct comment.
12270         (scan_paradoxical_subregs): Remove #if 0 and old comment.
12271         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
12272         register variables are not used by reload.
12273
12274 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
12275
12276         PR target/14209
12277         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
12278         constraints to not match postincrement.  Adjust the predicate to
12279         exclude a volatile memory reference.
12280
12281 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12282
12283         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
12284
12285 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12286
12287         * hooks.c (hook_void_tree_int): Remove.
12288         (hook_void_constcharptr): Likewise.
12289         (hook_int_void_0): Likewise.
12290         * hooks.h: Remove the prototypes for the above three
12291         functions.
12292         * targhooks.c (hook_bool_machine_mode_true): Remove.
12293         * targhooks.h: Remove the prototype for
12294         hook_bool_machine_mode_true.
12295
12296 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12297
12298         * emit-rtl.c (subreg_realpart_p): Remove.
12299         (reorder_insns_with_line_notes): Likewise.
12300         (end_full_sequence): Likewise.
12301         * rtl.h: Remove the prototype for the above functions.
12302
12303 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12304
12305         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
12306         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12307         config/iq2000/iq2000.h, config/m32r/m32r.h,
12308         config/pdp11/pdp11.h, config/sparc/sparc.h,
12309         config/xtensa/xtensa.h: Remove commented-out or useless
12310         definitions of CASE_VECTOR_PC_RELATIVE.
12311
12312 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12313
12314         * loop.c (all_sets_invariant_p): Remove.
12315
12316 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
12317
12318         PR target/12916
12319         * config/sparc/sparc.h (NPARM_REGS): Delete.
12320         (BASE_RETURN_VALUE_REG): Likewise.
12321         (BASE_OUTGOING_VALUE_REG): Likewise.
12322         (BASE_PASSING_ARG_REG): Likewise.
12323         (BASE_INCOMING_ARG_REG): Likewise.
12324         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
12325         TARGET_ARCH64, not TARGET_V9.
12326         (function_arg_slotno): Dispatch based on the mode class.
12327         Handle vector modes like floating-point modes.
12328         (function_arg_record_value_1): Handle vector types like
12329         floating-point types.
12330         (function_arg_record_value_2): Likewise.
12331         Calculate regno after mode transformation.
12332         (function_arg): Handle vector modes like floating-point modes.
12333         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
12334         If ARCH64, do not recheck alignment.
12335         (function_arg_pass_by_reference): Reorder the conditions.
12336         (sparc_return_in_memory): Move after function_arg_padding.
12337         Implement calling conventions for vector modes.
12338         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
12339         (function_value): Move scope of 'regbase'.
12340         Implement calling conventions for vector modes.
12341         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
12342         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
12343         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
12344         the argument is passed by reference.
12345         (sparc_type_code): Handle vector types.
12346
12347 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
12348
12349         * function.c (assign_parms): When building decl_rtl for
12350         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
12351
12352 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
12353
12354         * expr.c (is_aligning_offset): Check if we are aligning the
12355         expressions's address over BIGGEST_ALIGNMENT in bytes, not
12356         in bits.
12357
12358 2003-02-18  Matt Austern  <austern@apple.com>
12359
12360         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
12361         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
12362         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
12363         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
12364         spec string.
12365         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
12366
12367 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
12368
12369         * dwarf2out.c (loclabel_num): Move outside #ifdef
12370         DWARF2_DEBUGGING_INFO and mark with GTY(()).
12371         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
12372         Mark with GTY(()).
12373         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12374         Allocate memory with ggc_alloc.  No need to copy anything.
12375         (ia64_hpux_file_end): Update to match.
12376
12377 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12378
12379         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12380         by default.
12381
12382 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12383
12384         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12385         ("divmodtisi3"): Likewise.
12386         ("udivmoddi4", "udivmodtidi3"): Likewise.
12387         ("divmodsi4", "divmoddisi3"): Likewise.
12388         ("udivmodsi4", "udivmoddisi3"): Likewise.
12389         ("udivsi3", "umodsi3"): Likewise.
12390
12391 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12392
12393         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12394         placeholder insn when chunkifying the pool.
12395
12396 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12397
12398         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12399         generating PIC code.
12400
12401 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12402
12403         * config/h8300/h8300-protos.h: Add a prototype for
12404         h8300_expand_branch.
12405         * config/h8300/h8300.c (h8300_expand_branch): New.
12406         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12407         bgtu, beq, bne): Call h8300_expand_branch().
12408
12409 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12410
12411         * config/h8300/h8300-protos.h: Add prototypes for
12412         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12413         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12414         (h8300_hard_regno_mode_ok): Likewise.
12415         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12416         h8300_hard_regno_nregs().
12417         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12418
12419 2004-02-18  Per Bothner  <per@bothner.com>
12420
12421         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
12422         partly reverts my 2003-10-01 change, because we're back to logically
12423         including <command line> inside the main line.
12424         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
12425         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
12426         Fixes PR preprocessor/14103.
12427
12428         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12429         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12430         (cpp_push_include):  Don't need to increment pfile's line field.
12431         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12432
12433         * c-ppoutput.c (print struct):  New first_time field.
12434         (init_pp_output):  Set print.first_time.
12435         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12436         which is set also for (say) <command line>.  Clear print.first_time.
12437
12438         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12439         does not match the code, so fix both.
12440         (should_stack_file):  Inline include_pch_p function.
12441         (include_pch_p):  Remove pointless function.
12442
12443         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12444
12445 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12446
12447         * config/h8300/h8300.md (four define_peephole2's): Use
12448         h8300_regs_ok_for_stm().
12449
12450 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12451
12452         * config/h8300/h8300-protos.h: Update the prototype for
12453         expand_a_rotate().
12454         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12455         argument.
12456         * config/h8300/h8300.md: Update all callers.
12457
12458 2004-02-18  Jan Hubicka  <jh@suse.cz>
12459
12460         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12461         floats.
12462         (simplify_binary_operation): Deal with logicals on floats.
12463
12464         * i386.md (SSE fabs splitters): Emit new patterns.
12465         (SSE cmov splitters): Likewise.
12466         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12467         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12468         subregs.
12469         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12470         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12471
12472 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12473
12474         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12475         by hand.
12476         (output_a_rotate): Tweak a comment.
12477         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12478         (*rotlhi3_1): Change to rotlhi3_1.
12479         (*rotlsi3_1): Change to rotlsi3_1.
12480
12481 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12482
12483         PR target/13866
12484         * arm.c (load_multiple_operation): Don't insist that the source reg
12485         of a post-increment component is the same as the destination.
12486         (store_multiple_operation): Likewise.
12487
12488 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12489
12490         * config/h8300/h8300.md: Move movsf patterns into one section
12491         of the file.
12492
12493 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12494
12495         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12496         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12497         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12498         config/mips/linux64.h, config/pa/pa-64.h,
12499         config/rs6000/aix51.h, config/rs6000/aix52.h,
12500         config/rs6000/spe.md, config/sparc/linux.h,
12501         config/sparc/linux64.h: Update copyright.
12502
12503 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12504
12505         * config/h8300/h8300.md: Move push patterns into one
12506         section of the file.
12507
12508 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12509
12510         PR c++/11326
12511         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12512         fntype.
12513
12514 2004-02-18  Paul Brook  <paul@codesourcery.com>
12515
12516         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12517
12518 2004-02-18  Paul Brook  <paul@codesourcery.com>
12519
12520         PR debug/12934
12521         * dwarf2out.c (loc_descriptor_from_tree): Handle
12522         EXPR_WITH_FILE_LOCATION.
12523
12524 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12525
12526         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12527         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12528         trailing whitespace from instructions.
12529
12530 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12531
12532         * configure.ac: When generating auto-build.h, pass
12533         --enable-languages to the sub-configure.
12534         Put quotes around ${program_transform_name} when generating
12535         name of as, ld, nm, objdump.
12536         * configure: Regenerate.
12537
12538 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12539
12540         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12541         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12542         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12543         (s-preds, s-iov): Do not depend on move-if-change.
12544
12545 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12546
12547         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12548         (insert_save): Likewise.
12549
12550 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12551
12552         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12553         warning.
12554
12555 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12556
12557         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12558         *one_cmplsi2_h8300.
12559         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12560
12561 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12562
12563         * config/h8300/h8300-protos.h: Update the prototype of
12564         fix_bit_operand().
12565         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12566         argument "what".
12567         * config/h8300/h8300.md: Update all callers.
12568
12569 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12570
12571         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12572         the last argument to "code" from "type".
12573
12574 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12575
12576         * config/h8300/h8300.c: Remove an extern declaration of
12577         rtx_equal_function_value_matters.
12578
12579 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12580
12581         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12582         by hand.
12583         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12584         (*iorqi3_1): Change to iorqi3_1.
12585         (*xorqi3_1): Change to xorqi3_1.
12586
12587 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12588
12589         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12590         typos.
12591
12592 2004-02-17  Jan Hubicka  <jh@suse.cz>
12593
12594         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12595
12596 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12597
12598         PR optimization/14119
12599         * combine.c (try_combine): When attemting to fix unrecognized insns,
12600         don't delete SETs marked with REG_EH_REGION notes.
12601
12602 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12603
12604         * combine.c (simplify_if_then_else): Do not replace
12605         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12606         modes differ.
12607
12608 2004-02017  Steven Bosscher  <stevenb@suse.de>
12609
12610         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12611         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12612         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12613         * ada/utils.c: Likewise.
12614         * cp/decl.c: Likewise.
12615         * f/com.c: Likewise.
12616         * java/class.c: Likewise.
12617
12618 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12619
12620         * config/h8300/h8300.md: Fix comment typos.
12621
12622 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12623
12624         * config/mips/t-iris6gld: Renamed to ...
12625         * config/mips/t-irix-gld: ... this.
12626         * config.gcc (mips-sgi-irix6*): Reflect this
12627         (mips-sgi-irix5*): Use it with GNU ld.
12628
12629         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12630         to ...
12631         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12632         * config/mips/t-irix-gld: Reflect this.
12633         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12634
12635         * config/mips/iris5gld.h: New file.
12636         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12637         Only use collect2 without gas.
12638
12639         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12640         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12641         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12642         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12643
12644         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12645         * config/mips/iris5.h: ... here.
12646
12647         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12648         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12649         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12650
12651         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12652         using irix_startfile_spec, irix_endfile_spec.
12653
12654 2004-02-16  Gunther Nikl  <gni@gecko.de>
12655
12656         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12657
12658 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12659
12660         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12661         insns by hand.
12662
12663 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12664
12665         * cfghooks.c (split_edge): Speed up updating of dominators.
12666
12667 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12668
12669         PR c++/11326
12670         * c-common.c (flag_abi_version): Remove.
12671         * c-common.h (flag_abi_version): Likewise.
12672         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12673         * c.opt (fabi-version): Remove.
12674         * calls.c (expand_call): Always pass a function type to
12675         struct_value_rtx.  Use convert_memory_address.
12676         * common.opt (fabi-version): Add it.
12677         * flags.h (flag_abi_version): Likewise.
12678         (abi_version_at_least): New macro.
12679         * opts.c (common_handle_option): Add OPT_fabi_version.
12680         * toplev.c (flag_abi_version): Define it.
12681         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12682         New function.
12683         (ia64_output_mi_thunk): Use it.
12684         (ia64_struct_value_rtx): Likewise.
12685
12686 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12687
12688         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12689         Don't generate insns by hand.
12690
12691 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12692
12693         PR c++/14178
12694         * doc/invoke.texi (fabi-version): The default is 2 now.
12695
12696 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12697
12698         * loop-iv.c: New file.
12699         * Makefile.in (loop-iv.o): New.
12700         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12701         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12702         num_loop_branches): New functions.
12703         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12704         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12705         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12706         get_simple_loop_desc, free_simple_loop_desc): Declare.
12707         (simple_loop_desc): New inline function.
12708         (struct rtx_iv, struct niter_desc): New.
12709         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12710         * expr.c (force_operand): Handle subregs of expressions created by
12711         loop unroller.
12712         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12713         parts of the initialization to toplev.c
12714         * loop-unroll.c (loop_exit_at_end_p): New.
12715         (unroll_and_peel_loops): Call iv_analysis_done.
12716         (decide_peel_once_rolling, decide_peel_completely,
12717         decide_unroll_stupid, decide_unroll_constant_iterations,
12718         decide_unroll_runtime_iterations, decide_peel_simple,
12719         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12720         unroll_loop_runtime_iterations): Use new simple loop analysis.
12721         * loop-unswitch.c (compare_and_jump_seq): New.
12722         (may_unswitch_on_p): Renamed to ...
12723         (may_unswitch_on): Use new iv analysis.
12724         (reversed_condition): Export.
12725         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12726         * predict.c (estimate_probability): Use new simple loop analysis.
12727         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12728         canon_condition, simplify_using_condition): Declare.
12729         * stor-layout.c (get_mode_bounds): New.
12730         * toplev.c (rest_of_handle_loop2): Some parts of
12731         initialization/finalization moved here from loop-init.c.
12732
12733 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12734
12735         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12736         pointer.
12737         (CALL_USED_REGISTERS): Likewise.
12738         (REG_ALLOC_ORDER): Likewise.
12739         (REG_CLASS) <GENERAL_REGS>: Likewise.
12740
12741 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12742
12743         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12744         in associative operators.
12745         * rtlanal.c (commutative_operand_precedence): Create some new
12746         variables.  Prefer a commutative operand on the left, then
12747         binary expressions, then NEG and NOT.
12748
12749 2004-02-16  Matthias Klose  <doko@debian.org>
12750
12751         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12752         in terms of SHLIB_SOVERSION.
12753         * config/m68k/t-slibgcc-elf-ver: New file.
12754         * config/pa/t-slibgcc-elf-ver: New file.
12755         * config.gcc (m68k-linux, parisc-linux): Use them when not
12756         sjlj exceptions are not configured.
12757
12758 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12759
12760         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12761
12762 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
12763
12764         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12765
12766 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
12767
12768         * doc/sourcebuild.texi: Mention backends.html.
12769
12770 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12771
12772         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12773         line-map.c, line-map.h, var-tracking.c: Fix comment
12774         formatting.
12775
12776 2004-02-16  Richard Henderson  <rth@redhat.com>
12777
12778         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
12779
12780         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
12781
12782 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12783
12784         * config/h8300/h8300.md: Remove unnecessary parallels from
12785         all define_insn and define_split patterns.
12786
12787 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12788
12789         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
12790         "clobber").
12791
12792 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
12793
12794         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
12795         '%#'.
12796
12797 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12798
12799         * config/ia64/ia64.c, config/mips/mips.c,
12800         config/mmix/mmix-modes.def: Fix comment typos.
12801
12802 2004-02-15  Roger Sayle  <roger@eyesopen.com>
12803
12804         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
12805         (get_directive_line): Remove unused function prototype.
12806
12807 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12808
12809         * tree-inline.c (copy_body_r): Do not replace ret_label.
12810
12811 2004-02-14  Jan Hubicka  <jh@suse.cz>
12812
12813         * i386.c (x86_four_jump_limit): New variable.
12814         (k8_avoid_jump_misspredicts): Rename to ...
12815         (ix86_avoid_jump_misspredicts): .. this one.
12816         (ix86_pad_returns): Break out from ...
12817         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
12818         to.
12819         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
12820
12821 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12822
12823         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
12824         PARALLEL is NULL.
12825
12826 2004-02-14  Per Bothner  <per@bothner.com>
12827
12828         * fix-header.c (line_table):  Move local variable in main to global.
12829         * scan.h (line_table):  Use it.
12830         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
12831         line (recently renamed to src_loc) before calling recognized_function.
12832
12833 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
12834
12835         * Makefile.in: Fix comment typos.
12836
12837 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
12838
12839         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
12840         for start_value when it is directly moved into reg, and factorize
12841         the retrieval of GET_MODE (reg).
12842
12843 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12844
12845         * config/mips/mips-protos.h (mips_load_got_page): Delete.
12846         (mips_load_got_global): Delete.
12847         (mips_gotoff_page): Declare.
12848         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
12849         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
12850         UNSPEC_LOAD_GOT pattern rather than a MEM.
12851         (*load_got[sd]i): New patterns.
12852         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
12853         (mips_load_got_page, mips_load_got_global): Delete.
12854         (mips_gotoff_page): New function.
12855         (override_options): Don't initialize mips_got_alias_set.
12856
12857 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12858
12859         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12860         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12861         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12862         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12863         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12864         * config/mips/mips.c: Fix some overly-long lines.
12865         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12866         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12867
12868 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12869
12870         * configure.ac: Search for as, ld below libexec/gcc.
12871         * configure: Regenerate.
12872
12873 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12874
12875         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12876         __builtin_arm_setwcx ().
12877         * config/arm/arm.c (arm_expand_builtin): Generate operands
12878         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12879
12880 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12881
12882         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12883         and "wmuluh" to "wmulsm" and "wmulum", respectively.
12884         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12885         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12886         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12887         (_mm_mulhi_pu16): Likewise.
12888
12889 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
12890
12891         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
12892         DECL_NAME != 0 before dereferencing.
12893
12894 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
12895
12896         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
12897         (s390_output_addr_const_extra): Declare.
12898         (s390_output_pool_entry): Remove FILE * argument.
12899         * config/s390/s390.c (s390_output_symbolic_const): Remove.
12900         (s390_output_addr_const_extra): New function.
12901         (print_operand_address): Call output_addr_const instead of
12902         s390_output_symbolic_const.
12903         (print_operand): Likewise.
12904         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
12905         Remove FILE * argument.
12906         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12907         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12908         call.
12909
12910 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12911
12912         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12913         (struct edge, struct vertex, struct graph): New.
12914         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12915         free_graph): New functions.
12916
12917 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12918
12919         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12920         Use ".set macro" to avoid warnings about multi-instruction
12921         macros, since they're intentional.
12922
12923 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12924
12925         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12926         comment about STANDARD_EXEC_PREFIX.
12927
12928         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12929         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12930         for installing .1 manpages.  Add rules for installing cpp
12931         and gcov manpages under their installed names.
12932
12933 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12934
12935         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12936         host, but try LD_FOR_TARGET first.
12937         * configure: Rebuilt.
12938
12939 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12940
12941         * dbxout.c: Move declaration of dbxout_type_decl outside
12942         #ifdef DBX_DEBUGGING_INFO.
12943         * c-parse.in: Don't give the asmdef production a type.
12944
12945 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12946
12947         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12948         (debug_nothing_tree_int): Prototype.
12949         (dwarf_debug_hooks): Delete, unused.
12950         * debug.c (do_nothing_debug_hooks): Update.
12951         (debug_nothing_tree_int): New function.
12952         * langhooks.h (struct lang_hooks_for_decls):
12953         Remove builtin_type_decls field.
12954         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12955         (LANG_HOOKS_DECLS): Update.
12956         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12957         Use debug_hooks->type_decl.
12958         * dbxout.c (preinit_symbols): New static.
12959         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12960         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12961         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12962         for symbols to output.
12963         (dbxout_type_decl): New function.
12964         (dbxout_symbol): If called before dbxout_init has run, queue
12965         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12966         to TYPE_DECLs before emitting them.
12967         * xcoffout.c (assign_type_number): Delete.
12968         (xcoff_type_numbers): New static table.
12969         (xcoff_assign_fundamental_type_number): New function.
12970         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12971         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12972         * sdbout.c: Include varray.h.
12973         (deferred_global_decls): New static.
12974         (sdb_debug_hooks): Update.
12975         (sdbout_global_decl): If we can't emit something right now,
12976         remember it in deferred_global_decls.
12977         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12978         (sdbout_init): Initialize deferred_global_decls.
12979         * Makefile.in: Update dependencies of sdbout.o.
12980         * dwarf2out.c (dwarf2out_type_decl): New function.
12981         (dwarf2_debug_hooks): Update.
12982         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12983         * c-decl.c (getdecls): Just return 0.
12984         (check_for_loop_decls): Don't use getdecls.
12985         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12986         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12987
12988 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12989
12990         * config/s390/s390.c (s390_sched_reorder2): Remove.
12991         (TARGET_SCHED_REORDER2): Do not redefine.
12992
12993 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12994
12995         * c-parse.in (maybe_type_qual): Delete.
12996         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12997         (asm_argument): New grammar rules.
12998         (extdef_1): Use asmdef.
12999         (maybeasm): Move down with other asm rules; use simple_asm_expr.
13000         (xexpr): Move up with other expression rules.
13001         (stmt): Use asm_stmt.
13002
13003         * c-typeck.c (build_asm_expr): New function - body mostly
13004         pulled from build_asm_stmt.
13005         (build_asm_stmt): Just handle tacking on the volatile qualifier.
13006         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
13007
13008 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
13009
13010         PR bootstrap/13617
13011         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
13012         (mips_declare_object): Make variadic.
13013         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
13014         mips_output_aligned_decl_common.
13015         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
13016         (mips_declare_object): Make variadic.
13017
13018 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13019
13020         * function.c (update_epilogue_consts): Teach about binary operations.
13021
13022         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
13023         previous MEM_VOLATILE in REF.
13024         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
13025         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
13026
13027 2004-02-12  Gunther Nikl  <gni@gecko.de>
13028
13029         * config.gcc: Restore support for m68k-openbsd.
13030
13031 2004-02-12  Jan Hubicka  <jh@suse.cz>
13032
13033         * tree-optimize.c (tree_rest_of_compilation): Do not release
13034         DECL_ARGUMENTS.
13035
13036 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
13037
13038         * doc/install.texi: Fix the spelling of "explicitly".
13039
13040 2004-02-11  Eric Christopher  <echristo@redhat.com>
13041
13042         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
13043         duplicate argument structure of cpp_interpret_string.
13044         * cpphash.h: Move prototype...
13045         * cpplib.h: Here.
13046         * cpplib.c: Fix calls to match new function signature.
13047
13048 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
13049
13050         PR c/456
13051         * cppexp.c (num_binary_op): Don't allow comma operators in #if
13052         constant expressions at all outside C99 mode if pedantic.
13053
13054 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
13055
13056         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
13057         (log10_optab, log2_optab): Define corresponding macros.
13058         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
13059         * genopinit.c (optabs): Implement log10_optab and log2_optab
13060         using log10?f2 and log2?f2 patterns.
13061         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
13062         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
13063         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
13064         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
13065
13066         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
13067         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
13068         log2, log2f and log2l built-ins as inline x87 intrinsics.
13069
13070 2004-02-11  Richard Henderson  <rth@redhat.com>
13071
13072         PR target/1532
13073         * flow.c (insn_dead_p): A clobber of a dead hard register is a
13074         dead insn after reload.
13075
13076 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
13077
13078         * tree.h (frame_base_decl): Add GTY marker.
13079         * var-tracking.c (frame_base_decl): Likewise.
13080
13081 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
13082
13083         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
13084         incorrect, hunk.
13085         (add_location_or_const_value_attribute): Use text_section_label,
13086         not TEXT_SECTION_NAME.
13087
13088 2004-02-11  Per Bothner  <per@bothner.com>
13089
13090         Represent column numbers using line-map's source_location.
13091         The "next available source_location" is now managed internally by
13092         line-maps.c rather than by clients.
13093         * line-map.h (struct line_map):  New field column_bits.
13094         <from_line>:  Rename field to start_location.
13095         (struct line_maps):  New fields highest_location and max_column_hint.
13096         (linemap_check_files_exited):  New declaration.
13097         (linemap_line_start):  New declaration.
13098         (linemap_add):  Remove from_line parameter; use highest_location field.
13099         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
13100         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
13101         (CURRENT_LINE_MAP):  Remove macro.
13102         (linemap_position_for_column):  New inline function.
13103         * line-map.c (linemap_init):  Clear new fields.
13104         (linemap_check_files_exited):  New function, extracted from ...
13105         (linemap_free):  Use linemap_check_files_exited.
13106         (linemap_add):  Remove from_line parameter.  Various updates.
13107         (linemap_line_start):  New function.
13108         (linemap_lookeup):  Update for new field names.
13109         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
13110         linemap_position_for_column may unpredictably change the current map,
13111         it is cleaner and simpler for us to not cache it in cpp_reader.
13112         (struct cpp_buffer):  New sysp field.
13113         Changed warned_cplusplus_comments and from_stage3 to bitfields.
13114         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
13115         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
13116         current map using linemap_lookup.
13117         (do_linemarker):  Also set buffer's sysp field.
13118         (destringize_and_run):  No longer need to decrement current line.
13119         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
13120         (search_path_head, open_file_failed):  Use buffer's sysp.
13121         (cpp_make_system_header):  Get current map using linemap_lookup.
13122         Also set buffer's sysp flag.
13123         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
13124         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
13125         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
13126         (struct cpp_reader):  ... and adding saved_line_base field.
13127         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
13128         Update accordingly.  Don't adjust line.
13129         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
13130         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
13131         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
13132         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
13133         * cpplex.c (_cpp_lex_direct):  Likewise.
13134         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
13135         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
13136         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
13137         Remove col field as it is now subsumed by src_loc.
13138         * cpperror.c:  Update various field, parameter, and macro names.
13139         (print_location):  If col==0, try SOURCE_COLUMN of line.
13140         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
13141         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
13142         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
13143         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
13144         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
13145         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
13146         (_cpp_lex_direct):  Use linemap_position_for_column.
13147         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
13148         parameter.  Instead get it from the line_table global.  Adjust callers.
13149         (print):  Remove map field.  Replace line field to src_line.
13150         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
13151         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
13152         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
13153         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
13154         * cpptrad.c (copy_comment):  Rename variable.
13155         * c-lex.c (map):  Remove static variable, for same reason we removed
13156         cpp_reader's map field.
13157         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
13158         to call linemap_lookup.
13159         (cb_line_change):  Token's line field replaced by src_loc.
13160         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
13161         Don't save new_map.
13162
13163         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
13164         source_location.
13165
13166 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13167
13168         * config/rs6000/altivec.md (*movv4si_internal): At least one
13169         operand must be register_operand.
13170         (*movv8hi_internal1): Likewise.
13171         (*movv16qi_internal1): Likewise.
13172         (*movv4sf_internal1): Likewise.
13173
13174 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
13175
13176         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
13177         operand.
13178         (movv4hi_internal): Same.
13179         (movv2sf_internal): Same.
13180         (movv1di_internal): Same.
13181
13182 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
13183
13184         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
13185         TARGET_OLDABI consistently.
13186         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
13187         mips_va_arg,override_options,compute_frame_size,
13188         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
13189         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
13190         and TARGET_OLDABI consistently.
13191         * config/mips/mips.md (exception_receiver): Likewise.
13192         * config/mips/linux64.h: Likewise.
13193
13194 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13195
13196         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
13197         Set AltiVec ABI and vrsave as default for ppc64 linux.
13198         (init_cumulative_args): Post error, if try to return
13199         value in AltiVec register without enable AltiVec.
13200         (function_arg_advance): Ditto for passing arguments.
13201
13202 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
13203
13204         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
13205         a label before updating its usage count.
13206
13207 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
13208
13209         * doc/install.texi: Remove extra cd.
13210
13211 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
13212
13213         * c-common.c (vector_size_helper): Remove; call
13214         reconstruct_complex_type() instead.
13215         * tree.c (reconstruct_complex_type): New function
13216         (formerly vector_size_helper() in c-common.c).
13217         (make_vector): Make externally visible.
13218         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
13219
13220 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13221
13222         * config/h8300/h8300-protos.h: Add a prototype for
13223         h8300_regs_ok_for_stm.
13224         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
13225         * config/h8300/h8300.md (stm_h8300s_2_advanced,
13226         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
13227         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
13228         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
13229         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
13230         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
13231         ldm_h8300s_4_normal, ldm_h8300s_4): Use
13232         h8300_regs_ok_for_stm().
13233
13234 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
13235
13236         PR c/14088
13237         * real.c (real_from_string): Look for 'X' as well as 'x' in
13238         hexfloat strings.
13239
13240 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13241
13242         * config/h8300/h8300.md: Remove an incorrect comment about
13243         peephole2.  Add comments.
13244
13245 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
13246
13247         PR/14058
13248         * emit-rtl.c (set_decl_incoming_rtl): New.
13249         * tree.h (set_decl_incoming_rtl): New.
13250         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
13251         DECL_INCOMING_RTL.
13252         * ada/misc.c (adjust_decl_rtl): Likewise.
13253
13254 2004-02-10  Per Bothner  <per@bothner.com>
13255
13256         * c-opts.c (c_common_post_options):   Don't emit working directory
13257         in cpp output if -P was specified.
13258
13259 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13260
13261         PR c/14092
13262         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
13263         negate_expr back to the original type.
13264
13265 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
13266
13267         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
13268         bump retaddr here.
13269
13270 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13271
13272         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
13273         gen_lowpart_SUBREG): Move under the file in which they
13274         are actually declared.
13275
13276 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
13277
13278         * doc/sourcebuild.texi: Add libada documentation.
13279
13280         * doc/install.texi: Update documentation on Ada build, now
13281         that the GNAT lib and tools are built automatically.
13282
13283 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
13284
13285         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
13286         && TARGET_IRIX.
13287
13288 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
13289
13290         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
13291         boundaries outside build_component_ref() call (a macro in ObjC++).
13292
13293 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
13294
13295         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
13296         (init_cumulative_args): Likewise.
13297         (a7_overlap_mentioned_p): Delete prototype.
13298         * config/xtensa/xtensa.c (struct machine_function): Replace
13299         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
13300         Add set_frame_ptr_insn field.
13301         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
13302         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
13303         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
13304         at the function entry and replace the operand with the pseudo.
13305         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
13306         argument and record this flag in CUMULATIVE_ARGS.
13307         (function_arg): Remove result_mode and special-case code to handle
13308         arguments in a7.  Instead, set need_a7_copy flag when there is an
13309         incoming argument in a7.
13310         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
13311         and use the value recorded in cfun->machine->set_frame_ptr_insn.
13312         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
13313         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
13314         special-case code.
13315         (a7_overlap_mentioned_p): Delete.
13316         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
13317         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
13318         arguments to init_cumulative_args and pass "incoming" flag instead.
13319         (BLOCK_REG_PADDING): Delete.
13320         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
13321         checks for reload_in_progress and reload_completed.  Update calls to
13322         xtensa_copy_incoming_a7.
13323         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
13324         to call xtensa_copy_incoming_a7.
13325
13326 2004-02-09  DJ Delorie  <dj@redhat.com>
13327
13328         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
13329         longer modify standard_exec_prefix, standard_bindir_prefix, or
13330         standard_startfile_prefix.
13331
13332 2004-02-09  James E Wilson  <wilson@specifixinc.com>
13333
13334         PR c++/11295
13335         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
13336         to expand_expr_real call, and pass in alt_rtl as last argument.
13337
13338         PR libstdc++/5625
13339         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
13340         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
13341         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
13342         * except.c (expand_builtin_extend_pointer): New.
13343         * except.h (expand_builtin_extend_pointer): Declare.
13344
13345 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
13346
13347         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
13348         unaligned loads and stores.
13349
13350 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13351
13352         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
13353         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
13354
13355         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
13356         * config/mips/iris5.h: ... here.
13357         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
13358
13359         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
13360         * config/mips/iris5.h: ... here.
13361
13362 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13363
13364         * configure.ac: Remove default executable files before AC_PROG_CC.
13365         * configure: Regenerate.
13366
13367 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
13368
13369         PR target/13721
13370         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
13371         print a operand other than a register.
13372
13373 2004-02-09  Roger Sayle  <roger@eyesopen.com>
13374
13375         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13376         tree code rather than call fold_convert, which doesn't specify a
13377         default floating point to integer conversion.
13378
13379 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
13380
13381         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13382         code to support SGS assembler.  Reformat adjacent code where possible.
13383         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13384         definition.
13385         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13386         for '%#'.
13387         * config/m68k/linux.h, config/m68k/m68k.c,
13388         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13389         macros and asm_printf() format strings.
13390         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13391         * config/m68k/linux.h: Update copyright.
13392         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13393
13394 2004-02-08  Andreas Schwab  <schwab@suse.de>
13395             Bernardo Innocenti  <bernie@develer.com>
13396
13397         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13398         REGISTER_PREFIX.
13399         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13400         frame pointer register, overridable by OS targets.
13401         * (M68K_REGNAME): Macro to obtain register name for asm output,
13402         eventually replacing %a6 with M68K_FP_REG_NAME.
13403         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13404         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13405         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13406         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13407         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13408
13409 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13410
13411         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13412         hook_rtx_tree_int_null.
13413         * targhooks.c (default_struct_value_rtx): Remove.
13414         * targhooks.h: Remove the prototype for
13415         default_struct_value_rtx.
13416         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13417         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13418         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13419         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13420         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13421         config/rs6000/rs6000.c, config/s390/s390.c,
13422         config/stormy16/stormy16.c, config/v850/v850.c,
13423         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13424         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13425
13426 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13427
13428         * README.Portability: Change "ISO C89" to "ISO C90".
13429         * c-parse.in (primary, initelt): Likewise.
13430
13431 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13432
13433         * real.c (encode_ibm_extended): Normalize the input value before
13434         converting it to a double.  Handle the case where a normal value
13435         rounds to infinity.
13436
13437 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13438
13439         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13440         warning.
13441         * cse.c (preferrable): Change to preferable. Update all of its
13442         callers.
13443         * genautomata.c (ainsn): Change
13444         first_ainsn_with_given_equialence_num to
13445         first_ainsn_with_given_equivalence_num.  Update all of its
13446         references.
13447
13448 2004-02-08  Jan Hubicka  <jh@suse.cz>
13449
13450         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13451
13452 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13453
13454         * function.c (assign_parms): Fix formatting.
13455
13456 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13457
13458         * default.h (PROMOTE_PROTOTYPES): Remove.
13459         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13460         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13461         EXPAND_BUILTIN_SAVEREGS): Poison.
13462         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13463         hook_bool_tree_false.
13464         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13465         * target.h: Replace SETUP_INCOMING_VARARGS with
13466         targetm.calls.setup_incoming_varargs().
13467         * targhooks.c (default_promote_function_return): Remove.
13468         (default_promote_prototypes): Likewise.
13469         (default_struct_value_rtx): Always abort().
13470         (default_expand_builtin_saveregs): Always print an error
13471         message.
13472         (default_setup_incoming_varargs): Do nothing.
13473         (default_pretend_outgoing_varargs_named): Don't depend on
13474         SETUP_INCOMING_VARARGS.
13475         * targhooks.h: Remove the prototype for
13476         default_promote_function_return and
13477         default_promote_prototypes.
13478
13479 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13480
13481         * system.h (SHARED_SECTION_ASM_OP): Poison.
13482         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13483         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13484
13485 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13486
13487         Bug 13856
13488         * c-decl.c (diagnose_mismatched_decls): Only give special
13489         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13490         is also true.
13491         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13492         DECL_FUNCTION_CODE when defining a built-in function.
13493         Don't update DECL_ESTIMATED_INSNS.
13494         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13495         FUNCTION_DECLs.
13496         * tree.h: Delete DECL_ESTIMATED_INSNS.
13497         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13498         (expand_call_inline, optimize_inline_calls): Don't update
13499         DECL_ESTIMATED_INSNS nor inlined_insns.
13500         * cgraphunit.c (cgraph_analyze_function): Don't update
13501         DECL_ESTIMATED_INSNS.
13502
13503 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13504
13505         * c-common.c (shadow_warning): Delete.
13506         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13507         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13508         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13509         * c-parse.in (free_parser_stacks): Delete.
13510
13511 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13512
13513         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13514         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13515         Use the top level mkinstalldirs, not the one in the gcc subdir.
13516         * mkinstalldirs: Remove (from the gcc subdir).
13517
13518 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13519
13520         PR middle-end/13696
13521         * fold-const.c (fold_convert): New function to provide type
13522         conversion to the middle-end without using convert.
13523         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13524         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13525         invert_truthvalue, optimize_bit_field_compare, range_binop,
13526         decode_field_reference, make_range, build_range_check, unextend,
13527         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13528         fold_binary_op_with_conditional_arg, fold_inf_compare,
13529         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13530         convert with calls to fold_convert.
13531
13532 2004-02-07  Jan Hubicka  <jh@suse.cz>
13533
13534         * genrecog.c (find_operand): add extra argument stop.
13535         (validate_pattern): Verify that mach_dup is duplicating operand
13536         defined lexically earlier.
13537
13538 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13539
13540         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13541         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13542         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13543         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13544         config/ia64/ia64.h, config/ip2k/ip2k.h,
13545         config/iq2000/iq2000.h, config/mips/iris5.h,
13546         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13547         config/rs6000/aix51.h, config/rs6000/aix52.h,
13548         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13549         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13550         config/sparc/linux.h, config/sparc/linux64.h,
13551         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13552         config/xtensa/xtensa.h: Remove the definitions of
13553         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13554         MAX_WCHAR_TYPE_SIZE.
13555         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13556         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13557
13558 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13559
13560         PR bootstrap/13990
13561         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13562         gen_rtx_NE.
13563
13564 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13565
13566         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13567         #ifdef ENABLE_CHECKING and #endif.
13568
13569 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13570
13571         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13572         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13573         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13574         integer types and floating point with unsafe_math_optimizations.
13575         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13576         Optimize A - B as A + (-B), if B is easily negated.
13577
13578 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13579
13580         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13581         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13582         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13583         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13584         Update copyright.
13585
13586 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13587
13588         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13589
13590 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13591
13592         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13593         glibc 2.3 or better.
13594
13595 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13596
13597         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13598         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13599
13600 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13601
13602         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13603         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13604         (SHLIB_MKMAP_OPTS): Delete.
13605         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13606         (bispecs): Add rule.
13607         * config/rs6000/libgcc-ppc64.ver: New file.
13608         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13609         (__floatdidf, __floatdisf): Optimize multiply.
13610         (__fixunstfdi): New function.
13611         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13612         real and imag parts larger than one register.
13613         (function_arg): Correct type of reg used when fp arg split partially
13614         to stack.
13615         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13616         and __MACH__ or __powerpc64__.
13617
13618 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13619             Ulrich Weigand  <uweigand@de.ibm.com>
13620
13621         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13622         of gen_highpart or gen_lowpart when the floating point format is
13623         wider than the result mode.
13624
13625 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13626
13627         * dwarf2out.c (loclabel_num): Move into #ifdef
13628         DWARF2_DEBUGGING_INFO.
13629
13630 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13631
13632         * objc/objc-act.c (build_super_template) the 'class' field of
13633         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13634         (get_super_receiver): Likewise.
13635
13636 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13637
13638         * reload1.c (check_eliminable_occurrences): Optimize the reset
13639         of can_eliminate.
13640         (eliminate_regs_in_insn): Likewise.
13641
13642 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13643             Josef Zlomek  <zlomekj@suse.cz>
13644
13645         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13646         at the beginning of function, call dwarf2out_var_location for
13647         NOTE_INSN_VAR_LOCATION note.
13648         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13649         decl_loc_table): New.
13650         (lookup_decl_loc): New function.
13651         (add_var_loc_to_decl): New function.
13652         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13653         only if can_use_fbreg.
13654         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13655         functions.
13656         (loc_descriptor): Likewise. Process VAR_LOCATION.
13657         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13658         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13659         can_use_fbreg == true.
13660         (add_location_or_const_value_attribute): Added parameter enum
13661         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13662         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13663         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13664         with attr == DW_AT_location.
13665         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13666         if frame_base_decl is defined and has a location list.
13667         (gen_variable_die): Call add_location_or_const_value_attribute with
13668         attr == DW_AT_location.
13669         (dwarf2out_var_location): New function.
13670         (dwarf2out_begin_function): New function.
13671         (dwarf2out_init): Create decl_loc_table.
13672
13673 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13674
13675         * loop.c (force_movables): Transitively increase the priorities of
13676         all insns forces by an insn, not just the first one.
13677
13678 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13679             Daniel Berlin <dberlin@dberlin.org>
13680
13681         Josef Zlomek  <zlomekj@suse.cz>
13682         * Makefile.in (var-tracking.o): New.
13683         * common.opt (fvar-tracking): New.
13684         * flags.h (flag_var_tracking): New.
13685         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13686         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13687         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13688         * rtl.c (note_insn_name): Likewise.
13689         * rtl.def (VAR_LOCATION): New.
13690         * rtl.h (NOTE_VAR_LOCATION): New.
13691         (NOTE_VAR_LOCATION_DECL): New.
13692         (NOTE_VAR_LOCATION_LOC): New.
13693         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13694         (variable_tracking_main): New exported function.
13695         * timevar.def (TV_VAR_TRACKING): New.
13696         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13697         (dump_file): "vartrack" was added (-dV).
13698         (flag_var_tracking): New.
13699         (f_options): "var-tracking" was added.
13700         (rest_of_handle_variable_tracking): New function.
13701         (rest_of_compilation): Run variable tracking.
13702         (process_options): If user has not specified flag_var_tracking set it
13703         according to optimize, debug_info_level and debug_hooks.
13704         * tree.h (frame_base_decl): New.
13705         * var-tracking.c: New file.
13706         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13707         (ia64_override_options): Set flags to run variable tracking in machine
13708         dependent reorg instead of toplev.c.
13709         (ia64_reorg): Run variable tracking if wanted.
13710         * doc/invoke.texi: Mention variable tracking in -dV,
13711         add and -fvar-tracking.
13712         * doc/passes.texi: Added variable tracking pass.
13713
13714         Daniel Berlin <dberlin@dberlin.org>
13715         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13716         * dbxout.c (dbx_debug_hooks): Likewise.
13717         (xcoff_debug): Likewise.
13718         * debug.c (do_nothing_debug_hooks): Likewise.
13719         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13720         * dwarfout.c (dwarf_debug_hooks): Likewise.
13721         * sdbout.c (sdb_debug_hooks): Likewise.
13722         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13723         * final.c (final_scan_insn): Call var_location debug hook for each
13724         NOTE_INSN_VAR_LOCATION.
13725
13726 2004-02-06  Jan Hubicka  <jh@suse.cz>
13727
13728         * flow.c (update_life_info): Allocate reg_deaths when called from
13729         scheudler.
13730         (attempt_auto_inc):  Update life ranges accordingly.
13731
13732 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13733
13734         PR debug/11816
13735         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13736
13737 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13738
13739         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13740
13741 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13742
13743         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13744         a separate line info table in use.
13745         Use the correct size for terminators.
13746         (output_die): Use offset, not delta.
13747
13748 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13749
13750         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13751
13752 2004-02-06  Jan Hubicka  <jh@suse.cz>
13753
13754         * recog.c (split_all_insns): Do not update reg info.
13755         * regrename.c (regrename_optimize): Likewise.
13756         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13757         * flow.c (struct propagate_block_info): Add insn_num field.
13758         (reg_deaths): New array.
13759         (life_analysis): Free reg_deaths info.
13760         (allocate_reg_life_data): Allocate reg_deaths array.
13761         (propagate_one_insn): Use new array.
13762         (init_propagate_block): Initialize it.
13763         (free_propagate_block_info): Finish compuation of
13764         REG_LIVE_LENGTH
13765         (attempt_auto_inc): Sanity check that REG_INFO is not
13766         computed at same time.
13767         (mark_used_regs): Update new array.
13768
13769         * reg-stack.c (subst_stack_regs): Unshare clobbers before
13770         substitution.
13771
13772 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13773
13774         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13775         *extendqisi2_short_displ.
13776
13777 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
13778
13779         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
13780         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
13781         (emit_library_call_value_1): Likewise pass nargs.
13782         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
13783         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
13784         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
13785         parameter instead of scanning TYPE_ARGS_TYPES to count args.
13786         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
13787         prototype.
13788         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
13789         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
13790         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
13791         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
13792         INIT_CUMULATIVE_ARGS.
13793         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
13794         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
13795         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
13796         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
13797         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13798         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
13799         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13800         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
13801         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
13802         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
13803         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13804         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
13805
13806 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13807
13808         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
13809         possible.
13810
13811 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13812
13813         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
13814         note containing (plus (reg) (const_int)), where reg is an
13815         eliminable reg, then perform the register elimination without
13816         depending on eliminate_regs().
13817
13818 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13819
13820         * config/arc/arc.c (arc_return_in_memory): Check the return
13821         value of int_size_in_bytes against -1.  Don't check
13822         TREE_ADDRESSABLE.
13823         * config/avr/avr.c (avr_return_in_memory): Check the return
13824         value of int_size_in_bytes against -1.
13825         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
13826         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
13827         Likewise.
13828         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
13829         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
13830         Likewise.
13831
13832 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13833
13834         * config/frv/frv-protos.h: Remove the prototype for
13835         frv_setup_incoming_varargs.
13836         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
13837         (frv_setup_incoming_varargs): Make it static.
13838         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
13839
13840 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13841
13842         * config/fr30/fr30-protos.h: Remove the prototype for
13843         fr30_setup_incoming_varargs.
13844         Update the prototypes for fr30_num_arg_regs and
13845         fr30_function_arg_partial_nregs.
13846         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
13847         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13848         (fr30_setup_incoming_varargs): Make it static.
13849         Add argument second_time.  Don't do anything when second_time
13850         is nonzero.
13851         (fr30_num_arg_regs): Change the type of the first argument to
13852         enum machine_mode.
13853         (fr30_function_arg_partial_nregs): Change the type of the
13854         second argument to enum machine_mode.
13855         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13856         (SETUP_INCOMING_VARARGS): Remove.
13857
13858 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13859
13860         * config/arc/arc-protos.h: Remove the prototype for
13861         arc_setup_incoming_varargs.
13862         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13863         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13864         (arc_setup_incoming_varargs): Make it static.
13865         (arc_external_libcall): Likewise.
13866         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13867         Remove the commented-out definition of
13868         ASM_OUTPUT_EXTERNAL_LIBCALL.
13869
13870 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13871
13872         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13873         to $$(slibdir) in the installation commands.
13874
13875 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13876
13877         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13878         with inner_regno, not regno.
13879         * rtlanal.c (refers_to_regno_p): Same.
13880
13881 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13882
13883         * config.gcc: Remove i370 support.
13884
13885 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13886
13887         * doc/install.texi:  Update automake and autoconf version
13888         requirements.  Note where to find gcj automake version.
13889
13890 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13891
13892         * Makefile.in (generate-manpages): Move dependencies to ...
13893         (man): here.
13894         * doc/makefile.texi: Document new targets.
13895         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
13896
13897 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13898
13899         PR/13485
13900         Makefile.in (srcextra):  Add a level of indirection to ...
13901         (gcc.srcextra): ... here.
13902         (po-generated): Delete.
13903         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
13904         options.c.
13905         (start.encap): Remove superfluous lang.srcextra dependency.
13906         objc/Make-lang.in (po-generated):  Delete.
13907
13908 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13909
13910         * config/ia64/ia64.c (REG_GP): Remove.
13911
13912 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13913
13914         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13915
13916 2004-02-05  Devang Patel  <dpatel@apple.com>
13917
13918         * dwarf2out.c (force_type_die): Look up input type itself
13919         instead of root_type() of type.
13920
13921 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13922
13923         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13924         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13925         pre-reload splitters are transformed to post-reload
13926         define_insn_and_split patterns.
13927         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13928
13929 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13930
13931         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13932         TARGET_PROMOTE_PROTOTYPES.
13933
13934 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13935
13936         PR middle-end/13750
13937         Revert:
13938         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13939         PR pch/13361
13940         * c-typeck.c (constructor_asmspec): Delete.
13941         (struct initializer_stack): Delete field 'asmspec'.
13942         (start_init): Delete saving of asmspec.
13943         (finish_init): Don't update constructor_asmspec.
13944         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13945         * stmt.c (expand_asm): Duplicate strings from tree.
13946         (expand_asm_operands): Likewise.
13947         * tree.c (tree_size): Update computation of size of STRING_CST.
13948         (make_node): Don't make STRING_CST nodes.
13949         (build_string): Allocate string with tree node.
13950         * tree.def (STRING_CST): Update comment.
13951         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13952         (tree_string): Place contents of string in tree node.
13953         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13954         from tree.
13955
13956 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13957
13958         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13959         msgid.
13960
13961 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13962
13963         * config/rs6000/altivec.md (*movv4si_internal): At least one
13964         operand must be altivec_register_operand.
13965         (*movv8hi_internal1): Likewise.
13966         (*movv16qi_internal1): Likewise.
13967         (*movv4sf_internal1): Likewise.
13968
13969 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13970
13971         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13972         * configure: Regenerate.
13973
13974 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13975
13976         * doc/install.texi: Update description of --gxx-include-dir to
13977         give correct default value.
13978
13979 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13980
13981         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13982         8 with MAC_REG.
13983
13984 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13985
13986         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13987         gen_rtx_PARALLEL.
13988
13989 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13990
13991         * emit-rtl.c: Update the comment about the file.
13992
13993 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13994
13995         * sourcebuild.texi (Test Idioms): Update testcase naming
13996         conventions.
13997
13998 2004-02-04  Per Bothner  <per@bothner.com>
13999
14000         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
14001         * c-ppoutput.c (pp_dir_change):  New function.
14002         * c-common.h (pp_dir_change):  New declaration.
14003         * cpplib.h (struct cpp_options):  Remove working_directory field.
14004         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
14005         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
14006         Don't handle -fworking_directory here, but in c_common_post_options.
14007         (read_original_directory): Don't back up when done.
14008         Don't clear no-longer used working_directory flag.
14009         * cpplib.h:  Update declarations to match.
14010         * c-lex.c (cb_dir_change):  Move to c-opts.c.
14011         (init_c_lex):  Don't set dir_change callback here, since we want
14012         to set it even if flag_preprocess_only.
14013         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
14014         (c_common_post_options):  Set dir_change callback.
14015         Call pp_dir_change if approporiate.
14016         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
14017         unneeded parameter and result. Do LC_RENAME for <built-in>.
14018         (c_common_post_options):  Call cpp_read_main_file here instead.
14019         (c_common_init):  Update accordingly.
14020         (push_command_line_include):  Don't cpp_push_main_file.
14021         Do LC_RENAME rather than LC_LEASE to get back to main file.
14022         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
14023         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
14024         files, but call finish_options for all files.
14025         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
14026         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
14027         cpp_find_main_file + cpp_push_main_file.
14028         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
14029         * opts.c (handle_options):  Only set main_input_filename first time.
14030
14031 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
14032
14033         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
14034
14035 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
14036
14037         * reload.c (find_equiv_reg): When checking for register overlap,
14038         don't index hard_regno_nregs with a pseudo-reg.
14039
14040 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14041
14042         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
14043
14044 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
14045
14046         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
14047         against FIRST_PSEUDO_REGISTER.
14048
14049 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14050
14051         * Makefile.in: Move target, host overrides after per-language
14052         fragments.
14053
14054         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
14055         (GNATLIBCFLAGS): Remove -g.
14056
14057 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14058
14059         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
14060         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14061         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14062         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
14063         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
14064         config/sparc/sparc.c, config/vax/vax.c: Revert the
14065         replacements of "FALLTHRU" with "Fall through" done in the
14066         previous patch.
14067
14068 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14069
14070         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
14071         config/arm/arm.c, config/arm/arm.md,
14072         config/cris/cris-protos.h, config/fr30/fr30.c,
14073         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
14074         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
14075         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
14076         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
14077         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
14078         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
14079         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
14080         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
14081         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
14082         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
14083         config/s390/s390.md, config/sparc/netbsd-elf.h,
14084         config/sparc/openbsd.h, config/sparc/sparc.c,
14085         config/xtensa/lib2funcs.S: Fix comment formatting.
14086
14087 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14088
14089         * config/alpha/alpha.c, config/arc/arc.c,
14090         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
14091         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
14092         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
14093         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
14094         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14095         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14096         config/iq2000/iq2000.c, config/m32r/m32r.c,
14097         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
14098         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
14099         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
14100         config/rs6000/rs6000.h, config/sparc/sparc.c,
14101         config/vax/vax.c: Fix comment typos.  Follow spelling
14102         conventions.
14103
14104 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14105
14106         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
14107         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
14108         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
14109         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
14110         config/arm/fpa.md, config/arm/iwmmxt.md,
14111         config/arm/netbsd-elf.h, config/arm/netbsd.h,
14112         config/m68hc11/m68hc11.md, config/mips/iris5.h,
14113         config/mn10300/mn10300.md, config/rs6000/altivec.md,
14114         config/sparc/netbsd-elf.h: Update copyright.
14115
14116 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
14117
14118         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14119         for all modes whose size is greater than 8 bytes if ARCH32.
14120         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
14121         by reference if ARCH32.
14122
14123 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
14124
14125         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
14126
14127 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14128
14129         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
14130         to before adddi3 insn patterns.
14131         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
14132         "reload_insi"): Move to before addsi3 insn patterns.
14133
14134 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
14135
14136         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
14137         parameter.  Use it instead of current_function_is_thunk.
14138         * function.h (struct function): Update documentation for is_thunk.
14139         * tree.h (CALL_FROM_THUNK_P): New macro.
14140         * config/alpha/alpha.c (alpha_sa_mask): Do not check
14141         no_new_pseudos when testing current_function_is_thunk.
14142         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
14143
14144 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14145
14146         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
14147         TARGET_SETUP_INCOMING_VARARGS.
14148
14149 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14150
14151         * emit-rtl.c (gen_rtx): Remove.
14152         * genattrtab.c: Don't mention gen_rtx in a comment.
14153         * rtl.h: Remove the prototype for gen_rtx.
14154         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
14155
14156 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14157
14158         * config/arc/arc.h, config/fr30/fr30.h
14159         (SETUP_INCOMING_VARARGS): Remove the target-independent
14160         comments.
14161         * doc/tm.texi: Don't mention deprecated target macros.
14162
14163 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14164
14165         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
14166         target-independent comment.
14167
14168 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14169
14170         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
14171         mention deprecated target macros.
14172
14173 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14174
14175         * config.gcc: Remove obsolete ports and configurations.
14176         * config/linux-aout.h, config/netware.h,
14177         config/t-linux-gnulibc1, config/d30v/abi,
14178         config/d30v/d30v-protos.h, config/d30v/d30v.c,
14179         config/d30v/d30v.h, config/d30v/d30v.md,
14180         config/d30v/libgcc1.asm, config/d30v/t-d30v,
14181         config/dsp16xx/dsp16xx-modes.def,
14182         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
14183         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
14184         config/i370/README, config/i370/i370-c.c,
14185         config/i370/i370-protos.h, config/i370/i370.c,
14186         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
14187         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
14188         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
14189         config/i386/moss.h, config/i386/netware.h,
14190         config/i386/svr3.ifile, config/i386/svr3dbx.h,
14191         config/i386/svr3gas.h, config/i386/svr3z.ifile,
14192         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
14193         config/i960/i960-c.c, config/i960/i960-coff.h,
14194         config/i960/i960-modes.def, config/i960/i960-protos.h,
14195         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
14196         config/i960/rtems.h, config/i960/t-960bare,
14197         config/m68k/hp310.h, config/m68k/hp320.h,
14198         config/m68k/hp320base.h, config/m68k/m68kv4.h,
14199         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
14200         Remove.
14201         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
14202         doc/md.texi: Remove mentions of obsolete ports.
14203
14204 2004-02-04  Jan Hubicka  <jh@suse.cz>
14205
14206         * alias.c (find_base_term, get_addr):  Do not dereference NULL
14207         pointer when all VALUE's locations has been invalidated.
14208         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
14209
14210 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
14211
14212         * doc/invoke.texi (x86 options): Fix spelling/wording.
14213
14214 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
14215
14216         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
14217         put the original string in a comment.
14218         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
14219         * config/mips/mips.c (mips_output_ascii): Likewise.
14220         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
14221
14222 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14223
14224         * system.h (GIV_SORT_CRITERION): Poison.
14225         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
14226         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
14227
14228 2004-02-03  Roger Sayle  <roger@eyesopen.com>
14229
14230         PR target/9348
14231         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
14232         multiplies with a multiplication of the wrong signedness, its the
14233         signedness of the multiplication that we've performed that needs to
14234         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
14235         if expand_mult_highpart_adjust places the result in target.
14236
14237 2004-02-03  Richard Henderson  <rth@redhat.com>
14238
14239         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
14240
14241 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
14242
14243         * config.gcc (sh[234]l): Use little endian fragments.
14244
14245 2004-02-03  Paul Koning  <pkoning@equallogic.com>
14246
14247         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
14248         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
14249         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
14250         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
14251         floating point format.
14252         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
14253         the above functions.
14254         (output_move_quad): Output float values in correct target format.
14255         (legitimate_const_double_p): New function.
14256         * config/pdp11/pdp11.h: Fix typos.
14257         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
14258         (TARGET_FLOAT_FORMAT): Ditto.
14259         (pdp11_f_format, pdp11_d_format): Add external declarations.
14260         (MAX_REGS_PER_ADDRESS): Corrected.
14261         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
14262         (PRINT_OPERAND): Output float literals in target format.
14263
14264 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
14265
14266         PR c++/13975
14267         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
14268         TI_PRIVATE.
14269         (access_public_node): Redefine.
14270         (access_protected_node): Likewise.
14271         (access_private_node): Likewise.
14272         * tree.c (build_common_tree_nodes): Create access_public_node,
14273         access_protected_node, and access_private_node.
14274
14275 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
14276
14277         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
14278         (MASK_INLINE_INT_DIV_THR): Ditto.
14279         (MASK_INLINE_SQRT_LAT): Ditto.
14280         (MASK_INLINE_SQRT_THR): Ditto.
14281         (MASK_DWARF2_ASM): Ditto.
14282         (MASK_EARLY_STOP_BITS): Ditto.
14283
14284 2004-02-02  Paul Brook  <paul@codesourcery.com>
14285
14286         Merge from csl-arm-branch.
14287
14288         2004-01-30  Paul Brook  <paul@codesourcery.com>
14289
14290         * aof.h (REGISTER_NAMES): Add vfp reg names
14291         (ADDITIONAL_REGISTER_NAMES): Ditto.
14292         * aout.h (REGISTER_NAMES): Ditto.
14293         (ADDITIONAL_REGISTER_NAMES): Ditto.
14294         * arm-protos.h: Update/Add Prototypes.
14295         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
14296         Only allow 0.0 for VFP.
14297         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
14298         (values_fp): Rename from values_fpa.  Update Users.
14299         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
14300         Update users.  Only check valid constants for this hardware.
14301         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
14302         Only allow consts for FPA.
14303         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
14304         Only allow consts for FPA.
14305         (use_return_insn): Check for saved VFP regs.
14306         (arm_legitimate_address_p): Handle VFP DFmode addressing.
14307         (arm_legitimize_address): Ditto.
14308         (arm_general_register_operand): New function.
14309         (vfp_mem_operand): New function.
14310         (vfp_compare_operand): New function.
14311         (vfp_secondary_reload_class): New function.
14312         (arm_float_compare_operand): New function.
14313         (vfp_print_multi): New function.
14314         (vfp_output_fstmx): New function.
14315         (vfp_emit_fstm): New function.
14316         (arm_output_epilogue): Output VPF reg restore code.
14317         (arm_expand_prologue): Output VFP reg save code.
14318         (arm_print_operand): Add 'P'.
14319         (arm_hard_regno_mode_ok): Return modes for VFP regs.
14320         (arm_regno_class): Return classes for VFP regs.
14321         (arm_compute_initial_elimination_offset): Include space for VFP regs.
14322         (arm_get_frame_size): Ditto.
14323         * arm.h (FIXED_REGISTERS): Add VFP regs.
14324         (CALL_USED_REGISTERS): Ditto.
14325         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
14326         (FIRST_VFP_REGNUM): Define.
14327         (LAST_VFP_REGNUM): Define.
14328         (IS_VFP_REGNUM): Define.
14329         (FIRST_PSEUDO_REGISTER): Include VFP regs.
14330         (HARD_REGNO_NREGS): Handle VFP regs.
14331         (REG_ALLOC_ORDER): Add VFP regs.
14332         (enum reg_class): Add VFP_REGS.
14333         (REG_CLASS_NAMES): Ditto.
14334         (REG_CLASS_CONTENTS): Ditto.
14335         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
14336         (REG_CLASS_FROM_LETTER): Add 'w'.
14337         (EXTRA_CONSTRAINT_ARM): Add 'U'.
14338         (EXTRA_MEMORY_CONSTRAINT): Define.
14339         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
14340         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14341         (REGISTER_MOVE_COST): Ditto.
14342         (PREDICATE_CODES): Add arm_general_register_operand,
14343         arm_float_compare_operand and vfp_compare_operand.
14344         * arm.md (various): Rename as above.
14345         (divsf3): Enable when TARGET_VFP.
14346         (divdf3): Ditto.
14347         (movdfcc): Ditto.
14348         (sqrtsf2): Ditto.
14349         (sqrtdf2): Ditto.
14350         (arm_movdi): Disable when TARGET_VFP.
14351         (arm_movsi_insn): Ditto.
14352         (movsi): Only split with general regs.
14353         (cmpsf): Use arm_float_compare_operand.
14354         (push_fp_multi): Restrict to TARGET_FPA.
14355         (vfp.md): Include.
14356         * vfp.md: New file.
14357         * fpa.md (various): Rename as above.
14358         * doc/md.texi: Document ARM w and U constraints.
14359
14360         2004-01-15  Paul Brook  <paul@codesourcery.com>
14361
14362         * config.gcc: Add with_fpu.  Allow with-float=softfp.
14363         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
14364         Break out of loop when we find a float-abi.  Fix typo.
14365         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
14366         Set -mfloat-abi=.
14367         * doc/install.texi: Document --with-fpu.
14368
14369         2003-01-14  Paul Brook  <paul@codesourcery.com>
14370
14371         * config.gcc (with_arch): Add armv6.
14372         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
14373         * config/arm/arm.c (arm_overrride_options): Ditto.
14374
14375         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
14376
14377         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14378         (FL_ARCH6): Renamed from FL_ARCH6J.
14379         (arm_arch3m): Renamed from arm_fast_multiply.
14380         (arm_arch6): Renamed from arm_arch6j.
14381         * arm.h: Update all uses of above.
14382         * arm-cores.def: Likewise.
14383         * arm.md: Likewise.
14384
14385         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14386         not arm6j.  Add entry for arch armv6.
14387
14388         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
14389
14390         * arm.c (arm_emit_extendsi): Delete.
14391         * arm-protos.h (arm_emit_extendsi): Delete.
14392         * arm.md (zero_extendhisi2): Also handle zero-extension of
14393         non-subregs.
14394         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14395         (thumb_zero_extendhisi2): Only match if not v6.
14396         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14397         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14398         (thumb_extendqisi2): Likewise.
14399         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14400         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14401         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14402         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14403         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14404         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14405         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
14406         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14407         (arm_extendqisi2addsi): Likewise.
14408
14409         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
14410
14411         Revert this change:
14412         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14413         + REG addressing modes.
14414
14415         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14416         + REG addressing modes.
14417
14418         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
14419
14420         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14421         CONSTANT_P_RTX.
14422
14423         2003-30-12  Paul Brook  <paul@codesourcery.com>
14424
14425         * longlong.h: protect arm inlines with !defined (__thumb__)
14426
14427         2003-30-12  Paul Brook  <paul@codesourcery.com>
14428
14429         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14430
14431         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14432
14433         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14434         change.
14435
14436         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14437
14438         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14439         to the virtual incoming args pointer for downward stacks.
14440
14441         2003-12-29  Paul Brook  <paul@codesourcery.com>
14442
14443         * config/arm/arm-cores.def: Add cost function.
14444         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14445         (arm_rtx_costs): Remove
14446         (struct processors): Add rtx_costs field.
14447         (all_cores, all_architectures): Ditto.
14448         (arm_override_options): Set targetm.rtx_costs.
14449         (thumb_rtx_costs): New function.
14450         (arm_rtx_costs_1): Remove cases handled elsewhere.
14451         * config/arm/arm.h (processor_type): Add COSTS parameter.
14452
14453         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14454
14455         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14456         (arm926ejs.md): Include it.
14457         * config/arm/arm926ejs.md: New pipeline description.
14458
14459         2003-12-24  Paul Brook  <paul@codesourcery.com>
14460
14461         * config/arm/arm.c (arm_arch6j): New variable.
14462         (arm_override_options): Set it.
14463         (arm_emit_extendsi): New function.
14464         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14465         * config/arm/arm.h (arm_arch6j): Declare.
14466         * config/arm/arm.md: Add sign/zero extend insns.
14467
14468         2003-12-23  Paul Brook  <paul@codesourcery.com>
14469
14470         * config/arm/arm.c (all_architectures): Add armv6.
14471         * doc/invoke.texi: Document it.
14472
14473         2003-12-19  Paul Brook  <paul@codesourcery.com>
14474
14475         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14476         insn patterns to match.
14477         * config/arm/arm-generic.md: Ditto.
14478         * config/arm/cirrus.md: Ditto.
14479         * config/arm/fpa.md: Ditto.
14480         * config/amm/iwmmxt.md: Ditto.
14481         * config/arm/arm1026ejs.md: Ditto.
14482         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14483         for 11_loadb.
14484
14485         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14486
14487         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14488         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14489         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14490         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14491         arm_no_early_mul_dep): Correctly deal with conditional execution,
14492         parallels and single shift operations.
14493         (arm_no_early_alu_shift_value_dep): Define.
14494         * arm.md (attr type): Replace 'normal' with 'alu',
14495         'alu_shift' and 'alu_shift_reg'.
14496         (attr core_cycles): Adjust.
14497         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14498         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14499         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14500         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14501         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14502         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14503         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14504         attribute appropriately.
14505         * config/arm/arm1026ejs.md (alu_op): Adjust.
14506         (alu_shift_op, alu_shift_reg_op): New.
14507         * config/arm/arm1136.md: Add better bypasses for early
14508         registers. Remove load[234] and store[234] bypasses.
14509         (11_alu_op): Adjust.
14510         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14511
14512         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14513
14514         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14515         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14516         * config/arm/arm.c (arm_no_early_store_addr_dep,
14517         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14518         * config/arm/arm1026ejs.md: Add load-store bypass.
14519         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14520         Add bypasses between instructions.
14521
14522         2003-12-10  Paul Brook  <paul@codesourcery.com>
14523
14524         * config/arm/arm.c (arm_fpu_model): New variable.
14525         (arm_fload_abi): New variable.
14526         (target_fpe_name): Rename from target_fp_name.
14527         (target_fpu_name): New variable.
14528         (arm_is_cirrus): Remove.
14529         (fpu_desc): New struct.
14530         (all_fpus): Define.
14531         (pf_model_for_fpu): Define.
14532         (all_loat_abis): Define.
14533         (arm_override_options): Set fp arch flags based on -mfpu=
14534         and -float-abi=.
14535         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14536         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14537         (*): Use new TARGET_* flags.
14538         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14539         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14540         (TARGET_SOFT_FLOAT): Ditto.
14541         (TARGET_SOFT_FLOAT_ABI): New.
14542         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14543         TARGET_HARD_FLOAT.
14544         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14545         (TARGET_OPTIONS): Add -mfpu=.
14546         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14547         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14548         (arm_pf_model): Define.
14549         (arm_float_abi_type): Define.
14550         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14551         * config/arm/arm.md: Use new TARGET_* flags.
14552         * config/arm/cirrus.md: Ditto.
14553         * config/arm/fpa.md: Ditto.
14554         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14555         * config/arm/semi.h (ASM_SPEC): Ditto.
14556         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14557         (FPUTYPE_DEFAULT): Set to VFP.
14558         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14559
14560         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14561
14562         PR target/12476
14563         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14564         'bx' instead of 'b' to avoid branch range restrictions.  Output
14565         the thunk immediately before the thunked-to function.
14566         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14567         .thumb_func if a thunk is being generated.  Emit .code 16 along
14568         with .thumb_func if a thunk is not being generated.
14569
14570         2003-11-15  Nicolas Pitre <nico@cam.org>
14571
14572         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14573         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14574         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14575         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14576         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14577
14578         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14579             Ian Lance Taylor  <ian@wasabisystems.com>
14580
14581         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14582         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14583
14584         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14585
14586         * config/arm/arm.md (insn):  Add new V6 instruction names.
14587         (generic_sched):  New attr.
14588         * config/arm/arm-generic.md:  Use generic_sched here.
14589         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14590         stages of pipeline.  Adjust latency counts accordingly.
14591         * config/arm/arm1136jfs.md:  New file.
14592
14593         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14594
14595         * config/arm/arm.h (processor_type): New enumeration type.
14596         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14597         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14598         (CPP_CPU_ARCH_SPEC): Likewise.
14599         * config/arm/arm.c (arm_tune): New variable.
14600         (all_cores): Use cores.def.
14601         (all_architectures): Add representative processor.
14602         (arm_override_options): Restructure way in which tuning
14603         information is deduced.
14604         * arm.md: Update "insn" and "type" attributes throughout.
14605         (insn): New attribute.
14606         (type): Compute "mult" from "insn" attribute.  Add load2,
14607         load3, load4 alternatives.
14608         (arm automaton): Move to arm-generic.md.
14609         * config/arm/arm-cores.def: New file.
14610         * config/arm/arm-generic.md: Likewise.
14611         * config/arm/arm1026ejs.md: Likewise.
14612
14613 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14614
14615         * doc/invoke.texi (SPARC options): Remove -mflat and
14616         all -mxxx (xxx:chip) options.
14617         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14618         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14619         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14620         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14621         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14622         * config/sparc/sparc.c: Likewise.
14623         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14624         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14625         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14626         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14627         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14628         (sparc_flat_must_save_register_p): Likewise.
14629         (sparc_flat_compute_frame_size): Likewise.
14630         (sparc_flat_save_restore): Likewise.
14631         (sparc_flat_function_prologue): Likewise.
14632         (sparc_flat_function_epilogue): Likewise.
14633         (sparc_flat_epilogue_delay_slots): Likewise.
14634         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14635         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14636         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14637         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14638         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14639         (CONDITIONAL_REGISTER_USAGE): Likewise.
14640         (FRAME_POINTER_REQUIRED): Likewise.
14641         (INITIAL_ELIMINATION_OFFSET): Likewise.
14642         (BASE_RETURN_VALUE_REG): Likewise.
14643         (BASE_OUTGOING_VALUE_REG): Likewise.
14644         (BASE_PASSING_ARG_REG): Likewise.
14645         (BASE_INCOMING_ARG_REG): Likewise.
14646         (INCOMING_REGNO): Likewise.
14647         (OUTGOING_REGNO): Likewise.
14648         (LOCAL_REGNO): Likewise.
14649         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14650         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14651         (EPILOGUE_USES): Likewise.
14652         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14653         ("flat" attribute): Delete.
14654         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14655         handling.
14656         (call followed by jump define_peephole's): Delete.
14657         (exception_receiver): Likewise.
14658         (builtin_setjmp_receiver): Likewise.
14659         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14660
14661 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14662
14663         PR c/11658
14664         PR c/13994
14665         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14666         on langhooks.h.
14667         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14668         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14669         Include langhooks.h.  Replace c_common_truthvalue_conversion
14670         with the truthvalue_conversion language hook throughout.
14671         (expr_no_commas): Call default_conversion before save_expr
14672         for the first term of the production 'x ? : y'.
14673         * c-common.c (c_common_truthvalue_conversion): Remove
14674         obsolete block.  Invoke recursively the hook instead
14675         of this function.
14676         * c-convert.c (convert): handle ERROR_MARK_NODE.
14677         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14678         returned by the truthvalue_conversion language hook.
14679         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14680         c_objc_common_truthvalue_conversion.
14681         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14682         New function.
14683         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14684         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14685         c_objc_common_truthvalue_conversion.
14686
14687 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14688
14689         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14690         of gen_rtx.
14691         (LIBCALL_VALUE): Likewise.
14692         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14693         gen_rtx_CC0 instead of gen_rtx.
14694         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14695         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14696         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14697         gen_rtx.
14698         (m68hc11_emit_logical): Likewise.
14699
14700 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14701
14702         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14703         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14704         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14705         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14706         config/mips/mips.md, config/mmix/mmix.c,
14707         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14708         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14709         config/rs6000/altivec.md, config/s390/s390.c,
14710         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14711         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14712         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14713         constants that are readily available.
14714
14715 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14716
14717         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14718         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14719         instead of GEN_INT (0).  Do the same for other constants that
14720         are readily available.
14721
14722 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14723
14724         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14725         gen_rtx.
14726         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14727         instead of gen_rtx.
14728         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14729         gen_rtx.
14730         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14731         gen_rtx_ASHIFT instead of gen_rtx.
14732         (udivmodqi4): Likewise.
14733
14734 2004-02-02  Richard Henderson  <rth@redhat.com>
14735
14736         PR target/13789
14737         * expr.c (store_expr): Use force_operand before emit_move_insn.
14738
14739 2004-02-02  Jeff Law  <law@redhat.com>
14740             Roger Sayle  <roger@eyesopen.com>
14741
14742         * tree.c (commutative_tree_code, associative_tree_code): New
14743         functions.
14744         (iterative_hash_expr): Use commutative_tree_code.
14745         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14746         * fold-const.c (operand_equal_p): Use commutative_tree_code
14747         rather than inlining the commutativity check.
14748         (fold): Likewise.
14749
14750 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14751
14752         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14753         * config/frv/frv-protos.h: Remove the prototype for
14754         frv_function_arg_keep_as_reference.
14755         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14756         Remove.
14757         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14758         * config/stormy16/stormy16.h: Remove the commented-out
14759         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14760
14761 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
14762
14763         PR target/13914
14764         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14765         for retaddr_column.
14766
14767 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14768
14769         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14770         gen_rtx.
14771
14772 2004-02-02  Eric Christopher  <echristo@redhat.com>
14773             Zack Weinberg  <zack@codesourcery.com>
14774
14775         * c-opts.c (c_common_handle_option): Add -finput-charset.
14776         * c.opt: Ditto.
14777         * cppcharset.c (one_iso88591_to_utf8): Remove.
14778         (convert_iso88591_utf8): Ditto.
14779         (conversion_tab): Remove 8859-1 converter.
14780         (_cpp_input_to_utf8): Remove.
14781         (_cpp_init_iconv_buffer): Ditto.
14782         (_cpp_close_iconv_buffer): Ditto.
14783         (_cpp_convert_input): New function.
14784         (_cpp_default_encoding): Ditto.
14785         * cpphash.h: Add/remove prototypes for above.
14786         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
14787         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
14788         for narrow execution and input character sets.
14789         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
14790         * doc/cppopts.texi: Document -finput-charset.
14791
14792 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
14793
14794         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
14795         against FIRST_PSEUDO_REGISTER.
14796
14797 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14798
14799         * doc/invoke.texi (SPARC options): Further improve.
14800
14801 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14802
14803         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
14804         config/h8300/h8300.c, config/ip2k/ip2k.md,
14805         config/iq2000/iq2000.c, config/mips/mips.c,
14806         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
14807         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
14808         config/v850/v850.md: Fix indentation.
14809
14810 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14811
14812         * config/sparc/sparc.c (function_arg_slotno): Align TImode
14813         arguments on a 16-byte boundary in the parameter array if ARCH64.
14814         Split handling of TFmode.
14815
14816 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
14817
14818         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
14819         Don't test CONSTANT_P (x).
14820         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
14821         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
14822         Fix misindentation.
14823
14824 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14825
14826         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
14827
14828 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14829
14830         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
14831         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
14832         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
14833         config/iq2000/iq2000.c, config/m32r/m32r.c,
14834         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
14835         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
14836         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
14837         config/stormy16/stormy16.c, config/v850/v850.md,
14838         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
14839
14840 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14841
14842         * config/mcore/mcore.c (block_move_sequence): Replace
14843         gen_rtx_CONST_INT with GEN_INT.
14844
14845 2004-02-02  Jan Hubicka  <jh@suse.cz>
14846
14847         * alias.c (record_set): Use hard_regno_nregs.
14848         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
14849         * builtins.c (apply_args_size): Likewise.
14850         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
14851         mark_set_regs, add_stored_regs, mark_referenced_regs,
14852         insert_restore, insert_save, insert_one_insn): Likewise.
14853         * cfgcleanup.c: Include regs.h
14854         (mark_effect, mentions_nonequal_regs): Likewise.
14855         * cfgrtl.c (mark_killed_regs): Likewise
14856         * combine.c (update_table_tick, record_value_for_reg,
14857         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14858         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14859         reg_bitfield_target_p, distribute_notes): Likewise.
14860         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14861         exp_equiv_p, cse_insn): Likewise.
14862         * cselib.c (cselib_lookup): Likewise.
14863         (cselib_invalidate_regno, cselib_record_set): Likewise.
14864         * df.c (df_ref_record): Likewise.
14865         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14866         Likewise.
14867         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14868         count_or_remove_death_notes_bb): Likewise.
14869         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14870         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14871         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14872         * integrate.c (mark_stores): Likewise.
14873         * jump.c (delete_prior_computation): Likewise.
14874         * lcm.c (reg_dies, reg_becomes_live): Likewise.
14875         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14876         * loop.c (LOOP_REGNO_NREGS): Likewise.
14877         * postreload.c (reload_combine, reload_combine_note_store,
14878         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14879         * ra-colorize.c (combine, color_usable_p, get_free_reg,
14880         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
14881         try_recolor_web, insert_coalesced_conflicts, check_colors,
14882         break_precolored_alias): Likewise.
14883         * ra-debug.c: Include regs.h
14884         (ra_print_rtx_object): Likewise.
14885         * ra-rewrite (choose_spill_colors): Likewise.
14886         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14887         * ra.c (init_ra): Likewise.
14888         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14889         peep2_find_free_register): Likewise.
14890         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14891         * regclass.c (hard_regno_nregs): New array.
14892         (init_reg_modes_once): Initialize it.
14893         (choose_hard_reg_mode): Use it.
14894         (record_reg_classes): Likewise.
14895         * regmove.c (mark_flags_life_zones): Likewise.
14896         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
14897         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
14898         copy_value, maybe_mode_change, find_oldest_value_reg,
14899         copyprop_hardreg_forward_1):
14900         * regs.h (hard_regno_nregs): Declare.
14901         * realod.c (reload_inner_reg_of_subreg): Use it.
14902         (push_reload, combine_reloads, find_dummy_reload,
14903         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
14904         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
14905         reload_adjust_reg_for_mode): Likewise.
14906         * reload1.c (compute_use_by_pseudos, count_pseudo,
14907         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14908         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14909         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14910         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14911         delete_output_reload): Likewise.
14912         * resource.c (update_live_status, mark_referenced_resources,
14913         mark_set_resources, mark_target_live_regs): Likewise.
14914         * rtlanal.c:  Include regs.h
14915         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14916         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14917         subreg_regno_offset, subreg_offset_representable_p,
14918         hoist_test_store): Likewise.
14919         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14920         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14921         * stmt.c: Include regs.h
14922         (decl_conflicts_with_clobbers_p): Likewise.
14923         * varasm.c (make_decl_rtl): Likewise.
14924         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14925
14926 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14927
14928         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14929         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14930         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14931         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14932         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14933         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14934         config/iq2000/iq2000.h, config/m32r/m32r.c,
14935         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14936         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14937         config/mcore/mcore.c, config/mcore/mcore.h,
14938         config/mcore/mcore.md, config/mips/mips.c,
14939         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14940         config/rs6000/rs6000.c, config/s390/s390.c,
14941         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14942         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14943         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14944
14945 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14946
14947         * config/h8300/h8300.md (two peephole2's): New.
14948
14949 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14950
14951         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14952         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14953         (ASM_CPU_SPEC): Likewise
14954         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14955         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14956
14957 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14958
14959         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14960         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14961         (expand_builtin): Always call expand_builtin_pow.
14962
14963 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14964
14965         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14966         BUILT_IN_SIGNBITL): New GCC builtins.
14967         * builtins.c (expand_builtin_signbit): New function to RTL expand
14968         calls to signbit, signbitf and signbitl as inline intrinsics.
14969         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14970         (fold_builtin_signbit): New function to perform constant folding
14971         of signbit, signbitf and signbitl.
14972         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14973
14974         * doc/extend.texi: Document new signbit{,f,l} builtins.
14975
14976 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14977
14978         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14979
14980 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14981
14982         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14983         "mips_const_double_ok" and "simple_memory_operand", which were
14984         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14985         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14986         for removal of simple_memory_operand.
14987
14988 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14989
14990         * config/c4x/c4x.md: Use GEN_INT instead of
14991         gen_rtx (CONST_INT, ...).
14992
14993 2004-01-31  Richard Henderson  <rth@redhat.com>
14994
14995         * varasm.c (output_constant_pool): Don't zap the pool.
14996
14997 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14998
14999         * genrecog.c (decision_type): Add DT_const_int.
15000         (write_cond) [DT_const_int]: Print a comparison against small
15001         constant.
15002         (write_node): Simplify comparisons against small constants
15003         before printing tests.
15004
15005 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15006
15007         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
15008         instead of gen_rtx_CONST_INT.
15009
15010 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15011
15012         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
15013         instead of gen_rtx_CONST_INT.
15014
15015 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15016
15017         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
15018         hook_bool_CUMULATIVE_ARGS_false.
15019         * targhooks.c (default_strict_argument_naming): Rename to
15020         hook_bool_CUMULATIVE_ARGS_false.
15021         * targhooks.h: Update the prototype for
15022         default_strict_argument_naming.
15023
15024 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15025
15026         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15027         * config/sh/sh.h: Likewise.
15028         * config/sh/sh.md: Likewise.
15029
15030 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
15031
15032         * doc/invoke.texi (SPARC options): Restructure and update.
15033
15034 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15035
15036         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
15037         STRICT_ARGUMENT_NAMING): Poison.
15038         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
15039         hook_bool_tree_false.
15040         * targhooks.c (default_promote_function_args): Remove.
15041         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
15042         Don't check incoming.
15043         (default_strict_argument_naming): Don't use
15044         STRICT_ARGUMENT_NAMING.
15045         * targhooks.h: Remove the prototype for
15046         default_promote_function_args.
15047
15048 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15049
15050         * config/i386/i386-protos.h: Remove the prototype for
15051         ix86_setup_incoming_varargs.
15052         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
15053         (ix86_setup_incoming_varargs): Make it static.
15054         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
15055
15056 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15057
15058         * alloc-pool.c: Fix comment typos.
15059         * builtin-types.def: Likewise.
15060         * builtins.def: Likewise.
15061         * c-pretty-print.c: Likewise.
15062         * df.h: Likewise.
15063         * reload1.c: Likewise.
15064
15065 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15066
15067         * doc/invoke.texi: Follow spelling conventions.
15068         * doc/tm.texi: Likewise.
15069
15070 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15071
15072         * doc/install.texi: Fix typos.
15073         * doc/invoke.texi: Likewise.
15074
15075 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
15076
15077         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
15078         registers as pointers.
15079         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
15080
15081 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
15082
15083         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
15084         and restore it to gen_lowpart_general on exit.
15085         (gen_lowpart_for_combine): Adjust all callers to go through
15086         gen_lowpart.
15087         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
15088         and restore it to gen_lowpart_general on exit.
15089         (gen_lowpart_if_possible): Adjust all callers to go through
15090         gen_lowpart.
15091         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
15092         (gen_lowpart): Declare as pointer to function, initialized to
15093         gen_lowpart_general.
15094         * rtl.h (gen_lowpart): Declare as pointer to function.
15095
15096 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15097
15098         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15099         * calls.c: Likewise.
15100         * emit-rtl.c: Likewise.
15101         * function.c: Likewise.
15102         * reload1.c: Likewise.
15103         * config/i386/cygming.h: Likewise.
15104         * config/i386/i386.c: Likewise.
15105         * config/i386/winnt.c: Likewise.
15106
15107 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
15108
15109         PR bootstrap/9249
15110         * doc/install.texi: document --enable-__cxa_atexit option.
15111         * configure.ac: Disable __cxa_atexit if not supported.
15112         * configure: Regenerate.
15113
15114 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
15115
15116         * ggc-zone.c (ggc_free): New function.
15117
15118 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15119
15120         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
15121         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
15122         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
15123         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
15124         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
15125         config/alpha/alpha.c, config/alpha/alpha.h,
15126         config/alpha/alpha.md, config/alpha/unicosmk.h,
15127         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
15128         config/c4x/c4x-protos.h, config/c4x/c4x.md,
15129         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
15130         config/frv/frvend.c, config/i386/cygming.h,
15131         config/i386/djgpp.h, config/i386/emmintrin.h,
15132         config/i386/gthr-win32.c, config/i386/i386-interix.h,
15133         config/i386/i386-protos.h, config/i386/openbsd.h,
15134         config/i386/winnt.c, config/i386/xm-mingw32.h,
15135         config/i386/xmmintrin.h, config/ia64/ia64.md,
15136         config/iq2000/iq2000.md, config/m32r/m32r.md,
15137         config/m68k/m68k.md, config/mcore/mcore-elf.h,
15138         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
15139         config/mips/iris5gas.h, config/mips/iris6.h,
15140         config/mips/iris6gas.h, config/mips/linux.h,
15141         config/mips/mips.md, config/mips/netbsd.h,
15142         config/mips/openbsd.h, config/mips/windiss.h,
15143         config/pa/fptr.c, config/rs6000/aix.h,
15144         config/rs6000/altivec.h, config/rs6000/darwin.h,
15145         config/rs6000/xcoff.h, config/s390/s390-protos.h,
15146         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
15147         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
15148         config/sparc/sol2.h: Update copyright.
15149
15150 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
15151
15152         * Makefile.in (abs_docdir, abs_srcdir): Define.
15153         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
15154
15155 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15156
15157         * genconfig.c (main): Have CC0_P check its operand even on a
15158         target without cc0.
15159
15160 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15161
15162         * config/alpha/alpha.c: Remove mentions of deprecates macros
15163         in comments, remove some target-independent comments about target
15164         macros, and/or add minimal function comments for target hook
15165         implementations.
15166         * config/avr/avr.c: Likewise.
15167         * config/ia64/ia64.h: Likewise.
15168         * config/ip2k/ip2k.c: Likewise.
15169         * config/iq2000/iq2000.c: Likewise.
15170         * config/m32r/m32r.h: Likewise.
15171         * config/m68hc11/m68hc11.c: Likewise.
15172         * config/mcore/mcore.c: Likewise.
15173         * config/mmix/mmix.c: Likewise.
15174         * config/mn10300/mn10300.c: Likewise.
15175         * config/pa/pa.c: Likewise.
15176         * config/pdp11/pdp11.c: Likewise.
15177         * config/rs6000/rs6000.h: Likewise.
15178         * config/sh/sh.c: Likewise.
15179         * config/sh/sh.h: Likewise.
15180         * config/sparc/sparc.c: Likewise.
15181         * config/sparc/sparc.h: Likewise.
15182         * config/stormy16/stormy16.c: Likewise.
15183         * config/xtensa/xtensa.c: Likewise.
15184
15185 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15186
15187         PR optimization/12147
15188         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
15189         RELOAD_FOR_OPADDR_ADDR.
15190         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
15191         might be reused as RELOAD_FOR_OPADDR_ADDR register.
15192
15193 2004-01-30  Jan Hubicka  <jh@suse.cz>
15194
15195         * reload.c (get_secondary_mem): Fix updating of
15196         secondary_memlocs_elim_used.
15197
15198 2004-01-30  Richard Henderson  <rth@redhat.com>
15199
15200         * varasm.c (struct rtx_const, struct pool_constant): Remove.
15201         (MAX_RTX_HASH_TABLE): Remove.
15202         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
15203         (first_pool, last_pool, pool_offset): Remove.
15204         (struct rtx_constant_pool): Split out from ...
15205         (struct varasm_status): ... here.  Reference one via pointer.
15206         (struct constant_descriptor_rtx): Merge struct pool_constant.
15207         (SYMHASH): Remove.
15208         (decode_rtx_const): Remove.
15209         (const_hash_rtx, compare_constant_rtx): Remove.
15210         (record_constant_rtx): Remove.
15211         (const_desc_rtx_hash, const_desc_rtx_eq): New.
15212         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
15213         (const_rtx_hash_1, const_rtx_hash): New.
15214         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
15215         (simplify_subtraction): Use simplify_rtx.
15216         (force_const_mem): Rewrite to use new data structures.
15217         (find_pool_constant): Likewise.
15218         (get_pool_constant, get_pool_constant_mark,
15219         get_pool_constant_for_function, get_pool_mode,
15220         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
15221         (output_constant_pool_2): Split out from output_constant_pool.
15222         (output_constant_pool_1): Likewise.  Use new pool datastructures.
15223         (output_constant_pool): Zap entire pool datastructure.
15224         (mark_constant): Use new pool datastructures.
15225         (mark_constants): Use for_each_rtx.
15226         (mark_constant_pool): Use new pool datastructures.
15227
15228 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
15229
15230         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
15231         Copy operands[1] to pseudo for simplify_gen_subreg.
15232
15233 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15234
15235         * gcse.c (bypass_block): Fix a typo in the previous check-in
15236         to the file.
15237
15238 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
15239
15240         * toplev.c: Include alloc-pool.h.
15241         * Makefile.in (toplev.c): Update dependencies.
15242
15243 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15244
15245         * combine.c (simplify_shift_const, case XOR): Be careful when
15246         commuting XOR with ASHIFTRT.
15247
15248 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15249             Eric Botcazou  <ebotcazou@libertysurf.fr>
15250
15251         * config/sparc/sparc-protos.h: Remove the prototype for
15252         sparc_builtin_saveregs.
15253         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15254         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15255         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15256         (TARGET_STRUCT_VALUE_RTX): Likewise.
15257         (TARGET_RETURN_IN_MEMORY): Likewise.
15258         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15259         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15260         (sparc_builtin_saveregs): Make it static.
15261         (sparc_promote_prototypes): New.
15262         (sparc_struct_value_rtx): Likewise.
15263         (sparc_return_in_memory): Likewise.
15264         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
15265         (PROMOTE_FUNCTION_RETURN): Likewise.
15266         (RETURN_IN_MEMORY): Likewise.
15267         (STRUCT_VALUE): Likewise.
15268         (STRUCT_VALUE_INCOMING): Likewise.
15269         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15270         (STRICT_ARGUMENT_NAMING): Likewise.
15271         (PROMOTE_PROTOTYPES): Likewise.
15272
15273         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
15274
15275 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15276
15277         PR c/12818
15278         * varasm.c (const_hash_1) <STRING_CST>: Use the
15279         address to compute the hash value if flag_writable_strings.
15280         (compare_constant) <STRING_CST>: Compare the addresses
15281         if flag_writable_strings.
15282         (build_constant_desc): Do not copy the expression for a
15283         STRING_CST if flag_writable_strings.
15284
15285 2004-01-30  Jan Hubicka  <jh@suse.cz>
15286
15287         * alloc-pool.c: Include hashtab.h
15288         (alloc_pool_descriptor): New structure
15289         (alloc_pool_hash): New global variable.
15290         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
15291         (create_alloc_pool): Update statistics.
15292         (free_alloc_pool): Likewise.
15293         (pool_alloc): Likewise.
15294         (output_info): New structure
15295         (print_statistics, dump_alloc_pool_statistics): New function.
15296         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
15297         (dump_alloc_pool_statistics): Declare.
15298         * toplev.c (finalize):  Dump statistics.
15299
15300         * reload.c (secondary_memlocs_elim_used): New static variable.
15301         (get_secondary_mem): Update it.
15302         (find_reloads): Use it.
15303
15304 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
15305
15306         * toplev.c: Fix broken checkin of 2003-12-30, again.
15307
15308 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15309
15310         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
15311         s390*-*-* targets by specifying a 'nop' insn.
15312         * configure: Regenerate.
15313
15314 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15315
15316         PR target/11475
15317         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
15318
15319 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15320
15321         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
15322         of addr when creating MEM copy.
15323
15324 2004-01-29  Devang Patel  <dpatel@apple.com>
15325
15326         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
15327
15328 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15329
15330         PR inline-asm/6162
15331         * reload.c (find_reloads): Only support one pair of commutative
15332         operands.
15333
15334 2004-01-29  Roger Sayle  <roger@eyesopen.com>
15335
15336         PR java/13824
15337         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
15338         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
15339         recursion.
15340
15341 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15342
15343         * config/frv/frv.c: Don't mention deprecated macros in
15344         comments.  Remove some target-independent comments about
15345         target macros.
15346         * config/frv/frv.h: Likewise.
15347
15348 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15349
15350         * cfghooks.c (split_block): Set probability and count of the
15351         new edge.
15352
15353 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
15354
15355         * dwarf2out.c (struct die_struct): Added field decl_id.
15356         (decl_die_table): Changed to hash table.
15357         (decl_die_table_allocated): Deleted.
15358         (decl_die_table_in_use): Deleted.
15359         (DECL_DIE_TABLE_INCREMENT): Deleted.
15360         (decl_die_table_hash): New function.
15361         (decl_die_table_eq): New function.
15362         (lookup_decl_die): Lookup in a hash table.
15363         (equate_decl_number_to_die): Insert into a hash table.
15364         (dwarf2out_init): Init hash table decl_die_table.
15365
15366 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15367
15368         PR optimization/13424
15369         * expr.c (store_constructor): Revert 2003-12-03 change.
15370
15371         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
15372         expected before returning early.  Avoid sharing RTL if they
15373         need to be changed.
15374
15375         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15376         handling so that memory attributes are preserved.  Don't call
15377         ix86_set_move_mem_attrs.
15378         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15379         (ix86_expand_clrstr): Rename src argument to
15380         dst.  Rework rep_stos and strset handling so that memory attributes
15381         are preserved.
15382         (ix86_expand_strlen): Pass src argument to
15383         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
15384         memory attributes are preserved.
15385         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
15386         change_address instead of gen_rtx_MEM.
15387         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15388         expanders.
15389         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15390         strmovqi, strmovqi_rex64): Remove.
15391         (rep_mov*, strmov*): Prefix insn names with *.
15392         (strset, strset_singleop, rep_stos): New expanders.
15393         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15394         strsetqi, strsetqi_rex64): Remove.
15395         (rep_stos*, strset*): Prefix insn names with *.
15396         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
15397         to SImode.
15398         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15399         are preserved.
15400         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15401         Prefix insn names with *.
15402         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15403         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15404         (strlenqi_1): New expander.
15405         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15406
15407 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15408
15409         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15410         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15411         verify_flow_info): Declaration removed.
15412         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15413         (debug_bb, debug_bb_n): Add argument to dump_bb call.
15414         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15415         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15416         instead of delete_block.
15417         * cfghooks.c: Include timevar.h and toplev.h.
15418         (cfg_hooks): Define here.
15419         (verify_flow_info, dump_bb): Moved from cfg.c.
15420         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15421         split_block, split_block_after_labels, move_block_after,
15422         delete_basic_block, split_edge, create_basic_block,
15423         create_empty_bb, can_merge_blocks_p, merge_blocks,
15424         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15425         New functions.
15426         * cfghooks.h (struct cfg_hooks): Added fields name,
15427         make_forwarder_block, tidy_fallthru_edge and
15428         move_block_after. Changed type of verify_flow_info, dump_bb,
15429         split_block fields. Renamed cfgh_split_edge and delete_block
15430         fields.
15431         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15432         split_block, delete_block, split_edge, create_basic_block,
15433         can_merge_blocks_p, merge_blocks): Macros removed.
15434         (cfg_hooks): Do not export.
15435         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15436         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15437         move_block_after, delete_basic_block, split_edge, create_basic_block,
15438         create_empty_bb, can_merge_blocks_p, merge_blocks,
15439         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15440         Declare.
15441         (cfg_layout_rtl_cfg_hooks): Declare.
15442         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15443         New functions.
15444         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15445         (redirect_edge_with_latch_update): Removed.
15446         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15447         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15448         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15449         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15450         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15451         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15452         cfghooks.c.
15453         (rtl_create_basic_block): Coding style fix.
15454         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15455         rtl_make_forwarder_block): New functions.
15456         (update_cfg_after_block_merging): Removed.
15457         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15458         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15459         to dump_bb.
15460         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15461         find_if_case_2): Don't update dominators.
15462         * timevar.def (TV_CFG_VERIFY): New.
15463         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15464         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15465         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15466         (remove_bbs): Don't call remove_bbs.
15467         (create_preheader): Use make_forwarder_block.
15468         (mfb_keep_just, mfb_update_loops): New static functions.
15469
15470 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15471
15472         * config/avr/avr.h: Remove target-independent comments about
15473         target macros.
15474
15475 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15476
15477         * timevar.c (timevar_print): Mention when checking is enabled.
15478
15479 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15480
15481         * c-lex.c (c_lex): Rename to...
15482         (c_lex_with_flags): Add new parameter to get CPP flags.
15483         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15484         * c-pragma.h (c_lex_with_flags): Declare.
15485
15486 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15487
15488         * config/mcore/mcore.c (mcore_external_libcall): Add a
15489         comment.
15490         (mcore_return_in_memory): Likewise.
15491
15492 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15493
15494         * config/mcore/mcore-protos.h: Remove the prototype for
15495         mcore_setup_incoming_varargs.
15496         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15497         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15498         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15499         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15500         (TARGET_STRUCT_VALUE_RTX): Likewise.
15501         (TARGET_RETURN_IN_MEMORY): Likewise.
15502         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15503         (mcore_setup_incoming_varargs): Make it static.  Receive the
15504         first argument by reference.  Add argument second_time.
15505         (mcore_external_libcall): New.
15506         (mcore_return_in_memory): Likewise.
15507         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15508         (PROMOTE_FUNCTION_RETURN): Likewise.
15509         (STRUCT_VALUE): Likewise.
15510         (RETURN_IN_MEMORY): Likewise.
15511         (SETUP_INCOMING_VARARGS): Likewise.
15512         (PROMOTE_PROTOTYPES): Likewise.
15513         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15514
15515 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15516
15517         * config/m32r/m32r-protos.h: Remove the prototype for
15518         m32r_setup_incoming_varargs.
15519         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15520         (TARGET_STRUCT_VALUE_RTX): Likewise.
15521         (TARGET_RETURN_IN_MEMORY): Likewise.
15522         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15523         (m32r_return_in_memory): New.
15524         (m32r_setup_incoming_varargs): Make it static.
15525         * config/m32r/m32r.h: Remove #undef of
15526         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15527         definitions of PROMOTE_FUNCTION_ARGS and
15528         PROMOTE_FUNCTION_RETURN.
15529         (PROMOTE_PROTOTYPES): Remove.
15530         (RETURN_IN_MEMORY): Likewise.
15531         (STRUCT_VALUE): Likewise.
15532
15533 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15534
15535         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15536         (TARGET_STRUCT_VALUE_RTX): Likewise.
15537         (m68k_struct_value_rtx): Likewise.
15538         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15539         STRUCT_VALUE_REGNUM.
15540         (PROMOTE_PROTOTYPES): Remove.
15541         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15542         STRUCT_VALUE_REGNUM.
15543         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15544         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15545
15546 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15547
15548         * config/stormy16/stormy16.c
15549         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15550         TARGET_BUILD_BUILTIN_VA_LIST.
15551
15552 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15553
15554         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15555         (TARGET_STRUCT_VALUE_RTX): Likewise.
15556         (TARGET_RETURN_IN_MEMORY): Likewise.
15557         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15558         (v850_return_in_memory): Likewise.
15559         (v850_setup_incoming_varargs): Likewise.
15560         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15561         (SETUP_INCOMING_VARARGS): Likewise.
15562         (RETURN_IN_MEMORY): Likewise.
15563         (STRUCT_VALUE): Likewise.
15564
15565 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15566
15567         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15568         (fr30_setup_incoming_varargs): Don't use
15569         STRICT_ARGUMENT_NAMING.
15570         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15571         (STRICT_ARGUMENT_NAMING): Likewise.
15572
15573 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15574
15575         * config/frv/frv-protos.h: Remove the prototype for
15576         frv_expand_builtin_saveregs.
15577         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15578         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15579         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15580         STRUCT_VALUE_REGNUM.
15581         (frv_expand_builtin_saveregs): Make it static.
15582         (frv_struct_value_rtx): New.
15583         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15584
15585 2004-01-29  Jan Hubicka  <jh@suse.cz>
15586
15587         PR c++/12850
15588         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15589         initial pointers.
15590         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15591         for functions that will be only inlined.
15592         (cgraph_mark_function_to_output): Likewise.
15593         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15594         do not clear function body.
15595         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15596         (tree_rest_of_compilation): Reorganize the logic releasing function
15597         body to use callgraph datastructure.
15598
15599 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15600
15601         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15602         to register_operand.
15603
15604 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15605
15606         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15607         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15608         match_operand expressions so that all match_dups appear
15609         lexically after their corresponding match_operands.
15610
15611 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15612
15613         * config/h8300/h8300.c (WORD_REG_USED): Use
15614         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15615         (compute_saved_regs): Likewise.
15616         (h8300_expand_prologue): Likewise.  Allocate locals after
15617         saving registers.
15618         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15619         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15620         registers.
15621         (h8300_initial_elimination_offset): Adjust for the new frame
15622         layout, which swaps flips the order of locals and saved
15623         registers.
15624         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15625         (HARD_FRAME_POINTER_REGNUM): New.
15626         (ELIMINABLE_REGS): Add an elimination rule from
15627         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15628         (REGISTER_NAMES): Add fp.
15629         * config/h8300/h8300.md (FP_REG): Change to 11.
15630         (HFP_REG): New.
15631
15632 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15633
15634         * genrecog.c (write_node): Remove a useless local variable.
15635
15636 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15637
15638         * Makefile.in (options.c options.h): Use stamp file s-options to
15639         avoid unnecessary rebuilds.
15640         (options.o): New target listing dependencies.
15641         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15642         (STAGESTUFF): Add s-gtyp-gen.
15643
15644 2004-01-28  Richard Henderson  <rth@redhat.com>
15645
15646         * ggc.h (ggc_free): Declare.
15647         * ggc-common.c (ggc_realloc): Use it.
15648         * ggc-page.c: Remove lots of inline markers.
15649         (globals): Add free_object_list.
15650         (ggc_alloc): Tidy.
15651         (ggc_free, validate_free_objects): New.
15652         (poison_pages): Provide default.
15653         (ggc_collect): Call validate_free_objects; emit markers to
15654         the debug file.
15655
15656 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15657             Jim Wilson  <wilson@specifixinc.com>
15658
15659         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15660         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15661         scratch pointer.
15662         (ia64_secondary_reload_class): Delete case GR_REGS.
15663         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15664         Do not allocate a scratch register.
15665         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15666
15667 2004-01-28  Jan Hubicka  <jh@suse.cz>
15668
15669         * gcse.c (bypass_block): Prevent edges to be unified when we are
15670         about to emit compenstation code.
15671
15672 2004-01-28  Nick Clifton  <nickc@redhat.com>
15673
15674         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15675         the setcwx insn into a register.
15676
15677 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15678
15679         * config/fp-bit.c (pack_d): When using paired doubles to implement
15680         a long double, round the high part separately.
15681         (unpack_d): Fix the case in which the high part is a power of two
15682         and the low part is a nonzero value of the opposite sign.
15683
15684 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15685
15686         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15687         (TARGET_STRUCT_VALUE_RTX): Likewise.
15688         (c4x_external_libcall): Likewise.
15689         (c4x_struct_value_rtx): Likewise.
15690         * config/c4x/c4x.h: Remove.
15691         (STRUCT_VALUE_REGNUM): Likewise.
15692         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15693
15694 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15695
15696         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15697         (TARGET_STRUCT_VALUE_RTX): Likewise.
15698         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15699         (STRUCT_VALUE): Likewise.
15700         (PROMOTE_PROTOTYPES): Likewise.
15701
15702 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15703
15704         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15705         CONST_INT before using INTVAL.
15706
15707 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15708
15709         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15710         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15711         frame if !TARGET_BACKCHAIN.
15712         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15713         TARGET_BACKCHAIN.
15714         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15715
15716 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15717
15718         * ia64.c (ia64_function_arg): When placing HFAs in integer
15719         registers, do not special case the mode used for complex
15720         types.  Do not advance int_regs until the current register
15721         is full.
15722
15723 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15724
15725         PR target/7297
15726         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15727
15728 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15729
15730         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15731         slow, unaligned loads and stores while debugging.  Fix formatting.
15732
15733 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15734
15735         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15736         of computing wmode.
15737         (restore_stack_nonlocal): Same.
15738
15739 2004-01-27  Devang Patel <dpatel@apple.com>
15740
15741         * Makefile.in (dwarf2out.o): Depend on input.h
15742         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15743         imported_module_or_decl.
15744         (xcoff_debug_hooks): Same.
15745         * sdbout.c (sdb_debug_hooks): Same.
15746         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15747         * debug.c (do_nothing_debug_hooks): Same.
15748         (debug_nothing_tree_tree): New function.
15749         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15750         * dwarf2out.c: Include input.h.
15751         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15752         (remove_child_TAG): New function.
15753         (dwarf_tag_name): Handle DW_TAG_imported_module.
15754         (gen_subprogram_die): Equate decl number to declaration die. Do not
15755         remove all children dies while reusing declaration die for definition.
15756         Instead, selectively remove only formal parameters.
15757         (gen_variable_die): Equate variable decl to declaration die.
15758         (gen_field_die): Equate field decl to line number.
15759         (force_namespace_die): Replace it with ...
15760         (force_decl_die): ... this.
15761         (force_type_die): New function.
15762         (setup_namespace_context): Replace use of force_namespace_die() with
15763         force_decl_die().
15764         (gen_namespace_die): Same.
15765         (dwarf2out_imported_module_or_decl): New function.
15766
15767 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
15768
15769         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15770         on CQImode and CHImode incoming arguments in register a7.
15771         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15772         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15773         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15774         xtensa_copy_incoming_a7 before reload.
15775
15776 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15777
15778         * coverage.c (get_coverage_counts): Give a different message
15779         if flag_guess_branch_prob is set.
15780         * predict.c (counts_to_freqs): Return an int.
15781         (estimate_bb_frequencies): If counts_to_freqs returns zero,
15782         calculate estimates.
15783
15784 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
15785
15786         * config/iq2000/iq2000-protos.h: Remove the prototype for
15787         iq2000_setup_incoming_varargs.
15788         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15789         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15790         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15791         (TARGET_STRUCT_VALUE_RTX): Likewise.
15792         (TARGET_RETURN_IN_MEMORY): Likewise.
15793         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15794         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15795         (iq2000_return_in_memory): Likewise.
15796         (iq2000_setup_incoming_varargs): Make it static.  Receive the
15797         first argument by reference.
15798         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
15799         (PROMOTE_FUNCTION_RETURN): Likewise.
15800         (PROMOTE_PROTOTYPES): Likewise.
15801         (RETURN_IN_MEMORY): Likewise.
15802         (STRUCT_VALUE): Likewise.
15803         (SETUP_INCOMING_VARARGS): Likewise.
15804         (STRICT_ARGUMENT_NAMING): Likewise.
15805
15806 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
15807
15808         * fixinc/fixinc.c (test_test): Initialize res.
15809         (start_flexer): Initialize pz_cmd_save.
15810
15811 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15812
15813         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
15814         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
15815
15816 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15817
15818         PR 7198
15819         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
15820         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
15821         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
15822         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
15823         Possibly rename pattern for consistency.
15824         Remove ??? comments suggesting that this be done.
15825         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
15826         New patterns.
15827         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
15828         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
15829         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
15830         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
15831         Update to match.
15832
15833 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
15834
15835         * config/arm/arm.c (output_return_instruction): Only restore IP
15836         into SP if frame_pointer_needed.
15837
15838 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15839
15840         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15841         for SCmode and DCmode if ARCH32.
15842         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
15843         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
15844         if ARCH32.
15845         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
15846         if ARCH32.
15847         (BASE_OUTGOING_VALUE_REG): Likewise.
15848
15849 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15850
15851         PR target/10904
15852         PR target/13058
15853         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15854         Forbid mode changes from SImode for lower FP regs if ARCH64.
15855
15856 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15857
15858         * Makefile.in (bt-load.o): Depend on except.h.
15859         * bt-load.c (except.h): #include.
15860         (compute_defs_uses_and_gen): If insn at end of BB can throw
15861         within this function, consider registers used by it unavailable for
15862         btr migration.
15863         (move_btr_def): If insn at end of BB can throw, insert before rather
15864         than after.
15865
15866         * flags.h (flag_btr_bb_exclusive): Declare.
15867         * toplev.c (flag_btr_bb_exclusive): New variable.
15868         (f_options): Add btr-bb-exclusive.
15869         * bt-load.c (augment_live_range): Restore old behaviour if
15870         flag_btr_bb_exclusive is set.
15871         * common.opt: Add entry for -fbtr-bb-exclusive.
15872         * opts.c (common_handle_options): Same.
15873         * doc/invoke.texi: Document -fbtr-bb-exclusive.
15874
15875         * bt-load.c (btrs_live_at_end): New variable.
15876         (compute_defs_uses_and_gen): Compute its pointed-to array.
15877         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15878         (augment_live_range): When augmenting with a new dominator,
15879         use only its btrs_live_at_end set, but also add in the full set
15880         of the old dominator.
15881         (btr_def_live_range): Use btrs_live_at_end.
15882         (move_btr_def): Set other_btr_uses_before_def, and move new set
15883         to the end of the basic block, if appropriate.
15884         (migrate_btr_defs): Allocate and free btrs_live_at_end.
15885
15886         * bt-load.c (basic_block_freq): Remove outdated comment.
15887
15888 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
15889
15890         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15891         (PREDICATE_CODES): Remove duplicate.
15892         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
15893         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
15894         (MASK_PROFILE_KERNEL): Adjust define.
15895
15896 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
15897
15898         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
15899         of long string literals from 32 bytes to sizeof (void *) when !-Os
15900         and to 1 with -Os.
15901
15902 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15903
15904         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
15905         constant addresses in the normal mode.
15906
15907 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15908
15909         * system.h (CHAR_BITFIELD): Delete.
15910         (BOOL_BITFIELD): New.
15911         * c-decl.c (c_scope): Use BOOL_BITFIELD.
15912         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15913
15914 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15915
15916         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15917         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15918         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15919         (TARGET_STRUCT_VALUE_RTX): Likewise.
15920         (TARGET_RETURN_IN_MEMORY): Likewise.
15921         (arc_return_in_memory): Likewise.
15922         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15923         (PROMOTE_FUNCTION_RETURN): Likewise.
15924         (RETURN_IN_MEMORY): Likewise.
15925         (STRUCT_VALUE): Likewise.
15926
15927 2004-01-26  Richard Henderson  <rth@redhat.com>
15928
15929         * c-parse.in (extension): Use itype.
15930         (SAVE_EXT_FLAGS): Don't allocate a tree.
15931         (RESTORE_EXT_FLAGS): Don't read a tree.
15932
15933 2004-01-26  Jan Hubicka  <jh@suse.cz>
15934
15935         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15936         to datastructure to be recycled.
15937
15938 2004-01-25  Jan Hubicka  <jh@suse.cz>
15939
15940         * genextract.c (main): Do not output the memset when not checking.
15941
15942 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15943
15944         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15945         switch statement instead of a chain of if statements.
15946
15947 2004-01-26  Jeff Law  <law@redhat.com>
15948
15949         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15950         acute accents for Petur Runolfsson's entry.
15951
15952 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15953
15954         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15955         (TARGET_RETURN_IN_MEMORY): Likewise.
15956         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15957         (RETURN_IN_MEMORY): Likewise.
15958
15959 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15960
15961          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15962          unaligned load/store into smaller loads and stores.
15963
15964 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15965
15966         * function.c (assign_parms): Do not assign
15967         long long argument to memory in prologue if
15968         is it loaded into register.
15969
15970 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15971
15972          PR middle-end/13779
15973          * expr.c (emit_group_load): split constant
15974          correctly into register components of PARALLEL insn.
15975
15976 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15977
15978         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15979         Use adjust_address_nv directly with appropriate mode.
15980         (restore_stack_nonlocal): Ditto.
15981
15982 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15983
15984         * config/xtensa/xtensa-protos.h: Remove the prototype for
15985         xtensa_builtin_saveregs.
15986         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15987         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15988         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15989         (TARGET_STRUCT_VALUE_RTX): Likewise.
15990         (TARGET_RETURN_IN_MEMORY): Likewise.
15991         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15992         (xtensa_builtin_saveregs): Make it static.
15993         (xtensa_return_in_memory): New.
15994         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15995         (PROMOTE_FUNCTION_RETURN): Likewise.
15996         (PROMOTE_PROTOTYPES): Likewise.
15997         (STRUCT_VALUE): Likewise.
15998         (RETURN_IN_MEMORY): Likewise.
15999         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16000
16001 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16002
16003         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
16004         (arm_setup_incoming_varargs): Likewise.
16005         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
16006
16007 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16008
16009         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
16010         (cris_setup_incoming_varargs): Likewise.
16011         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
16012
16013 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16014
16015         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
16016         (ns32k_struct_value_rtx): Likewise.
16017         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
16018         NS32K_STRUCT_VALUE_REGNUM.
16019
16020 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16021
16022         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16023         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16024         (TARGET_STRUCT_VALUE_RTX): Likewise.
16025         (arm_struct_value_rtx): Likewise.
16026         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
16027         (STRUCT_VALUE): Likewise.
16028         (STRUCT_VALUE_REGNUM): Likewise.
16029         (PROMOTE_PROTOTYPES): Likewise.
16030
16031 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16032
16033         * config/ia64/ia64-protos.h: Remove the prototype for
16034         ia64_setup_incoming_varargs and ia64_return_in_memory.
16035         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
16036         (TARGET_RETURN_IN_MEMORY): Likewise.
16037         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16038         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16039         (ia64_setup_incoming_varargs): Adjust the arguments to meet
16040         the requirement of TARGET_SETUP_INCOMING_VARARGS.
16041         (ia64_return_in_memory): Make it static.  Change the return
16042         type to bool from int.  Add an argument.
16043         (ia64_struct_value_rtx): New.
16044         * config/ia64/ia64.h: Remove commented-out definitions of
16045         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
16046         PROMOTE_PROTOTYPES.
16047         (RETURN_IN_MEMORY): Remove.
16048         (STRUCT_VALUE_REGNUM): Likewise.
16049         (STRICT_ARGUMENT_NAMING): Likewise.
16050
16051 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
16052
16053         PR target/13666
16054         * config/sparc/sparc.c (function_arg_union_value): New function.
16055         (function_arg): Use it to deal with unions.
16056         (function_value): Likewise.  Define 'regbase' only for ARCH64.
16057         Replace a conditional statement by a simpler one.
16058
16059 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
16060
16061         * config/mips/mips.c (mips16_optimize_gp): Delete.
16062         (mips_reorg): Don't call it.
16063
16064 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16065
16066         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
16067         (floatunsqihf2): Remove operand 6.
16068         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
16069         fix patterns.
16070         (ldi_conditional, ldf_conditional): Validate operands.
16071
16072 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16073
16074         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
16075         (HAVE_GAS_HIDDEN): Undefine as interim measure.
16076
16077 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16078
16079         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
16080         memory references if TARGET_EXPOSE_LDP nonzero.
16081
16082 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16083
16084         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
16085
16086 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16087
16088         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
16089         invalid operand combinations.
16090
16091 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16092
16093         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
16094         c4x_legitimate_address_p.  Fix post_modify check.
16095
16096         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
16097         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
16098
16099 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16100
16101         * config/pa/pa-protos.h: Remove the prototype for
16102         hppa_builtin_saveregs.  Add a prototype for
16103         pa_return_in_memory.
16104         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
16105         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16106         (TARGET_STRUCT_VALUE_RTX): Likewise.
16107         (TARGET_RETURN_IN_MEMORY): Likewise.
16108         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16109         (pa_struct_value_rtx): Likewise.
16110         (pa_return_in_memory): Likewise.
16111         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
16112         PA_STRUCT_VALUE_REGNUM.
16113         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
16114         (EXPAND_BUILTIN_SAVEREGS): Remove.
16115         (PROMOTE_PROTOTYPES): Likewise.
16116         (PROMOTE_FUNCTION_RETURN): Likewise.
16117
16118 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16119
16120         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
16121         (TARGET_STRUCT_VALUE_RTX): Likewise.
16122         (vax_struct_value_rtx): Likewise.
16123         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
16124         VAX_STRUCT_VALUE_REGNUM.
16125         (PROMOTE_PROTOTYPES): Remove.
16126
16127 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16128
16129         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
16130
16131 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
16132
16133         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
16134         and MIPS64 have HI/LO interlocks.  Update comment.
16135
16136 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16137
16138         * config/stormy16/stormy16-protos.h: Remove the prototype for
16139         xstormy16_setup_incoming_varargs.
16140         * config/stormy16/stormy16.c
16141         (xstormy16_setup_incoming_varargs): Remove.
16142         (xstormy16_return_in_memory): New.
16143         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
16144         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16145         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16146         (TARGET_STRUCT_VALUE_RTX): Likewise.
16147         (TARGET_RETURN_IN_MEMORY): Likewise.
16148         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
16149         (PROMOTE_FUNCTION_RETURN): Likewise
16150         (PROMOTE_PROTOTYPES): Likewise
16151         (RETURN_IN_MEMORY): Likewise
16152         (STRUCT_VALUE): Likewise
16153         (SETUP_INCOMING_VARARGS): Likewise
16154
16155 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16156
16157         * config/mips/mips.c (mips_offset_within_object_p): New function.
16158         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
16159         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
16160         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
16161
16162 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16163
16164         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
16165         (PROMOTE_FUNCTION_RETURN): Likewise.
16166
16167 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16168
16169         * config/mn10300/mn10300-protos.h: Remove the prototype for
16170         mn10300_builtin_saveregs.
16171         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
16172         (TARGET_STRUCT_VALUE_RTX): Likewise.
16173         (TARGET_RETURN_IN_MEMORY): Likewise.
16174         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16175         (mn10300_return_in_memory): Likewise.
16176         (mn10300_builtin_saveregs): Make it static.
16177         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
16178         (RETURN_IN_MEMORY): Likewise.
16179         (STRUCT_VALUE): Likewise.
16180         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16181
16182 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
16183
16184         PR bootstrap/13853
16185         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
16186
16187 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16188
16189         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
16190         using ccr.
16191
16192 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16193
16194         * config/i860/i860-protos.h: Remove the prototype for
16195         i860_saveregs.
16196         * config/i860/i860.c (i860_saveregs): Make it static.
16197         (i860_struct_value_rtx): New.
16198         (TARGET_STRUCT_VALUE_RTX): Likewise.
16199         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16200         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
16201         I860_STRUCT_VALUE_REGNUM.
16202         (EXPAND_BUILTIN_SAVEREGS): Remove.
16203
16204 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16205
16206         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
16207         (TARGET_RETURN_IN_MEMORY): Likewise.
16208         (m68hc11_struct_value_rtx): Likewise.
16209         (m68hc11_return_in_memory): Likewise.
16210         * config/m68hc11/m68hc11.h: Remove a commented-out definition
16211         of PROMOTE_PROTOTYPES.
16212         (RETURN_IN_MEMORY): Remove.
16213         (STRUCT_VALUE_REGNUM): Likewise.
16214
16215 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16216
16217         * config/mmix/mmix-protos.h: Remove the prototype for
16218         mmix_setup_incoming_varargs.
16219         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16220         (TARGET_STRUCT_VALUE_RTX): Likewise.
16221         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16222         (mmix_setup_incoming_varargs): Make it static.
16223         (mmix_struct_value_rtx): New.
16224         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
16225         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
16226         (STRUCT_VALUE_REGNUM): Remove.
16227         (SETUP_INCOMING_VARARGS): Likewise.
16228
16229 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16230
16231         * config/mips/mips-protos.h: Remove the prototypes for
16232         mips_setup_incoming_varargs and mips_return_in_memory.
16233         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16234         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16235         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16236         (TARGET_STRUCT_VALUE_RTX): Likewise.
16237         (TARGET_RETURN_IN_MEMORY): Likewise.
16238         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16239         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16240         (mips_setup_incoming_varargs): Match the prototype for
16241         TARGET_SETUP_INCOMING_VARARGS.
16242         (mips_return_in_memory): Make it static.  Add argument fntype.
16243         (mips_strict_argument_naming): New.
16244         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
16245         (PROMOTE_FUNCTION_ARGS): Likewise.
16246         (PROMOTE_FUNCTION_RETURN): Likewise.
16247         (STRUCT_VALUE): Likewise.
16248         (RETURN_IN_MEMORY): Likewise.
16249         (SETUP_INCOMING_VARARGS): Likewise.
16250         (STRICT_ARGUMENT_NAMING): Likewise.
16251
16252 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16253
16254         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
16255         (TARGET_RETURN_IN_MEMORY): Likewise.
16256         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16257         (ip2k_return_in_memory): Likewise.
16258         (ip2k_setup_incoming_varargs): Likewise.
16259         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
16260         (STRUCT_VALUE): Likewise.
16261         (STRUCT_VALUE_INCOMING): Likewise.
16262         (SETUP_INCOMING_VARARGS): Likewise.
16263
16264 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16265
16266         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
16267         (TARGET_RETURN_IN_MEMORY): Likewise.
16268         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16269         (avr_return_in_memory): Remove.
16270         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
16271         (STRUCT_VALUE): Likewise.
16272         (STRUCT_VALUE_INCOMING): Likewise.
16273         (STRICT_ARGUMENT_NAMING): Likewise.
16274
16275 2004-01-25  Jan Hubicka  <jh@suse.cz>
16276
16277         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
16278
16279 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16280
16281         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
16282         (mips_regno_mode_ok_for_base_p): Declare.
16283         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
16284         (FRAME_POINTER_REGNUM): Renumber to 78.
16285         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
16286         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
16287         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
16288         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
16289         (REG_MODE_OK_FOR_BASE_P): Likewise.
16290         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
16291         entry for 77 to "$arg" and entry for 78 to "$frame".
16292         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
16293         (mips_reg_mode_ok_for_base_p): Remove.
16294         (mips_regno_mode_ok_for_base_p): New function, derived from old
16295         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
16296         restrictions unless we're being strict.
16297         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
16298
16299 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16300
16301         * c-common.h: Fix comment typos.
16302         * c-decl.c: Likewise.
16303         * cgraphunit.c: Likewise.
16304         * combine.c: Likewise.
16305         * et-forest.c: Likewise.
16306         * flow.c: Likewise.
16307         * function.c: Likewise.
16308         * ifcvt.c: Likewise.
16309         * integrate.c: Likewise.
16310         * jump.c: Likewise.
16311         * postreload.c: Likewise.
16312         * varray.c: Likewise.
16313
16314 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16315
16316         * doc/frontends.texi: Update copyright.
16317         * doc/gcov.texi: Likewise.
16318         * doc/gty.texi: Likewise.
16319         * doc/sourcebuild.texi: Likewise.
16320         * doc/standards.texi: Likewise.
16321
16322 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
16323
16324         PR target/12978
16325         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
16326         Remove movstrqi_small because it conflicts with movstrqi_large.
16327
16328 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16329
16330         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16331         (TARGET_STRUCT_VALUE_RTX): Likewise.
16332         (cris_struct_value_rtx): Likewise.
16333         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
16334         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
16335         STRUCT_VALUE_REGNUM.
16336         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
16337
16338 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
16339
16340         PR bootstrap/13848
16341         * cse.c (cse_cc_succs): Change the mode of the source expression
16342         as soon as decide we need a new mode.  Don't permit changing modes
16343         if we found a match in a successor block.
16344         (cse_condition_code_reg): Save original mode of source expression
16345         so that we know whether we have to change the mode in other
16346         insns.
16347
16348 2004-01-24  Jan Hubicka  <jh@suse.cz>
16349
16350         * emit-rtl.c (change_address, adjust_address_1, offset_address,
16351         widen_memory_access):  Return early when there is nothing to change.
16352
16353 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
16354
16355         * simplify-rtx.c (simplify_relational_operation): Don't
16356         simplify address == constant into address + -constant == 0.
16357
16358 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16359
16360         * gcc.c (process_command): Don't internationalize the
16361         Copyright message.
16362         * mips-tfile.c (main): Likewise.
16363
16364 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
16365
16366         * cse.c: (cse_cc_succs) Fix comparison warning.
16367
16368 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16369
16370         * config/h8300/h8300.md: Remove extraneous USE in expanders.
16371
16372 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16373
16374         * config/h8300/h8300-protos.h: Provide prototypes for
16375         h8300_legitimate_constant_p and h8300_legitimate_address_p.
16376         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16377         (h8300_rtx_ok_for_base_p): Likewise.
16378         (h8300_legitimate_address_p): Likewise.
16379         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16380         h8300_legitimate_constant_p.
16381         (RTX_OK_FOR_BASE_P): Remove.
16382         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16383
16384 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16385
16386         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16387         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16388         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16389         (REG_OK_FOR_BASE_STRICT_P): Likewise.
16390         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16391         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16392         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16393         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16394
16395 2004-01-24  Jan Hubicka  <jh@suse.cz>
16396
16397         * cselib.c (remove_useless_values):  Do not access discarded values.
16398
16399 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
16400
16401         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16402         arrays.
16403
16404 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16405
16406         * recog.c: Fix a typo in copyright.
16407
16408 2004-01-23  Andrew Pinski  <apinski@apple.com>
16409
16410         * config/rs6000/rs6000.md (call): Fix misappiled patch.
16411         (call_value): Likewise.
16412
16413 2004-01-23  Richard Henderson  <rth@redhat.com>
16414
16415         PR opt/12941
16416         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16417         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16418         if SHIFT_COUNT_TRUNCATED is set.
16419
16420 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
16421
16422         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16423         separate real and imaginary parts.
16424         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16425
16426 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
16427
16428         PR target/13674
16429         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16430         loading into GPR.
16431
16432 2004-01-23  Jan Hubicka  <jh@suse.cz>
16433
16434         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16435         change.
16436
16437         * alloc-pool.c (align_four): Kill.
16438         (create_alloc_pool): Align size to eight.
16439         (free_alloc_pool, free_pool): Invalidate deallocated data.
16440
16441 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16442
16443         PR gcc/1532
16444         * cse.c (cse_change_cc_mode): New static function.
16445         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16446         (cse_condition_code_reg): New function.
16447         * rtl.h (cse_condition_code_reg): Declare.
16448         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16449         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16450         cc_modes_compatible.
16451         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16452         (TARGET_CC_MODES_COMPATIBLE): Define.
16453         (TARGET_INITIALIZER): Add new initializers.
16454         * targhooks.c (default_cc_modes_compatible): New function.
16455         * targhooks.c (default_cc_modes_compatible): Declare.
16456         * hooks.c (hook_bool_intp_intp_false): New function.
16457         * hooks.h (hook_bool_intp_intp_false): Declare.
16458         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16459         (TARGET_CC_MODES_COMPATIBLE): Define.
16460         (ix86_fixed_condition_code_regs): New static function.
16461         (ix86_cc_modes_compatible): Likewise.
16462         * doc/tm.texi (Condition Code): Document new hooks.
16463
16464 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16465
16466         * fixinc/inclhack.def (bad_lval): Renamed to ...
16467         (alpha_bad_lval): ... this.
16468         Removed file list.
16469         Restrict to alpha*-dec-osf*.
16470         * fixinc/fixincl.x: Regenerate.
16471         * fixinc/tests/base/dirent.h: Remove, moving test ...
16472         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16473
16474 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16475
16476         PR c/13814
16477         * c-decl.c (diagnose_mismatched_decls): Also discard a
16478         built-in if we encounter an old-style definition with the
16479         same name.
16480
16481 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16482
16483         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16484         set to default{32,64}.
16485
16486 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16487
16488         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16489         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16490
16491 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16492             Olivier Hainque  <hainque@act-europe.fr>
16493
16494         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16495         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16496
16497 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16498
16499         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16500         size for minipool references.
16501
16502 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16503
16504         * real.c (real_floor, real_ceil): Tweak to allow input and output
16505         arguments to overlap.
16506         (real_round): New function to implement round(3m) semantics.
16507         * real.h (real_round): Prototype here.
16508         * builtins.c (fold_builtin_round): New function to constant fold
16509         round, roundf and roundl.
16510         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16511
16512 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16513
16514         PR optimization/13819
16515         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16516         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16517         (sh_handle_sp_switch_attribute): Remove warning.
16518
16519 2003-11-30  Jan Hubicka  <jh@suse.cz>
16520
16521         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16522
16523 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16524
16525         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16526         may or may not return non-NIL.
16527         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16528         check CANNOT_CHANGE_MODE_CLASS
16529
16530 2004-01-23  Jan Hubicka  <jh@suse.cz>
16531
16532         * basic-block.h (PROP_POSTRELOAD): New macro.
16533         (CLEANUP_LOG_LINKS): New.
16534         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16535         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16536
16537         * cselib.c (value_pool): New.
16538         (new_cselib_val): Use pool.
16539         (cselib_init): Initialize value_pool
16540         (cselib_finish): Free pool.
16541
16542 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16543
16544         * config/sparc/sparc.c (scan_record_type): New function.
16545         (function_arg_slotno): Use it to determine which kinds of
16546         registers the record can be passed in.
16547
16548 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16549
16550         * config/pa/fptr.c: Fix old-style definition.
16551
16552 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16553
16554         PR optimization/13724
16555         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16556         represents the zero bits produced by a ZERO_EXTEND operation.
16557
16558 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16559
16560         PR optimization/13821
16561         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16562         correctly calculate the lowpart offset of the contracted subreg.
16563
16564 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16565
16566         * doc/invoke.texi (Optimize Options): Note that --param arguments
16567         are subject to change without notice.
16568
16569 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16570
16571         * config.gcc (mips-sgi-irix6*o32): Removed.
16572         * config/mips/iris6-o32-as.h: Likewise.
16573         * config/mips/iris6-o32-gas.h: Likewise.
16574         * config/mips/iris6-o32.h: Likewise.
16575
16576 2004-01-22  Jan Hubicka  <jh@suse.cz>
16577
16578         * cfgcleanup.c (first_pass): New static variable.
16579         (try_forward_edges):  Add work limiting check for threading.
16580         (try_crossjump_bb):  Add work limiting check for crossjumping.
16581         (try_optimize_cfg):  Maintain first pass variable.
16582
16583 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16584
16585         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16586         handles complex and vector modes.
16587
16588 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16589
16590         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16591         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16592         (STRICT): Likewise.
16593
16594 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16595
16596         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16597         (genrtl_for_stmt): Remove emit_nop calls.
16598
16599 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16600
16601         PR target/13713
16602         PR target/13324
16603         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16604         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16605         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16606
16607 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16608
16609         * config/arm/arm.c: Include "debug.h".
16610         (thumb_pushpop): Take two new arguments.  Add some commentary.
16611         Output frame information when pushing.
16612         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16613         thumb_pushpop.
16614         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16615         offset, and pass it to thumb_pushpop.  Output CFI information.
16616         (thumb_expand_prologue): Add some frame-related markers and notes.
16617
16618 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16619
16620         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16621         for TARGET_64BIT.
16622         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16623         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16624
16625 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16626             Paolo Bonzini  <bonzini@gnu.org>
16627
16628         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16629         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16630         * rtl.h (subreg_lsb_1): Prototype here.
16631         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16632         sign extensions.
16633
16634 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16635
16636         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16637         macro need not be defined if jump-tables should contain
16638         relative addresses only when -fPIC or -fPIC is in effect.
16639
16640 2004-01-22  Jan Hubicka  <jh@suse.cz>
16641
16642         * alias.c (reg_base_value): Turn into varray.
16643         (reg_base_value_size): Kill.
16644         (old_reg_base_value): New deletable varray.
16645         (alias_invariant_size): New variable.
16646         (REG_BASE_VALUE): Update to use varray.
16647         (find_base_value): Likewise.
16648         (record_set): Likewise.
16649         (record_base_value): Likewise.
16650         (memrefs_conflict_p): Likewise.
16651         (record_set): Likewise
16652         (record_base_value): Likewise.
16653         (memrefs_conflict_p): Use alias_invariant_size.
16654         (init_alias_analysis): Use varray; set alias_invariant_size;
16655         rescale other arrays to be sized by maxreg.
16656         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16657
16658 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16659
16660         * config/sparc/sparc.c (function_arg_slotno): Use
16661         FLOAT_TYPE_P to detect FP fields in structures.
16662         (function_arg_record_value_1): Likewise.
16663         (function_arg_record_value_2): Likewise.
16664
16665 2004-01-22  Jan Hubicka  <jh@suse.cz>
16666
16667         * function.c (allocate_struct_function): Do not initialize expr, emit
16668         and varasm.
16669         (prepare_function_start): Do it here.
16670         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16671
16672 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16673
16674         PR target/13559
16675         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16676         to 'word_mode' once the first slot has been filled.
16677
16678 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16679
16680         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16681         computation of the number of integer registers required.
16682
16683 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16684
16685         * config/i386/i386.md: Simplify certain comparisons of
16686         const_int.
16687
16688 2004-01-21  Andrew Pinski  <apinski@apple.com>
16689
16690         PR target/13785
16691         * config/rs6000/rs6000.md (call_value): Force operand
16692         1 not operand 0 into a register.
16693
16694 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16695
16696         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16697         unwind-dw2-fde.h: Update copyright.
16698
16699 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16700
16701         * pa-protos.h: Update copyright.
16702         * pa.h: Likewise.
16703         * pa.md: Likewise.
16704
16705 2004-01-21  Caroline Tice  <ctice@apple.com>
16706
16707         PR target/12308
16708         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16709         flags register.
16710         (fix_truncdfdi2): Likewise.
16711         (fix_truncsfdi2): Likewise.
16712         (*fix_truncdi_1): Likewise.
16713         (fix_truncxfsi2): Likewise.
16714         (fix_truncdfsi2): Likewise.
16715         (fix_truncsfsi2): Likewise.
16716         (*fix_truncsi_1): Likewise.
16717         (fix_truncxfhi2): Likewise.
16718         (fix_truncdfhi2): Likewise.
16719         (fix_truncsfhi2): Likewise.
16720         (*fix_trunchi_1): Likewise.
16721
16722 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16723
16724         * alias.c, basic-block.h, c-common.c, c-common.h,
16725         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16726         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16727         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16728         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16729         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16730         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16731         genautomata.c, genconditions.c, genemit.c, genflags.c,
16732         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16733         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16734         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16735         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16736         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16737         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16738         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16739         unwind.h, varray.c, varray.h: Update copyright.
16740
16741 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16742
16743         * config/h8300/coff.h: Update copyright.
16744         * config/h8300/elf.h: Likewise.
16745         * config/h8300/h8300-protos.h: Likewise.
16746         * config/h8300/h8300.c: Likewise.
16747         * config/h8300/h8300.h: Likewise.
16748         * config/h8300/h8300.md: Likewise.
16749
16750 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16751
16752         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16753         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16754         ultrix_unistd): New hacks.
16755         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16756         ULTRIX_CONST2_CHECK): Add checks.
16757         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16758         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16759         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16760         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16761         * fixinc/tests/base/locale.h: New file.
16762         * fixinc/fixincl.x: Rebuilt.
16763
16764 2004-01-21  Andreas Jaeger  <aj@suse.de>
16765             Michael Matz  <matz@suse.de>
16766
16767         * doc/extend.texi (Extended Asm): Clarify memory clobber.
16768
16769 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16770
16771         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16772         _Jv_RegisterClasses through a function pointer.
16773
16774 2004-01-21  Falk Hueffner  <falk@debian.org>
16775
16776         PR target/12898
16777         * config/alpha/alpha.c (alpha_emit_set_const_1): If
16778         no_new_pseudos, use gen_rtx_SET directly for SImode constants
16779         which need multiple instructions to emit.
16780
16781 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
16782
16783         * config/m32r/m32r.h (CPP_SPEC): Define.
16784
16785 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
16786
16787         * c-decl.c (merge_decls): Kill different_binding_level and
16788         different_tu arguments; simplify throughout.
16789         (duplicate_decls): Likewise.
16790         (pushdecl, merge_translation_unit_decls): Update calls to
16791         duplicate_decls.
16792
16793 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16794
16795         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
16796         $(SYSTEM_H).
16797         (print-rtl1.o): Depend on $(SYSTEM_H).
16798
16799 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16800
16801         PR bootstrap/12730
16802         * configure.ac: Delete definition and subsitution of docdir.
16803         Add info, man, srcman and srcinfo to target hooks. Create doc/
16804         directory.
16805         * configure: Regenerate.
16806         * Makefile.in: Don't substitute docdir and delete all references
16807         throughout.
16808         (MAKEINFOFLAGS): Define.
16809         (stmp-docobjdir): Delete.
16810         (INFOFILES, MANFILES): Define.
16811         (info): Call lang.info, srcinfo and lang.srcinfo.
16812         (generated-manpages): Call lang.man, srcman and lang.srcman.
16813         (srcinfo, srcman): New rules to copy back files to source directory.
16814         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
16815         (install-man): Revamp rule.
16816         (clean): Update dvi directory.
16817         (distclean): Delete TAGS from front end directorys.
16818         (maintainer-clean): Delete all document files in source directory.
16819
16820         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
16821         (objc.srcman, objc.srcinfo): Likewise.
16822
16823 2004-01-20  Bruce Korb  <bkorb@gnu.org>
16824
16825         * fixinc/inclhack.def(math_exception): bypass only for glibc.
16826         (matherr_decl): rename & relocate as exception_structure.
16827         This fix must precede the math_exception fix.
16828
16829 2004-01-20  Roger Sayle  <roger@eyesopen.com>
16830
16831         * fold-const.c (fold_convert): Rename to fold_convert_const.
16832         (fold_convert_const): Change arguments to take a tree_code,
16833         a type and the operand/expression to be converted.  Return
16834         NULL_TREE if no simplification is possible.  Add support for
16835         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
16836         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
16837         Adjust call to fold_convert to match new fold_convert_const.
16838         Avoid modifying the tree passed to fold in-place.
16839
16840 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
16841
16842         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
16843         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
16844         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
16845
16846 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16847
16848         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
16849         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
16850         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
16851         (emit_move_sequence): Check scratch_reg first in various if statements.
16852         Extend source simplification to handle all 64-bit CONST_INTs.
16853         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16854         frame size.
16855         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16856         frame offset calculations.
16857         * pa.h (NEW_HP_ASSEMBLER): Add comment.
16858         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16859         LEGITIMATE_64BIT_CONST_INT_P): Define.
16860         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
16861         any CONST_INT as legitimate during and after reload.
16862         (VAL_32_BITS_P, INT_32_BITS): Define.
16863         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16864
16865 2004-01-20  Jan Hubicka  <jh@suse.cz>
16866
16867         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16868         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16869         containing hard regs are shared.
16870         (gen_hard_reg_clobber): New function.
16871         (hard_reg_clobbers): New array.
16872         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16873         (copy_rtx): Do not copy clobbers containing hard regs.
16874         * rtl.h (gen_hard_reg_clobber): Declare.
16875
16876 2004-01-20  Jan Hubicka  <jh@suse.cz>
16877
16878         * varray.c:  Include hashtab.h
16879         (varray_descriptor): New structure.
16880         (hash_descriptor, eq_descriptor, varray_descriptor,
16881         print_statistics): New static functions
16882         (varray_init, varray_grow): Update statistics
16883         (dump_varray_statistics): New function.
16884         * varray.h (dump_varray_statistics): Declare.
16885         * toplev.c (finalize): Call it.
16886         * Makefile.in (varray.o): Add dependency.
16887
16888 2004-01-20  Jan Hubicka  <jh@suse.cz>
16889
16890         * cselib.c: Include alloc-pool.h
16891         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
16892         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
16893         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
16894         unchain_one_elt_loc_list_pool, unchain_one_value,
16895         new_cselib_val): Simplify using allocpool.
16896         (cselib_init): Initialize allocpools.
16897         (cselib_finish): Finish allocpools.
16898         * Makefile.in (cselib.o): Depend on alloc-pool.h
16899
16900 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
16901
16902         * config/mips/mips.c (mips_load_call_address): Make the call insn
16903         use $gp if it could be calling a lazy binding stub.
16904
16905 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16906
16907         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16908         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16909         (TARGET_STRUCT_VALUE_RTX): Likewise.
16910         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16911         (PROMOTE_FUNCTION_RETURN): Remove.
16912         (STRUCT_VALUE): Remove.
16913
16914 2004-01-20  Denis Chertykov  <denisc@overta.ru>
16915
16916         PR bootstrap/13735
16917         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16918         register as pointer after reload.
16919
16920 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16921
16922         PR optimization/12440
16923         * loop.c: Include ggc.h.
16924         (loop_optimize): Run garbage collector between optimization of loops.
16925         * Makefile.in (loop.o): Add GGC_H dependency.
16926
16927 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16928
16929         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16930         vector register special in function without prototype.
16931         (function_arg_advance): Vector parameters get always
16932         GPRs allocated for the linux64 target.
16933
16934 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16935
16936         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16937         not TARGET_M32RX_MASK.
16938
16939 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16940
16941         PR target/13557
16942         * config/sparc/sparc.c (function_arg): Reorder the cases.
16943
16944 2004-01-19  Per Bothner  <per@bothner.com>
16945
16946         Move cpp_reader's line_maps field to a shared global.
16947         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16948         and change the type to a pointer rather than a struct.
16949         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16950         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16951         Likewise.
16952         * cppfiles.c (validate_pch):  Likewise.
16953         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16954         Likewise.
16955         * cpperror.c (print_location):  Likewise.
16956         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16957         * cppinit.c (cpp_create_reader):  Handle new parameter.
16958         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16959         * input.h (line_table):  New variable.
16960         * toplev.c (line_table):  Declare variable.
16961         (general_init):  Initialize line_table.
16962         * c-opts.c (c_common_init_options):  Pass line_table to
16963         cpp_create_reader.
16964         * fix-header.c (read_scan_file):  New local variable line_table.
16965         Initialize, and pass it to cpp_create_reader.
16966         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16967         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16968
16969 2004-01-19  Per Bothner  <per@bothner.com>
16970
16971         Implement a cache for linemap_lookup.
16972         * line-map.h (struct_line_maps):  Add cache field.
16973         * line-map.c (linemap_init):  Zero cache field.
16974         (linemap_add):  Set cache field to offset of newly allocated map.
16975         (linemap_lookup):  Use and set cache field.
16976
16977 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16978
16979         PR optimization/13567
16980         * cse.c (cse_basic_block): Call cse_insn with a non-null
16981         libcall_insn for the last SET insn of a no-confilict block.
16982
16983 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16984
16985         * Makefile.in (target_noncanonical, program_transform_name): Use
16986         immediate define instead of deferred.
16987         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16988         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16989         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16990         deferred backquote.
16991
16992 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16993
16994         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16995         true unconditionally.
16996         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16997         Remove.
16998         (build_unary_op, build_modify_expr): Don't handle extended
16999         lvalues.
17000         (build_component_ref, build_conditional_expr): Call non_lvalue
17001         instead of pedantic_non_lvalue.
17002         (build_c_cast): Don't condition use of non_lvalue on pedantic.
17003         * fold-const.c (fold): Don't check pedantic directly for
17004         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
17005         passed to pedantic_non_lvalue.
17006         * doc/extend.texi: Remove documentation of extended lvalues.
17007
17008 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17009
17010         PR optimization/5263
17011         * simplify-rtx.c (associative_constant_p): Delete.
17012         (simplify_associative_operation): Rewrite to linearize terms, and
17013         attempt to simplify new term against both left and right subterms.
17014         (simplify_binary_operation): Call swap_commutative_operands_p on
17015         op0 and op1, not trueop0 and trueop1.  Move the initialization of
17016         trueop0 and trueop1 down to where first needed.
17017         (simplify_relational_operation): Likewise.
17018         * rtlanal.c (commutative_operand_precedence): Also order constant
17019         operands using avoid_constant_pool_reference.
17020
17021 2004-01-19  Richard Henderson  <rth@redhat.com>
17022
17023         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
17024         don't check memory mode.
17025         (unaligned_memory_operand): Likewise.
17026         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
17027         abort for op0 not MEM.
17028
17029         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
17030         is not a reg, copy to a scratch first.
17031         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
17032         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
17033         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
17034         (reload_inqi, reload_inhi): Fix mode of op0.
17035         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
17036         reload_outhi_help): Likewise.  Use define_insn_and_split.
17037
17038         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
17039         as well as $29 dead.
17040
17041 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
17042
17043         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
17044         "tls_object" for thread-local objects.
17045         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
17046         "#tls" for thread-local sections.
17047         * configure.ac (thread-local checks): Specify --fatal-warnings in
17048         every binutils-specific checks.  For sparc*-*-*, test whether the
17049         OS is Solaris and the tools are native and act accordingly.
17050         * configure: Rebuild.
17051
17052 2004-01-19  Jeff Law  <law@redhat.com>
17053
17054         * contrib.texi: Update Paolo Carlini's entry.  New entries for
17055         Jerry Quinn and Petur Runolfsson.
17056
17057 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17058
17059         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
17060         size, don't use the larger zero-extending loads.
17061
17062 2004-01-19  Richard Henderson  <rth@redhat.com>
17063
17064         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
17065         * alpha.md (UNSPEC_NT_LDA): Remove.
17066         (UNSPEC_CVTLQ, cvtlq): New.
17067         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
17068         (extendsidi2_fix): Remove.
17069         (extendsidi2 splitter): Use cvtlq.
17070         (extendsidi2 fp peepholes): Remove.
17071         (cvtql): Use SFmode instead of SImode.
17072         (fix_trunc?fsi): Update to match.
17073         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
17074         (movsi): Rename from movsi_nofix, remove f alternatives.
17075         (movsi_nt_vms): Similarly.
17076         (movsi_fix, movsi_nt_vms_fix): Remove.
17077         (nt_lda): Remove.
17078         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
17079
17080 2004-01-19  Jan Hubicka  <jh@suse.cz>
17081
17082         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
17083         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
17084         list.
17085         (cgraph_remove_unreachable_nodes): New function
17086         (cgraph_decide_inlining_of_small_function): Fix pasto.
17087         (cgraph_decide_inlining_incrementally): Fix pasto.
17088         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
17089
17090 2004-01-19  Steven Bosscher  <stevenb@suse.de>
17091
17092         * gengtype.c (header_file): Make it static.
17093         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
17094         * gengtype.h (header_file): No longer extern.
17095
17096 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17097
17098         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
17099         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
17100         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
17101
17102 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17103
17104         * stmt.c (HAVE_casesi): Define it not already defined.
17105         (HAVE_tablejump): Likewise.
17106         (expand_end_case_type): Resort to the binary tree method if
17107         neither casesi or tablejump is available.
17108
17109 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
17110
17111         * final.c (final_scan_insn): Make non-static again.
17112         * output.h (final_scan_insn): Re-add prototype.
17113         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
17114         to final_scan_insn call.
17115         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
17116         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
17117         * config/pa/pa.c (output_lbranch, output_call): Likewise.
17118         * config/sh/sh.c (print_slot): Likewise.
17119         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
17120         (output_sibcall, sparc_flat_function_epilogue): Likewise.
17121
17122 2004-01-18  Jan Hubicka  <jh@suse.cz>
17123
17124         * basic-block.h (try_redirect_by_replacing_jump): Declare.
17125         * cfgcleanup.c (try_optimize_cfg): Use it.
17126         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
17127         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
17128         Kill hack.
17129         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
17130
17131         Revert:
17132         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17133
17134                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17135                 even after reload, just don't remove the actual jump tables.
17136
17137 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17138
17139         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
17140
17141 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17142
17143         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
17144         the size of a pointer in bytes.
17145
17146 2004-01-18  Roger Sayle  <roger@eyesopen.com>
17147
17148         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
17149         live "next" variable, which could lead to an infinite loop.
17150
17151 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
17152
17153         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
17154         block.
17155
17156         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17157         Check for NULL in the chain and remove repeated code.
17158
17159 2004-01-18  Jan Hubicka  <jh@suse.cz>
17160
17161         * coverage.c (checksum_string): Rename to ...
17162         (coverage_checksum_string): ... this one, Use crc32_string; recognize
17163         names containing random number and zero the number out in order to get
17164         match.
17165
17166 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17167
17168         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
17169
17170 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17171
17172         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
17173         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
17174         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
17175         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
17176         doc/trouble.texi: Remove trailing whitespace.
17177
17178 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17179
17180         PR target/7618
17181         * config/mips/mips.c: Include cfglayout.h.
17182         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
17183         (mips_unspec_offset_high): Add temporary register argument.
17184         (mips_load_call_address): New function, split out from...
17185         (mips_expand_call): ...here.
17186         (mips_output_cplocal): New function.
17187         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
17188         (mips_emit_loadgp): New function, split out from...
17189         (mips_expand_prologue): ...here.
17190         (mips_output_mi_thunk): New function.
17191
17192 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
17193
17194         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
17195         mcpu32): Remove redundant checks for implied target predefines.
17196
17197 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
17198
17199         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17200         Return type is unsigned int not int.
17201         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17202         Likewise.
17203
17204 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17205
17206         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
17207         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
17208         "GNU/Linux" and "Microsoft Windows" terminology.
17209
17210 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17211
17212         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
17213         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
17214         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
17215         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
17216         @smallexample instead of @example.
17217
17218 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
17219
17220         * objc/objc-act.c (build_objc_method_call): Use target
17221         hooks instead of macros to determine if ..._stret
17222         dispatchers should be used (NeXT runtime only).
17223
17224 2004-01-17  Roger Sayle  <roger@eyesopen.com>
17225
17226         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
17227         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
17228
17229 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17230
17231         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
17232         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
17233         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
17234         macros.
17235         * reload1.c (emit_reload_insns): Use them.
17236         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
17237         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
17238         for NULL PATTERN.
17239
17240 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17241
17242         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
17243         (final_scan_insn): Update to take an additional SEEN argument.  Emit
17244         a line note after the prologue.  Make static.
17245         (line_note_exists): Remove.
17246         (final): Don't initialize line_note_exists.  Update call to
17247         final_scan_insn.
17248         * output.h (final_scan_insn): Remove prologue.
17249         * function.c (set_insn_locators): Update comment.
17250         (thread_prologue_and_epilogue_insns): Add a comment.
17251
17252 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
17253
17254         PR target/10781
17255         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17256         Prototype.
17257         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17258         New function.
17259         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
17260         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
17261         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
17262
17263 2004-01-17  Jan Hubicka  <jh@suse.cz>
17264
17265         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
17266         commit.
17267
17268         * toplev.c (HAVE_conditional_execution): Provide default.
17269         (rest_of_handle_reorder_blocks): For conditional_execution target
17270         update liveness once after all transformations
17271         (rest_of_compilation): Do crossjumping before ce3.
17272
17273 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
17274
17275         * alias.c (new_alias_set): Mark last_alias_set for PCH.
17276         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
17277         for PCH.
17278         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
17279         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
17280         (get_TOC_alias_set): Mark 'set' for PCH.
17281
17282 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17283
17284         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17285         even after reload, just don't remove the actual jump tables.
17286
17287 2004-01-17  J. Brobecker  <brobecker@gnat.com>
17288
17289         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
17290         Remove checks for is_ada() and TREE_UNSIGNED.
17291         (subrange_type_die): Emit a byte_size attribute if the subrange
17292         type size is different from the base type size.
17293         (modified_type_die): Replace call to is_ada_subrange_type() by
17294         call to is_subrange_type().
17295
17296 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
17297
17298         * config/sh/sh.c: Include ggc.h.
17299
17300 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17301
17302         * Makefile.in (MD5_H): New.
17303         (fold-const.o): Depend on md5.h.
17304         (dwarf2out.o): Likewise.
17305         (cppfiles.o): Likewise.
17306         * cppfiles.c: Include md5.h.
17307         (should_stack_file): Check against list read from PCH file.
17308         (struct pchf_data): New.
17309         (pchf): New variable.
17310         (struct pchf_adder_info): New.
17311         (pchf_adder): New.
17312         (pchf_save_compare): New.
17313         (_cpp_save_file_entries): New.
17314         (_cpp_read_file_entries): New.
17315         (struct pchf_compare_data): New.
17316         (pchf_compare): New.
17317         (check_file_against_entries): New.
17318         * cpphash.h (_cpp_save_file_entries): Prototype.
17319         (_cpp_read_file_entries): Prototype.
17320         * cpppch.c (cpp_write_pch_state): Write the list of headers.
17321         (cpp_read_state): Read the list of headers.
17322
17323 2004-01-17  Jan Hubicka  <jh@suse.cz>
17324
17325         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
17326         builtin_expect specially.
17327         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
17328         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
17329         * invoke.texi (max-inline-insns-single): Set to 100.
17330         (large-function-insns): Set to 3000.
17331
17332 2004-01-16  Eric Christopher  <echristo@redhat.com>
17333             Chandrakala Chavva <cchavva@redhat.com>
17334
17335         * cppcharset.c (one_iso88591_to_utf8): New function.
17336         (convert_iso88591_utf8): Ditto. Use.
17337         (conversion_tab): Use.
17338         (_cpp_input_to_utf8): New function.
17339         (_cpp_init_iconv_buffer): Ditto.
17340         (_cpp_close_iconv_buffer): Ditto.
17341         * cpphash.h: Prototype new functions.
17342         (cpp_buffer): Add input_cset_desc.
17343         * cppinit.c: Add input_charset default.
17344         * cpplib.c (cpp_push_buffer): Support init and
17345         close of iconv.
17346         * cpplib.h (cpp_options): Add input_charset.
17347
17348 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17349
17350         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
17351         * config/alpha/unicosmk.h: Remove a commented-out definition
17352         of ASM_OUTPUT_SECTION_NAME.
17353         * config/stormy16/stormy16.h: Likewise.
17354
17355 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17356
17357         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
17358         (alpha___extern_prefix_sys_stat): ... this.
17359         Apply to <sys/mount.h>, too.
17360         Tweak to match more variations.
17361         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
17362
17363         * fixinc/inclhack.def (alpha___extern_prefix,
17364         alpha___extern_prefix_standards): New hacks to obey
17365         __PRAGMA_EXTERN_PREFIX.
17366         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
17367         test.
17368         * fixinc/tests/base/standards.h: Likewise.
17369
17370         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
17371         variations.
17372         New testcase.
17373         * fixinc/tests/base/pthread.h: Handle it.
17374
17375         * fixincl/inclhack.def (bad_lval): Sort file list.
17376         Add many missing files up to Tru64 UNIX V5.1B.
17377         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17378         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17379         order.
17380
17381         * fixinc/fixincl.x: Regenerate.
17382
17383 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
17384
17385         * version.c (version_string): Change to 3.5.0.
17386         * doc/include/gcc-common.texi (version-GCC): Likewise.
17387
17388 2004-01-16  Jan Hubicka  <jh@suse.cz>
17389
17390         * i386.md (load_tp_di): Fix pasto.
17391
17392         PR opt/13608
17393         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17394
17395         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17396         pp_c_character_constant, pp_c_floating_constant,
17397         pp_c_additive_expression, pp_c_shift_expression,
17398         pp_c_equality_expression, pp_c_and_expression,
17399         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17400         pp_c_logical_and_expression): Remove inline modifier.
17401         * dwarf2out.c (get_AT): Likewise.
17402         * et-forest.c (et_splay): Likewise.
17403         * ra.h (ra_alloc, ra_calloc): Likewise
17404
17405 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17406
17407         * config/frv/frv-protos.h: Fix comment formatting.
17408         * config/frv/frv.c: Likewise.
17409         * config/frv/frv.h: Likewise.
17410         * config/frv/frv.md: Likewise.
17411         * config/frv/frvbegin.c: Likewise.
17412         * config/frv/frvend.c: Likewise.
17413
17414 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17415
17416         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17417         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17418         LINKER_DOES_NOT_WORK_WITH_DWARF2.
17419         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17420
17421 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
17422
17423         PR 11864
17424         * postreload.c (reload_cse_simplify_operands): Don't remove
17425         implicit extension from LOAD_EXTEND_OP.
17426
17427 2004-01-16  Jan Hubicka  <jh@suse.cz>
17428
17429         PR opt/11350
17430         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17431         after reload.
17432         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17433         rtl_try_redirect_by_replacing_branch): Likewise.
17434
17435 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17436
17437         PR pch/13689
17438         * alias.c (struct alias_set_entry): Mark for GC.
17439         (alias_sets): Make static, mark for GC.
17440         (record_alias_subset): Use GC to allocate alias structures.
17441         * varray.c (element): Make generic varrays GCed.
17442
17443         PR pch/13361
17444         * c-typeck.c (constructor_asmspec): Delete.
17445         (struct initializer_stack): Delete field 'asmspec'.
17446         (start_init): Delete saving of asmspec.
17447         (finish_init): Don't update constructor_asmspec.
17448         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17449         * stmt.c (expand_asm): Duplicate strings from tree.
17450         (expand_asm_operands): Likewise.
17451         * tree.c (tree_size): Update computation of size of STRING_CST.
17452         (make_node): Don't make STRING_CST nodes.
17453         (build_string): Allocate string with tree node.
17454         * tree.def (STRING_CST): Update comment.
17455         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17456         (tree_string): Place contents of string in tree node.
17457         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17458         from tree.
17459
17460         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17461         altivec operands.
17462
17463 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17464
17465         * c-common.h: Fix comment formatting.
17466         * c-cppbuiltin.c: Likewise.
17467         * c-pragma.c: Likewise.
17468         * calls.c: Likewise.
17469         * collect2.c: Likewise.
17470         * cppcharset.c: Likewise.
17471         * cpptrad.c: Likewise.
17472         * dbxout.c: Likewise.
17473         * defaults.h: Likewise.
17474         * dwarf2out.c: Likewise.
17475         * fold-const.c: Likewise.
17476         * genautomata.c: Likewise.
17477         * genconditions.c: Likewise.
17478         * genflags.c: Likewise.
17479         * gengtype.c: Likewise.
17480         * integrate.c: Likewise.
17481         * loop.c: Likewise.
17482         * predict.c: Likewise.
17483         * sdbout.c: Likewise.
17484
17485 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17486
17487         * config/ia64/ia64.md (*movti_internal): C output template
17488         extracted to ia64.c.
17489         (*movti_internal_reg): Delete.
17490         (reload_inti, reload_outti): Use the correct mode on operand 2
17491         in the first place, don't fix it up in the output template.
17492         (movtf, reload_ointf, reload_outtf): New expanders.
17493         (*movtf_internal): New define_insn_and_split.
17494         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17495         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17496         (ia64_split_tmode_move): New function, body mostly pulled
17497         from ia64.md:*movti_internal.
17498         (ia64_function_arg_words): New function, extracted common
17499         logic from ia64_function_arg et seq.
17500         (ia64_function_arg_offset): Likewise.  Handle correctly the
17501         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17502         (ia64_function_arg, ia64_function_arg_partial_nregs)
17503         (ia64_function_arg_advance): Use ia64_function_arg_words and
17504         ia64_function_arg_offset.
17505         (ia64_function_value): TCmode does not go in float regs.
17506         (ia64_secondary_reload_class): Also handle TFmode.
17507         * config/ia64/ia64-protos.h: Remove prototype for
17508         ia64_split_timode; add prototype for ia64_split_tmode_move.
17509
17510 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17511
17512         * Makefile.in (MAINT): Make it an immediate assignment.
17513
17514 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17515
17516         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17517
17518 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17519
17520         * config/h8300/coff.h: Replace Hitachi with Renesas.
17521         * config/h8300/elf.h: Likewise.
17522         * config/h8300/h8300-protos.h: Likewise.
17523         * config/h8300/h8300.c: Likewise.
17524         * config/h8300/h8300.h: Likewise.
17525         * config/h8300/h8300.md: Likewise.
17526         * config/h8300/lib1funcs.asm: Likewise.
17527
17528 2004-01-15  Andrew Pinski  <apinski@apple.com>
17529
17530         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17531         around it.
17532
17533 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17534
17535         * config/h8300/h8300.c (h8300_return_in_memory): New.
17536         (TARGET_STRUCT_VALUE_RTX): Likewise.
17537         (TARGET_RETURN_IN_MEMORY): Likewise.
17538         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17539         (RETURN_IN_MEMORY): Likewise.
17540
17541 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17542
17543         PR optimization/13375
17544         * gcse.c (handle_avail_expr): Just return if the source is not a
17545         single set.
17546
17547 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17548             Daniel Jacobowitz  <drow@mvista.com>
17549
17550         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17551         (EQUIV): Define.
17552         (ARM_FUNC_ALIAS): New macro.
17553         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17554         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17555
17556 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17557
17558         PR optimization/12372
17559         * calls.c (expand_call): Add call_fusage data for stack arguments in
17560         constant calls.
17561
17562 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17563
17564         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17565         (rs6000_elf_declare_function_name): Formatting.
17566         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17567
17568 2004-01-15  Jan Hubicka  <jh@suse.cz>
17569
17570         PR bootstrap/13692
17571         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17572         previous patch.
17573
17574 2004-01-15  Richard Henderson  <rth@redhat.com>
17575
17576         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17577         integer regs of the same call-savedness.
17578
17579 2004-01-15  Andreas Schwab  <schwab@suse.de>
17580
17581         PR bootstrap/13562
17582         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17583         status for NOTB/NOTW/NEGW methods.
17584
17585 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17586
17587         * doc/invoke.texi: Update dump file names.  Fix a typo.
17588
17589 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17590
17591         * builtins.c (expand_builtin_va_end): Don't use
17592         EXPAND_BUILTIN_VA_END.
17593         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17594         * config/d30v/d30v.h: Remove a commented-out definition of
17595         EXPAND_BUILTIN_VA_END.
17596         * config/stormy16/stormy16.h: Likewise.
17597
17598 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17599
17600         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17601         * targhooks.c (default_struct_value_rtx): Don't use
17602         STRUCT_VALUE_INCOMING_REGNUM.
17603
17604 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17605
17606         PR bootstrap/12744
17607         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17608         GENINSRC and not parsedir.  Define srcextra as a langhook.
17609         * configure: Regenerate.
17610         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17611         parsedir and delete all references throughout.  Conditionally define
17612         rule for srcextra dependent on GENINSRC.
17613         (stmp-docobjdir): Delete.
17614         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17615         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17616         and gengtype-yacc.h back to source directory.
17617         (maintainer-clean): Delete all parse files in source directory.
17618         (distclean): Delete generated files.
17619
17620         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17621         (objc-parse.c, objc-parse.y): Don't use parsedir.
17622         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17623         directory if requested.
17624         (po-generated): Don't use parsedir.
17625         (objc.maintainer-clean): Delete above files from source directory.
17626
17627 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17628
17629         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17630
17631 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17632
17633         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17634         TARGET_RETURN_IN_MEMORY.
17635
17636 2004-01-15  Jan Hubicka  <jh@suse.cz>
17637
17638         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17639         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17640         functions accepting SSE arguments
17641         (function_arg): Warn only when asked to warn.
17642         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17643
17644 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17645
17646         * c-parse.in (stmts_and_decls): Make label at end of compound
17647         statement a hard error.
17648
17649 2004-01-14  Jan Hubicka  <jh@suse.cz>
17650
17651         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17652         * cgraph.h (cgraph_local_info): Sort fields by size; add
17653         redefined_extern_inline
17654         (cgraph_global_info): Sort fields by size.
17655         (cgraph_node): Likewise.
17656         * cgraphunit.c (cgraph_finalize_function): Se
17657         local.redefined_extern_inline on redefinition.
17658         (cgraph_analyze_function): Use it; fix formating.
17659
17660 2004-01-14  Jan Hubicka  <jh@suse.cz>
17661
17662         PR c++/10776
17663         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17664         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17665         bitmaps
17666         (cache_size): New variable
17667         (add_dependence): Update use; canonize early memory locations
17668         (sched_analyze_1): Likewise.
17669         (sched_analyze_2): Likewise.
17670         (init_dependency_caches): Initialize bitmaps.
17671         (free_dependency_caches): Free bitmaps
17672
17673 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17674
17675         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17676         targetm.calls.strict_argument_naming().
17677         * target.h: Likewise.
17678
17679 2004-01-14  Richard Henderson  <rth@redhat.com>
17680
17681         PR debug/13231
17682         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17683         instructions.
17684
17685 2004-01-14  Richard Henderson  <rth@redhat.com>
17686
17687         PR c++/12491
17688         * except.c (struct eh_region): Add u.fixup.resolved.
17689         (resolve_one_fixup_region): Split out from ...
17690         (resolve_fixup_regions): ... here.
17691
17692 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17693
17694         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17695
17696 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17697
17698         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17699         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17700         (STRUCT_VALUE): Remove.
17701
17702 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17703
17704         * system.h: Poison PROMOTED_MODE
17705         * integrate.c (expand_inline_function): Don't mention the
17706         PROMOTED_MODE.
17707         * loop.c (update_giv_derive): Same.
17708         * tree.h (DECL_RTL): Same.
17709
17710 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17711
17712         PR target/9365
17713         * sh.c (gen_block_redirect): Add special handling of RETURN.
17714         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17715         far branch target (i.e. it's a return).
17716
17717 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17718
17719         * regrename.c (find_oldest_value_reg): Fix a warning.
17720
17721 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17722
17723         PR bootstrap/12527
17724         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17725         Move linux-gas.h and linux-elf.h before aout.h.
17726         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17727         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17728
17729 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17730
17731         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17732         (CONST_INT, VOIDmode, ...).
17733
17734 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17735
17736         * regrename.c (find_oldest_value_reg): If the replacement uses
17737         multiple hard registers, check that all of them are in CLASS.
17738
17739 2004-01-14  Jan Hubicka  <jh@suse.cz>
17740
17741         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17742         impossible.
17743
17744 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17745
17746         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17747
17748 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17749
17750         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17751         Calculate always vrsave_mask if TARGET_ALTIVEC.
17752         (rs6000_emit_prologue): Emit code for vrsave
17753         only if TARGET_ALTIVEC_VRSAVE.
17754         (rs6000_emit_epilogue): Likewise.
17755
17756 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17757
17758         * config/sparc/sparc.md (tie_add32): Fix pasto.
17759         (tie_add64): Likewise.
17760
17761 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17762
17763         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17764
17765 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17766
17767         * config/iq2000/iq2000-protos.h: Fix comment formatting.
17768         * config/iq2000/iq2000.c: Likewise.
17769         * config/iq2000/iq2000.md: Likewise.
17770
17771 2004-01-14  J. Brobecker  <brobecker@gnat.com>
17772
17773         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17774         (subrange_type_die): Add handle for nameless subrange types.
17775
17776 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17777
17778         * config/h8300/h8300-protos.h: Replace do_movsi with
17779         h8300_expand_movsi.
17780         * config/h8300/h8300.c (do_movsi): Change to
17781         h8300_expand_movsi.
17782         * config/h8300/h8300.md (movsi): Replace do_movsi with
17783         h8300_expand_movsi.
17784         (movsf): Likewise.
17785
17786 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17787
17788         * config/h8300/h8300.c (dosize): Change to
17789         h8300_emit_stack_adjustment.  Update callers.
17790
17791 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17792
17793         * config/h8300/h8300.md (movstrictqi): Add an alternative with
17794         the source being post_inc.  Tighten the predicate for the
17795         destination to register_operand.
17796         (movstricthi): Likewise.
17797
17798 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17799
17800         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
17801         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
17802         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
17803
17804 2004-01-14  Jan Hubicka  <jh@suse.cz>
17805
17806         Partial fix PR c++/12850
17807         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
17808         at zero nest level.
17809
17810 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
17811
17812         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
17813         pseudo-register.
17814
17815 2004-01-13  Devang Patel <dpatel@apple.com
17816
17817         PR debug/7078
17818         * dbxout.c (dbxout_symbol_name): Emit mangled names for
17819         NAMESPACE_DECL memebers.
17820
17821 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
17822
17823         PR c++/12709
17824         * c-common.c (finish_fname_decls): Use the chain only if the
17825         tree is an expr_stmt.
17826
17827 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
17828
17829         * rtl.def: Add comment about new option in automata_option.
17830
17831         * genautomata.c (PROGRESS_OPTION): New macro.
17832         (progress_flag): New global variable.
17833         (gen_automata_option): Process `progress'.
17834         (transform_insn_regexps, check_unit_distributions_to_automata,
17835         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
17836         expand_automata, write_automata): Print about the progress only if
17837         progress_flag.  Remove fflush.
17838         (initiate_automaton_gen): Process command line flag `-progress'.
17839
17840         * doc/md.texi: Describe the new option.
17841
17842 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17843
17844         * cfg.c (dump_bb): Dump entry edges.
17845
17846 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
17847
17848         * arm.c (thumb_legitimate_address_p): Only allow constant pool
17849         references from SImode.
17850         * arm.md (thumb_movhi_insn): Don't allow minipool references.
17851
17852 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17853
17854         * system.h (TEXT_SECTION): Poison.
17855         * varasm.c (text_section): Don't use TEXT_SECTION.
17856         * config/sh/sh.c (sh_file_start): Fix a comment typo.
17857         * doc/tm.texi (TEXT_SECTION): Remove.
17858
17859 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
17860
17861         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17862
17863 2004-01-12  James E Wilson  <wilson@specifixinc.com>
17864
17865         * unwind-libunwind.c: Delete.
17866
17867 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17868
17869         PR 13656
17870         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17871         oldtype is set, set *newtypep or *oldtypep too.  Do not set
17872         them at the very end.
17873         (validate_proto_after_old_defn): Restructure for comprehensibility;
17874         make error messages clearer.
17875
17876 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17877
17878         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17879         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17880         * varray.c: No need to prototype error.
17881         (varray_check_failed): Wrap long string onto two lines.
17882         (varray_underflow): New function.
17883
17884 2004-01-13  Steven Bosscher  <stevenb@suse.de>
17885
17886         PR c++/13376
17887         * function.h (struct function): Kill `name' field.
17888         (current_function_name): Make it an extern function.
17889         * function.c (current_function_name): New function.
17890         * graph.c: Update all uses of current_function_name.
17891         * gcse.c: Likewise.
17892         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
17893         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
17894         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
17895         instead of a strcmp with "main".
17896
17897 2004-01-13  Jan Hubicka  <jh@suse.cz>
17898
17899         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
17900
17901         * cgraphunit.c (cgraph_optimize_function):  Always do
17902         optimize_inline_calls when there is always_inline callee.
17903         (cgraph_decide_inlining): Fix formating.
17904         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
17905         functions.
17906         (expand_call_inline): Likewise.
17907         * toplev.h (sorry): Fix prototype.
17908
17909 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17910
17911         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17912         conditional jumps that drop through to unconditional jumps or the
17913         end of the sequence.
17914
17915 2004-01-13  Jan Hubicka  <jh@suse.cz>
17916
17917         * alias.c (new_alias_set): Construct the alias_set varray.
17918         (init_alias_once): Don't do it here.
17919
17920 2004-01-12  Marc Espie <espie@openbsd.org>
17921
17922         * system.h: handle YYBYACC like YYBISON.
17923
17924 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17925
17926         PR target/10847
17927         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17928         building on sparc64-*-openbsd*.
17929
17930 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17931
17932         PR debug/13539
17933         * dbxout.c (dbxout_type): Protected inheritance is not
17934         private but protected.
17935
17936 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17937
17938         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17939
17940 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17941
17942         PR optimization/12508.
17943         * combine.c (try_combine): Remove a dead set in a parallel
17944         even if its destination is a subreg.
17945
17946         Revert:
17947         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17948         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17949         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17950
17951 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17952
17953         * real.c: Update copyright date.
17954         * emit-rtl.c: Likewise.
17955         * rtl.h: Likewise.
17956         * dwarf2out.c: Likewise.
17957         * config/rs6000/darwin-ldouble.c: Likewise.
17958         * config/rs6000/rs6000.md: Likewise.
17959
17960 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17961
17962         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17963         TFmode to SImode libfuncs.
17964
17965 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17966
17967         PR middle-end/11397
17968         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17969
17970 2004-01-12  Jan Hubicka  <jh@suse.cz>
17971
17972         PR opt/12826
17973         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17974         stored.
17975
17976         PR opt/12863
17977         * cfgcleanup.c (label_is_jump_target_p): Move to...
17978         * rtlanal.c (label_is_jump_target_p): ... here.
17979         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17980         edges unified with branch edges.
17981
17982 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17983
17984         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17985         high word of an integral CONST_DOUBLE.
17986
17987 2004-01-12  Paul Brook  <paul@codesourcery.com>
17988
17989         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17990
17991 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17992
17993         PR target/13585
17994         * sh-protos.h (check_use_sfunc_addr): Declare.
17995         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17996         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17997
17998 2004-01-12  Jan Hubicka  <jh@suse.cz>
17999
18000         * alias.c:  Invlude varray.h
18001         (alias_sets): Turn into varray.
18002         (get_alias_set_entry): Use VARRAY; mark inline.
18003         (mems_in_disjoint_alias_sets_p): Mark inline.
18004         (record_alias_subset): Use varray.
18005         (init_alias_once): Initialize varray.
18006         (new_alias_set): Grow array.
18007         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
18008
18009 2004-01-12  Jan Hubicka  <jh@suse.cz>
18010
18011         Partial fix for PR opt/10776 II
18012         * cselib.c: Include params.h
18013         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
18014         locations.
18015         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
18016         * Makefile.in (cselib.o): Depend on params.h
18017
18018 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18019
18020         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
18021         simplify_unary_operation if the operand has a known mode.
18022
18023 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
18024
18025         PR target/13534
18026         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
18027         predicate to handle 'ld' conform addresses.
18028         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
18029         contraint.
18030         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
18031         are memory contraints.
18032         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
18033         New prototype.
18034         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
18035         Change 'o' to 'Y' constraint.
18036         (*movdf_softfloat64): Ditto.
18037
18038 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
18039
18040         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
18041         brace-enclosed syntax in all C output statements.
18042
18043 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18044
18045         PR target/13401
18046         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
18047         Objective-C language type value is 14.
18048
18049 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
18050
18051         PR c/12148
18052         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
18053         `int' in a number of places to make sure we always have a SImode
18054         and not a HImode.  Add a 'L' suffix to a number of constants.
18055
18056 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18057
18058         * pa.c: Don't include obstack.h.
18059
18060         * pa.md: Correct constraint in pattern for loading PIC label address.
18061
18062 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
18063
18064         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
18065          before defining.
18066
18067 2004-01-11  Steven Bosscher  <stevenb@suse.de>
18068
18069         PR fortran/9972
18070         * toplev.c (rest_of_handle_inline): Also consider functions
18071         for deferral if the language is GNU F77.
18072
18073 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
18074
18075         * c-decl.c (diagnose_arglist_conflict): Add missing space to
18076         diagnostic messages.
18077
18078 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
18079
18080         PR middle-end/13392
18081         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
18082         to drop through label.  Don't fall back to SCC even when conditional
18083         jump has not been found.
18084
18085 2004-01-11  Jan Hubicka  <jh@suse.cz>
18086
18087         * invoke.texi: Fix syntax error in previous patch.
18088
18089         Partial fix for PR opt/10776
18090         * Makefile.in (reload.o): Include param.h
18091         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
18092         * reload.c: Include params.h.
18093         (find_equiv_reg): Work limiting check.
18094         * invoke.texi: Document.
18095
18096 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18097
18098         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
18099         out-of-bounds accesses to string constants.  Simplify mips16
18100         case accordingly.
18101
18102 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18103
18104         PR optimization/13469
18105         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
18106         reload_cse_regs (-fnon-call-exceptions only).
18107
18108 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
18109
18110         * config/mcore/lib1.asm: Fix comment formatting.
18111         * config/mcore/mcore-elf.h: Likewise.
18112         * config/mcore/mcore.c: Likewise.
18113         * config/mcore/mcore.h: Likewise.
18114         * config/mcore/mcore.md: Likewise.
18115
18116 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18117
18118         * c-decl.c (duplicate_decls): Break apart into...
18119         (diagnose_arglist_conflict, validate_proto_after_old_defn)
18120         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
18121         ... these new functions.  Restructure for comprehensibility.
18122         Remove various archaic special cases.  Always report the
18123         location of the previous declaration when a diagnostic is issued.
18124         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
18125         (match_builtin_function_types): Delete unnecessary forward declaration.
18126
18127 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18128
18129         * genautomata.c (make_automaton, NDFA_to_DFA):
18130         Print progress bars with '.' characters instead of '*'.
18131         (build_automaton): Change notes to match.
18132
18133 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18134
18135         * config/m32r/m32r.md: Use define_constants for unspec and
18136         unspec_volatile.
18137
18138 2004-01-10  Jan Hubicka  <jh@suse.cz>
18139
18140         PR opt/11635
18141         * expr.c (expand_expr_real):  More curefully expand union casts.
18142
18143 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18144
18145         * config/m32r/m32r.md (flush_icache): Use 1 for
18146         unspec_volatile.
18147
18148 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
18149             James E Wilson  <wilson@specifixinc.com>
18150
18151         PR debug/12860
18152         * dbxout.c (dbxout_symbol): Remove initialization of
18153         current_sym_code, current_sym_value, and current_sym_addr.
18154         (dbxout_symbol_location): Same.
18155         (dbxout_prepare_symbol): Zero current_sym_code,
18156         current_sym_value, and current_sym_addr.
18157
18158 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
18159
18160         * tree.c (get_unwidened): Reorder conditions so that the null pointer
18161         check is done first.
18162
18163 2004-01-09  Eric Christopher  <echristo@redhat.com>
18164
18165         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
18166         if we're running mark_constant_function.
18167
18168 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
18169
18170         PR target/12561
18171         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
18172
18173 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
18174
18175         PR debug/11231
18176         * dbxout.c (dbxout_type_fields): Return if any item is
18177         error_mark_node or the type is error_mark_node.
18178
18179 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
18180
18181         * config/rs6000/darwin-ldouble.c: Add big comment explaining
18182         exactly what is expected as a 'long double'.
18183         (_xlqadd): When a value to be returned is representable as a
18184         'double', just return it directly, do not construct it using a union.
18185         Also, correct final fixup.
18186         (_xlqmul): Likewise.
18187         (_xlqdiv): Likewise.
18188         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
18189
18190         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
18191
18192 2004-01-09  Richard Henderson  <rth@redhat.com>
18193
18194         * recog.c (constrain_operands): Validate mem operands.
18195
18196 2004-01-09   James E Wilson  <wilson@specifixinc.com>
18197
18198         * gcc.c (init_spec): Remove -lunwind from shared case.
18199         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
18200
18201 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
18202
18203         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
18204         * configure: Regenerate
18205
18206 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
18207
18208         PR c/11234
18209         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
18210         between function and object pointers.
18211         (digest_init): When comparing a pointer to function type to the
18212         target type, only apply TREE_TYPE once to the pointer to function
18213         type.
18214         * except.c (for_each_eh_label_1): Treat data as a pointer to a
18215         function pointer rather than casting it to a function pointer.
18216         (for_each_eh_label): Update caller.
18217         * recog.h (struct insn_data): Use a struct or union for output.
18218         * genoutput.c (output_insn_data): Update.
18219         * final.c (get_insn_template): Update.
18220
18221 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
18222
18223         * expr.h (expand_expr): Make it a macro, not a function.
18224         (expand_expr_real): New function.
18225         * expr.c (store_expr): Adjust logic for deciding whether or not to
18226         copy the value returned by expand_expr.
18227         (expand_expr): Rename to ...
18228         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
18229         calls to language hooks.
18230         * c-common.h (c_expand_expr): Adjust prototype.
18231         * c-common.c (c_expand_expr): Add alt_rtl parameter.
18232         * langhooks-def.h (lhd_expand_expr): Change prototype.
18233         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
18234         * langhooks.h (lang_hooks): Change type of expand_expr.
18235         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
18236         (last_expr_alt_rtl): Likewise.
18237         (expand_expr_stmt_value): Set last_expr_alt_rtl.
18238         (clear_last_expr): Clear it.
18239         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
18240         (expand_end_bindings): Save and restor last_expr_alt_rtl.
18241         * tree.def (RTL_EXPR): Give it an additional operand.
18242         * tree.h (RTL_EXPR_ALT_RTL): New macro.
18243
18244 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18245
18246         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
18247         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
18248
18249 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18250
18251         PR target/13380.
18252         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
18253         or (ne:SI (reg:CC 17) (const_int 0)).
18254         Be specific about modes wherever possible.
18255
18256 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18257
18258         * config/m32r/m32r.c (m32r_expand_block_move): Call
18259         gen_movestrsi_internal with two more arguments.
18260         (m32r_output_block_move): Adjust operand numbers.
18261         Properly update the source and destination pointers.
18262         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
18263         'r+'.  Change the set detinations to match_operand.
18264
18265 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18266
18267         * final.c (FIRST_INSN_ADDRESS): Remove.
18268         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
18269         * system.h (FIRST_INSN_ADDRESS): Poison.
18270         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
18271         * config/m32r/m32r-protos.h: Remove the prototype for
18272         m32r_first_insn_address.
18273         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
18274         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
18275         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
18276
18277 2004-01-09  J. Brobecker  <brobecker@gnat.com>
18278
18279         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
18280         we just created.
18281         (is_ada_subrange_type): DIEs for enumeration subtypes should be
18282         emitted as subrange types too.
18283         (subrange_type_die): Add handling of enumeration subtypes.
18284
18285 2004-01-08  Richard Henderson  <rth@redhat.com>
18286
18287         PR opt/12441
18288         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
18289         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
18290         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
18291         (ix86_address_cost): Be prepared for SUBREGed registers.
18292         (legitimate_address_p): Accept SUBREGed registers.
18293
18294 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
18295
18296         * Makefile.in: Rename configure.in to configure.ac
18297         * doc/sourcebuild.texi: Likewise.
18298         * configure: Regenerate.
18299         * config.in: Regenerate.
18300
18301 2004-01-08  Stuart Hastings  <stuart@apple.com>
18302
18303         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
18304
18305 2004-01-08  Jan Hubicka  <jh@suse.cz>
18306
18307         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
18308
18309 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
18310
18311         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
18312         (UNSPEC_FIX_TRUNC_TF): New constant.
18313         (movtf_internal): Make splitter active only when insn is active.
18314         (extenddftf2): Rewrite to properly load zero into low part.
18315         (extenddftf2_internal): New.
18316         (extendsftf2): Rewrite.
18317         (truncdftf2): Correct length.
18318         (floatditf2): Delete.
18319         (fix_trunc_helper): New.
18320         (fix_trunctfdi2): Use fix_trunc_helper.
18321         (fix_trunctfsi2): Likewise.fix_trunc
18322         (fix_trunctfsi2_internal): New.
18323
18324         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
18325         addresses are legitimate on Darwin even when flag_pic.
18326         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
18327         non-offsettable addresses for loads of TFmode constants.
18328
18329 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18330
18331         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
18332         variables in the appropriate bss section.
18333
18334 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
18335
18336         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
18337         target_flags has MASK_POWERPC64 when -m64.
18338         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
18339         to 620, 630, power3, power4 and rs64a entries.
18340         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
18341
18342 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
18343
18344         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
18345         floating-point constants.
18346
18347 2004-01-08  J. Brobecker  <brobecker@gnat.com>
18348
18349         * dwarf2out.c (subrange_type_die): Add context_die parameter.
18350         Create the subrange_type DIE using the given context DIE.
18351         (modified_type_die): Update call to subrange_type_die.
18352
18353 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
18354
18355         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
18356         Add multiple-include guard.
18357
18358 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
18359
18360         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
18361         all vector constant loadable by vsplt*.
18362         (output_vec_const_move): Likewise.
18363
18364 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18365
18366         PR c/6024
18367         * c-typeck.c (comptypes): Only treat enumerated types in the same
18368         translation unit as compatible with each other when they are the
18369         same type.
18370         * doc/extend.texi: Update.
18371
18372 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18373
18374         PR c/12165
18375         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18376         array type from the array element type.
18377
18378 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
18379
18380         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18381         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18382         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18383         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18384         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18385
18386 2004-01-06  Eric Christopher  <echristo@redhat.com>
18387
18388         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18389         (DWARF2_DEBUGGING_INFO): Define.
18390         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18391         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18392         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18393         for irix as.
18394         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18395         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18396         * config/mips/iris5gas.h: Ditto.
18397         (DBX_DEBUGGING_INFO): Remove.
18398         (DWARF2_DEBUGGING_INFO): Ditto.
18399         (MIPS_DEBUGGING_INFO): Ditto.
18400         (PREFERRED_DEBUGGING_TYPE): Ditto.
18401         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18402         (PREFERRED_DEBUGGING_TYPE): Ditto.
18403         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18404         * config/mips/elf64.h: Ditto.
18405
18406 2004-01-06  Jan Hubicka  <jh@suse.cz>
18407
18408         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18409         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18410
18411 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
18412
18413         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18414         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18415         * config/rs6000/darwin-ldouble.c: New.
18416
18417         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18418         for constants.
18419         (constant_subword): Delete.
18420         * rtl.h (constant_subword): Delete prototype.
18421         (immed_double_const): Is not in varasm.c.
18422         * simplify-rtx.c (simplify_immed_subreg): New.
18423         (simplify_subreg): Use simplify_immed_subreg.
18424
18425         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18426         than trying to generate RTL directly.
18427         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18428         RTL directly.
18429
18430         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18431
18432 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18433
18434         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18435         function into a separate macro.
18436         (read_only_data_section): Add void argument.
18437         (private_data_section): Same.
18438         (read_only_private_data_section): Same.
18439         (toc_section): Same.
18440
18441 2004-01-06  Jan Hubicka  <jh@suse.cz>
18442
18443         * invoke.texi:  Remove typo in last change.
18444
18445         PR target/10301
18446         * config.gcc: Accept opteron and athlon-64 as variants
18447         of k8.
18448         * i386.c (override_options): Likewise.
18449         * invoke.texi (i386 -mtune): Expand documentation.
18450
18451 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18452
18453         * alias.c: Fix comment typos.
18454         * builtins.c: Likewise.
18455         * cfg.c: Likewise.
18456         * df.c: Likewise.
18457         * dominance.c: Likewise.
18458         * dwarf2out.c: Likewise.
18459         * emit-rtl.c: Likewise.
18460         * expr.c: Likewise.
18461         * final.c: Likewise.
18462         * fold-const.c: Likewise.
18463         * gcse.c: Likewise.
18464         * genattrtab.c: Likewise.
18465         * genrecog.c: Likewise.
18466         * gensupport.c: Likewise.
18467         * ggc-zone.c: Likewise.
18468         * integrate.c: Likewise.
18469         * local-alloc.c: Likewise.
18470         * loop.c: Likewise.
18471         * recog.c: Likewise.
18472         * regmove.c: Likewise.
18473         * reg-stack.c: Likewise.
18474         * reorg.c: Likewise.
18475         * rtlanal.c: Likewise.
18476         * rtl.h: Likewise.
18477         * sched-ebb.c: Likewise.
18478         * simplify-rtx.c: Likewise.
18479         * toplev.c: Likewise.
18480         * varasm.c: Likewise.
18481
18482 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18483
18484         * doc/install.texi: Fix typos.
18485         * doc/invoke.texi: Likewise.
18486         * doc/md.texi: Likewise.
18487
18488 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18489
18490         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18491
18492 2004-01-06  Jan Hubicka  <jh@suse.cz>
18493
18494         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18495         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18496         of MMX_REGPARM.
18497         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18498         add MMX_REGPARM.
18499         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18500         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18501         (MMX_REGPARM_MAX): Similarly for -mmmx.
18502
18503 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18504
18505         * config/sh/linux.h: Fix comment formatting.
18506         * config/sh/netbsd-elf.h: Likewise.
18507         * config/sh/sh.c: Likewise.
18508         * config/sh/sh.h: Likewise.
18509         * config/sh/vxworks.h: Likewise.
18510
18511 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18512
18513         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18514         * toplev.c (output_file_directive): Don't use
18515         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18516
18517 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18518
18519         * toplev.c: Fix broken checkin of 2003-12-30.
18520
18521 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18522
18523         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18524         (USING_MMAP): We don't support non-mmap.
18525         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18526         large objects.
18527         (struct page_entry): Remove bytes_free.
18528         (struct page_table_chain): Remove.
18529         (struct globals): Remove page_table member.
18530         (loookup_page_table_entry): Function deleted.
18531         (set_page_table_entry): Ditto.
18532         (ggc_allocated_p): No longer need page table lookups.
18533         (ggc_marked_p): Ditto.
18534         (alloc_small_page): Don't care about bytes_free anymore.
18535         (alloc_large_page): Round up size.
18536         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18537         their size the new way.
18538         Remove page table lookups and setting.
18539         (ggc_get_size): Calculate large object size the new way.
18540         (sweep_pages): Redo to account for fact that we no longer have
18541         bytes_free.
18542         (ggc_collect): No longer need to reincrement bytes_free.
18543         (ggc_pch_alloc_object): Handle new large objects properly.
18544         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18545
18546 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18547
18548         * doc/invoke.texi: Remove a page break.
18549
18550 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18551
18552         * config/avr/avr.c (avr_output_function_prologue): Remove an
18553         extra pair of curly braces.
18554
18555 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18556
18557         * config/mn10300/mn10300.c: Fix comment formatting.
18558         * config/mn10300/mn10300.h: Likewise.
18559
18560 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18561
18562         * tree.h: Update documentation on nothrow_flag.
18563         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18564         types.
18565
18566 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18567
18568         * doc/invoke.texi: Remove traces of dead ports.
18569
18570 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18571
18572         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18573         option.
18574
18575 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18576
18577         PR target/12945
18578         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18579         counter labels.
18580         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18581         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18582         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18583         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18584         (mips_symbol_insns): Don't trust the local/global classification.
18585         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18586         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18587         -mno-explicit-relocs.
18588         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18589         between local and global symbols.
18590
18591 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18592
18593         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18594         (mips_preferred_reload_class): Declare.
18595         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18596         (EXTRA_CONSTRAINT): Update accordingly.
18597         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18598         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18599         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18600         mips_dangerous_for_la25_p.
18601         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18602         if mips_dangerous_for_la25_p.
18603
18604 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18605
18606         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18607         warning.
18608
18609 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18610
18611         * configure.ac: Use AC_PROG_CPP_WERROR.
18612         * configure: Regenerate.
18613
18614 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18615
18616         * .cvsignore: Add autom4te.cache.
18617
18618 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18619
18620         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18621         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18622         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18623         then architecture options, then ABI options.  General rewording.
18624
18625 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18626
18627         PR c/3414
18628         * doc/extend.texi: Clarify definition of malloc attribute.
18629
18630 2004-01-04  Jan Hubicka  <jh@suse.cz>
18631
18632         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18633         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18634         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18635         (cgraph_inline_p): Add extra argument reason.
18636         * cgraphunit.c: Minor formating fixes.
18637         cgraph_first_inlined_callee): New functions.
18638         (record_call_1): Record builtins too.
18639         (cgraph_analyze_function): Update inline_failed messages.
18640         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18641         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18642         (cgraph_check_inline_limits): Likewise; Add argument reason.
18643         (cgraph_set_inline_failed): New static function.
18644         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18645         reasons.
18646         (cgraph_inline_p): Add new argument reason.
18647         * tree-inline.c (expand_call_inline):  Update warning.
18648
18649 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18650
18651         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18652         with modern equivalents.
18653         * configure: Regenerate.
18654
18655         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18656         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18657         * configure: Regenerate.
18658
18659         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18660
18661         * configure.in: Rename to configure.ac.
18662         * configure.ac: Renamed from configure.in; make minimum necessary
18663         changes for autoconf 2.5x.
18664         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18665         * configure: Regenerate with autoconf 2.57.
18666
18667 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18668
18669         * config/mips/linux.h: Fix comment formatting.
18670         * config/mips/mips.c: Likewise.
18671         * config/mips/mips.h: Likewise.
18672         * config/mips/mips.md: Likewise.
18673         * config/mips/netbsd.h: Likewise.
18674         * config/mips/windiss.h: Likewise.
18675
18676 2004-01-02  Richard Henderson  <rth@redhat.com>
18677
18678         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18679         for sse and 387; add suppression for mmx.
18680
18681 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18682
18683         * loop.c (loop_optimize): Free all loops_info's mems.
18684
18685         * c-typeck.c (finish_init): Free spelling_base before
18686         setting it again.
18687
18688         * cfgloop.c (flow_loops_find): Always free the sbitmap
18689         headers.
18690
18691         * predict.c (estimate_probability): Free bbs after being
18692         done with it.
18693
18694 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18695
18696         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18697         const_8bit_operand and call_address_operand.
18698
18699 2004-01-02  Jan Hubicka  <jh@suse.cz>
18700
18701         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18702         when there is nothing to inline but warnings are requested.
18703         (cgraph_decide_inlining):  Fix memory leak.
18704
18705 2004-01-02  Jan Hubicka  <jh@suse.cz>
18706
18707         * expr.c (store_constructor):  Fix pasto in previous patch.
18708
18709 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18710
18711         * config/i386/cygming.h: Fix comment formatting.
18712         * config/i386/djgpp.h: Likewise.
18713         * config/i386/gthr-win32.c: Likewise.
18714         * config/i386/i386-interix.h: Likewise.
18715         * config/i386/i386.c: Likewise.
18716         * config/i386/i386.h: Likewise.
18717         * config/i386/openbsd.h: Likewise.
18718         * config/i386/winnt.c: Likewise.
18719         * config/i386/xm-mingw32.h: Likewise.
18720
18721 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18722
18723         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18724         copyright and last modification dates.
18725
18726 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18727
18728         * doc/install.texi (Specific): Mention x86_64.
18729
18730 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18731
18732         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18733         Call force_operand on plus_constant result.
18734
18735 2004-01-01  Jan Hubicka  <jh@suse.cz>
18736
18737         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18738         * expr.c (store_constructor): Use vec_init pattern.
18739         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18740         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18741         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18742         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18743         New patterns.
18744         (sse2_unpc?pd): Fix pattern.
18745         (sse2_movlpd): Kill.
18746         (sse2_movsd): Deal with movlpd too.
18747         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18748         (ix86_expand_vector_init): New.
18749         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18750         * md.texi (vec_set, vec_extract): Document
18751
18752 2003-12-31  Jan Hubicka  <jh@suse.cz>
18753
18754         PR opt/13473
18755         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18756         ASM input operands
18757
18758         PR opt/12617
18759         * toplev.c (dump_file_index): Reorder ce3 and bbro.
18760         (dump_file): Likewise.
18761         (rest_of_compilation): Likewise.
18762
18763         PR debug/13367
18764         * cgraph.c (cgraph_function_possibly_inlined):  Even with
18765         flag_really_no_inline we inline always_inline functions.
18766         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18767         for non-always_inline functions when there is flag_really_no_inline.
18768         (cgraph_decide_inlining): Limit work done when not inlining.
18769         (cgraph_decide_inlining_incrementally): Likewise.
18770         (cgraph_optimize_function): Check whether something got inlined.
18771         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18772         extern inline functions when not inlining.
18773
18774         * opts.c (decode_options):  Disable crossjumping at -O1
18775         * invoke.texi (-O1): Document change.
18776
18777 See ChangeLog.10 for earlier changes.