OSDN Git Service

* libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-12  Andreas Jaeger  <aj@suse.de>
2
3         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
4         * libgcc-darwin.ver: Likewise.
5
6 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
7
8         * reload.c (find_reloads): Force reload for pseudo registers on big
9         endian machines.
10
11 2004-06-11  Steven Bosscher <stevenb@suse.de>
12
13         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
14         Don't try to mark anything control dependent on the entry or
15         exit blocks.
16
17 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
18
19         Fix Bug 15899
20         Fix Bug 15460
21         * tree.h (SSA_NAME_VALUE): New macro.
22         (struct tree_ssa_name): Add value_handle member.
23         * tree-ssa-pre.c: Replaced.
24         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
25         (struct cst_ann_d): New.
26         (struct expr_ann_d): New.
27         (union tree_ann_d): Add cst_ann, expr_ann.
28         * tree-dfa.c (create_cst_ann): New function.
29         (create_expr_ann): Ditto.
30         * tree-flow-inline.h (cst_ann): New function.
31         (expr_ann): Ditto.
32         (get_cst_ann): Ditto.
33         (get_expr_ann): Ditto..
34
35 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36
37         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
38         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
39         _U_Qfcmp library function.
40         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
41         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
42
43         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
44         unspec used for loading address from DLT.
45         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
46         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
47         Don't use short code sequence when loading the address of a nonlocal
48         label.
49         (nonlocal_goto): New expander.
50         (indirect_goto): New jump pattern for nonlocal gotos.
51         (short_jump): Remove extra whitespace.
52         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
53         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
54         pattern.
55
56 2004-06-11  Roger Sayle  <roger@eyesopen.com>
57
58         * expmed.c (synth_mult): Add an additional MODE argument for the
59         machine mode of the multiplication.  Update recursive calls.  Use
60         mode instead of word_mode for determining operation costs.
61         (choose_mult_variant): Update calls to synth_mult with "mode".
62
63 2004-06-11  Richard Henderson  <rth@redhat.com>
64
65         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
66         and makes_aliased_stores.
67
68 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
69
70         * doc/install.text (--enable-shared): Fix typo.
71
72 2004-06-11  Richard Henderson  <rth@redhat.com>
73
74         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
75         argument.  Use internal post for call to gimplify_expr.  Tidy
76         rounded type size computation.
77         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
78         get_initialized_tmp_var.
79
80 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
81
82         * doc/install.texi (--enable-shared): Update libobjc's shared library
83         status.  Remove reference to libf2c.
84
85 2004-06-11  Jason Merrill  <jason@redhat.com>
86
87         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
88         * config/i386/i386.c (ix86_va_arg): Remove.
89         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
90         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
91         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
92         * config/alpha/alpha.c (alpha_va_arg): Remove.
93         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
94         * config/sparc/sparc.c (sparc_va_arg): Remove.
95
96         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
97         assignment might throw.
98         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
99         expressions.
100
101 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
102
103         PR 15886:
104         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
105
106 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
107
108         * doc/install.texi (Prerequisites): Update documentation of
109         required versions of autoconf and automake.  Remove mention of
110         libf2c.
111
112 2004-06-11  Jason Merrill  <jason@redhat.com>
113
114         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
115         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
116
117 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
118
119         * typeclass.h: Add GPL plus exception license.  Add include
120         guard.
121
122 2004-06-10  Jason Merrill  <jason@redhat.com>
123
124         * gimplify.c (gimplify_modify_expr): Don't force a temporary
125         of an aggregate_value_p type.
126
127 2004-06-10  Jeff Law  <law@redhat.com>
128
129         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
130         code when we are in gimple form.
131
132 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
133
134         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
135         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
136         (highest_ssa_version): Remove.
137         * tree-outof-ssa.c (new_temp_expr_table): Replace
138         highest_ssa_version with num_ssa_names.
139         (dump_replaceable_exprs): Likewise.
140         (rewrite_vars_out_of_ssa): Likewise.
141         * tree-ssa-ccp.c (initialize): Likewise
142         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
143         * tree-ssa-dce.c (tree_dce_init): Likewise.
144         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
145         * tree-ssa-live.c (create_ssa_var_map): Likewise.
146         (dump_var_map): Likewise.
147         * tree-ssa.c (verify_ssa): Likewise.
148         (kill_redundant_phi_nodes): Likewise.
149         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
150         * tree-ssanames.c: Include tree-flow.h
151         (ssa_names): New varray.
152         (init_ssa_names): Initialize ssa_names.
153         Reserve the first slot of the ssa_names table.
154         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
155         Assign version numbers using num_ssa_names.
156
157 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
158
159         * doc/sourcebuild.texi (Front End): Add details of more
160         installation documentation required.
161
162 2004-06-10  Brian Booth  <bbooth@redhat.com>
163
164         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
165         of V_MAY_DEF and V_MUST_DEF.
166         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
167         num_vdefs to num_v_may_defs.
168         (compute_immediate_uses_for_stmt): Rename occurences of vdef
169         to v_may_def.
170         (redirect_immediate_uses): Ditto.
171         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
172         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
173         Also add code to sum up the number of v_must_defs.
174         (vdefs_disappeared_p): Replace with...
175         (v_may_defs_disappeared_p): This.
176         (v_must_defs_disappeared_p): New function.
177         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
178         Also add code to mark new variables found in V_MUST_DEFs for
179         renameing.
180         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
181         vdef_ops to v_may_def_ops.
182         (get_vdef_ops): Replace with...
183         (get_v_may_def_ops): This.
184         * tree-flow-inline.h (get_vdef_ops): Replace with...
185         (get_v_may_def_ops): This.
186         (get_v_must_def_ops): New function.
187         (get_vdef_result_ptr): Replace with...
188         (get_v_may_def_result_ptr): This.
189         (get_vdef_op_ptr): Ditto with...
190         (get_v_may_def_op_ptr); This.
191         (get_v_must_def_op_ptr): New function.
192         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
193         to v_may_def. Also add code to mark statements with
194         V_MUST_DEFs as definition sites.
195         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
196         add code to register new V_MUST_DEFs made by the statement.
197         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
198         (check_replaceable): Rename occurences of vdef to v_may_def. Also
199         add check for V_MUST_DEFs.
200         (find_replaceable_in_bb): Ditto.
201         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
202         to v_may_def. Also add code to dump V_MUST_DEFs.
203         * tree-sra.c (mark_all_vdefs): Replace with...
204         (mark_all_v_may_defs): This.
205         (mark_all_v_must_defs): New function.
206         (create_scalar_copies): Replace call to mark_all_vdefs with
207         calls to mark_all_v_may_defs and mark_all_v_must_defs.
208         (scalarize_structures): Rename occurences of vdef to v_may_def.
209         Also add a check for V_MUST_DEFs.
210         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
211         * tree-ssa-alias.c (global_var): Update comment.
212         (compute_may_aliases): Ditto.
213         (compute_points_to_and_addr_escape): Rename occurences of vdef
214         to v_may_def. Also add code to mark variables in V_MUST_DEF
215         operands as being written to.
216         (group_aliases): Update comment.
217         (maybe_create_global_var): Ditto.
218         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
219         Also add a check for V_MUST_DEFs on GIMPLE registers.
220         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
221         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
222         to v_may_def. Also add code to mark all V_MUST_DEF operands
223         VARYING.
224         (initialize): Ditto.
225         (set_rhs): Rename occurences of vdef to v_may_def. Also add
226         code to update SSA_NAMEs in V_MUST_DEFs.
227         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
228         to v_may_def.
229         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
230         occurences of vdef to v_may_def. Also add code to mark statements
231         with V_MUST_DEFs as necessary.
232         (propagate_necessity): Rename occurences of vdef to v_may_def.
233         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
234         occurences of vdef to v_may_def. Also add code to mark operands
235         in V_MUST_DEFs for renaming.
236         (eliminate_redundant_computations): Rename occurences of vdef
237         to v_may_def.
238         (record_equivalences_from_stmt): Rename occurences of vdef
239         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
240         (optimize_stmt): Remove unnesessary variable vdefs. Update
241         comment.
242         (register_definitions_for_stmt): Rename occurences of vdef
243         to v_may_def. Also add code to register definitions made with
244         V_MUST_DEFs.
245         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
246         (fix_stmt_v_may_defs): This.
247         (fix_phi_uses): Rename occurences of vdef to v_may_def.
248         (dse_optimize_stmt): Ditto.
249         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
250         to v_may_def. Also add code to mark V_MUST_DEF operands as being
251         used in virtual operators.
252         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
253         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
254         renaming.
255         * tree-ssa-operands.c (opf_kill_def): New flag for killing
256         definitions.
257         (build_vdefs): Renamed to...
258         (build_v_may_defs): This.
259         (build_v_must_defs): New variable.
260         (voperands_d): Add v_must_def_ops and replace vdef_ops with
261         v_may_def_ops.
262         (append_vdef): Replace with...
263         (append_v_may_def): This.
264         (append_v_must_def): New function.
265         (NUM_FREE): Increment for V_MUST_DEF
266         (optype_freelist): Increment its size for V_MUST_DEF
267         (allocate_vdef_optype): Replace with...
268         (allocate_v_may_def_optype): This.
269         (allocate_v_must_def_optype): New function.
270         (free_vdefs): Replace with...
271         (free_v_may_defs): This.
272         (free_v_must_defs): New function.
273         (remove_vdefs): Replace with...
274         (remove_v_may_defs): This.
275         (remove_v_must_defs): New function.
276         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
277         add code to initialize build_v_must_defs.
278         (finalize_ssa_vdefs): Replace with...
279         (finalize_ssa_v_may_defs): This.
280         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
281         (finalize_ssa_v_must_defs): New function.
282         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
283         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
284         (verify_start_operands): Rename occurences of vdef to v_may_def.
285         Also add check for build_v_must_defs.
286         (get_stmt_operands): Rename occurences of vdef to v_may_def.
287         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
288         killing definitions.
289         (get_expr_operands): Update comment and use opf_kill_def for
290         killing definitions.
291         (add_stmt_operand): Replace code that appends VDEFs with code
292         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
293         otherwise.
294         (add_call_clobber_ops): Update comments.
295         * tree-ssa-operands.h (vdef_optype_d): Replace with...
296         (v_may_def_optype_d): This.
297         (v_must_def_optype_d): New structure.
298         (VDEF_OPS): Replace with...
299         (V_MAY_DEF_OPS): This.
300         (STMT_VDEF_OPS): Same with...
301         (STMT_V_MAY_DEF_OPS): This.
302         (NUM_VDEFS): And...
303         (NUM_V_MAY_DEFS): This.
304         (VDEF_RESULT_PTR): As well as...
305         (V_MAY_DEF_RESULT_PTR): This.
306         (VDEF_RESULT): Same goes for...
307         (V_MAY_DEF_RESULT): This.
308         (VDEF_OP_PTR): And...
309         (V_MAY_DEF_OP_PTR): This.
310         (VDEF_OP): And...
311         (V_MAY_DEF_OP): This.
312         (V_MUST_DEF_OPS): New macro.
313         (STMT_V_MUST_DEF_OPS): Ditto.
314         (NUM_V_MUST_DEFS): Ditto.
315         (V_MUST_DEF_OP_PTR): Ditto.
316         (V_MUST_DEF_OP): Ditto.
317         (remove_vdefs): Replace signature with...
318         (remove_v_may_defs): This.
319         (remove_v_must_defs): New function signature.
320         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
321         with calls to remove_v_may_defs and remove_v_must_defs.
322         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
323         Also add code that marks left occurences of operands in V_MUST_DEFs.
324         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
325         to v_may_def. Also add check for V_MUST_DEFs.
326         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
327
328 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
329
330         PR target/15653
331         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
332         insn.
333
334 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
335
336         PR web/15263
337         * doc/install.texi: Remove superfluous linebreak.
338
339 2004-06-10  Roger Sayle  <roger@eyesopen.com>
340
341         * builtins.c (expand_builtin): Fall back to library function call for
342         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
343         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
344         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
345         IMAGPART_EXPR respectively.
346
347 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
348
349         * sh.c (dump_table): New argument start.  Changed caller.
350         (fixup_mova): New function.
351         (find_barrier): Use it.
352         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
353         If the label a mova refers to is above the mova itself, change
354         the mova into a load.
355         * sh.md (*casesi_worker): Rename to:
356         (casesi_worker_1).
357         (casesi_worker_2): New insn.
358
359 2004-06-10  Jason Merrill  <jason@redhat.com>
360
361         * target.h (struct gcc_target): Change gimplify_va_arg_expr
362         hook signature.
363         * tree-gimple.h: Adjust.
364         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
365         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
366         Use fold_convert.
367         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
368         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
369         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
370         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
371         (gimplify_va_arg_expr): Return GS_ERROR in error case.
372         Gimplify valist rather than calling stabilize_va_list.
373
374 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
375
376         * Makefile.in (df.o): Remove fibheap dependency.
377         * df.h: Do not include sbitmap.h.
378         (struct ref): New field "data".
379         (DF_REF_DATA): New accessor macro.
380         (struct df): Field "dom" removed.
381         (df_analyze_subcfg): New function.
382         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
383         (transfer_function): ... new type.
384         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
385         (iterative_dataflow): ... new function.
386         (enum set_representation, struct dataflow): New.
387         * df.c: Do not include fibheap.h.
388
389         (df_reg_def_chain_clean, df_reg_use_chain_clean,
390         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
391         prune_to_subcfg, df_bb_modify): New functions.
392         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
393         df_refs_update, df_reg_table_realloc, df_ref_create,
394         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
395         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
396         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
397
398         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
399         (df_rd_transfer_function, df_ru_transfer_function,
400         df_lr_transfer_function): Type of bitmaps changed to void *.
401         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
402         (hybrid_search): ... new function.
403         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
404         (iterative_dataflow): ... new function. Avoid use of fibheaps for
405         a worklist.  Do not process basic blocks unnecessarily.
406
407 2004-06-10  Roger Sayle  <roger@eyesopen.com>
408
409         * fold-const.c (fold_abs_const): Make extern.
410         * tree.h (fold_abs_const): Prototype here.
411         * builtins.c (fold_builtin_fabs): New function to transform
412         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
413         (fold_builtin_abs): New function to transform abs, labs, llabs
414         and imaxabs builtins into ABS_EXPR tree nodes.
415         (expand_builtin): Fall back to a function call for abs, labs,
416         llabs and imaxabs builtins that survive constant folding.
417         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
418         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
419
420 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
421
422         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
423         leaf function without unwind info at RP 0.
424
425 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
426
427         PR c++/14791
428         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
429         (fileptr_type_node): Define.
430         * tree.c (build_common_tree_nodes_2): Initialize
431         fileptr_type_node to ptr_type_node.
432         * c-common.c (c_common_nodes_and_builtins): For C++, make
433         fileptr_type_node a distinct type copy.
434         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
435         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
436         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
437         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
438         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
439         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
440         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
441         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
442         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
443         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
444         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
445         the above *FILEPTR* types instead of *PTR*.
446
447 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
448
449         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
450         match.
451
452 2004-06-09  Roger Sayle  <roger@eyesopen.com>
453
454         * fold-const.c (fold_not_const): New function.
455         (fold) <ABS_EXPR>: Don't bother testing wins.
456         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
457         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
458
459 2004-06-09  Richard Henderson  <rth@redhat.com>
460
461         PR middle-end/15228
462         * function.c (assign_parms): Always set_mem_align with the computed
463         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
464
465 2004-06-09  Richard Henderson  <rth@redhat.com>
466
467         PR opt/15108
468         * tree-tailcall.c (find_tail_calls): Don't check early for
469         tail_recursion failure.
470
471 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
472
473         Move SSA_NAME annotations into tree_ssa_name.
474
475         * tree-dfa.c (create_ssa_name_ann): Remove.
476         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
477         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
478         (struct ssa_name_ann_d): Remove.
479         (union tree_ann_d): Update.
480         (ssa_name_ann_t): Remove.
481         * tree-ssa-alias.c: (get_ptr_info): New local function.
482         Replace references to ssa_name_ann_t with struct ptr_info_def.
483         * tree-ssa-operands.c (get_expr_operands): Likewise.
484         * tree.h (SSA_NAME_PTR_INFO): Define.
485         (struct ptr_info_def): Declare.
486         (struct tree_ssa_name): Add field 'ptr_info'.
487
488 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
489
490         * config/i386/winnt.c (i386_pe_output_labelref): Correct
491         misplaced ')'.
492
493 2004-06-09  Steven Bosscher  <stevenb@suse.de>
494
495         * config/i386/k6.md: Rewrite using the DFA model.
496         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
497         cost of load-operation insns for the K6.
498         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
499         (ia32_multipass_dfa_lookahead): Likewise.
500
501 2004-06-09  Richard Henderson  <rth@redhat.com>
502
503         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
504         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
505
506 2004-06-09  Richard Henderson  <rth@redhat.com>
507
508         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
509
510 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
511
512         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
513         (CPP_ID_DATA_H): New.
514         (gtype-desc.o): Update dependencies.
515         (GTFILES): Use CPP_ID_DATA_H.
516
517 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
518
519         Revert:
520         PR c++/15815
521         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
522         * doc/extend.texi: Deprecate #pragma interface and #pragma
523         implementation.
524
525 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
526
527         * config/sparc/sparc.h (MOVE_RATIO): New definition.
528
529 2004-06-09  Richard Henderson  <rth@redhat.com>
530
531         * basic-block.h (struct edge_def): Add goto_locus.
532         * tree-cfg.c (make_goto_expr_edges): Set it.
533         (disband_implicit_edges): Use it.
534         * tree-pretty-print.c (dump_implicit_edges): Print it.
535
536 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
537
538         * h8300.md (ldm_h8300s_4): Fix condition for expander.
539
540 2004-06-08  Jason Merrill  <jason@redhat.com>
541
542         Gimplify VA_ARG_EXPR into simpler forms.
543         * target.h: Add gimplify_va_arg_expr hook.
544         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
545         * fold-const.c (build_fold_addr_expr)
546         (build_fold_addr_expr_with_type): Move from gimplify.c.
547         * tree.h: Declare them.
548         * gimplify.c (gimplify_and_add): New fn.
549         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
550         (gimplify_array_ref_to_plus, gimplify_modify_expr)
551         (gimplify_expr): Use build_fold_*.
552         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
553         don't know how to gimplify it.
554         * builtins.c (std_gimplify_va_arg_expr): New fn.
555         (dummy_object): New static fn.
556         (gimplify_va_arg_expr): New fn.
557         (stabilize_va_list): Use build_fold_*.
558         * tree-gimple.h: Declare new fns.
559         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
560         (ix86_gimplify_va_arg): New fn.
561         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
562         (ia64_gimplify_va_arg): New fn.
563         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
564         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
565         * alias.c (get_varargs_alias_set): Just return 0 for now.
566
567         * c-objc-common.c (c_tree_printer): Improve handling of %T.
568
569 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
570
571         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
572         of convert.
573         * tree-inline.c (setup_one_parameter): Likewise.
574         * tree-sra.c (csc_build_component_ref): Likewise.
575         * tree-ssa-ccp.c (ccp_fold): Likewise.
576         * tree-ssa-copy.c (cprop_operand): Likewise.
577         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
578         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
579
580 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
581
582         PR rtl-optimization/15521:
583         * sched-int.h (in_post_call_group_p): Change type to enum.
584         * sched-deps.c (sched_analyze_insn):
585         (sched_analyze): When in_post_call_group_p is post_call_initial,
586         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
587         and also reset in_post_call_group_p to post_call.
588         (sched_analyze): When the previous basic block ended in a CALL_INSN,
589         initialize in_post_call_group_p as post_call_initial.
590         (init_deps): initialize in_post_call_group_p to not_post_call.
591
592 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
593
594         PR ada/6637
595         * doc/install.texi: List ada, libada as options to --enable-shared
596
597 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
598
599         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
600         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
601         config.in entries.
602         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
603         if hard links are not available.
604         * configure: Regenerate.
605         * config.in: Regenerate.
606
607 2004-06-08  Per Bothner  <per@bothner.com>
608
609         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
610
611 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
612
613         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
614         Correct formatting.
615
616 2004-06-08  James E Wilson  <wilson@specifixinc.com>
617
618         PR target/15790
619         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
620
621 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
622
623         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
624         POINTER_TYPE and INTEGER_TYPE.
625
626 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
627
628         * modulo-sched.c: Compile only when INSN_SCHEDULING is
629         defined.
630
631 2004-06-08  Jeff Law  <law@redhat.com>
632
633         * doc/contrib.texi: Add entries for Stefan Olsson and
634         Ola Ronnerup.
635
636 2004-06-08  DJ Delorie  <dj@redhat.com>
637
638         * toplev.c (floor_log2_wide): Replace loop with faster bit
639         operations.
640         (exact_log2_wide): Define in terms of the above.
641         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
642         available.
643
644 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
645
646         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
647         Make sure that we are in INDIRECT mode when getting the
648         stub name.
649
650 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
651
652         * h8300.md (extendqisi2_h8300): Add constraints.
653         (ldm_h8300s_4_normal): Fix typo.
654
655 2004-06-08  Richard Henderson  <rth@redhat.com>
656
657         * gimple-low.c (struct lower_data): Replace the_return_label and
658         one_return_stmt with return_statements.
659         (lower_function_body): Process the entire list of return_statements.
660         (lower_return_expr): Check source value before unifying return_exprs.
661         * gimplify.c (gimplify_return_expr): Force the use of a temporary
662         for !aggregate_value_p.
663         * tree-gimple.c: Update RETURN_EXPR grammer.
664
665 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
666
667         PR target/15598
668         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
669
670 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
671
672         PR rtl-optimization/15717
673         * config/i386/i386.c (legitimate_constant_p): Do not allow
674         x - symbol_ref.
675
676 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
677
678         * gimplify.c (copy_if_shared_r): Revert:
679         2004-05-21  Richard Henderson  <rth@redhat.com>
680         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
681
682 2004-06-07  Roger Sayle  <roger@eyesopen.com>
683
684         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
685         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
686         (init_expmed): Initialize these cost arrays as appropriate.
687         (store_bit_field, extract_bit_field): Correct whitespace.
688         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
689         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
690         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
691         word_mode or compute_mode as appropriate.
692
693 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
694
695         PR target/15783
696         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
697         parameter.  Enumerate the registers inside the PARALLEL.
698         (function_arg): Adjust call to function_arg_union_value.
699         (function_value): Likewise.
700
701         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
702
703 2004-06-07  Roger Sayle  <roger@eyesopen.com>
704
705         * real.c (real_copysign): New function to implement libm's copysign.
706         * real.h (real_copysign): Prototype here.
707         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
708         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
709         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
710         fold_builtin_isdigit): Add function prototypes.
711         (fold_builtin_copysign): New function to fold copysign, copysignf
712         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
713         constant arguments at compile-time using real_copysign.  Fold
714         copysign(X,Y) as fabs(X) if Y is always non-negative.
715         (fold_builtin_1): Correct minor whitespace/style issues.  Call
716         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
717
718 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
719
720         * tree.c (iterative_hash_expr): Use real_hash.
721
722 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
723
724         PR c/14765
725         * c-parse.in (compstmt_primary_start): Set last_expr_type to
726         NULL_TREE.
727
728 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
729
730         PR c++/15815
731         * doc/extend.texi: Deprecate #pragma interface and #pragma
732         implementation.
733
734 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
735
736         PR middle-end/15666
737         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
738         builtin decl as well.
739
740 2004-06-07  Roger Sayle  <roger@eyesopen.com>
741
742         PR c/14649
743         * c-typeck.c (require_constant_value, require_constant_elements):
744         Move declarations to the top of the file.
745         (build_function_call): If we require a constant value, fold with
746         fold_initializer.  If the result is a constant, and the function
747         wasn't called using __builtin_foo, issue a pedantic warning.
748         (build_unary_op): If we require a constant value, fold tree with
749         fold_initializer.
750         (build_binary_op): Use require_constant_value to determine whether
751         to call fold or fold_initializer.
752
753 2004-06-07  Richard Henderson  <rth@redhat.com>
754
755         * gimple-low.c (struct lower_data): Add the_return_label and
756         one_return_stmt.
757         (lower_function_body): Initialize and use them.
758         (lower_return_expr): New.
759         (lower_stmt): Call it.
760         * gimplify.c (gimplify_return_expr): Force the argument to be either
761         null or a result_decl.
762         * tree-gimple.c: Update gimple grammer to match.
763         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
764         coalescing of result_decls.
765
766 2004-06-07  Richard Henderson  <rth@redhat.com>
767
768         PR rtl-opt/15193
769         * expmed.c (extract_bit_field): Fix vector_extract return.
770
771         * config/i386/i386.md (negv4sf2): New pattern.
772
773 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
774
775         PR c++/15337
776         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
777         message.
778
779 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
780
781         * config.in: Regenerate.
782
783 2004-06-06  Steven Bosscher  <stevenb@suse.de>
784
785         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
786         SWITCH_LABELS are always sorted.
787
788 2004-06-06  Steven Bosscher  <stevenb@suse.de>
789
790         * hooks.c (hook_int_void_1): New generic hook.
791         * hooks.h (hook_int_void_1): Add prototype.
792         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
793         Define to hook_int_void_1.
794         * config/c4x/c4x.md: Replace dummies for the old pipeline model
795         with dummies for the new one.
796
797 2004-06-06  Roger Sayle  <roger@eyesopen.com>
798
799         * tree.h (lvalue_or_else): Delete function prototype.
800         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
801
802 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
803
804         PR target/14542
805         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
806         a live change of a register after peephole replacement.
807
808 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
809
810         PR c/13519
811         * c-typeck.c (composite_type, common_pointer_type): New functions.
812         (common_type): Split parts into composite_type and
813         common_pointer_type.  Ensure that arithmetic operations return
814         unqualified types without attributes.  Don't make composite type
815         of signed enum and compatible integer be unsigned.
816         (build_conditional_expr, build_binary_op): Use
817         common_pointer_type.
818         * c-decl.c (merge_decls): Use composite_type.
819         * c-tree.h (composite_type): Declare.
820
821 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
822
823         PR target/14457
824         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
825         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
826         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
827         (inhibit_libc): Must define.
828         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
829         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
830         ("xorhi3"): Likewise.
831
832 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
833
834         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
835         always_inline pass.
836
837 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
838
839         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
840         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
841
842 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
843
844         * regclass.c (init_reg_sets): Check for missing registers in target
845         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
846
847 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
848
849         * Makefile.in (MKDEPS_H): New shorthand.
850         (c-opts.o): Update dependencies.
851         * c-opts.c: Include mkdeps.h.
852         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
853         not cpp_add_dependency_target.
854
855 2004-06-05  Steven Bosscher  <stevenb@suse.de>
856
857         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
858         * config/v850/v850.md: Convert to DFA scheduler description.
859
860 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
861
862         PR fortran/15478
863         * doc/install.texi: Document GMP as prerequisite. Document
864         --with-gmp and --with-gmp-dir configure options.
865         * fortran/gfortran.texi: Remove section "Compiling and testing",
866         remove TOC reference to it.
867
868 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
869
870         * combine.c(simplify_shift_const): Check shift amount is a
871         CONST_INT.
872
873 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
874
875         * toplev.c (init_asm_output): Add explicit 'b' to mode when
876         opening asm_out_file.
877         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
878         reading asm_out_file. Replace fflush after reading asm_out_file
879         with fseek.
880         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
881         default and add to HOST_HOOKS_INITIALIZER.
882         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
883         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
884         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
885         to set mmi.offset padding.
886          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
887         $(srcdir)/config/i386/winnt.c.
888         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
889         (i[34567]86-*-uwin*): Likewise.
890         *i[34567]86-*-interix3*): Likewise.
891         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
892         * config/i386/host-mingw32.c: New file.
893         * config/i386/x-mingw32: Add rule for host-mingw32.o.
894         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
895         (extern_head): Likewise.
896         (struct export_list) Likewise.
897         (export_head): Likewise.
898         (i386_pe_record_external_function): Use ggc_alloc.
899         (i386_pe_record_exported_symbol): Likewise.
900         Include "gt-winnt.h" at end.
901         * doc/hostconfig.texi: Document
902         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
903
904 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
905
906         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
907         Rename 68000 and 68k to m68k for consistency in comments.  Remove
908         trailing whitespace before EOLs and before TABs.
909         (MAX_CODE_ALIGN): Remove unused macro.
910         (CALL_USED_REGISTERS): Reformat and add comments.
911
912 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
913
914         * gcc.c (MFLIB_SPEC): Remove library references, to require users
915         to enumerate -lmudflap* and dependencies when linking.
916
917 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
918
919         PR target/15822
920         * dojump.c (do_jump): Fix uninitialized variable tcode1.
921
922 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
923
924         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
925         * genconditions.c (write_header): Back out removal of reload.h.
926
927 2004-06-04  Jan Hubicka  <jh@suse.cz>
928
929         Re-apply hopefully fixed patch:
930         * i386.md (UNSPECV_EH_RETURN): Kill.
931         (eh_return): Use jump_insn.
932         (eh_return_si, eh_return_di): Change pattern to jump instruction.
933
934 2004-06-04  Jeff Law  <law@redhat.com>
935
936         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
937
938 2004-06-04  Steven Bosscher  <stevenb@suse.de>
939
940         * except.c (for_each_eh_region): New function.
941         * except.h (for_each_eh_region): Add a prototype for it.
942         * tree-cfg.c (update_eh_labels): New function, callback for
943         for_each_eh_region.
944         (label_for_bb): Make global static, unfortunately.
945         (cleanup_dead_labels): Also update label references for
946         exception regions.
947
948 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
949
950         * config/mips/mips.c (struct irix_section_align_entry): Fix
951         GTY marker.
952
953 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
954
955         * toplev.c (check_global_declarations): Don't ask for
956         DECL_ASSEMBLER_NAME unless the function really is declared
957         static and not defined.
958
959 2004-06-03  Matt Austern  <austern@apple.com>
960
961         PR c++/15428
962         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
963         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
964         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
965         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
966         documentation to reflect the new macro name and to clarify its
967         meaning.
968
969 2004-06-03  Steven Bosscher  <stevenb@suse.de>
970
971         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
972
973 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
974
975         * config/darwin.c (machopic_indirect_data_reference): Copy
976         the SYMBOL_REF_DECL from the original RTX for the new
977         non-lazy pointer RTX.
978
979 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
980
981         * tree.h: Remove include of version.h
982         * c-cppbuiltin.c: Include version.h
983         * diagnostic.c: Include version.h
984         * dwarf2out.c: Include version.h
985         * toplev.c: Include version.h
986         * vmsdbgout.c: Include version.h
987         * Makefile.in: Remove dependency on version.h from TREE_H, and
988         add dependencies to required .o targets
989
990 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
991
992         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
993         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
994         (TARGET_H): Add insn-modes.h.
995         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
996         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
997         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
998         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
999         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1000         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1001         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1002         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1003         CFGLAYOUT_H.
1004         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1005         Replace ra.h with RA_H.
1006         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1007         insn-recog.o): Replace resource.h with RESOURCE_H.
1008         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1009         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1010         with SCHED_INT_H.
1011         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1012         ra-rewrite.o): Replace df.h with DF_H.
1013         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1014         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1015         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1016         (insn-conditions.o): Remove unused reload.h.
1017         * cfglayout.h: Add include guard.  Include basic-block.h.
1018         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
1019         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1020         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
1021         basic-block.h.
1022         * genconditions.c:  Remove reload.h.
1023         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
1024         hard-reg-set.h, insn-modes.h.
1025         * resource.h: Add include guard.  Include hard-reg-set.h.
1026         * sched-int.h:  Add include guard.  Include insn-attr.h,
1027         basic-block.h, rtl.h.
1028         * target.h: Add include guard.  Include insn-modes.h.
1029         * tree-ssa-live.h: Include partition.h.
1030
1031 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
1032                 Kenneth Zadeck <zadeck@naturalbridge.com>
1033
1034         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1035         (add_var_to_ssa_edges_worklist): Add value argument.
1036         Update callers.
1037         Use new worklist.
1038         (process_ssa_edge_worklist): New function.
1039         (tree_ssa_ccp): Move worklist processing core to
1040         process_ssa_edge_worklist, and just call that for the two worklists.
1041
1042 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1043
1044         * basic-block.c (tail_recursion_label_list): Don't declare.
1045         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
1046         accordingly.
1047         * cfgbuild.c (find_label_refs): Remove.
1048         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1049         * cfgcleanup.c (tail_recursion_label_p): Remove.
1050         (merge_blocks_move): Do not check for tail recursion.
1051         (try_optimize_cfg): Likewise.
1052         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1053         * cfgrtl.c (tail_recursion_label_list): Remove.
1054         * except.c (remove_unreachable_regions): Don't handle
1055         CALL_PLACEHOLDER insns.
1056         (convert_from_eh_region_ranges_1, can_throw_internal,
1057         can_throw_external): Likewise.
1058         * function.c (free_after_compilation): Don't clear
1059         x_tail_recursion_label.
1060         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1061         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1062         (reorder_blocks_1): Likewise.
1063         * function.h (struct function): Remove x_tail_recursion_label
1064         member.  Don't define tail_recursion_label.
1065         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1066         * print-rtl.c (print_rtx): Likewise.
1067         * rtl.def (CALL_PLACEHOLDER): Remove.
1068         * rtl.h (sibcall_use_t): Remove enum.
1069         (optimize_sibling_and_tail_recursive_calls,
1070         replace_call_placeholder): Remove function prototypes.
1071         * stmt.c (tail_recursion_args): Remove.
1072         (optimize_tail_recursion): Remove.
1073         (expand_return): Don't check for possible tail recursion.
1074         * tree.h (optimize_tail_recursion): Remove prototype.
1075
1076 2004-06-02  Jan Hubicka  <jh@suse.cz>
1077
1078         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
1079         return_stmt.
1080
1081 2004-06-02  Jason Merrill  <jason@redhat.com>
1082
1083         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1084         Do include c-parse.in.
1085
1086 2004-06-02  Eric Christopher  <echristo@redhat.com>
1087
1088         * c-typeck.c (common_type): Don't lose type qualifiers
1089         when creating new variants.
1090
1091 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1092
1093         PR tree-optimization/14042
1094         PR tree-optimization/14729
1095         PR tree-optimization/14736
1096         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1097         Check the type which the pointer points to
1098         instead of the pointer types.
1099
1100 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1101
1102         PR tree-optimization/15738.
1103         * builtins.c (fold_builtin_strchr): Transform
1104         strrchr (s, '\0') to strchr (s, '\0').
1105
1106 2004-06-02  Steven Bosscher  <stevenb@suse.de>
1107
1108         * i386.c (ix86_adjust_cost): Don't increase the cost for
1109         load+operation for PROCESSOR_PENTIUMPRO, it is already
1110         modelled in the DFA description
1111
1112 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
1113
1114         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1115         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1116         (ALIAS_H, EMIT_RTL_H): New.
1117         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1118         (cfgcleanup.o): Add EMIT_RTL_H.
1119         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1120         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1121         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1122         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1123         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
1124         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1125         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1126         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1127         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1128         set_mem_size): Move to emit-rtl.h.
1129         * emit-rtl.h: New.
1130         * alias.h: New.
1131
1132 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
1133
1134         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1135         Call fixup_memory_subreg only if the MEM is equal to 'var'.
1136         Adjust recursive calls to self.
1137         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1138
1139 2004-06-01  Richard Henderson  <rth@redhat.com>
1140             Andrew Pinski  <pinskia@physics.uc.edu>
1141
1142         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1143         (primary): Handle offsetof.  Add error productions for faux functions.
1144         Move component_ref objc checking to build_component_ref.
1145         (reswords): Add offsetof.
1146         (rid_to_yy): Add offsetof.
1147         * c-tree.h (build_offsetof): Declare.
1148         * c-common.h (objc_is_public): Declare.
1149         * c-typeck.c (build_component_ref): Check objc_is_public.
1150         (build_offsetof): New.
1151         * stub-objc.c (objc_is_public): New.
1152         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1153         from is_public.
1154         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1155         * doc/extend.texi (Offsetof): Move from C++ section to C section
1156         and rewrite for __builtin_offsetof.
1157
1158 2004-06-01  Peter Barada  <peter@the-baradas.com>
1159             Peter Jakubek  <peter@laseranimation.com>
1160
1161         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
1162         a scratch to perform an add to memory.
1163
1164 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1165
1166         PR target/14018
1167         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1168         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1169         m68k_align_funcs): Remove.
1170         (override_options): Remove code to handle -malign-* options.
1171         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1172         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1173         (m68k_align_loops_string, m68k_align_jumps_string,
1174         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1175         m68k_align_funcs): Remove definitions.
1176
1177 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
1178
1179         PR target/15626
1180         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1181         by the Sun linker in conjunction with the Sun assembler.
1182         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1183
1184 2004-06-01  Jeff Law  <law@redhat.com>
1185
1186         * stmt.c (expand_decl): Be more selective about calling
1187         mark_reg_pointer.
1188
1189 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
1190
1191         PR objc/7993
1192         * objc-act.c (is_private): Do not emit the 'instance variable %s
1193         is declared private' error.
1194         (is_public): Emit the error after calling is_private.
1195         (lookup_objc_ivar): If the instance variable is private, return 0
1196         - the instance variable is invisible here.
1197
1198 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1199
1200         * doc/invoke.texi (-static-libgcc): Explicitly mention
1201         non-GNU linkers.
1202
1203 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1204
1205         PR target/12968
1206         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1207
1208 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1209
1210         PR c/15749
1211         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1212         misuses of structures with flexible array members if
1213         in_system_header.
1214
1215 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1216
1217         PR target/15693
1218         * config/sparc/sparc.c (compare_operand): New predicate.
1219         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1220         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
1221         operand is a ZERO_EXTRACT and the second operand is not zero,
1222         force the former to a register.
1223         (cmpdi expander): Likewise.
1224
1225 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
1226
1227         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1228         looks at.
1229         * alias.c (alias_invariant_size): Make alias_invariant_size
1230         static, fix GTY marker.
1231
1232 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1233
1234         PR tree-optimization/15743.
1235         * builtins.c (fold_builtin_1): Fold index() and rindex().
1236
1237 2004-05-31  Roger Sayle  <roger@eyesopen.com>
1238
1239         PR middle-end/15069
1240         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1241         into "X < 0" (where C is the signbit) if X's type is a full mode.
1242
1243 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1244
1245         * pa.md: Disable the peephole2 patterns that generate indexed
1246         floating-point stores when indexing is disabled.
1247
1248 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1249
1250         * c-pretty-print.c (pp_c_left_bracket): Make a function.
1251         (pp_c_right_bracket): Likewise.
1252         (pp_c_star): Likewise.
1253         (pp_c_ampersand): Define.
1254         * c-pretty-print.h (pp_c_left_bracket): Declare.
1255         (pp_c_right_bracket): Likewise.
1256         (pp_c_star): Likewise.
1257         (pp_c_ampersand): Likewise.
1258
1259 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1260
1261         * config/sol2.h (__enable_execute_stack): ANSIfy function
1262         definition.
1263
1264 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
1265
1266         * c-incpath.c (add_path): Canonicalize paths to use '/' if
1267         HAVE_DOS_BASED_FILESYSTEM.
1268
1269 2004-05-31  Steven Bosscher  <stevenb@suse.de>
1270
1271         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1272         Only look at case labels if the immediate dominator is also
1273         the only predecessor.  Don't look for more case labels if the
1274         first seen is a case range.
1275
1276 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1277
1278         * builtins.c: Add a prototype for fold_builtin_strchr().
1279
1280 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
1281
1282         Revert this patch:
1283         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1284
1285         * combine.c (gen_binary): Remove.
1286         (known_cond, simplify_shift_const
1287         find_split_point, combine_simplify_rtx,
1288         simplify_if_then_else, simplify_set,
1289         simplify_logical, expand_field_assignment,
1290         extract_left_shift, force_to_mode,
1291         if_then_else_cond, apply_distributive_law,
1292         simplify_and_const_int, simplify_shift_const,
1293         gen_lowpart_for_combine, simplify_comparison,
1294         reversed_comparison): Replace with
1295         simplify_gen_binary, simplify_gen_relational or
1296         distribute_and_simplify_rtx.
1297         (distribute_and_simplify_rtx): New function.
1298
1299 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1300
1301         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
1302         when generating PIC code.
1303
1304 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1305
1306         * c-decl.c (c_expand_body_1): Remove and fold back into ...
1307         (c_expand_body): here.
1308         (c_expand_decl): Move to ...
1309         * c-common.c (c_expand_decl): Here and remove check for nested
1310         functions.
1311         * c-common.h (c_expand_decl): Add prototype.
1312         * c-tree.h (c_expand_decl): Remove.
1313
1314 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1315
1316         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
1317         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
1318         fold_mathfn_compare, fold_inf_compare, fold,
1319         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
1320         Use constant_boolean_node where appropriate.  Don't bother using
1321         fold_convert on the second argument to omit_one_operand.
1322
1323 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1324
1325         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
1326         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
1327         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
1328         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
1329         Add missing (but documented) tree nodes to the index.
1330
1331 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1332
1333         PR tree-optimization/14819
1334         * builtins.c (fold_builtin_strchr): New.
1335         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
1336         with fold_builtin_strchr().
1337
1338 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1339
1340         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
1341         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
1342         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
1343         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
1344         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
1345         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
1346         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
1347         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
1348         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
1349         formatting.
1350
1351 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1352
1353         * gimplify.c (sort_case_labels): New.  Split out from...
1354         (gimplify_switch_expr): ...here.  Use it.
1355         * tree-eh.c (lower_try_finally_switch): Sort the labels of
1356         the SWITCH_EXPR created here before leaving the function.
1357         * tree.c (sort_case_labels): Add prototype.
1358
1359 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1360
1361         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
1362         of BOOLEAN_TYPE.
1363
1364 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1365
1366         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
1367         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
1368         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
1369         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
1370         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
1371         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
1372         comment typos.  Follow spelling conventions.
1373
1374 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
1375
1376         * gengtype-yacc.y: Add NESTED_PTR token.
1377         (option): Record `nested_ptr' option.
1378         * gengtype-lex.l: Handle `nested_ptr' keyword.
1379         * gengtype.c (walk_type): Process `nested_ptr' option.
1380         * gengtype.h (struct nested_ptr_data): New.
1381         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
1382         * stringpool.c (struct string_pool_data): Make 'entries' point to
1383         ht_identifier instead of tree.
1384         (gt_pch_save_stringpool): Don't adjust pointers.
1385         (gt_pch_restore_stringpool): Call ht_load.
1386
1387 2004-05-29  Jason Merrill  <jason@redhat.com>
1388
1389         * gimplify.c (gimplify_expr): Don't build a statement list
1390         if no gimplification was necessary.
1391
1392 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1393
1394         * pretty-print.c (pp_base_format_text): Support %< instead of %`
1395         and %> as well as %'.
1396         * c-format.c: Use %< and %>.
1397         (gcc_diag_char_table, gcc_cdiag_char_table,
1398         gcc_cxxdiag_char_table): Update.
1399
1400 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1401
1402         * c-typeck.c (common_type): Correct comment.
1403
1404 2004-05-29  Peter Barada  <peter@the-baradas.com>
1405
1406         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
1407         * config/m68k/m68k.c (const_method): Likewise.
1408         * config/m68k/m68k.c (const_int_cost): Likewise.
1409         * config/m68k/m68k.c (const_int_cost): Likewise.
1410         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
1411
1412 2004-05-29  Peter Barada  <peter@the-baradas.com>
1413
1414         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
1415         addressing.
1416         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
1417         movsi,movhi,movqi insn patterns.
1418
1419 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1420
1421         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
1422
1423         PR target/15720
1424         * config/darwin.c (machopic_indirect_call_target): Copy
1425         the SYMBOL_REF_DECL from the original RTX for the new
1426         stub RTX.
1427
1428 2004-05-28  DJ Delorie  <dj@redhat.com>
1429
1430         * stor-layout.c (place_field): Revert erroneous commit.
1431
1432 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
1433
1434         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
1435         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
1436         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
1437         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
1438         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
1439         vec_ste): Remove type checks for integral parameters and literals
1440         from '..._args_eq' macros.
1441
1442 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1443
1444         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
1445
1446 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1447
1448         * testsuite/g++.dg/charset/function.cc: New.
1449
1450         * testsuite/gcc.dg/charset/function.c: New.
1451
1452         * c-decl.c (c_make_fname_decl): Free return value from
1453         fname_as_string.
1454
1455         * cp/decl.c (cp_make_fname_decl): Free return value from
1456         fname_as_string.
1457
1458         * c-common.c (fname_as_string): Translate if necessary.
1459
1460 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
1461
1462         * stringpool.c: Add comments to PCH saving/restoring routines.
1463
1464 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1465
1466         * c-common.c (c_estimate_num_insns_1): Kill.
1467         (c_estimate_num_insns): Kill.
1468         * c-common.h (c_estimate_num_insns): Kill.
1469
1470         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
1471         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
1472         Remove comment about not checking for
1473         _POSIX_PRIORITY_SCHEDULING.
1474         * gthr-posix.c: Likewise.
1475
1476 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
1477             Roger Sayle  <roger@eyesopen.com>
1478
1479         PR rtl-optimization/15649
1480         Add LTGT_EXPR and improve pretty-printing of unordered
1481         comparisons.
1482         * c-common.c (c_common_truthvalue_conversion):
1483         Handle LTGT_EXPR.
1484         * c-typeck.c (build_binary_op): Likewise.
1485         * dojump.c (do_jump): Likewise.
1486         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
1487         * predict.c (tree_predict_by_opcode): Likewise.
1488         * real.c (real_compare): Likewise.
1489         * tree-cfg.c (verify_expr): Likewise.
1490         * tree-inline.c (estimate_num_insns_1): Likewise.
1491         * tree-pretty-print.c (dump_generic_node): Likewise.
1492         Handle ORDERED_EXPR, UNORDERED_EXPR.
1493         (op_symbol): Print unordered comparisons differently
1494         than ordered ones.
1495         * tree.def (LTGT_EXPR): New '<' tree code.
1496         * doc/c-tree.texi (Expressions): Document floating-point
1497         comparison nodes.
1498
1499         Fold comparisons between floating point values.
1500         * fold-const.c (enum comparison_code): New, from
1501         #define'd constants.  Define compcodes for unordered
1502         comparisons and for invalid transformations.
1503         (invert_tree_comparison): Add "honor_nans" parameter.
1504         (fold_truthop): Revamp to work on floating-point types too.
1505         (comparison_to_compcode): Support unordered comparisons.
1506         Use new enum comparison_code.
1507         (compcode_to_comparison): Likewise.
1508         (combine_compcodes): New function.
1509         (invert_truthvalue): Let invert_tree_comparison decide
1510         whether it is valid to fold the comparison.  Fold ORDERED
1511         and UNORDERED even if flag_unsafe_math_optimizations is off,
1512         and the remaining even if flag_unsafe_math_optimizations
1513         is off but we are under -fno-trapping-math.
1514         (fold_relational_const): Integer modes do not honor NaNs.
1515
1516 2004-05-28  Paul Brook  <paul@codesourcery.com>
1517
1518         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
1519
1520 2004-05-28  Paul Brook  <paul@codesourcery.com>
1521
1522         * config/arm/arm.c (thumb_force_lr_save): New function.
1523         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
1524         thumb_output_function_prologue): Use it.
1525         (thumb_expand_prologue): Set lr_save_eliminated.
1526
1527 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
1528
1529         * config/mips/mips.md (extendsidi2): Tie the source and destination
1530         of the register alternative.  Split it into nothing.
1531
1532 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
1533
1534         * rtl.h (skip_consecutive_labels): Declare.
1535         * emit-rtl.c (skip_consecutive_labels): New function.
1536         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
1537         * jump.c (follow_jumps): Say what null return values mean.
1538
1539 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1540
1541         PR target/13250
1542         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
1543
1544 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1545
1546         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
1547         libgcc-std.ver.
1548         * config/sh/libgcc-std.ver: New file.
1549
1550 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
1551
1552         * except.c: Revert change of 2004-05-26.
1553         * config/i386/i386.md: Revert change of 2004-05-27.
1554
1555 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
1556
1557         * configure.ac: Remove --enable-tree-browser option.
1558         Define TREEBROWSER when ac_tree_checking is defined.
1559         * configure: Rebuilt.
1560
1561 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
1562
1563         * expr.c (store_constructor): Restore sanity check on
1564         the size of the type before clearing.
1565
1566 2004-05-27  Jan Hubicka  <jh@suse.cz>
1567
1568         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
1569
1570 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1571
1572         * combine.c (gen_binary): Remove.
1573         (known_cond, simplify_shift_const
1574         find_split_point, combine_simplify_rtx,
1575         simplify_if_then_else, simplify_set,
1576         simplify_logical, expand_field_assignment,
1577         extract_left_shift, force_to_mode,
1578         if_then_else_cond, apply_distributive_law,
1579         simplify_and_const_int, simplify_shift_const,
1580         gen_lowpart_for_combine, simplify_comparison,
1581         reversed_comparison): Replace with
1582         simplify_gen_binary, simplify_gen_relational or
1583         distribute_and_simplify_rtx.
1584         (distribute_and_simplify_rtx): New function.
1585         * simplify-rtx.c (simplify_binary_operation):
1586         Use nonzero_bits to simplify ANDs where we are
1587         turning off bits already known to be off in OP0.
1588
1589 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
1590
1591         PR target/14478
1592         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
1593
1594 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
1595
1596         PR middle-end/14084
1597         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
1598         to size of decl.
1599
1600 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
1601
1602         PR/14924
1603         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
1604
1605 2004-05-26  Roger Sayle  <roger@eyesopen.com>
1606
1607         * tree.h: Fix comment typo.
1608
1609 2004-05-27  Steven Bosscher  <stevenb@suse.de>
1610
1611         * gimplify.c (compare_case_labels): New function.
1612         (gimplify_switch_expr): Sort case labels, and make sure the
1613         last label in the label vector is the default case.
1614         * tree-cfg.c (group_case_labels): New function.
1615         (build_tree_cfg): Cleanup redundant labels and group case labels
1616         before creating edges.
1617         (cleanup_dead_labels): Handle GOTO_EXPRs.
1618         (find_case_label_for_value): Use a binary search to find the
1619         case label for the given value.
1620         * tree-gimple.c: Mention that labels are sorted, and that the
1621         last label must be the default.
1622
1623 2004-05-27  Jan Hubicka  <jh@suse.cz>
1624
1625         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
1626
1627 2004-05-27  Jan Hubicka  <jh@suse.cz>
1628
1629         * i386.md (UNSPECV_EH_RETURN): Kill.
1630         (eh_return): Use jump_insn.
1631         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1632
1633 2004-05-26  Jan Hubicka  <jh@suse.cz>
1634
1635         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
1636         not loop optimizing.
1637
1638 2004-05-26  Jan Hubicka  <jh@suse.cz>
1639
1640         * except.c (can_throw_internal):  Notice RESX instructions.
1641
1642 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
1643
1644         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
1645         of the two sizes to assemble_integer.
1646
1647 2004-05-25  Paul Brook  <paul@codesourcery.com>
1648
1649         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
1650         pointless #ifdef.
1651
1652 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
1653
1654         * Makefile.in (top_builddir): Define to .
1655
1656 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
1657
1658         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
1659         top-level detects, except when in-tree ld is being cross-built.
1660         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
1661         then AS only if target is host.
1662         * configure: Rebuilt.
1663
1664 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
1665
1666         * global.c (global_alloc): Call make_accurate_live_analysis.
1667         (record_one_conflict): Remove dead code.
1668         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
1669         (bb_info): New structure.
1670         (BB_INFO, BB_INFO_BY_INDEX): New macros.
1671         (allocate_bb_info, free_bb_info, mark_reg_change,
1672         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
1673         modify_bb_reg_pav, calculate_reg_pav,
1674         make_accurate_live_analysis): New functions.
1675
1676 2004-05-25  Devang Patel  <dpatel@apple.com>
1677
1678         * alias.c (init_alias_analysis): Use ggc_calloc instead of
1679         xrealloc.
1680         (end_alias_analysis): Use ggc_free instead fo free.
1681
1682 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
1683
1684         PR target/15546
1685         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
1686         as needed to be outputted.
1687
1688 2004-05-25  Jan Hubicka  <jh@suse.cz>
1689
1690         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
1691
1692 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
1693         Mostafa Hagog  <mustafa@il.ibm.com>
1694
1695         * Makefile.in (modulo-sched.o, ddg.o): New.
1696         * ddg.h, ddg.c, modulo-sched.c: New files.
1697         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
1698         internals to "dupicate_insn".
1699         (duplicate_insn): New function.
1700         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
1701         declarations.
1702         * common.opt (fmodulo-sched): New flag.
1703         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
1704         Remove static and forward declaration.
1705         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
1706         functions.
1707         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
1708         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
1709         declarations.
1710         * flags.h (flag_modulo_sched): New flag.
1711         * opts.c (common_handle_option): Handle modulo-sched flag.
1712         * params.def (max-sms-loop-number, sms-max-ii-factor,
1713         sms-dfa-history, sms-loop-average-count-threshold): New
1714         parameters.
1715         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
1716         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
1717         parameters.
1718         * passes.c ("sms", "sms-vcg"): New dumps.
1719         (rest_of_handle_sched): Call sms_schedule.
1720         * rtl.h (sms_schedule): New declaration.
1721         * timevar.def (TV_SMS): New.
1722         * toplev.c (flag_modulo_sched): Initialize.
1723         (f_options): Handle -fmodulo-sched option.
1724         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
1725         * docs/passes.texi: Document new SMS pass.
1726
1727 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
1728
1729         * Makefile.in (OBJS): Add rtlhooks.o.
1730         (rtlanal.o): Depend on function.h.
1731         (cse.o): Depend on rtlhooks-def.h.
1732         (combine.o): Depend on rtlhooks-def.h.
1733         (rtlhooks.o): New rule.
1734         * combine.c: Include rtlhooks-def.h.
1735         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
1736         num_sign_bit_copies, cached_num_sign_bit_copies,
1737         num_sign_bit_copies1): Move most of the code to rtlanal.c.
1738         (reg_nonzero_bits_for_combine,
1739         reg_num_sign_bit_copies_for_combine): New functions holding
1740         the remnants of the above.
1741         (combine_rtl_hooks): New.
1742         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
1743         * cse.c: Include rtlhooks-def.h.
1744         (cse_rtl_hooks): New.
1745         (cse_main): Set rtl_hooks instead of gen_lowpart.
1746         * emit-rtl.c (gen_lowpart): Remove.
1747         (gen_lowpart_general): Move to rtlhooks.c.
1748         * rtl.h (nonzero_bits, num_sign_bit_copies,
1749         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
1750         (gen_lowpart_general): Remove.
1751         (gen_lowpart): Temporarily redefine as a macro.
1752         * rtlanal.c: Include function.h.
1753         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
1754         num_sign_bit_copies, cached_num_sign_bit_copies,
1755         num_sign_bit_copies1): New, from combine.c.
1756         * rtlhooks.c: New file.
1757
1758 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
1759
1760         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
1761         to support 32-bit -mint8 mode.
1762
1763         * doc/invoke.texi (-mint8): Added documentation for the -mint8
1764         option in the AVR architecture.
1765
1766 2004-05-24  Mike Stump  <mrs@apple.com>
1767
1768         * doc/install.texi: Document that dejagnu 1.4.4 is required.
1769
1770 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
1771
1772         * intl.h (open_quote, close_quote): New.
1773         * intl.c (open_quote, close_quote): New.
1774         (gcc_init_libintl): Set them.
1775         * pretty-print.c: Include "intl.h".
1776         (pp_base_format_text): Support 'q' format flag and %` and %'
1777         formats.  Use ' instead of ` in comments.
1778         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
1779         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
1780         foramt_types_orig): Describe these new formats.
1781         (decode_format_attr, check_function_format,
1782         check_format_info_main): Use these new formats.
1783         (status_warning): Use ATTRIBUTE_GCC_DIAG.
1784         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
1785         check these formats to 3.5.
1786
1787 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1788
1789         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
1790         (BACKEND): Reflect this.
1791         (LIBDEPS): Move CPPLIB before LIBIBERTY.
1792         (LIBS): Likewise.
1793
1794 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
1795
1796         PR tree-optimization/14197
1797         * builtins.c: Include "tree-gimple.h"
1798         (readonly_data_expr): Use get_base_address.  Make sure to call
1799         decl_readonly_section only on trees it can handle.
1800         * tree-gimple.c (get_base_address): Accept STRING_CST and
1801         CONSTRUCTOR expressions.
1802         * Makefile.in: Update dependencies.
1803
1804 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
1805
1806         Move libcpp to the toplevel.
1807         * Makefile.in: Remove references to libcpp files,
1808         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
1809         and change hashtable.h to that.
1810         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
1811         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
1812         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
1813         * configure: Regenerate.
1814         * config.in: Regenerate.
1815         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
1816         * cppcharset.c: Removed.
1817         * cpperror.c: Removed.
1818         * cppexp.c: Removed.
1819         * cppfiles.c: Removed.
1820         * cpphash.c: Removed.
1821         * cpphash.h: Removed.
1822         * cppinit.c: Removed.
1823         * cpplex.c: Removed.
1824         * cpplib.c: Removed.
1825         * cpplib.h: Removed.
1826         * cppmacro.c: Removed.
1827         * cpppch.c: Removed.
1828         * cpptrad.c: Removed.
1829         * cppucnid.h: Removed.
1830         * cppucnid.pl: Removed.
1831         * cppucnid.tab: Removed.
1832         * hashtable.c: Removed.
1833         * hashtable.h: Removed.
1834         * line-map.c: Removed.
1835         * line-map.h: Removed.
1836         * mkdeps.c: Removed.
1837         * mkdeps.h: Removed.
1838         * stringpool.h: Include symtab.h instead of hashtable.h.
1839         * tree.h: Include symtab.h instead of hashtable.h.
1840         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
1841
1842 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
1843
1844         * gcc.c (struct prefix_list): Add forward declaration.
1845         (do_spec_path): New function, extracted from...
1846         (do_spec_1) <'D'>: ... here.  Drop support for
1847         SPACE_AFTER_L_OPTION.
1848         (do_spec_1) <'I'>: Use do_spec_path.
1849         (process_command): Do not store the 'include' suffix
1850         in include_prefixes.
1851         * system.h: Poison SPACE_AFTER_L_OPTION.
1852
1853 2002-05-23  Roger Sayle  <roger@eyesopen.com>
1854
1855         * fold-const.c (non_lvalue): Explicitly list the tree codes that
1856         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
1857
1858 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
1859
1860         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
1861         Update based on printed manual.  Enable setting of offsets for
1862         FSFPRINT and move it to gcc-common.texi.
1863         * doc/gcc.texi: Update FSF printing details.
1864         * doc/gccint.texi: Remove FSF printing details.
1865
1866 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
1867
1868         * config/rs6000/t-rs6000: Remove the disabling -Werror.
1869
1870 2004-05-22  Roger Sayle  <roger@eyesopen.com>
1871
1872         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
1873         expand_builtin_strrchr, expand_builtin_strpbrk,
1874         expand_builtin_mempcpy, expand_builtin_memcmp,
1875         expand_builtin_strcmp, expand_builtin_strncmp,
1876         expand_builtin_strcat, std_expand_builtin_va_start,
1877         std_expand_builtin_va_arg, expand_builtin_va_copy,
1878         expand_builtin_signbit, fold_builtin_cabs,
1879         fold_builtin_logarithm, fold_builtin_mempcpy,
1880         fold_builtin_signbit, fold_builtin_isascii,
1881         fold_builtin_toascii, fold_builtin_isdigit,
1882         fold_builtin_1, build_function_call_expr,
1883         simplify_builtin_strchr, simplify_builtin_strrchr,
1884         simplify_builtin_strpbrk, simplify_builtin_strncpy,
1885         simplify_builtin_memcmp, simplify_builtin_strcmp,
1886         simplify_builtin_strncmp, simplify_builtin_strncat,
1887         simplify_builtin_strspn, simplify_builtin_strcspn,
1888         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
1889         to build with calls to build2, build3 or omit_one_operand.
1890
1891 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
1892
1893         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
1894         section when generating EABI code.
1895
1896 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
1897
1898         PR 15546
1899         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
1900         Call mark_decl_referenced on the SYMBOL_REF_DECL.
1901
1902 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
1903
1904         * c-common.c (c_common_truthvalue_conversion): Handle
1905         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
1906         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
1907         i.e. set the type to truthvalue_type_node and return.
1908
1909 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
1910
1911        * tree.h (struct tree_decl): Add possibly_inlined bit.
1912         (DECL_POSSIBLY_INLINED): New accessor macro.
1913         * cgraph.h: Remove declaration of cgraph_inline_hash.
1914         * cgraph.c: Remove definition of cgraph_inline_hash.
1915         (hash_node): Revert to hashing DECL_UID.
1916         (eq_node): Take two pointers to cgraph_node structures.
1917         Compare DECL_UIDs.
1918         (cgraph_remove_node): Pass the node directly to htab_find_slot.
1919         (cgraph_varpool_hash_node): Rename hash_varpool_node;
1920         hash on DECL_UID.
1921         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
1922         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
1923         (cgraph_node): Allocate a temporary node on the stack, fill in
1924         its DECL field, and pass that to htab_find_slot.
1925         (cgraph_varpool_node): Likewise.
1926         (cgraph_function_possibly_inlined_p): If global info is ready,
1927         return the DECL_POSSIBLY_INLINED bit.
1928         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
1929         instead of mucking with cgraph_inline_hash.
1930
1931 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1932
1933         * doc/contrib.texi: Add g77 contributors.
1934
1935 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
1936
1937         * calls.c (initialize_argument_information): Forbid sibcalls if a
1938         callee-copied argument is stored in the current function's frame.
1939
1940 2004-05-22  Eric Christopher  <echristo@redhat.com>
1941
1942         * fix-header.c (read_scan_file): Update for add_path change.
1943
1944 2004-05-22  Ben Elliston  <bje@au.ibm.com>
1945
1946         * c.opt (Wmissing-include-dirs): New.
1947         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
1948         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
1949         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
1950         * c-incpath.h (add_path): Add fourth (bool) argument.
1951         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
1952         (add_standard_paths): Likewise.
1953         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
1954         is used and the directory was user-supplied via -I.
1955         (add_path): Set p->user_supplied_p.  Remove duplicated code by
1956         using add_cpp_dir_path ().
1957         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
1958         (struct cpp_dir): Add user_supplied_p.
1959         * doc/invoke.texi (Warning Options): Document new option.
1960
1961 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
1962
1963         * fold-const.c (fold_read_from_constant_string): Convert result to
1964         requested type.
1965
1966 2004-05-21  Richard Henderson  <rth@redhat.com>
1967
1968         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
1969         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
1970         Don't mark VA_ARG_EXPRs volatile here.
1971         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
1972
1973 2004-05-21  Richard Henderson  <rth@redhat.com>
1974
1975         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
1976         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
1977
1978 2004-05-21  Roger Sayle  <roger@eyesopen.com>
1979
1980         * fold-const.c (fold, fold_relational_hi_lo,
1981         nondestructive_fold_binary_to_constant,
1982         fold_read_from_constant_string): Use fold_convert instead of convert.
1983         * builtins.c (simplify_builtin, simplify_builtin_strstr,
1984         simplify_builtin_strchr, simplify_builtin_strrchr,
1985         simplify_builtin_strpbrk): Use fold_convert instead of convert.
1986
1987 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
1988
1989         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
1990         is NULL.
1991
1992 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
1993
1994         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
1995         override sparc.h definition.
1996
1997 2004-05-20  Roger Sayle  <roger@eyesopen.com>
1998
1999         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2000         get_unwidened, get_narrower): Replace build with build2.
2001         * fold-const.c (negate_expr, associate_trees, size_binop,
2002         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2003         pedantic_omit_one_operand, distribute_bit_expr,
2004         make_bit_field_ref, optimize_bit_field_compare,
2005         decode_field_reference, range_binop, make_range,
2006         build_range_check, fold_range_test, fold_truthop,
2007         optimize_minmax_comparison, extract_muldiv_1,
2008         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2009         fold_inf_compare, fold_single_bit_test, fold,
2010         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2011         Likewise replace build with either build2 or build3.
2012
2013 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
2014
2015         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2016         * calls.c (prepare_call_address): Don't test
2017         NO_RECURSIVE_FUNCTION_CSE.
2018         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2019         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2020         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2021         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2022         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2023         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2024         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2025         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2026         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2027         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2028         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2029         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2030         Likewise.
2031         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2032         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2033         * doc/tm.texi (Costs): Remove documentation for
2034         NO_RECURSIVE_FUNCTION_CSE.
2035
2036 2004-05-20  Paul Brook  <paul@codesourcery.com>
2037
2038         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2039         * unwind-dw2.c (extract_cie_info): Ditto.
2040         (_Unwind_FrameState): Change retaddr_column to word type.
2041
2042 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2043
2044         PR middle-end/3074
2045         * fold-const.c (strip_compound_expr): Delete function.
2046         (count_cond): Delete function.
2047         (fold_binary_op_with_conditional_arg): Only perform transformations
2048         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2049         when a is constant.  This greatly simplifies this routine.
2050
2051         * tree.c (saved_expr_p): Delete function.
2052         * tree.h (saved_expr_p): Delete function prototype.
2053
2054 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2055
2056         * common.opt (ftree-loop-optimize): Remove.
2057
2058 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
2059
2060         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2061         (NM_FOR_TARGET): Use := and $(shell).
2062         (mainversion): Remove unused variable.
2063
2064 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2065
2066         * reorg.c (delete_from_delay_slot): If we have a barrier after the
2067         sequence containing the insn to be deleted, always reemit it.
2068
2069 2004-05-20  Richard Henderson  <rth@redhat.com>
2070
2071         PR 15454
2072         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2073         * function.c (expand_function_start): Expand static_chain_decl by hand.
2074         * gimplify.c (create_tmp_var_name): Export.
2075         * tree-gimple.h (create_tmp_var_name): Declare.
2076
2077 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2078
2079         * rs6000.c (print_operand) <case 'z'>: Call
2080         mark_decl_referenced before assemble_name.
2081
2082 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
2083
2084         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2085         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2086         (cgraph_varpool_node): Hash on the pointer to the decl, not
2087         the DECL_UID.  Fixes 64-bit bootstrap failure.
2088
2089 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
2090
2091         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2092         we don't earlyclobber operands used in the second insn.
2093
2094 2004-05-20  Steven Bosscher  <stevenb@suse.de>
2095
2096         * tree-mudflap.c: Formatting fixes.
2097
2098 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2099
2100         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2101         * gengtype.c (open_base_files): Include reload.h in ifiles.
2102         * reload.h (reg_equiv_memory_loc_varray): Declare.
2103         * reload1.c (reg_equiv_memory_loc_varray): New variable.
2104         (init_reload): Initialize it.
2105         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2106         reg_equiv_memory_loc_varray to size 0.
2107         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2108         growing reg_equiv_memory_loc_varray to the desired size.
2109         * passes.c (rest_of_handle_old_regalloc): Likewise.
2110         * reload.c: Amend comment on calling init_reload.
2111
2112 2004-05-20  Nick Clifton  <nickc@redhat.com>
2113
2114         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2115         with 'TRAMP' in the body of the macro definition.
2116
2117 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2118
2119         PR target/15383
2120         * config/ia64/ia64.c (ia64_expand_compare): Don't check
2121         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2122         cmptf_libfunc isn't set.
2123         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2124         conventions.
2125         (ia64_sysv4_init_libfuncs): New.
2126
2127         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2128         ia64_sysv4_init_libfuncs.
2129
2130 2004-05-20  Falk Hueffner  <falk@debian.org>
2131
2132         PR other/15526
2133         * libgcc2.c (__mulvsi3): Fix overflow test.
2134
2135 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
2136
2137         PR c/14171
2138         * reg-stack.c (nan): Rename to ...
2139         (not_a_num): Here.
2140         (reg_to_stack): Rename nan to not_a_num.
2141         (subst_stack_regs_pat): Likewise.
2142         (convert_regs_entry): Likewise.
2143         (convert_regs_1): Likewise.
2144
2145         * tree-cfg.c (find_case_label_for_value): Replace call to
2146         simple_cst_equal with tree_int_cst_equal.
2147
2148 2004-05-19  Jeff Law <law@redhat.com>
2149
2150         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2151         If the operand is for a use, then strip away the SSA_NAME, do not
2152         strip away the SSA_NAME for a set.  Never call release_ssa_name.
2153         (mark_def_sites): Appropriately pass additional argument to
2154         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
2155         then set the VDEF_RESULT to the VDEF_OP.
2156         (set_def_block): Strip away any SSA_NAME to get to the real
2157         underlying variable.
2158
2159         * tree-ssa-phiopt.c (value_replacement): Handle the case where
2160         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2161         BB directly.
2162
2163 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2164
2165         PR c++/15463
2166         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
2167         result of inverse.
2168
2169         PR rtl-optimization/15274
2170         * loop-iv.c (determine_max_iter, shorten_into_mode,
2171         iv_number_of_iterations): Handle constants correctly.
2172         * rtl.h (get_mode_bounds): Declaration changed.
2173         * stor-layout.c (get_mode_bounds): Return a constant suitable for
2174         the target mode.
2175
2176         PR rtl-optimization/14692
2177         * loop-unswitch.c (may_unswitch_on): Try folding the result.
2178         (unswitch_single_loop): Work correctly when may_unswitch_on
2179         returns a folded constant.
2180
2181         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2182         * simplify-rtx.c (simplify_const_relational_operation): Optimize
2183         comparisons with mode bounds.
2184
2185         * function.c (struct temp_slot): Add new field prev.
2186         (free_after_compilation, init_temp_slots): Free new fields.
2187         (cut_slot_from_list, insert_slot_to_list,
2188         temp_slots_at_level, max_slot_level, move_slot_to_level,
2189         make_slot_available): New functions.
2190         (assign_stack_temp_for_type, combine_temp_slots,
2191         find_temp_slot_from_address, preserve_temp_slots,
2192         preserve_rtl_expr_result, free_temp_slots,
2193         free_temps_for_rtl_expr, pop_temp_slots): Work with
2194         the new structure of lists.
2195         (mark_all_temps_used): Removed.
2196         * function.h (struct function): Field x_temp_slots
2197         replaced by x_used_temp_slots and x_avail_temp_slots.
2198         (temp_slots): Replaced by ...
2199         (used_temp_slots, avail_temp_slots): New.
2200         * tree.h (mark_all_temps_used): Declaration removed.
2201
2202         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2203         simplify_using_assignment): Take the expression out of
2204         the expr_list wrapper.
2205
2206         * loop-iv.c (iv_number_of_iterations): Improve clasification of
2207         infinite loops.
2208
2209 2004-05-19  Roger Sayle  <roger@eyesopen.com>
2210
2211         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2212         costs should be based on code size when optimizing for size.
2213
2214 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
2215
2216         * fold-const.c: Remove non-printable character 160.
2217
2218 2004-05-19  Nick Clifton  <nickc@redhat.com>
2219
2220         * doc/invoke.texi (ARM Options): Fix typo.
2221         Remove descrption of -mshort-load-bytes and
2222         -mno-short-load-bytes.
2223
2224         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2225         missing parenthesis.
2226         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2227         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2228
2229 2004-05-19  Steven Bosscher  <stevenb@suse.de>
2230
2231         * expr.c (store_constructor): Build loop start and end by hand
2232         instead of via loop functions from stmt.c.
2233         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2234         Remove the code to expand them.
2235
2236         * stmt.c (loop_stack): Remove this and everything related.
2237         (struct nesting, enum nesting_desc): Update.
2238         (expand_fixup): Likewise.
2239         (expand_loop_start, expand_start_loop_continue_elsewhere,
2240         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2241         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
2242         expand_exit_loop_if_false, expand_exit_loop_top_cond,
2243         expand_exit_something): Remove.
2244         * tree.h: Remove prototypes.
2245
2246 2004-05-18  Mike Stump  <mrs@apple.com>
2247             Devang Patel  <dpatel@apple.com>
2248
2249         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
2250         if this label is for eh.
2251         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
2252         * config/darwin.c (darwin_emit_unwind_label): Likewise.
2253         * dwarf2out.c (output_call_frame_info): Likewise.
2254         * output.h (default_emit_unwind_label): Likewise.
2255         * target.h (unwind_label): Likewise.
2256         * varasm.c (default_emit_unwind_label): Likewise.
2257
2258         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2259         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
2260         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
2261         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
2262         DEBUG_RANGES_SECTION): Define.
2263
2264 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
2265
2266         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2267         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2268         (cgraph_varpool_node):
2269         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
2270         (cgraph_function_possibly_inlined_p): Use the decl itself for
2271         the key, not DECL_ASSEMBLER_NAME.
2272         (change_decl_assembler_name): No need to muck with the hash tables.
2273         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
2274         Delete.
2275         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
2276         for the key, not DECL_ASSEMBLER_NAME.
2277         * cgraph.h: Remove prototypes of deleted functions.
2278         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
2279         (mark_decl_referenced): New function.
2280         * tree.h: Prototype mark_decl_referenced.
2281         * final.c (output_addr_const) <case SYMBOL_REF>: Call
2282         mark_decl_referenced before assemble_name.
2283         * c-decl.c (finish_decl): Use mark_decl_referenced.
2284
2285 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
2286             Jeff Law <law@redhat.com>
2287
2288         * tree-ssa-phiopt.c (abs_replacement): New function.
2289         (empty_block_p): New function extracted from...
2290         (candidate_bb_for_phi_optimization): Break out empty block test.
2291         (conditional_replacement): Use empty_block_p.
2292         (value_replacement): Similarly.
2293
2294         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
2295         * tree-ssa-phiopt.c: Include flags.h.
2296         (conditional_replacement): Remove argument names from prototype.
2297         Minor formatting and comment fixes.
2298         (tree_ssa_phiopt): If conditional_replacement returns false, then
2299         call value_replacement.
2300         (value_replacement): New function.
2301
2302 2004-05-18  Jeff Law  <law@redhat.com>
2303
2304         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
2305         from conditional_replacement.
2306         (candidate_bb_for_phi_optimization): Similarly.
2307         (conditional_replacement): Use replace_phi_with_stmt and
2308         candidate_bb_for_phi_optimization.
2309
2310         * tree-ssa-phiopt.c: Fix various formatting issues.
2311
2312 2004-05-18  Steven Bosscher  <stevenb@suse.de>
2313
2314         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
2315         s390_expand_cmpmem): Do not use expand_start_loop and
2316         expand_end_loop, instead build the loop manually.
2317
2318 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
2319
2320         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
2321         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
2322
2323 2004-05-17  Jeff Law  <law@redhat.com>
2324
2325         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
2326         * flags.h (flag_delete_null_pointer_checks): Here.
2327         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
2328         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
2329         (add_phi_arg, remove_phi_arg_num): Similarly.
2330         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
2331         property into PHI nodes.
2332         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
2333         (record_equivalences_from_phis): If all PHI arguments are known to be
2334         nonzero, then the result must be nonzero as well.
2335         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
2336         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
2337         appropriately.  Walk the USE-DEF chains and propagate nonzero property
2338         as appropriate.
2339         * tree.h (PHI_ARG_NONZERO): Define.
2340         (phi_arg_d): Add nonzero flag.
2341
2342 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
2343
2344         * f: Entire directory removed
2345
2346         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
2347         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
2348         (g77_integer_type_node, g77_uinteger_type_node)
2349         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
2350         * c-common.c (c_common_nodes_and_builtins): Do not initialize
2351         the above set of variables.
2352
2353         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
2354         * doc/invoke.texi, doc/standards.texi: Remove cross-references
2355         to g77 manual.
2356
2357 2004-05-17  Steven Bosscher  <stevenb@suse.de>
2358
2359         PR tree-optimization/15438
2360         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
2361         attributed functions as pure or const.
2362
2363 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
2364
2365         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
2366         from source code with errors.
2367
2368 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
2369
2370         Enable tree browser for all front ends.
2371         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
2372         (BACKEND): ...to here.
2373
2374 2004-05-17  Jan Hubicka  <jh@suse.cz>
2375
2376         * i386.c (construct_container): Do not produce BLKmode registers.
2377         (classify_argument): Properly compute alignment of complex types.
2378
2379 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
2380
2381         PR target/15084
2382         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
2383         and renamed to movdi_insv_1_rex64.
2384         (insv): Support SImode for 32bit and DImode for 64bit.
2385
2386 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2387
2388         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
2389         (TARGET_SWITCHES): Remove debugg.
2390         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
2391         TARGET_64BIT.
2392         (subdi3): Replace the define_expand with a define_insn, the latter
2393         renamed from subdi3_internal_3.
2394         (negdi2): Likewise negdi2_internal_2.
2395         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
2396         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
2397         and associated define_splits.
2398         (adddi3_internal): Renamed from adddi3_internal_3.
2399         (ashldi3_internal): Likewise ashldi3_internal4.
2400         (ashrdi3_internal): Likewise ashrdi3_internal4.
2401         (lshrdi3_internal): Likewise lshrdi3_internal4.
2402
2403 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2404
2405         * optabs.c (expand_unop): Try implementing negation using subtraction
2406         from zero.
2407
2408 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2409
2410         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
2411         SAR register.
2412
2413 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
2414
2415         PR target/10982
2416         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
2417         (ne_zeroextractsi_shifted): New pattern.
2418         (ite_ne_zeroextractsi): New pattern.
2419         (ite_ne_zeroextractsi_shifted): New pattern.
2420
2421 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2422
2423         * c-gimplify.c (c_genericize):
2424         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
2425         * c-parse.in <expr_no_commas>: Likewise.
2426         <if_prefix>: Likewise.
2427         <select_or_iter_stmt>: Likewise.
2428         * expr.c (expand_var, expand_expr_real_1): Likewise.
2429         * expr.h (expand_expr): Make it a static inline function.
2430         Move prototype for expand_expr_real up before this.
2431         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
2432         Likewise.
2433         * gimplify.c (gimple_boolify, gimplify_addr_expr,
2434         gimplify_asm_expr, gimplify_expr): Likewise.
2435         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
2436         dump_function_to_file): Likewise.
2437         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
2438         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
2439         * tree-into-ssa.c (dump_tree_ssa): Likewise.
2440         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
2441         Likewise.
2442         * tree-optimize.c (execute_one_pass): Likewise.
2443         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
2444         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
2445
2446         * objc/objc-act.c (objc_build_try_enter_fragment,
2447         objc_build_try_epilogue, objc_build_catch_stmt,
2448         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
2449         with lang_hooks.foo ().
2450
2451 2004-05-15  Roger Sayle  <roger@eyesopen.com>
2452
2453         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
2454         that simplify_builtin doesn't destructively modify its argument.
2455
2456 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2457
2458         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
2459         implementations for ARM and Thumb.
2460         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
2461
2462 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
2463
2464         * prefix.c (update_path): Replace PREFIX with KEY only
2465         when it matches a full directory name in PATH.
2466
2467 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2468
2469         * arm.h (TARGET_APCS_32): Delete.
2470         (TARGET_MMU_TRAPS): Delete.
2471         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
2472         define __APCS_26__.
2473         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
2474         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
2475         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
2476         (prog_mode_type): Delete.
2477         (PROMOTE_MODE): Always promote unsigned for HImode.
2478         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
2479         (MASK_RETURN_ADDR): Simplify.
2480         * arm.c (arm_prgmode): Delete.
2481         (arm_override_options, arm_gen_rotated_half_load): Simplify.
2482         (print_multi_reg, output_return_instruction): Simplify.
2483         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
2484         (arm_return_addr): Simplify.
2485         * arm.md (prog_mode): Delete.
2486         (conds): Simplify.
2487         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
2488         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
2489         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
2490         (loadhi_shiftpredec): Delete.
2491         (peephole for post-increment on HImode load): Delete.
2492         * arm/crtn.asm: (FUNC_END): Simplify.
2493         * arm/lib1funcs.asm: Remove APCS-26 return macros.
2494         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
2495         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
2496         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
2497         MULTILIB_DEFAULTS as required.
2498         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
2499         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
2500         variables as required.
2501         * doc/invoke.texi (ARM Options): Remove obsolete flags.
2502
2503 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
2504
2505         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
2506         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
2507         count to 8 to handle n_reg > 2.
2508
2509 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2510
2511         * doc/extend.texi: Update WG14 URL.
2512
2513 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2514
2515         * basic-block.h (life_analysis, delete_noop_moves):
2516         Update prototypes.
2517         * bt-load.c (branch_target_load_optimize): Don't take the
2518         insns stream as an argument.  Update the life_analysis calls.
2519         * combine.c (combine_instructions): Update delete_noop_moves
2520         calls.
2521         * flow.c (notice_stack_pointer_modification): Don't take the
2522         insns stream as an argument.  Work on the flow graph.
2523         (life_analysis): Likewise.
2524         (delete_noop_moves): Likewise.
2525         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
2526         (rest_of_handle_life): Update life_analysis call.
2527         (rest_of_compilation): Likewise, and also update
2528         branch_target_load_optimize call.
2529         * ra.c (reg_alloc): Update life_analysis call.
2530         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
2531         the insns stream as an argument.
2532         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
2533         call.
2534         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
2535         prototypes.
2536         * value-profile.c (branch_prob): Update life_analysis call.
2537         * web.c (web_main): Work on the CFG, not on the insns stream.
2538
2539         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
2540         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
2541         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2542
2543 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2544
2545         PR c/15444
2546         * c-format.c (avoid_dollar_number): New function.
2547         (check_format_info_main): Call avoid_dollar_number when operand
2548         numbers might occur but has_operand_number == 0.
2549
2550 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
2551
2552         * arm.md (all peephole2 patterns): Use predicates that validate
2553         register classes as appropriate.
2554
2555 2004-05-14  Steven Bosscher  <stevenb@suse.de>
2556
2557         PR opt/14472
2558         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
2559         ignore type conversions that do not inhibit tail calling.
2560         (find_tail_calls): Likewise.
2561
2562 2004-05-14  Jeff Law  <law@redhat.com>
2563
2564         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
2565         bother marking bypassed virtuals for out-of-ssa.  Instead merge
2566         bypassed virtuals into vars_to_rename just before into-ssa pass.
2567
2568         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
2569         so that it picks up more opportunities to eliminate ABS expressions
2570         or turn them into negations.
2571
2572 2004-05-14  Steven Bosscher  <stevenb@suse.de>
2573
2574         * passes.c (rest_of_handle_null_pointer): Remove.
2575         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
2576         (rest_of_compilation): Likewise.
2577         * rtl.h (delete_null_pointer_checks): Remove prototype.
2578         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
2579         Remove declarations.
2580         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
2581         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
2582         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
2583         expr_reaches_here_p, computing_insn, def_reaches_here_p,
2584         can_disregard_other_sets, handle_avail_expr, classic_gcse,
2585         one_classic_gcse_pass, invalidate_nonnull_info,
2586         delete_null_pointer_checks_1, delete_null_pointer_checks,
2587         expr_reached_here_p_work): Remove.
2588         (gcse_main): Do not perform classic GCSE when optimizing for size.
2589         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
2590         are never used.
2591
2592 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
2593
2594         PR optimization/14466
2595         * tree-complex.c (make_temp): Remove.
2596         (gimplify_val): Replace make_temp with make_rename_temp
2597         and add NULL as the second argument.
2598         (expand_complex_div_wide): Likewise.
2599         * tree-dfa.c (make_rename_temp): New function.
2600         * tree-flow.h (make_rename_temp): Declare.
2601         * tree-sra.c (make_temp): Remove.
2602         (lookup_scalar): Replace make_temp with make_rename_temp.
2603         (create_scalar_copies): Likewise.
2604         * tree-ssa-phiopt.c (conditional_replacement): When we
2605         get non gimple create a temporary variable to hold the
2606         casted expression.
2607
2608 2004-05-14  Paul Brook  <paul@codesourcery.com>
2609
2610         * stor-layout.c (update_alignment_for_field): Use
2611         targetm.align_anon_bitfield.
2612         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
2613         (TARGET_INITIALIZER): Use it.
2614         * target.h (struct gcc_target): Add align_anon_bitfield.
2615         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
2616         (TARGET_ALIGN_ANON_BITFIELD): Define.
2617         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
2618
2619 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
2620
2621         * tree.def (documentation): Remove mention of class 'b'.
2622         (BLOCK): Now in class 'x'.
2623         * c-common.c (verify_tree): Remove case 'b'.
2624         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
2625         * calls.c (calls_function_1): Control cannot get past the switch
2626         when exp is a BLOCK.
2627         * print-tree.c (print_node): Move code for class 'b' to the class
2628         'c'/'x' switch, as case BLOCK.
2629         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
2630         (unsafe_for_reeval, substitute_placeholder_in_expr)
2631         (stabilize_reference_1): Remove case 'b'.
2632         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
2633         of something being 'b' to tests for TREE_CODE of something being
2634         BLOCK.
2635         * tree-ssa-operands.c (get_expr_operands): Likewise.
2636
2637 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2638
2639         * tree-gimple.c: Rename from tree-simple.c.
2640         * tree-gimple.h: Rename from tree-simple.h.
2641         * c-gimplify.c: Rename from c-simplify.c
2642         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
2643         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
2644         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
2645         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
2646         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
2647         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
2648         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
2649         Update.
2650
2651 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
2652
2653         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
2654
2655 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2656
2657         * tree-ssa.c (delete_tree_ssa): XFREE
2658         bitmaps allocated with BITMAP_XMALLOC.
2659
2660         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
2661         idfs_cache at the end of the function.
2662
2663         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
2664         at the end of the function.
2665
2666         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
2667         el at the end of the function.
2668
2669         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
2670         bitmaps allocated with BITMAP_XMALLOC.
2671
2672         * loop-unswitch.c (unswitch_single_loop): Free bbs at
2673         the end.
2674
2675         * final.c (shorten_branches): Free uid_shuid before
2676         reallocating it.
2677
2678         * bb-reoder.c (connect_traces): Free cold_traces at the end.
2679
2680 2004-05-13  Jeff Law  <law@redhat.com>
2681
2682         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
2683         variables.  Simplify slightly by using USE_OP/DEF_OP instead
2684         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
2685
2686         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
2687         rather than iterating through the blocks testing each bit in
2688         livein to initialize the worklist.
2689         (mark_def_sites): Remove useless checks of KILLS for virtual
2690         operands.
2691
2692         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
2693         new parameters for the statement and variable worklist as well
2694         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
2695         worklist recording interesting variables in the variable worklist
2696         and bitmap.  Handle casts between integral and boolean types.
2697         (substitute_single_use_vars): Accept new parameters for the statement
2698         and variable worklist.  When a substitution is made add a new
2699         entry to the statement worklist.  Handle casts between integral
2700         and boolean types.
2701         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
2702         worklists to children.  Iterate until the statement worklist
2703         is empty.
2704
2705 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2706
2707         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
2708         the end of the block.
2709
2710         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
2711         with BITMAP_XMALLOC.
2712
2713         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
2714         with BITMAP_XMALLOC.
2715
2716         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2717         Free nonzero_vars at the end of the function.
2718
2719         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
2720         need to generate code instead of a NOP_EXPR.
2721
2722 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
2723
2724         * gcc.c (default_compilers): Fill out initializers for new Fortran
2725         entries.
2726
2727 2004-05-13  Paul Brook  <paul@codesourcery.com>
2728
2729         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
2730
2731 2004-05-13  Paul Brook  <paul@codesourcery.com>
2732
2733         * config/arm/arm.c (arm_default_short_enums): New function.
2734         (TARGET_DEFAULT_SHORT_ENUMS): Define.
2735
2736 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2737
2738         Merge from tree-ssa-20020619-branch.
2739
2740         * Makefile.in (reload1.o-warn): Add.
2741         (tree-alias-ander.o-warn): Add.
2742         (GMPLIBS): Define.
2743         (GMPINC): Define.
2744         (BANSHEELIB): Define.
2745         (BANSHEEINC): Define.
2746         (TREE_DUMP_H): Define.
2747         (TREE_SIMPLE_H): Define.
2748         (TREE_FLOW_H): Define.
2749         (LIBDEPS): Add BANSHEELIB.
2750         (INCLUDES): Add BANSHEEINC and GMPINC.
2751         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
2752         c-mudflap.o and c-pretty-print.o.
2753         (C_OBJS): Remove c-pretty-print.o.
2754         (OBJS-common): Remove sibcall.o.
2755         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
2756         tree-ssa.o, tree-optimize.o, tree-simple.o,
2757         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
2758         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
2759         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
2760         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
2761         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
2762         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
2763         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
2764         tree-tailcall.o, gimple-low.o, tree-iterator.o,
2765         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
2766         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
2767         tree-profile.o.
2768         (OBJC-archive): Add tree-nomudflap.o.
2769         (cc1): Add dependency on @TREEBROWSER@.
2770         (c-decl.o): Add dependency on TREE_DUMP_H.
2771         (c-dump.o): Likewise.
2772         (c-common.o): Add dependency on tree-iterator.h
2773         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
2774         (gtype-desc.o): Add dependency on TREE_FLOW_H.
2775         (tree.o): Add dependency on tree-iterator.h,
2776         BASIC_BLOCK_H and TREE_FLOW_H.
2777         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
2778         (langhooks.o): Add dependency on TREE_SIMPLE_H.
2779         (tree-alias-type.o, tree-alias-ander.o,
2780         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
2781         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
2782         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
2783         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
2784         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
2785         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
2786         tree-nested.o, tree-iterator.o, tree-dfa.o,
2787         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
2788         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
2789         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
2790         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
2791         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
2792         tree-sra.o, tree-complex.o, tree-profile.o,
2793         rtl-profile.o): New rules.
2794         (function.o): Add dependency on basic-block.h
2795         (expr.o): Add dependency on tree-iterator.h.
2796         (sibcall.o): Remove.
2797         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
2798         (cfg.o): Add dependency on TIMEVAR_H.
2799         (cfghooks.o): Add dependency on TREE_FLOW_H.
2800         (reg-stack.o): Add dependency on basic-block.h.
2801         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
2802         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
2803         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
2804         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
2805         tree-alias-type.h, tree-alias-common.h,
2806         tree-alias-type.c, tree-alias-common.c,
2807         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
2808         rtl-profile.c and tree-nested.c.
2809         (gt-tree-alias-common.h, gt-tree-mudflap.h,
2810         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
2811         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
2812         gt-tree-cfg.h, gt-tree-nested.h): New rules.
2813         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
2814         * basic-block.h: Include predict.h
2815         (struct edge_def): Add GTY marker.
2816         Change field 'insns' to be a union of tree and rtx.
2817         (EDGE_TRUE_VALUE): Define.
2818         (EDGE_FALSE_VALUE): Define.
2819         (EDGE_EXECUTABLE): Define.
2820         (struct bb_ann_d): Forward declare.
2821         (struct basic_block_def): Add GTY marker.
2822         Remove fields head_tree and end_tree.
2823         Add fields stmt_list, rbi and tree_annotations.
2824         (struct reorder_block_def): Define.
2825         (basic_block_info): Add GTY marker.
2826         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
2827         variables instead of macros.
2828         (flow_call_edges_add): Remove declaration.
2829         (make_eh_edge): Remove declaration.
2830         (brief_dump_cfg, find_edge, tree_predicted_by_p,
2831         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
2832         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
2833         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
2834         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
2835         (try_redirect_by_replacing_jump): Modfiy return type to
2836         edge instead of bool.
2837         * bb-reorder.c (copy_bb): Call duplicate_block
2838         instead of cfg_layout_duplicate_bb.
2839         (copy_bb_p): Call can_duplicate_block_p instead of
2840         cfg_layout_can_duplicate_bb_p.
2841         * bitmap.c (bitmap_first_set_bit): Abort if word
2842         wasn't found.
2843         (bitmap_last_set_bit): Likewise.
2844         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
2845         (DEF_FUNCTION_TYPE_3): Add.
2846         * builtins.c (c_strlen): Make extern.
2847         (builtin_save_expr): New.
2848         (expand_builtin_nonlocal_goto): New.
2849         (expand_builtin_constant_p): Remove.
2850         (expand_builtin_mathfn): Call builtin_save_expr instead
2851         of save_expr.
2852         (expand_builtin_mathfn_2): Likewise.
2853         (expand_builtin_strcmp): Likewise.
2854         (expand_builtin_strncmp): Likewise.
2855         (expand_builtin_strcat): Likewise.
2856         (fold_builtin_cabs): Likewise.
2857         (expand_builtin_alloca): Don't trigger if -fmudflap is
2858         given.
2859         (build_string_literal): Set TREE_INVARIANT on new node.
2860         (expand_builtin_profile_fun): New.
2861         (round_trampoline_addr): New.
2862         (expand_builtin_init_trampoline): New.
2863         (expand_builtin_adjust_trampoline): New.
2864         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
2865         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
2866         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
2867         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
2868         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
2869         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
2870         Handle.
2871         (fold_builtin_expect): New.
2872         (fold_builtin_isascii): Don't return non-constant results
2873         in GIMPLE form.
2874         (fold_builtin_isdigit): Likewise.
2875         (fold_builtin_1): New.
2876         (fold_builtin): Call it.
2877         (build_function_call_expr): Update call to build a new
2878         CALL_EXPR.
2879         (purge_builtin_constant_p): Remove.
2880         (simplify_builtin, simplify_builtin_memcmp,
2881         simplify_builtin_strcmp, simplify_builtin_strncmp,
2882         simplify_builtin_strpbrk, simplify_builtin_strstr,
2883         simplify_builtin_strchr, simplify_builtin_strrchr,
2884         simplify_builtin_strcat, simplify_builtin_strncat,
2885         simplify_builtin_strspn, simplify_builtin_strcspn,
2886         simplify_builtin_next_arg, simplify_builtin_va_start,
2887         simplify_builtin_sprintf): New.
2888         * builtins.def (BUILT_IN_STACK_ALLOC,
2889         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
2890         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
2891         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
2892         BUILT_IN_PROFILE_FUNC_EXIT): Define.
2893         * c-common.c: Include tree-iterator.h and hashtab.h.
2894         (lang_statement_code_p): Declare.
2895         (lang_gimplify_stmt): Declare.
2896         (fix_string_type): Set TREE_INVARIANT for value.
2897         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
2898         (c_type_hash): New.
2899         (c_common_get_alias_set): Handle multiple type nodes
2900         referring to "the same" type, currently for C90 only.
2901         (c_add_case_label): Use create_artificial_label.
2902         (finish_label_address_expr): Don't set TREE_CONSTANT on
2903         result.
2904         (c_expand_expr): Don't handle STMT_EXPR.
2905         (handle_alias_attribute): Marke aliased variables to be
2906         TREE_STATIC.
2907         (handle_nonnull_attribute): Initialize arg_num.
2908         (check_function_nonnull): Likewise.
2909         (c_walk_subtrees): New.
2910         (c_estimate_num_insns_1): Don't handle
2911         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
2912         (c_decl_uninit_1): Remove.
2913         (c_decl_uninit): Remove.
2914         (c_warn_unused_result): New.
2915         * c-common.def (ASM_STMT): Change number of operands
2916         to 4.
2917         (FILE_STMT): Remove.
2918         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
2919         Remove.
2920         (lang_gimplify_stmt): Add.
2921         (expand_stmt): Remove.
2922         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
2923         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
2924         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
2925         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
2926         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
2927         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
2928         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
2929         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
2930         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
2931         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
2932         genrtl_compound_stmt, genrtl_asm_stmt,
2933         genrtl_cleanup_stmt, c_decl_uninit): Remove.
2934         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
2935         c_tree_chain_matters_p, c_warn_unused_result,
2936         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
2937         Declare.
2938         * c-convert.c (convert): Make convert work when
2939         converting to compatible types across translation unit.
2940         * c-decl.c: Include langhooks.h, tree-mudflap.h,
2941         tree-simple.h, diagnostic.h and tree-dump.h
2942         (merge_decls): Initialize oldtype to NULL.
2943         (finish_decl): Use DECL_HARD_REGISTER instead of
2944         DECL_C_HARD_REGISTER.
2945         (check_bitfield_type_and_width): Check for null
2946         lang_type_specific when check the precision of an enum.
2947         (grokdeclarator): Immediately layout an ARRAY_TYPE used
2948         in a pointer-to-array declarator.
2949         (finish_struct): Clear allocated struct lang_type.
2950         (finish_enum): Set enum_min and enum_max.  Set
2951         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
2952         not to the enumerators.
2953         (set_decl_nonlocal): New.
2954         (store_parm_decls): Use it via walk_tree.
2955         (c_finalize): New.
2956         (finish_function): When !targetm.have_ctors_dtors,
2957         record static constructors and destructors here...
2958         (c_expand_body_1): ... not here.
2959         (c_expand_decl): Rename from c_expand_decl_stmt.
2960         Handle all C-specific expansion semantics.
2961         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
2962         STMT_LINENO.
2963         * c-format.c (handle_format_arg_attribute): Initialize
2964         format_num.
2965         * c-lang.c: Include tree-inline.h
2966         (LANG_HOOKS_EXPAND_DECL,
2967         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2968         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
2969         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
2970         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
2971         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
2972         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
2973         (c_types_compatible_p): New.
2974         * c-mudflap.c: New file.
2975         * c-objc-common.c: Include tree-mudflap.h
2976         (start_cdtor, finish_cdtor): Collapse
2977         together into
2978         (build_cdtor): ...here.  Update to construct a complete tree
2979         for the function.  No need to call push_scope, pop_scope, or
2980         clear_last_expr, or set current_function_cannot_inline.
2981         (c_missing_noreturn_ok_p): Change prototype to return
2982         bool.
2983         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
2984         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
2985         opts.c.
2986         (c_common_post_options): Don't ever use rtl inlining.
2987         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
2988         * c-pragma.c (handle_pragma_redefine_extname): Define
2989         always.
2990         (init_pragma): Activate #pragma redefine_extname for mudflap.
2991         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
2992         (pp_c_initializer): Accept any type CONSTRUCTOR.
2993         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
2994         COMPLEX_TYPE.
2995         (decl_name_str): New local function.
2996         (pp_c_direct_declarator): Call it.
2997         (pp_c_primary_expression): Call it.
2998         (pp_c_id_expression): Call it.
2999         (pp_c_statement): Call it.
3000         (print_c_tree): Create new pp object.
3001         * c-pretty-print.h (pp_c_tree_decl_identifier,
3002         print_c_tree): Declare.
3003         * c-semantics.c: Include langhooks.h
3004         (lang_expand_stmt, lang_expand_decl_stmt,
3005         find_reachable_label_1, find_reachable_label,
3006         expand_unreachable_if_stmt, expand_unreachable_stmt,
3007         genrtl_do_stmt_1): Remove.
3008         (begin_stmt_tree): Don't check for changed filename.
3009         Call annotate_with_locus.
3010         (finish_stmt_tree): Don't set line for end of function.
3011         (build_stmt): Don't check type nodes for
3012         side effects.
3013         (build_stmt): Set TREE_SIDE_EFFECTS.
3014         Set EXPR_LOCUS instead of STMT_LINENO.
3015         (lang_expand_stmt, lang_expand_decl_stmt,
3016         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3017         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3018         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3019         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3020         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3021         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3022         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3023         find_reachable_label_1, expand_unreachable_if_stmt,
3024         expand_unreachable_stmt): Remove.
3025         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3026         * c-simplify.c: New file.
3027         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3028         (struct lang_type): Add fields enum_min and enum_max.
3029         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3030         (c_expand_decl, c_missing_noreturn_ok_p,
3031         c_types_compatible_p): Declare.
3032         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3033         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3034         (default_function_array_conversion): Rely on build to
3035         set TREE_CONSTANT.
3036         (parser_build_binary_op, pointer_diff): Likewise.
3037         (build_unary_op, build_binary_op): Likewise.
3038         (build_array_ref):
3039         (build_external_ref): Set TREE_INVARIANT.
3040         (build_c_cast, pop_init_level): Likewise.
3041         (process_init_element): Use ASM_VOLATILE_P.
3042         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3043         (c_finish_case): Call c_do_switch_warnings.
3044         * c.opt (fdump-): Remove.
3045         * calls.c (try_to_integrate): Remove.
3046         (prepare_call_address): Replace fndecl arg with a
3047         precomputed static chain value.
3048         (emit_call_1): New argument for full call expr.
3049         (flags_from_decl_or_type): Call special_function_p.
3050         (initialize_argument_information): Add argument
3051         may_tailcall.
3052         (purge_reg_equiv_notes): New.
3053         (expand_call): Do not try to expand calls inline.
3054         (fixup_tail_calls): New.
3055         * cfg.c: Include timevar.h and ggc.h.
3056         (bb_pool, edge_pool): Remove.
3057         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3058         (entry_exit_blocks): Remove.
3059         (rbi_pool): Declare.
3060         (init_flow): Do not create pools.
3061         Allocate entry/exit block.
3062         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3063         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3064         (unlink_block): Clear b->prev_bb and b->next_bb.
3065         (compact_blocks): Clear all slots of BASIC_BLOCK array.
3066         (dump_flow_info): Work on trees too.
3067         (dump_cfg_bb_info): New.
3068         (brief_dump_cfg): New.
3069         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3070         (find_edge): New.
3071         * cfgbuild.c (rtl_make_eh_edge): Rename from
3072         make_eh_edge.  Update all users.
3073         (find_basic_blocks): Don't call VARRAY_FREE on
3074         basic_block_info.
3075         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3076         and newpos2.
3077         (delete_unreachable_blocks): Return changed status.
3078         (merge_seq_blocks): New.
3079         * cfghooks.c: Include tree-flow.h
3080         (tree_register_cfg_hooks, ir_type): New.
3081         (redirect_edge_and_branch): Change return type to edge.
3082         (predict_edge, predicted_by_p, can_duplicate_block_p,
3083         duplicate_block, block_ends_with_call_p,
3084         block_ends_with_condjump_p, flow_call_edges_add): New.
3085         * cfghooks.h (redirect_edge_and_branch): Change return
3086         type to edge.
3087         (predict_edge, predicted_by_p, can_duplicate_block_p,
3088         duplicate_block, block_ends_with_call_p,
3089         block_ends_with_condjump_p, flow_call_edges_add): Declare.
3090         (redirect_edge_and_branch): Change return type to edge.
3091         (struct cfg_hooks): Add fields block_ends_with_call_p,
3092         block_ends_with_condjump_p, flow_call_edges_add,
3093         predict_edge, predicted_by_p, can_duplicate_block_p and
3094         duplicate_block.
3095         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3096         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3097         (fixup_reorder_chain): Use initialize_bb_rbi.
3098         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3099         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3100         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3101         (insn_locators_initialize): Use new info about blocks.
3102         * cfglayout.h (typedef struct reorder_block_def): Moved to
3103         basic_block.h.
3104         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3105         removed.
3106         * cfgloop.c: Include tree.h and tree-flow.h.
3107         * cfgloop.h (create_loop_notes): Declare.
3108         * cfgloopmanip.c (create_loop_notes): New.
3109         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3110         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3111         and duplicate_block fields.
3112         (create_basic_block_structure): Don't look at
3113         RTX_INTEGRATED_P.
3114         (rtl_block_ends_with_call_p): New.
3115         (rtl_block_ends_with_condjump_p): New.
3116         (need_fake_edge_p): Moved from cfganal.c.
3117         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3118         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3119         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3120         (cfg_layout_rtl_cfg_hooks): Ditto.
3121         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3122         functions to be reachable.
3123         * cgraphunit.c (decide_is_function_needed):
3124         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3125         inline functions don't need to be output.
3126         (cgraph_assemble_pending_functions): Don't do anything
3127         special for nested functions.
3128         (cgraph_mark_functions_to_output): Likewise.
3129         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3130         (cgraph_analyze_function): Use estimate_num_insns.
3131         (cgraph_mark_functions_to_output): Likewise.
3132         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3133         (cgraph_expand_function): Allow functions to not be
3134         emitted.
3135         (cgraph_remove_unreachable_nodes):
3136         (cgraph_recursive_inlining_p): Simplify.
3137         (lookup_recursive_calls,
3138         cgraph_decide_recursive_inlining): New.
3139         (cgraph_decide_inlining_*): Update calls of
3140         cgraph_mark_inline.
3141         * combine.c (get_pos_from_mask): Always set *plen.
3142         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3143         ftree-based-profiling, ftree-ccp, ftree-ch,
3144         ftree-combine-temps, ftree-copyrename, ftree-dce,
3145         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3146         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3147         ftree-lrs): Add.
3148         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3149         Undefine.
3150         * configure.ac: Add --enable-tree-browser option.
3151         Add --with-libbanshee option.
3152         Add GMPLIBS and GMPINC.
3153         * configure: Regenerate.
3154         * coverage.c (tree_ctr_tables): New.
3155         (coverage_counter_alloc): Use it.
3156         (build_ctr_info_value): Ditto.
3157         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
3158         (tree_coverage_counter_ref): New.
3159         * coverage.h (coverage_counter_ref): Remove declaration.
3160         (rtl_coverage_counter_ref): Declare.
3161         (tree_coverage_counter_ref): Declare.
3162         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3163         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3164         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3165         (struct cse_basic_block_data): Rename enum values to not
3166         conflict with profile.h; update all uses.
3167         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3168         in comments.
3169         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3170         * diagnostic.h (debug_output_buffer, dump_generic_node,
3171         print_generic_stmt, print_generic_stmt_indented,
3172         print_generic_expr, print_generic_decl,
3173         debug_generic_expr, debug_generic_stmt, debug_c_tree):
3174         Declare.
3175         * dominance.c: Cache immediate dominators.
3176         * domwalk.c: New file.
3177         * domwalk.h: New file.
3178         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3179         (gen_subprogram_die): Generate a DIE for a named
3180         return value.
3181         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3182         (add_location_or_const_value_attribute): Likewise.
3183         (add_bound_info): Likewise.
3184         (gen_decl_die): Likewise.
3185         * emit-rtl.c (maybe_set_first_label_num): New.
3186         (copy_most_rtx): Don't copy the integrated flag.
3187         Copy the new return_val flag.
3188         * et-forest.c (MAX_NODES): Define.
3189         (record_path_before_1): Abort if len is greater than
3190         MAX_NODES.
3191         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3192         gen_eh_region_catch, gen_eh_region_allowed,
3193         gen_eh_region_must_not_throw, get_eh_region_number,
3194         get_eh_region_may_contain_throw, get_eh_region_tree_label,
3195         set_eh_region_tree_label, expand_resx_expr): New.
3196         (expand_eh_region_start, expand_start_catch): Use them.
3197         (expand_end_catch): Tidy.
3198         (note_eh_region_may_contain_throw): Take region argument.
3199         (note_current_region_may_contain_throw): New.
3200         (get_exception_filter): Export.
3201         (collect_eh_region_array): Export.
3202         (remove_unreachable_regions): Check ERT_TRY based on reachability
3203         of catches, not reachability of continue_label.  Never remove
3204         ERT_MUST_NOT_THROW regions.
3205         (collect_rtl_labels_from_trees): New.
3206         (convert_from_eh_region_ranges): Use it.
3207         (connect_post_landing_pads): Handle dying cleanups.
3208         (struct reachable_info): Add callback data.
3209         (add_reachable_handler): Invoke the callback.
3210         (foreach_reachable_handler): New.
3211         (reachable_handlers): Use it.
3212         (arh_to_landing_pad, arh_to_label): New.
3213         (can_throw_internal_1): Split out from can_throw_internal.
3214         (can_throw_external_1): Similarly.
3215         * except.h: Update.
3216         * explow.c (emit_stack_save): Remove savearea mode check.
3217         (update_nonlocal_goto_save_area): New.
3218         (allocate_dynamic_stack_space): Use it.
3219         (probe_stack_range): Never emit loop notes.
3220         * expmed.c (extract_fixed_bit_field): Always propagate the
3221         target for the shift if it is a REG.
3222         * expr.c: Include tree-iterator.h
3223         (is_zeros_p): Remove.
3224         (categorize_ctor_elements_1, categorize_ctor_elements): New.
3225         (count_type_elements): New.
3226         (mostly_zeros_p): Use them.
3227         (expr_wfl_stack): Remove.
3228         (convert_move): Do nothing if to and from are the same.
3229         (emit_block_move_via_loop): Don't emit LOOP notes.
3230         (emit_move_insn): Don't handle CONSTANT_P_RTX.
3231         (emit_move_insn_1): Don't generate inline warnings.
3232         (expand_vars, expand_var): Split from ...
3233         (expand_expr_1): ... here.
3234         (expand_expr_real, expand_expr_real_1):  Use new macros
3235         EXPR_LOCATION and EXPR_HAS_LOCATION.
3236         * expr.h (simplify_builtin_fputs,
3237         simplify_builtin_strcpy, simplify_builtin_strncpy,
3238         expand_var, fixup_tail_calls,
3239         update_nonlocal_goto_save_area): Declare.
3240         (lookup_static_chain, expand_inline_function,
3241         mark_seen_cases): Remove.
3242         (prepare_call_address): Change type of 2nd argument to
3243         rtx.
3244         * final.c (profile_function): Update static chain test.
3245         (final): Don't look at RTX_INTEGRATED_P.
3246         * flags.h (flag_mudflap, flag_mudflap_threads,
3247         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
3248         flag_tree_dce, flag_tree_combine_temps,
3249         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
3250         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
3251         flag_tree_points_to): Declare.
3252         (enum pta_type): Declare.
3253         * flow.c (lang_missing_noreturn_ok_p): Remove.
3254         (check_function_return_warnings): Remove.
3255         (update_life_info): Update comments.
3256         (free_basic_block_vars): Don't call VARRAY_FREE for
3257         basic_block_info.
3258         (regno_uninitialized): Remove.
3259         * fold-const.c (int_const_binop): Make extern.
3260         (non_lvalue): Rely on build to set TREE_CONSTANT.
3261         (operand_equal_p): Replace only_const argument with
3262         flags.  Allow pure functions if OEP_PURE_SAME.
3263         (fold): Use OEP_ONLY_CONST.
3264         (invert_truthvalue) <NOP_EXPR> Break if argument is of
3265         boolean type.
3266         (fold_relational_hi_lo,
3267         nondestructive_fold_binary_to_constant,
3268         nondestructive_fold_unary_to_constant,
3269         fold_read_from_constant_string): New.
3270         * function.c (struct function): Remove calls_constant_p.
3271         (current_function_calls_constant_p): Remove.
3272         (inline_function_decl): Remove.
3273         (put_var_into_stack): Don't use it.
3274         (fix_lexical_addr): Likewise.
3275         (inline_function_decl): Remove extern declaration.
3276         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
3277         (trampolines_created): Move to varasm.c.
3278         (free_after_compilation): Update for removed fields.
3279         (allocate_struct_function): Likewise.
3280         (delete_handlers, lookup_static_chain): Remove.
3281         (fix_lexical_addr): Don't consider non-local variable refs.
3282         (trampoline_address): Remove.
3283         (round_trampoline_addr): Move to builtins.c.
3284         (adjust_trampoline_addr): Remove.
3285         (expand_function_start): Update for changes to static chain
3286         and nonlocal goto handling.
3287         (initial_trampoline): Move to varasm.c.
3288         (expand_function_end): Don't build trampolines or kill
3289         unreferenced nonlocal goto labels.
3290         (free_after_compilation): Don't set it.
3291         (expand_function_end): Likewise.
3292         (setjmp_vars_warning): Rename from
3293         uninitialized_vars_warning, remove uninitialized vars warning.
3294         (uninitialized_vars_warning): Remove old comment
3295         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
3296         and do not call the langhook.
3297         (expand_function_start, expand_function_end): Don't do
3298         function instrumentation here.
3299         (clear_block_marks): Rename from reorder_blocks_0, export.
3300         (blocks_nreverse): Export.
3301         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
3302         of rtl.
3303         (reset_block_changes, record_block_change, finalize_block_changes,
3304         check_block_change, free_block_changes): New functions.
3305         (assign_parms): Setting of current_function_stdarg
3306         moved ...
3307         (allocate_struct_function): ... here.
3308         * function.h (struct function): Remove x_nonlocal_labels,
3309         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
3310         x_context_display, x_trampoline_list, needs_context.
3311         Add static_chain_decl, nonlocal_goto_save_area.
3312         (struct function): Remove x_clobber_return_insn.
3313         Add tail_call_emit field, last_label_uid,
3314         unexpanded_var_list, dont_emit_block_notes,
3315         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
3316         (clear_block_marks): Declare.
3317         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
3318         (mfwrap_spec, mflib_spec): Declare.
3319         (cpp_unique_options, cc1_options): Ditto.
3320         (default_compilers): Add .F and .f90.
3321         (static_specs): Add mfwrap and mflib.
3322         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
3323         CONSTANT_RTX_P.
3324         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
3325         Update to match insns field in struct edge_def.
3326         * gdbinit.in (pgs, pge): Define.
3327         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
3328         instead of the integrated flag.
3329         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
3330         * gengtype-yacc.y (bitfieldlen): Add empty action.
3331         (struct_fields): Accept unnamed bitfields.
3332         (bitfieldlen): Split from ...
3333         (bitfieldopt): ... here.
3334         * gengtype.c (ifiles): Add tree-alias-type.h and
3335         tree-flow.h.
3336         * genrecog.c (validate_pattern): Do not handle
3337         CONSTANT_P_RTX.
3338         * gimple-low.c: New file.
3339         * gimplify.c: New file.
3340         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
3341         (restore_line_notes): Do not set RTX_INTEGRATED_P.
3342         * ifcvt.c (dead_or_predicable): Initialize local variable
3343         'earliest'.
3344         * input.h (expr_wfl_stack): Remove.
3345         * integrate.c (INTEGRATE_THRESHOLD): Remove.
3346         (setup_initial_hard_reg_value_integration): Likewise.
3347         (initialize_for_inline): Likewise.
3348         (note_modified_parmregs): Likewise.
3349         (integrate_parm_decls): Likewise.
3350         (process_reg_param): Likewise.
3351         (save_parm_insns): Likewise.
3352         (copy_insn_list): Likewise.
3353         (copy_insn_notes): Likewise.
3354         (compare_blocks): Likewise.
3355         (find_block): Likewise.
3356         (inlining): Likewise.
3357         (function_cannot_inline_p): Likewise.
3358         (parmdecl_map): Likewise.
3359         (in_nonparam_insns): Likewise.
3360         (save_for_inline): Likewise.
3361         (FIXED_BASE_PLUS): Likewise.
3362         (expand_inline_function): Likewise.
3363         (copy_rtx_and_substitute): Don't look at map->integrating,
3364         map->inline_target, and inlining, since we are never copying
3365         for integrating.
3366         Don't abort on RTX_INTEGRATED_P.
3367         (old_fun): Remove.
3368         (output_inline_function): Remove.
3369         * integrate.h (struct inline_map): Remove fields integrating,
3370         block_map, leaf_reg_map, inline_target, and local_return_label.
3371         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
3372         copy_loop_headers, never_reached_warning): Removed.
3373         (any_uncondjump_p): Reject nonlocal goto.
3374         * langhooks-def.h (lhd_types_compatible_p,
3375         lhd_expand_decl, lhd_gimplify_expr): Declare.
3376         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3377         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3378         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3379         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3380         LANG_HOOKS_GIMPLIFY_EXPR,
3381         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
3382         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3383         LANG_HOOKS_GIMPLIFY_EXPR,
3384         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
3385         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
3386         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
3387         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3388         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
3389         LANG_HOOKS_DECL_UNINIT,
3390         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
3391         * langhooks.c: Include tree-simple.h.
3392         (lhd_expand_decl): New.
3393         (lhd_types_compatible_p): New.
3394         (lhd_decl_uninit): Remove.
3395         (lhd_gimplify_expr): New.
3396         * langhooks.h (struct lang_hooks_for_rtl_expansion):
3397         Remove.
3398         (struct lang_hooks_for_functions): Add field
3399         missing_noreturn_ok_p.
3400         (struct lang_hooks): Add field expand_decl,
3401         types_compatible_p, gimplify_expr and
3402         gimple_before_inlining.
3403         Remove fields decl_uninit and rtl_expand
3404         * opts.c (decode_options): Set flag_tree_ccp,
3405         flag_tree_dce, flag_tree_dom, flag_tree_dse,
3406         flag_tree_pre, flag_tree_ter,
3407         flag_tree_live_range_split, flag_tree_sra,
3408         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
3409         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
3410         OPT_fmudflapth, OPT_fmudflapir,
3411         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
3412         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
3413         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
3414         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
3415         OPT_ftree_points_to_ and OPT_ftree_pre.
3416         * output.h (regno_uninitialized, find_basic_blocks,
3417         cleanup_cfg, delete_unreachable_blocks,
3418         check_function_return_warnings): Remove.
3419         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
3420         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
3421         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
3422         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
3423         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
3424         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
3425         Define.
3426         * passes.c (rest_of_decl_compilation):
3427         (rest_of_handle_sibling_calls): Remove.
3428         (rest_of_handle_inlining): Remove.
3429         (rest_of_handle_gcse): Do not run
3430         purge_builtin_constant_p.
3431         (rest_of_compilation): Update.
3432         Do not call copy_loop_headers.
3433         Do rtl-based profiling only when
3434         !flag_tree_based_profiling.  Register rtl-based profiling
3435         hooks.
3436         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
3437         (predicted_by_p): Rename to ...
3438         (rtl_predicted_by_p): .. this one; make global
3439         (tree_predicted_by_p): New.
3440         (dump_prediction): Add FILE argument.
3441         (predict_edge): Rename to ...
3442         (rtl_predict_edge): .. this one.
3443         (tree_predict_edge): New.
3444         (combine_predictions_for_insn): Update calls of predict_edge.
3445         (predict_loops): Break out from ...
3446         (estimate_probability): ... here; update comments; move updating
3447         of unknown probabilities from ...
3448         (estimate_bb_frequencies): ... here.
3449         (combine_predictions_for_bb): New.
3450         (tree_predict_by_opcode): New.
3451         (tree_estimate_probability): New.
3452         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
3453         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
3454         * predict.h: Add include guard.
3455         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
3456         * pretty-print.c (pp_write_text_to_stream): Make extern.
3457         * pretty-print.h (pp_write_text_to_stream): Declare.
3458         * print-rtl.c (print_rtx): Don't print the integrated flag.
3459         Print the return_val flag.
3460         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
3461         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
3462         Remove support for EXPR_WITH_FILE_LOCATION nodes.
3463         (print_node): Print TREE_INVARIANT and TREE_VISITED.
3464         * profile.c: Include cfghooks.h, tree-flow.h.
3465         (profile_hooks): New.
3466         (profile_dump_file): New.
3467         (instrument_edges): Use hooks instead of RTL-specific code.
3468         (instrument_values): Ditto.
3469         (get_exec_counts): Ditto.
3470         (compute_branch_probabilities): Ditto.
3471         (compute_value_histograms): Ditto.
3472         (branch_prob): Ditto.
3473         (find_spanning_tree): Ditto.
3474         (end_branch_prob): Ditto.
3475         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
3476         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
3477         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
3478         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
3479         (tree_register_profile_hooks): New.
3480         (rtl_register_profile_hooks): New.
3481         * ra-rewrite.c (rewrite_program): Clear variable info.
3482         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
3483         * regs.h: Add include guards.
3484         * reload.c (decompose): Clear val using memset.
3485         * rtl.def (CONSTANT_P_RTX): Remove.
3486         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
3487         (copy_loop_headers): Remove.
3488         (struct rtx_def): Replace the integrated flag with the
3489         return_val flag.
3490         (maybe_set_first_label_num): Declare.
3491         (init_branch_prob): Move declaration to value-prof.h.
3492         (end_branch_prob): Ditto.
3493         (branch_prob): Ditto.
3494         (never_reached_warning): Don't declare it.
3495         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
3496         (hoist_insn_to_edge): Update to match field insns in
3497         struct edge_def.
3498         * sbitmap.c (sbitmap_realloc): New.
3499         * sbitmap.h (sbitmap_realloc): Declare.
3500         * sibcall.c: Remove file.
3501         * simplify-rtx.c (simplify_rtx): Do not handle
3502         CONSTANT_P_RTX.
3503         * stmt.c (parse_output_constraint): Don't warn for read-write
3504         memory operand.
3505         (tail_recursion_args): Use types_compatible_p langhook.
3506         (force_label_rtx): Don't look at inline_function_decl.
3507         (label_rtx): Set LABEL_PRESERVE_P appropriately.
3508         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
3509         (declare_nonlocal_label): Remove.
3510         (expand_goto): Don't handle nonlocal gotos.
3511         (expand_nl_handler_label): Remove.
3512         (expand_nl_goto_receivers): Remove.
3513         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
3514         update_nonlocal_goto_save_area.
3515         (expand_expr_stmt_value): Check TREE_NO_WARNING.
3516         (warn_if_unused_value): Likewise.
3517         (expand_start_loop, expand_loop_continue_here,
3518         expand_end_loop): Don't create loop notes.
3519         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
3520         mark_seen_cases, check_for_full_enumeration_handling): Remove.
3521         (expand_end_case_type): Don't do warn_switch handling.
3522         (pushcase, pushcase_range) Update add_case_node calls.
3523         (add_case_node): Add dont_expand_label argument.
3524         (same_case_target_p): Don't search rtl.
3525         (expand_start_bindings_and_block, expand_end_bindings):
3526         Don't emit block notes when dont_emit_block_notes.
3527         (using_eh_for_cleanups_p): Export.
3528         (expand_return): Allow any typed rhs.
3529         (expand_stack_alloc): New.
3530         (expand_stack_save, expand_stack_restore): New.
3531         (containing_blocks_have_cleanups_or_stack_level): New
3532         function.
3533         (asm_op_is_mem_input): New fn.
3534         (expand_asm_expr): New fn.
3535         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
3536         nodes.
3537         * stor-layout.c (layout_type): Just return if type is
3538         error_mark_node.
3539         (update_alignment_for_field): Export.
3540         (variable_size): We don't care about global_bindings_p if
3541         the frontend doesn't want a list of the expressions.
3542         * system.h: Poison INTEGRATE_THRESHOLD.
3543         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
3544         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
3545         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
3546         TV_TREE_SSA_OTHER, TV_TREE_OPS,
3547         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
3548         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
3549         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
3550         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
3551         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
3552         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
3553         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
3554         TV_CONTROL_DEPENDENCES): Define.
3555         * toplev.c: Include tree-alias-common.h
3556         (current_file_decl, flag_mudflap, flag_mudflap_threads,
3557         flag_mudflap_ignore_reads, flag_tree_based_profiling,
3558         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
3559         flag_tree_dce, flag_tree_ch, flag_tree_sra,
3560         flag_tree_combine_temps, flag_tree_ter,
3561         flag_tree_live_range_split, flag_tree_dom,
3562         flag_tree_copyrename, flag_tree_dse): Declare.
3563         (f_options): Add tree-based-profiling, tree-gvn,
3564         tree-pre, tree-ccp, tree-dce,
3565         tree-dominator-opts, tree-copyrename, tree-dse,
3566         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
3567         (wrapup_global_declarations): Don't output nested inlined functions.
3568         (general_init): Call init_tree_optimization_passes.
3569         (process_options): Sorry for -ftree-based-profiling plus
3570         -ftest-coverage or -fprofile-values.
3571         * toplev.h (init_tree_optimization_passes,
3572         flag_tree_based_profiling): Declare.
3573         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
3574         * tree-alias-ander.c: New file.
3575         * tree-alias-ander.h: New file.
3576         * tree-alias-common.c: New file.
3577         * tree-alias-common.h: New file.
3578         * tree-alias-type.c: New file.
3579         * tree-alias-type.h: New file.
3580         * tree-browser.c: New file.
3581         * tree-browser.def: New file.
3582         * tree-cfg.c: New file.
3583         * tree-complex.c: New file.
3584         * tree-dfa.c: New file.
3585         * tree-dump.c (dump_enable_all): New.
3586         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
3587         (dump_node): Remove const from field suffix and swtch.
3588         (dump_files): Add null entry, .generic, .nested, .vcg,
3589         .xml and a match-all entry.
3590         (extra_dump_files, extra_dump_files_in_use,
3591         extra_dump_files_alloced): Declare
3592         (dump_option_value_info): Add raw, details, stats,
3593         blocks, vops, lineno, uid and all.
3594         (dump_register): New.
3595         (get_dump_file_info): New.
3596         (dump_begin): Call it.
3597         Do nothing for TDI_none.
3598         (dump_begin): Include phase number in dump filename.
3599         (dump_enable_all): New.
3600         (dump_switch_p_1): Split out from dump_switch_p.
3601         (dump_switch_p): Handle extra_dump_files.
3602         Start our scan at TDI_none + 1.
3603         If -fdump-tree-all was given, call dump_enable_all.
3604         * tree-dump.h: Include splay-tree.h.
3605         (dump_function, dump_function_to_file, dump_register):
3606         Declare.
3607         * tree-eh.c: New file.
3608         * tree-flow-inline.h: New file.
3609         * tree-flow.h: New file.
3610         * tree-inline.c: Re-write to handle inlining on GIMPLE.
3611         * tree-inline.h (walk_tree,
3612         walk_tree_without_duplicates): Move to tree.h.
3613         (estimate_num_insns): Declare.
3614         * tree-into-ssa.c: New file.
3615         * tree-iterator.c: New file.
3616         * tree-iterator.h: New file.
3617         * tree-mudflap.c: New file.
3618         * tree-mudflap.h: New file.
3619         * tree-nested.c: New file.
3620         * tree-nomudflap.c: New file.
3621         * tree-nrv.c: New file.
3622         * tree-optimize.c (dump_flags, vars_to_rename,
3623         in_gimple_form, all_passes, pass_gimple,
3624         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
3625         (execute_gimple, execute_rebuild_bind,
3626         gate_all_optimizations, execute_del_cfg,
3627         register_one_dump_file, register_dump_files, dup_pass_1,
3628         init_tree_optimization_passes, execute_todo,
3629         execute_one_pass, execute_pass_list): New.
3630         (clear_decl_rtl): Remove.
3631         (tree_rest_of_compilation): Update to use tree
3632         optimizers.
3633         * tree-outof-ssa.c: New file.
3634         * tree-pass.h: New file.
3635         * tree-phinodes.c: New file.
3636         * tree-pretty-print.c: New file.
3637         * tree-profile.c: New file.
3638         * tree-simple.c: New file.
3639         * tree-simple.h: New file.
3640         * tree-sra.c: New file.
3641         * tree-ssa-alias.c: New file.
3642         * tree-ssa-ccp.c: New file.
3643         * tree-ssa-copy.c: New file.
3644         * tree-ssa-copyrename.c: New file.
3645         * tree-ssa-dce.c: New file.
3646         * tree-ssa-dom.c: New file.
3647         * tree-ssa-dse.c: New file.
3648         * tree-ssa-forwprop.c: New file.
3649         * tree-ssa-live.c: New file.
3650         * tree-ssa-live.h: New file.
3651         * tree-ssa-loop.c: New file.
3652         * tree-ssa-operands.c: New file.
3653         * tree-ssa-operands.h: New file.
3654         * tree-ssa-phiopt.c: New file.
3655         * tree-ssa-pre.c: New file.
3656         * tree-ssa.c: New file.
3657         * tree-ssanames.c: New file.
3658         * tree-tailcall.c: New file.
3659         * tree.c: Include tree-iterator.h, basic-block.h and
3660         tree-flow.h.
3661         (tree_node_kind): Add phi_nodes and ssa names.
3662         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
3663         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
3664         (make_node_stat): Handle PHI_NODE and SSA_NAME.
3665         <'c'> Set TREE_INVARIANT.
3666         (copy_node_stat): Abort if trying to copy a
3667         STATEMENT_LIST.
3668         Clear TREE_VISITED.
3669         Clear annotation field.
3670         (build_constructor): Copy TREE_INVARIANT from vals.
3671         Don't clear TREE_CONSTANT.
3672         (expr_first, expr_last, expr_length): Remove.
3673         (staticp): Pass unknown component references to the language.
3674         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
3675         (skip_simple_arithmetic): Likewise.
3676         (stabilize_reference_1): Likewise.
3677         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
3678         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
3679         STATEMENT_LIST.
3680         (lhd_unsave_expr_now): Remove.
3681         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
3682         (recompute_tree_invarant_for_addr_expr): New.
3683         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
3684         Call recompute_tree_invarant_for_addr_expr.
3685         Set TREE_INVARIANT accordingly.
3686         (build2_stat): Don't handle CALL_EXPR.
3687         (build3_stat): Don't call build2_stat for CALL_EXPRs.
3688         (build_expr_wfl): Remove.
3689         (annotate_with_file_line, annotate_with_locus): New.
3690         (simple_cst_equal): Call simple_cst_list_equal to compare
3691         CONSTRUCTOR_ELTS pointers.
3692         (iterative_hash_expr): Don't hash types associated
3693         with conversions.  Instead hash on the signedness of the
3694         toplevel object and the operand of the conversion.
3695         (dump_tree_statistics): Call ssanames_print_statistics
3696         and phinodes_print_statistics.
3697         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
3698         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
3699         needs_to_live_in_memory): New.
3700         (initializer_zerop): Handle VECTOR_CST.  Don't check
3701         AGGREGATE_TYPE_P for CONSTRUCTOR.
3702         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
3703         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
3704         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
3705         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
3706         (CALL_EXPR): Add another operand.
3707         (EXPR_WITH_FILE_LOCATION): Remove.
3708         (SWITCH_EXPR): Add another operand.
3709         * tree.h: Update various comments.
3710         (union tree_ann_d): Forward declare.
3711         (struct tree_common): Add fields nowarning_flag,
3712         invariant_flag and visited.
3713         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
3714         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
3715         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
3716         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
3717         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
3718         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
3719         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
3720         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
3721         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
3722         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
3723         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
3724         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
3725         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
3726         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
3727         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
3728         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
3729         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
3730         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
3731         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
3732         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
3733         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
3734         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
3735         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
3736         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
3737         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
3738         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
3739         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
3740         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
3741         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
3742         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
3743         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
3744         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
3745         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
3746         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
3747         TDF_UID,): Define.
3748         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
3749         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
3750         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
3751         EXPR_WFL_SET_LINECOL): Remove.
3752         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
3753         make_phi_node, init_phinodes, fini_phinodes,
3754         release_phi_node, phinodes_print_statistics,
3755         init_ssanames, fini_ssanames, make_ssa_name,
3756         release_ssa_name, ssanames_print_statistics,
3757         annotate_with_file_line, build_empty_stmt,
3758         annotate_with_locus, expr_only, categorize_ctor_elements,
3759         count_type_elements, add_var_to_bind_expr, is_essa_node,
3760         expand_stack_alloc, expand_stack_save,
3761         expand_stack_restore, add_case_node, operand_equal_p,
3762         nondestructive_fold_unary_to_constant,
3763         nondestructive_fold_binary_to_constant,
3764         fold_read_from_constant_string, int_const_binop,
3765         strip_float_extensions, simplify_builtin, c_strlen,
3766         recompute_tree_invarant_for_addr_expr,
3767         needs_to_live_in_memory, make_vector,
3768         setjmp_vars_warning, update_alignment_for_field,
3769         expand_asm_expr, asm_op_is_mem_input,
3770         containing_blocks_have_cleanups_or_stack_level,
3771         create_artificial_label, gimplify_function_tree,
3772         get_name, unshare_expr, walk_tree,
3773         walk_tree_without_duplicates, in_gimple_form): Declare.
3774         (struct tree_exp): Add fields locus and block.
3775         (struct tree_ssa_name, struct edge_def, struct
3776         tree_phi_node, struct tree_eref_common, struct
3777         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
3778         union alias_var_def, struct tree_statement_list_node,
3779         struct tree_statement_list, enum operand_equal_flag): Declare.
3780         (enum tree_node_structure_enum): Add TS_SSA_NAME,
3781         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
3782         TS_STATEMENT_LIST.
3783         (union tree_node): Add fields ssa_name, phi, eref, ephi,
3784         euse and stmt_list.
3785         (function_cannot_inline_p, uninitialized_vars_warning,
3786         save_for_inline, output_inline_function, all_cases_count,
3787         check_for_full_enumeration_handling,
3788         declare_nonlocal_label): Remove.
3789         (enum tree_dump_index): Add TDI_none, TDI_tu,
3790         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
3791         * unroll.c (unroll_loop): Don't clear map->inline_target.
3792         * unwind-sjlj.c (uw_install_context): Make a proper static inline
3793         function.
3794         * value-prof.c (value_prof_hooks): New.
3795         (find_values_to_profile): Rename to rtl_find_values_to_profile.
3796         Move rtl-specific bits in from branch_prob.
3797         (value_profile_transformations): Rename to
3798         rtl_value_profile_transformations.
3799         (struct value_prof_hooks): New.
3800         (rtl_value_prof_hooks): New.
3801         (rtl_register_value_prof_hooks): New.
3802         (tree_find_values_to_profile): New stub.
3803         (tree_value_profile_transformations): New stub.
3804         (tree_value_prof_hooks): New stub.
3805         (tree_register_value_prof_hooks): New stub.
3806         (find_values_to_profile): New.
3807         (value_profile_transformations): New.
3808         * value-prof.h: Add multiple inclusion guard.
3809         (struct histogram_value): Change rtx fields to void *.
3810         (rtl_register_value_prof_hooks): New declaration.
3811         (tree_register_value_prof_hooks): New declaration.
3812         (find_values_to_profile): New declaration.
3813         (free_profiled_values): New declaration.
3814         (value_profile_transformations): New declaration.
3815         (struct profile_hooks): New declaration.
3816         (init_branch_prob): Declaration moved from rtl.h.
3817         (branch_prob): Declaration moved from rtl.h.
3818         (end_branch_prob): Declaration mooved from rtl.h.
3819         (tree_register_profile_hooks): New declaration.
3820         (rtl_register_profile_hooks): New declaration.
3821         (tree_profile_hooks): New declaration.
3822         (rtl_profile_hooks): New declaration.
3823         * varasm.c: Include tree-mudflap.h.
3824         (TRAMPOLINE_ALIGNMENT): Remove.
3825         (make_decl_rtl): Call mudflap_enqueue_decl.
3826         (assemble_static_space):
3827         (assemble_trampoline_template): Set and return
3828         TRAMPOLINE_ALIGNMENT.
3829         * varray.c (element): Add GENERIC_PTR_NOGC entry.
3830         Add entry for 'tree *'.
3831         Add entry for struct edge_def *.
3832         (varray_copy): New.
3833         * varray.h (enum varray_data_enum): Add
3834         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
3835         VARRAY_DATA_TREE_PTR.
3836         (union varray_data_tag): Corresponding changes.
3837         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
3838         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
3839         VARRAY_EDGE, VARRAY_TREE_PTR,
3840         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
3841         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
3842         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
3843
3844         * config/*/*: Various updates for changed macros, tree
3845         codes, etc.  Check ChangeLog.tree-ssa.
3846
3847         * doc/cfg.texi: New file.
3848         * doc/tree-ssa.texi: New file.
3849         * doc/c-tree.texi: Document new codes.
3850         * doc/gccint.texi: Include new files.
3851         * doc/install.texi: Document new features.
3852         * doc/invoke.texi: Document new switches.
3853         * doc/passes.texi: Document new passes.
3854         * doc/rtl.texi: Update changed RTL codes.
3855         * doc/sourcebuild.texi: Update build instructions.
3856         * doc/standards.texi: Document Fortran changes.
3857         * doc/tm.texi: Update.
3858
3859 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
3860
3861         Replace several arrays with a struct of arrays.
3862         * combine.c (struct reg_stat): New.
3863         (init_reg_last_arrays): Renamed to...
3864         (init_reg_last): ...this.  Callers adjusted.
3865         (reg_stat): New.
3866         (combine_instructions): Allocate it and use it.
3867         (reg_last_death, reg_last_set, reg_last_set_value,
3868         reg_last_set_label, reg_last_set_table_tick,
3869         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
3870         reg_last_set_mode, reg_last_set_nonzero_bits,
3871         reg_last_set_sign_bit_copies): Replace throughout
3872         with items of reg_stat.
3873
3874 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3875
3876         PR optimization/15100
3877         * combine.c (distribute_notes): Don't create a dangling
3878         REG_LIBCALL/REG_RETVAL note.
3879
3880 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
3881
3882         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
3883
3884         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
3885         negv2si2.
3886
3887 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
3888
3889         * doc/md.texi (Standard Names): Fix typo in vec_init description.
3890
3891 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
3892
3893         * doc/gty.texi (GTY Options): Clarify example.
3894
3895 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
3896
3897         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
3898         Add const qualifier to altivec vector type if one is needed.
3899
3900 2004-05-11  Paul Brook  <paul@codesourcery.com>
3901
3902         * flags.h (flag_short_enums): Update comment.
3903         * opts.c (decode_options): Set flag_short_enums to 2.
3904         * toplev.c (flag_short_enums): Update comment.
3905         (process_options): Call default_short_enums target hook.
3906
3907 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
3908
3909         PR target/14063
3910         * config/rs6000/altivec.md (altivec_dssall):
3911         Change to unspec_volatile.
3912         (altivec_dss): Likewise.
3913
3914 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
3915
3916         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
3917         vnor.
3918         ("one_cmplv8hi2"): Same.
3919         ("one_cmplv4si2"): Same.
3920
3921 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
3922
3923         PR target/15130
3924         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
3925         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
3926         into account.  Compute the correct number of general registers
3927         for the return value.  Generate a special push/pop sequence when
3928         failing to get a temporary register for non SHmedia epilogue.
3929         (sh_expand_epilogue): Add an argument to show whether it's for
3930         sibcall or not.  Set the 3rd argument of output_stack_adjust to
3931         -1 if needed.
3932         (sh_need_epilogue): Call sh_expand_epilogue with 0.
3933         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
3934         with 1.
3935         (epilogue): Call sh_expand_epilogue with 0.
3936
3937 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
3938
3939         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
3940         goto a cleanup label.  After the cleanup, free the allocated memory.
3941
3942 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
3943
3944         * config/rs6000/altivec.h (vec_sld): Add overloads for
3945         argument/return types of 'vector bool int', 'vector bool short'
3946         and 'vector bool char'.
3947
3948 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
3949
3950         * c-decl.c (store_parm_decls_newstyle): Correct test for a
3951         nested function.
3952
3953 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
3954
3955         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
3956         treating missing ones as "".
3957         * config/mips/mips.md: Remove constraints from match_operands and
3958         match_scratches if they appear in define_expands (except reload*),
3959         define_peephole2s, define_splits or attribute specifications.
3960         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
3961         constraint strings.
3962
3963 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
3964
3965         * config/rs6000/rs6000.c (function_arg_boundary): Always align
3966         AltiVec vectors.
3967         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
3968         vectors by refererence.  Align the same for TARGET_64BIT to a 16
3969         byte boundary.  Remove useless code.  Add function comment.
3970         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
3971         call to where it belongs.
3972         (function_arg_partial_nregs): Return true for all TARGET_32BIT
3973         -mabi=no-altivec AltiVec vectors.  Fix debug output.
3974         (rs6000_va_arg): Adjust for AltiVec change.
3975
3976 2004-05-10  Paul Brook  <paul@codesourcery.com>
3977
3978         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
3979         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
3980         (TARGET_DOUBLEWORD_ALIGN): Use it.
3981         (WCHAR_TYPE): Define.
3982         (WCHAR_SIZE_TYPE): Define.
3983         (SIZE_TYPE): Define.
3984
3985 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
3986
3987         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
3988         when size is 8 bytes.
3989         (function_arg_advance): Account for stack space used by AltiVec
3990         args when -mabi=altivec.  Simplify alignment calculations.  For
3991         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
3992         (function_arg): Similarly.
3993         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
3994         not AltiVec ABI.
3995         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
3996         Correct alignment, and align before testing reg count.  Remove
3997         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
3998         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
3999         TARGET_FPRS here..
4000         (rs6000_function_value): .. not here before call.
4001
4002 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4003
4004         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4005
4006 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
4007
4008         PR 15007
4009         * c-decl.c (current_file_decl): Rename to all_translation_units,
4010         adjust comment.
4011         (pop_scope): If popping file_scope, construct a
4012         TRANSLATION_UNIT_DECL and make it the context of all the
4013         symbols in the scope.
4014         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4015         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
4016         anything to current_file_decl.
4017         (pushdecl_top_level): Likewise.
4018         (store_parm_decls_newstyle): Adjust check for nested function.
4019         (c_write_global_declarations): Update for renamed variable.
4020
4021 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4022
4023         * config/rs6000/rs6000-protos.h
4024         (rs6000_conditional_register_usage): Protoize.
4025
4026         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4027
4028         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4029         function.
4030
4031 2004-05-08  Roger Sayle  <roger@eyesopen.com>
4032
4033         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4034         where op is a comparison operator and C1 and C2 are integer constants
4035         into a range check.
4036         (fold): Call fold_div_compare.
4037
4038 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4039
4040         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4041         problems with earlier versions of the GNU compiler.
4042
4043 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
4044
4045         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4046         Declare.
4047
4048         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4049         (rs6000_hard_regno_mode_ok): New.
4050         (rs6000_init_hard_regno_mode_ok): New.
4051         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4052
4053         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4054         result.
4055
4056 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
4057
4058         * config/rs6000/altivec.h (vector, pixel, bool): Do not
4059         define as macros #ifdef __APPLE_ALTIVEC__.
4060
4061 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
4062
4063         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4064         Generate appropriate parallels for vector arguments
4065         passed to vararg functions. (function_arg): make the call
4066         to rs6000_mixed_function_arg for vector args as needed.
4067
4068 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4069
4070         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4071         EABI_FLOAT_VARARGS_P.
4072
4073 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4074
4075         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4076         * config/mips/mips.c (override_options): Disable branch likely
4077         instructions if TUNE_MIPS5500.
4078
4079 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4080
4081         * config/mips/mips.c (override_options): Allow the hi and lo registers
4082         to store any integral mode, not just MODE_INTs.
4083
4084 2004-05-07  Paul Brook  <paul@codesourcery.com>
4085
4086         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4087         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4088         (TARGET_DOUBLEWORD_ALIGN): Use it.
4089         (WCHAR_TYPE): Define.
4090         (WCHAR_SIZE_TYPE): Define.
4091         (SIZE_TYPE): Define.
4092
4093 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4094
4095         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4096         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4097
4098 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
4099
4100         * loop-doloop.c (doloop_valid_p): Make sure that body
4101         gets freed.
4102
4103 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
4104
4105         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4106         declaration.
4107         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4108         (sparc_skip_caller_unimp): New global variable.
4109         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4110         Use it instead of SKIP_CALLERS_UNIMP_P.
4111         * config/sparc/sparc.md (call expander): Add sanity check.
4112         (call_address_struct_value_sp32): Re-sync with expander.
4113         (call_symbolic_struct_value_sp32): Likewise.
4114         (return peepholes): Use 'sparc_skip_caller_unimp' instead
4115         of custom predicate.
4116
4117 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4118
4119         PR c++/14962
4120         * c-pragma.c (handle_pragma_redefine_extname): Only change
4121         the assembler name of FUNCTION_DECLs and VAR_DECLs.
4122
4123 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4124
4125         * optabs.h (enum optab_index): Add new OTI_log1p.
4126         (log1p_optab): Define corresponding macro.
4127         * optabs.c (init_optabs): Initialize log1p_optab.
4128         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4129         patterns.
4130         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4131         using log1p_optab.
4132         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4133         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4134
4135         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4136
4137         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4138         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4139         Prototype here.
4140         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4141         x87's fyl2xp1 instruction.
4142         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4143         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4144         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4145         log1p  and log1pl built-ins as inline x87 intrinsics.
4146
4147 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
4148
4149         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4150         * config/arm/freebsd.h: Likewise.
4151         * config/ia64/freebsd.h: Likewise.
4152         * config/sparc/freebsd.h: Likewise.
4153
4154 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
4155
4156         PR optimization/15296
4157         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4158         getting last consecutive label at a branch.
4159         (relax_delay_slots): Similar, near top of loop.
4160
4161 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4162
4163         PR target/15202
4164         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4165         register to general register.
4166
4167 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
4168
4169         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4170         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4171         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4172         (STACK_BOUNDARY): Delete.
4173
4174 2004-05-06  Stuart Hastings  <stuart@apple.com>
4175
4176         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4177         mistakenly clobbered by 1.423.
4178
4179 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4180
4181         * doc/invoke.texi: Document -mvr4130-align.
4182         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4183         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4184         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4185         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4186         * config/mips/mips.md: Include sched-int.h.
4187         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4188         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4189         (override_options): Enable -mvr4130-align at -O3 and above.
4190         (mips_sim_insn): New variable.
4191         (mips_sim): New structure.
4192         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4193         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4194         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4195         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4196         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4197         (mips_reorg): Call vr4130_align_insns.
4198         (vr4130_last_insn): New variable.
4199         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4200         (vr4130_swap_insns_p, vr4130_reorder): New functions.
4201         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4202         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4203         (mips_use_dfa_pipeline_interface): Return true for the same.
4204         * config/mips/4130.md: New file.
4205         * config/mips/mips.md: Include it.  Add a peephole2 to convert
4206         "mult;mflo" into "mtlo;macc".
4207         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4208         target of maccs.
4209         (*msac_using_macc): New pattern.
4210
4211 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4212
4213         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
4214         (ir_vr55_hilo): Split into...
4215         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
4216         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
4217         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
4218         Add various multiplication bypasses.
4219         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
4220         multiplication.
4221
4222 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
4223
4224         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
4225         attribute to "XF".
4226
4227 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
4228
4229         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
4230         (fmod_optab, drem_optab): Define corresponding macros.
4231         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
4232         * genopinit.c (optabs): Implement fmod_optab and drem_optab
4233         using fmod?f3 and drem?f3 patterns.
4234         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
4235         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
4236         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
4237         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
4238         flag_unsafe_math_optimizations is set.
4239
4240         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
4241         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
4242
4243         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
4244         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
4245         Prototype here.
4246         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
4247         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
4248         fprem and fprem1 instructions.
4249         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
4250         Rename insn definition to x86_fnstsw_1.
4251         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
4252         x87 instructions.
4253         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
4254         and fmodl built-ins as inline x87 intrinsics.
4255         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
4256         and dreml built-ins as inline x87 intrinsics.
4257
4258 2004-05-05  Roger Sayle  <roger@eyesopen.com>
4259
4260         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
4261
4262 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
4263
4264         PR driver/9822
4265         * doc/invoke.texi (Spec Files): Remove documentation of %c.
4266
4267 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
4268
4269         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
4270         representation.
4271
4272 2004-05-06  Paul Brook  <paul@codesourcery.com>
4273
4274         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
4275         (arm_coproc_mem_operand): ... To this.
4276         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
4277         (arm_legitimate_index_p): Ditto.
4278         (vfp_mem_operand): Rename ...
4279         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
4280         (vfp_secondary_reload_class): Use it.
4281         (output_move_double): Use doubleword load/store instructions.
4282         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
4283         * config/arm/arm.h (TARGET_LDRD): Define.
4284         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
4285         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
4286         New splitter for invalid doubleword loads.
4287         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
4288         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
4289         * doc/md.texi: Document Uy constraint.
4290
4291 2004-05-05  Jan Hubicka  <jh@suse.cz>
4292
4293         PR opt/14980
4294         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
4295         inline clones.
4296
4297 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4298
4299         PR target/15290
4300         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
4301         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
4302
4303 2004-05-05  Mike Stump  <mrs@apple.com>
4304
4305         * config/darwin-c.c (add_framework): Copy the directory name as it
4306         can be freed later.  Also, ensure we always allocate enough room
4307         for the cached framework information.
4308         (find_subframework_header): Keep track of the directory where the
4309         subframework header was found.
4310         (framework_construct_pathname): Speed up by not trying to re-add a
4311         framework.
4312         * cppfiles.c (search_path_exhausted): Arrange for the missing
4313         header callback to be able to set the directory where the header
4314         was found.
4315         (cpp_get_dir): Add.
4316         * cpplib.h (missing_header_cb): Add a parameter.
4317         (cpp_get_dir): Add.
4318
4319 2004-05-03  Mike Stump  <mrs@apple.com>
4320
4321         * doc/invoke.texi (Directory Options): Document -iquote.
4322         * doc/cpp.texi: Likewise.
4323         * doc/cppopts.texi: Likewise.
4324         * c-opts.c (c_common_missing_argument): Add -iquote processing.
4325         (c_common_handle_option): Likewise.
4326         * c.opt (iquote): Add.
4327         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
4328         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
4329
4330         * c-opts.c (case OPT_I): Deprecate -I- support.
4331         * doc/invoke.texi: Likewise.
4332         * doc/cpp.texi: Likewise.
4333         * doc/cppopts.texi: Likewise.
4334
4335 2004-05-05  Steven Bosscher  <stevenb@suse.de>
4336
4337         * basic-block.h (free_basic_block_vars): Update prototype.
4338         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
4339         argument.
4340         (life_analysis): Update call.
4341         * ifcvt.c (if_convert): Likewise.
4342         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
4343         * passes.c (rest_of_handle_final): Likewise.
4344         (rest_of_compilation): Likewise.
4345         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4346
4347         * emit-rtl.c (next_real_insn): Use INSN_P.
4348         (prev_real_insn): Likewise.
4349
4350 2004-05-05  Eric Christopher  <echristo@redhat.com>
4351
4352         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
4353         representation.
4354
4355 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
4356
4357         * config/rs6000/rs6000.c (build_opaque_vector_type):
4358         New function.
4359         (rs6000_init_builtins): Use it.
4360
4361 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
4362
4363         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
4364         (func_table): Change type from char ** to vms_func_ref.
4365         (write_rtnbeg):  Update to reflect func_table change.  Use
4366         fde->funcdef_number instead of rtnnum in output.
4367         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
4368
4369 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4370             Richard Henderson  <rth@redhat.com>
4371
4372         PR target/14899
4373
4374         * c-common.c (vector_types_convertible_p): New function.
4375         * c-typeck.c (comptypes): Recurse on vector types.
4376         (convert_for_assignment): Use vector_types_convertible_p.
4377         (digest_init): Use vector_types_convertible_p to check
4378         validness of constant vector initializers; otherwise treat
4379         them as scalars.
4380         * tree.c (make_or_reuse_type): New.
4381         (build_common_tree_nodes): Use it.
4382         * cp/call.c (standard_conversion): Likewise.
4383         * cp/typeck.c (comptypes): Recurse on vector types.
4384         (convert_for_assignment): Use vector_types_convertible_p.
4385
4386 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
4387
4388         * config/mips/mips.c (override_options): Default to no
4389         generation of branch-likely operations when tuning for
4390         CPUs where they tend to have a negative performance impact
4391         (e.g., SB-1).
4392
4393 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4394
4395         * expr.c (store_constructor_field): Don't call store_constructor
4396         if bitsize is not a multiple of a byte.
4397
4398 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
4399
4400         * reload1.c (inherit_piecemeal_p): New function.
4401         (emit_reload_insns): When reloading a group of hard registers, use
4402         inherit_piecemeal_p to decide whether the values of individual hard
4403         registers can be inherited.
4404
4405 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4406
4407         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
4408         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
4409         * config/t-linux (LIB2ADDEHDEP): Likewise.
4410
4411 2004-05-04  Paul Brook  <paul@codesourcery.com>
4412
4413         * config/arm/crti.asm: Push an even number of registers.
4414         * config/arm/crtn.asm: And restore them.  Load via sp.
4415
4416 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4417
4418         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
4419         Collect overhead information.
4420         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
4421         parameter and pass it through.
4422         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
4423         MEM_STAT_DECL parameter and pass it through.
4424         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
4425         MEM_STAT_DECL parameter and pass it through.
4426
4427 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4428
4429         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
4430
4431         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
4432
4433         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
4434         rs6000_hard_regno_nregs.
4435
4436 2004-05-03  Eric Christopher  <echristo@redhat.com>
4437
4438         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
4439         prologue insn instead of setting up call.
4440         (s390_emit_epilogue): Ditto.
4441         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
4442         (define_constants): Add numbers for above patterns.
4443
4444 2004-05-03  Eric Christopher  <echristo@redhat.com>
4445
4446         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
4447         * config/s390/s390.c (s390_conditional_register_usage): ...here.
4448         * config/s390/s390-protos.h: Prototype.
4449
4450 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
4451
4452         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
4453         assignment.
4454
4455 2004-05-03  Eric Christopher  <echristo@redhat.com>
4456
4457         * config/mips/mips.md: Fix branch length attribute definition.
4458
4459 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4460
4461         * config.gcc: Remove --enable-altivec support.
4462
4463         * config/rs6000/altivec-defs.h: Remove.
4464
4465 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4466
4467         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
4468         * fixinc/fixincl.x: Regenerate.
4469
4470 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4471
4472         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
4473         definition.
4474         (log?f2, log10?f2, log2?f2): Reimplement expanders with
4475         float_truncate insn.
4476         (*fxtractsf3, *fxtractdf3): Remove insn definition.
4477         (logb?f2): Reimplement expanders with float_truncate insn.
4478
4479 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
4480
4481         PR 14718
4482         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
4483         force_type_die for CONST_DECL.
4484
4485 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4486             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4487
4488         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
4489         tm-dwarf2.h to tm_file.
4490         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
4491         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
4492         (ASM_DEBUG_SPEC): Delete.
4493
4494 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4495
4496         * optabs.h (enum optab_index): Add new OTI_expm1.
4497         (expm1_optab): Define corresponding macro.
4498         * optabs.c (init_optabs): Initialize expm1_optab.
4499         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
4500         patterns.
4501         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
4502         using expm1_optab.
4503         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
4504         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4505
4506         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
4507         to implement expm1, expm1f and expm1l built-ins as inline x87
4508         intrinsics.
4509
4510 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
4511
4512         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
4513         * config/frv/frv.md (*return_true, *return_false): New patterns.
4514
4515 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
4516
4517         * rtl.h (PHI_NODE_P): Remove.
4518
4519 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
4520
4521         PR middle-end/14988
4522         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
4523         when passed -2 as 'align'.
4524         (put_var_into_stack): Use 'bool' as the type for the three local
4525         predicates.  Adjust calls to put_reg_into_stack.
4526         When passed a CONCAT, instruct put_reg_into_stack to use
4527         a consecutive stack slot for the second part.
4528         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
4529         'consecutive_p' parameter.  Turn the three predicates into 'bool'
4530         parameters.  Retrieve the register mode from 'reg'.
4531         When consecutive_p is true, instruct assign_stack_local_1 to use
4532         BITS_PER_UNIT alignment.
4533         (put_addressof_into_stack): Use 'bool' as the type for the two
4534         local predicates. Adjust call to put_reg_into_stack.
4535
4536 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4537
4538         * fold-const.c (fold_convert_const, fold): Add missing
4539         FIX_ROUND_EXPR case.
4540
4541 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
4542
4543         * configure.ac (FLEX, BISON): Only use tools from the build tree
4544         if build equals host.
4545         * configure: Rebuilt.
4546
4547         * config/frv/frv-protos.h (frv_expand_epilogue,
4548         frv_expand_fdpic_call): Add bool argument.
4549         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
4550         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
4551         (frv_expand_epilogue): Use new argument to decide whether to emit
4552         return instruction or copy the return address to LR.
4553         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
4554         sibcalls.
4555         (sibcall_operand): New.
4556         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
4557         PLUS nor LABEL_REF.  Add sibcall_operand.
4558         * config/frv/frv.md (call, call_value): Pass false to
4559         frv_expand_fdpic_call.
4560         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
4561         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
4562         sibcall_value_internal, sibcall_value_fdpicdi): New.
4563         (return_unsigned_true, return_unsigned_false): New.
4564         (epilogue): Adjust call to frv_expand_epilogue.
4565         (sibcall_epilogue): New.
4566
4567         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
4568         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
4569         before redefining them.
4570
4571 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4572
4573         * builtins.c (fold_fixed_mathfn): New function.
4574         (fold_builtin_lround, fold_builtin): Use it.
4575
4576 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
4577
4578         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
4579         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
4580
4581 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
4582
4583         * config/cris/cris.h: Revert my "fix comment typos" patch.
4584
4585 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
4586
4587         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
4588
4589 2004-05-01  Falk Hueffner  <falk@debian.org>
4590
4591         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
4592         builtin_insll): Disallow 0 as first input operand.
4593
4594 2004-05-01  Falk Hueffner  <falk@debian.org>
4595
4596         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
4597
4598 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
4599
4600         PR middle-end/15054
4601         * expr.c (expand_expr_real): Do not call preserve_temp_slots
4602         on a TARGET_EXPR temp.
4603         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
4604         TARGET_EXPR temp slots.
4605
4606 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
4607
4608         * simplify-rtx.c (simplify_ternary_operation): When
4609         converting an IF_THEN_ELSE to a relational op, return
4610         correct mode.
4611
4612 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4613
4614         * builtins.c (fold_builtin_round): Fix comment typo.
4615         (fold_builtin_lround): New function.
4616         (fold_builtin): Use it.
4617
4618 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
4619
4620         PR target/11608
4621         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
4622         more like the one in config/dbxelf.h.
4623
4624 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
4625
4626         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
4627         and adjust definition accordingly.
4628         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
4629         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
4630         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
4631         VECTOR_TYPE.
4632
4633 2004-04-30  Jason Merrill  <jason@redhat.com>
4634
4635         PR c++/14587
4636         * config/i386/winnt.c (associated_type): Look for attributes on
4637         the TYPE_MAIN_VARIANT of *this.
4638         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
4639         apply the attributes to the variants.
4640
4641 2004-04-30  Paul Brook  <paul@codesourcery.com>
4642
4643         * config.gcc: Simplify arm --with-{cpu,tune} test.
4644         * config/arm/arm-cores.def: Document whitespace restrictions.
4645
4646 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4647
4648         PR other/1963
4649         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
4650
4651 2004-04-30  Brian Ford  <ford@vss.fsi.com>
4652             DJ Delorie  <dj@redhat.com>
4653
4654         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4655         (DWARF2_DEBUGGING_INFO): Define to enable.
4656         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
4657         DWARF2.
4658         * configure.ac (Target-specific assembler checks)
4659         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
4660         relocs.
4661         * configure: Regenerate.
4662         * config.in: Likewise.
4663
4664         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4665         (ASM_OUPUT_DWARF_OFFSET): Define.
4666
4667 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
4668
4669         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
4670         (s390_emit_call): New function prototype added.
4671         (s390_tls_get_offset): Function removed.
4672         * config/s390/s390.c (s390_function_ok_for_sibcall,
4673         s390_call_saved_register_used_p): New functions.
4674         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
4675         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
4676         (s390_emit_tls_call_insn): New function.
4677         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
4678         emit_call_insn.
4679         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
4680         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
4681         added.
4682         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
4683         register number used to hold the target address for sibcalls.
4684         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
4685         New expanders.
4686         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
4687         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
4688         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
4689         Expanders removed.
4690         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
4691         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
4692         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
4693         ("epilogue"): Changed the call to s390_emit_epilogue to use the
4694         new parameter.
4695
4696 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
4697
4698         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
4699         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
4700         reg-stack.c, varasm.c, config/alpha/ev4.md,
4701         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
4702         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
4703         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
4704         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
4705         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
4706         config/ia64/itanium2.md, config/ip2k/ip2k.c,
4707         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
4708         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
4709         comment typos.
4710
4711 2004-04-30  Paul Brook  <paul@codesourcery.com>
4712
4713         * config.gcc: Default ep9312 to hard-float.
4714         * config/arm/arm-cores.def: Add ARCH field.
4715         * config/arm/arm.c (FL_FOR_ARCH*): Define.
4716         (arm_arch_cirrus): New variable.
4717         (all_cores): Set and use arch.
4718         (all_architectures): Ditto.
4719         (arm_arch_name): New variable.
4720         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
4721         Set and use arm_arch_cirrus.
4722         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
4723         (enum processor_type): Update ARM_CORE define.
4724         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
4725         (CPP_SPEC): Remove %(cpp_cpu_arch).
4726         (CPP_ARCH_DEFAULT_SPEC): Remove.
4727         (CPP_CPU_ARCH_SPEC): Remove.
4728         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
4729         (FPUTYPE_DEFAULT): Don't define here.
4730
4731 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
4732
4733         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
4734         updates too.
4735
4736 2004-04-30  Paul Brook  <paul@codesourcery.com>
4737
4738         * arm.c (arm_needs_doubleword_align): Use mode alignment.
4739
4740 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
4741
4742         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
4743         vec_sububs.
4744         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
4745         duplicates.
4746
4747 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
4748
4749         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
4750         atan2?f3 expanders.
4751
4752 2004-04-29  Nick Clifton  <nickc@redhat.com>
4753
4754         Bug 14093
4755         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
4756         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
4757         Delete static from definition.
4758         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
4759
4760 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
4761
4762         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
4763         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
4764         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
4765         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
4766
4767 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
4768
4769         * commom.opt (Wfatal-errors): Add it.
4770         * diagnostic.c (flag_fatal_errors): Define it.
4771         (diagnostic_action_after_output): Check for flag_fatal_errors.
4772         * flags.h (flag_fatal_errors): Declare it.
4773         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
4774         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
4775
4776 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
4777
4778         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
4779         blocks which have kill flag set.
4780
4781 2004-04-29  Ben Elliston  <bje@au.ibm.com>
4782
4783         * configure.ac (--with-as): Abort if user-supplied assembler
4784         cannot be executed.
4785         (--with-ld): Likewise for the linker.
4786         * configure: Regenerate.
4787
4788 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4789
4790         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
4791         isn't NULL before using it.
4792
4793 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
4794
4795         PR target/15189
4796         * config/mips/mips.md (load_df_low): Use default length.
4797         (load_df_high, store_df_high): Likewise.
4798
4799 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
4800
4801         * config/mips/mips.md, config/mips/sb1.md,
4802         config/rs6000/rs6000.c: Fix comment typos.
4803
4804 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
4805
4806         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
4807         Fix comment typos.
4808
4809 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
4810
4811         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
4812         (delete_if_ordinary): Use above macro.
4813         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
4814         Update copyright.
4815         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
4816
4817 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
4818
4819         * c-decl.c (get_parm_info): Use the correct tag keywords when
4820         warning about type declarations in prototypes.
4821
4822 2004-04-29  Paul Brook  <paul@codesourcery.com>
4823
4824         * config.gcc: Pull list of cores from arm-cores.def.
4825
4826 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
4827
4828         * combine.c (combine_simplify_rtx): Adjust call to use
4829         simplify_relational_operation.  Do not use SELECT_CC_MODE
4830         when a comparison already has a MODE_CC mode.
4831
4832 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
4833
4834         (simplify_set): simplify_relational_operation may now
4835         return another relational expression.
4836         * cse.c (fold_rtx): simplify_relational_operation now
4837         takes of computing the comparison mode.
4838         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
4839         remove dead code.
4840         (do_compare_rtx_and_jump): Likewise.
4841         * integrate.c (subst_constants): simplify_relational_operation
4842         may now return another relational expression.
4843         * simplify-rtx.c (simplify_gen_relational): Move most code to
4844         the new simplify_relational_operation and
4845         simplify_relational_operation_1 functions.
4846         (simplify_relational_operation): Rewritten.
4847         (simplify_relational_operation_1): New function.
4848         (simplify_ternary_operation): simplify_relational_operation
4849         may now return another relational expression.
4850         (simplify_rtx): Remove unnecessary temp variable.
4851
4852 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
4853
4854         * reg-stack.c (swap_to_top): New function.
4855         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
4856         swap_to_top().
4857         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
4858         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
4859         UNSPEC_FSCALE_EXP.
4860
4861         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
4862         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
4863         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
4864         x87's fscale insn.
4865         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
4866         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
4867         patterns.
4868
4869 2004-04-28  Serge Belyshev  <1319@bot.ru>
4870
4871         PR 14944
4872         * coverage.c (read_counts_file): Fix usage of warning () call.
4873         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
4874
4875 2004-04-28  Ben Elliston  <bje@au.ibm.com>
4876
4877         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
4878         options with "-" in the option index.
4879         (SPARC Options): Likewise.
4880         (M32R/D Options): Likewise.
4881
4882 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4883
4884         * convert.c (convert_to_integer): Convert (long)round -> lround,
4885         etc.
4886
4887 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
4888
4889         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
4890         Return false if we do not have fp register.
4891         (addrs_ok_for_quad_peep): Rename to ...
4892         (mems_ok_for_quad_peep): this.
4893         Add check for volatile memory.
4894         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
4895         Rename to ...
4896         (mems_ok_for_quad_peep): this.
4897         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
4898         to peephole2's.
4899         (lfq_power2): New instruction.
4900         (stfq_power2): Likewise.
4901
4902 2004-04-28  Jan Hubicka  <jh@suse.cz>
4903
4904         PR c/15004
4905         * function.c (do_warn_unused_parameter): Break out form ...
4906         (expand_function_end): ... here; warn only when not using cgraphunit.
4907         * function.h (do_warn_unused_parameter): Declare.
4908         * cgraphunit.c: Include function.h.
4909         (cgraph_finalize_function): Do unused parameter warning.
4910         * Makefile.in (cgraphunit.o): Depend on function.h
4911
4912 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
4913
4914         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
4915         calling install-info on $(DESTDIR)$(infodir)/dir already being
4916         present.
4917
4918 2004-04-28  Paul Brook  <paul@codesourcery.com>
4919
4920         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
4921
4922 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
4923
4924         * gcse.c (find_moveable_store): Do not accept store insns with
4925         REG_EH_REGION note.
4926
4927 2004-04-28  Paul Brook  <paul@codesourcery.com>
4928
4929         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
4930         * function.c (assign_temp): Ditto.
4931         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
4932
4933 2004-04-28  Paul Brook  <paul@codesourcery.com>
4934
4935         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
4936
4937 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
4938
4939         * var-tracking.c (variable_different_p): Add a parameter
4940         compare_current_location, compare current location of variable parts
4941         if it is true.
4942         (dataflow_set_different_1): Pass compare_current_location == false.
4943         (dataflow_set_different_2): Pass compare_current_location == false.
4944         (emit_notes_for_differences_1): Pass compare_current_location == true.
4945
4946 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
4947
4948         * config/s390/s390.md ("casesi"): Mark jump table access as
4949         non-trapping and unchanging.
4950
4951 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4952
4953         PR debug/14829
4954         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
4955         callers.
4956         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
4957         number for indexing hard_regno_nregs array.
4958
4959 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
4960
4961         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
4962         * config/darwin-crt2.c: Only have contents on __ppc__.
4963
4964 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
4965
4966         * config/xtensa/xtensa.c (call_insn_operand): Check
4967         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
4968         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
4969         * config/xtensa/xtensa.md (call, call_value): Likewise.
4970
4971 2004-04-27  Wu Yongwei  <adah@sh163.net>
4972
4973         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
4974         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
4975         (__gthread_mutex_init_function): Replace CreateMutex with
4976         initialization of custom mutex using CreateSemaphore.
4977         (__gthread_mutex_lock): Use InterlockedIncrement.
4978         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
4979         (__gthread_mutex_unlock): Use InterlockedDecrement and
4980         ReleaseSemaphore to unlock
4981         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
4982         __gthread_mutex_lock, __gthread_mutex_trylock,
4983         __gthread_mutex_unlock): Adjust to match inline versions in
4984         gthr-win32.h.
4985
4986 2004-04-27  Paul Brook  <paul@codesourcery.com>
4987
4988         * config/arm/arm.c (arm_promote_prototypes): New function.
4989         (TARGET_PROMOTE_PROTOTYPES): Use it.
4990
4991 2004-04-27  Paul Brook  <paul@codesourcery.com>
4992
4993         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
4994
4995 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
4996
4997         * config/alpha.c (alpha_end_function): For OpenVMS gas,
4998         correctly output .pdesc directive before .end.
4999
5000 2004-04-26  James E Wilson  <wilson@specifixinc.com>
5001
5002         Bug 14927
5003         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
5004         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
5005
5006 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
5007
5008         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5009         * config/pa/pa-hpux10.h: Likewise.
5010         * config/pa/pa-hpux11.h: Likewise.
5011
5012 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
5013
5014         * doc/invoke.texi (Overall Options): Document default for -o
5015         for PCH files.
5016
5017 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5018
5019         * builtins.c (expand_builtin_update_setjmp_buf): New function.
5020         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5021         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5022
5023 2004-04-26  Paul Brook  <paul@codesourcery.com>
5024
5025         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5026
5027 2004-04-26  Paul Brook  <paul@codesourcery.com>
5028
5029         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5030
5031 2004-04-25  Roger Sayle  <roger@eyesopen.com>
5032
5033         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5034         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
5035         X % -1 as 0.
5036
5037 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
5038
5039         PR bootstrap/15141
5040         * except.c (connect_post_landing_pads): Delete insns after the
5041         barrier when generating a unwind_resume_libfunc call.
5042
5043 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5044
5045         PR/c++ 15119
5046         * tree.c (substitute_placeholder_in_expr, case 4): New case,
5047         for TARGET_EXPR.
5048
5049 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5050
5051         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5052         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5053         inhibit_libc is defined.
5054
5055 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
5056
5057         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5058         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5059         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5060         (TARGET_SCHED_VARIABLE_ISSUE): Define.
5061         (mips_adjust_cost): Move later in file, next to other sched hooks.
5062         (mips_macc_chains_last_hilo): New variable.
5063         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5064         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5065         * config/mips/mips.md (may_clobber_hilo): New attribute.
5066
5067 2004-04-24  Roger Sayle  <roger@eyesopen.com>
5068             Bruce Korb  <bkorb@gnu.org>
5069
5070         * fixinc/inclhack.def (aix_syswait_2): New fix.
5071         * fixinc/fixincl.x: Regenerate.
5072         * fixinc/tests/base/sys/wait.h: Update for new test.
5073
5074 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
5075
5076         PR target/14960
5077         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5078         to non_fixed_size, and leave out fixed_size from the sum.
5079         (generate_set_vrsave): Correct clobbers.
5080         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5081         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5082         (rs6000_libcall_value): Likewise.
5083         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5084         (FUNCTION_ARG_REGNO_P): Likewise.
5085
5086 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5087
5088         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5089         is a CONST_INT.
5090         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5091         with NARROW_OP1 instead of OP1.
5092
5093 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5094
5095         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5096         and __s390x__ hosts.
5097
5098 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5099
5100         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5101         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5102         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5103         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5104         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5105         * builtins.c (expand_builtin_fork_or_exec): New.
5106         (expand_builtin): Call it.
5107         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5108         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5109         * c-common.c (PID_TYPE): New macro.
5110         (c_common_nodes_and_builtins): Initialize pid_type_node.
5111         * calls.c (special_function_p): Do not handle fork and exec.
5112         (expand_call): Do not handle ECF_FORK_OR_EXEC.
5113         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5114         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5115         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5116         __gcov_execv, __gcov_execvp, __gcov_execve): New.
5117         * tree.h (enum tree_index): Add TI_PID_TYPE.
5118         (pid_type_node): New macro.
5119         (ECF_FORK_OR_EXEC): Removed.
5120
5121 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5122
5123         PR optimization/13985
5124         * cfgloopmanip.c (fix_loop_placements): New prototype.
5125         Call fix_bb_placements on the preheader of loops that have
5126         been reparented.
5127         (remove_path): Adjust call to fix_loop_placements.
5128
5129 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
5130
5131         * config/darwin7.h: New file.
5132         * config.gcc (*-*-darwin*): Add darwin7.h if the
5133         version is greater than 6.
5134         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5135         (MATH_LIBRARY): Wrap in ifdefs.
5136
5137 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
5138
5139         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5140         loading iWMMXt registers with a frame pointer.  Use post-increment
5141         without a frame pointer.
5142         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5143
5144 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
5145
5146         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5147         mode" rather than "-funit-at-a-time" since -O2 enables it
5148         without requiring -f* options.  Refer to -fprofile-generate and
5149         -fprofile-use correctly.  Move -funit-at-a-time among options
5150         enabled by -O.  Add information about unit-at-a-time caveats.
5151
5152 2004-04-22  Per Bothner  <per@bothner.com>
5153
5154         * line-map.h (struct line_maps):  New field highest_line.
5155         (linemap_position_for_column):  Make non-inline function.
5156         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
5157         * line-map.c (linemap_init):  Clear highest_line field.
5158         (linemap_add):  Set highest_line field.
5159         (linemap_line_start):  Minor optimization - use highest_line field.
5160         Reduce maximum column hint to 10000.  Update highest_line field.
5161         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
5162         * cpphash.h (struct cpp_reader):  Remove line field - instead use
5163         line_table->highest_line.
5164         (saved_line):  Remove unused field.
5165         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
5166         Use  line_table's highest_line field instead of cpp_reader's line.
5167         * cpplib.c (start_directive):  Likewise use highest_line field.
5168         (do_line, do_linemarker):  Likewise just use newest map.
5169         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
5170         * cpperror.c (cpp_error):  Likewise use highest_line field.
5171         * cppfiles.c (open_file_failed:  Likewise.
5172         (cpp_make_system_header):  Likewise use newest map and highest_line.
5173         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
5174         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5175         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5176         _cpp_lex_direct):  Likewise use highest_line.
5177         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
5178         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
5179         and use newest map.
5180         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
5181         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
5182         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
5183
5184 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
5185
5186         PR bootstrap/14992
5187         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5188         * config/linux.h (USE_LD_AS_NEEDED): Define.
5189         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5190         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5191         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5192         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5193         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5194         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5195         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5196
5197 2004-04-22  Per Bothner  <per@bothner.com>
5198
5199         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
5200         Fixes PR preprocessor/15067.
5201
5202 2004-04-23  Andreas Schwab  <schwab@suse.de>
5203
5204         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5205         avoid aliasing warning.
5206
5207 2004-04-22  Jan Hubicka  <jh@suse.cz>
5208             Mostafa Hagog <mustafa@il.ibm.com>
5209
5210       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5211       * cfgloopanal.c (expected_loop_iterations): Change the return value
5212
5213 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
5214
5215         * cselib.h (struct elt_loc_list): Remove canon_loc field.
5216         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
5217         (cselib_invalidate_mem): Remove all canon_loc and canon_x
5218         traces.
5219
5220 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
5221
5222         Revert
5223         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5224
5225                 * var-tracking.c (variable_part_different_p): Variable parts
5226                 differ when the most recent locations differ.
5227
5228 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
5229
5230         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
5231         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
5232         (embedded_pic_offset): Delete.
5233         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
5234         MASK_* constants.
5235         (TARGET_EMBEDDED_PIC): Delete.
5236         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
5237         (ASM_SPEC): Remove -membedded-pic.
5238         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
5239         (ASM_OUTPUT_CASE_LABEL): Likewise.
5240         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
5241         * config/mips/windiss.h (ASM_SPEC): Likewise.
5242         * config/mips/mips.c (struct machine_function): Remove
5243         embedded_pic_fnaddr_rtx.
5244         (TARGET_ENCODE_SECTION_INFO): Remove override.
5245         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
5246         (override_options): Remove -membedded-pic handling.
5247         (print_operand): Remove handling of '%S'.
5248         (mips_select_section: Remove -membedded-pic handling.
5249         (mips_encode_section_info): Delete.
5250         (mips_output_conditional_branch): Remove mention of -membedded-pic.
5251         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
5252         -membedded-pic handling.
5253         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
5254
5255 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
5256
5257         * var-tracking.c (frame_base_decl): Remove useless GTY.
5258
5259 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
5260
5261         * config/rs6000/rs6000.c (rs6000_override_options): Error when
5262         user wants altivec and e500 instructions.
5263
5264 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
5265
5266         PR target/14813
5267         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
5268         in .init_array section to ...
5269         * config/ia64/crtbegin.asm: Here.
5270
5271         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
5272         and hidden if HAVE_INITFINI_ARRAY is defined.
5273
5274 2004-04-21  James E Wilson  <wilson@specifixinc.com>
5275
5276         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
5277         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
5278         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
5279         (fp_register_operand, lo_operand): New.
5280         (mips_rtx_costs): Add TUNE_SB1 support.
5281         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
5282         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
5283         (mips_multipass_dfa_lookahead): New.
5284         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
5285         TUNE_SB1): New.
5286         (TARGET_SWITCHES): Add -mfp-exceptions support.
5287         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
5288         (BRANCH_COST): Fix whitespace.
5289         * config/mips/mips.md: Include sb1.md.
5290         * config/mips/sb1.md: New file.
5291         * doc/invoke.texi: Document -mfp-exceptions.
5292
5293         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
5294         comment.
5295         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
5296         (fixincl.o-warn): Delete.
5297
5298 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5299
5300         * config/rs6000/rs6000 (print_operand) ['z']:
5301         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
5302
5303 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
5304
5305         * config.gcc: Support --with-arch=iwmmxt for ARM.
5306
5307 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5308
5309         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
5310         in two more places; remove unneeded force_reg
5311
5312 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5313
5314         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
5315         for TARGET_MACHO.
5316         (print_operand): For TARGET_MACHO check to see if we need a stub
5317         and output one if we need it.
5318
5319         PR debug/15033
5320         * dwarf2out.c (rtl_for_decl_location): Check for NULL
5321         rtl.
5322
5323 2004-04-20  James E Wilson  <wilson@specifixinc.com>
5324
5325         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
5326         (vall_value_gp): Likewise.
5327
5328 2004-04-20  DJ Delorie  <dj@redhat.com>
5329
5330         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
5331         variables stored in word registers, then in memory.
5332
5333 2004-04-20  Eric Christopher  <echristo@redhat.com>
5334
5335         * cp/parser.c (cp_parser_declaration): Move translate
5336         up before tokens are lexed.
5337
5338 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
5339
5340         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
5341         (asin_optab, acos_optab): Define corresponding macros.
5342         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
5343         * genopinit.c (optabs): Implement asin_optab and acos_optab
5344         using asin?f2 and acos?f2 patterns.
5345         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
5346         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
5347         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
5348         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5349
5350         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
5351         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
5352         acos, acosf and acosl built-ins as inline x87 intrinsics.
5353
5354 2004-04-20  Paul Brook  <paul@codesourcery.com>
5355
5356         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
5357
5358 2004-04-20  Paul Brook  <paul@codesourcery.com>
5359
5360         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
5361
5362 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
5363
5364         Revert part of 2004-04-17 change that moved -frename-registers
5365         to -O1.  -frename-registers is buggy.
5366
5367         * toplev.c (flag_rename_registers): Initialize to 0.
5368         * doc/invoke.texi (Optimize options): Move -frename-registers
5369         to "Not triggered by any -O level" section.  Adjust commentary
5370         accordingly.
5371
5372 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
5373
5374         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
5375
5376 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
5377
5378         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
5379         for mflo and mfhi instructions.
5380         (mips_output_move): Remove mflo and mfhi handling.
5381         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
5382         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
5383         Likewise various define_peephole2s.
5384         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
5385         alternatives.
5386         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
5387         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
5388         (mfhilo_di, mfhilo_si): New patterns.
5389
5390 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5391
5392         * function.c (assign_parms): Force
5393         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
5394
5395 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5396
5397         * var-tracking.c (variable_part_different_p): Variable parts differ
5398         when the most recent locations differ.
5399
5400 2004-04-19  James E Wilson  <wilson@specifixinc.com>
5401
5402         * rtl.h (reg_set_last): Delete declaration.
5403         * rtlanal.c (reg_set_last): Delete.
5404
5405 2004-04-19  Roger Sayle  <roger@eyesopen.com>
5406
5407         * fold-const.c (fold_convert): Make function extern/public.
5408         * tree.h (fold_convert): Prototype here.
5409         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
5410         expand_builtin_strrchr, expand_builtin_strpbrk,
5411         expand_builtin_mempcpy, expand_builtin_bcopy,
5412         expand_builtin_bzero, expand_builtin_memcmp,
5413         expand_builtin_strcmp, expand_builtin_strncmp,
5414         stabilize_va_list, expand_builtin_sprintf,
5415         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
5416         fold_builtin_exponent, fold_builtin_mempcpy,
5417         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
5418         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
5419         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
5420
5421 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
5422
5423         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
5424         (move_from_CR_gt_bit): New.
5425         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
5426         E500.
5427         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
5428         E500.
5429
5430         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
5431         (tstsfeq_gpr): Same.
5432         (cmpsfgt_gpr): Same.
5433         (tstsfgt_gpr): Same.
5434         (cmpsflt_gpr): Same.
5435         (tstsflt_gpr): Same.
5436         (e500_cceq_ior_compare): New.
5437         (e500_flip_gt_bit): New.
5438
5439         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
5440         (print_operand): Add 'c' and 'D'.
5441         (rs6000_generate_compare): Rewrite to generate correct rtl.
5442         (rs6000_emit_sCOND): Handle E500.
5443         (output_cbranch): Adjust for changes in rs6000_generate_compare.
5444         (output_e500_flip_gt_bit): New.
5445
5446         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
5447         Protoize.
5448
5449 2004-04-19  Eric Christopher  <echristo@redhat.com>
5450
5451         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
5452
5453 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
5454
5455         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
5456         fix information.
5457
5458 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5459
5460         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
5461         download URL.
5462
5463 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
5464
5465         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
5466         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
5467
5468 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
5469
5470         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
5471         (fold_builtin): Update caller to match.
5472
5473         PR bootstrap/15009
5474         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
5475
5476         PR bootstrap/14999
5477         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
5478
5479 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5480
5481         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
5482
5483         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
5484         (expand_mult_highpart_optab): Likewise.
5485         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
5486
5487 2004-04-19  Paul Brook  <paul@codesourcery.com>
5488
5489         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
5490         floatunssisf2, floatunssidf2): New patterns.
5491
5492 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
5493
5494         PR other/14918
5495         * doc/invoke.texi (-fprofile-generate): Document requirement to
5496         use -fprofile-generate when linking.
5497
5498         * doc/extend.texi (Strong Using): Warn users against using this
5499         feature.
5500
5501 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
5502
5503         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
5504         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
5505         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
5506         * config/mips/mips.c (struct mips16_constant): Renamed from struct
5507         constant.  Propogate change throughout file.
5508         (struct machine_function): Remove insns_len.
5509         (mips_string_length, mips16_strings, string_constants): Delete.
5510         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
5511         when generating mips16 code.  Remove special mips16 treatment of
5512         string constants.
5513         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
5514         to have the form LABEL+CONSTANT.
5515         (mips_symbolic_address_p): Fix comment.
5516         (m16_usym8_4, m16_usym5_4): Delete.
5517         (mips_output_function_epilogue): Remove mips16 string handling.
5518         (mips_output_mi_thunk): Call mips16_lay_out_constants.
5519         (mips_select_section, mips_encode_section_info): Remove mips16
5520         string handling.
5521         (struct mips16_constant_pool): New.
5522         (add_constant): Take a mips16_constant_pool structure.  Keep pool
5523         sorted into order of ascending mode size.  Keep track of the highest
5524         possible start address, taking padding and the masking of the base PC
5525         value into account.
5526         (dump_constants_1): New function, split out from dump_constants.
5527         Handle vector constants.  Use gen_consttable_{int,float} rather than
5528         separate functions for each mode.
5529         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
5530         rather than separate functions for each alignment.
5531         (mips_find_symbol): Delete.
5532         (mips16_insn_length): New function, split out from
5533         mips16_lay_out_constants.
5534         (mips16_rewrite_pool_refs): New function.
5535         (mips16_lay_out_constants): Rework. Remove string handling.
5536         Always create an inline constant pool.
5537         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
5538         (UNSPEC_ALIGN): New constants.
5539         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
5540         (UNSPEC_ALIGN_[248]): Delete.
5541         (consttable_int, consttable_float, align): New patterns.
5542         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
5543
5544 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
5545
5546         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
5547         __unn_args_eq.
5548
5549 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
5550
5551         PR target/14715
5552         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
5553         with STARTING_FRAME_OFFSET.
5554
5555 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5556
5557         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
5558         * config/mips/mips.c (macc_msac_operand): New function.
5559         * config/mips/mips.md (*msac): Move after *macc.
5560         (*msac2): New.  Generalize macc-related peepholes so that they apply
5561         to msac too.
5562
5563 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
5564
5565         * opts.c (decode_options): Do not enable flag_rename_registers
5566         and flag_web at -O3.
5567         * toplev.c (flag_rename_registers): Initialize
5568         flag_rename_registers and flag_web to
5569         AUTODETECT_FLAG_VAR_TRACKING.
5570         (default_debug_hooks): New global.
5571         (process_options): Initialize default_debug_hooks.  Warn if
5572         -fvar-tracking specified but not supported by the current
5573         debug format.  Do not run var tracking at -O0 or if not
5574         supported by the current debug format, even if
5575         -fvar-tracking was given.  If -fno-rename-registers
5576         is not specified, always run register renaming if var
5577         tracking is supported by the default debugging information
5578         format for the target, and we are at -O1 or higher; similarly
5579         for -fweb, but only at -O2 or higher.
5580         * doc/invoke.texi (Optimize Options): Document this.
5581
5582 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5583
5584         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
5585         * configure: Regenerate.
5586
5587 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5588
5589         * gcc.c (used_arg): Check whether an option has been removed.
5590
5591 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5592
5593         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
5594         debugging on Solaris 7 and up.
5595
5596 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5597
5598         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
5599         IRIX 5 port.
5600         Remove -save-temps workaround, handled automatically.
5601         Require GNU binutils 2.15 for debugging.
5602         Remove SGI make warnings since GNU make is now required.
5603         (Specific, mips-sgi-irix6): Some markup fixes.
5604         Describe MIPSpro C problems and workarounds.
5605         Mention working O32 ABI support.
5606         Recommend GNU as 2.15 for O32 with debugging.
5607         Remove description of fixed structure pass/return bug.
5608
5609 2004-04-16  DJ Delorie  <dj@redhat.com>
5610
5611         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
5612         TYPE_FIELDS.
5613         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
5614
5615 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5616
5617         * pa.md: Remove unnecessary declarations for asm_out_file.
5618
5619         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
5620         SAR register.  Fix comment.
5621         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
5622         (%cr11).
5623
5624         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
5625
5626 2004-04-16  Nick Clifton  <nickc@redhat.com>
5627
5628         * config/arm/arm.c (arm_override_options): Revert previous patch.
5629         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
5630         be safely built.
5631
5632 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
5633
5634         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
5635         bug.
5636         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
5637         TARGET_DEFAULT): Changed. Ditto.
5638         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
5639         TARGET_ENDIAN_DEFAULT): Added. Ditto.
5640         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
5641         (TARGET_ENDIAN_DEFAULT): Added.
5642
5643 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5644
5645         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
5646         ATTR_CONST_NOTHROW_LIST.
5647
5648 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5649
5650         PR/middle-end 14915
5651         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
5652         BITS_BIG_ENDIAN.
5653
5654 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
5655
5656         * ra-debug.c (ra_print_rtx): Add break's to case legs.
5657
5658 2004-04-14  James E Wilson  <wilson@specifixinc.com>
5659
5660         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
5661
5662 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
5663
5664         * libada-mk.in: New file.
5665         * configure.ac: Create libada-mk from libada-mk.in.
5666         * configure: Regenerate.
5667
5668 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
5669
5670         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
5671         (logb_optab, ilogb_optab): Define corresponding macros.
5672         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
5673         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
5674         using logb?f2 and ilogb?i2 patterns.
5675         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
5676         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
5677         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
5678         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5679
5680         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
5681         and UNSPEC_XTRACT_EXP.
5682
5683         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
5684         patterns to implement fxtract x87 instruction.
5685         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
5686         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
5687         intrinsics.
5688         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
5689         x87's fxtract insn.
5690
5691 2004-04-14  Eric Christopher  <echristo@redhat.com>
5692
5693         * config/mips/t-elf: Enable multilibs by default.
5694
5695 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
5696
5697         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
5698         previous fix to check HAVE_return at runtime too.
5699
5700 2004-04-14  Nick Clifton  <nickc@redhat.com>
5701
5702         * config/arm/arm.c (arm_override_options): If the user has not
5703         specified an ABI, then default to AAPCS for the iWMMXt processor.
5704         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
5705         * config/arm/t-xscale-coff: Likewise.
5706
5707 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5708
5709         * builtins.c (fold_builtin_isdigit): New.
5710         (fold_builtin): Handle BUILT_IN_ISDIGIT.
5711         * defaults.h: Add TARGET_DIGIT0 and sort.
5712         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
5713
5714 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5715
5716         * builtins.c (fold_builtin_cabs, fold_builtin): Use
5717         `mathfn_built_in' to determine the new builtin.
5718         * fold-const.c (fold): Likewise.
5719
5720 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
5721
5722         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
5723         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
5724         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
5725         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
5726         (ASM_SPEC): Update accordingly.
5727         * config/mips/mips.c: Update after above renaming.
5728         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
5729         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
5730
5731 2004-04-13  James E Wilson  <wilson@specifixinc.com>
5732
5733         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
5734         increment errorcount and return false instead of true.
5735
5736 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
5737
5738         * optabs.c (expand_twoval_unop): Reorder function arguments.
5739         * builtins.c (expand_builtin_mathfn_3): Update calls to
5740         expand_twoval_unop.
5741
5742         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
5743         and UNSPEC_TAN_TAN. Add missing comment.
5744
5745         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
5746         patterns to implement fptan x87 instruction.
5747         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
5748         and tanl built-ins as inline x87 intrinsics. Define corresponding
5749         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
5750         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
5751         x87's fptan insn.
5752
5753 2004-03-13  Richard Henderson  <rth@redhat.com>
5754
5755         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
5756         for LABEL_REFs.
5757
5758         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
5759         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
5760         * doc/invoke.texi: Update to match.
5761
5762         * varasm.c (unlikely_text_section): Use assemble_align instead of
5763         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
5764         correct alignment argument.
5765
5766 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
5767
5768         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
5769         after setting reg_last_reload_reg for optional output reloads.
5770
5771 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
5772
5773         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
5774         Definition of these two macros are corrected by adding
5775         matchine right paren.
5776
5777 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
5778
5779         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
5780
5781 2004-04-12  Roger Sayle  <roger@eyesopen.com>
5782
5783         * config/i386/i386.c (output_387_reg_move): New function.
5784         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
5785         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
5786         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
5787         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
5788         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
5789
5790 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5791
5792         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
5793         TYPE_DECL.
5794         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
5795         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
5796         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
5797         Use skip_simple_arithmetic to find SAVE_EXPR.
5798         (force_type_save_exprs, force_type_save_exprs_1): New functions.
5799         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
5800         Properly chain multiple pointers.
5801         (copy_tree_r): Copy a TYPE_DECL.
5802         * tree.c (variably_modified_type_p): Add some missing tests and
5803         make some other minor changes.
5804         * tree.h (force_type_save_exprs): New declaration.
5805
5806 2004-04-12  Roger Sayle  <roger@eyesopen.com>
5807
5808         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
5809         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
5810         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
5811         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
5812         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
5813         x%-1 into 0 (or x&0 if x has side-effects).
5814
5815 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
5816
5817         * config/rs6000/rs6000.md: Document why a pattern is not
5818         available.
5819
5820         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
5821         of floats on the E500.
5822         (branch_positive_comparison_operator): Do not allow NE even on the
5823         E500.
5824
5825 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
5826
5827         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
5828         in_text_unlikely_section to in_unlikely_text_section.
5829
5830 2004-04-11  Roger Sayle  <roger@eyesopen.com>
5831
5832         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
5833         calling convention to allow a NULL_TREE to be returned.  Factor
5834         sanity checks from callers, return NULL_TREE when appropriate.
5835         (fold): Handle COMPOUND_EXPR operands of binary expressions
5836         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
5837         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
5838         calls to fold_binary_op_with_conditional_arg.
5839
5840 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5841
5842         * config/mips/iris5.h (current_section_flags):  Add
5843         in_unlikely_executed_text and default case.
5844
5845 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
5846
5847         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
5848         failure on solaris. Place ifdef HAVE_return around gen_ret call.
5849         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
5850         HAVE_return and place it around the place where it is needed.
5851
5852 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
5853
5854         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
5855         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
5856         and NORMAL_TEXT_SECTION_NAME.
5857         (unlikely_text_section): Check targetm.have_named_sections
5858         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
5859         instead of SECTION_FORMAT_STRING.
5860         * config/mips/iris5.h (current_section_name): Add
5861         in_unlikely_executed_text case and move the abort into the switch.
5862         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
5863         (NORMAL_TEXT_SECTION_NAME): Remove.
5864         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
5865         (SECTION_FORMAT_STRING): Remove.
5866         * defaults.h (SECTION_FORMAT_STRING): Remove.
5867         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
5868         (SECTION_FORMAT_STRING): Remove.
5869
5870 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
5871
5872         * c-typeck.c (common_type): Prefer long long to long when same
5873         precision.
5874
5875 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
5876
5877         PR 14887
5878         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
5879         mode argument.
5880         * config/ia64/ia64.c (ia64_hpux_file_end): Check
5881         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
5882
5883 2004-04-09  Roger Sayle  <roger@eyesopen.com>
5884
5885         * simplify-rtx.c (mode_signbit_p): New function to check whether
5886         an RTX is an immediate constant that represents the most significant
5887         bit of a given machine mode.
5888         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
5889         C is the sign bit.
5890         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
5891         when C2 is the sign bit.
5892         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
5893         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
5894         sign bit.
5895
5896 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5897
5898         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
5899         TYPE_MODE.
5900
5901 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
5902
5903         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
5904         of TREE_READONLY for types.
5905
5906 2004-04-09  Caroline Tice  <ctice@apple.com>
5907
5908         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
5909         (struct basic_block_def):  Add new field, partition.
5910         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
5911         definitions.
5912         (partition_hot_cold_basic_blocks): Add extern function
5913         declaration.
5914         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
5915         include statements.
5916         (N_ROUNDS): Increase the maximum number of rounds by 1.
5917         (branch_threshold): Add array value for new round.
5918         (exec_threshold): Add array value for new round.
5919         (push_to_next_round_p): New function.
5920         (add_unlikely_executed_notes): New function.
5921         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
5922         (mark_bb_for_unlikely_executed_section): New function.
5923         (add_labels_and_missing_jumps): New function.
5924         (add_reg_crossing_jump_notes): New function.
5925         (fix_up_fall_thru_edges): New function.
5926         (find_jump_block): New function.
5927         (fix_crossing_conditional_branches): New function.
5928         (fix_crossing_unconditional_branches): New function.
5929         (fix_edges_for_rarely_executed_code): New function.
5930         (partition_hot_cold_basic_blocks): New function.
5931         (find_traces):  Add an extra round for partitioning hot/cold
5932         basic blocks.
5933         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
5934         and only cold blocks, into the last (extra) round of collecting traces.
5935         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
5936         over crossing edges.
5937         (bb_to_key):  Add code to correctly identify cold blocks when
5938         doing partitioning.
5939         (connect_traces): Modify to connect all the non-cold traces first, then
5940         go back and connect up all the cold traces.
5941         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
5942         * cfg.c (entry_exit_blocks): Add initialization for partition field in
5943         entry and exit blocks.
5944         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
5945         if we are doing hot/cold partitioning.
5946         * cfgcleanup.c (cfglayout.h): Add new include statement.
5947         (try_simplify_condjump): Modify to not attempt on blocks with jumps
5948         that cross section boundaries.
5949         (try_forward_edges): Likewise.
5950         (merge_blocks_move_predecessor_nojumps): Likewise.
5951         (merge_blocks_move_successor_nojumps): Likewise.
5952         (merge_blocks_move): Likewise.
5953         (try_crossjump_to_edge): Modify to not attempt after we have done
5954         the block partitioning.
5955         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
5956         cross section boundaries.
5957         (try_optimize_cfg): Likewise.
5958         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
5959         jumps that cross section boundaries.
5960         * cfglayout.c (flags.h): Add new include statement.
5961         (update_unlikely_executed_notes):  New function.
5962         (fixup_reorder_chain):  Add code so when a new jumping basic block is
5963         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
5964         updated appropriately.
5965         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
5966         introduced by this optimization.
5967         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
5968         extern function declaration.
5969         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
5970         list of notes that can be deleted.
5971         (create_basic_block_structure):  Add initialization for partition field.
5972         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
5973         section boundaries.
5974         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
5975         cross section boundaries.
5976         (commit_one_edge_insertion): Add code so newly created basic block
5977         ends up in correct (hot or cold) section.  Modify to disallow
5978         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
5979         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
5980         crosses section boundaries.
5981         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
5982         cross section boundaries.
5983         (force_nonfallthru_and_redirect): Modify to make sure new basic block
5984         ends up in correct section, with correct notes attached.
5985         * common.opt (freorder-blocks-and-partition):  Add new flag for this
5986         optimization.
5987         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
5988         the end of functions are written into the correct (hot or cold)
5989         section.
5990         (dbx_source_file): Add code so writing debug file information
5991         doesn't incorrectly change sections.
5992         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
5993         in partitioning hot/cold basic blocks into separate sections.
5994         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
5995         section partitioning.
5996         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
5997         conditional branches can span all of memory.
5998         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
5999         unconditional branches can span all of memory.
6000         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
6001         (final_scan_insn):  Add code to check for NOTE instruction indicating
6002         whether basic block belongs in hot or cold section, and to make sure
6003         the current basic block is being written to the appropriate section.
6004         Also added code to ensure that jump table basic blocks end up in the
6005         correct section.
6006         * flags.h (flag_reorder_blocks_and_partition):  New flag.
6007         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
6008         one of the branches has a jump that crosses between sections.
6009         (find_if_case_2): Likewise.
6010         (ifcvt): Modify to not attempt to mark loop exit edges after
6011         hot/cold partitioning has occurred.
6012         * opts.c (decode_options): Code to handle new flag,
6013         flag_reorder_blocks_and_partition; also to turn it off if
6014         flag_exceptions is on.
6015         (common_handle_option): Code to handle new flag,
6016         flag_reorder_blocks_and_partition.
6017         * output.h (unlikely_text_section): New extern function declaration.
6018         (in_unlikely_text_section): New extern function declaration.
6019         * passes.c (rest_of_handle_stack_regs):  Add
6020         flag_reorder_blocks_and_partition as an 'or' condition for calling
6021         reorder_basic_blocks.
6022         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
6023         as an 'or' condition for calling reorder_basic_blocks.
6024         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
6025         * print-rtl.c (print_rtx): Add code for handling new note,
6026         NOTE_INSN_UNLIKELY_EXECUTED_CODE
6027         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
6028         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6029         cross between section boundaries.
6030         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
6031         indicating the basic block containing it belongs in the cold section.
6032         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6033         between hot and cold sections.
6034         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
6035         initialize this flag, and to tie it to the command-line option
6036         freorder-blocks-and-partition.
6037         * varasm.c (cfglayout.h):  Add new include statement.
6038         (unlikely_section_label_printed):  New global variable, used for
6039         determining when to output section name labels for cold sections.
6040         (in_section):  Add in_unlikely_executed_text to enum data structure.
6041         (text_section):  Modify code to use SECTION_FORMAT_STRING and
6042         NORMAL_TEXT_SECTION_NAME macros.
6043         (unlikely_text_section):  New function.
6044         (in_unlikely_text_section):  New function.
6045         (function_section):  Add code to make sure beginning of function is
6046         written into correct section (hot or cold).
6047         (assemble_start_function):  Add code to make sure stuff is written to
6048         the correct section.
6049         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
6050         to an if statement that was checking 'in_text_section'.
6051         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
6052         condition to an if statement that was checking 'in_text_section'.
6053         (default_section_type_flags_1):  Add check: if in cold section
6054         flags = SECTION_CODE.
6055         * config/darwin.c (darwin_asm_named_section):  Modify to use
6056         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
6057         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
6058         specifically for the i386.
6059         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
6060         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
6061         text string to something more informative.
6062         (NORMAL_TEXT_SECTION_NAME): Add new definition.
6063         (SECTION_FORMAT_STRING):  Add new definition.
6064         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
6065         '!in_unlikely_text_section' as an 'and' condition to an if statement
6066         that was already checking '!in_text_section'.
6067         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6068         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6069         sure these are properly defined for linux on ppc.
6070         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
6071         for this new flag.
6072         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
6073         reg_note.
6074         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6075         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
6076         these new macros.
6077
6078 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6079
6080         * function.c (gen_mem_addressof): When changing the RTX from a REG
6081         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6082
6083 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6084
6085         PR target/14888
6086         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6087         truncxfdf2_noop): Provide dummy "fmov" implementations.
6088
6089 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
6090
6091         * gcc.c (default_compilers): Add missing initializers.
6092
6093         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6094         Return 1 if file was successfully mapped.
6095
6096 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
6097
6098         PR pch/13419
6099         PR pch/14137
6100         Radar #: 3315288
6101         * doc/invoke.texi (Precompiled Headers): Suggest -o
6102         to put an output file in a particular place.  Be more detailed
6103         about which options affect PCH validity and which options
6104         might not work.
6105         * c-pch.c (pch_matching): New.
6106         (MATCH_SIZE): New.
6107         (struct c_pch_validity): New field 'match'.
6108         (pch_init): Handle pch_matching.
6109         (c_common_valid_pch): Check pch_matching.
6110
6111         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6112
6113 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
6114
6115         * doc/invoke.texi (Precompiled Headers): Warn about known
6116         problems.
6117
6118 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6119
6120         PR c++/14808
6121         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6122         to 1 if ASM_OUTPUT_DEF is defined.
6123         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6124         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6125         Set to non-zero iff not a one_only decl.
6126
6127 2004-04-08  Paul Brook  <paul@codesourcery.com>
6128
6129         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6130
6131 2004-04-08  Paul Brook  <paul@codesourcery.com>
6132
6133         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6134         PROMOTE_FOR_CALL_ONLY.
6135         * config/arm/arm-protos.h (arm_function_value): Declare.
6136         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6137         (TARGET_PROMOTE_PROTOTYPES): Return false.
6138         (arm_function_value): New function.
6139         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6140         (FUNCTION_VALUE): Call arm_function_value.
6141         * config/cris/cris.h (PROMOTE_MODE): Rename ...
6142         (PROMOTE_FUNCTION_MODE): ... to this.
6143         (PROMOTE_FOR_CALL_ONLY): Remove.
6144         * config/mmix/mmix.h: Likewise.
6145         * config/s390/s390.h: Likewise.
6146         * config/sparc/sparc.h: Likewise.
6147         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6148         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6149         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6150         (PROMOTE_FOR_CALL_ONLY): Remove.
6151
6152 2004-04-08  Joel Sherrill <joel@oarcorp.com>
6153
6154         PR ada/14538
6155         * ada/5rosinte.adb: Remove fake mprotect() body.
6156         * ada/5rosinte.ads: Add SA_SIGINFO.
6157         * ada/5rtpopsp.adb: Rewrite to use new interface.
6158         * ada/init.c: Reorder so the simple single OS conditional __rtems__
6159         is tested before more complex ones which mix UNIX and embedded
6160         systems in the conditional.
6161
6162 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
6163
6164         PR ada/14665
6165         * ada/osint.adb (Find_Program_Name): Rework to properly handle
6166         filenames which end in .exe or have versioning suffixes like VMS.
6167
6168 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
6169
6170         PR target/10129
6171         * config/darwin.c (darwin_encode_section_info): When the decl has
6172         a DECL_INITIAL, it is only defined also when it is not a common.
6173
6174 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6175
6176         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6177         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6178
6179 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6180
6181         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6182         global register variables.
6183
6184 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
6185
6186         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6187         rpc_xdr_lvalue_cast_b): New fixes.
6188         * fixinc/fixincl.x: Regenerate.
6189         * fixinc/tests/base/rpc/xdr.h: Add new tests.
6190
6191 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
6192
6193         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6194         to power4 and power5 entries.
6195
6196 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
6197
6198         * c-common.h (pending_lang_change): Mark for PCH.
6199
6200 2004-04-07  Caroline Tice  <ctice@apple.com>
6201
6202         * gcc.c (main): Move 'break' in main loops (on an error)
6203         to wait until error processing has occurred.
6204
6205 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
6206
6207         * config.gcc: Stop changing enable_threads midstream.
6208         Replace uses of enable_threads_flag with enable_threads.
6209         * configure.ac: Replace uses of enable_threads_flag with
6210         enable_threads.  Improve autoconf quotation in one place.
6211         * configure: Regenerate.
6212
6213 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
6214
6215         * builtins.c: Implement support for sincos function.
6216         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
6217         BUILT_IN_COS{,F,L}.
6218         (expand_builtin_mathfn_3): New function.
6219         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
6220         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
6221         flag_unsafe_math_optimization is set.
6222
6223         * optabs.h (enum optab_index): Add new OTI_sincos.
6224         (sincos_optab): Define corresponding macro.
6225
6226         * optabs.c (init_optabs): Initialize sincos_optab.
6227         (expand_twoval_unop): New function.
6228
6229         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
6230         patterns.
6231
6232         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
6233         and UNSPEC_SINCOS_SIN.
6234
6235         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
6236         sincosxf3): New patterns to implement sincos, sincosf and sincosl
6237         built-ins as inline x87 intrinsics. Define splits for
6238         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
6239         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
6240         sincos patterns.
6241         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
6242         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
6243
6244         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
6245         x87's fsincos insn.
6246
6247 2004-04-06  Devang Patel  <dpatel@apple.com>
6248
6249         PR 14467
6250         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
6251
6252 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6253
6254         * doc/install.texi: Update HP-UX 11 installation procedure.
6255
6256 2004-04-06  Paul Brook  <paul@codesourcery.com>
6257
6258         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
6259
6260 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6261
6262         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
6263         when the TLS address is generated by a function call.
6264         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
6265         (tls_local_dynamic): Likewise.
6266
6267 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
6268
6269         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
6270         and TYPE_VOLATILE.
6271
6272 2004-04-05  Caroline Tice  <ctice@apple.com>
6273
6274         * gcc.c (combine_flag): New global variable, for new driver option.
6275         (struct compiler): Add two new fields, to be used when
6276         combining multiple input files in a single pass (IMA).
6277         (default_compilers):  Add values for the new fields to all
6278         compiler entries. Modify the "@c" compiler entry for doing IMA
6279         properly with "-save-temps" and the "combine" flag.
6280         (option_map):  Add new driver option, "--combine", to tell driver
6281         to pass multiple input files to compiler at one time.
6282         (have_o_argbuf_index): New global variable.
6283         (store_arg): Modify to assign value to have_o_argbuf_index.
6284         (struct infile):  Add three new fields, to help with IMA.
6285         (display_help): Add help for new "combine" option.
6286         (process_command): Remove local variable have_o; add code to check
6287         for new "combine" option; remove assignment to combine_inputs.
6288         (do_spec_1):  Modify to deal with IMA better.
6289         (main): Make variable 'lang_n_infiles' local to entire function
6290         rather than to a single block.  Use flag combine_flag to
6291         determine whether to do IMA or not; Modify loop initializing
6292         infiles to deal properly with linker files.
6293         Add code for doing preprocessing in presence of
6294         IMA with "-save-temps" flag.  Modify "main" loop to handle
6295         multiple input files, in multiple languages, with or without
6296         preprocessing,  gracefully.
6297         * toplev.c (set_src_pwd): Modify to not complain if attempting to
6298         re-set it to same directory it's previously been set to (avoid
6299         irritating, meaningless warning messages when doing IMA with
6300         save-temps).
6301         * doc/invoke.texi: Add "-combine" to list of Overall Options;
6302         remove documentation about IMA that is no longer accurate; Add
6303         documentation explaining what "-combine" does.
6304         * ada/lang-specs.h: Add initialization values for new fields in
6305         "struct compiler".
6306         * cp/lang-specs.h: Likewise.
6307         * f/lang-specs.h: Likewise.
6308         * java/lang-specs.h: Likewise.
6309         * objc/lang-specs.h: Likewise.
6310         * treelang/lang-specs.h: Likewise.
6311
6312 2004-04-05  David Edelsohn
6313
6314         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
6315         symbol handling.
6316
6317 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
6318             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6319
6320         PR optimization/13424 (hppa), bootstrap/14462, c/14828
6321         * pa.md: Use replace_equiv_address to retain the attributes of the
6322         memory operands used in the split and peephole2 patterns for optimizing
6323         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
6324
6325 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6326
6327         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
6328         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6329         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
6330         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
6331         PARM_DECL.
6332         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
6333         for a type.
6334         * print-tree.c (print_node): Properly handle side-effects, readonly,
6335         and constant flags.
6336         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
6337         and TREE_CONSTANT if not a type.
6338         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
6339         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
6340         (NON_TYPE_CHECK): New macro.
6341         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
6342
6343 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
6344
6345         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
6346         to DWARF2_DEBUG unconditionally.
6347         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
6348
6349 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
6350             Nathanael Nerode  <neroden@gcc.gnu.org>
6351
6352         PR target/14548
6353         * config.host: Set the shell variable host_can_use_collect2.
6354         Set it to yes by default, and to no for alpha*-dec-*vms*,
6355         i[34567]86-*-mingw32*, and powerpc-*-beos*.
6356         * configure.ac: Set and substitute the shell variable collect2.
6357         Give an error if use_collect2 is yes and host_can_use_collect2 is
6358         no.
6359         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
6360         uses.  Initialize to @collect2@.
6361         (STAGESTUFF): Remove $(USE_COLLECT2).
6362         * config/alpha/x-vms (USE_COLLECT2): Don't set.
6363         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
6364         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
6365         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
6366         * configure: Regenerate.
6367
6368 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6369
6370         * simplify-rtx.c (simplify_binary_operation): Constant fold
6371         DIV, MOD, UDIV and UMOD using div_and_round_double.
6372
6373 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6374
6375         PR c++/14804
6376         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
6377         RECORD_TYPEs.
6378
6379 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6380
6381         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
6382         documentation.
6383
6384 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6385
6386         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
6387         updating the REG_EQUAL note on an insn's libcall_insn.
6388
6389 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6390
6391         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
6392
6393 2004-04-03  Roger Sayle  <roger@eyesopen.com>
6394
6395         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
6396         with reorder_operands_p.
6397
6398 2004-04-03  Jan Hubicka  <jh@suse.cz>
6399
6400         * md.texi (vec_set, vec_extract, vec_init): Document.
6401
6402 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
6403
6404        * opts.c (decode_options): Do function inlining with very small
6405        max-inline-insns-* parameters when optimizing for size.
6406
6407 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
6408
6409         * config/i386/i386.h (TARGET_NOCONA): New macro.
6410         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
6411         (processor_type): Add PROCESSOR_NOCONA.
6412
6413         * config/i386/i386.md (cpu): Add nocona to the attribute values.
6414
6415         * config/i386/i386.c (nocona_cost): New variable.
6416         (m_NOCONA): New macro.
6417         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
6418         x86_branch_hints, x86_use_sahf, x86_single_stringop,
6419         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
6420         x86_integer_DFmode_moves, x86_partial_reg_dependency,
6421         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
6422         x86_decompose_lea, x86_arch_always_fancy_math_387,
6423         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
6424         x86_ext_80387_constants, x86_four_jump_limit):
6425         (override_options): Add nocona_cost to processor_target_table.
6426         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
6427         (incdec_operand): Prevent inc/dec generation for Nocona too.
6428         (ix86_issue_rate): Add PROCESSOR_NOCONA.
6429
6430 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
6431
6432         * rtlanal.c (find_reg_note): Manually
6433         unswitch the loop.
6434
6435 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
6436
6437         * genemit.c (gen_split): Change prototype of generated code.
6438         * genrecog.c (write_action): Adjust prototype for and calls to
6439         gen_split_*.
6440         * gensupport.c (struct queue_elem): Add split field.
6441         (queue_pattern): Return a value.  Clear the split field.
6442         (process_rtx): Maintain an association between an insn and the
6443         split generated from it for a define_insn_and_split.
6444         (process_one_cond_exec): Generate a new split for a
6445         define_insn_and_split.
6446         * config/arm/arm-protos.h (arm_split_constant): Add insn
6447         parameter.
6448         (emit_constant_insn): New function.
6449         (arm_gen_constant): Use it.
6450         * config/arm/arm.md: Adjust calls to arm_split_constant.
6451
6452 2004-04-02  Jan Hubicka  <jh@suse.cz>
6453
6454         * cgraph.c: Add overall comment.
6455         (cgraph_inline_hash): New global variable.
6456         (cgraph_create_node): Break out from ...
6457         (cgraph_node): ... here.
6458         (cgraph_edge): New function.
6459         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
6460         (cgraph_remove_edge): Accept edge, intead of source and destination.
6461         (cgraph_redirect_edge_callee): New.
6462         (cgraph_remove_node): Update all new datastructures.
6463         (cgraph_record_call, cgraph_remove_call): Kill.
6464         (dump_cgraph_node): Break out from ... ; dump new datastructures.
6465         (dump_cgraph): ... here.
6466         (cgraph_function_possibly_inlined_p): Use new hashtable.
6467         (cgraph_clone_edge, cgraph_clone_node): New.
6468         * cgraph.h: Include hashtab.h
6469         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
6470         fields, add inlined_to pointer.
6471         (cgraph_node): Add pointer to next_clone.
6472         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
6473         (cgraph_remove_call, cgraph_record_call): Kill.
6474         (cgraph_inline_hash): Declare.
6475         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
6476         cgraph_redirect_edge_callee): Declare.
6477         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
6478         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
6479         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
6480         * cgraphunit.c: Add overall comment.
6481         (cgraph_optimize_function): Kill.
6482         (cgraph_assemble_pending_functions): Do not assemble inline clones.
6483         (cgraph_finalize_function): Update call of cgraph_remove_node
6484         (record_call_1): Record call sites.
6485         (cgraph_create_edges): Accept node instead of decl argument.
6486         (error_found): New static variable.
6487         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
6488         (cgraph_analyze_function): Update for new datastructures.
6489         (cgraph_finalize_compilation_unit): Plug memory leak.
6490         (cgraph_optimize_function): Kill.
6491         (cgraph_expand_function): Do not use cgraph_optimize_function.
6492         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
6493         cgraph_inlined_callees): Kill.
6494         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
6495         clones.
6496         (estimate_growth): Simplify.
6497         (cgraph_clone_inlined_nodes): New function.
6498         (cgraph_mark_inline_edge): Re-implement.
6499         (cgraph_mark_inline): Likewise.
6500         (cgraph_check_inline_limits): Simplify.
6501         (cgraph_recursive_inlining_p): New.
6502         (update_callee_keys): Break out from ...
6503         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
6504         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
6505         Likewise.
6506         (cgraph_expand_all_functions):  Remove inline clones from the ordered
6507         list.
6508         (cgraph_preserve_function_body_p): New predicate.
6509         (cgraph_optimize): Verify cgraph.
6510         * function.h (struct function): Add fields saved_tree/saved_args.
6511         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
6512         * toplev.c (rest_of_compilation): Do not free cfun.
6513         * tree-inline.c: Include function.h
6514         (struct inline_data): Add saving_p field; replace decl/current_decl by
6515         node/current_node.
6516         (insert_decl_map): New function.
6517         (copy_body_r): Handle saving; update cgraph datastructure.
6518         (copy_body): Handle recursive inlining.
6519         (initialize_inlined_parameters): Likewise.
6520         (expand_call_inline): Propagate node attributes; update cgraph.
6521         (optimize_inline_calls): Verify that datastructure still match.
6522         (save_body): New function.
6523         * tree-inline.h (save_body): New.
6524         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
6525         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
6526         * langhooks.c (lang_hooks): Add update_decl_after_saving.
6527
6528 2004-04-01  Serge Belyshev  <1319@bot.ru>
6529
6530         PR target/14702
6531         * config/i386/i386.md: fix source operand constraints in
6532         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
6533
6534 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
6535
6536         * fold-const.c (folda): Preserve types of comparisons.
6537
6538 2004-04-01  Richard Henderson  <rth@redhat.com>
6539
6540         * toplev.c (backend_init): Move init_optimization_passes call ...
6541         (lang_dependent_init): ... here.
6542
6543 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
6544             Jakub Jelinek  <jakub@redhat.com>
6545
6546         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
6547         -lgcc --as-needed -lgcc_s --no-as-needed by default.
6548         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
6549         * configure: Rebuilt.
6550         * config.in: Rebuilt.
6551         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
6552         (stage2-start, stage3-start, stage4-start): Likewise.
6553         (stageprofile-start, stagefeedback-start): Likewise.
6554
6555 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
6556
6557         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
6558         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6559         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6560         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6561         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
6562         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
6563         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
6564         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
6565         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
6566         * config/sparc/t-linux: Removed.
6567
6568 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
6569
6570         PR c++/14755
6571         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
6572         "bitfld++ == const" to "++bitfld == const + incr" transformations.
6573
6574 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6575
6576         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
6577         * stor-layout.c (layout_decl): Likewise.
6578         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
6579         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
6580         * print-tree.c (print_node): Handle various used of unsigned_flag.
6581         * tree.def (BIT_FIELD_REF): Update comment.
6582         * tree.h (TREE_UNSIGNED): Deleted.
6583         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
6584
6585 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6586
6587         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
6588         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
6589         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
6590         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
6591         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
6592         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
6593         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
6594         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
6595         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
6596         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
6597         REAL_TYPE, not INTEGER_TYPE.
6598         (layout_type, case VECTOR_TYPE): Simplify code.
6599         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
6600         * tree.h: Update comments.
6601         (STRIP_NOPS): Use TYPE_UNSIGNED.
6602         (TYPE_UNSIGNED): New macro.
6603         (TYPE_TRAP_SIGNED): Remove now redundant check.
6604         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
6605
6606 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6607
6608         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
6609
6610 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
6611
6612         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
6613         Add darwin-fpsave.asm, darwin-vecsave.asm,
6614         and darwin-world.asm.
6615         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
6616         as the asm files contain altivec instructions.
6617         * config/rs6000/darwin-fpsave.asm: New file.
6618         * config/rs6000/darwin-vecsave.asm: New file.
6619         * config/rs6000/darwin-world.asm: New file.
6620
6621 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
6622
6623         * gengtype-yacc.y (option, stringseq): Add missing
6624         terminating semicolon.
6625
6626 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
6627
6628         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
6629         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
6630         tls_dtprel_ha_32, tls_dtprel_ha_64,
6631         tls_dtprel_lo_32, tls_dtprel_lo_64,
6632         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
6633         tls_tprel_ha_32, tls_tprel_ha_64,
6634         tls_tprel_lo_32, tls_tprel_lo_64,
6635         tls_got_tprel_32, tls_got_tprel_64,
6636         tls_tls_32, tls_tls_64): Replace register_operand with
6637         gpc_reg_operand.
6638
6639 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
6640
6641         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
6642         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
6643         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
6644         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
6645         *ctrdi_internal6): Replace register_operand with
6646         nonimmediate_operand.
6647
6648 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
6649
6650         * fold-const.c (fold): Reassociate multiply expression
6651         with an adjacent non-multiply expression to use
6652         architecture's multiply-add instruction.
6653
6654 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
6655
6656         * gengtype.c (create_option): New function.
6657         * gengtype.h: Prototype it.
6658         * gengtype-yacc.y (stringseq): New rule.
6659         (option): Use create_option.  Add new bare ID production.  Use
6660         stringseq, not STRING directly.
6661
6662         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
6663         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
6664         * varray.h, config/alpha/alpha.c:
6665         Use new shorter form of GTY markers.
6666
6667         * doc/gty.texi: Rewrite.
6668
6669 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
6670
6671         * config/darwin.c (machopic_function_base_name):
6672         Remove current_name and getting the name of the
6673         current function.
6674
6675 2004-03-30  Nick Clifton  <nickc@redhat.com>
6676
6677         * config/arm/arm.md (thumb_jump): Reduce the backward branch
6678         range, and increase the forward branch range, to allow for
6679         the fact that the PC will be off by 4.
6680
6681 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
6682
6683         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
6684
6685 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6686
6687         * config/rs6000/rs6000.c (output_vec_const_move):
6688         Find all cases of EASY_VECTOR_15_ADD_SELF.
6689         (easy_vector_constant_add_self): Accept
6690         all vector constant loadable by vsplt* and vadd*.
6691         (easy_vector_same): Use easy_vector_splat_const.
6692         (easy_vector_const): Use easy_vector_splat_const.
6693         (easy_vector_splat_const): New function.
6694         (gen_easy_vector_constant_add_self): New function.
6695
6696         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
6697         New prototype.
6698
6699         * config/rs6000/altivec.md (movv4si splitter): Change to
6700         emit move insn with halfed vector constant.
6701         (*movv8hi splitter): Likewise.
6702         (*movv16qi splitter): Likewise.
6703
6704 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6705
6706         PR 11591
6707         * config/rs6000/rs6000.c (rs6000_legitimate_address):
6708         Allow any offset to argument pointer in no-strict case.
6709
6710 2004-03-30  Jan Hubicka  <jh@suse.cz>
6711
6712         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
6713         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
6714         dump file in non-unit-at-a-time mode.
6715
6716 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
6717
6718         * config/cris/cris.h: Correct #ifdef to test for
6719         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
6720         HAVE_AS_MUL_BUG_ABORT_OPTION.
6721
6722 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6723
6724         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
6725         the address inside the old RTL.
6726
6727 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
6728
6729         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
6730         (struct c_binding, struct c_scope): Add chain_next
6731         attributes to GTY markers.
6732         (struct lang_identifier, struct lang_tree_node): Define
6733         here...
6734         * c-tree.h: ... not here.  No longer need to declare struct
6735         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6736         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
6737         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6738
6739         PR 14734, 11944
6740         * c-decl.c (get_parm_info): If error_mark_node is encountered
6741         in the bindings chain, unbind and discard it; don't abort.
6742
6743 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
6744             Dorit Naishlos <dorit@il.ibm.com>
6745
6746         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
6747         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
6748
6749 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
6750
6751         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
6752
6753         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
6754         (m68hc11_attribute_table): New attribute "page0" to mark a global
6755         variable as being allocated from within page0 section.
6756         (m68hc11_encode_label): New function.
6757         (m68hc11_strip_name_encoding): New function.
6758         (m68hc11_page0_symbol_p): New function.
6759         (m68hc11_indirect_p): Accept global variables marked in page0.
6760         (m68hc11_encode_section_info): Lookup "page0" attribute.
6761
6762         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
6763         represents access to page0 variables.
6764
6765         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
6766         ("*logicalsi3_silshl16_zext"): Likewise.
6767         ("*ashldi3_const32"): Likewise.
6768         (peephole2 ashift): Likewise.
6769
6770 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6771
6772         * c-tree.h (C_DECL_REGISTER): New.
6773         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
6774         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
6775         (build_array_ref, c_mark_addressable): Set and use it.
6776         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
6777         Allow structures with volatile fields to be declared register.
6778         Don't check TREE_ADDRESSABLE before warning about taking address
6779         of register.
6780         * c-decl.c (finish_decl): Don't allow structures with volatile
6781         fields to be placed in named register.
6782         * doc/trouble.texi: Remove reference to structures with volatile
6783         fields in registers.
6784
6785 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
6786
6787         * function.c (thread_prologue_and_epilogue): Move
6788         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
6789         before the epilogue.
6790
6791 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
6792
6793         * expr.c (store_constructor): Use gen_int_mode to correctly
6794         sign-extend CONST_INT value.
6795
6796 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6797
6798         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
6799         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
6800         * doc/extend.texi: Likewise.
6801
6802 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
6803
6804         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
6805           with TYPE_ORIG_SIZE_TYPE.
6806
6807 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
6808
6809         PR 14219
6810         * c-typeck.c (build_binary_op): Do not allow comparisons of
6811         vectors.
6812
6813 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
6814
6815         * config.gcc: Remove sparc-tti-*.
6816         * config/sparc/pbd.h: Delete.
6817
6818         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
6819         * config/sparc/aout.h: Likewise.
6820
6821         * config/sparc/sparc.h: Remove if 0'd code.
6822         * config/sparc/sparc.md (call): Remove if 0'd code.
6823         (call_value): Likewise.
6824         (nonlocal_goto): Likewise.
6825         (unimp_insn): Delete.
6826
6827 2004-03-25  Roger Sayle  <roger@eyesopen.com>
6828
6829         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
6830         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
6831
6832 2004-03-25  Richard Henderson  <rth@redhat.com>
6833
6834         PR 11527
6835         * c-typeck.c (pop_init_level): Emit pending init elements earlier
6836         rather than later.
6837
6838 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6839
6840         * builtins.c (fold_builtin): Fix error in last change.
6841
6842 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
6843
6844         * config/mips/mips.h: Formatting fix.
6845
6846 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6847
6848         * builtins.def: Add ctype builtins.
6849         * doc/extend.texi: Likewise.
6850
6851 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6852
6853         * builtins.c (fold_builtin): Add new builtin optimizations for
6854         sqrt and/or cbrt.
6855         * fold-const.c (fold): Likewise.
6856
6857 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
6858
6859         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
6860         (rs6000_sched_groups): New variable.
6861         (processor_target_table): Add power5.
6862         (rs6000_override_options): Set rs6000_sched_insert_nops,
6863         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
6864         from rs6000_sched_groups.
6865         (output_cbranch): Use rs6000_always_hint.
6866         (rs6000_variable_issue): Use rs6000_sched_groups.
6867         (rs6000_adjust_cost): Add CPU_POWER5.
6868         (is_microcoded_insn): Use rs6000_sched_groups.
6869         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
6870         Return 2 for POWER5 cracked instructions.
6871         (is_cracked_insn): Use rs6000_sched_groups.
6872         (is_branch_slot_insn): Use rs6000_sched_groups.
6873         (rs6000_issue_rate): Add CPU_POWER5.
6874         (rs6000_sched_finish): Use rs6000_sched_groups.
6875         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
6876         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
6877         (DEFAULT_SCHED_COSTLY_DEP): Delete.
6878         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
6879         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
6880         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
6881         * config/rs6000/power5.md: New file.
6882         * doc/invoke.texi: Add power5 option.
6883
6884 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
6885
6886         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
6887         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
6888         * doc/invoke.texi: Fix a typo.
6889
6890 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
6891
6892         PR optimization/9707.
6893         * stmt.c (emit_case_nodes): Emit equality comparisons instead
6894         of recursing if both children are single-valued cases with no
6895         children.
6896
6897 2004-03-25  Paul Brook  <paul@codesourcery.com>
6898
6899         * config/arm/arm.c (vfp_print_multi): Remove.
6900         (arm_output_fldmx): New function.
6901         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
6902         (arm_expand_prologue): Update to match.
6903         (arm_get_vfp_saved_size): New Function.
6904         (arm_get_frame_offsets): Use it.
6905         (arm_output_epilogue): Use new functions.
6906
6907 2004-03-24  Richard Henderson  <rth@redhat.com>
6908
6909         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
6910         (reg_known_value, reg_known_value_size): Likewise; make static.
6911         (reg_known_equiv_p): Make static.
6912         (clear_reg_alias_info): Update for new indexing.
6913         (get_reg_known_value, set_reg_known_value): New.
6914         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
6915         (canon_rtx): Use them.
6916         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
6917         Don't play queer offsetting games with reg_known_value and
6918         reg_known_equiv_p.
6919         (end_alias_analysis): Free reg_known_value with gc.
6920         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
6921         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
6922         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
6923         functions instead.
6924
6925 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
6926
6927         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
6928         config/i386/mmintrin.h: Update copyright.
6929
6930 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
6931
6932         * configure.ac: Add --enable-werror-always (for top level bootstrap
6933         support).
6934         * configure: Regenerate.
6935
6936 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
6937
6938         * objc/objc-act.c (objc_comptypes): Treat comparisons
6939         between 'Class' and '<class> *' as explicitly invalid.
6940
6941 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
6942
6943         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
6944         (-fprofile-values): Add enabled with profile-{generate,use}.
6945         (-fvpt): Same.
6946         (-ftracer): Add enabled with profile-use.
6947         (-funit-at-a-time): Add enabled at -O2,-O3.
6948         (-funroll-loops): Add enabled with profile-use.
6949         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
6950         (max-gcse-passes): Mention default.
6951         (max-cse-path-length): Mention default.
6952
6953 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
6954
6955         * Makefile.in (STRICT2_WARN): Reorder.
6956         * configure.ac: Check for -Wold-style-definition, and use it
6957         in strict1_warn if it's available.
6958         * configure: Regnerate.
6959
6960 2004-03-24  Paul Brook  <paul@nowt.org>
6961
6962         * config.gcc <arm>: Add --with-abi=
6963         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
6964         thumb_far_jump_used): Remove prototypes.
6965         (arm_needs_doubleword_align): Add prototype.
6966         (thumb_compute_initial_elimination_offset): Ditto.
6967         * config/arm/arm.c (arm_get_frame_offsets): New function.
6968         (use_return_insn, output_return_instruction, arm_output_epilogue,
6969         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
6970         arm_expand_prologue, thumb_expand_epilogue): Use it.
6971         (arm_abi, target_abi_name, all_arm_abis): New variables.
6972         (arm_override_options): Set them.  Set structure padding for AAPCS.
6973         (arm_return_in_memory): Update ABI check.
6974         (arm_init_cumulative_args): Initialize can_split.
6975         (arm_needs_doubleword_align): New function.
6976         (arm_function_arg): Don't split args after pushing to stack. Handle
6977         doubleword/even reg alignment.
6978         (arm_va_arg): Handle all doubleword aligned args.
6979         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
6980         on ABI, not CPU.
6981         (arm_compute_save_reg0_reg12_mask): Fix comment.
6982         (thumb_get_frame_size, thumb_get_frame_size): Remove.
6983         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
6984         value for alignment.
6985         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
6986         to match.
6987         (thumb_compute_initial_elimination_offset): New function.
6988         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
6989         unneccessary rounding.
6990         * config/arm/arm.h (target_abi_name): Declare.
6991         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
6992         arm_abi_type, ARM_DEFAULT_ABI): Define.
6993         (ARM_FLAG_ATPCS): Remove.
6994         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
6995         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
6996         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
6997         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
6998         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
6999         Contitionalize on ABI, not CPU.
7000         (struct arm_stack_offsets): Define.
7001         (struct machine_function): Add stack_offsets.  Remove frame_size.
7002         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7003         pushed.
7004         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7005         doubleword alignment.
7006         (THUMB_INITIAL_ELIMINATION_OFFSET,
7007         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7008         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7009         * config/arm/arm.md (align_8): Enable for all targets.
7010         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7011         (ARM_DEFAULT_ABI): Define.
7012         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7013         -mstructure-size-boundary.
7014
7015 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7016
7017         * configure.ac: Check for -Wno-variadic-macros; don't use
7018         -pedantic (in stage 1 or a simple 'make all') unless it's available,
7019         and if it's available, use it.  Also, clean up check for
7020         -Wno-long-long.
7021         * configure: Regenerate.
7022
7023 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7024
7025         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7026         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7027         (MULTILIB_DEFAULTS): Use it.
7028         (MIPS_CPU_STRING_DEFAULT): Remove.
7029         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7030         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
7031         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
7032         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7033         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
7034         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7035         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
7036         accordingly.
7037
7038 2004-03-24  DJ Delorie  <dj@redhat.com>
7039             Richard Sandiford  <rsandifo@redhat.com>
7040
7041         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7042         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7043         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7044         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7045         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7046         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7047         if TARGET_FIX_VR4122.
7048         * config/mips/mips.md (define_attr length): Account for nops inserted
7049         after macc and dmult when using -mfix-vr4122-bugs.
7050         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7051         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7052         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
7053         * config/mips/vr4122-div.S: New file.
7054         * doc/invoke.texi: Document -mfix-vr4122-bugs.
7055
7056 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7057
7058         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7059         (TARGET_MIPS4130): New macro.
7060         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7061         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7062         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7063         with PROCESSOR_R4130.
7064         * config/mips/mips.md (define_attr cpu): Add r4130.
7065         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7066
7067 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7068             Richard Sandiford  <rsandifo@redhat.com>
7069
7070         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7071
7072 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
7073
7074         PR preprocessor/14438
7075         * cpplib.c (do_pragma): Remove line_change call after pragma
7076         handler.
7077
7078 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
7079
7080         * doc/extend.texi (ARM Built-in Functions): Replace with correct
7081         declarations.
7082
7083 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7084
7085         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7086         if flag_unsafe_math_optimizations.
7087         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7088         and TARGET_80387 expand using truncdfsf2_noop pattern.
7089         (truncxfsf2): Likewise using truncxfsf2_noop.
7090         (truncxfdf2): Likewise using truncxfdf2_noop.
7091         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7092
7093 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
7094
7095         * hooks.c (hook_constcharptr_tree_null): New hook.
7096         * hooks.h (hook_constcharptr_tree_null): New prototype.
7097         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7098         * target.h (mangle_fundamental_type): New target hook.
7099         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7100         target hook at rs6000_mangle_fundamental_type.
7101         (rs6000_mangle_fundamental_type): New function.
7102         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7103
7104 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
7105
7106         PR 12267, 12391, 12560, 13129, 14114, 14133
7107         * c-tree.h: Forward declare struct c_binding.  Declare
7108         c_override_bindings_to_false.  Update prototypes.
7109         (struct lang_identifier): Update comments.  Change fields to be
7110         struct c_binding *.
7111         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7112         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7113         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7114         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7115         * c-common.h: Update prototypes.
7116         * c-decl.c (struct c_scope): Update commentary.  Remove names,
7117         names_last, parms, parms_last, tags, and shadowed fields.  Add
7118         bindings and depth fields.
7119         (scope_freelist): Move to more appropriate location.
7120         (c_print_identifier): Update for changes to struct lang_identifier.
7121         (objc_mark_locals_volatile): Update for new bindings structures.
7122         (global_bindings_p): Honor c_override_global_bindings_to_false.
7123         (pushlevel): Rename to push_scope; take no arguments; use the
7124         scope_freelist; initialize scope->depth and check for overflow.
7125         (poplevel): Rename to pop_scope; totally rewritten for new bindings
7126         structures.
7127         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7128         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
7129         Improve some commentary.  Adjust handling of forward parm decls.
7130         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7131         Preserve C_DECL_IN_EXTERNAL_SCOPE.
7132         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
7133         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
7134         decls.  Rewrite for new bindings structures.  Improve commentary.
7135         Eliminate the copy_node call.
7136         (implicit_decl_warning): Use the "diag" idiom (as seen in
7137         locate_old_decl) to reduce code duplication; call locate_old_decl
7138         if appropriate.  Relocate to remove need for forward declaration.
7139         (implicitly_declare): Adjust for new bindings structures.  Kludge
7140         around Objective-C not-really-builtin functions.
7141         (undeclared_variable): Improve diagnostics.  If current_function_decl
7142         is nonnull but current_function_scope is null, use current_scope.
7143         Use bind.
7144         (lookup_tag): Adjust for new bindings structures.  Kludge around
7145         Objective-C's tag declarations that wind up in the external scope.
7146         (lookup_name): Adjust for new bindings structures.  Kludge around
7147         c-common.c's pseudo-typedefs that wind up in the external scope.
7148         (lookup_name_current_level): Rename lookup_name_in_scope; take a
7149         second argument indicating the scope to examine; rewrite for
7150         new bindings structures.
7151         (c_init_decl_processing): Adjust for renamed functions.  Do not
7152         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7153         First scope pushed is the external scope, not the global scope.
7154         (builtin_function): Use bind, not pushdecl.  Adjust other bits
7155         for new data structures.  Keep track of builtins that should be
7156         made visible automatically.
7157         (start_decl): Adjust diagnostics.  Remove unnecessary call to
7158         expand_decl.
7159         (grokparms): Return 0 if arg_types is error_mark_node.
7160         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7161         reversed sense.  Rewrite for new bindings structures.  Do not
7162         leave any decls in the scope, to prevent pop_scope from doing
7163         contradictory things with them.
7164         (finish_struct, finish_enum): Remove redundant diagnostics.
7165         (build_enumerator): Don't cascade diagnostics for error_mark_node.
7166         Mark location where -pedantic changes the meaning of the program.
7167         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7168         parameter decls into the function's scope structure using bind.
7169         Warn here about function definitions in the wrong style.
7170         Adjust diagnostics.
7171         (store_parm_decls): Correct the determination of whether a
7172         function was defined with a prototype.
7173         (c_write_global_declarations): Operate on all file decls and on
7174         the external scope.  Split body of the loop to...
7175         (c_write_global_declarations_1): ... this new function, to avoid
7176         code duplication.
7177         (truly_local_externals, first_builtin_decl, last_builtin_decl)
7178         (make_scope, pop_scope, in_parm_level_p, set_block)
7179         (any_external_decl, record_external_decl, bind_label, getdecls)
7180         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7181         (c_reset_state): Delete.
7182         (visible_builtins, c_override_global_bindings_to_false)
7183         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7184         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7185         (external_scope, binding_freelist, bind, free_binding_and_advance)
7186         (push_file_scope, pop_file_scope): New.
7187         (pushtag, pushdecl_top_level, lookup_label, declare_label)
7188         (define_label, c_make_fname_decl, finish_decl)
7189         (mark_forward_parm_decls, build_compound_literal)
7190         (grokdeclarator, start_function, check_for_loop_decls)
7191         (identifier_global_value, record_builtin_type): Minor adjustments
7192         for new bindings structures.  Improve diagnostics and commentary.
7193         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7194         pushlevel/poplevel respectively.
7195         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7196         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7197         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
7198         correct loop over multiple translation units; call fatal_error if
7199         requested to compile more than one file at once.  (This disables
7200         IMA temporarily - an up-front error being preferable to a crash.)
7201         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7202         (all actions): Adjust calls to pushlevel/poplevel.
7203         (parsing_iso_function_signature): Delete.
7204         (extdef_1): Fold into extdef.
7205         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
7206         warn here about function definitions in the wrong style.
7207         (after_tyle_declarator, parm_declarator_starttypename)
7208         (parm_declarator_nostarttypename, notype_declarator): Remove
7209         commented-out productions.
7210         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7211         an empty TREE_LIST node.  Adjust calls to get_parm_info.
7212         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7213         to suppress -Wold-style-definition after this error.
7214         (c_parse_file): Don't clear the binding stack or call
7215         finish_fname_decls here.  Correct comment.
7216         * c-typeck.c (same_translation_unit_p): Export.
7217         (common_type): Use c_override_global_bindings_to_false, not
7218         pushlevel/poplevel/declare_parm_level.
7219         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
7220         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
7221         and LANG_HOOKS_GETDECLS with do-nothing stubs.
7222         * objc/objc-lang.c: Likewise.
7223         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
7224         get_parm_info.
7225         (OBJC_VOID_AT_END): Delete; replace all uses
7226         with void_list_node.
7227         (generate_forward_declaration_to_string_table): Delete.
7228         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
7229
7230         * coverage.c (create_coverage): Don't pushdecl anything.
7231         * langhooks.c (lhd_clear_binding_stack): Call
7232         lang_hooks.decls.poplevel, not poplevel.
7233         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
7234         circular list rather than going into an infinite loop.
7235
7236 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
7237
7238         * optabs.c (expand_binop): When synthesizing double word rotates
7239         from single word shifts, use a new register target if the provided
7240         target is not a REG already.
7241
7242 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7243
7244         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
7245         * c-common.c (handle_mode_attribute): Add extra arg to
7246         build_pointer_type_for_mode and build_reference_type_for_mode.
7247         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
7248         for INTEGER_CST.
7249         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
7250         Chain pointers via TYPE_NEXT_PTR_TO.
7251         (build_reference_type_for_mode): Similarly.
7252         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
7253         and build_reference_type_for_mode.
7254         (tree_check4_failed): New function.
7255         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
7256         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
7257         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
7258         Add check.
7259
7260 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7261
7262         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
7263         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
7264         when both A and B are nonnegative.
7265         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
7266         nonzero.
7267
7268 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7269
7270         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
7271         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
7272
7273 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7274
7275         PR optimization/14669
7276         * fold-const.c (fold): Only unwiden integer comparisons for equality
7277         and inequality operators, or when the signedness doesn't change.
7278
7279 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
7280
7281         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
7282         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
7283         * config/sparc/t-linux: New file.
7284
7285 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
7286
7287         * gcse.c (can_assign_to_reg_p): New function, split out from...
7288         (want_to_gcse_p): ...here.
7289         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
7290         the rhs of a store.
7291
7292 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
7293
7294         * c-typeck.c (same_translation_unit_p): Fix pasto.
7295
7296 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
7297
7298         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
7299         (PARAM_MAX_SCHED_REGION_INSNS): New.
7300         * sched-rgn.c: Include params.h
7301         (MAX_RGN_BLOCKS): Delete.
7302         (MAX_RGN_INSNS): Delete.
7303         (too_large): Return bool.  Convert to PARAM_VALUE.
7304         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
7305         * doc/invoke.texi (param): Document max-sched-region-blocks and
7306         max-sched-region-insns.
7307
7308 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7309
7310         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
7311         for base types.
7312
7313 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7314
7315         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
7316         change.
7317
7318 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
7319
7320         PR c/14069
7321         * c-decl.c (finish_struct): Change type of incorrect flexible array
7322         field into error_mark_node.
7323
7324 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
7325
7326         PR target/14580
7327         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
7328         who are not local for Darwin PIC.
7329
7330 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
7331
7332         * regrename.c (regrename_optimize): Set regs_ever_live for all
7333         registers introduced as replacement.
7334
7335 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
7336
7337         PR middle-end/14470
7338         * expr.c (mark_queue): New function.
7339         (emit_insns_enqueued_after_mark): New function replacing
7340         emit_queue.  Clear the body of emitted queued insns.
7341         (emit_queue): Call emit_insns_enqueued_after_mark.
7342         (store_expr): Mark the increment queue on entry.  Emit
7343         only the incrementations queued when expanding the source.
7344
7345 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
7346
7347         * configure.ac: Allow --disable-coverage-flags (for the future benefit
7348         of top level bootstrap, and consistency).  Reindent.
7349         * configure: Regenerate.
7350
7351 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
7352
7353         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
7354         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
7355         unnecessary casts.
7356
7357 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
7358
7359         PR target/14291
7360         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
7361         __MINGW32__.
7362
7363 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7364
7365         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
7366         to nonimmediate_operand.
7367         ("*doloop_di"): Likewise.
7368
7369 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
7370
7371         * real.h (struct real_value): Use the same type for all
7372         bitfields.  Rename exp to uexp.
7373         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
7374         Adjust all uses of exp...
7375         * builtins.c: ... here, ...
7376         * emit-rtl.c: ... here, and ...
7377         * real.c: ... and here.
7378
7379 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7380
7381         * pretty-print.c (pp_base_maybe_space): New function.
7382         * pretty-print.h (pp_base_maybe_space): Declare.
7383         (pp_maybe_space): New macro.
7384
7385 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7386
7387         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
7388
7389 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7390
7391         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
7392         of using register multiplication cost.
7393         (expand_mult): Adapt choose_mult_variant call.
7394         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
7395         of MODE; pass appropriate cost bound.  Adjust result when
7396         performing signed multiplication by a negative constant.
7397         Don't use intermediate modes larger than word_mode.
7398
7399 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7400
7401         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
7402         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
7403         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
7404         * explow.c (expr_size): Likewise.
7405         * expr.h (placeholder_list, find_placeholder): Deleted.
7406         * expr.c (store_constructor): Likewise.
7407         (get_inner_reference): Likewise.  Also don't call find_placeholder.
7408         (placeholder_list, find_placeholder): Deleted.
7409         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
7410         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
7411         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
7412         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
7413         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
7414         Likewise.
7415         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
7416         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
7417         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
7418         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
7419         Clean up by using first_rtl_op.
7420         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
7421         (substitute_placeholder_in_expr): New function.
7422         * tree.def (WITH_RECORD_EXPR): Deleted.
7423         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
7424         (substitute_placeholder_in_expr): New.
7425
7426 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
7427
7428         * dojump.c (prefer_and_bit_test): Fix which part of
7429         the and_test is replaced.
7430
7431 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
7432
7433         * frontends.texi: Add missing line.
7434
7435 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
7436             Chris Devers  <cdevers@pobox.com>
7437             Joseph S. Myers  <jsm@polyomino.org.uk>
7438
7439         * doc/frontends.texi: Rewrite.
7440         * doc/gcc.texi: Update last modification date.
7441
7442 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
7443
7444         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
7445         message before redirecting the edge.
7446
7447 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7448
7449         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
7450         flag.
7451         * explow.c (force_not_mem): Set REG_POINTER flag according to
7452         MEM_POINTER one.
7453         * rtl.h (MEM_POINTER): New macro.
7454         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
7455         for MEM_POINTER.
7456
7457 2004-03-20  Roger Sayle  <roger@eyesopen.com>
7458
7459         PR target/13889
7460         * cse.c (fold_rtx): Avoid substituting constants into unary
7461         conversion operations.
7462
7463 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7464
7465         * fold-const.c (fold): Replace "expr" with "t".
7466
7467 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
7468
7469         PR c/12373
7470         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
7471         DECL_ORIGINAL_TYPE if there isn't one.
7472
7473 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7474
7475         * fold-const.c (fold): Replace "final_type" with "type".
7476         Remove variable "final_type".
7477
7478 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7479
7480         * fold-const.c (fold): Constify "type".
7481         Replace "TREE_TYPE (t)" with "type".
7482
7483 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7484
7485         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
7486         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
7487         via (*targetm.foo) () with targetm.foo ().
7488
7489 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
7490
7491         PR other/14630
7492         * doc/install.texi: Add info directory category and entry.
7493
7494 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7495
7496         * fold-const.c (fold): Replace "t" with "tem" where it is used
7497         as a temporary variable.  Remove "orig_t" and all of its uses.
7498
7499 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7500
7501         * fold-const.c (fold): Remove variable "invert".
7502         Move the handling of relational expressions that can be folded
7503         to a constant ...
7504         (fold_relational_const): ... here.
7505         (tree_expr_nonzero_p): New.
7506
7507 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
7508
7509         PR c/14635
7510         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
7511         DEF_GCC_BUILTIN.
7512
7513 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
7514
7515         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
7516         (GTFILES): Add $(srcdir)/dojump.h.
7517         (gt-dojump.h): New dependency.
7518         * dojump.c (and_reg, and_test, shift_test): New static variables.
7519         (prefer_and_bit_test): New function.
7520         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
7521
7522 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7523
7524         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
7525         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
7526         reorg.c, tree.h: Fix comment typos.
7527
7528 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7529
7530         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
7531         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
7532         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
7533         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
7534         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
7535         vmsdbgout.c: Replace calls via (*targetm.foo) () with
7536         targetm.foo ().
7537
7538 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
7539
7540         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
7541         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
7542         always_inline attribute.
7543         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
7544         Treat expansion as completed even if literal argument is
7545         invalid (so that other expansions are not tried in vain).
7546
7547 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7548
7549         * loop-doloop.c (add_test): Replace GEN_INT (0) with
7550         const0_rtx.
7551
7552 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7553
7554         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
7555         ...
7556         (fold_abs_const): ... here.
7557
7558 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7559
7560         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
7561
7562 2004-03-19  Denis Chertykov  <denisc@overta.ru>
7563
7564         PR target/11520
7565         * config/avr/avr.md ("call_insn"): Handle explicit integer
7566         specially.
7567         (call_value_insn): Likewise.
7568
7569 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7570
7571         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
7572
7573 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7574
7575         * fold-const.c (negate_expr): Move the handling of constants
7576         ...
7577         (fold_negate_const): ... here.
7578
7579 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7580
7581         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
7582         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
7583         * tree.c (debug_no_type_hash): Deleted.
7584         (type_hash_canon): Abort if passed a variant.
7585         Check lang_hooks.types.hash_types.
7586         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
7587         (build_array_type): Remove unnecessary allocation of pointer type.
7588         (build_complex_type): Properly qualify resulting type.
7589
7590 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
7591
7592         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
7593
7594 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
7595
7596         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
7597         (expand_mult): ...here.
7598         (extract_high_half): New, split out from expand_mult_highpart.
7599         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
7600         (expand_highpart): Evaluate the cost of a shift/add sequence,
7601         then see if any of the specialized optabs are cheaper.
7602
7603 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
7604
7605         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
7606
7607 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7608
7609         * convert.c (convert_to_real): Add more math builtins.
7610
7611 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7612
7613         * convert.c (convert_to_real): Reformat using switch stmt.
7614
7615 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7616
7617         * c-common.c (pointer_int_sum): Do not complain about using
7618         pointers to pointers-to-members.
7619
7620 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
7621
7622         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
7623         have moved to the target hooks structure".
7624
7625 2004-03-18  James E Wilson  <wilson@specifixinc.com>
7626
7627         * config/mips/mips.md (type): Split move into arith and fmove.  Split
7628         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
7629         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
7630         Likewise.
7631         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
7632         Likewise.
7633         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
7634         rm7_fp_quick): Likewise.
7635         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
7636         rm9k_fquick): Likewise.
7637         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
7638         Likewise.
7639         (ir_sr70_icmp): Delete.
7640
7641 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7642
7643         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
7644         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
7645         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
7646         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
7647         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
7648         Protect with proper check.
7649         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
7650         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
7651         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
7652         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
7653         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
7654         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
7655         not TYPE_FIELDS.
7656         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
7657
7658 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
7659
7660         * gcse.c (eliminate_partially_redundant_loads): Reject change if
7661         dest is set between beginning and current insn.
7662
7663 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7664
7665         * c-decl.c (grokdeclarator): Do not complain about redeclaring
7666         visible "static" identifiers "extern" in a local scope.
7667         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
7668         post-increments/decrements.
7669
7670 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
7671
7672         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
7673         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
7674         (xtensa_va_start): Remove assignment to current_function_arg_words.
7675
7676 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
7677
7678         * alias.c (record_set): Detect the case where a register is assigned
7679         a new value that has the same base term as the old one.
7680
7681 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7682
7683         * doloop.c: Removed.
7684         * loop-doloop.c: New file.
7685         * Makefile.in (doloop.o): Remove.
7686         (loop-doloop.o): New.
7687         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
7688         * cfgloopanal.c (get_loop_level): New function.
7689         * loop-iv.c (iv_number_of_iterations): Handle case when loop
7690         is leaved immediatelly.
7691         * loop.c (strength_reduce): Do not call doloop optimization.
7692         * loop.h (LOOP_BCT): Removed.
7693         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
7694         (rest_of_handle_loop2): Call doloop_optimize_loops.
7695         (rest_of_compilation): Test for optimizations moved to
7696         rest_of_handle_loop2.
7697
7698 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
7699
7700         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
7701         for mixed mode.
7702         (rs6000_emit_prologue): Ditto.
7703         (rs6000_emit_epilogue): Ditto.
7704         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
7705         macro for mixed mode.
7706
7707 2004-03-18  Jan Hubicka  <jh@suse.cz>
7708
7709         * predict.c (propagate_freq): Compute correctly frequency of
7710         EXIT_BLOCK.
7711
7712 2004-03-17  Eric Christopher  <echristo@redhat.com>
7713
7714         * builtins.c (apply_args_size): Use reg_raw_mode.
7715         (apply_result_size): Ditto.
7716
7717 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7718
7719         PR target/14620
7720         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
7721
7722 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
7723
7724         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
7725         32-bit builds when defaulting to 32-bit.
7726
7727 2004-03-17  Jan Hubicka  <jh@suse.cz>
7728
7729         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
7730         array.
7731
7732 2004-03-17  James E Wilson  <wilson@specifixinc.com>
7733
7734         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
7735         (hazard_nop): Change type to nop.
7736         (type): Split arith into arith, shift, slt, clz.  Delete darith.
7737         Fix all uses.  Change arith to multi if more than one insn emitted.
7738         * config/mips/5400.md (ir_vr54_arith): Likewise.
7739         * config/mips/5500.md (ir_vr55_arith): Likewise.
7740         * config/mips/7000.md (rm7_int_other): Likewise.
7741         * config/mips/9000.md (rm9k_int): Likewise.
7742         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
7743
7744 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
7745
7746         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
7747         to hold the subtype tree instead of recomputing it several times.
7748
7749 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
7750
7751         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
7752         CC_INVERT.
7753         * config/mn10300/mn10300.md (cc): Remove "invert".
7754
7755 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7756
7757         * builtins.c (integer_valued_real_p): Add builtin rint.
7758         (fold_builtin): Likewise.
7759         * convert.c (convert_to_real): Likewise.
7760
7761         * convert.c (convert_to_real): Fix typos in `long double'
7762         builtins.
7763
7764 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
7765
7766         PR c++/14481
7767         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
7768         generated COMPOUND_EXPRs.
7769
7770 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7771
7772         * config/h8300/t-rtems (h8300-*-rtems*): New.
7773
7774 2004-03-16  Eric Christopher  <echristo@redhat.com>
7775
7776         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
7777
7778 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
7779
7780         * config/i386/i386-protos.h: Add a prototype for
7781         ix86_reverse_condition.
7782         * config/i386/i386.c (ix86_reverse_condition): New.
7783         * config/i386/i386.h (REVERSE_CONDITION): Use
7784         ix86_reverse_condition.
7785         * config/i386/i386.md: Use ix86_reverse_condition instead of
7786         REVERSE_CONDITION.
7787
7788 2004-03-16  J. Brobecker  <brobecker@gnat.com>
7789
7790         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
7791
7792 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
7793
7794         PR bootstrap/12974
7795         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
7796
7797 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
7798
7799         * c-common.c (c_common_type_for_mode): Build vector types on
7800         demand.
7801         (handle_mode_attribute): Deprecate using the mode attribute
7802         to create vector types.  Fix indentation.
7803         (vector_type_node_list): Remove.
7804         (handle_vector_size_attribute): Create vector types on demand.
7805         Strip a NON_LVALUE_EXPR from the attribute if there is one.
7806         * c-typeck.c (comptypes): Make vector types compatible if they
7807         have the same underlying mode.
7808         (convert_for_assignment): Use comptypes to convert between
7809         vector types.
7810         * tree.c (build_common_tree_nodes_2): Do not create vector types.
7811         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
7812         vector types.
7813         * tree.h: Remove vector types.
7814         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
7815         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
7816         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
7817         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
7818         * doc/extend.texi (Vector Types): Document how to use the
7819         vector_size attribute to create vectors, rather than mode.
7820
7821         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
7822         * config/i386/emmintrin.h: Likewise.
7823         * config/i386/mmintrin.h: Likewise.
7824         * config/i386/xmmintrin.h: Likewise.
7825         * config/sh/ushmedia.h: Likewise.
7826
7827 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
7828
7829         * config/freebsd-spec.h, config/arc/arc-protos.h,
7830         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
7831         config/arm/linux-gas.h, config/arm/semi.h,
7832         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
7833         config/ia64/freebsd.h, config/mips/7000.md,
7834         config/mips/9000.md, config/ns32k/ns32k-protos.h,
7835         config/sparc/pbd.h: Update copyright.
7836
7837 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7838
7839         PR target/14577
7840         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
7841
7842 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
7843
7844         * combine.c (combine_simplify_rtx): Remove the "last"
7845         parameter and its documentation.  Adjust recursive calls.
7846         (simplify_logical): Always perform the only simplification
7847         controlled by "last", if the simplified expression is
7848         actually different.
7849         (try_combine): Do not pass the "last" parameter to
7850         combine_simplify_rtx.
7851
7852 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
7853
7854         PR target/14599
7855         * config/mips/mips.md (UNSPEC_GP): New constant.
7856         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
7857         an UNSPEC instead of (reg $gp).
7858         (mips16_gp_pseudo_reg): Change accordingly.
7859         (print_operand): Print $gp directly when handling CONST_GP_P.
7860
7861 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
7862
7863         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
7864         * longlong.h: Make code 68060 clean when compiling for m68060.
7865
7866 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
7867
7868         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
7869         * doc/md.texi: Clarify description of "i" constraint.
7870
7871 2004-03-15  James E Wilson  <wilson@specifixinc.com>
7872
7873         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
7874         Split store into store, fpstore, fpidxstore.  Fix all uses.
7875         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
7876         Likewise.
7877         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
7878         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
7879         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
7880         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
7881         ir_sr70_fstore): Likewise.
7882
7883 2004-03-15  Richard Henderson  <rth@redhat.com>
7884
7885         PR middle-end/14535
7886         * except.c (collect_one_action_chain): Record action for cleanup
7887         outer of exception spec.
7888
7889 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
7890
7891         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7892         Fix the check for abort and only do the mmap if we can.
7893
7894 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
7895
7896         * config/sparc/sparc.h: Rework comments about the code model
7897         in 64-bit environment and the mode 'Pmode'.
7898         * doc/invoke.texi (SPARC options): Rework description of the
7899         different code models supported in 64-bit environment.
7900
7901 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
7902
7903         * defaults.h (REVERSIBLE_CC_MODE): Define.
7904         * jump.c (reversed_comparison_code_parts): Don't check if
7905         REVERSIBLE_CC_MODE is defined.
7906
7907 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
7908
7909         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
7910         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
7911         hosthooks.h, params.h, ra-colorize.c, web.c,
7912         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
7913         config/avr/avr-protos.h, config/avr/avr.md,
7914         config/fr30/fr30-protos.h, config/fr30/fr30.md,
7915         config/h8300/fixunssfsi.c, config/i386/darwin.h,
7916         config/i386/freebsd.h, config/i386/freebsd64.h,
7917         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
7918         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
7919         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
7920         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
7921         config/pa/pa64-regs.h, config/rs6000/aix41.h,
7922         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
7923         config/sparc/aout.h, config/sparc/freebsd.h,
7924         config/sparc/litecoff.h, config/vax/vax-protos.h,
7925         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
7926         copyright.
7927
7928 2004-03-15  Paul Brook  <paul@codesourcery.com>
7929
7930         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
7931
7932 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7933
7934         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
7935         (pp_c_cv_qualifier): Document.
7936         (pp_c_space_for_pointer_operator): Likewise.
7937         (pp_c_integer_constant): Likewise.
7938         (pp_c_identifier): Likewise.
7939         (pp_c_init_declarator): Don't print function body.
7940
7941 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
7942
7943         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
7944         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
7945         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
7946         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
7947         wording and grammar.
7948
7949 2004-03-14  Roger Sayle  <roger@eyesopen.com>
7950
7951         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
7952         with lang_hooks.foo ().
7953         * builtins.c (expand_builtin_va_arg): Likewise.
7954         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
7955         c_common_type_for_mode, c_common_nodes_and_builtins,
7956         handle_mode_attribute, handle_vector_size_attribute): Likewise.
7957         * c-convert.c (convert): Likewise.
7958         * c-format.c (check_format_types): Likewise.
7959         * c-objc-common.c (c_tree_printer): Likewise.
7960         * c-typeck.c (build_unary_op, build_conditional_expr,
7961         build_binary_op): Likewise.
7962         * calls.c (try_to_integrate, expand_call,
7963         emit_library_call_value_1): Likewise.
7964         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
7965         Likewise.
7966         * cgraphunit.c (record_call_1, cgraph_analyze_function,
7967         cgraph_expand_function): Likewise.
7968         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
7969         * coverage.c (build_fn_info_type, build_ctr_info_type,
7970         build_gcov_info, create_coverage): Likewise.
7971         * dbxout.c (dbxout_init): Likewise.
7972         * diagnostic.c (diagnostic_report_current_function): Likewise.
7973         * dojump.c (do_jump): Likewise.
7974         * dwarf2out.c (dwarf2_name): Likewise.
7975         * except.c (init_eh): Likewise.
7976         * explow.c (expr_size, int_expr_size): Likewise.
7977         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
7978         Likewise.
7979         * expr.c (store_expr, store_constructor, safe_from_p,
7980         expand_expr_real, do_store_flag, try_casesi): Likewise.
7981         * function.c (push_function_context_to, pop_function_context_from,
7982         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
7983         put_var_into_stack, allocate_struct_function, current_function_name):
7984         Likewise.
7985         * integrate.c (copy_decl_for_inlining, expand_inline_function):
7986         Likewise.
7987         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
7988         lhd_print_error_function): Likewise.
7989         * opts.c (handle_option, decode_options): Likewise.
7990         * passes.c (open_dump_file): Likewise.
7991         * print-tree.c (print_node): Likewise.
7992         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
7993         expand_decl_cleanup, emit_case_nodes): Likewise.
7994         * stor-layout.c (variable_size): Likewise.
7995         * toplev.c (announce_function, wrapup_global_declarations,
7996         check_global_declarations, compile_file, default_tree_printer,
7997         process_options, lang_dependent_init, finalize): Likewise.
7998         * tree-dump.c (dequeue_and_dump): Likewise.
7999         * tree-inline.c (remap_decl, remap_block, copy_body_r,
8000         initialize_inlined_parameters, declare_return_variable,
8001         inlinable_function_p, expand_call_inline, optimize_inline_calls,
8002         walk_tree, copy_tree_r): Likewise.
8003         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8004         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8005         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8006         variably_modified_type_p, dump_tree_statistics): Likewise.
8007         * varasm.c (assemble_variable, compare_constant, copy_constant,
8008         force_const_mem, compute_reloc_for_constant, output_constant,
8009         output_addressed_constants, initializer_constant_valid_p): Likewise.
8010
8011 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
8012
8013         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8014
8015 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
8016
8017         * doc/install.texi: Reflect autoconf and automake version for
8018         libffi. Update autoconf version to 2.59.
8019
8020 2004-03-13  Roger Sayle  <roger@eyesopen.com>
8021
8022         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8023         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8024         make_range, build_range_check, fold_range_test, unextend,
8025         constant_boolean_node, fold_binary_op_with_conditional_arg,
8026         fold_truthop, fold_mathfn_compare, fold_inf_compare,
8027         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8028         with lang_hooks.foo ().
8029
8030 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
8031
8032         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8033
8034 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
8035
8036         * doc/install.texi: Note status of -fnew-ra.
8037
8038 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8039
8040         PR middle-end/14470
8041         * expr.c (store_expr): Call emit_queue before generating the move
8042         from the temporary to the original target.  Protect the temporary
8043         from emit_queue.
8044
8045 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
8046
8047         PR target/14533
8048         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8049         other than UNSPEC_GOTOFF.
8050
8051 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
8052
8053         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
8054         to arm_legitimate_index_p.  Update all callers with SET as default
8055         value.
8056         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
8057         range if OUTER is a sign-extend operation on QImode.  Correctly
8058         reject shift operations on sign-extended QImode addresses.
8059         (bad_signed_byte_operand): Delete.
8060         (arm_extendqisi_mem_op): New function.
8061         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
8062         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
8063         constraints.
8064         (CONSTRAINT_LEN): New.
8065         (EXTRA_CONSTRAINT): Delete.  Replace with...
8066         (EXTRA_CONSTRAINT_STR): ... this.
8067         (PREDICATE_CODES): Remove bad_signed_byte_operand.
8068         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
8069         is now always default.
8070         (define_splits for bad sign-extend loads): Delete.
8071         (arm_extendqisi, arm_extendqisi_v5): Likewise.
8072         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8073         Rework 'U' constraint to 'Uv'.
8074         * arm-protos.h: Remove bad_signed_byte_operand.  Add
8075         arm_extendqisi_mem_op.
8076         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8077         Add Uq constraint.
8078
8079 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
8080
8081         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8082         with targetm version.
8083
8084         PR target/14567
8085         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8086         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8087         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8088         Update all users of RS6000_ARG_SIZE.
8089         (function_arg_advance): Count fregno using mode size.
8090         (function_arg): Handle long double split over regs and memory.
8091         (function_arg_partial_nregs): Likewise.
8092         (rs6000_va_arg): Repackage complex args.
8093
8094 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
8095
8096         PR target/14047
8097         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8098         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8099         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8100
8101 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
8102
8103         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8104         prototype.
8105         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8106         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8107
8108 2003-03-12  Andrew Pinski  <apinski@apple.com>
8109
8110         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8111         Use ret instead of result. Use addr instead of base.
8112
8113 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
8114
8115         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8116         fixes required by libstdc++ and update installation instructions
8117         for libstdc++.a.
8118
8119 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
8120
8121         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8122         leading '@' on fastcall symbols before stripping suffix.
8123
8124 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8125
8126         * combine.c (unmentioned_reg_p): New function to check whether an
8127         expression is a "specialization" of another, i.e. that there are
8128         no registers or memory references mentioned in the first that don't
8129         appear in the second.
8130         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8131         (combine_instructions): Also try combining instructions using the
8132         REG_EQUAL note from a preceding log-linked instruction.
8133
8134 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8135
8136         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8137
8138 2004-03-12  Matt Austern  <austern@apple.com>
8139
8140         * target.h (struct gcc_target): New target hook, unwind_label.
8141         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8142         * output.h (default_emit_unwind_label): New function.
8143         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8144         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8145         (TARGET_SUPPORTS_HIDDEN): New target macro.
8146         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8147         that corresponds to this FDE.
8148         (FRAME_BEGIN_LABEL): Allow target to override default label.
8149         (output_call_frame_info): If FDEs are linknonce, then use extra
8150         indirection for FDE encoding, output a label for each FDE, and
8151         output an empty label for each function without an FDE.
8152         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8153         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8154         decls with DECL_ONE_ONLY set, if that macro is defined.
8155         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8156         for a SUPPORTS_ONE_ONLY target.
8157         * config/darwin-protos.h (darwin_unique_section): Declare.
8158         (darwin_asm_named_section): Likewise.
8159         (darwin_section_type_flags): Likewise.
8160         (darwin_non_lazy_pcrel): Likewise.
8161         (darwin_emit_unwind_label): Likewise.
8162         (darwin_make_decl_one_only): Likewise.
8163         * config/darwin.c (machopic_finish): Get rid of tweak that
8164         eliminate stubs for symbols that are defined.
8165         (darwin_encode_section_info): Don't treat weak functions as defined.
8166         (darwin_make_decl_one_only): Define.
8167         (darwin_asm_named_section): Likewise.
8168         (darwin_section_type_flags): Likewise.
8169         (darwin_unique_section): Likewise.
8170         (darwin_emit_unwind_label): Likewise.
8171         (darwin_non_lazy_pcrel): Likewise.
8172         (darwin_asm_output_dwarf_delta): Difference between two labels is
8173         local only if both labels are local.
8174         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8175         (ASM_MAKE_LABEL_LINKONCE): Likewise.
8176         (TARGET_SUPPORTS_HIDDEN): Likewise.
8177         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8178         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8179         (FRAME_BEGIN_LABEL): Likewise.
8180         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8181         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8182         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8183         (TARGET_ASM_UNIQUE_SECTION): Define.
8184         (EH_FRAME_SECTION_NAME): Define.
8185         (EH_FRAME_SECTION_ATTR): Likewise.
8186         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8187         (TARGET_ASM_NAMED_SECTION): Likewise.
8188         (TARGET_SECTION_TYPE_FLAGS): Likewise.
8189         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8190         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8191         TARGET_ASM_EMIT_UNWIND_LABEL.
8192
8193 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8194
8195         * builtins.c (expand_builtin_mathfn): Add pow10* to the
8196         existing exp10* case.
8197         (expand_builtin): Likewise.
8198
8199 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
8200
8201         * doc/tm.texi (registers) <Values in Registers>: Add
8202         entry for REGMODE_NATURAL_SIZE.
8203
8204 2004-03-12  Richard Henderson  <rth@redhat.com>
8205
8206         PR target/14547
8207         * target.h (struct gcc_target): Move calls substructure before
8208         booleans.  Add split_complex_arg.
8209         * function.c (assign_parms, split_complex_args): Use it.
8210         * calls.c (expand_call): Likewise.
8211         (split_complex_values): Likewise.  Check for splittable types
8212         before allocating memory.
8213         (split_complex_types): Likewise.
8214         * system.h (SPLIT_COMPLEX_ARGS): Poison.
8215         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
8216         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
8217         * config/alpha/alpha.c (alpha_split_complex_arg): New.
8218         (TARGET_SPLIT_COMPLEX_ARG): New.
8219         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
8220         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
8221         (rs6000_override_options): Zap it for non-AIX.
8222         (rs6000_function_value): Use targetm.calls.split_complex_arg.
8223         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
8224         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
8225         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
8226         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
8227         SPLIT_COMPLEX_ARGS entry.
8228
8229 2004-03-11  Richard Henderson  <rth@redhat.com>
8230
8231         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
8232         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
8233         (alpha_emit_xfloating_arith): Update to match.
8234         (alpha_emit_xfloating_compare): Likewise.
8235         (alpha_emit_xfloating_cvt): Likewise.
8236         (alpha_emit_xfloating_libcall): Take already built symbol,
8237         mark call const.
8238         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
8239         op1 in a register.
8240
8241 2004-03-11  Richard Henderson  <rth@redhat.com>
8242
8243         PR target/14539
8244         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
8245
8246         * simplify-rtx.c (simplify_relational_operation): Fix typo.
8247
8248 2004-03-11  Richard Henderson  <rth@redhat.com>
8249
8250         PR middle-end/14477
8251         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
8252
8253 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8254
8255         PR target/14262
8256         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
8257         defined, pass small BLKmode values in registers in the low-order part.
8258
8259 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8260
8261         * combine.c (if_then_else_cond): Check for NULL return value of
8262         simplify_gen_subreg.
8263
8264 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8265
8266         PR target/14496
8267         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
8268         TARGET_SINGLE_FLOAT.
8269
8270 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
8271
8272         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
8273         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
8274         * config/ia64/ia64.c (ia64_init_libfuncs): New.
8275         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
8276
8277 2004-03-11  Roger Sayle  <roger@eyesopen.com>
8278
8279         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
8280         -((int)X>>C) where C is an integer constant one bit less than the
8281         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
8282         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
8283
8284         * simplify-rtx.c (simplify_unary_operation): Also implement the
8285         above transformations at the RTL level.
8286
8287 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
8288
8289         * real.c (encode_ibm_extended): Do round low word.
8290
8291 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
8292
8293         * config/arm/arm.md (is_xscale): Comment this attribute and move
8294         it a bit further up in the file, closer to related attributes.
8295
8296 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
8297
8298         * config/host-solaris.c (sol_gt_pch_use_address): Add
8299         missing terminating marker to comment.
8300
8301 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8302
8303         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
8304         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
8305         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
8306         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
8307         move_operand as source predicate in all cases.
8308         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
8309         Test reg_or_0_operand.  Use move_operand as source predicate.
8310         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
8311         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
8312         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
8313         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
8314         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
8315         Use move_operand as source predicate.  Remove 'K' constraint.
8316         (*movqi_internal): Likewise movqi_internal.
8317         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
8318         reg_or_0_operand.  Use move_operand as source predicate.
8319         (*movsf_softfloat): Likewise movsf_internal2.
8320         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
8321         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
8322         (*movdf_softfloat): Likewise movdf_internal2.
8323         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
8324         for DImode if !TARGET_64BIT.
8325         (mips_legitimize_move): Simplify accordingly.
8326
8327 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8328
8329         PR/14362
8330         * var-tracking.c (struct variable_def): Added field refcount.
8331         (variable_htab_free): Decrease the refcount and delete variable
8332         only if there are no more references.
8333         (unshare_variable): New function.
8334         (vars_copy_1): Increase refcount instead of copying the variable.
8335         (variable_union): Share the variables where possible, unshare
8336         the variables if needed.
8337         (variable_different_p): Return false if var1 and var2 are
8338         the same structure.
8339         (variable_was_changed): Init the refcount of new variable.
8340         (set_frame_base_location): Unshare variable if needed.
8341         (set_variable_part): Init the refcount of new variable.
8342         Unshare the variables if needed.
8343         (delete_variable_part): Unshare the variables if needed.
8344         (emit_notes_for_differences_1): Init the refcount of new variable.
8345         (vt_add_function_parameters): Do not add function parameters to
8346         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
8347         (vt_initialize): Do not add frame_base_decl to IN set of
8348         ENTRY_BLOCK_PTR because it is unused anyway.
8349
8350 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8351
8352         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
8353         (vars_copy): Likewise.
8354         (variable_union): Likewise.
8355         (set_variable_part): Likewise.
8356         (delete_variable_part): Likewise.
8357
8358 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
8359
8360         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
8361         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
8362         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
8363         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
8364         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
8365         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
8366         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
8367         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
8368         config/stormy16/stormy16.c: Fix comment typos and formatting.
8369
8370 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
8371
8372         * configure: Regenerate, since I forgot to while committing Paolo's
8373         changes.
8374
8375 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
8376
8377         PR ada/14131
8378         Move language detection to the top level.
8379         * configure.ac: Remove code to detect languages,
8380         it now lives exclusively in the top level.
8381         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
8382         top level, renamed to ACX_PROG_GNAT.
8383
8384 2004-03-10  Richard Henderson  <rth@redhat.com>
8385
8386         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
8387         extra arguments.
8388         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
8389         and host_xmake_file fragments.
8390         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
8391         (gt_pch_restore): Similarly for gt_pch_use_address.
8392         (default_gt_pch_get_address): New.
8393         (mmap_gt_pch_get_address): Split out of gt_pch_save.
8394         (default_gt_pch_use_address): Split out of gt_pch_restore.
8395         (mmap_gt_pch_use_address): Likewise.
8396         * hooks.c (hook_voidp_size_t_null): Remove.
8397         (hook_bool_voidp_size_t_false): Remove.
8398         * hooks.h: Likewise.
8399         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
8400         default_ or mmap_ definitions.
8401         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
8402         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
8403         and gt_pch_use_address.
8404         * config/host-linux.c, config/host-solaris.c: New files.
8405         * config/x-linux, config/x-solaris: New files.
8406         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
8407         Update for changed definition.
8408         (darwin_rs6000_gt_pch_use_address): Likewise.
8409         * doc/hostconfig.texi: Update docs.
8410
8411 2004-03-10  Richard Henderson  <rth@redhat.com>
8412
8413         PR c/14517
8414         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
8415         except for pedantic c90 mode.
8416
8417 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
8418
8419         * configure.ac: Bump AC_PREREQ to 2.59.
8420         * configure: Regenerate.
8421
8422 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
8423
8424         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
8425         (exp10_optab, exp2_optab): Define corresponding macros.
8426         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
8427         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
8428         using exp10?f2 and exp2?f2 patterns.
8429         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
8430         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
8431         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
8432         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8433
8434         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
8435         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
8436         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
8437
8438 2004-03-10  Anthony Green  <green@redhat.com>
8439
8440         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
8441
8442 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8443
8444         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
8445         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
8446         __LONGDOUBLE128.
8447         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
8448         TARGET_OS_AIX_CPP_BUILTINS.
8449         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
8450         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
8451         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
8452         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
8453         previous change.
8454
8455 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8456
8457         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
8458
8459 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8460
8461         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8462         __LONGDOUBLE128 on AIX.
8463
8464 2004-03-10  Andrew Haley  <aph@redhat.com>
8465
8466         PR optimization/14381
8467         * function.c (expand_function_end): Emit a blockage insn before
8468         the epilogue when -fnon-call-exceptions is used.
8469
8470         * except.c (expand_start_all_catch): Make comment more accurate.
8471
8472 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8473
8474         PR target/14480
8475         * config/rs6000/t-rtems: Add missing file on branch.
8476
8477 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
8478
8479         * dbxout.c (dbxout_symbol_location): Do not output references
8480         to optimized-out constant pool symbols.
8481
8482 2004-03-10  Andreas Schwab  <schwab@suse.de>
8483
8484         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
8485         twon34_r.
8486
8487 2004-03-09  James E Wilson  <wilson@specifixinc.com>
8488
8489         * alias.c (alias_sets_might_conflict_p): New.
8490         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
8491         * common.opt (Wstrict-aliasing=): New.
8492         * flags.h (warn_strict_aliasing): Change type to int.
8493         * opts.c (warn_strict_aliasing): Change type to int.
8494         (common_handle_option): Handle OPT_Wstrict_aliasing_.
8495         * tree.h (alias_sets_might_conflict_p): Declare it.
8496         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
8497
8498 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
8499
8500         PR bootstrap/12371
8501         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
8502         (CALL_USED_REGISTERS): Likewise.
8503         (REG_CLASS_CONTENTS): Likewise.
8504         (REG_ALLOC_ORDER): New.
8505         (REGNO_REG_CLASS): Use regno_reg_class.
8506         * config/m68k/m68k.c: Add regno_reg_class array.
8507
8508 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
8509
8510         * config/ia64/ia64.md (divsi3): Fix algorithm.
8511           (udivsi3): Ditto.
8512           (setf_exp_xf): Remove '*' from name.
8513         * testsuite/gcc.dg/20040309-1.c: New test.
8514
8515 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
8516
8517         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
8518         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
8519         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
8520         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
8521         (sparc_aout_select_rtx_section): Don't check
8522         SUNOS4_SHARED_LIBRARIES.
8523         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
8524
8525 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
8526
8527         PR other/14474
8528         * doc/md.texi (Pattern Ordering, Dependent Patterns)
8529         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
8530         INTERNALS".
8531
8532 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
8533
8534         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
8535         (LIBGCC_SPEC): Update to match.
8536
8537 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
8538
8539         * c-decl.c (last_function_parms, last_function_parm_tags)
8540         (last_function_parm_others, current_function_parms)
8541         (current_function_parm_tags, current_function_parm_others):
8542         Delete.
8543         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
8544         New macros.
8545         (grokdeclarator): For function definitions, save the arg-info
8546         block from the declarator in DECL_ARGUMENTS.
8547         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
8548         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
8549         contains only PARM_DECLs.  Improve diagnostics.
8550         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
8551         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
8552         (store_parm_decls_newstyle): Take the function to operate on,
8553         and an arg-info block, as arguments; don't get anything from
8554         current_function_* globals.
8555         (store_parm_decls_oldstyle): Likewise.
8556         (store_parm_decls): Pass fndecl and its arg-info block down to
8557         store_parm_decls_newstyle/oldstyle.  Send functions with empty
8558         argument lists through store_parm_decls_newstyle to reduce
8559         overhead.
8560         (pushdecl): Comment on the problems with the call to copy_node.
8561         Clear DECL_ARGUMENTS of the old node after copying it, if it
8562         is an arg-info block instead of a chain of decls.
8563         (start_function): Do not manipulate current_function_parm* or
8564         last_function_parm*.
8565
8566 2004-03-09  Roger Sayle  <roger@eyesopen.com>
8567             Andrew Pinski  <pinskia@physics.uc.edu>
8568
8569         * ifcvt.c (noce_try_sign_mask): New function to transform
8570         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
8571         (noce_process_if_block): Call noce_try_sign_mask.
8572
8573 2004-03-09  Andrew Pinski  <apinski@apple.com>
8574
8575         * c-typeck.c (tagged_types_tu_compatible_p):
8576         Fix typo.
8577
8578 2004-03-09  Roger Sayle  <roger@eyesopen.com>
8579
8580         * simplify-rtx.c (simplify_const_relational_operation): New function
8581         renamed from simplify_relational_operation.
8582         (simplify_relational_operation): Change prototype to accept an
8583         additional mode argument.  Call simplify_const_relational_operation.
8584         (simplify_gen_relational): Update simplify_relational_operation call.
8585         (simplify_ternary_operation): Update simplify_relational_operation
8586         subroutine call to use simplify_const_relational_operation instead.
8587
8588         * rtl.h (simplify_const_relational_operation): Prototype here.
8589         (simplify_relational_operation): Add addtional mode argument.
8590
8591         * combine.c (combine_simplify_rtx): Update calls to
8592         simplify_relational_operation.
8593         (simplify_set): Likewise.
8594         (gen_binary): Likewise.
8595         * cse.c (fold_rtx): Likewise.
8596         * dojump.c (compare_from_rtx): Likewise.
8597         (do_compare_rtx_and_jump): Likewise.
8598         * integrate.c (subst_constants): Likewise.
8599         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
8600
8601 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
8602
8603         * config/m32r/m32r.md: Remove all define_peephole's.
8604
8605 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
8606
8607         * config/rs6000/rs6000.md: Remove trailing whitespace.
8608
8609 2004-03-08  Eric Christopher  <echristo@redhat.com>
8610
8611         * Makefile.in (site.exp): Add libiconv variable definition.
8612
8613 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
8614
8615         * configure: Regenerate for config/accross.m4 correction.
8616
8617 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8618
8619         PR target/14480
8620         * config/rs6000/t-rtems: Add missing file on branch.
8621
8622 2004-03-08  Roger Sayle  <roger@eyesopen.com>
8623
8624         PR middle-end/14289
8625         * c-typeck.c (c_mark_addressable): A register variable should
8626         be considered global if its not automatic, i.e. TREE_PUBLIC,
8627         TREE_STATIC or DECL_EXTERNAL.
8628         * function.c (put_var_into_stack): Call abort when placing a
8629         hard register into the stack, if x_parm_reg_stack_loc is NULL.
8630
8631 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
8632
8633         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
8634         ("*extendqisi2_short_displ"): Likewise.
8635
8636 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
8637
8638         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
8639         (comp_operator): Likewise.
8640         * config/pdp11/pdp11-protos.h: Remove corresponding
8641         prototypes.
8642
8643 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
8644
8645         * expr.c (highest_pow2_factor_for_type): Rename into
8646         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
8647         TYPE_ALIGN when the target is a COMPONENT_REF.
8648         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
8649
8650 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8651
8652         * config/rs6000/rs6000.c: Formatting fix.
8653         (legitimate_offset_address_p): Correct offset range check.
8654
8655         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
8656         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
8657         and MASK_STRING.
8658
8659 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8660
8661         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
8662         for little endian.
8663         ("ashrdi3_no_power"): Disable for little endian.
8664         (ashrdi3): Same.
8665
8666 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8667
8668         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
8669         builtins.
8670
8671 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
8672
8673         PR target/14471
8674         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
8675         case, checking for -no-mul-bug-abort option.
8676         * configure, config.in: Regenerate.
8677         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
8678         and -mno-mul-bug-workaround.
8679         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
8680         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
8681         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
8682         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
8683         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
8684         sure mulu.d is not last on cache-line.
8685         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
8686         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
8687         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
8688         (TARGET_SWITCHES): New options -mmul-bug-workaround and
8689         -mno-mul-bug-workaround.
8690         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
8691         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
8692         * config/cris/cris.c (cris_operand_extend_operator): Clarify
8693         relation to MULT in head comment.
8694         (cris_op_str): Abort for MULT.
8695         (cris_print_operand) <case '!'>: New case.
8696
8697 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8698
8699         PR debug/11983
8700         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
8701         dw_val_class_vec.  Replace use throughout file.
8702         (dw_float_const): Delete.
8703         (dw_vec_const): New.
8704         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
8705         throughout file.
8706         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
8707         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
8708         (size_of_die): Adjust dw_val_class_vec sizing.
8709         (output_die): Output dw_val_class_vec.
8710         (insert_int, extract_int, insert_float): New functions.
8711         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
8712         Handle CONST_VECTOR.
8713         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
8714
8715 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8716
8717         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
8718         AltiVec abi cannot co-exist.
8719
8720         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
8721
8722 2004-03-07  Jan Hubicka  <jh@suse.cz>
8723
8724         * except.c (emit_to_new_bb_before):  Break fallthru edges.
8725
8726 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
8727
8728         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
8729         ("*lshrsi3"): Also accept an immediate for 68HC12.
8730         ("*ashrsi3_const"): Likewise.
8731         ("*ashrsi3"): Likewise.
8732         ("*ashlsi3_const"): Likewise.
8733         ("*ashlsi3"): Likewise.
8734         ("cmphi_1_hc12"): Compare two hard register by pushing them and
8735         comparing with a pop; don't use a split for that.
8736         ("cmphi split"): Disable compare split for 68HC12.
8737
8738         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
8739         the status operands if they have side effects.
8740
8741 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
8742
8743         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
8744         definition.
8745         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
8746         config/h8300/h8300.h, config/ia64/ia64.h,
8747         config/mcore/mcore.h, config/mmix/mmix.h,
8748         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
8749         config/stormy16/stormy16.h, config/v850/v850.h,
8750         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
8751         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
8752         definition.
8753
8754 2004-03-07  Roger Sayle  <roger@eyesopen.com>
8755
8756         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
8757         <XOR_EXPR>: Fold x ^ x as zero.
8758         <AND_EXPR>: Fold x & x as x.
8759
8760 2004-03-07  Roger Sayle  <roger@eyesopen.com>
8761
8762         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
8763         "foo++ == const" into "++foo == const+incr".
8764
8765 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
8766
8767         * config/mips/mips.c (mips_in_small_data_p): Return false if
8768         TARGET_ABICALLS.
8769
8770 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
8771
8772         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
8773         the stack register.
8774         (expand_prologue): Don't make an interrupt or a trap handler a far
8775         symbol.
8776         (m68hc11_initial_elimination_offset): Likewise.
8777
8778 2004-03-06  Richard Henderson  <rth@redhat.com>
8779
8780         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
8781
8782 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
8783
8784         * config/ns32k/ns32k-protos.h: Add a prototype for
8785         ns32k_notice_update_cc.
8786         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
8787         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
8788         ns32k_notice_update_cc.
8789
8790 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
8791
8792         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
8793         "*load_multiple_si"): Allow only if reload_completed.
8794         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
8795         Likewise.
8796
8797 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
8798
8799         * config/vax/vax-protos.h: Add a prototype for
8800         vax_notice_update_cc.
8801         * config/vax/vax.c (vax_notice_update_cc): New.
8802         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
8803         vax_notice_update_cc.
8804
8805 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
8806
8807         * collect2.c (main): Only export initfunc and finifunc if
8808         LD_INIT_SWITCH not defined.
8809         (scan_prog_file): Only export constructors and destructors if
8810         LD_INIT_SWITCH not defined.  Only export symbols not found in
8811         shared objects.
8812
8813 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8814
8815         * pa.md (icacheflush): Reorder operands to make match_scratch operand
8816         last.
8817         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
8818         from calls to gen_icacheflush.
8819
8820 2004-03-06  Richard Henderson  <rth@redhat.com>
8821
8822         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
8823         (TARGET_LONG_DOUBLE_128): New.
8824         (TARGET_SWITCHES): Add long-double-{128,64}.
8825         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
8826         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
8827         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
8828         (WIDEST_HARDWARE_FP_SIZE): New.
8829         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
8830         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
8831         if TARGET_VAX_FLOAT.
8832         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
8833         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
8834
8835 2004-03-06  Richard Henderson  <rth@redhat.com>
8836
8837         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
8838         botched rtx class conversion.
8839
8840 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8841
8842         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
8843         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
8844
8845         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
8846         macros.
8847         * fold-const.c (fold_mathfn_compare, fold): Likewise.
8848
8849 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
8850
8851         PR target/14343
8852         * config/i386/i386.md (movv2di_internal): Conditionalize on
8853         TARGET_SSE, not TARGET_SSE2.
8854
8855 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
8856
8857         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
8858         duplicated line.
8859
8860 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8861
8862         * builtins.c: Consistently use logN not log* in comments.
8863
8864 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
8865
8866         * rtl.h (mem_expr_equal_p): Function prototype added.
8867         * cfgcleanup.c (merge_memattrs): New function.
8868         (flow_find_cross_jump): Call merge_memattrs for matching insns.
8869         * emit-rtl.c (mem_expr_equal_p): New function.
8870
8871 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
8872
8873         * objc/objc-act.c (synth_module_prologue): Const-qualify
8874         objc_selector type if using the GNU runtime; fix generated
8875         signatures for objc_msg_lookup and objc_msg_lookup_super
8876         to match what GNU ObjC headers provide; reformat and clean up.
8877         (synth_self_and_ucmd_args): Use previously constructed (and
8878         hence possibly const-qualified) objc_selector type.
8879
8880 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
8881
8882         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
8883
8884 2004-03-05  Jason Merrill  <jason@redhat.com>
8885
8886         * tree.h (TYPE_HASH): Use TYPE_UID.
8887         (TREE_HASH): New macro with old definition of TYPE_HASH.
8888         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
8889         (build_array_type, build_function_type): Likewise.
8890         (build_method_type_directly): Likewise.
8891         (build_offset_type, build_complex_type): Likewise.
8892         (type_hash_list, attribute_hash_list): Likewise. Now static.
8893         * except.c: s/TYPE_HASH/TREE_HASH/.
8894
8895 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
8896
8897         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
8898         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
8899         __va_ndx by 2 words when referencing an argument on the stack.
8900         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
8901         words when an arg on the stack is first seen.
8902
8903 2004-03-05  Paul Brook  <paul@codesourcery.com>
8904
8905         * arm.h (ARM_FLAG_VFP): Remove.
8906         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
8907         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
8908
8909 2004-03-05  Paul Brook  <paul@codesourcery.com>
8910
8911         * function.c (assign_parms): Include pretend alignment offset.
8912
8913 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8914
8915         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
8916         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
8917
8918 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
8919
8920         * configure.ac: When passing --enable-languages to subdir
8921         configure when host != build, make sure we don't pass an empty
8922         value.
8923         * configure: Regenerate.
8924
8925 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
8926
8927         PR 13577
8928         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
8929         options.
8930
8931 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
8932
8933         * simplify-rtx.c (simplify_relational_operation): If
8934         flag_wrapv is set, do not move terms between the two
8935         side of a relational operator.
8936
8937 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
8938
8939         * rtlanal.c: Include target.h and output.h
8940         (rtx_cost, address_cost, default_address_cost): Move from...
8941         * cse.c (rtx_cost, address_cost, default_address_cost):
8942         ... this file.
8943         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
8944         * Makefile.in: Adjust dependencies.
8945
8946 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
8947
8948         * cse.c (cse_end_of_basic_block): Make static.
8949         * local-alloc.c (function_invariant_p): Move to
8950         reload1.c.
8951         * loop.c (libcall_other_reg, record_excess_regs):
8952         Make static.
8953         * reload1.c (function_invariant_p): Moved here
8954         from local-alloc.c, made static.
8955         * rtl.h (cse_end_of_basic_block, function_invariant_p,
8956         libcall_other_reg, record_excess_regs): Remove
8957         declarations.
8958
8959 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
8960
8961         * config/m32r/m32r.c (signed_comparison_operator): Add a
8962         missing parenthesis.
8963
8964 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
8965
8966         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
8967         going to call mmap again.  Read the file into the right place.
8968         Give a fatal error if we have to relocate.
8969
8970 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
8971
8972         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
8973         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
8974
8975 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
8976
8977         PR other/14354
8978         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
8979         round the same.  When rounding, clear bits that would cause a
8980         second rounding in pack_d.
8981         (_fpmul_parts): Ditto.  Remove #if 0:d code.
8982
8983 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
8984
8985         PR c++/14425, c++/14426
8986         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
8987         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
8988         Change C++ definitions to accept a 'const int' argument;
8989         the prototypes already do.
8990         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
8991         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
8992         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
8993         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
8994         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
8995         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
8996         end in ..._int; change them to accept an int instead of a char
8997         as the last parameter.
8998
8999 2004-03-04  Phil Edwards  <phil@codesourcery.com>
9000
9001         * genmultilib:  Change '=' to '-' when translating option names
9002         to directory names.
9003
9004 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9005
9006         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9007         stack slot for temp used for result of BLKmode but in integral mode.
9008
9009 2004-03-04  Jan Hubicka  <jh@suse.cz>
9010
9011         * reload.c (find_reloads): Reorganize if seqeunce to switch.
9012
9013         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
9014         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
9015
9016 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
9017
9018         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9019         * testsuite/gcc.dg/20040303-1.c: New test.
9020
9021 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9022
9023         * ppro.md: Rewrite as a DFA pipeline description.
9024         * i386.md: Remove all uses of the ppro_uops attribute.
9025         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9026         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9027         ix86_sched_reorder, ix86_variable_issue,
9028         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9029         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9030         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9031         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9032         * athlon.md (athlon_ssecmp_load): Fix comment
9033
9034 2004-03-04  Stuart Hastings  <stuart@apple.com>
9035
9036         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9037
9038 2004-03-04  Stuart Hastings  <stuart@apple.com>
9039
9040         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9041         686, tell Darwin assembler to allow prefetch insns, non-empty def
9042         of SUBTARGET_OPTION_TRANSLATE_TABLE.
9043
9044 2004-03-04  DJ Delorie  <dj@redhat.com>
9045
9046         PR optimization/14282
9047         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9048         between a call and the assignment of its return value.
9049
9050 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9051
9052         * config/h8300/h8300.c: Put a comment for every function.
9053
9054 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9055
9056         * config/h8300/h8300.md: Add comments about peephole2's.
9057
9058 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9059
9060         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9061
9062 2004-03-04  Jan Hubicka  <jh@suse.cz>
9063
9064         * cfgcleanup.c (thread_jump): Update call of cselib_init.
9065         * cselib.c (cselib_record_memory): New static variable.
9066         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9067         Give up on memories when asked for.
9068         (cselib_init): Accept new argument.
9069         * cselib.h (cselib_init): Update prototype.
9070         * gcse.c (local_cprop_pass): Update call of cselib_init.
9071         * loop.c (load_mems): Update call of cselib_init.
9072         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9073         * sched-deps.c (sched_analyze): Update call of cselib_init.
9074
9075 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9076             GP <gp@qnx.com>
9077
9078         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9079         when compiling PIC.
9080
9081 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
9082
9083         PR/14362
9084         * var-tracking.c (track_expr_p): Do not track variables which
9085         should be ignored for debugging purposes.
9086
9087 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9088
9089         * real.c (encode_ibm_extended): Don't bother rounding low double.
9090         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9091         when fmt->pnan < fmt->p.
9092
9093 2004-03-04  Eric Christopher  <echristo@redhat.com>
9094
9095         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9096         only range of valid arg registers and fixed_regs.
9097
9098 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9099
9100         PR target/14406
9101         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9102         (abstf2, abstf2_internal): New define_expand.
9103
9104 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9105
9106         PR optimization/14235
9107         * expr.c (convert_move): Copy the source to a new pseudo
9108         when converting from a sub-word source to a larger-than-word
9109         register which conflicts with the source.
9110
9111 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
9112
9113         PR 13728
9114         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9115         parameters with the same name, unless one is a forward decl.
9116         Do not issue a redundant-redeclaration warning for forward
9117         decls of parameters.
9118
9119 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9120
9121         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9122         configuration.
9123
9124 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
9125
9126         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9127
9128 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9129
9130         * target-def.h (TARGET_OPTF): Delete.
9131         * c-opts.c (TARGET_OPTF): Define.
9132
9133 2004-03-04  Jan Hubicka  <jh@suse.cz>
9134
9135         * cselib.c (cselib_finish): Fix another miss-application of my previous
9136         patch.
9137
9138 2004-03-03  Mike Stump  <mrs@apple.com>
9139
9140         Add framework support for darwin.
9141
9142         * c-incpath.c: Include target.h and machmode.h.
9143         (add_path): Use a consistent style for cpp_dir.  Initialize
9144         p->construct to 0.
9145         (add_cpp_dir_path): New.
9146         (register_include_chains): Add use of extra_includes callback.
9147         (hook_void_int): Add.
9148         (target_c_incpath): Add.
9149         * c-incpath.h (add_cpp_dir_path): New.
9150         (target_c_incpath_s): Add.
9151         (target_c_incpath): Add.
9152         (C_INCPATH_INIT): Add.
9153         * c-opts.c (c_common_missing_argument,
9154         c_common_handle_option): Add -F argument processing.
9155         * c.opt: Add -F argument processing.
9156         * gcc.c (trad_capable_cpp): Add -F argument processing.
9157         * cppfiles.c (find_file_in_dir): Update to use construct
9158         callback.
9159         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9160         cpp_get_prev): New.
9161         (_cpp_find_file): Use search_path_exhausted.
9162         (make_cpp_dir): Initialize construct to 0.
9163         * cpplib.h (missing_header_cb
9164         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9165         (cpp_callbacks): Add missing_header
9166         (cpp_dir): Add construct.
9167         * target-def.h: (TARGET_OPTF): New.
9168         * hooks.c (hook_void_int, hook_void_charptr): Add.
9169         * hooks.h (hook_void_int, hook_void_charptr): Add.
9170         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9171         $(MACHMODE_H) dependencies.
9172         * doc/invoke.texi (Darwin Options): Document -F.
9173         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9174         (TARGET_OPTF): Add.
9175         * fix-header.c (target_c_incpath): Add.
9176
9177         * config/darwin-c.c: Add c-incpath.h include.
9178         (using_frameworks, find_subframework_file,
9179         find_subframework_header, add_system_framework_path,
9180         frameworks_in_use, num_frameworks, max_frameworks,
9181         add_framework, find_framework, struct framework_header,
9182         framework_header_dirs, framework_construct_pathname,
9183         find_subframework_file, add_system_framework_path,
9184         add_framework_path, framework_defaults,
9185         darwin_register_frameworks, find_subframework_header): Add.
9186         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9187         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9188         (CPP_SPEC): Add __APPLE_CC__ support.
9189         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9190
9191 2004-03-04  Jan Hubicka  <jh@suse.cz>
9192
9193         * cselib.c (cselib_finish): Fix miss-application of my previous
9194         patch.
9195
9196 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9197
9198         * hooks.c (hook_tree_tree_identity): New.
9199         * hooks.h: Add a prototype for hook_tree_tree_identity.
9200         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9201         instead of MD_ASM_CLOBBERS.
9202         * system.h (MD_ASM_CLOBBERS): Poison.
9203         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9204         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9205         * target.h (gcc_target): Add md_asm_clobbers.
9206         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9207         (ix86_md_asm_clobbers): New.
9208         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9209         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9210         TARGET_MD_ASM_CLOBBERS.
9211
9212 2004-03-03  Stuart Hastings  <stuart@apple.com>
9213
9214         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
9215
9216 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9217
9218         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
9219
9220         * config/sparc/sparc.h (ASM_FLOAT): Delete.
9221         (ASM_DOUBLE): Likewise.
9222         (ASM_LONGDOUBLE): Likewise.
9223         * config/sparc/pbd.h (ASM_INT_OP): Delete.
9224
9225 2003-03-03  Richard Henderson  <rth@redhat.com>
9226
9227         PR opt/13862
9228         * cselib.c (cselib_record_sets): Don't record multiple sets in
9229         asm insns.
9230
9231 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
9232
9233         * common.opt: Add description of the new -fgcse-after-reload flag.
9234
9235         * flags.h (flag_gcse_after_reload): Declaration of global variable.
9236
9237         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
9238         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
9239         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9240         get_bb_avail_insn, hash_scan_set_after_reload,
9241         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
9242         gcse_after_reload, get_bb_avail_insn): New functions to implement
9243         gcse-after-reload.
9244         (gcse_after_reload_main): New function, the main entry point to
9245         gcse-after-reload.
9246
9247         * rtl.h (gcse_after_reload_main): Declaration of the new function.
9248
9249         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
9250
9251         * toplev.c (flag_gcse_after_reload): Initialization.
9252
9253         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
9254
9255         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9256         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
9257         the gcse after reload optimization.
9258
9259         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9260         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
9261         parameters.
9262
9263         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
9264
9265 2004-03-03  Nicolas Pitre <nico@cam.org>
9266
9267         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
9268         small negative values.
9269
9270 2004-03-03  Jan Hubicka  <jh@suse.cz>
9271
9272         * cselib.c (hash_table):  Remove GTY marker.
9273         (reg_values): Turn into array.
9274         (used_regs): Likewise.
9275         (n_used_regs): New static variable.
9276         (reg_values_old): Kill.
9277         (clear_table): Update uses of arrays.
9278         (cselib_lookup): Likewise.
9279         (cselib_record_set): Likewise.
9280         (cselib_init): Likewise.
9281         (cselib_finish): Likewise.
9282         (cselib_udpate_varray_sizes): Kill.
9283         * cselib.h (cselib_update_varray_sizes): Kill.
9284
9285 2004-03-03  Paul Brook  <paul@codesourcery.com>
9286
9287         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
9288
9289 2004-03-03  Jan Hubicka  <jh@suse.cz>
9290
9291         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
9292         Rename from ...; make statistics transparent.
9293         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
9294         (loc_descriptor): New structure.
9295         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
9296         add_statistics):
9297         New static function.
9298         (ggc_record_overhead, dump_statistics): New global function.
9299         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9300         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
9301         from ...; accept locations
9302         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9303         ggc_realloc, ggc_alloc_typed):  ... this one.
9304         from ...; accept locations
9305         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
9306         ggc_alloc_stat): Rename from ... ; pass locations
9307         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
9308         ... this one.
9309         (ggc_alloc_stat): Record overehead.
9310         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9311         ggc_realloc, ggc_alloc_typed):  Turn to macros
9312         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9313         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
9314         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
9315         * langhooks.h (lhd_make_node): Declare.
9316         (LANG_HOOKS_MAKE_TYPE): Default to new function,
9317         * langhooks.c (lhd_make_node): New.
9318         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
9319         locations.
9320         (rtx_alloc, swallow_copy_rtx): ... this one.
9321         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
9322         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
9323         * toplpev.c (finalize): Dump stats.
9324         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
9325         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9326         Rename from ... ; pass locators.
9327         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9328         build?,  build_decl): Declare.
9329         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
9330         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9331         Declare.
9332         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9333         build?,  build_decl): New macros.
9334         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
9335         * statistics.h: New file.
9336
9337 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9338             Richard Sandiford  <rsandifo@redhat.com>
9339
9340         * config/mips/mips.h (MASK_FIX_SB1): Bump.
9341         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
9342         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
9343         * config/mips/mips.c (mips_output_division): Fill the branch delay
9344         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
9345         TARGET_FIX_R4400.
9346         (mips_output_division): Adjust accordingly.
9347         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
9348         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
9349
9350 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
9351
9352         * alias.c (rtx_equal_for_memref_p): Use predicates
9353         to test rtx classes and new rtx class codes, possibly
9354         splitting conditionals that tested against '<' and 'o'.
9355         * caller-save.c (save_call_clobbered_regs): Likewise.
9356         * combine.c (contains_muldiv, find_split_point, subst,
9357         combine_simplify_rtx, simplify_if_then_else,
9358         simplify_set, simplify_logical, expand_compound_operation,
9359         make_compound_operation, if_then_else_cond, known_cond,
9360         apply_distributive_law, cached_nonzero_bits,
9361         cached_num_sign_bit_copies, simplify_shift_const,
9362         gen_binary, simplify_comparison, update_table_tick,
9363         record_value_for_reg, get_lsat_value_validate): Likewise.
9364         * cse.c (mention_regs, find_best_addr, find_comparison_args,
9365         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
9366         Likewise.
9367         * emit-rtl.c (copy_insn_1): Likewise.
9368         * expr.c (force_operand): Likewise.
9369         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
9370         * flow.c (notice_stack_pointer_modification_1,
9371         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
9372         and_reg_cond, elim_reg_cond): Likewise.
9373         * function.c (update_epilogue_consts): Likewise.
9374         * genattrtab.c (attr_rtx_1): Likewise.
9375         * genopinit.c (gen_insn): Likewise.
9376         * integrate.c (subst_constants): Likewise.
9377         * jump.c (reversed_comparison_code_parts,
9378         reversed_comparison_code, delete_related_insns,
9379         rtx_renumbered_equal_p): Likewise.
9380         * local-alloc.c (block_alloc): Likewise.
9381         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
9382         canonicalize_condition): Likewise.
9383         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
9384         Likewise.
9385         * optabs.c (add_equal_node, expand_binop): Likewise.
9386         * predict.c (estimate_probability): Likewise.
9387         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
9388         * recog.c (validate_replace_rtx_1, comparison_operator,
9389         offsettable_address_p, constrain_operands): Likewise.
9390         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
9391         Likewise.
9392         * regclass.c (scan_one_insn): Likewise.
9393         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
9394         * regrename.c (kill_autoinc_value): Likewise.
9395         * reload.c (find_reusable_reload, find_reloads,
9396         reg_overlap_mentioned_for_reload_p): Likewise.
9397         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
9398         * rtl.c (copy_rtx): Likewise.
9399         * rtl.h (CONSTANT_P, INSN_P): Likewise.
9400         * rtlanal.c (commutative_operand_precedence): Likewise.
9401         * sched-deps.c (conditions_mutex_p): Likewise.
9402         * sched-rgn.c (is_cfg_nonregular): Likewise.
9403         * simplify-rtx.c (simplify_gen_binary,
9404         simplify_gen_relational, simplify_replace_rtx,
9405         simplify_unary_operation, simplify_binary_operation,
9406         simplify_ternary_operation, simplify_rtx): Likewise.
9407         * unroll.c (reg_dead_after_loop): Likewise.
9408         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
9409         print_operand): Likewise.
9410         * config/arc/arc.c (proper_comparison_operator): Likewise.
9411         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
9412         Likewise.
9413         * config/avr/avr.c (_reg_unused_after): Likewise.
9414         * config/frv/frv.c (frv_ifcvt_modify_tests,
9415         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
9416         * config/i386/i386.c (ix86_comparison_operator,
9417         ix86_carry_flag_operator, fcmov_comparison_operator,
9418         arith_or_logical_operator, print_operand,
9419         ix86_expand_binary_operator, ix86_binary_operator_ok):
9420         Likewise.
9421         * config/i386/i386.md: Likewise.
9422         * config/ia64/ia64.c (not_postinc_memory_operand,
9423         ia64_print_operand, update_set_flags, errata_emit_nops):
9424         Likewise.
9425         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
9426         CONSTRAINT_OK_FOR_S): Likewise.
9427         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
9428         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
9429         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
9430         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
9431         Likewise.
9432         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
9433         eqne_comparison_operator, signed_comparison_operator):
9434         Likewise.
9435         * config/mips/mips.c (cmp_op, symbolic_expression_p):
9436         Likewise.
9437         * config/mmix/mmix (mmix_foldable_comparison_operator,
9438         mmix_comparison_operator): Likewise.
9439         * config/pa/pa.c (hppa_legitimize_address): Likewise.
9440         * config/rs6000/rs6000.c (stmw_operation,
9441         branch_comparison_operator, trap_comparison_operator,
9442         ccr_bit): Likewise.
9443         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
9444         * config/s390/s390.c (s390_alc_comparison,
9445         s390_slb_comparison):L Likewise.
9446         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
9447         Likewise.
9448         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
9449         noov_compare_op, noov_compare64_op, v9_regcmp_op,
9450         emit_hard_tfmode_operation, reg_unused_after)
9451         * doc/md.texi, doc/rtl.texi: Likewise.
9452
9453         * ra-debug.c: Add 2004 to list of copyright years.
9454         * unroll.c: Likewise.
9455
9456         * combine.c (simplify_logical): Remove dummy test,
9457         (apply_distributive_law): Fix typo in comment.
9458         GET_CODE (x) == AND so x is a commutative binary op.
9459         * jump.c (delete_related_insns): simplify loop
9460         condition, move testing of RTX codes inside the loop.
9461         (rtx_renumbered_equal_p): do not use RTX_CODE.
9462         * rtl.c (rtx_class): Declare as enum rtx_class.
9463         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
9464         Move to RTX_COMM_COMPARE class.
9465         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
9466         Move to RTX_CONST_OBJ class.
9467         * rtl.h (enum rtx_class): New declaration,
9468         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
9469         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
9470         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
9471         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
9472         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
9473         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
9474         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
9475         OBJECT_P): New macros.
9476         * config/sparc/sparc.c (noov_compare_op): Remove register
9477         from parameter.
9478
9479 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9480
9481         * target.h: Remove texi jargons in comments.
9482
9483 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9484
9485         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
9486         threshold to 0x4f.
9487
9488         Revert:
9489         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9490         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
9491         as well.
9492         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
9493         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
9494
9495 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9496
9497         * doc/md.texi (cbranchmode4): New.
9498
9499 2004-03-02  Eric Christopher  <echristo@redhat.com>
9500
9501         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
9502         fix_trunc.
9503         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
9504         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
9505         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
9506         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
9507
9508 2004-03-02  Richard Henderson  <rth@redhat.com>
9509
9510         PR middle-end/11767
9511         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
9512         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
9513         before the compare, if flag_non_call_exceptions.
9514
9515 2004-03-02  Richard Henderson  <rth@redhat.com>
9516
9517         PR middle-end/14327
9518         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
9519         emitting the label, not after.
9520
9521 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9522
9523         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
9524         (m68hc11_mov_addr_mode): Likewise.
9525         (m68hc11_override_options): Initialize them based on target.
9526         (register_indirect_p): Allow a MEM for indirect addressing modes and
9527         use flags to control what is allowed.
9528         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
9529         supported addressing modes.
9530         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
9531         (go_if_legitimate_address_internal): Likewise.
9532         (m68hc11_indirect_p): Likewise and check the mode.
9533         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
9534
9535 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9536
9537         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
9538         (expand_builtin_setjmp_setup): Use
9539         targetm.builtin_setjmp_frame_value instead of
9540         BUILTIN_SETJMP_FRAME_VALUE.
9541         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
9542         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
9543         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9544         * target.h (gcc_target): Add builtin_setjmp_frame_value.
9545         * targhooks.c (default_builtin_setjmp_frame_value): New.
9546         * targhooks.h: Add a prototype for
9547         default_builtin_setjmp_frame_value.
9548         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
9549         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9550
9551 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9552
9553         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
9554         sequences of moves.
9555         (add peepholes): New peepholes to optimize sequences adding small
9556         constants.
9557         (bset peepholes): New peepholes to transform an OR in a bset form
9558         (bclr peepholes): Likewise for bclr form.
9559         (cmp peepholes): New peepholes to avoid register copies when comparing.
9560
9561 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9562
9563         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
9564         to separate push from moves.
9565         ("*pushdf_internal"): Likewise.
9566         ("*pushsf_internal"): Likewise.
9567         ("*pushsi_internal"): Likewise.
9568         ("movdi_internal"): Use define_insn_and_split; non push operand.
9569         ("movdf_internal"): Likewise.
9570         ("movsf_internal"): Likewise.
9571         ("movsi_internal"): Likewise.
9572         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
9573         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
9574         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
9575
9576 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9577
9578         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
9579         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
9580         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
9581         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
9582         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
9583         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
9584         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
9585         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
9586         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
9587         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
9588         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
9589
9590 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9591
9592         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
9593         (SOFT_XY_REGNUM): Define.
9594         (cmp split): Use the above instead of hard coded numbers.
9595         (8-bit op split): No need to check the mode; allow Q_REG.
9596         (ashift split): Adjust the first operand if it uses the SP and we
9597         are pushing the shifted value.
9598         (plus shift split): Fix when a source is in register D+X.
9599         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
9600
9601 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9602
9603         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
9604         comparing with Z register.
9605
9606 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9607
9608         * cfgloop.h (struct loop_desc): Removed.
9609         (struct loop): Fields simple, desc and has_desc removed.
9610         (simple_loop_p, count_loop_iterations): Declaration removed.
9611         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
9612         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
9613         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
9614         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
9615         simple_loop_exit_p, variable_initial_value, variable_initial_values,
9616         simple_condition_p, simple_increment, count_strange_loop_iterations,
9617         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
9618         Removed.
9619         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
9620
9621 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9622
9623         * genattrtab.c: Don't handle MATCH_INSN.
9624         * genrecog.c: Likewise.
9625         * gensupport.c: Likewise.
9626         * rtl.def (match_insn): Remove.
9627         * doc/md.texi (match_insn, match_insn2): Remove.
9628
9629 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
9630
9631         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
9632         macro results in memory allocation.
9633
9634 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
9635
9636         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
9637         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
9638         %(fbsd_dynamic_linker),
9639         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
9640         config/i386/freebsd.h
9641         * config/arm/freebsd.h: Ditto.
9642         * config/i386/freebsd.h: Ditto.
9643         * config/i386/freebsd64.h: Ditto.
9644         * config/ia64/freebsd.h: Ditto.
9645         * config/rs6000/sysv4.h: Ditto.
9646         * config/sparc/freebsd.h: Ditto.
9647
9648 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
9649
9650         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
9651
9652 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9653
9654         * rtl.def (define_combine): Remove.
9655
9656 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9657
9658         * config/h8300/h8300.md: Tweak formatting.
9659
9660 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9661
9662         * config/h8300/h8300.md (*cmphi_h8300): Rename to
9663         *cmphi_h8300_znvc.
9664         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
9665
9666 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
9667
9668         PR bootstrap/14356
9669         * gcc.c (process_command): Remove const-qualification from argv.
9670         (main): Likewise.
9671
9672 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9673
9674         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
9675         pushqi1_h8300hs_advanced.  Adjust its caller.
9676         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
9677         Adjust its caller.
9678
9679 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
9680
9681         * Makefile.in (install-libgcc, install-multilib): Pass
9682         mkinstalldirs var to libgcc.mk.
9683
9684 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9685
9686         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
9687         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
9688
9689 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9690
9691         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
9692         * config/h8300/h8300.md: Split several peephole2's, each into
9693         two.
9694
9695 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9696
9697         * dominance.c (recount_dominator): Handle postdominators.
9698
9699 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9700
9701         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
9702         (NUM_SYMBOL_TYPES): Likewise.
9703         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
9704         (mips_unspec_address): Declare.
9705         (mips_gotoff_page, mips_gotoff_global): Delete.
9706         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
9707         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
9708         (mips_symbolic_constant_p, mips_symbolic_address_p)
9709         (mips_symbol_insns): Handle new symbol types.
9710         (general_symbolic_operand): New predicate.
9711         (mips_unspec_address): Make extern.
9712         (mips_gotoff_page, mips_gotoff_global): Delete.
9713         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
9714         Handle new symbol types.
9715         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
9716         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
9717         mips_unspec_address directly.
9718         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
9719         the documentation of -mexplicit-relocs.
9720
9721 2004-03-01  Jeff Law  <law@redhat.com>
9722
9723         * fold-const.c (fold): An equality comparison of a non-weak object
9724         against zero has a known result.  Similarly an equality comparison
9725         of the address of two non-weak, unaliased symbols has a known result.
9726
9727         * ggc-page.c (struct page_entry): New field PREV.
9728         (ggc_alloc): Update PREV field appropriately.
9729         (sweep_pages): Likewise.
9730         (ggc_free): Likewise.  Use PREV field rather than loop to
9731         improve ggc_free performance.
9732
9733 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9734
9735         * config/mips/mips.c (mips_output_division): Use the division
9736         instruction to fill the delay slot of a zero check.
9737         (mips_idiv_insns): Adjust accordingly.
9738
9739 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
9740
9741         * config.gcc: Create a default tmake_file for linux, and use
9742         it in all but two linux clauses.  Comment those two.
9743
9744 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
9745
9746         * combine.c (try_combine):  Do not refer to is_replaced.
9747         (gen_lowpart_for_combine):  Perverse subregs now have a
9748         more politically correct name.
9749         * cse.c (cse_insn): Likewise.
9750         * jump.c: Fix bogus reference to delete_insn.
9751
9752 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
9753
9754         PR debug/14328
9755         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
9756         constants as signed values.
9757
9758         PR middle-end/13448
9759         * c-tree.h (readonly_warning): Rename to ...
9760         (readonly_error): ... this.
9761         * c-typeck.c (build_unary_op): Adjust accordingly.
9762         (readonly_warning): Rename to ...
9763         (readonly_error): ... this and issue errors, not warnings.
9764         (build_modify_expr): Call readonly_error, not readonly_warning.
9765         (c_expand_asm_operands): Likewise.
9766         * tree-inline.c (optimize_inline_calls): Do not inline functions
9767         after errors have occurred.
9768
9769 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
9770
9771         * configure.ac: Rearrange some threading code for clarity;
9772         add section comment.
9773         * configure: Regenerate.
9774
9775 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9776
9777         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
9778         typos.
9779         * doc/cppopts.texi: Fix a typo.
9780
9781 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9782
9783         * config/i386/i386.md: Fix formatting.
9784
9785 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
9786
9787         * configure.ac: Add some comments delineating sections of code.
9788
9789         * doc/install.texi: Note that libada uses autoconf 2.57 also.
9790
9791         * doc/install.texi: Fix idiot typo in previous commit.
9792
9793         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
9794
9795 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9796
9797         * config/h8300/h8300.md: Add comments about peephole2's.
9798
9799 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9800
9801         * config/h8300/h8300.md: Tweak operand numbers of some
9802         peephole2's.
9803
9804 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9805
9806         * config/h8300/h8300.md: Tweak comments about peephole2's.
9807
9808 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
9809
9810         PR middle-end/14203
9811         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
9812         instead of testing whether DECL_RTL is not NULL.
9813
9814 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9815
9816         * config/sh/sh.c: Fix formatting.
9817
9818 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9819
9820         * config/sh/sh.c: Convert to ISO-C.
9821
9822 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
9823
9824         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
9825         my previous patch.
9826
9827         * config/darwin.h (machopic_finish): Output stub even if the
9828         symbol is already defined.
9829
9830 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9831
9832         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
9833
9834 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9835
9836         * genattr.c (main): Don't define
9837         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
9838         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
9839         (DFA_PIPELINE_INTERFACE): Likewise.
9840         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
9841         (DFA_PIPELINE_INTERFACE): Likewise.
9842
9843 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
9844
9845         * config/mips/mips.md (tstsi, tstdi): Delete.
9846
9847 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9848
9849         * config/mips/mips.c (override_options): Remove an obsolete
9850         duplicate definition of the "e" constraint.
9851         * config/mips/mips.h: Update a comment accordingly.
9852
9853 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9854
9855         * config/mips/mips.md: Complete the unfinished R4000
9856         multiply/shift errata workaround.  Improve documentation.
9857         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
9858         has a hilo hazard.
9859         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
9860         (muldi3, muldi3_internal): Likewise.
9861         (muldi3_internal2): Remove, replacing with...
9862         (muldi3_mult3, muldi3_r4000): ...these new patterns.
9863         (mulsidi3): Take the errata into account.
9864         (mulsidi3_32bit): Remove, replacing with...
9865         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
9866         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
9867         (umulsidi3): Take the errata into account.
9868         (umulsidi3_32bit): Remove, replacing with..
9869         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
9870         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
9871         TARGET_FIX_R4000.
9872         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
9873         (smuldi3_highpart, umuldi3_highpart): Likewise.
9874         * doc/invoke.texi: Document the errata workaround.
9875
9876 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9877
9878         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
9879         * config/mips/mips.h (MASK_FIX_SB1): Bump.
9880         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
9881         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
9882         * config/mips/mips.c (mips_idiv_insns): New function.
9883         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
9884         (mips_output_division): Add a workaround for the R4000 divide/shift
9885         errata.
9886         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
9887         the length of an "idiv" instruction.
9888         * doc/invoke.texi: Document the new switches.
9889
9890 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9891
9892         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
9893         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
9894
9895 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9896
9897         PR optimization/14229
9898         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
9899
9900 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
9901
9902         * fold-const.c (fold): Strip NOPs that change the signedness
9903         for RSHIFT too.  Expand comment.
9904
9905 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
9906
9907         PR optimization/7871
9908         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
9909         from or to call insns.
9910
9911 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9912
9913         PR optimization/7871
9914         * flow.c (propagate_one_insn): Interpret calls as setting global
9915         registers, not merely clobbering them.
9916
9917 2004-02-27  Dale Johannesen  <dalej@apple.com>
9918
9919         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
9920         config/darwin-protos.h:  Ditto.
9921         config/darwin.h:  Remove call to it.
9922         * combine.c (distribute_notes): Do not place a REG_DEAD note
9923         when value is both set and used.
9924
9925 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9926
9927         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
9928         as well.
9929         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
9930         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
9931
9932 2004-02-27  Andrew Pinski  <apinski@apple.com>
9933
9934         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
9935         Speedup common case of the type values being in the same order.
9936
9937 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
9938
9939         * config/ia64/ia64.h (no-inline-float-divide): New option.
9940         * config/ia64/ia64.h (no-inline-int-divide): New option.
9941         * config/ia64/ia64.h (no-inline-sqrt): New option.
9942         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
9943         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
9944         * config/ia64/ia64.c (ia64_override_options): Modify error
9945         checking for inlined division/sqrt.
9946
9947 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9948
9949         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
9950         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
9951         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
9952         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
9953         copyright.
9954
9955 2004-02-27  Paul Brook  <paul@codesourcery.com>
9956
9957         * function.c (assign_parms): Don't count pretend args for alignment.
9958
9959 2004-02-27  Richard Henderson  <rth@redhat.com>
9960
9961         * passes.c: New file.
9962         * Makefile.in (OBJS-common): Add it.
9963         * diagnostic.c (rtl_dump_and_exit): Move decl ...
9964         * flags.h (rtl_dump_and_exit): ... here.
9965         * output.h (size_directive_output, last_assemble_variable_decl):
9966         Move from toplev.c.
9967         * rtl.h (reg_alloc): Move from toplev.c.
9968         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
9969         struct dump_file_info, enum dump_file_index, dump_file_tbl,
9970         open_dump_file, close_dump_file, rest_of_decl_compilation,
9971         rest_of_type_compilation, rest_of_handle_final,
9972         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
9973         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
9974         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
9975         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
9976         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
9977         rest_of_handle_tracer, rest_of_handle_if_conversion,
9978         rest_of_handle_if_after_combine, rest_of_handle_web,
9979         rest_of_handle_branch_prob,
9980         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
9981         rest_of_handle_addressof, rest_of_handle_sibling_calls,
9982         rest_of_handle_jump_bypass, rest_of_handle_inlining,
9983         rest_of_handle_null_pointer, rest_of_handle_combine,
9984         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
9985         rest_of_handle_gcse, rest_of_handle_loop_optimize,
9986         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
9987         (decode_d_option): Use enable_rtl_dump_file.
9988         (compile_file, finalize, do_compile): Move profile+combine+graph
9989         cleanup to finish_optimization_passes.
9990         * toplev.h (init_optimization_passes, finish_optimization_passes,
9991         enable_rtl_dump_file): Declare.
9992
9993 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
9994             Roger Sayle  <roger@eyesopen.com>
9995
9996         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
9997         operands to build a tree with swapped operands.
9998         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
9999         'unsignedp' predicate to specify the signedness.
10000
10001 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10002
10003         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10004         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10005         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10006         comment typos and formatting.  Follow spelling conventions.
10007
10008 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
10009
10010         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10011         fix_truncsfsi2.
10012
10013         * config/rs6000/spe.md: Delete spe_efsctuiz.
10014         Add spe_fixuns_truncsfsi2.
10015         Add spe_fix_truncsfsi2.
10016
10017 2004-02-26  Eric Christopher  <echristo@redhat.com>
10018
10019         * c-lex.c (c_lex_string_translate): New variable.
10020         (lex_string): Use to determine string translation.
10021         * c-pragma.h: Prototype.
10022         * c-parse.in (start_string_translation): New. Set above.
10023         (stop_string_translation): Ditto.
10024         (attribute, attribute_list, asm_def, asm_stmt,
10025         asm_operand): Use above functions.
10026         * cp/parser.c (cp_parser_declaration): Translate strings
10027         unless token is RID_EXTERN. Set c_lex_string_translate
10028         for recursive use.
10029         (cp_parser_asm_definition): Only translate argument strings
10030         to asms.
10031         (cp_parser_asm_operand_list): Ditto.
10032         (cp_parser_attribute_list): Do not translate attribute strings.
10033
10034 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10035
10036         * stmt.c (expand_start_case_dummy): Remove.
10037         * tree.h: Remove the corresponding prototype.
10038
10039 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10040
10041         * builtins.c (apply_args_register_offset): Remove.
10042         * tree.h: Remove the corresponding prototype.
10043
10044 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10045
10046         * stor-layout.c (is_pending_size): Remove.
10047         * tree.h: Remove the corresponding prototype.
10048
10049 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10050
10051         * recog.c (validate_replace_src): Remove.
10052         * recog.h: Remove the corresponding prototype.
10053
10054 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10055
10056         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10057         MAYBE_REG_PARM_STACK_SPACE.
10058         * function.c: Likewise.
10059         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10060         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10061         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10062         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10063
10064 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10065
10066         * c-decl.c (c_expand_deferred_function): Remove.
10067         * c-tree.h: Remove the corresponding prototype.
10068
10069 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10070
10071         * postreload.c (reload_cse_move2add): Generate just a PLUS
10072         instead of an entire SET.
10073
10074 2004-02-26  Jan Hubicka  <jh@suse.cz>
10075
10076         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10077         /pentium4m.
10078         * i386.c (override_options): Add support for new CPUs.
10079         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10080         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10081         constants.
10082         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10083
10084 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
10085
10086         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10087
10088 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10089
10090         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10091         (sparc_emit_fixunsdi): New prototype.
10092         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10093         (sparc_emit_fixunsdi): New function.
10094         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10095         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
10096         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
10097         to sparc_emit_floatunsdi.
10098         (fixuns_truncsfdi2): New expander.
10099         (fixuns_truncdfdi2): Likewise.
10100
10101 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
10102
10103         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10104         unless HAVE_cc0.
10105
10106 2004-02-25  Richard Henderson  <rth@redhat.com>
10107
10108         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10109         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10110         use (op0-op1) == 0 if op0 is a pointer.
10111         * config/alpha/alpha.md (cmpdi): Use some_operand.
10112         (three comparison combine splits): Remove.
10113
10114 2004-02-25  Richard Henderson  <rth@redhat.com>
10115
10116         PR c/12794
10117         * c-common.c (handle_alias_attribute): Reject the attribute if
10118         current_function_decl is set.
10119
10120 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10121
10122         * config.gcc: Add comment describing extra_gcc_objs.
10123         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10124         * configure.ac (extra_gcc_objs): New substitution variable.
10125         (host_extra_gcc_objs): Don't substitute.
10126         * configure: Regenerate.
10127         * Makefile.in: Use extra_gcc_objs.
10128
10129 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10130
10131         * doc/contrib.texi: Add an entry for myself.
10132
10133 2004-02-25  Jan Hubicka  <jh@suse.cz>
10134
10135         * basic-block.h (make_eh_edge, break_superblocks): Declare.
10136         * cfgbuild.c (make_eh_edge):  Make global.
10137         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10138         * except.c (build_post_landing_pads, connect_post_landing_pads,
10139         dw2_build_landing_pads, sjlj_emit_function_enter,
10140         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10141         sjlj_build_landing_pads): Update CFG.
10142         (emit_to_new_bb_before): New function.
10143         (finish_eh_generation): Do not rebuild the CFG.
10144
10145 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10146
10147         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10148         target_cpu_default defines.
10149         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10150         * pa.h (TARGET_DEFAULT): Likewise.
10151
10152 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10153
10154         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10155         comparisons with regard to signedness.
10156
10157 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10158
10159         * arm.c (thumb_legitimize_address): New function.
10160         * arm-protos.h: Prototype it.
10161         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10162         (LEGITIMIZE_ADDRESS): Use it.
10163
10164 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
10165
10166         * reload1.c (reload): Only spill eliminable register with multiple
10167         adjacent elimination alternatives if all alternatives fail.
10168
10169 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10170
10171         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10172         is -4095...+4095 inclusive.
10173
10174 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
10175
10176         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10177         the bootstrap failure with Sun CC 5.4 and 5.5.
10178
10179 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10180
10181         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10182         which modifies NEWREG.
10183         (cse_condition_code_reg): Update the mode of CC_REG in
10184         CC_SRC_INSN on our own.
10185
10186 2004-02-24  Michael Matz  <matz@suse.de>
10187
10188         * config/i386/i386.c (ix86_comp_type_attributes): Check for
10189         regparm attributes.
10190
10191 2004-02-24  Richard Henderson  <rth@redhat.com>
10192
10193         * toplev.c (dump_file_tbl): Rename from dump_file.
10194         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
10195         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
10196         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10197         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10198         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10199         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10200         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10201         s/rtl_dump_file/dump_file/g.
10202
10203 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
10204
10205         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10206         (spe_fixuns_truncsfsi2): Delete.
10207
10208         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10209         (fixuns_truncsfsi2): Delete.
10210
10211 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
10212
10213         PR/14240
10214         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
10215
10216 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
10217
10218         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
10219
10220 2004-02-24  Jason Merrill  <jason@redhat.com>
10221
10222         * tree.c (check_qualified_type): New fn.
10223         (get_qualified_type): Use it.  If type already has the desired
10224         quals, just return it.
10225         * tree.h: Declare it.
10226
10227 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
10228
10229         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
10230         TARGET_SCHED_FINISH_GLOBAL): New macros.
10231
10232         * target.h (md_init_global, md_finish_global): Function
10233         declarations corresponding to new target macros.
10234
10235         * haifa-sched.c (sched_init, sched_finish): Allow target to
10236         call the new schedular hooks.
10237
10238         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
10239         call to update_life_info.
10240
10241         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
10242         flag_schedule_insns for SH4.
10243
10244         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
10245         find_set_regmode_weight, find_insn_regmode_weight,
10246         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
10247         sh_variable_issue, high_pressure, ready_reorder,
10248         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
10249         functions used to throttle the insn movement in first
10250         scheduling pass for SH.
10251
10252         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
10253         TARGET_SCHED_FINISH_GLOBAL.
10254
10255 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
10256
10257         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
10258         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
10259         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
10260         symbols in sections named by the user.
10261         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
10262         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
10263         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
10264         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
10265         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
10266         the above.
10267         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
10268         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
10269         one more pseudo to further improve code generation.
10270         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
10271         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
10272         inside UNSPEC.
10273         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
10274         * config/frv/frv.c (frv_legitimate_address_p): Added
10275         allow_double_reg_p argument.  Adjust all callers.  Use it to
10276         decide whether to enable double-register indirect addressing.
10277         (frv_funcdesc_alias_set): Remove.
10278         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
10279         register.  Emit movdi_ldd.
10280         (ldd_address_operand): New.
10281         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
10282         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10283         (PREDICATE_CODES): Add ldd_address_operand.
10284         * config/frv/frv.md (movdi_ldd): New.
10285         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
10286         intermediate computations if possible.
10287         (symGOTOFF2reg_i): Fix harmless typo.
10288         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
10289         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
10290         relocated p_vaddr to vaddr type.
10291         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
10292         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
10293         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
10294         MEM, or use a funcdesc alias set.  Use regular move instead of
10295         ldd.
10296         (dbl_memory_one_insn_operand): Recognize function descriptors by
10297         type or by alias set, and don't split them.
10298         * config/frv/frv.md (call, call_value): Never use call_internal
10299         for fdpic.
10300         (call_internal, call_value_internal): Never match for FDPIC.
10301         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
10302         call_value_fdpicsi): Require FDPIC.
10303         (ldd): Removed.
10304         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
10305         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
10306         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
10307         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
10308         FDPIC.  Compute data base address.
10309         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
10310         before the other self-specs are processed.
10311         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
10312         Build with -fPIC.
10313         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
10314         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
10315         inhibit_libc is defined.
10316         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
10317         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
10318         __FRV_FDPIC__.
10319         (__RELOC_POINTER): Define.
10320         (_Unwind_IteratePhdrCallback): Use it.
10321         * config/frv/frv.h (Twrite): Define.
10322         (TRANSFER_FROM_TRAMPOLINE): Use it.
10323         * config/frv/linux.h (INVOKE__main): Undefine.
10324         (Twrite): Override.
10325         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
10326         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
10327         (-mlibrary-pic): Emphasize that this option generates EABI code.
10328         (-mcpu): Add fr550.
10329         (-mpack): Remove.
10330         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
10331         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
10332         and CONSTs in FDPIC mode.
10333         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
10334         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10335         * config/frv/frv.c (move_source_operand): Don't accept symbolic
10336         constants.
10337         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
10338         rather than 'i' constraint for the 2-instruction alternative.
10339         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
10340         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10341         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
10342         EXTRA_CONSTRAINT_FOR_Y.
10343         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
10344         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
10345         (addsi3): Change 'Y' constraint to 'Q'.
10346         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
10347         * reload.c (CONST_POOL_OK_P): New macro.
10348         (find_reloads): Use it to decide whether a constant can be forced
10349         into memory.
10350         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
10351         constant satisfies got12_operand.
10352         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
10353         (frv_legitimate_address_p): Check for valid unspec offsets using
10354         got12_operand rather than frv_legitimate_fdpic_operand_p.
10355         (frv_legitimate_fdpic_operand_p): Delete.
10356         (frv_emit_movsi): Abort if we try to use the FDPIC register during
10357         or after reload.
10358         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
10359         TARGET_FDPIC.
10360         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
10361         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
10362         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
10363         (frv_fdpic_fptr_operand): Don't declare here.
10364         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
10365         rather than fdpic_got12_operand.
10366         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
10367         got12_operand and const_unspec_operand.
10368         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
10369         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
10370         (symbolic_operand): Remove.
10371         (const_unspec_operand): New predicate.
10372         * config/frv/frv.md (*movsi_got): Use got12_operand.
10373         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
10374         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
10375         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
10376         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
10377         * config/frv/frv.c (frv_unspec): New structure.
10378         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
10379         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
10380         validate CONST indices.  Use frv_output_const_unspec to print them.
10381         (frv_print_operand): Update call to unspec_got_name.  Use
10382         frv_output_const_unspec to print constant unspecs.
10383         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
10384         Reject UNSPECs otherwise.
10385         (unspec_got_name): Take the relocation number as argument, not an
10386         rtx containing it.
10387         (frv_output_addr_const_extra): Remove, replacing with...
10388         (frv_output_const_unspec): ...this new function.
10389         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
10390         (gpr_or_int12_operand): Use fdpic_got12_operand.
10391         (dbl_memory_one_insn_operand): Likewise.
10392         (fdpic_got12_operand): Use frv_const_unspec_p.
10393         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
10394         are already legitimate.  Use frv_small_data_reloc_p when deciding
10395         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
10396         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
10397         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
10398         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
10399         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10400         label, for real this time.
10401         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
10402         representation of visibility.
10403         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
10404         such.
10405         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
10406         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
10407         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
10408         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
10409         it was explicitly disabled.
10410         (frv_stack_info): There is no need to save the link register in every
10411         frame unless TARGET_LINKED_FP is true.
10412         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
10413         frame pointer if the stack pointer might change value.
10414         (frv_return_addr_rtx): Check and process "count" argument.
10415         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
10416         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
10417         (frv_find_base_term): Declare.
10418         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
10419         (FIND_BASE_TERM): Define.
10420         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
10421         small_data_register_operand, small_data_symbolic_operand.  Add
10422         symbolic_operand.
10423         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
10424         (frv_print_operand_memory_reference, output_move_single): Remove
10425         special handling for unlegitimized sdata addresses.
10426         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
10427         and symbolic addresses.
10428         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
10429         (frv_find_base_term): New function.
10430         (int_2word_operand): Check specifically for symbolic address constants.
10431         (pic_register_operand, pic_symbolic_operand): Delete.
10432         (small_data_register_operand, small_data_symbolic_operand): Delete.
10433         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
10434         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
10435         (move_source_operand): Only accept CONSTs if they're a two-insn
10436         symbolic constant.
10437         (fdpic_got12_operand): Don't require TARGET_FDPIC.
10438         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
10439         using gen_symGOTOFF2reg*.
10440         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
10441         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
10442         themselves a cost of 3 insns.
10443         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
10444         Change predicate to symbolic_operand.
10445         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
10446         (*movsi_lda_sdata): Delete.
10447         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
10448         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
10449         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
10450         frv-*-*linux*.
10451         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10452         label.
10453         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
10454         -multilib-library-pic.
10455         (LINK_SPEC): Add -z text for -mfdpic.
10456         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
10457         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
10458         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
10459         Override.
10460         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
10461         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
10462         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
10463         crtstuff-generated files.
10464         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
10465         * config.gcc: Add frv-*-*linux*.
10466         * config/frv/linux.h, config/frv/t-linux: New.
10467         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
10468         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
10469         when -mfdpic even if a linker script is explicitly listed.
10470         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10471         * config/frv/frv.c (frv_override_options): Clear asm_out
10472         unaligned_op for SImode on FDPIC.
10473         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
10474         argument passed to decl_readonly_section.
10475         (frv_assemble_integer): Revert 2003-09-30's change, but make the
10476         whole block run with FDPIC even with -fno-PIC.
10477         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10478         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
10479         symbol or label plus offset to memory.
10480         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
10481         GOTOFF and GPREL for LABEL_REF.
10482         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
10483         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
10484         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
10485         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
10486         * doc/invoke.texi: Document them.
10487         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
10488         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
10489         (frv_splittable_got_operand): Removed.
10490         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
10491         LO_SUM.  Add comments.
10492         (frv_override_options): Moved enabling of FDPIC to
10493         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
10494         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
10495         (frv_legitimize_fdpic_address): Don't duplicate logic in
10496         frv_emit_movsi.
10497         (frv_gen_GPsym2reg): New.
10498         (unspec_got_name): Added gprel.
10499         (frv_expand_fdpic_call): Add support for inlining PLTs.
10500         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
10501         (gpr_or_int12_operand): Added GPREL12.
10502         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
10503         (small_data_symbolic_operand): Fail if FDPIC.
10504         (fdpic_splittable_got_operand): Removed.
10505         (fdpic_got12_operand): Added GPREL12.
10506         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
10507         when appropriate.  Fix sdata GOTOFF.
10508         (frv_legitimate_constant_p): Require legitimate PIC operand for
10509         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
10510         (frv_assemble_integer): Move FDPIC funcdesc handling out of
10511         flag_pic case.
10512         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
10513         frv_assemble_integer fails.
10514         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
10515         (SUBTARGET_DRIVER_SELF_SPECS): New.
10516         (ASM_SPEC): Don't pass -mno-fdpic.
10517         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
10518         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
10519         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
10520         -multilib-library-pic.
10521         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
10522         condexec_si_media_operator, condexec_sf_add_operator and
10523         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
10524         and condexec_sf_unary_operator.
10525         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
10526         New.
10527         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
10528         movsi_internal.  Give them internal names.  movsi_got has type
10529         int.
10530         (fdpic got splitters): Remove.
10531         (symGPREL2reg, symGPREL2reg_hilo): New.
10532         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
10533         to -mlibrary-pic.  Map -multilib-library-pic to it.
10534         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
10535         Document.
10536         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
10537         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
10538         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
10539         (frv_cannot_force_const_mem): New function.
10540         (const_small_data_p, plus_small_data_p): Update comments on sdata
10541         on FDPIC.
10542         (frv_override_options): Set flag_pie for FDPIC too.
10543         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
10544         call-saved registers on FDPIC.
10545         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
10546         don't force LR to be preserved.
10547         (frv_expand_prologue): Likewise.
10548         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
10549         (frv_frame_pointer_required): Don't force it just because the
10550         FDPIC register is used.
10551         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
10552         operand only if !condexec_p.
10553         (frv_legitimize_address): Return the FDPIC-legitimized address.
10554         Don't match small data here on FDPIC.
10555         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
10556         symbols.  Use TRUE/FALSE instead of 1/0.
10557         (frv_local_funcdesc_p): New.
10558         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
10559         immediates when possible.
10560         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
10561         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
10562         an UNSPEC_GOT.
10563         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
10564         12-bit immediates when possible.
10565         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
10566         are not legitimate pic operands.
10567         (frv_in_small_data_p): Re-enable for FDPIC.
10568         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
10569         (FRV_GLOBAL_P): Removed.
10570         * config/frv/frv.md: Add modes to CONSTs.
10571         (movsi_got): New.
10572         (movsi_lo_sum_got): Use separate matches instead of match_dup.
10573         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
10574         (fdpic splittable operations): Match on flag_pic != 1.
10575         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
10576         * config/frv/frv.c (frv_asm_out_constructor,
10577         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
10578         bytes, not bits.
10579         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
10580         * config/frv/frv.c (frv_assemble_integer): Reject complex
10581         expressions referencing function SYMBOL_REFs.
10582         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
10583         (move_source_operand): Reject CONSTs that reference function
10584         SYMBOL_REFs on FDPIC.
10585         (frv_emit_movsi): If we get such a CONST, break it up.
10586         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
10587         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
10588         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
10589         MEM.
10590         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
10591         (frv_trampoline_size): Increase for FDPIC.
10592         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
10593         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
10594         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
10595         Disable use of GOTOFF for now.
10596         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
10597         Disable use of small data in FDPIC for now.
10598         (frv_asm_output_mi_thunk): Implement for FDPIC.
10599         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
10600         * config/frv/frv.c (frv_asm_out_constructor): Use
10601         frv_assemble_integer for FDPIC pointers.
10602         (frv_asm_out_destructor): Likewise.
10603         * config/frv/frv.md (ldd): Fix order of operands.  Use
10604         address_operand for input.
10605         2003-09-18  DJ Delorie  <dj@redhat.com>
10606         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
10607         (unspec_got_name): Correct typo.
10608         (frv_emit_movsi): Pre-expand splittable GOTs.
10609         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
10610         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
10611         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
10612         * config/frv/t-frv: Add -mfdpic multilibs.
10613         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
10614         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
10615         * config/frv/frv.c (frv_override_options): -mfdpic assumes
10616         flag_pic, default to 32-bit pics, require DWORD ops.
10617         (frv_override_options): Add W and Z constraints.
10618         (frv_expand_prologue): No pic prologue for -mfdpic.
10619         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
10620         (frv_print_operand_memory_reference): Handle GOT constants.
10621         (frv_legitimate_address_p): Allow GOT constants.
10622         (frv_legitimize_address): Handle GOT addresses too.
10623         (frv_legitimate_fdpic_operand_p): New.
10624         (frv_legitimize_fdpic_address): New.
10625         (unspec_got_name): New.
10626         (frv_output_addr_const_extra): New.
10627         (frv_expand_fdpic_call): New.
10628         (frv_fdpic_fptr_operand): New.
10629         (gpr_or_int12_operand): Handle GOT operands.
10630         (int_2word_operand): Handle GOT operands.
10631         (fdpic_operand): New.
10632         (fdpic_splittable_got_operand): New.
10633         (fdpic_got12_operand): New.
10634         (frv_emit_movsi): Handle GOT operands.
10635         (frv_assemble_integer): -mfdpic doesn't use rofixups.
10636         (frv_print_operand): Support 'g' code for GOT operands.
10637         * config/frv/frv-protos.h: Add prototypes as needed.
10638         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
10639         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
10640         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
10641         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
10642         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
10643         R_FRV_GOTOFFLO): New.
10644         (movsi_high_got, movsi_lo_sum_got): New.
10645         (*movsi_pic): Don't use this splitter for -mfdpic.
10646         (addsi3): Allow GOT references also.
10647         (call, call_value): Handle -mfdpic separately.
10648         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
10649         call_value_fdpicsi): New.
10650         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
10651         symGOTOFF2reg_i): New.
10652         * config/frv/frv.h (MASK_FDPIC): New.
10653         (TARGET_FDPIC): New.
10654         (TARGET_SWITCHES): Add -mfdpic.
10655         (FDPIC_FPTR_REGNO): New.
10656         (FDPIC_REGNO): New.
10657         (OUR_FDPIC_REG): New.
10658         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
10659         FDPIC_CALL_REGS.
10660         (REG_CLASS_NAMES): Likewise.
10661         (REG_CLASS_CONTENTS): Likewise.
10662         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
10663         (EXTRA_CONSTRAINT): Add it here.
10664         (FRV_GLOBAL_P): New.
10665         (OUTPUT_ADDR_CONST_EXTRA): New.
10666
10667 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10668
10669         * config/sparc/sparc.h: Remove commented-out definitions of
10670         TARGET_EDOM and GEN_ERRNO_RTX.
10671
10672 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10673
10674         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
10675         df_analyse with df_analyze.
10676
10677 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
10678
10679         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
10680         beginning of block.
10681
10682 2004-02-23  James E Wilson  <wilson@specifixinc.com>
10683
10684         * calls.c (precompute_arguments): Update comment.
10685
10686 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10687
10688         * et-forest.c: Replace et_occurences with et_occurrences.
10689
10690 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10691
10692         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
10693         with iv_analyze.
10694
10695 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
10696
10697         * config/i386/i386.c: Rename pni to sse3.
10698         * config/i386/i386.h: Likewise.
10699         * config/i386/i386.md: Likewise.
10700         * config/i386/pmmintrin.h: Likewise.
10701         * doc/extend.texi: Likewise.
10702         * doc/invoke.texi: Likewise.
10703
10704 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
10705             Kazu Hirata  <kazu@cs.umass.edu>
10706
10707         Remove -fwritable-strings.
10708         * c-common.c (fix_string_type): Don't check
10709         flag_writable_strings.
10710         (fix_string_type): Likewise.
10711         * c-opts.c (set_std_c89): Don't initialize
10712         flag_writable_strings.
10713         (set_std_c99): Likewise.
10714         * common.opt (fwritable-strings): Remove.
10715         * flags.h: Remove the external declaration of
10716         flag_writable_strings.
10717         * opts.c (common_handle_option) <OPT_fwritable_strings>:
10718         Remove.
10719         * toplev.c (flag_writable_strings): Remove.
10720         (f_options): Remove an entry for writable-strings.
10721         * varasm.c (const_hash_1) <STRING_CST>: Don't check
10722         flag_writable_strings.
10723         (compare_constant) <STRING_CST>: Likewise.
10724         (build_constant_desc): Likewise.
10725         * config/darwin.c (machopic_select_section): Likewise.
10726         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
10727         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
10728         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
10729         * config/mips/mips.c (mips_select_section): Likewise.
10730         (mips_encode_section_info): Likewise.
10731         * config/pa/pa.c (pa_select_section): Likewise.
10732         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
10733         * config/v850/v850.c (v850_select_section): Likewise.
10734         * doc/invoke.texi (-fwritable-strings): Remove.
10735         (-fno-const-strings): Don't mention -fwritable-strings.
10736         * doc/trouble.texi: Don't mention -fwritable-strings.
10737
10738 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
10739
10740         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
10741
10742 2004-02-23  Dale Johannesen  <dalej@apple.com>
10743
10744         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
10745         (movdf_hardfloat64):  Ditto.
10746         (movdf_softfloat64):  Ditto.
10747
10748 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
10749         * config/rs6000/rs6000.c (function_arg): call to
10750         rs6000_mixed_function_arg for DFmode moved to allow
10751         normal DFmode incoming register assignment.
10752
10753 2004-02-23  Dale Johannesen  <dalej@apple.com>
10754
10755         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
10756         (movdf_hardfloat64):  Ditto.
10757
10758 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10759
10760         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
10761         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
10762         copyright.
10763
10764 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
10765
10766         PR c/14156
10767         * c-typeck.c (c_expand_return): Change check for VAR_DECL
10768         to use DECL_P instead.
10769
10770         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
10771         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
10772
10773 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10774
10775         * Makefile.in (opts.o): Depend on target.h.
10776         * opts.c (decode_options): Use targetm.default_short_enums
10777         instead of DEFAULT_SHORT_ENUMS.
10778         * system.h (DEFAULT_SHORT_ENUMS): Poison.
10779         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
10780         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
10781         * target.h (gcc_target): Add default_short_enums.
10782         * config/cris/cris.h: Remove a comment about
10783         DEFAULT_SHORT_ENUMS.
10784         * config/ip2k/ip2k.h: Likewise.
10785         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
10786         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
10787
10788 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
10789             Falk Hueffner  <falk@debian.org>
10790
10791         PR c/14188
10792         * builtins.c (expand_builtin_va_arg): Emit an informative message
10793         if a trap is generated.
10794         * c-typeck.c (build_function_call): Likewise.
10795
10796 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
10797
10798         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
10799         fopen.
10800         * libgcov.c: Include sys/stat.h.
10801         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
10802         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
10803         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
10804         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
10805
10806 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
10807
10808         * reorg.c: Remove comments about dead ports.
10809
10810 2004-02-22  Christopher Faylor  <cgf@redhat.com>
10811
10812         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
10813         extra host object file when targetting cygwin rather than generic
10814         object files.
10815
10816 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
10817
10818         Merge from tree-ssa:
10819         2003-11-20  Richard Henderson  <rth@redhat.com>
10820
10821                 * tree-inline.c (insert_decl_map): New.
10822                 (remap_decl, remap_type, remap_block, copy_body_r,
10823                 initialize_inlined_parameters, declare_return_variable,
10824                 remap_save_expr): Use it.
10825
10826         * function.c (copy_body_r): Add mapping from id->ret_label to
10827         id->ret_label.  Revert test for ret_label.
10828
10829 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
10830
10831         * genoutput.c (process_template): Strip trailing whitespace in @
10832         templates and issue a warning if there was any.
10833
10834 2004-02-21  Christopher Faylor  <cgf@redhat.com>
10835
10836         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
10837         object file when targetting cygwin.
10838         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
10839         overridden by top-level Makefile.
10840
10841 2004-02-21  Roger Sayle  <roger@eyesopen.com>
10842
10843         * config/i386/i386.c (standard_80387_constant_p): Also prefer
10844         the x87's load constant instructions when optimizing for size.
10845
10846 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
10847
10848         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
10849         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
10850         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
10851         * fold-const.c: Likewise.
10852         * simplify-rtx.c: Likewise.
10853
10854 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
10855
10856         * combine.c (can_combine_p): Don't ignore SETs marked with
10857         REG_EH_REGION notes.
10858         (try_combine): When attemting to fix unrecognized insns, don't
10859         split a PARALLEL that contains the original i2.
10860
10861 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
10862
10863         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
10864         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
10865         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
10866         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
10867         (vector, pixel, bool): #define to __vector, __pixel and __bool.
10868         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
10869         portion of header.
10870         (__altivec_link_error_invalid_argument): Remove prototype; will use
10871         __builtin_altivec_compiletime_error("vec_*") instead.
10872         (vec_*): Fix/complete set of available operation overloads given the
10873         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
10874         cv-correctness of pointer arguments; in C, always check for correct
10875         argument types before macro expansion.
10876         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
10877         defining Darwin/PowerPC-specific '-f[no-]altivec' and
10878         '-W[no-]altivec-long-deprecated' switches.
10879         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
10880         '__vector', '__pixel' and '__bool' macros using
10881         '__attribute__((altivec(...)))' types.
10882         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
10883         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
10884         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
10885         New type nodes.
10886         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
10887         handling '-W[no-]altivec-long-deprecated'.
10888         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
10889         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
10890         altivec_expand_dst_builtin): Remove casts from integer literals.
10891         (altivec_expand_builtin): Likewise; handle expansion of new
10892         '__builtin_altivec_compiletime_error' function.
10893         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
10894         types, and make them distinct from other vector types; register
10895         '__builtin_altivec_compiletime_error' function.
10896         (print_operand): For 'P', print a full target register name instead of
10897         merely its number.
10898         (rs6000_attribute_table): Add "altivec" attribute.
10899         (rs6000_handle_altivec_attribute): New function.
10900         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
10901         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
10902         maps to).
10903         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
10904         declare.
10905         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
10906
10907 2004-02-20  James E Wilson  <wilson@specifixinc.com>
10908
10909         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
10910         check.
10911         (shift_mix4left+2): Delete redundant pattern.
10912
10913 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10914
10915         * alias.c (OUTGOING_REGNO): Don't define the default.
10916         * builtins.c (OUTGOING_REGNO): Likewise.
10917         (INCOMING_REGNO): Likewise.
10918         (apply_args_register_offset): Always use OUTGOING_REGNO.
10919         * combine.c (OUTGOING_REGNO): Likewise.
10920         * sibcall.c (OUTGOING_REGNO): Likewise.
10921         * defaults.h (INCOMING_REGNO): Provide the default.
10922         (OUTGOING_REGNO): Likewise.
10923
10924 2004-02-21  Jan Hubicka  <jh@suse.cz>
10925
10926         * params.def (max-peeled-insns, max-completely-peeled-insns,
10927         max-once-peeled-insns): Set to 400.
10928
10929 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10930
10931         PR c++/12007
10932         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
10933         are set for parameters before outputing debugging information.
10934
10935 2004-02-20  Falk Hueffner  <falk@debian.org>
10936
10937         PR target/14201
10938         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
10939         numbers.
10940
10941 2004-02-20  Per Bothner  <per@bothner.com>
10942
10943         * input.h:  Don't #include line-map.h.  It may cause link problems
10944         with undefined linemap_line_start when line-map.h is included but
10945         line-map.o is not linked, as currently happens with gengtype on
10946         compilers that don't support inline.
10947         * toplev.c:  So we do have to explicitly #include line-map.h here.
10948
10949 2004-02-20  Richard Henderson  <rth@redhat.com>
10950
10951         * doc/invoke.texi: Add -Wvariadic-macros.
10952
10953 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10954
10955         * haifa-sched.c (sched_emit_insn): Remove.
10956         * sched-int.h: Remove the corresponding prototype.
10957
10958 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10959
10960         Revert:
10961         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10962         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
10963         * system.h (DEFAULT_SHORT_ENUMS): Poison.
10964         * config/cris/cris.h: Remove a comment about
10965         DEFAULT_SHORT_ENUMS.
10966         * config/ip2k/ip2k.h: Likewise.
10967         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
10968
10969 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
10970             Tom Tromey  <tromey@redhat.com>
10971
10972         * doc/install.texi: Moved --disable-libgcj and
10973         --with-system-zlib documentation to new section for
10974         Java-specific options.
10975         Added explicit Cross-Compiler-Specific Options subheading.
10976         Added section for Java-specific options.
10977
10978 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
10979
10980         * doc/install.texi (Building the Ada compiler): Remove
10981         example.
10982
10983 2004-02-20  James E Wilson  <wilson@specifixinc.com>
10984
10985         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
10986
10987 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10988
10989         * gcc.c (process_command): Allow translation of the copyright
10990         symbol but not the rest of the copyright message.
10991         * gcov.c (print_version): Likewise.  Allow translation of the
10992         message about warranty.
10993
10994 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
10995
10996         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
10997         predicate.
10998         ("*andsi_clear"): Tweak constraints to not match postincrement.
10999         Adjust the predicate to exclude a volatile memory reference.
11000         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
11001         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11002
11003 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
11004
11005         * move-if-change: Remove.
11006         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11007         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11008         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11009         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11010         (s-gtyp-gen, s-iov): Use the top level move-if-change.
11011         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11012
11013 2004-02-19  James E Wilson  <wilson@specifixinc.com>
11014
11015         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11016         for operand2.  Add condition that requires register_operand operand2
11017         before reload.
11018
11019 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
11020             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11021
11022         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11023         * config/mips/mips.md: Expand comment above unaligned loads and stores.
11024
11025 2004-02-19  Richard Henderson  <rth@redhat.com>
11026
11027         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11028         * tree.c (build0, build1, build2, build3, build4): Split out from...
11029         (build): ... here.  Call them.
11030         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11031
11032         * convert.c (convert_to_integer): Remove extra build argument.
11033         * tree-inline.c (expand_call_inline): Likewise.
11034
11035 2004-02-19  Richard Henderson  <rth@redhat.com>
11036
11037         * c-opts.c (warn_variadic_macros): New.
11038         (c_common_handle_option): Set it.
11039         (sanitize_cpp_opts): Copy it to cpp_opts.
11040         * c.opt (Wvariadic-macros): New.
11041         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11042         * cppinit.c (cpp_create_reader): Initialize it.
11043         * cppmacro.c (parse_params): Check it.
11044
11045 2004-02-19  David Daney <ddaney@avtrex.com>
11046
11047         PR preprocessor/14198
11048         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11049         builtin_assert ("machine=mips")
11050
11051 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11052
11053         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11054         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11055         * config/cris/cris.h: Remove a comment about
11056         DEFAULT_SHORT_ENUMS.
11057         * config/ip2k/ip2k.h: Likewise.
11058         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11059
11060 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11061
11062         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11063         when passing single SFmode quantities in general registers,
11064         put them in the high half.
11065
11066 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11067
11068         * doc/md.texi (Standard Names): Document additional dependency on
11069         fix pattern.
11070
11071         * optabs.c (ftruncify): Remove.
11072         (expand_fix): Manually inline ftruncify above.
11073         (can_fix_p): Add FIXME note.
11074
11075 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11076
11077         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11078         spe_fixuns_truncsfsi2.
11079
11080         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11081         fixuns_truncsfsi2.
11082
11083 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
11084
11085         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11086         * testsuite/gcc.dg/20040219-1.c: New test.
11087
11088 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
11089
11090         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11091         "*subsf3_cconly"): Subtraction is not commutative.
11092
11093 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11094
11095         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11096         (sdbout_symbol): If called before sdbout_init, queue DECL for
11097         later and return.
11098         (sdbout_init): Set sdbout_initialized true, process decls
11099         queued earlier by sdbout_symbol.
11100         (sdbout_finish): Use size_t for index variable.
11101
11102 2004-02-19  Jeff Law  <law@redhat.com>
11103
11104         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11105         for unordered comparison codes.
11106
11107 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
11108
11109         * reload1.c (reload): Correct comment.
11110         (scan_paradoxical_subregs): Remove #if 0 and old comment.
11111         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11112         register variables are not used by reload.
11113
11114 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
11115
11116         PR target/14209
11117         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11118         constraints to not match postincrement.  Adjust the predicate to
11119         exclude a volatile memory reference.
11120
11121 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11122
11123         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11124
11125 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11126
11127         * hooks.c (hook_void_tree_int): Remove.
11128         (hook_void_constcharptr): Likewise.
11129         (hook_int_void_0): Likewise.
11130         * hooks.h: Remove the prototypes for the above three
11131         functions.
11132         * targhooks.c (hook_bool_machine_mode_true): Remove.
11133         * targhooks.h: Remove the prototype for
11134         hook_bool_machine_mode_true.
11135
11136 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11137
11138         * emit-rtl.c (subreg_realpart_p): Remove.
11139         (reorder_insns_with_line_notes): Likewise.
11140         (end_full_sequence): Likewise.
11141         * rtl.h: Remove the prototype for the above functions.
11142
11143 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11144
11145         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11146         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11147         config/iq2000/iq2000.h, config/m32r/m32r.h,
11148         config/pdp11/pdp11.h, config/sparc/sparc.h,
11149         config/xtensa/xtensa.h: Remove commented-out or useless
11150         definitions of CASE_VECTOR_PC_RELATIVE.
11151
11152 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11153
11154         * loop.c (all_sets_invariant_p): Remove.
11155
11156 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11157
11158         PR target/12916
11159         * config/sparc/sparc.h (NPARM_REGS): Delete.
11160         (BASE_RETURN_VALUE_REG): Likewise.
11161         (BASE_OUTGOING_VALUE_REG): Likewise.
11162         (BASE_PASSING_ARG_REG): Likewise.
11163         (BASE_INCOMING_ARG_REG): Likewise.
11164         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11165         TARGET_ARCH64, not TARGET_V9.
11166         (function_arg_slotno): Dispatch based on the mode class.
11167         Handle vector modes like floating-point modes.
11168         (function_arg_record_value_1): Handle vector types like
11169         floating-point types.
11170         (function_arg_record_value_2): Likewise.
11171         Calculate regno after mode transformation.
11172         (function_arg): Handle vector modes like floating-point modes.
11173         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11174         If ARCH64, do not recheck alignment.
11175         (function_arg_pass_by_reference): Reorder the conditions.
11176         (sparc_return_in_memory): Move after function_arg_padding.
11177         Implement calling conventions for vector modes.
11178         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11179         (function_value): Move scope of 'regbase'.
11180         Implement calling conventions for vector modes.
11181         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11182         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11183         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11184         the argument is passed by reference.
11185         (sparc_type_code): Handle vector types.
11186
11187 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
11188
11189         * function.c (assign_parms): When building decl_rtl for
11190         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11191
11192 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
11193
11194         * expr.c (is_aligning_offset): Check if we are aligning the
11195         expressions's address over BIGGEST_ALIGNMENT in bytes, not
11196         in bits.
11197
11198 2003-02-18  Matt Austern  <austern@apple.com>
11199
11200         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11201         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11202         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11203         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11204         spec string.
11205         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
11206
11207 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
11208
11209         * dwarf2out.c (loclabel_num): Move outside #ifdef
11210         DWARF2_DEBUGGING_INFO and mark with GTY(()).
11211         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11212         Mark with GTY(()).
11213         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
11214         Allocate memory with ggc_alloc.  No need to copy anything.
11215         (ia64_hpux_file_end): Update to match.
11216
11217 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11218
11219         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
11220         by default.
11221
11222 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11223
11224         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
11225         ("divmodtisi3"): Likewise.
11226         ("udivmoddi4", "udivmodtidi3"): Likewise.
11227         ("divmodsi4", "divmoddisi3"): Likewise.
11228         ("udivmodsi4", "udivmoddisi3"): Likewise.
11229         ("udivsi3", "umodsi3"): Likewise.
11230
11231 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11232
11233         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
11234         placeholder insn when chunkifying the pool.
11235
11236 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11237
11238         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
11239         generating PIC code.
11240
11241 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11242
11243         * config/h8300/h8300-protos.h: Add a prototype for
11244         h8300_expand_branch.
11245         * config/h8300/h8300.c (h8300_expand_branch): New.
11246         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
11247         bgtu, beq, bne): Call h8300_expand_branch().
11248
11249 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11250
11251         * config/h8300/h8300-protos.h: Add prototypes for
11252         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
11253         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
11254         (h8300_hard_regno_mode_ok): Likewise.
11255         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
11256         h8300_hard_regno_nregs().
11257         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
11258
11259 2004-02-18  Per Bothner  <per@bothner.com>
11260
11261         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
11262         partly reverts my 2003-10-01 change, because we're back to logically
11263         including <command line> inside the main line.
11264         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
11265         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
11266         Fixes PR preprocessor/14103.
11267
11268         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
11269         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
11270         (cpp_push_include):  Don't need to increment pfile's line field.
11271         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
11272
11273         * c-ppoutput.c (print struct):  New first_time field.
11274         (init_pp_output):  Set print.first_time.
11275         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
11276         which is set also for (say) <command line>.  Clear print.first_time.
11277
11278         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
11279         does not match the code, so fix both.
11280         (should_stack_file):  Inline include_pch_p function.
11281         (include_pch_p):  Remove pointless function.
11282
11283         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
11284
11285 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11286
11287         * config/h8300/h8300.md (four define_peephole2's): Use
11288         h8300_regs_ok_for_stm().
11289
11290 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11291
11292         * config/h8300/h8300-protos.h: Update the prototype for
11293         expand_a_rotate().
11294         * config/h8300/h8300.c (expand_a_rotate): Remove the first
11295         argument.
11296         * config/h8300/h8300.md: Update all callers.
11297
11298 2004-02-18  Jan Hubicka  <jh@suse.cz>
11299
11300         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
11301         floats.
11302         (simplify_binary_operation): Deal with logicals on floats.
11303
11304         * i386.md (SSE fabs splitters): Emit new patterns.
11305         (SSE cmov splitters): Likewise.
11306         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
11307         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
11308         subregs.
11309         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
11310         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
11311
11312 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11313
11314         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
11315         by hand.
11316         (output_a_rotate): Tweak a comment.
11317         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
11318         (*rotlhi3_1): Change to rotlhi3_1.
11319         (*rotlsi3_1): Change to rotlsi3_1.
11320
11321 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
11322
11323         PR target/13866
11324         * arm.c (load_multiple_operation): Don't insist that the source reg
11325         of a post-increment component is the same as the destination.
11326         (store_multiple_operation): Likewise.
11327
11328 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11329
11330         * config/h8300/h8300.md: Move movsf patterns into one section
11331         of the file.
11332
11333 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11334
11335         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
11336         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
11337         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
11338         config/mips/linux64.h, config/pa/pa-64.h,
11339         config/rs6000/aix51.h, config/rs6000/aix52.h,
11340         config/rs6000/spe.md, config/sparc/linux.h,
11341         config/sparc/linux64.h: Update copyright.
11342
11343 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11344
11345         * config/h8300/h8300.md: Move push patterns into one
11346         section of the file.
11347
11348 2004-02-18  Mark Mitchell <mark@codesourcery.com>
11349
11350         PR c++/11326
11351         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
11352         fntype.
11353
11354 2004-02-18  Paul Brook  <paul@codesourcery.com>
11355
11356         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
11357
11358 2004-02-18  Paul Brook  <paul@codesourcery.com>
11359
11360         PR debug/12934
11361         * dwarf2out.c (loc_descriptor_from_tree): Handle
11362         EXPR_WITH_FILE_LOCATION.
11363
11364 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11365
11366         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
11367         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
11368         trailing whitespace from instructions.
11369
11370 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
11371
11372         * configure.ac: When generating auto-build.h, pass
11373         --enable-languages to the sub-configure.
11374         Put quotes around ${program_transform_name} when generating
11375         name of as, ld, nm, objdump.
11376         * configure: Regenerate.
11377
11378 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
11379
11380         * Makefile.in (s-check, s-config, s-conditions, s-flags)
11381         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
11382         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
11383         (s-preds, s-iov): Do not depend on move-if-change.
11384
11385 2004-02-17  James E Wilson  <wilson@specifixinc.com>
11386
11387         * caller-save.c (insert_restore): Pass mem through copy_rtx.
11388         (insert_save): Likewise.
11389
11390 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11391
11392         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
11393         warning.
11394
11395 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11396
11397         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
11398         *one_cmplsi2_h8300.
11399         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
11400
11401 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11402
11403         * config/h8300/h8300-protos.h: Update the prototype of
11404         fix_bit_operand().
11405         * config/h8300/h8300.c (fix_bit_operand): Remove the second
11406         argument "what".
11407         * config/h8300/h8300.md: Update all callers.
11408
11409 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11410
11411         * config/h8300/h8300.c (fix_bit_operand): Change the name of
11412         the last argument to "code" from "type".
11413
11414 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11415
11416         * config/h8300/h8300.c: Remove an extern declaration of
11417         rtx_equal_function_value_matters.
11418
11419 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11420
11421         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
11422         by hand.
11423         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
11424         (*iorqi3_1): Change to iorqi3_1.
11425         (*xorqi3_1): Change to xorqi3_1.
11426
11427 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11428
11429         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
11430         typos.
11431
11432 2004-02-17  Jan Hubicka  <jh@suse.cz>
11433
11434         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
11435
11436 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
11437
11438         PR optimization/14119
11439         * combine.c (try_combine): When attemting to fix unrecognized insns,
11440         don't delete SETs marked with REG_EH_REGION notes.
11441
11442 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
11443
11444         * combine.c (simplify_if_then_else): Do not replace
11445         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
11446         modes differ.
11447
11448 2004-02017  Steven Bosscher  <stevenb@suse.de>
11449
11450         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
11451         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
11452         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
11453         * ada/utils.c: Likewise.
11454         * cp/decl.c: Likewise.
11455         * f/com.c: Likewise.
11456         * java/class.c: Likewise.
11457
11458 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11459
11460         * config/h8300/h8300.md: Fix comment typos.
11461
11462 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11463
11464         * config/mips/t-iris6gld: Renamed to ...
11465         * config/mips/t-irix-gld: ... this.
11466         * config.gcc (mips-sgi-irix6*): Reflect this
11467         (mips-sgi-irix5*): Use it with GNU ld.
11468
11469         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
11470         to ...
11471         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
11472         * config/mips/t-irix-gld: Reflect this.
11473         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11474
11475         * config/mips/iris5gld.h: New file.
11476         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
11477         Only use collect2 without gas.
11478
11479         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
11480         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11481         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
11482         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11483
11484         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
11485         * config/mips/iris5.h: ... here.
11486
11487         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
11488         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11489         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
11490
11491         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
11492         using irix_startfile_spec, irix_endfile_spec.
11493
11494 2004-02-16  Gunther Nikl  <gni@gecko.de>
11495
11496         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
11497
11498 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11499
11500         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
11501         insns by hand.
11502
11503 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11504
11505         * cfghooks.c (split_edge): Speed up updating of dominators.
11506
11507 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
11508
11509         PR c++/11326
11510         * c-common.c (flag_abi_version): Remove.
11511         * c-common.h (flag_abi_version): Likewise.
11512         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
11513         * c.opt (fabi-version): Remove.
11514         * calls.c (expand_call): Always pass a function type to
11515         struct_value_rtx.  Use convert_memory_address.
11516         * common.opt (fabi-version): Add it.
11517         * flags.h (flag_abi_version): Likewise.
11518         (abi_version_at_least): New macro.
11519         * opts.c (common_handle_option): Add OPT_fabi_version.
11520         * toplev.c (flag_abi_version): Define it.
11521         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
11522         New function.
11523         (ia64_output_mi_thunk): Use it.
11524         (ia64_struct_value_rtx): Likewise.
11525
11526 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11527
11528         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
11529         Don't generate insns by hand.
11530
11531 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
11532
11533         PR c++/14178
11534         * doc/invoke.texi (fabi-version): The default is 2 now.
11535
11536 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11537
11538         * loop-iv.c: New file.
11539         * Makefile.in (loop-iv.o): New.
11540         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
11541         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
11542         num_loop_branches): New functions.
11543         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
11544         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
11545         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
11546         get_simple_loop_desc, free_simple_loop_desc): Declare.
11547         (simple_loop_desc): New inline function.
11548         (struct rtx_iv, struct niter_desc): New.
11549         * cfgloopmanip.c (loopify): Specify semantics more precisely.
11550         * expr.c (force_operand): Handle subregs of expressions created by
11551         loop unroller.
11552         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
11553         parts of the initialization to toplev.c
11554         * loop-unroll.c (loop_exit_at_end_p): New.
11555         (unroll_and_peel_loops): Call iv_analysis_done.
11556         (decide_peel_once_rolling, decide_peel_completely,
11557         decide_unroll_stupid, decide_unroll_constant_iterations,
11558         decide_unroll_runtime_iterations, decide_peel_simple,
11559         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
11560         unroll_loop_runtime_iterations): Use new simple loop analysis.
11561         * loop-unswitch.c (compare_and_jump_seq): New.
11562         (may_unswitch_on_p): Renamed to ...
11563         (may_unswitch_on): Use new iv analysis.
11564         (reversed_condition): Export.
11565         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
11566         * predict.c (estimate_probability): Use new simple loop analysis.
11567         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
11568         canon_condition, simplify_using_condition): Declare.
11569         * stor-layout.c (get_mode_bounds): New.
11570         * toplev.c (rest_of_handle_loop2): Some parts of
11571         initialization/finalization moved here from loop-init.c.
11572
11573 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11574
11575         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
11576         pointer.
11577         (CALL_USED_REGISTERS): Likewise.
11578         (REG_ALLOC_ORDER): Likewise.
11579         (REG_CLASS) <GENERAL_REGS>: Likewise.
11580
11581 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
11582
11583         * doc/md.texi (Insn Canonicalizations): Document left-chaining
11584         in associative operators.
11585         * rtlanal.c (commutative_operand_precedence): Create some new
11586         variables.  Prefer a commutative operand on the left, then
11587         binary expressions, then NEG and NOT.
11588
11589 2004-02-16  Matthias Klose  <doko@debian.org>
11590
11591         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
11592         in terms of SHLIB_SOVERSION.
11593         * config/m68k/t-slibgcc-elf-ver: New file.
11594         * config/pa/t-slibgcc-elf-ver: New file.
11595         * config.gcc (m68k-linux, parisc-linux): Use them when not
11596         sjlj exceptions are not configured.
11597
11598 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
11599
11600         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
11601
11602 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
11603
11604         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
11605
11606 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
11607
11608         * doc/sourcebuild.texi: Mention backends.html.
11609
11610 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
11611
11612         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
11613         line-map.c, line-map.h, var-tracking.c: Fix comment
11614         formatting.
11615
11616 2004-02-16  Richard Henderson  <rth@redhat.com>
11617
11618         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
11619
11620         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
11621
11622 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11623
11624         * config/h8300/h8300.md: Remove unnecessary parallels from
11625         all define_insn and define_split patterns.
11626
11627 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11628
11629         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
11630         "clobber").
11631
11632 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
11633
11634         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
11635         '%#'.
11636
11637 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11638
11639         * config/ia64/ia64.c, config/mips/mips.c,
11640         config/mmix/mmix-modes.def: Fix comment typos.
11641
11642 2004-02-15  Roger Sayle  <roger@eyesopen.com>
11643
11644         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
11645         (get_directive_line): Remove unused function prototype.
11646
11647 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11648
11649         * tree-inline.c (copy_body_r): Do not replace ret_label.
11650
11651 2004-02-14  Jan Hubicka  <jh@suse.cz>
11652
11653         * i386.c (x86_four_jump_limit): New variable.
11654         (k8_avoid_jump_misspredicts): Rename to ...
11655         (ix86_avoid_jump_misspredicts): .. this one.
11656         (ix86_pad_returns): Break out from ...
11657         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
11658         to.
11659         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
11660
11661 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11662
11663         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
11664         PARALLEL is NULL.
11665
11666 2004-02-14  Per Bothner  <per@bothner.com>
11667
11668         * fix-header.c (line_table):  Move local variable in main to global.
11669         * scan.h (line_table):  Use it.
11670         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
11671         line (recently renamed to src_loc) before calling recognized_function.
11672
11673 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
11674
11675         * Makefile.in: Fix comment typos.
11676
11677 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
11678
11679         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
11680         for start_value when it is directly moved into reg, and factorize
11681         the retrieval of GET_MODE (reg).
11682
11683 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11684
11685         * config/mips/mips-protos.h (mips_load_got_page): Delete.
11686         (mips_load_got_global): Delete.
11687         (mips_gotoff_page): Declare.
11688         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
11689         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
11690         UNSPEC_LOAD_GOT pattern rather than a MEM.
11691         (*load_got[sd]i): New patterns.
11692         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
11693         (mips_load_got_page, mips_load_got_global): Delete.
11694         (mips_gotoff_page): New function.
11695         (override_options): Don't initialize mips_got_alias_set.
11696
11697 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11698
11699         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
11700         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
11701         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
11702         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
11703         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
11704         * config/mips/mips.c: Fix some overly-long lines.
11705         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
11706         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
11707
11708 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11709
11710         * configure.ac: Search for as, ld below libexec/gcc.
11711         * configure: Regenerate.
11712
11713 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
11714
11715         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
11716         __builtin_arm_setwcx ().
11717         * config/arm/arm.c (arm_expand_builtin): Generate operands
11718         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
11719
11720 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
11721
11722         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
11723         and "wmuluh" to "wmulsm" and "wmulum", respectively.
11724         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
11725         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
11726         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
11727         (_mm_mulhi_pu16): Likewise.
11728
11729 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
11730
11731         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
11732         DECL_NAME != 0 before dereferencing.
11733
11734 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
11735
11736         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
11737         (s390_output_addr_const_extra): Declare.
11738         (s390_output_pool_entry): Remove FILE * argument.
11739         * config/s390/s390.c (s390_output_symbolic_const): Remove.
11740         (s390_output_addr_const_extra): New function.
11741         (print_operand_address): Call output_addr_const instead of
11742         s390_output_symbolic_const.
11743         (print_operand): Likewise.
11744         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
11745         Remove FILE * argument.
11746         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
11747         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
11748         call.
11749
11750 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11751
11752         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
11753         (struct edge, struct vertex, struct graph): New.
11754         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
11755         free_graph): New functions.
11756
11757 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
11758
11759         * config/mips/mips.md (casesi_internal, casesi_internal_di):
11760         Use ".set macro" to avoid warnings about multi-instruction
11761         macros, since they're intentional.
11762
11763 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
11764
11765         * config/darwin.h: Add include guards.  Remove old, now incorrect,
11766         comment about STANDARD_EXEC_PREFIX.
11767
11768         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
11769         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
11770         for installing .1 manpages.  Add rules for installing cpp
11771         and gcov manpages under their installed names.
11772
11773 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
11774
11775         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
11776         host, but try LD_FOR_TARGET first.
11777         * configure: Rebuilt.
11778
11779 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
11780
11781         * dbxout.c: Move declaration of dbxout_type_decl outside
11782         #ifdef DBX_DEBUGGING_INFO.
11783         * c-parse.in: Don't give the asmdef production a type.
11784
11785 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
11786
11787         * debug.h (struct gcc_debug_hooks): Add type_decl field.
11788         (debug_nothing_tree_int): Prototype.
11789         (dwarf_debug_hooks): Delete, unused.
11790         * debug.c (do_nothing_debug_hooks): Update.
11791         (debug_nothing_tree_int): New function.
11792         * langhooks.h (struct lang_hooks_for_decls):
11793         Remove builtin_type_decls field.
11794         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
11795         (LANG_HOOKS_DECLS): Update.
11796         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
11797         Use debug_hooks->type_decl.
11798         * dbxout.c (preinit_symbols): New static.
11799         (dbx_debug_hooks, xcoff_debug_hooks): Update.
11800         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
11801         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
11802         for symbols to output.
11803         (dbxout_type_decl): New function.
11804         (dbxout_symbol): If called before dbxout_init has run, queue
11805         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
11806         to TYPE_DECLs before emitting them.
11807         * xcoffout.c (assign_type_number): Delete.
11808         (xcoff_type_numbers): New static table.
11809         (xcoff_assign_fundamental_type_number): New function.
11810         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
11811         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
11812         * sdbout.c: Include varray.h.
11813         (deferred_global_decls): New static.
11814         (sdb_debug_hooks): Update.
11815         (sdbout_global_decl): If we can't emit something right now,
11816         remember it in deferred_global_decls.
11817         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
11818         (sdbout_init): Initialize deferred_global_decls.
11819         * Makefile.in: Update dependencies of sdbout.o.
11820         * dwarf2out.c (dwarf2out_type_decl): New function.
11821         (dwarf2_debug_hooks): Update.
11822         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
11823         * c-decl.c (getdecls): Just return 0.
11824         (check_for_loop_decls): Don't use getdecls.
11825         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
11826         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
11827
11828 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
11829
11830         * config/s390/s390.c (s390_sched_reorder2): Remove.
11831         (TARGET_SCHED_REORDER2): Do not redefine.
11832
11833 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
11834
11835         * c-parse.in (maybe_type_qual): Delete.
11836         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
11837         (asm_argument): New grammar rules.
11838         (extdef_1): Use asmdef.
11839         (maybeasm): Move down with other asm rules; use simple_asm_expr.
11840         (xexpr): Move up with other expression rules.
11841         (stmt): Use asm_stmt.
11842
11843         * c-typeck.c (build_asm_expr): New function - body mostly
11844         pulled from build_asm_stmt.
11845         (build_asm_stmt): Just handle tacking on the volatile qualifier.
11846         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
11847
11848 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
11849
11850         PR bootstrap/13617
11851         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
11852         (mips_declare_object): Make variadic.
11853         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
11854         mips_output_aligned_decl_common.
11855         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
11856         (mips_declare_object): Make variadic.
11857
11858 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11859
11860         * function.c (update_epilogue_consts): Teach about binary operations.
11861
11862         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
11863         previous MEM_VOLATILE in REF.
11864         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
11865         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
11866
11867 2004-02-12  Gunther Nikl  <gni@gecko.de>
11868
11869         * config.gcc: Restore support for m68k-openbsd.
11870
11871 2004-02-12  Jan Hubicka  <jh@suse.cz>
11872
11873         * tree-optimize.c (tree_rest_of_compilation): Do not release
11874         DECL_ARGUMENTS.
11875
11876 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
11877
11878         * doc/install.texi: Fix the spelling of "explicitly".
11879
11880 2004-02-11  Eric Christopher  <echristo@redhat.com>
11881
11882         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
11883         duplicate argument structure of cpp_interpret_string.
11884         * cpphash.h: Move prototype...
11885         * cpplib.h: Here.
11886         * cpplib.c: Fix calls to match new function signature.
11887
11888 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
11889
11890         PR c/456
11891         * cppexp.c (num_binary_op): Don't allow comma operators in #if
11892         constant expressions at all outside C99 mode if pedantic.
11893
11894 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
11895
11896         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
11897         (log10_optab, log2_optab): Define corresponding macros.
11898         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
11899         * genopinit.c (optabs): Implement log10_optab and log2_optab
11900         using log10?f2 and log2?f2 patterns.
11901         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
11902         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
11903         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
11904         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
11905
11906         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
11907         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
11908         log2, log2f and log2l built-ins as inline x87 intrinsics.
11909
11910 2004-02-11  Richard Henderson  <rth@redhat.com>
11911
11912         PR target/1532
11913         * flow.c (insn_dead_p): A clobber of a dead hard register is a
11914         dead insn after reload.
11915
11916 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
11917
11918         * tree.h (frame_base_decl): Add GTY marker.
11919         * var-tracking.c (frame_base_decl): Likewise.
11920
11921 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
11922
11923         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
11924         incorrect, hunk.
11925         (add_location_or_const_value_attribute): Use text_section_label,
11926         not TEXT_SECTION_NAME.
11927
11928 2004-02-11  Per Bothner  <per@bothner.com>
11929
11930         Represent column numbers using line-map's source_location.
11931         The "next available source_location" is now managed internally by
11932         line-maps.c rather than by clients.
11933         * line-map.h (struct line_map):  New field column_bits.
11934         <from_line>:  Rename field to start_location.
11935         (struct line_maps):  New fields highest_location and max_column_hint.
11936         (linemap_check_files_exited):  New declaration.
11937         (linemap_line_start):  New declaration.
11938         (linemap_add):  Remove from_line parameter; use highest_location field.
11939         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
11940         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
11941         (CURRENT_LINE_MAP):  Remove macro.
11942         (linemap_position_for_column):  New inline function.
11943         * line-map.c (linemap_init):  Clear new fields.
11944         (linemap_check_files_exited):  New function, extracted from ...
11945         (linemap_free):  Use linemap_check_files_exited.
11946         (linemap_add):  Remove from_line parameter.  Various updates.
11947         (linemap_line_start):  New function.
11948         (linemap_lookeup):  Update for new field names.
11949         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
11950         linemap_position_for_column may unpredictably change the current map,
11951         it is cleaner and simpler for us to not cache it in cpp_reader.
11952         (struct cpp_buffer):  New sysp field.
11953         Changed warned_cplusplus_comments and from_stage3 to bitfields.
11954         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
11955         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
11956         current map using linemap_lookup.
11957         (do_linemarker):  Also set buffer's sysp field.
11958         (destringize_and_run):  No longer need to decrement current line.
11959         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
11960         (search_path_head, open_file_failed):  Use buffer's sysp.
11961         (cpp_make_system_header):  Get current map using linemap_lookup.
11962         Also set buffer's sysp flag.
11963         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
11964         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
11965         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
11966         (struct cpp_reader):  ... and adding saved_line_base field.
11967         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
11968         Update accordingly.  Don't adjust line.
11969         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
11970         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
11971         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
11972         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
11973         * cpplex.c (_cpp_lex_direct):  Likewise.
11974         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
11975         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
11976         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
11977         Remove col field as it is now subsumed by src_loc.
11978         * cpperror.c:  Update various field, parameter, and macro names.
11979         (print_location):  If col==0, try SOURCE_COLUMN of line.
11980         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
11981         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
11982         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
11983         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
11984         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
11985         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
11986         (_cpp_lex_direct):  Use linemap_position_for_column.
11987         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
11988         parameter.  Instead get it from the line_table global.  Adjust callers.
11989         (print):  Remove map field.  Replace line field to src_line.
11990         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
11991         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
11992         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
11993         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
11994         * cpptrad.c (copy_comment):  Rename variable.
11995         * c-lex.c (map):  Remove static variable, for same reason we removed
11996         cpp_reader's map field.
11997         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
11998         to call linemap_lookup.
11999         (cb_line_change):  Token's line field replaced by src_loc.
12000         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
12001         Don't save new_map.
12002
12003         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
12004         source_location.
12005
12006 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12007
12008         * config/rs6000/altivec.md (*movv4si_internal): At least one
12009         operand must be register_operand.
12010         (*movv8hi_internal1): Likewise.
12011         (*movv16qi_internal1): Likewise.
12012         (*movv4sf_internal1): Likewise.
12013
12014 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
12015
12016         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12017         operand.
12018         (movv4hi_internal): Same.
12019         (movv2sf_internal): Same.
12020         (movv1di_internal): Same.
12021
12022 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
12023
12024         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
12025         TARGET_OLDABI consistently.
12026         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12027         mips_va_arg,override_options,compute_frame_size,
12028         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12029         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
12030         and TARGET_OLDABI consistently.
12031         * config/mips/mips.md (exception_receiver): Likewise.
12032         * config/mips/linux64.h: Likewise.
12033
12034 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12035
12036         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12037         Set AltiVec ABI and vrsave as default for ppc64 linux.
12038         (init_cumulative_args): Post error, if try to return
12039         value in AltiVec register without enable AltiVec.
12040         (function_arg_advance): Ditto for passing arguments.
12041
12042 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
12043
12044         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12045         a label before updating its usage count.
12046
12047 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
12048
12049         * doc/install.texi: Remove extra cd.
12050
12051 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
12052
12053         * c-common.c (vector_size_helper): Remove; call
12054         reconstruct_complex_type() instead.
12055         * tree.c (reconstruct_complex_type): New function
12056         (formerly vector_size_helper() in c-common.c).
12057         (make_vector): Make externally visible.
12058         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12059
12060 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12061
12062         * config/h8300/h8300-protos.h: Add a prototype for
12063         h8300_regs_ok_for_stm.
12064         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12065         * config/h8300/h8300.md (stm_h8300s_2_advanced,
12066         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12067         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12068         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12069         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12070         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12071         ldm_h8300s_4_normal, ldm_h8300s_4): Use
12072         h8300_regs_ok_for_stm().
12073
12074 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12075
12076         PR c/14088
12077         * real.c (real_from_string): Look for 'X' as well as 'x' in
12078         hexfloat strings.
12079
12080 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12081
12082         * config/h8300/h8300.md: Remove an incorrect comment about
12083         peephole2.  Add comments.
12084
12085 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
12086
12087         PR/14058
12088         * emit-rtl.c (set_decl_incoming_rtl): New.
12089         * tree.h (set_decl_incoming_rtl): New.
12090         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12091         DECL_INCOMING_RTL.
12092         * ada/misc.c (adjust_decl_rtl): Likewise.
12093
12094 2004-02-10  Per Bothner  <per@bothner.com>
12095
12096         * c-opts.c (c_common_post_options):   Don't emit working directory
12097         in cpp output if -P was specified.
12098
12099 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12100
12101         PR c/14092
12102         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12103         negate_expr back to the original type.
12104
12105 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
12106
12107         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12108         bump retaddr here.
12109
12110 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12111
12112         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12113         gen_lowpart_SUBREG): Move under the file in which they
12114         are actually declared.
12115
12116 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
12117
12118         * doc/sourcebuild.texi: Add libada documentation.
12119
12120         * doc/install.texi: Update documentation on Ada build, now
12121         that the GNAT lib and tools are built automatically.
12122
12123 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
12124
12125         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12126         && TARGET_IRIX.
12127
12128 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
12129
12130         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12131         boundaries outside build_component_ref() call (a macro in ObjC++).
12132
12133 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
12134
12135         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12136         (init_cumulative_args): Likewise.
12137         (a7_overlap_mentioned_p): Delete prototype.
12138         * config/xtensa/xtensa.c (struct machine_function): Replace
12139         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12140         Add set_frame_ptr_insn field.
12141         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12142         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12143         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
12144         at the function entry and replace the operand with the pseudo.
12145         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
12146         argument and record this flag in CUMULATIVE_ARGS.
12147         (function_arg): Remove result_mode and special-case code to handle
12148         arguments in a7.  Instead, set need_a7_copy flag when there is an
12149         incoming argument in a7.
12150         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12151         and use the value recorded in cfun->machine->set_frame_ptr_insn.
12152         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
12153         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
12154         special-case code.
12155         (a7_overlap_mentioned_p): Delete.
12156         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12157         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12158         arguments to init_cumulative_args and pass "incoming" flag instead.
12159         (BLOCK_REG_PADDING): Delete.
12160         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12161         checks for reload_in_progress and reload_completed.  Update calls to
12162         xtensa_copy_incoming_a7.
12163         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
12164         to call xtensa_copy_incoming_a7.
12165
12166 2004-02-09  DJ Delorie  <dj@redhat.com>
12167
12168         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12169         longer modify standard_exec_prefix, standard_bindir_prefix, or
12170         standard_startfile_prefix.
12171
12172 2004-02-09  James E Wilson  <wilson@specifixinc.com>
12173
12174         PR c++/11295
12175         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12176         to expand_expr_real call, and pass in alt_rtl as last argument.
12177
12178         PR libstdc++/5625
12179         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12180         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12181         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12182         * except.c (expand_builtin_extend_pointer): New.
12183         * except.h (expand_builtin_extend_pointer): Declare.
12184
12185 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
12186
12187         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12188         unaligned loads and stores.
12189
12190 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12191
12192         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12193         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12194
12195         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12196         * config/mips/iris5.h: ... here.
12197         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12198
12199         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12200         * config/mips/iris5.h: ... here.
12201
12202 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12203
12204         * configure.ac: Remove default executable files before AC_PROG_CC.
12205         * configure: Regenerate.
12206
12207 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
12208
12209         PR target/13721
12210         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12211         print a operand other than a register.
12212
12213 2004-02-09  Roger Sayle  <roger@eyesopen.com>
12214
12215         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
12216         tree code rather than call fold_convert, which doesn't specify a
12217         default floating point to integer conversion.
12218
12219 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
12220
12221         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
12222         code to support SGS assembler.  Reformat adjacent code where possible.
12223         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
12224         definition.
12225         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
12226         for '%#'.
12227         * config/m68k/linux.h, config/m68k/m68k.c,
12228         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
12229         macros and asm_printf() format strings.
12230         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
12231         * config/m68k/linux.h: Update copyright.
12232         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
12233
12234 2004-02-08  Andreas Schwab  <schwab@suse.de>
12235             Bernardo Innocenti  <bernie@develer.com>
12236
12237         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
12238         REGISTER_PREFIX.
12239         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
12240         frame pointer register, overridable by OS targets.
12241         * (M68K_REGNAME): Macro to obtain register name for asm output,
12242         eventually replacing %a6 with M68K_FP_REG_NAME.
12243         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
12244         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
12245         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
12246         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
12247         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
12248
12249 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12250
12251         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
12252         hook_rtx_tree_int_null.
12253         * targhooks.c (default_struct_value_rtx): Remove.
12254         * targhooks.h: Remove the prototype for
12255         default_struct_value_rtx.
12256         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12257         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
12258         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12259         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
12260         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
12261         config/rs6000/rs6000.c, config/s390/s390.c,
12262         config/stormy16/stormy16.c, config/v850/v850.c,
12263         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
12264         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
12265
12266 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
12267
12268         * README.Portability: Change "ISO C89" to "ISO C90".
12269         * c-parse.in (primary, initelt): Likewise.
12270
12271 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
12272
12273         * real.c (encode_ibm_extended): Normalize the input value before
12274         converting it to a double.  Handle the case where a normal value
12275         rounds to infinity.
12276
12277 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12278
12279         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
12280         warning.
12281         * cse.c (preferrable): Change to preferable. Update all of its
12282         callers.
12283         * genautomata.c (ainsn): Change
12284         first_ainsn_with_given_equialence_num to
12285         first_ainsn_with_given_equivalence_num.  Update all of its
12286         references.
12287
12288 2004-02-08  Jan Hubicka  <jh@suse.cz>
12289
12290         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
12291
12292 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
12293
12294         * function.c (assign_parms): Fix formatting.
12295
12296 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12297
12298         * default.h (PROMOTE_PROTOTYPES): Remove.
12299         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
12300         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
12301         EXPAND_BUILTIN_SAVEREGS): Poison.
12302         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
12303         hook_bool_tree_false.
12304         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12305         * target.h: Replace SETUP_INCOMING_VARARGS with
12306         targetm.calls.setup_incoming_varargs().
12307         * targhooks.c (default_promote_function_return): Remove.
12308         (default_promote_prototypes): Likewise.
12309         (default_struct_value_rtx): Always abort().
12310         (default_expand_builtin_saveregs): Always print an error
12311         message.
12312         (default_setup_incoming_varargs): Do nothing.
12313         (default_pretend_outgoing_varargs_named): Don't depend on
12314         SETUP_INCOMING_VARARGS.
12315         * targhooks.h: Remove the prototype for
12316         default_promote_function_return and
12317         default_promote_prototypes.
12318
12319 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12320
12321         * system.h (SHARED_SECTION_ASM_OP): Poison.
12322         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
12323         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
12324
12325 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12326
12327         Bug 13856
12328         * c-decl.c (diagnose_mismatched_decls): Only give special
12329         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
12330         is also true.
12331         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
12332         DECL_FUNCTION_CODE when defining a built-in function.
12333         Don't update DECL_ESTIMATED_INSNS.
12334         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
12335         FUNCTION_DECLs.
12336         * tree.h: Delete DECL_ESTIMATED_INSNS.
12337         * tree-inline.c (struct inline_data): Delete inlined_insns field.
12338         (expand_call_inline, optimize_inline_calls): Don't update
12339         DECL_ESTIMATED_INSNS nor inlined_insns.
12340         * cgraphunit.c (cgraph_analyze_function): Don't update
12341         DECL_ESTIMATED_INSNS.
12342
12343 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12344
12345         * c-common.c (shadow_warning): Delete.
12346         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
12347         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
12348         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
12349         * c-parse.in (free_parser_stacks): Delete.
12350
12351 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
12352
12353         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
12354         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
12355         Use the top level mkinstalldirs, not the one in the gcc subdir.
12356         * mkinstalldirs: Remove (from the gcc subdir).
12357
12358 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12359
12360         PR middle-end/13696
12361         * fold-const.c (fold_convert): New function to provide type
12362         conversion to the middle-end without using convert.
12363         (negate_expr, associate_trees, size_diffop, omit_one_operand,
12364         operand_equal_for_comparison_p, pedantic_omit_one_operand,
12365         invert_truthvalue, optimize_bit_field_compare, range_binop,
12366         decode_field_reference, make_range, build_range_check, unextend,
12367         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
12368         fold_binary_op_with_conditional_arg, fold_inf_compare,
12369         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
12370         convert with calls to fold_convert.
12371
12372 2004-02-07  Jan Hubicka  <jh@suse.cz>
12373
12374         * genrecog.c (find_operand): add extra argument stop.
12375         (validate_pattern): Verify that mach_dup is duplicating operand
12376         defined lexically earlier.
12377
12378 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12379
12380         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
12381         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12382         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
12383         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
12384         config/ia64/ia64.h, config/ip2k/ip2k.h,
12385         config/iq2000/iq2000.h, config/mips/iris5.h,
12386         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
12387         config/rs6000/aix51.h, config/rs6000/aix52.h,
12388         config/rs6000/darwin.h, config/rs6000/rs6000.h,
12389         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
12390         config/sparc/linux.h, config/sparc/linux64.h,
12391         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
12392         config/xtensa/xtensa.h: Remove the definitions of
12393         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
12394         MAX_WCHAR_TYPE_SIZE.
12395         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12396         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
12397
12398 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
12399
12400         PR bootstrap/13990
12401         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
12402         gen_rtx_NE.
12403
12404 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
12405
12406         * var-tracking.c (vt_add_function_parameters): Surround checkings by
12407         #ifdef ENABLE_CHECKING and #endif.
12408
12409 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12410
12411         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
12412         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
12413         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
12414         integer types and floating point with unsafe_math_optimizations.
12415         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
12416         Optimize A - B as A + (-B), if B is easily negated.
12417
12418 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12419
12420         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
12421         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
12422         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
12423         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
12424         Update copyright.
12425
12426 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12427
12428         * c-ppoutput.c, var-tracking.c: Fix comment typos.
12429
12430 2004-02-06  James E Wilson  <wilson@specifixinc.com>
12431
12432         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
12433         glibc 2.3 or better.
12434
12435 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12436
12437         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
12438         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
12439
12440 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
12441
12442         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
12443         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
12444         (SHLIB_MKMAP_OPTS): Delete.
12445         (TARGET_LIBGCC2_CFLAGS): Add -specs.
12446         (bispecs): Add rule.
12447         * config/rs6000/libgcc-ppc64.ver: New file.
12448         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
12449         (__floatdidf, __floatdisf): Optimize multiply.
12450         (__fixunstfdi): New function.
12451         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
12452         real and imag parts larger than one register.
12453         (function_arg): Correct type of reg used when fp arg split partially
12454         to stack.
12455         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
12456         and __MACH__ or __powerpc64__.
12457
12458 2004-02-06  Roger Sayle  <roger@eyesopen.com>
12459             Ulrich Weigand  <uweigand@de.ibm.com>
12460
12461         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
12462         of gen_highpart or gen_lowpart when the floating point format is
12463         wider than the result mode.
12464
12465 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
12466
12467         * dwarf2out.c (loclabel_num): Move into #ifdef
12468         DWARF2_DEBUGGING_INFO.
12469
12470 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
12471
12472         * objc/objc-act.c (build_super_template) the 'class' field of
12473         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
12474         (get_super_receiver): Likewise.
12475
12476 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12477
12478         * reload1.c (check_eliminable_occurrences): Optimize the reset
12479         of can_eliminate.
12480         (eliminate_regs_in_insn): Likewise.
12481
12482 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
12483             Josef Zlomek  <zlomekj@suse.cz>
12484
12485         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
12486         at the beginning of function, call dwarf2out_var_location for
12487         NOTE_INSN_VAR_LOCATION note.
12488         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
12489         decl_loc_table): New.
12490         (lookup_decl_loc): New function.
12491         (add_var_loc_to_decl): New function.
12492         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
12493         only if can_use_fbreg.
12494         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
12495         functions.
12496         (loc_descriptor): Likewise. Process VAR_LOCATION.
12497         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
12498         (loc_descriptor_from_tree): Call mem_loc_descriptor with
12499         can_use_fbreg == true.
12500         (add_location_or_const_value_attribute): Added parameter enum
12501         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
12502         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
12503         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
12504         with attr == DW_AT_location.
12505         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
12506         if frame_base_decl is defined and has a location list.
12507         (gen_variable_die): Call add_location_or_const_value_attribute with
12508         attr == DW_AT_location.
12509         (dwarf2out_var_location): New function.
12510         (dwarf2out_begin_function): New function.
12511         (dwarf2out_init): Create decl_loc_table.
12512
12513 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12514
12515         * loop.c (force_movables): Transitively increase the priorities of
12516         all insns forces by an insn, not just the first one.
12517
12518 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
12519             Daniel Berlin <dberlin@dberlin.org>
12520
12521         Josef Zlomek  <zlomekj@suse.cz>
12522         * Makefile.in (var-tracking.o): New.
12523         * common.opt (fvar-tracking): New.
12524         * flags.h (flag_var_tracking): New.
12525         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
12526         * opts.c (common_handle_option): Add OPT_fvar_tracking.
12527         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
12528         * rtl.c (note_insn_name): Likewise.
12529         * rtl.def (VAR_LOCATION): New.
12530         * rtl.h (NOTE_VAR_LOCATION): New.
12531         (NOTE_VAR_LOCATION_DECL): New.
12532         (NOTE_VAR_LOCATION_LOC): New.
12533         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
12534         (variable_tracking_main): New exported function.
12535         * timevar.def (TV_VAR_TRACKING): New.
12536         * toplev.c (enum dump_file_index): Added DFI_vartrack.
12537         (dump_file): "vartrack" was added (-dV).
12538         (flag_var_tracking): New.
12539         (f_options): "var-tracking" was added.
12540         (rest_of_handle_variable_tracking): New function.
12541         (rest_of_compilation): Run variable tracking.
12542         (process_options): If user has not specified flag_var_tracking set it
12543         according to optimize, debug_info_level and debug_hooks.
12544         * tree.h (frame_base_decl): New.
12545         * var-tracking.c: New file.
12546         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
12547         (ia64_override_options): Set flags to run variable tracking in machine
12548         dependent reorg instead of toplev.c.
12549         (ia64_reorg): Run variable tracking if wanted.
12550         * doc/invoke.texi: Mention variable tracking in -dV,
12551         add and -fvar-tracking.
12552         * doc/passes.texi: Added variable tracking pass.
12553
12554         Daniel Berlin <dberlin@dberlin.org>
12555         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
12556         * dbxout.c (dbx_debug_hooks): Likewise.
12557         (xcoff_debug): Likewise.
12558         * debug.c (do_nothing_debug_hooks): Likewise.
12559         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
12560         * dwarfout.c (dwarf_debug_hooks): Likewise.
12561         * sdbout.c (sdb_debug_hooks): Likewise.
12562         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12563         * final.c (final_scan_insn): Call var_location debug hook for each
12564         NOTE_INSN_VAR_LOCATION.
12565
12566 2004-02-06  Jan Hubicka  <jh@suse.cz>
12567
12568         * flow.c (update_life_info): Allocate reg_deaths when called from
12569         scheudler.
12570         (attempt_auto_inc):  Update life ranges accordingly.
12571
12572 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12573
12574         PR debug/11816
12575         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
12576
12577 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12578
12579         * cfganal.c (flow_call_edges_add): Never split a libcall block.
12580
12581 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
12582
12583         * dwarf2out.c (output_loc_list): Don't use deltas if we have
12584         a separate line info table in use.
12585         Use the correct size for terminators.
12586         (output_die): Use offset, not delta.
12587
12588 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
12589
12590         * doc/invoke.texi: Remove the pni option from -mfpmath=.
12591
12592 2004-02-06  Jan Hubicka  <jh@suse.cz>
12593
12594         * recog.c (split_all_insns): Do not update reg info.
12595         * regrename.c (regrename_optimize): Likewise.
12596         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
12597         * flow.c (struct propagate_block_info): Add insn_num field.
12598         (reg_deaths): New array.
12599         (life_analysis): Free reg_deaths info.
12600         (allocate_reg_life_data): Allocate reg_deaths array.
12601         (propagate_one_insn): Use new array.
12602         (init_propagate_block): Initialize it.
12603         (free_propagate_block_info): Finish compuation of
12604         REG_LIVE_LENGTH
12605         (attempt_auto_inc): Sanity check that REG_INFO is not
12606         computed at same time.
12607         (mark_used_regs): Update new array.
12608
12609         * reg-stack.c (subst_stack_regs): Unshare clobbers before
12610         substitution.
12611
12612 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12613
12614         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
12615         *extendqisi2_short_displ.
12616
12617 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
12618
12619         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
12620         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
12621         (emit_library_call_value_1): Likewise pass nargs.
12622         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
12623         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
12624         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
12625         parameter instead of scanning TYPE_ARGS_TYPES to count args.
12626         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
12627         prototype.
12628         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
12629         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
12630         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
12631         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
12632         INIT_CUMULATIVE_ARGS.
12633         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
12634         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
12635         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
12636         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
12637         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12638         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
12639         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
12640         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
12641         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
12642         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
12643         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
12644         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
12645
12646 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12647
12648         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
12649         possible.
12650
12651 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12652
12653         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
12654         note containing (plus (reg) (const_int)), where reg is an
12655         eliminable reg, then perform the register elimination without
12656         depending on eliminate_regs().
12657
12658 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12659
12660         * config/arc/arc.c (arc_return_in_memory): Check the return
12661         value of int_size_in_bytes against -1.  Don't check
12662         TREE_ADDRESSABLE.
12663         * config/avr/avr.c (avr_return_in_memory): Check the return
12664         value of int_size_in_bytes against -1.
12665         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
12666         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
12667         Likewise.
12668         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
12669         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
12670         Likewise.
12671
12672 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12673
12674         * config/frv/frv-protos.h: Remove the prototype for
12675         frv_setup_incoming_varargs.
12676         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
12677         (frv_setup_incoming_varargs): Make it static.
12678         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
12679
12680 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12681
12682         * config/fr30/fr30-protos.h: Remove the prototype for
12683         fr30_setup_incoming_varargs.
12684         Update the prototypes for fr30_num_arg_regs and
12685         fr30_function_arg_partial_nregs.
12686         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
12687         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12688         (fr30_setup_incoming_varargs): Make it static.
12689         Add argument second_time.  Don't do anything when second_time
12690         is nonzero.
12691         (fr30_num_arg_regs): Change the type of the first argument to
12692         enum machine_mode.
12693         (fr30_function_arg_partial_nregs): Change the type of the
12694         second argument to enum machine_mode.
12695         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
12696         (SETUP_INCOMING_VARARGS): Remove.
12697
12698 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12699
12700         * config/arc/arc-protos.h: Remove the prototype for
12701         arc_setup_incoming_varargs.
12702         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12703         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12704         (arc_setup_incoming_varargs): Make it static.
12705         (arc_external_libcall): Likewise.
12706         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
12707         Remove the commented-out definition of
12708         ASM_OUTPUT_EXTERNAL_LIBCALL.
12709
12710 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
12711
12712         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
12713         to $$(slibdir) in the installation commands.
12714
12715 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
12716
12717         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
12718         with inner_regno, not regno.
12719         * rtlanal.c (refers_to_regno_p): Same.
12720
12721 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12722
12723         * config.gcc: Remove i370 support.
12724
12725 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12726
12727         * doc/install.texi:  Update automake and autoconf version
12728         requirements.  Note where to find gcj automake version.
12729
12730 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12731
12732         * Makefile.in (generate-manpages): Move dependencies to ...
12733         (man): here.
12734         * doc/makefile.texi: Document new targets.
12735         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
12736
12737 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12738
12739         PR/13485
12740         Makefile.in (srcextra):  Add a level of indirection to ...
12741         (gcc.srcextra): ... here.
12742         (po-generated): Delete.
12743         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
12744         options.c.
12745         (start.encap): Remove superfluous lang.srcextra dependency.
12746         objc/Make-lang.in (po-generated):  Delete.
12747
12748 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12749
12750         * config/ia64/ia64.c (REG_GP): Remove.
12751
12752 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12753
12754         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
12755
12756 2004-02-05  Devang Patel  <dpatel@apple.com>
12757
12758         * dwarf2out.c (force_type_die): Look up input type itself
12759         instead of root_type() of type.
12760
12761 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
12762
12763         * config/s390/s390.md ("*tmqidi_ext"): New insn.
12764         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
12765         pre-reload splitters are transformed to post-reload
12766         define_insn_and_split patterns.
12767         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
12768
12769 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12770
12771         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
12772         TARGET_PROMOTE_PROTOTYPES.
12773
12774 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12775
12776         PR middle-end/13750
12777         Revert:
12778         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
12779         PR pch/13361
12780         * c-typeck.c (constructor_asmspec): Delete.
12781         (struct initializer_stack): Delete field 'asmspec'.
12782         (start_init): Delete saving of asmspec.
12783         (finish_init): Don't update constructor_asmspec.
12784         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
12785         * stmt.c (expand_asm): Duplicate strings from tree.
12786         (expand_asm_operands): Likewise.
12787         * tree.c (tree_size): Update computation of size of STRING_CST.
12788         (make_node): Don't make STRING_CST nodes.
12789         (build_string): Allocate string with tree node.
12790         * tree.def (STRING_CST): Update comment.
12791         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
12792         (tree_string): Place contents of string in tree node.
12793         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
12794         from tree.
12795
12796 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12797
12798         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
12799         msgid.
12800
12801 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
12802
12803         * config/rs6000/altivec.md (*movv4si_internal): At least one
12804         operand must be altivec_register_operand.
12805         (*movv8hi_internal1): Likewise.
12806         (*movv16qi_internal1): Likewise.
12807         (*movv4sf_internal1): Likewise.
12808
12809 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
12810
12811         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
12812         * configure: Regenerate.
12813
12814 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
12815
12816         * doc/install.texi: Update description of --gxx-include-dir to
12817         give correct default value.
12818
12819 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12820
12821         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
12822         8 with MAC_REG.
12823
12824 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12825
12826         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
12827         gen_rtx_PARALLEL.
12828
12829 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12830
12831         * emit-rtl.c: Update the comment about the file.
12832
12833 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12834
12835         * sourcebuild.texi (Test Idioms): Update testcase naming
12836         conventions.
12837
12838 2004-02-04  Per Bothner  <per@bothner.com>
12839
12840         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
12841         * c-ppoutput.c (pp_dir_change):  New function.
12842         * c-common.h (pp_dir_change):  New declaration.
12843         * cpplib.h (struct cpp_options):  Remove working_directory field.
12844         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
12845         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
12846         Don't handle -fworking_directory here, but in c_common_post_options.
12847         (read_original_directory): Don't back up when done.
12848         Don't clear no-longer used working_directory flag.
12849         * cpplib.h:  Update declarations to match.
12850         * c-lex.c (cb_dir_change):  Move to c-opts.c.
12851         (init_c_lex):  Don't set dir_change callback here, since we want
12852         to set it even if flag_preprocess_only.
12853         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
12854         (c_common_post_options):  Set dir_change callback.
12855         Call pp_dir_change if approporiate.
12856         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
12857         unneeded parameter and result. Do LC_RENAME for <built-in>.
12858         (c_common_post_options):  Call cpp_read_main_file here instead.
12859         (c_common_init):  Update accordingly.
12860         (push_command_line_include):  Don't cpp_push_main_file.
12861         Do LC_RENAME rather than LC_LEASE to get back to main file.
12862         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
12863         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
12864         files, but call finish_options for all files.
12865         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
12866         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
12867         cpp_find_main_file + cpp_push_main_file.
12868         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
12869         * opts.c (handle_options):  Only set main_input_filename first time.
12870
12871 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
12872
12873         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
12874
12875 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
12876
12877         * reload.c (find_equiv_reg): When checking for register overlap,
12878         don't index hard_regno_nregs with a pseudo-reg.
12879
12880 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12881
12882         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
12883
12884 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
12885
12886         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
12887         against FIRST_PSEUDO_REGISTER.
12888
12889 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12890
12891         * Makefile.in: Move target, host overrides after per-language
12892         fragments.
12893
12894         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
12895         (GNATLIBCFLAGS): Remove -g.
12896
12897 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12898
12899         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12900         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
12901         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
12902         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
12903         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
12904         config/sparc/sparc.c, config/vax/vax.c: Revert the
12905         replacements of "FALLTHRU" with "Fall through" done in the
12906         previous patch.
12907
12908 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12909
12910         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
12911         config/arm/arm.c, config/arm/arm.md,
12912         config/cris/cris-protos.h, config/fr30/fr30.c,
12913         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
12914         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
12915         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
12916         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
12917         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
12918         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
12919         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
12920         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
12921         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
12922         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
12923         config/s390/s390.md, config/sparc/netbsd-elf.h,
12924         config/sparc/openbsd.h, config/sparc/sparc.c,
12925         config/xtensa/lib2funcs.S: Fix comment formatting.
12926
12927 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12928
12929         * config/alpha/alpha.c, config/arc/arc.c,
12930         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
12931         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
12932         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
12933         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
12934         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
12935         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
12936         config/iq2000/iq2000.c, config/m32r/m32r.c,
12937         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
12938         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
12939         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
12940         config/rs6000/rs6000.h, config/sparc/sparc.c,
12941         config/vax/vax.c: Fix comment typos.  Follow spelling
12942         conventions.
12943
12944 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12945
12946         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
12947         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
12948         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
12949         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
12950         config/arm/fpa.md, config/arm/iwmmxt.md,
12951         config/arm/netbsd-elf.h, config/arm/netbsd.h,
12952         config/m68hc11/m68hc11.md, config/mips/iris5.h,
12953         config/mn10300/mn10300.md, config/rs6000/altivec.md,
12954         config/sparc/netbsd-elf.h: Update copyright.
12955
12956 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12957
12958         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
12959         for all modes whose size is greater than 8 bytes if ARCH32.
12960         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
12961         by reference if ARCH32.
12962
12963 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
12964
12965         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
12966
12967 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12968
12969         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
12970         to before adddi3 insn patterns.
12971         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
12972         "reload_insi"): Move to before addsi3 insn patterns.
12973
12974 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
12975
12976         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
12977         parameter.  Use it instead of current_function_is_thunk.
12978         * function.h (struct function): Update documentation for is_thunk.
12979         * tree.h (CALL_FROM_THUNK_P): New macro.
12980         * config/alpha/alpha.c (alpha_sa_mask): Do not check
12981         no_new_pseudos when testing current_function_is_thunk.
12982         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
12983
12984 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12985
12986         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
12987         TARGET_SETUP_INCOMING_VARARGS.
12988
12989 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12990
12991         * emit-rtl.c (gen_rtx): Remove.
12992         * genattrtab.c: Don't mention gen_rtx in a comment.
12993         * rtl.h: Remove the prototype for gen_rtx.
12994         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
12995
12996 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12997
12998         * config/arc/arc.h, config/fr30/fr30.h
12999         (SETUP_INCOMING_VARARGS): Remove the target-independent
13000         comments.
13001         * doc/tm.texi: Don't mention deprecated target macros.
13002
13003 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13004
13005         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13006         target-independent comment.
13007
13008 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13009
13010         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13011         mention deprecated target macros.
13012
13013 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13014
13015         * config.gcc: Remove obsolete ports and configurations.
13016         * config/linux-aout.h, config/netware.h,
13017         config/t-linux-gnulibc1, config/d30v/abi,
13018         config/d30v/d30v-protos.h, config/d30v/d30v.c,
13019         config/d30v/d30v.h, config/d30v/d30v.md,
13020         config/d30v/libgcc1.asm, config/d30v/t-d30v,
13021         config/dsp16xx/dsp16xx-modes.def,
13022         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13023         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13024         config/i370/README, config/i370/i370-c.c,
13025         config/i370/i370-protos.h, config/i370/i370.c,
13026         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13027         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13028         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13029         config/i386/moss.h, config/i386/netware.h,
13030         config/i386/svr3.ifile, config/i386/svr3dbx.h,
13031         config/i386/svr3gas.h, config/i386/svr3z.ifile,
13032         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13033         config/i960/i960-c.c, config/i960/i960-coff.h,
13034         config/i960/i960-modes.def, config/i960/i960-protos.h,
13035         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13036         config/i960/rtems.h, config/i960/t-960bare,
13037         config/m68k/hp310.h, config/m68k/hp320.h,
13038         config/m68k/hp320base.h, config/m68k/m68kv4.h,
13039         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13040         Remove.
13041         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13042         doc/md.texi: Remove mentions of obsolete ports.
13043
13044 2004-02-04  Jan Hubicka  <jh@suse.cz>
13045
13046         * alias.c (find_base_term, get_addr):  Do not dereference NULL
13047         pointer when all VALUE's locations has been invalidated.
13048         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13049
13050 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
13051
13052         * doc/invoke.texi (x86 options): Fix spelling/wording.
13053
13054 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
13055
13056         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13057         put the original string in a comment.
13058         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13059         * config/mips/mips.c (mips_output_ascii): Likewise.
13060         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13061
13062 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13063
13064         * system.h (GIV_SORT_CRITERION): Poison.
13065         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13066         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13067
13068 2004-02-03  Roger Sayle  <roger@eyesopen.com>
13069
13070         PR target/9348
13071         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
13072         multiplies with a multiplication of the wrong signedness, its the
13073         signedness of the multiplication that we've performed that needs to
13074         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
13075         if expand_mult_highpart_adjust places the result in target.
13076
13077 2004-02-03  Richard Henderson  <rth@redhat.com>
13078
13079         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13080
13081 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
13082
13083         * config.gcc (sh[234]l): Use little endian fragments.
13084
13085 2004-02-03  Paul Koning  <pkoning@equallogic.com>
13086
13087         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13088         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13089         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13090         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13091         floating point format.
13092         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13093         the above functions.
13094         (output_move_quad): Output float values in correct target format.
13095         (legitimate_const_double_p): New function.
13096         * config/pdp11/pdp11.h: Fix typos.
13097         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13098         (TARGET_FLOAT_FORMAT): Ditto.
13099         (pdp11_f_format, pdp11_d_format): Add external declarations.
13100         (MAX_REGS_PER_ADDRESS): Corrected.
13101         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13102         (PRINT_OPERAND): Output float literals in target format.
13103
13104 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
13105
13106         PR c++/13975
13107         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13108         TI_PRIVATE.
13109         (access_public_node): Redefine.
13110         (access_protected_node): Likewise.
13111         (access_private_node): Likewise.
13112         * tree.c (build_common_tree_nodes): Create access_public_node,
13113         access_protected_node, and access_private_node.
13114
13115 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
13116
13117         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13118         (MASK_INLINE_INT_DIV_THR): Ditto.
13119         (MASK_INLINE_SQRT_LAT): Ditto.
13120         (MASK_INLINE_SQRT_THR): Ditto.
13121         (MASK_DWARF2_ASM): Ditto.
13122         (MASK_EARLY_STOP_BITS): Ditto.
13123
13124 2004-02-02  Paul Brook  <paul@codesourcery.com>
13125
13126         Merge from csl-arm-branch.
13127
13128         2004-01-30  Paul Brook  <paul@codesourcery.com>
13129
13130         * aof.h (REGISTER_NAMES): Add vfp reg names
13131         (ADDITIONAL_REGISTER_NAMES): Ditto.
13132         * aout.h (REGISTER_NAMES): Ditto.
13133         (ADDITIONAL_REGISTER_NAMES): Ditto.
13134         * arm-protos.h: Update/Add Prototypes.
13135         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13136         Only allow 0.0 for VFP.
13137         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
13138         (values_fp): Rename from values_fpa.  Update Users.
13139         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13140         Update users.  Only check valid constants for this hardware.
13141         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
13142         Only allow consts for FPA.
13143         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
13144         Only allow consts for FPA.
13145         (use_return_insn): Check for saved VFP regs.
13146         (arm_legitimate_address_p): Handle VFP DFmode addressing.
13147         (arm_legitimize_address): Ditto.
13148         (arm_general_register_operand): New function.
13149         (vfp_mem_operand): New function.
13150         (vfp_compare_operand): New function.
13151         (vfp_secondary_reload_class): New function.
13152         (arm_float_compare_operand): New function.
13153         (vfp_print_multi): New function.
13154         (vfp_output_fstmx): New function.
13155         (vfp_emit_fstm): New function.
13156         (arm_output_epilogue): Output VPF reg restore code.
13157         (arm_expand_prologue): Output VFP reg save code.
13158         (arm_print_operand): Add 'P'.
13159         (arm_hard_regno_mode_ok): Return modes for VFP regs.
13160         (arm_regno_class): Return classes for VFP regs.
13161         (arm_compute_initial_elimination_offset): Include space for VFP regs.
13162         (arm_get_frame_size): Ditto.
13163         * arm.h (FIXED_REGISTERS): Add VFP regs.
13164         (CALL_USED_REGISTERS): Ditto.
13165         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13166         (FIRST_VFP_REGNUM): Define.
13167         (LAST_VFP_REGNUM): Define.
13168         (IS_VFP_REGNUM): Define.
13169         (FIRST_PSEUDO_REGISTER): Include VFP regs.
13170         (HARD_REGNO_NREGS): Handle VFP regs.
13171         (REG_ALLOC_ORDER): Add VFP regs.
13172         (enum reg_class): Add VFP_REGS.
13173         (REG_CLASS_NAMES): Ditto.
13174         (REG_CLASS_CONTENTS): Ditto.
13175         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13176         (REG_CLASS_FROM_LETTER): Add 'w'.
13177         (EXTRA_CONSTRAINT_ARM): Add 'U'.
13178         (EXTRA_MEMORY_CONSTRAINT): Define.
13179         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13180         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13181         (REGISTER_MOVE_COST): Ditto.
13182         (PREDICATE_CODES): Add arm_general_register_operand,
13183         arm_float_compare_operand and vfp_compare_operand.
13184         * arm.md (various): Rename as above.
13185         (divsf3): Enable when TARGET_VFP.
13186         (divdf3): Ditto.
13187         (movdfcc): Ditto.
13188         (sqrtsf2): Ditto.
13189         (sqrtdf2): Ditto.
13190         (arm_movdi): Disable when TARGET_VFP.
13191         (arm_movsi_insn): Ditto.
13192         (movsi): Only split with general regs.
13193         (cmpsf): Use arm_float_compare_operand.
13194         (push_fp_multi): Restrict to TARGET_FPA.
13195         (vfp.md): Include.
13196         * vfp.md: New file.
13197         * fpa.md (various): Rename as above.
13198         * doc/md.texi: Document ARM w and U constraints.
13199
13200         2004-01-15  Paul Brook  <paul@codesourcery.com>
13201
13202         * config.gcc: Add with_fpu.  Allow with-float=softfp.
13203         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13204         Break out of loop when we find a float-abi.  Fix typo.
13205         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13206         Set -mfloat-abi=.
13207         * doc/install.texi: Document --with-fpu.
13208
13209         2003-01-14  Paul Brook  <paul@codesourcery.com>
13210
13211         * config.gcc (with_arch): Add armv6.
13212         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13213         * config/arm/arm.c (arm_overrride_options): Ditto.
13214
13215         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
13216
13217         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
13218         (FL_ARCH6): Renamed from FL_ARCH6J.
13219         (arm_arch3m): Renamed from arm_fast_multiply.
13220         (arm_arch6): Renamed from arm_arch6j.
13221         * arm.h: Update all uses of above.
13222         * arm-cores.def: Likewise.
13223         * arm.md: Likewise.
13224
13225         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
13226         not arm6j.  Add entry for arch armv6.
13227
13228         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
13229
13230         * arm.c (arm_emit_extendsi): Delete.
13231         * arm-protos.h (arm_emit_extendsi): Delete.
13232         * arm.md (zero_extendhisi2): Also handle zero-extension of
13233         non-subregs.
13234         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
13235         (thumb_zero_extendhisi2): Only match if not v6.
13236         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
13237         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
13238         (thumb_extendqisi2): Likewise.
13239         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
13240         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
13241         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
13242         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
13243         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
13244         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
13245         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
13246         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
13247         (arm_extendqisi2addsi): Likewise.
13248
13249         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
13250
13251         Revert this change:
13252         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13253         + REG addressing modes.
13254
13255         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13256         + REG addressing modes.
13257
13258         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
13259
13260         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
13261         CONSTANT_P_RTX.
13262
13263         2003-30-12  Paul Brook  <paul@codesourcery.com>
13264
13265         * longlong.h: protect arm inlines with !defined (__thumb__)
13266
13267         2003-30-12  Paul Brook  <paul@codesourcery.com>
13268
13269         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
13270
13271         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
13272
13273         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
13274         change.
13275
13276         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13277
13278         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
13279         to the virtual incoming args pointer for downward stacks.
13280
13281         2003-12-29  Paul Brook  <paul@codesourcery.com>
13282
13283         * config/arm/arm-cores.def: Add cost function.
13284         * config/arm/arm.c (arm_*_rtx_costs): New functions.
13285         (arm_rtx_costs): Remove
13286         (struct processors): Add rtx_costs field.
13287         (all_cores, all_architectures): Ditto.
13288         (arm_override_options): Set targetm.rtx_costs.
13289         (thumb_rtx_costs): New function.
13290         (arm_rtx_costs_1): Remove cases handled elsewhere.
13291         * config/arm/arm.h (processor_type): Add COSTS parameter.
13292
13293         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13294
13295         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
13296         (arm926ejs.md): Include it.
13297         * config/arm/arm926ejs.md: New pipeline description.
13298
13299         2003-12-24  Paul Brook  <paul@codesourcery.com>
13300
13301         * config/arm/arm.c (arm_arch6j): New variable.
13302         (arm_override_options): Set it.
13303         (arm_emit_extendsi): New function.
13304         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
13305         * config/arm/arm.h (arm_arch6j): Declare.
13306         * config/arm/arm.md: Add sign/zero extend insns.
13307
13308         2003-12-23  Paul Brook  <paul@codesourcery.com>
13309
13310         * config/arm/arm.c (all_architectures): Add armv6.
13311         * doc/invoke.texi: Document it.
13312
13313         2003-12-19  Paul Brook  <paul@codesourcery.com>
13314
13315         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
13316         insn patterns to match.
13317         * config/arm/arm-generic.md: Ditto.
13318         * config/arm/cirrus.md: Ditto.
13319         * config/arm/fpa.md: Ditto.
13320         * config/amm/iwmmxt.md: Ditto.
13321         * config/arm/arm1026ejs.md: Ditto.
13322         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
13323         for 11_loadb.
13324
13325         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
13326
13327         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
13328         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
13329         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
13330         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
13331         arm_no_early_mul_dep): Correctly deal with conditional execution,
13332         parallels and single shift operations.
13333         (arm_no_early_alu_shift_value_dep): Define.
13334         * arm.md (attr type): Replace 'normal' with 'alu',
13335         'alu_shift' and 'alu_shift_reg'.
13336         (attr core_cycles): Adjust.
13337         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
13338         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
13339         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
13340         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
13341         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
13342         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
13343         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
13344         attribute appropriately.
13345         * config/arm/arm1026ejs.md (alu_op): Adjust.
13346         (alu_shift_op, alu_shift_reg_op): New.
13347         * config/arm/arm1136.md: Add better bypasses for early
13348         registers. Remove load[234] and store[234] bypasses.
13349         (11_alu_op): Adjust.
13350         (11_alu_shift_op, 11_alu_shift_reg_op): New.
13351
13352         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
13353
13354         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
13355         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
13356         * config/arm/arm.c (arm_no_early_store_addr_dep,
13357         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
13358         * config/arm/arm1026ejs.md: Add load-store bypass.
13359         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
13360         Add bypasses between instructions.
13361
13362         2003-12-10  Paul Brook  <paul@codesourcery.com>
13363
13364         * config/arm/arm.c (arm_fpu_model): New variable.
13365         (arm_fload_abi): New variable.
13366         (target_fpe_name): Rename from target_fp_name.
13367         (target_fpu_name): New variable.
13368         (arm_is_cirrus): Remove.
13369         (fpu_desc): New struct.
13370         (all_fpus): Define.
13371         (pf_model_for_fpu): Define.
13372         (all_loat_abis): Define.
13373         (arm_override_options): Set fp arch flags based on -mfpu=
13374         and -float-abi=.
13375         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13376         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13377         (*): Use new TARGET_* flags.
13378         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
13379         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
13380         (TARGET_SOFT_FLOAT): Ditto.
13381         (TARGET_SOFT_FLOAT_ABI): New.
13382         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
13383         TARGET_HARD_FLOAT.
13384         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
13385         (TARGET_OPTIONS): Add -mfpu=.
13386         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13387         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13388         (arm_pf_model): Define.
13389         (arm_float_abi_type): Define.
13390         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
13391         * config/arm/arm.md: Use new TARGET_* flags.
13392         * config/arm/cirrus.md: Ditto.
13393         * config/arm/fpa.md: Ditto.
13394         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
13395         * config/arm/semi.h (ASM_SPEC): Ditto.
13396         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
13397         (FPUTYPE_DEFAULT): Set to VFP.
13398         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
13399
13400         2003-11-22  Phil Edwards  <phil@codesourcery.com>
13401
13402         PR target/12476
13403         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
13404         'bx' instead of 'b' to avoid branch range restrictions.  Output
13405         the thunk immediately before the thunked-to function.
13406         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
13407         .thumb_func if a thunk is being generated.  Emit .code 16 along
13408         with .thumb_func if a thunk is not being generated.
13409
13410         2003-11-15  Nicolas Pitre <nico@cam.org>
13411
13412         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
13413         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
13414         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
13415         (lshrdi3_iwmmxt): Renamed from lshrdi3.
13416         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
13417
13418         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
13419             Ian Lance Taylor  <ian@wasabisystems.com>
13420
13421         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
13422         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
13423
13424         2003-11-05  Phil Edwards  <phil@codesourcery.com>
13425
13426         * config/arm/arm.md (insn):  Add new V6 instruction names.
13427         (generic_sched):  New attr.
13428         * config/arm/arm-generic.md:  Use generic_sched here.
13429         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
13430         stages of pipeline.  Adjust latency counts accordingly.
13431         * config/arm/arm1136jfs.md:  New file.
13432
13433         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
13434
13435         * config/arm/arm.h (processor_type): New enumeration type.
13436         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
13437         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
13438         (CPP_CPU_ARCH_SPEC): Likewise.
13439         * config/arm/arm.c (arm_tune): New variable.
13440         (all_cores): Use cores.def.
13441         (all_architectures): Add representative processor.
13442         (arm_override_options): Restructure way in which tuning
13443         information is deduced.
13444         * arm.md: Update "insn" and "type" attributes throughout.
13445         (insn): New attribute.
13446         (type): Compute "mult" from "insn" attribute.  Add load2,
13447         load3, load4 alternatives.
13448         (arm automaton): Move to arm-generic.md.
13449         * config/arm/arm-cores.def: New file.
13450         * config/arm/arm-generic.md: Likewise.
13451         * config/arm/arm1026ejs.md: Likewise.
13452
13453 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
13454
13455         * doc/invoke.texi (SPARC options): Remove -mflat and
13456         all -mxxx (xxx:chip) options.
13457         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
13458         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
13459         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
13460         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
13461         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
13462         * config/sparc/sparc.c: Likewise.
13463         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
13464         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
13465         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
13466         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
13467         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
13468         (sparc_flat_must_save_register_p): Likewise.
13469         (sparc_flat_compute_frame_size): Likewise.
13470         (sparc_flat_save_restore): Likewise.
13471         (sparc_flat_function_prologue): Likewise.
13472         (sparc_flat_function_epilogue): Likewise.
13473         (sparc_flat_epilogue_delay_slots): Likewise.
13474         (sparc_flat_eligible_for_epilogue_delay): Likewise.
13475         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
13476         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
13477         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
13478         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
13479         (CONDITIONAL_REGISTER_USAGE): Likewise.
13480         (FRAME_POINTER_REQUIRED): Likewise.
13481         (INITIAL_ELIMINATION_OFFSET): Likewise.
13482         (BASE_RETURN_VALUE_REG): Likewise.
13483         (BASE_OUTGOING_VALUE_REG): Likewise.
13484         (BASE_PASSING_ARG_REG): Likewise.
13485         (BASE_INCOMING_ARG_REG): Likewise.
13486         (INCOMING_REGNO): Likewise.
13487         (OUTGOING_REGNO): Likewise.
13488         (LOCAL_REGNO): Likewise.
13489         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
13490         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
13491         (EPILOGUE_USES): Likewise.
13492         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
13493         ("flat" attribute): Delete.
13494         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
13495         handling.
13496         (call followed by jump define_peephole's): Delete.
13497         (exception_receiver): Likewise.
13498         (builtin_setjmp_receiver): Likewise.
13499         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
13500
13501 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
13502
13503         PR c/11658
13504         PR c/13994
13505         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
13506         on langhooks.h.
13507         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
13508         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
13509         Include langhooks.h.  Replace c_common_truthvalue_conversion
13510         with the truthvalue_conversion language hook throughout.
13511         (expr_no_commas): Call default_conversion before save_expr
13512         for the first term of the production 'x ? : y'.
13513         * c-common.c (c_common_truthvalue_conversion): Remove
13514         obsolete block.  Invoke recursively the hook instead
13515         of this function.
13516         * c-convert.c (convert): handle ERROR_MARK_NODE.
13517         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
13518         returned by the truthvalue_conversion language hook.
13519         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13520         c_objc_common_truthvalue_conversion.
13521         * c-objc-common.c (c_objc_common_truthvalue_conversion):
13522         New function.
13523         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
13524         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13525         c_objc_common_truthvalue_conversion.
13526
13527 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13528
13529         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
13530         of gen_rtx.
13531         (LIBCALL_VALUE): Likewise.
13532         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
13533         gen_rtx_CC0 instead of gen_rtx.
13534         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
13535         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
13536         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
13537         gen_rtx.
13538         (m68hc11_emit_logical): Likewise.
13539
13540 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13541
13542         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
13543         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
13544         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
13545         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
13546         config/mips/mips.md, config/mmix/mmix.c,
13547         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
13548         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
13549         config/rs6000/altivec.md, config/s390/s390.c,
13550         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
13551         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
13552         Use const0_rtx instead of GEN_INT (0).  Do the same for other
13553         constants that are readily available.
13554
13555 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13556
13557         * doloop.c, optabs.c, regmove.c, sched-deps.c,
13558         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
13559         instead of GEN_INT (0).  Do the same for other constants that
13560         are readily available.
13561
13562 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13563
13564         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
13565         gen_rtx.
13566         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
13567         instead of gen_rtx.
13568         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
13569         gen_rtx.
13570         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
13571         gen_rtx_ASHIFT instead of gen_rtx.
13572         (udivmodqi4): Likewise.
13573
13574 2004-02-02  Richard Henderson  <rth@redhat.com>
13575
13576         PR target/13789
13577         * expr.c (store_expr): Use force_operand before emit_move_insn.
13578
13579 2004-02-02  Jeff Law  <law@redhat.com>
13580             Roger Sayle  <roger@eyesopen.com>
13581
13582         * tree.c (commutative_tree_code, associative_tree_code): New
13583         functions.
13584         (iterative_hash_expr): Use commutative_tree_code.
13585         * tree.h (commutative_tree_code, associative_tree_code): Declare.
13586         * fold-const.c (operand_equal_p): Use commutative_tree_code
13587         rather than inlining the commutativity check.
13588         (fold): Likewise.
13589
13590 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13591
13592         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
13593         * config/frv/frv-protos.h: Remove the prototype for
13594         frv_function_arg_keep_as_reference.
13595         * config/frv/frv.c (frv_function_arg_keep_as_reference):
13596         Remove.
13597         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
13598         * config/stormy16/stormy16.h: Remove the commented-out
13599         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
13600
13601 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
13602
13603         PR target/13914
13604         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
13605         for retaddr_column.
13606
13607 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13608
13609         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
13610         gen_rtx.
13611
13612 2004-02-02  Eric Christopher  <echristo@redhat.com>
13613             Zack Weinberg  <zack@codesourcery.com>
13614
13615         * c-opts.c (c_common_handle_option): Add -finput-charset.
13616         * c.opt: Ditto.
13617         * cppcharset.c (one_iso88591_to_utf8): Remove.
13618         (convert_iso88591_utf8): Ditto.
13619         (conversion_tab): Remove 8859-1 converter.
13620         (_cpp_input_to_utf8): Remove.
13621         (_cpp_init_iconv_buffer): Ditto.
13622         (_cpp_close_iconv_buffer): Ditto.
13623         (_cpp_convert_input): New function.
13624         (_cpp_default_encoding): Ditto.
13625         * cpphash.h: Add/remove prototypes for above.
13626         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
13627         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
13628         for narrow execution and input character sets.
13629         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
13630         * doc/cppopts.texi: Document -finput-charset.
13631
13632 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
13633
13634         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
13635         against FIRST_PSEUDO_REGISTER.
13636
13637 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13638
13639         * doc/invoke.texi (SPARC options): Further improve.
13640
13641 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13642
13643         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
13644         config/h8300/h8300.c, config/ip2k/ip2k.md,
13645         config/iq2000/iq2000.c, config/mips/mips.c,
13646         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
13647         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
13648         config/v850/v850.md: Fix indentation.
13649
13650 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13651
13652         * config/sparc/sparc.c (function_arg_slotno): Align TImode
13653         arguments on a 16-byte boundary in the parameter array if ARCH64.
13654         Split handling of TFmode.
13655
13656 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
13657
13658         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
13659         Don't test CONSTANT_P (x).
13660         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
13661         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
13662         Fix misindentation.
13663
13664 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13665
13666         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
13667
13668 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13669
13670         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
13671         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
13672         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
13673         config/iq2000/iq2000.c, config/m32r/m32r.c,
13674         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
13675         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
13676         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
13677         config/stormy16/stormy16.c, config/v850/v850.md,
13678         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
13679
13680 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13681
13682         * config/mcore/mcore.c (block_move_sequence): Replace
13683         gen_rtx_CONST_INT with GEN_INT.
13684
13685 2004-02-02  Jan Hubicka  <jh@suse.cz>
13686
13687         * alias.c (record_set): Use hard_regno_nregs.
13688         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
13689         * builtins.c (apply_args_size): Likewise.
13690         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
13691         mark_set_regs, add_stored_regs, mark_referenced_regs,
13692         insert_restore, insert_save, insert_one_insn): Likewise.
13693         * cfgcleanup.c: Include regs.h
13694         (mark_effect, mentions_nonequal_regs): Likewise.
13695         * cfgrtl.c (mark_killed_regs): Likewise
13696         * combine.c (update_table_tick, record_value_for_reg,
13697         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
13698         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
13699         reg_bitfield_target_p, distribute_notes): Likewise.
13700         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
13701         exp_equiv_p, cse_insn): Likewise.
13702         * cselib.c (cselib_lookup): Likewise.
13703         (cselib_invalidate_regno, cselib_record_set): Likewise.
13704         * df.c (df_ref_record): Likewise.
13705         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
13706         Likewise.
13707         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
13708         count_or_remove_death_notes_bb): Likewise.
13709         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
13710         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
13711         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
13712         * integrate.c (mark_stores): Likewise.
13713         * jump.c (delete_prior_computation): Likewise.
13714         * lcm.c (reg_dies, reg_becomes_live): Likewise.
13715         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
13716         * loop.c (LOOP_REGNO_NREGS): Likewise.
13717         * postreload.c (reload_combine, reload_combine_note_store,
13718         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
13719         * ra-colorize.c (combine, color_usable_p, get_free_reg,
13720         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
13721         try_recolor_web, insert_coalesced_conflicts, check_colors,
13722         break_precolored_alias): Likewise.
13723         * ra-debug.c: Include regs.h
13724         (ra_print_rtx_object): Likewise.
13725         * ra-rewrite (choose_spill_colors): Likewise.
13726         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
13727         * ra.c (init_ra): Likewise.
13728         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
13729         peep2_find_free_register): Likewise.
13730         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
13731         * regclass.c (hard_regno_nregs): New array.
13732         (init_reg_modes_once): Initialize it.
13733         (choose_hard_reg_mode): Use it.
13734         (record_reg_classes): Likewise.
13735         * regmove.c (mark_flags_life_zones): Likewise.
13736         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
13737         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
13738         copy_value, maybe_mode_change, find_oldest_value_reg,
13739         copyprop_hardreg_forward_1):
13740         * regs.h (hard_regno_nregs): Declare.
13741         * realod.c (reload_inner_reg_of_subreg): Use it.
13742         (push_reload, combine_reloads, find_dummy_reload,
13743         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
13744         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
13745         reload_adjust_reg_for_mode): Likewise.
13746         * reload1.c (compute_use_by_pseudos, count_pseudo,
13747         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
13748         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
13749         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
13750         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
13751         delete_output_reload): Likewise.
13752         * resource.c (update_live_status, mark_referenced_resources,
13753         mark_set_resources, mark_target_live_regs): Likewise.
13754         * rtlanal.c:  Include regs.h
13755         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
13756         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
13757         subreg_regno_offset, subreg_offset_representable_p,
13758         hoist_test_store): Likewise.
13759         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
13760         * sched-rgn.c (check_live_1, update_live_1): Likewise.
13761         * stmt.c: Include regs.h
13762         (decl_conflicts_with_clobbers_p): Likewise.
13763         * varasm.c (make_decl_rtl): Likewise.
13764         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
13765
13766 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13767
13768         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
13769         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
13770         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
13771         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
13772         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
13773         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13774         config/iq2000/iq2000.h, config/m32r/m32r.c,
13775         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
13776         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
13777         config/mcore/mcore.c, config/mcore/mcore.h,
13778         config/mcore/mcore.md, config/mips/mips.c,
13779         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
13780         config/rs6000/rs6000.c, config/s390/s390.c,
13781         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
13782         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
13783         "gen_rtx (FOO, " with "gen_rtx_FOO (".
13784
13785 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13786
13787         * config/h8300/h8300.md (two peephole2's): New.
13788
13789 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
13790
13791         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
13792         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
13793         (ASM_CPU_SPEC): Likewise
13794         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
13795         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
13796
13797 2004-02-01  Roger Sayle  <roger@eyesopen.com>
13798
13799         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
13800         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
13801         (expand_builtin): Always call expand_builtin_pow.
13802
13803 2004-02-01  Roger Sayle  <roger@eyesopen.com>
13804
13805         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
13806         BUILT_IN_SIGNBITL): New GCC builtins.
13807         * builtins.c (expand_builtin_signbit): New function to RTL expand
13808         calls to signbit, signbitf and signbitl as inline intrinsics.
13809         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
13810         (fold_builtin_signbit): New function to perform constant folding
13811         of signbit, signbitf and signbitl.
13812         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
13813
13814         * doc/extend.texi: Document new signbit{,f,l} builtins.
13815
13816 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
13817
13818         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
13819
13820 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
13821
13822         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
13823         "mips_const_double_ok" and "simple_memory_operand", which were
13824         removed from the MIPS port with the mips-3_4-rewrite branch merge.
13825         * config/mips/mips.c (mips16_lay_out_constants): Update comment
13826         for removal of simple_memory_operand.
13827
13828 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13829
13830         * config/c4x/c4x.md: Use GEN_INT instead of
13831         gen_rtx (CONST_INT, ...).
13832
13833 2004-01-31  Richard Henderson  <rth@redhat.com>
13834
13835         * varasm.c (output_constant_pool): Don't zap the pool.
13836
13837 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13838
13839         * genrecog.c (decision_type): Add DT_const_int.
13840         (write_cond) [DT_const_int]: Print a comparison against small
13841         constant.
13842         (write_node): Simplify comparisons against small constants
13843         before printing tests.
13844
13845 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13846
13847         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
13848         instead of gen_rtx_CONST_INT.
13849
13850 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13851
13852         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
13853         instead of gen_rtx_CONST_INT.
13854
13855 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13856
13857         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
13858         hook_bool_CUMULATIVE_ARGS_false.
13859         * targhooks.c (default_strict_argument_naming): Rename to
13860         hook_bool_CUMULATIVE_ARGS_false.
13861         * targhooks.h: Update the prototype for
13862         default_strict_argument_naming.
13863
13864 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13865
13866         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
13867         * config/sh/sh.h: Likewise.
13868         * config/sh/sh.md: Likewise.
13869
13870 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
13871
13872         * doc/invoke.texi (SPARC options): Restructure and update.
13873
13874 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13875
13876         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
13877         STRICT_ARGUMENT_NAMING): Poison.
13878         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
13879         hook_bool_tree_false.
13880         * targhooks.c (default_promote_function_args): Remove.
13881         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
13882         Don't check incoming.
13883         (default_strict_argument_naming): Don't use
13884         STRICT_ARGUMENT_NAMING.
13885         * targhooks.h: Remove the prototype for
13886         default_promote_function_args.
13887
13888 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13889
13890         * config/i386/i386-protos.h: Remove the prototype for
13891         ix86_setup_incoming_varargs.
13892         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
13893         (ix86_setup_incoming_varargs): Make it static.
13894         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
13895
13896 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13897
13898         * alloc-pool.c: Fix comment typos.
13899         * builtin-types.def: Likewise.
13900         * builtins.def: Likewise.
13901         * c-pretty-print.c: Likewise.
13902         * df.h: Likewise.
13903         * reload1.c: Likewise.
13904
13905 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13906
13907         * doc/invoke.texi: Follow spelling conventions.
13908         * doc/tm.texi: Likewise.
13909
13910 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13911
13912         * doc/install.texi: Fix typos.
13913         * doc/invoke.texi: Likewise.
13914
13915 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
13916
13917         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
13918         registers as pointers.
13919         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
13920
13921 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
13922
13923         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
13924         and restore it to gen_lowpart_general on exit.
13925         (gen_lowpart_for_combine): Adjust all callers to go through
13926         gen_lowpart.
13927         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
13928         and restore it to gen_lowpart_general on exit.
13929         (gen_lowpart_if_possible): Adjust all callers to go through
13930         gen_lowpart.
13931         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
13932         (gen_lowpart): Declare as pointer to function, initialized to
13933         gen_lowpart_general.
13934         * rtl.h (gen_lowpart): Declare as pointer to function.
13935
13936 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13937
13938         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
13939         * calls.c: Likewise.
13940         * emit-rtl.c: Likewise.
13941         * function.c: Likewise.
13942         * reload1.c: Likewise.
13943         * config/i386/cygming.h: Likewise.
13944         * config/i386/i386.c: Likewise.
13945         * config/i386/winnt.c: Likewise.
13946
13947 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
13948
13949         PR bootstrap/9249
13950         * doc/install.texi: document --enable-__cxa_atexit option.
13951         * configure.ac: Disable __cxa_atexit if not supported.
13952         * configure: Regenerate.
13953
13954 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
13955
13956         * ggc-zone.c (ggc_free): New function.
13957
13958 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13959
13960         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
13961         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
13962         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
13963         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
13964         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
13965         config/alpha/alpha.c, config/alpha/alpha.h,
13966         config/alpha/alpha.md, config/alpha/unicosmk.h,
13967         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
13968         config/c4x/c4x-protos.h, config/c4x/c4x.md,
13969         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
13970         config/frv/frvend.c, config/i386/cygming.h,
13971         config/i386/djgpp.h, config/i386/emmintrin.h,
13972         config/i386/gthr-win32.c, config/i386/i386-interix.h,
13973         config/i386/i386-protos.h, config/i386/openbsd.h,
13974         config/i386/winnt.c, config/i386/xm-mingw32.h,
13975         config/i386/xmmintrin.h, config/ia64/ia64.md,
13976         config/iq2000/iq2000.md, config/m32r/m32r.md,
13977         config/m68k/m68k.md, config/mcore/mcore-elf.h,
13978         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
13979         config/mips/iris5gas.h, config/mips/iris6.h,
13980         config/mips/iris6gas.h, config/mips/linux.h,
13981         config/mips/mips.md, config/mips/netbsd.h,
13982         config/mips/openbsd.h, config/mips/windiss.h,
13983         config/pa/fptr.c, config/rs6000/aix.h,
13984         config/rs6000/altivec.h, config/rs6000/darwin.h,
13985         config/rs6000/xcoff.h, config/s390/s390-protos.h,
13986         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
13987         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
13988         config/sparc/sol2.h: Update copyright.
13989
13990 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
13991
13992         * Makefile.in (abs_docdir, abs_srcdir): Define.
13993         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
13994
13995 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13996
13997         * genconfig.c (main): Have CC0_P check its operand even on a
13998         target without cc0.
13999
14000 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14001
14002         * config/alpha/alpha.c: Remove mentions of deprecates macros
14003         in comments, remove some target-independent comments about target
14004         macros, and/or add minimal function comments for target hook
14005         implementations.
14006         * config/avr/avr.c: Likewise.
14007         * config/ia64/ia64.h: Likewise.
14008         * config/ip2k/ip2k.c: Likewise.
14009         * config/iq2000/iq2000.c: Likewise.
14010         * config/m32r/m32r.h: Likewise.
14011         * config/m68hc11/m68hc11.c: Likewise.
14012         * config/mcore/mcore.c: Likewise.
14013         * config/mmix/mmix.c: Likewise.
14014         * config/mn10300/mn10300.c: Likewise.
14015         * config/pa/pa.c: Likewise.
14016         * config/pdp11/pdp11.c: Likewise.
14017         * config/rs6000/rs6000.h: Likewise.
14018         * config/sh/sh.c: Likewise.
14019         * config/sh/sh.h: Likewise.
14020         * config/sparc/sparc.c: Likewise.
14021         * config/sparc/sparc.h: Likewise.
14022         * config/stormy16/stormy16.c: Likewise.
14023         * config/xtensa/xtensa.c: Likewise.
14024
14025 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14026
14027         PR optimization/12147
14028         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14029         RELOAD_FOR_OPADDR_ADDR.
14030         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14031         might be reused as RELOAD_FOR_OPADDR_ADDR register.
14032
14033 2004-01-30  Jan Hubicka  <jh@suse.cz>
14034
14035         * reload.c (get_secondary_mem): Fix updating of
14036         secondary_memlocs_elim_used.
14037
14038 2004-01-30  Richard Henderson  <rth@redhat.com>
14039
14040         * varasm.c (struct rtx_const, struct pool_constant): Remove.
14041         (MAX_RTX_HASH_TABLE): Remove.
14042         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14043         (first_pool, last_pool, pool_offset): Remove.
14044         (struct rtx_constant_pool): Split out from ...
14045         (struct varasm_status): ... here.  Reference one via pointer.
14046         (struct constant_descriptor_rtx): Merge struct pool_constant.
14047         (SYMHASH): Remove.
14048         (decode_rtx_const): Remove.
14049         (const_hash_rtx, compare_constant_rtx): Remove.
14050         (record_constant_rtx): Remove.
14051         (const_desc_rtx_hash, const_desc_rtx_eq): New.
14052         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14053         (const_rtx_hash_1, const_rtx_hash): New.
14054         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14055         (simplify_subtraction): Use simplify_rtx.
14056         (force_const_mem): Rewrite to use new data structures.
14057         (find_pool_constant): Likewise.
14058         (get_pool_constant, get_pool_constant_mark,
14059         get_pool_constant_for_function, get_pool_mode,
14060         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14061         (output_constant_pool_2): Split out from output_constant_pool.
14062         (output_constant_pool_1): Likewise.  Use new pool datastructures.
14063         (output_constant_pool): Zap entire pool datastructure.
14064         (mark_constant): Use new pool datastructures.
14065         (mark_constants): Use for_each_rtx.
14066         (mark_constant_pool): Use new pool datastructures.
14067
14068 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
14069
14070         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
14071         Copy operands[1] to pseudo for simplify_gen_subreg.
14072
14073 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14074
14075         * gcse.c (bypass_block): Fix a typo in the previous check-in
14076         to the file.
14077
14078 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
14079
14080         * toplev.c: Include alloc-pool.h.
14081         * Makefile.in (toplev.c): Update dependencies.
14082
14083 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14084
14085         * combine.c (simplify_shift_const, case XOR): Be careful when
14086         commuting XOR with ASHIFTRT.
14087
14088 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14089             Eric Botcazou  <ebotcazou@libertysurf.fr>
14090
14091         * config/sparc/sparc-protos.h: Remove the prototype for
14092         sparc_builtin_saveregs.
14093         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14094         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14095         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14096         (TARGET_STRUCT_VALUE_RTX): Likewise.
14097         (TARGET_RETURN_IN_MEMORY): Likewise.
14098         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14099         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14100         (sparc_builtin_saveregs): Make it static.
14101         (sparc_promote_prototypes): New.
14102         (sparc_struct_value_rtx): Likewise.
14103         (sparc_return_in_memory): Likewise.
14104         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14105         (PROMOTE_FUNCTION_RETURN): Likewise.
14106         (RETURN_IN_MEMORY): Likewise.
14107         (STRUCT_VALUE): Likewise.
14108         (STRUCT_VALUE_INCOMING): Likewise.
14109         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14110         (STRICT_ARGUMENT_NAMING): Likewise.
14111         (PROMOTE_PROTOTYPES): Likewise.
14112
14113         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14114
14115 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14116
14117         PR c/12818
14118         * varasm.c (const_hash_1) <STRING_CST>: Use the
14119         address to compute the hash value if flag_writable_strings.
14120         (compare_constant) <STRING_CST>: Compare the addresses
14121         if flag_writable_strings.
14122         (build_constant_desc): Do not copy the expression for a
14123         STRING_CST if flag_writable_strings.
14124
14125 2004-01-30  Jan Hubicka  <jh@suse.cz>
14126
14127         * alloc-pool.c: Include hashtab.h
14128         (alloc_pool_descriptor): New structure
14129         (alloc_pool_hash): New global variable.
14130         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14131         (create_alloc_pool): Update statistics.
14132         (free_alloc_pool): Likewise.
14133         (pool_alloc): Likewise.
14134         (output_info): New structure
14135         (print_statistics, dump_alloc_pool_statistics): New function.
14136         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14137         (dump_alloc_pool_statistics): Declare.
14138         * toplev.c (finalize):  Dump statistics.
14139
14140         * reload.c (secondary_memlocs_elim_used): New static variable.
14141         (get_secondary_mem): Update it.
14142         (find_reloads): Use it.
14143
14144 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
14145
14146         * toplev.c: Fix broken checkin of 2003-12-30, again.
14147
14148 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14149
14150         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14151         s390*-*-* targets by specifying a 'nop' insn.
14152         * configure: Regenerate.
14153
14154 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14155
14156         PR target/11475
14157         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14158
14159 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14160
14161         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14162         of addr when creating MEM copy.
14163
14164 2004-01-29  Devang Patel  <dpatel@apple.com>
14165
14166         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
14167
14168 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14169
14170         PR inline-asm/6162
14171         * reload.c (find_reloads): Only support one pair of commutative
14172         operands.
14173
14174 2004-01-29  Roger Sayle  <roger@eyesopen.com>
14175
14176         PR java/13824
14177         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14178         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14179         recursion.
14180
14181 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14182
14183         * config/frv/frv.c: Don't mention deprecated macros in
14184         comments.  Remove some target-independent comments about
14185         target macros.
14186         * config/frv/frv.h: Likewise.
14187
14188 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14189
14190         * cfghooks.c (split_block): Set probability and count of the
14191         new edge.
14192
14193 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
14194
14195         * dwarf2out.c (struct die_struct): Added field decl_id.
14196         (decl_die_table): Changed to hash table.
14197         (decl_die_table_allocated): Deleted.
14198         (decl_die_table_in_use): Deleted.
14199         (DECL_DIE_TABLE_INCREMENT): Deleted.
14200         (decl_die_table_hash): New function.
14201         (decl_die_table_eq): New function.
14202         (lookup_decl_die): Lookup in a hash table.
14203         (equate_decl_number_to_die): Insert into a hash table.
14204         (dwarf2out_init): Init hash table decl_die_table.
14205
14206 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14207
14208         PR optimization/13424
14209         * expr.c (store_constructor): Revert 2003-12-03 change.
14210
14211         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14212         expected before returning early.  Avoid sharing RTL if they
14213         need to be changed.
14214
14215         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
14216         handling so that memory attributes are preserved.  Don't call
14217         ix86_set_move_mem_attrs.
14218         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
14219         (ix86_expand_clrstr): Rename src argument to
14220         dst.  Rework rep_stos and strset handling so that memory attributes
14221         are preserved.
14222         (ix86_expand_strlen): Pass src argument to
14223         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
14224         memory attributes are preserved.
14225         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
14226         change_address instead of gen_rtx_MEM.
14227         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
14228         expanders.
14229         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
14230         strmovqi, strmovqi_rex64): Remove.
14231         (rep_mov*, strmov*): Prefix insn names with *.
14232         (strset, strset_singleop, rep_stos): New expanders.
14233         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
14234         strsetqi, strsetqi_rex64): Remove.
14235         (rep_stos*, strset*): Prefix insn names with *.
14236         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
14237         to SImode.
14238         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
14239         are preserved.
14240         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
14241         Prefix insn names with *.
14242         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
14243         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
14244         (strlenqi_1): New expander.
14245         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
14246
14247 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14248
14249         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
14250         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
14251         verify_flow_info): Declaration removed.
14252         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
14253         (debug_bb, debug_bb_n): Add argument to dump_bb call.
14254         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
14255         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
14256         instead of delete_block.
14257         * cfghooks.c: Include timevar.h and toplev.h.
14258         (cfg_hooks): Define here.
14259         (verify_flow_info, dump_bb): Moved from cfg.c.
14260         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14261         split_block, split_block_after_labels, move_block_after,
14262         delete_basic_block, split_edge, create_basic_block,
14263         create_empty_bb, can_merge_blocks_p, merge_blocks,
14264         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14265         New functions.
14266         * cfghooks.h (struct cfg_hooks): Added fields name,
14267         make_forwarder_block, tidy_fallthru_edge and
14268         move_block_after. Changed type of verify_flow_info, dump_bb,
14269         split_block fields. Renamed cfgh_split_edge and delete_block
14270         fields.
14271         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14272         split_block, delete_block, split_edge, create_basic_block,
14273         can_merge_blocks_p, merge_blocks): Macros removed.
14274         (cfg_hooks): Do not export.
14275         (verify_flow_info, dump_bb, redirect_edge_and_branch,
14276         redirect_edge_and_branch_force, split_block, split_block_after_labels,
14277         move_block_after, delete_basic_block, split_edge, create_basic_block,
14278         create_empty_bb, can_merge_blocks_p, merge_blocks,
14279         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14280         Declare.
14281         (cfg_layout_rtl_cfg_hooks): Declare.
14282         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
14283         New functions.
14284         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
14285         (redirect_edge_with_latch_update): Removed.
14286         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
14287         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
14288         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
14289         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
14290         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
14291         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
14292         cfghooks.c.
14293         (rtl_create_basic_block): Coding style fix.
14294         (rtl_tidy_fallthru_edge, rtl_move_block_after,
14295         rtl_make_forwarder_block): New functions.
14296         (update_cfg_after_block_merging): Removed.
14297         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
14298         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
14299         to dump_bb.
14300         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
14301         find_if_case_2): Don't update dominators.
14302         * timevar.def (TV_CFG_VERIFY): New.
14303         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
14304         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
14305         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
14306         (remove_bbs): Don't call remove_bbs.
14307         (create_preheader): Use make_forwarder_block.
14308         (mfb_keep_just, mfb_update_loops): New static functions.
14309
14310 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14311
14312         * config/avr/avr.h: Remove target-independent comments about
14313         target macros.
14314
14315 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
14316
14317         * timevar.c (timevar_print): Mention when checking is enabled.
14318
14319 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
14320
14321         * c-lex.c (c_lex): Rename to...
14322         (c_lex_with_flags): Add new parameter to get CPP flags.
14323         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
14324         * c-pragma.h (c_lex_with_flags): Declare.
14325
14326 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14327
14328         * config/mcore/mcore.c (mcore_external_libcall): Add a
14329         comment.
14330         (mcore_return_in_memory): Likewise.
14331
14332 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14333
14334         * config/mcore/mcore-protos.h: Remove the prototype for
14335         mcore_setup_incoming_varargs.
14336         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14337         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14338         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14339         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14340         (TARGET_STRUCT_VALUE_RTX): Likewise.
14341         (TARGET_RETURN_IN_MEMORY): Likewise.
14342         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14343         (mcore_setup_incoming_varargs): Make it static.  Receive the
14344         first argument by reference.  Add argument second_time.
14345         (mcore_external_libcall): New.
14346         (mcore_return_in_memory): Likewise.
14347         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
14348         (PROMOTE_FUNCTION_RETURN): Likewise.
14349         (STRUCT_VALUE): Likewise.
14350         (RETURN_IN_MEMORY): Likewise.
14351         (SETUP_INCOMING_VARARGS): Likewise.
14352         (PROMOTE_PROTOTYPES): Likewise.
14353         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14354
14355 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14356
14357         * config/m32r/m32r-protos.h: Remove the prototype for
14358         m32r_setup_incoming_varargs.
14359         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
14360         (TARGET_STRUCT_VALUE_RTX): Likewise.
14361         (TARGET_RETURN_IN_MEMORY): Likewise.
14362         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14363         (m32r_return_in_memory): New.
14364         (m32r_setup_incoming_varargs): Make it static.
14365         * config/m32r/m32r.h: Remove #undef of
14366         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
14367         definitions of PROMOTE_FUNCTION_ARGS and
14368         PROMOTE_FUNCTION_RETURN.
14369         (PROMOTE_PROTOTYPES): Remove.
14370         (RETURN_IN_MEMORY): Likewise.
14371         (STRUCT_VALUE): Likewise.
14372
14373 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14374
14375         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
14376         (TARGET_STRUCT_VALUE_RTX): Likewise.
14377         (m68k_struct_value_rtx): Likewise.
14378         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
14379         STRUCT_VALUE_REGNUM.
14380         (PROMOTE_PROTOTYPES): Remove.
14381         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
14382         STRUCT_VALUE_REGNUM.
14383         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
14384         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
14385
14386 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14387
14388         * config/stormy16/stormy16.c
14389         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
14390         TARGET_BUILD_BUILTIN_VA_LIST.
14391
14392 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14393
14394         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
14395         (TARGET_STRUCT_VALUE_RTX): Likewise.
14396         (TARGET_RETURN_IN_MEMORY): Likewise.
14397         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14398         (v850_return_in_memory): Likewise.
14399         (v850_setup_incoming_varargs): Likewise.
14400         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
14401         (SETUP_INCOMING_VARARGS): Likewise.
14402         (RETURN_IN_MEMORY): Likewise.
14403         (STRUCT_VALUE): Likewise.
14404
14405 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14406
14407         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
14408         (fr30_setup_incoming_varargs): Don't use
14409         STRICT_ARGUMENT_NAMING.
14410         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
14411         (STRICT_ARGUMENT_NAMING): Likewise.
14412
14413 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14414
14415         * config/frv/frv-protos.h: Remove the prototype for
14416         frv_expand_builtin_saveregs.
14417         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
14418         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14419         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
14420         STRUCT_VALUE_REGNUM.
14421         (frv_expand_builtin_saveregs): Make it static.
14422         (frv_struct_value_rtx): New.
14423         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
14424
14425 2004-01-29  Jan Hubicka  <jh@suse.cz>
14426
14427         PR c++/12850
14428         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
14429         initial pointers.
14430         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
14431         for functions that will be only inlined.
14432         (cgraph_mark_function_to_output): Likewise.
14433         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
14434         do not clear function body.
14435         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
14436         (tree_rest_of_compilation): Reorganize the logic releasing function
14437         body to use callgraph datastructure.
14438
14439 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14440
14441         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
14442         to register_operand.
14443
14444 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14445
14446         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
14447         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
14448         match_operand expressions so that all match_dups appear
14449         lexically after their corresponding match_operands.
14450
14451 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14452
14453         * config/h8300/h8300.c (WORD_REG_USED): Use
14454         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
14455         (compute_saved_regs): Likewise.
14456         (h8300_expand_prologue): Likewise.  Allocate locals after
14457         saving registers.
14458         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
14459         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
14460         registers.
14461         (h8300_initial_elimination_offset): Adjust for the new frame
14462         layout, which swaps flips the order of locals and saved
14463         registers.
14464         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
14465         (HARD_FRAME_POINTER_REGNUM): New.
14466         (ELIMINABLE_REGS): Add an elimination rule from
14467         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
14468         (REGISTER_NAMES): Add fp.
14469         * config/h8300/h8300.md (FP_REG): Change to 11.
14470         (HFP_REG): New.
14471
14472 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14473
14474         * genrecog.c (write_node): Remove a useless local variable.
14475
14476 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14477
14478         * Makefile.in (options.c options.h): Use stamp file s-options to
14479         avoid unnecessary rebuilds.
14480         (options.o): New target listing dependencies.
14481         (gtyp-gen.h): Use stamp file s-gtyp-gen.
14482         (STAGESTUFF): Add s-gtyp-gen.
14483
14484 2004-01-28  Richard Henderson  <rth@redhat.com>
14485
14486         * ggc.h (ggc_free): Declare.
14487         * ggc-common.c (ggc_realloc): Use it.
14488         * ggc-page.c: Remove lots of inline markers.
14489         (globals): Add free_object_list.
14490         (ggc_alloc): Tidy.
14491         (ggc_free, validate_free_objects): New.
14492         (poison_pages): Provide default.
14493         (ggc_collect): Call validate_free_objects; emit markers to
14494         the debug file.
14495
14496 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14497             Jim Wilson  <wilson@specifixinc.com>
14498
14499         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
14500         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
14501         scratch pointer.
14502         (ia64_secondary_reload_class): Delete case GR_REGS.
14503         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
14504         Do not allocate a scratch register.
14505         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
14506
14507 2004-01-28  Jan Hubicka  <jh@suse.cz>
14508
14509         * gcse.c (bypass_block): Prevent edges to be unified when we are
14510         about to emit compenstation code.
14511
14512 2004-01-28  Nick Clifton  <nickc@redhat.com>
14513
14514         * config/arm/arm.c (arm_expand_builtin): Force second argument of
14515         the setcwx insn into a register.
14516
14517 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
14518
14519         * config/fp-bit.c (pack_d): When using paired doubles to implement
14520         a long double, round the high part separately.
14521         (unpack_d): Fix the case in which the high part is a power of two
14522         and the low part is a nonzero value of the opposite sign.
14523
14524 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14525
14526         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14527         (TARGET_STRUCT_VALUE_RTX): Likewise.
14528         (c4x_external_libcall): Likewise.
14529         (c4x_struct_value_rtx): Likewise.
14530         * config/c4x/c4x.h: Remove.
14531         (STRUCT_VALUE_REGNUM): Likewise.
14532         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14533
14534 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14535
14536         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
14537         (TARGET_STRUCT_VALUE_RTX): Likewise.
14538         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
14539         (STRUCT_VALUE): Likewise.
14540         (PROMOTE_PROTOTYPES): Likewise.
14541
14542 2004-01-27  Roger Sayle  <roger@eyesopen.com>
14543
14544         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
14545         CONST_INT before using INTVAL.
14546
14547 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
14548
14549         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
14550         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
14551         frame if !TARGET_BACKCHAIN.
14552         * config/s390/s390.md ("allocate_stack"): Use pattern only if
14553         TARGET_BACKCHAIN.
14554         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
14555
14556 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14557
14558         * ia64.c (ia64_function_arg): When placing HFAs in integer
14559         registers, do not special case the mode used for complex
14560         types.  Do not advance int_regs until the current register
14561         is full.
14562
14563 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
14564
14565         PR target/7297
14566         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
14567
14568 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
14569
14570         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
14571         slow, unaligned loads and stores while debugging.  Fix formatting.
14572
14573 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
14574
14575         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
14576         of computing wmode.
14577         (restore_stack_nonlocal): Same.
14578
14579 2004-01-27  Devang Patel <dpatel@apple.com>
14580
14581         * Makefile.in (dwarf2out.o): Depend on input.h
14582         * dbxout.c (dbx_debug_hooks): Add new empty hook for
14583         imported_module_or_decl.
14584         (xcoff_debug_hooks): Same.
14585         * sdbout.c (sdb_debug_hooks): Same.
14586         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
14587         * debug.c (do_nothing_debug_hooks): Same.
14588         (debug_nothing_tree_tree): New function.
14589         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
14590         * dwarf2out.c: Include input.h.
14591         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
14592         (remove_child_TAG): New function.
14593         (dwarf_tag_name): Handle DW_TAG_imported_module.
14594         (gen_subprogram_die): Equate decl number to declaration die. Do not
14595         remove all children dies while reusing declaration die for definition.
14596         Instead, selectively remove only formal parameters.
14597         (gen_variable_die): Equate variable decl to declaration die.
14598         (gen_field_die): Equate field decl to line number.
14599         (force_namespace_die): Replace it with ...
14600         (force_decl_die): ... this.
14601         (force_type_die): New function.
14602         (setup_namespace_context): Replace use of force_namespace_die() with
14603         force_decl_die().
14604         (gen_namespace_die): Same.
14605         (dwarf2out_imported_module_or_decl): New function.
14606
14607 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
14608
14609         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
14610         on CQImode and CHImode incoming arguments in register a7.
14611         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
14612         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
14613         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
14614         xtensa_copy_incoming_a7 before reload.
14615
14616 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14617
14618         * coverage.c (get_coverage_counts): Give a different message
14619         if flag_guess_branch_prob is set.
14620         * predict.c (counts_to_freqs): Return an int.
14621         (estimate_bb_frequencies): If counts_to_freqs returns zero,
14622         calculate estimates.
14623
14624 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
14625
14626         * config/iq2000/iq2000-protos.h: Remove the prototype for
14627         iq2000_setup_incoming_varargs.
14628         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14629         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14630         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14631         (TARGET_STRUCT_VALUE_RTX): Likewise.
14632         (TARGET_RETURN_IN_MEMORY): Likewise.
14633         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14634         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14635         (iq2000_return_in_memory): Likewise.
14636         (iq2000_setup_incoming_varargs): Make it static.  Receive the
14637         first argument by reference.
14638         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
14639         (PROMOTE_FUNCTION_RETURN): Likewise.
14640         (PROMOTE_PROTOTYPES): Likewise.
14641         (RETURN_IN_MEMORY): Likewise.
14642         (STRUCT_VALUE): Likewise.
14643         (SETUP_INCOMING_VARARGS): Likewise.
14644         (STRICT_ARGUMENT_NAMING): Likewise.
14645
14646 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
14647
14648         * fixinc/fixinc.c (test_test): Initialize res.
14649         (start_flexer): Initialize pz_cmd_save.
14650
14651 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14652
14653         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
14654         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
14655
14656 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14657
14658         PR 7198
14659         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
14660         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
14661         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
14662         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
14663         Possibly rename pattern for consistency.
14664         Remove ??? comments suggesting that this be done.
14665         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
14666         New patterns.
14667         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
14668         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
14669         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
14670         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
14671         Update to match.
14672
14673 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
14674
14675         * config/arm/arm.c (output_return_instruction): Only restore IP
14676         into SP if frame_pointer_needed.
14677
14678 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14679
14680         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14681         for SCmode and DCmode if ARCH32.
14682         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
14683         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
14684         if ARCH32.
14685         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
14686         if ARCH32.
14687         (BASE_OUTGOING_VALUE_REG): Likewise.
14688
14689 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14690
14691         PR target/10904
14692         PR target/13058
14693         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
14694         Forbid mode changes from SImode for lower FP regs if ARCH64.
14695
14696 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14697
14698         * Makefile.in (bt-load.o): Depend on except.h.
14699         * bt-load.c (except.h): #include.
14700         (compute_defs_uses_and_gen): If insn at end of BB can throw
14701         within this function, consider registers used by it unavailable for
14702         btr migration.
14703         (move_btr_def): If insn at end of BB can throw, insert before rather
14704         than after.
14705
14706         * flags.h (flag_btr_bb_exclusive): Declare.
14707         * toplev.c (flag_btr_bb_exclusive): New variable.
14708         (f_options): Add btr-bb-exclusive.
14709         * bt-load.c (augment_live_range): Restore old behaviour if
14710         flag_btr_bb_exclusive is set.
14711         * common.opt: Add entry for -fbtr-bb-exclusive.
14712         * opts.c (common_handle_options): Same.
14713         * doc/invoke.texi: Document -fbtr-bb-exclusive.
14714
14715         * bt-load.c (btrs_live_at_end): New variable.
14716         (compute_defs_uses_and_gen): Compute its pointed-to array.
14717         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
14718         (augment_live_range): When augmenting with a new dominator,
14719         use only its btrs_live_at_end set, but also add in the full set
14720         of the old dominator.
14721         (btr_def_live_range): Use btrs_live_at_end.
14722         (move_btr_def): Set other_btr_uses_before_def, and move new set
14723         to the end of the basic block, if appropriate.
14724         (migrate_btr_defs): Allocate and free btrs_live_at_end.
14725
14726         * bt-load.c (basic_block_freq): Remove outdated comment.
14727
14728 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
14729
14730         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
14731         (PREDICATE_CODES): Remove duplicate.
14732         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
14733         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
14734         (MASK_PROFILE_KERNEL): Adjust define.
14735
14736 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
14737
14738         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
14739         of long string literals from 32 bytes to sizeof (void *) when !-Os
14740         and to 1 with -Os.
14741
14742 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14743
14744         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
14745         constant addresses in the normal mode.
14746
14747 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14748
14749         * system.h (CHAR_BITFIELD): Delete.
14750         (BOOL_BITFIELD): New.
14751         * c-decl.c (c_scope): Use BOOL_BITFIELD.
14752         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
14753
14754 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14755
14756         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14757         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14758         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14759         (TARGET_STRUCT_VALUE_RTX): Likewise.
14760         (TARGET_RETURN_IN_MEMORY): Likewise.
14761         (arc_return_in_memory): Likewise.
14762         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
14763         (PROMOTE_FUNCTION_RETURN): Likewise.
14764         (RETURN_IN_MEMORY): Likewise.
14765         (STRUCT_VALUE): Likewise.
14766
14767 2004-01-26  Richard Henderson  <rth@redhat.com>
14768
14769         * c-parse.in (extension): Use itype.
14770         (SAVE_EXT_FLAGS): Don't allocate a tree.
14771         (RESTORE_EXT_FLAGS): Don't read a tree.
14772
14773 2004-01-26  Jan Hubicka  <jh@suse.cz>
14774
14775         * cselib.c (discard_useless_values):  Clear out value pointer pointing
14776         to datastructure to be recycled.
14777
14778 2004-01-25  Jan Hubicka  <jh@suse.cz>
14779
14780         * genextract.c (main): Do not output the memset when not checking.
14781
14782 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14783
14784         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
14785         switch statement instead of a chain of if statements.
14786
14787 2004-01-26  Jeff Law  <law@redhat.com>
14788
14789         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
14790         acute accents for Petur Runolfsson's entry.
14791
14792 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14793
14794         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
14795         (TARGET_RETURN_IN_MEMORY): Likewise.
14796         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
14797         (RETURN_IN_MEMORY): Likewise.
14798
14799 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14800
14801          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
14802          unaligned load/store into smaller loads and stores.
14803
14804 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14805
14806         * function.c (assign_parms): Do not assign
14807         long long argument to memory in prologue if
14808         is it loaded into register.
14809
14810 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14811
14812          PR middle-end/13779
14813          * expr.c (emit_group_load): split constant
14814          correctly into register components of PARALLEL insn.
14815
14816 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14817
14818         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
14819         Use adjust_address_nv directly with appropriate mode.
14820         (restore_stack_nonlocal): Ditto.
14821
14822 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14823
14824         * config/xtensa/xtensa-protos.h: Remove the prototype for
14825         xtensa_builtin_saveregs.
14826         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14827         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14828         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14829         (TARGET_STRUCT_VALUE_RTX): Likewise.
14830         (TARGET_RETURN_IN_MEMORY): Likewise.
14831         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14832         (xtensa_builtin_saveregs): Make it static.
14833         (xtensa_return_in_memory): New.
14834         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
14835         (PROMOTE_FUNCTION_RETURN): Likewise.
14836         (PROMOTE_PROTOTYPES): Likewise.
14837         (STRUCT_VALUE): Likewise.
14838         (RETURN_IN_MEMORY): Likewise.
14839         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14840
14841 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14842
14843         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
14844         (arm_setup_incoming_varargs): Likewise.
14845         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
14846
14847 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14848
14849         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
14850         (cris_setup_incoming_varargs): Likewise.
14851         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
14852
14853 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14854
14855         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
14856         (ns32k_struct_value_rtx): Likewise.
14857         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
14858         NS32K_STRUCT_VALUE_REGNUM.
14859
14860 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14861
14862         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14863         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14864         (TARGET_STRUCT_VALUE_RTX): Likewise.
14865         (arm_struct_value_rtx): Likewise.
14866         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
14867         (STRUCT_VALUE): Likewise.
14868         (STRUCT_VALUE_REGNUM): Likewise.
14869         (PROMOTE_PROTOTYPES): Likewise.
14870
14871 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14872
14873         * config/ia64/ia64-protos.h: Remove the prototype for
14874         ia64_setup_incoming_varargs and ia64_return_in_memory.
14875         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
14876         (TARGET_RETURN_IN_MEMORY): Likewise.
14877         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14878         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14879         (ia64_setup_incoming_varargs): Adjust the arguments to meet
14880         the requirement of TARGET_SETUP_INCOMING_VARARGS.
14881         (ia64_return_in_memory): Make it static.  Change the return
14882         type to bool from int.  Add an argument.
14883         (ia64_struct_value_rtx): New.
14884         * config/ia64/ia64.h: Remove commented-out definitions of
14885         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
14886         PROMOTE_PROTOTYPES.
14887         (RETURN_IN_MEMORY): Remove.
14888         (STRUCT_VALUE_REGNUM): Likewise.
14889         (STRICT_ARGUMENT_NAMING): Likewise.
14890
14891 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
14892
14893         PR target/13666
14894         * config/sparc/sparc.c (function_arg_union_value): New function.
14895         (function_arg): Use it to deal with unions.
14896         (function_value): Likewise.  Define 'regbase' only for ARCH64.
14897         Replace a conditional statement by a simpler one.
14898
14899 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
14900
14901         * config/mips/mips.c (mips16_optimize_gp): Delete.
14902         (mips_reorg): Don't call it.
14903
14904 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14905
14906         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
14907         (floatunsqihf2): Remove operand 6.
14908         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
14909         fix patterns.
14910         (ldi_conditional, ldf_conditional): Validate operands.
14911
14912 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14913
14914         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
14915         (HAVE_GAS_HIDDEN): Undefine as interim measure.
14916
14917 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14918
14919         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
14920         memory references if TARGET_EXPOSE_LDP nonzero.
14921
14922 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14923
14924         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
14925
14926 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14927
14928         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
14929         invalid operand combinations.
14930
14931 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14932
14933         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
14934         c4x_legitimate_address_p.  Fix post_modify check.
14935
14936         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
14937         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
14938
14939 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14940
14941         * config/pa/pa-protos.h: Remove the prototype for
14942         hppa_builtin_saveregs.  Add a prototype for
14943         pa_return_in_memory.
14944         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
14945         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14946         (TARGET_STRUCT_VALUE_RTX): Likewise.
14947         (TARGET_RETURN_IN_MEMORY): Likewise.
14948         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14949         (pa_struct_value_rtx): Likewise.
14950         (pa_return_in_memory): Likewise.
14951         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
14952         PA_STRUCT_VALUE_REGNUM.
14953         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
14954         (EXPAND_BUILTIN_SAVEREGS): Remove.
14955         (PROMOTE_PROTOTYPES): Likewise.
14956         (PROMOTE_FUNCTION_RETURN): Likewise.
14957
14958 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14959
14960         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
14961         (TARGET_STRUCT_VALUE_RTX): Likewise.
14962         (vax_struct_value_rtx): Likewise.
14963         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
14964         VAX_STRUCT_VALUE_REGNUM.
14965         (PROMOTE_PROTOTYPES): Remove.
14966
14967 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14968
14969         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
14970
14971 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
14972
14973         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
14974         and MIPS64 have HI/LO interlocks.  Update comment.
14975
14976 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14977
14978         * config/stormy16/stormy16-protos.h: Remove the prototype for
14979         xstormy16_setup_incoming_varargs.
14980         * config/stormy16/stormy16.c
14981         (xstormy16_setup_incoming_varargs): Remove.
14982         (xstormy16_return_in_memory): New.
14983         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14984         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14985         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14986         (TARGET_STRUCT_VALUE_RTX): Likewise.
14987         (TARGET_RETURN_IN_MEMORY): Likewise.
14988         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
14989         (PROMOTE_FUNCTION_RETURN): Likewise
14990         (PROMOTE_PROTOTYPES): Likewise
14991         (RETURN_IN_MEMORY): Likewise
14992         (STRUCT_VALUE): Likewise
14993         (SETUP_INCOMING_VARARGS): Likewise
14994
14995 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
14996
14997         * config/mips/mips.c (mips_offset_within_object_p): New function.
14998         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
14999         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
15000         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15001
15002 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15003
15004         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15005         (PROMOTE_FUNCTION_RETURN): Likewise.
15006
15007 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15008
15009         * config/mn10300/mn10300-protos.h: Remove the prototype for
15010         mn10300_builtin_saveregs.
15011         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15012         (TARGET_STRUCT_VALUE_RTX): Likewise.
15013         (TARGET_RETURN_IN_MEMORY): Likewise.
15014         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15015         (mn10300_return_in_memory): Likewise.
15016         (mn10300_builtin_saveregs): Make it static.
15017         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15018         (RETURN_IN_MEMORY): Likewise.
15019         (STRUCT_VALUE): Likewise.
15020         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15021
15022 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
15023
15024         PR bootstrap/13853
15025         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15026
15027 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15028
15029         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15030         using ccr.
15031
15032 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15033
15034         * config/i860/i860-protos.h: Remove the prototype for
15035         i860_saveregs.
15036         * config/i860/i860.c (i860_saveregs): Make it static.
15037         (i860_struct_value_rtx): New.
15038         (TARGET_STRUCT_VALUE_RTX): Likewise.
15039         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15040         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15041         I860_STRUCT_VALUE_REGNUM.
15042         (EXPAND_BUILTIN_SAVEREGS): Remove.
15043
15044 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15045
15046         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15047         (TARGET_RETURN_IN_MEMORY): Likewise.
15048         (m68hc11_struct_value_rtx): Likewise.
15049         (m68hc11_return_in_memory): Likewise.
15050         * config/m68hc11/m68hc11.h: Remove a commented-out definition
15051         of PROMOTE_PROTOTYPES.
15052         (RETURN_IN_MEMORY): Remove.
15053         (STRUCT_VALUE_REGNUM): Likewise.
15054
15055 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15056
15057         * config/mmix/mmix-protos.h: Remove the prototype for
15058         mmix_setup_incoming_varargs.
15059         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15060         (TARGET_STRUCT_VALUE_RTX): Likewise.
15061         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15062         (mmix_setup_incoming_varargs): Make it static.
15063         (mmix_struct_value_rtx): New.
15064         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15065         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15066         (STRUCT_VALUE_REGNUM): Remove.
15067         (SETUP_INCOMING_VARARGS): Likewise.
15068
15069 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15070
15071         * config/mips/mips-protos.h: Remove the prototypes for
15072         mips_setup_incoming_varargs and mips_return_in_memory.
15073         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15074         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15075         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15076         (TARGET_STRUCT_VALUE_RTX): Likewise.
15077         (TARGET_RETURN_IN_MEMORY): Likewise.
15078         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15079         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15080         (mips_setup_incoming_varargs): Match the prototype for
15081         TARGET_SETUP_INCOMING_VARARGS.
15082         (mips_return_in_memory): Make it static.  Add argument fntype.
15083         (mips_strict_argument_naming): New.
15084         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15085         (PROMOTE_FUNCTION_ARGS): Likewise.
15086         (PROMOTE_FUNCTION_RETURN): Likewise.
15087         (STRUCT_VALUE): Likewise.
15088         (RETURN_IN_MEMORY): Likewise.
15089         (SETUP_INCOMING_VARARGS): Likewise.
15090         (STRICT_ARGUMENT_NAMING): Likewise.
15091
15092 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15093
15094         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15095         (TARGET_RETURN_IN_MEMORY): Likewise.
15096         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15097         (ip2k_return_in_memory): Likewise.
15098         (ip2k_setup_incoming_varargs): Likewise.
15099         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15100         (STRUCT_VALUE): Likewise.
15101         (STRUCT_VALUE_INCOMING): Likewise.
15102         (SETUP_INCOMING_VARARGS): Likewise.
15103
15104 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15105
15106         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15107         (TARGET_RETURN_IN_MEMORY): Likewise.
15108         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15109         (avr_return_in_memory): Remove.
15110         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15111         (STRUCT_VALUE): Likewise.
15112         (STRUCT_VALUE_INCOMING): Likewise.
15113         (STRICT_ARGUMENT_NAMING): Likewise.
15114
15115 2004-01-25  Jan Hubicka  <jh@suse.cz>
15116
15117         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15118
15119 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15120
15121         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15122         (mips_regno_mode_ok_for_base_p): Declare.
15123         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15124         (FRAME_POINTER_REGNUM): Renumber to 78.
15125         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15126         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15127         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15128         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15129         (REG_MODE_OK_FOR_BASE_P): Likewise.
15130         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15131         entry for 77 to "$arg" and entry for 78 to "$frame".
15132         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15133         (mips_reg_mode_ok_for_base_p): Remove.
15134         (mips_regno_mode_ok_for_base_p): New function, derived from old
15135         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
15136         restrictions unless we're being strict.
15137         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15138
15139 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15140
15141         * c-common.h: Fix comment typos.
15142         * c-decl.c: Likewise.
15143         * cgraphunit.c: Likewise.
15144         * combine.c: Likewise.
15145         * et-forest.c: Likewise.
15146         * flow.c: Likewise.
15147         * function.c: Likewise.
15148         * ifcvt.c: Likewise.
15149         * integrate.c: Likewise.
15150         * jump.c: Likewise.
15151         * postreload.c: Likewise.
15152         * varray.c: Likewise.
15153
15154 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15155
15156         * doc/frontends.texi: Update copyright.
15157         * doc/gcov.texi: Likewise.
15158         * doc/gty.texi: Likewise.
15159         * doc/sourcebuild.texi: Likewise.
15160         * doc/standards.texi: Likewise.
15161
15162 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
15163
15164         PR target/12978
15165         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15166         Remove movstrqi_small because it conflicts with movstrqi_large.
15167
15168 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15169
15170         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15171         (TARGET_STRUCT_VALUE_RTX): Likewise.
15172         (cris_struct_value_rtx): Likewise.
15173         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15174         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15175         STRUCT_VALUE_REGNUM.
15176         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15177
15178 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
15179
15180         PR bootstrap/13848
15181         * cse.c (cse_cc_succs): Change the mode of the source expression
15182         as soon as decide we need a new mode.  Don't permit changing modes
15183         if we found a match in a successor block.
15184         (cse_condition_code_reg): Save original mode of source expression
15185         so that we know whether we have to change the mode in other
15186         insns.
15187
15188 2004-01-24  Jan Hubicka  <jh@suse.cz>
15189
15190         * emit-rtl.c (change_address, adjust_address_1, offset_address,
15191         widen_memory_access):  Return early when there is nothing to change.
15192
15193 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
15194
15195         * simplify-rtx.c (simplify_relational_operation): Don't
15196         simplify address == constant into address + -constant == 0.
15197
15198 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15199
15200         * gcc.c (process_command): Don't internationalize the
15201         Copyright message.
15202         * mips-tfile.c (main): Likewise.
15203
15204 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
15205
15206         * cse.c: (cse_cc_succs) Fix comparison warning.
15207
15208 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15209
15210         * config/h8300/h8300.md: Remove extraneous USE in expanders.
15211
15212 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15213
15214         * config/h8300/h8300-protos.h: Provide prototypes for
15215         h8300_legitimate_constant_p and h8300_legitimate_address_p.
15216         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
15217         (h8300_rtx_ok_for_base_p): Likewise.
15218         (h8300_legitimate_address_p): Likewise.
15219         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
15220         h8300_legitimate_constant_p.
15221         (RTX_OK_FOR_BASE_P): Remove.
15222         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
15223
15224 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15225
15226         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
15227         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15228         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
15229         (REG_OK_FOR_BASE_STRICT_P): Likewise.
15230         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
15231         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
15232         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
15233         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
15234
15235 2004-01-24  Jan Hubicka  <jh@suse.cz>
15236
15237         * cselib.c (remove_useless_values):  Do not access discarded values.
15238
15239 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
15240
15241         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
15242         arrays.
15243
15244 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
15245
15246         * recog.c: Fix a typo in copyright.
15247
15248 2004-01-23  Andrew Pinski  <apinski@apple.com>
15249
15250         * config/rs6000/rs6000.md (call): Fix misappiled patch.
15251         (call_value): Likewise.
15252
15253 2004-01-23  Richard Henderson  <rth@redhat.com>
15254
15255         PR opt/12941
15256         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
15257         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
15258         if SHIFT_COUNT_TRUNCATED is set.
15259
15260 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
15261
15262         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
15263         separate real and imaginary parts.
15264         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
15265
15266 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
15267
15268         PR target/13674
15269         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
15270         loading into GPR.
15271
15272 2004-01-23  Jan Hubicka  <jh@suse.cz>
15273
15274         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
15275         change.
15276
15277         * alloc-pool.c (align_four): Kill.
15278         (create_alloc_pool): Align size to eight.
15279         (free_alloc_pool, free_pool): Invalidate deallocated data.
15280
15281 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
15282
15283         PR gcc/1532
15284         * cse.c (cse_change_cc_mode): New static function.
15285         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
15286         (cse_condition_code_reg): New function.
15287         * rtl.h (cse_condition_code_reg): Declare.
15288         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
15289         * target.h (struct gcc_target): Add fixed_condition_code_regs and
15290         cc_modes_compatible.
15291         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15292         (TARGET_CC_MODES_COMPATIBLE): Define.
15293         (TARGET_INITIALIZER): Add new initializers.
15294         * targhooks.c (default_cc_modes_compatible): New function.
15295         * targhooks.c (default_cc_modes_compatible): Declare.
15296         * hooks.c (hook_bool_intp_intp_false): New function.
15297         * hooks.h (hook_bool_intp_intp_false): Declare.
15298         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15299         (TARGET_CC_MODES_COMPATIBLE): Define.
15300         (ix86_fixed_condition_code_regs): New static function.
15301         (ix86_cc_modes_compatible): Likewise.
15302         * doc/tm.texi (Condition Code): Document new hooks.
15303
15304 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15305
15306         * fixinc/inclhack.def (bad_lval): Renamed to ...
15307         (alpha_bad_lval): ... this.
15308         Removed file list.
15309         Restrict to alpha*-dec-osf*.
15310         * fixinc/fixincl.x: Regenerate.
15311         * fixinc/tests/base/dirent.h: Remove, moving test ...
15312         * fixinc/tests/base/testing.h: ... here, reflecting new name.
15313
15314 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
15315
15316         PR c/13814
15317         * c-decl.c (diagnose_mismatched_decls): Also discard a
15318         built-in if we encounter an old-style definition with the
15319         same name.
15320
15321 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
15322
15323         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
15324         set to default{32,64}.
15325
15326 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15327
15328         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
15329         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
15330
15331 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
15332             Olivier Hainque  <hainque@act-europe.fr>
15333
15334         * fold-const.c (fold_binary_op_with_conditional_arg): Only
15335         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
15336
15337 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
15338
15339         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
15340         size for minipool references.
15341
15342 2004-01-23  Roger Sayle  <roger@eyesopen.com>
15343
15344         * real.c (real_floor, real_ceil): Tweak to allow input and output
15345         arguments to overlap.
15346         (real_round): New function to implement round(3m) semantics.
15347         * real.h (real_round): Prototype here.
15348         * builtins.c (fold_builtin_round): New function to constant fold
15349         round, roundf and roundl.
15350         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
15351
15352 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
15353
15354         PR optimization/13819
15355         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
15356         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
15357         (sh_handle_sp_switch_attribute): Remove warning.
15358
15359 2003-11-30  Jan Hubicka  <jh@suse.cz>
15360
15361         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
15362
15363 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
15364
15365         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
15366         may or may not return non-NIL.
15367         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
15368         check CANNOT_CHANGE_MODE_CLASS
15369
15370 2004-01-23  Jan Hubicka  <jh@suse.cz>
15371
15372         * basic-block.h (PROP_POSTRELOAD): New macro.
15373         (CLEANUP_LOG_LINKS): New.
15374         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
15375         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
15376
15377         * cselib.c (value_pool): New.
15378         (new_cselib_val): Use pool.
15379         (cselib_init): Initialize value_pool
15380         (cselib_finish): Free pool.
15381
15382 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
15383
15384         * config/sparc/sparc.c (scan_record_type): New function.
15385         (function_arg_slotno): Use it to determine which kinds of
15386         registers the record can be passed in.
15387
15388 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
15389
15390         * config/pa/fptr.c: Fix old-style definition.
15391
15392 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
15393
15394         PR optimization/13724
15395         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
15396         represents the zero bits produced by a ZERO_EXTEND operation.
15397
15398 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15399
15400         PR optimization/13821
15401         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
15402         correctly calculate the lowpart offset of the contracted subreg.
15403
15404 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
15405
15406         * doc/invoke.texi (Optimize Options): Note that --param arguments
15407         are subject to change without notice.
15408
15409 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15410
15411         * config.gcc (mips-sgi-irix6*o32): Removed.
15412         * config/mips/iris6-o32-as.h: Likewise.
15413         * config/mips/iris6-o32-gas.h: Likewise.
15414         * config/mips/iris6-o32.h: Likewise.
15415
15416 2004-01-22  Jan Hubicka  <jh@suse.cz>
15417
15418         * cfgcleanup.c (first_pass): New static variable.
15419         (try_forward_edges):  Add work limiting check for threading.
15420         (try_crossjump_bb):  Add work limiting check for crossjumping.
15421         (try_optimize_cfg):  Maintain first pass variable.
15422
15423 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
15424
15425         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
15426         handles complex and vector modes.
15427
15428 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15429
15430         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
15431         (REG_OK_FOR_BASE_P_STRICT): Likewise.
15432         (STRICT): Likewise.
15433
15434 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15435
15436         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
15437         (genrtl_for_stmt): Remove emit_nop calls.
15438
15439 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15440
15441         PR target/13713
15442         PR target/13324
15443         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
15444         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
15445         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
15446
15447 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15448
15449         * config/arm/arm.c: Include "debug.h".
15450         (thumb_pushpop): Take two new arguments.  Add some commentary.
15451         Output frame information when pushing.
15452         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
15453         thumb_pushpop.
15454         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
15455         offset, and pass it to thumb_pushpop.  Output CFI information.
15456         (thumb_expand_prologue): Add some frame-related markers and notes.
15457
15458 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
15459
15460         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
15461         for TARGET_64BIT.
15462         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
15463         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
15464
15465 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15466             Paolo Bonzini  <bonzini@gnu.org>
15467
15468         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
15469         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
15470         * rtl.h (subreg_lsb_1): Prototype here.
15471         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
15472         sign extensions.
15473
15474 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15475
15476         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
15477         macro need not be defined if jump-tables should contain
15478         relative addresses only when -fPIC or -fPIC is in effect.
15479
15480 2004-01-22  Jan Hubicka  <jh@suse.cz>
15481
15482         * alias.c (reg_base_value): Turn into varray.
15483         (reg_base_value_size): Kill.
15484         (old_reg_base_value): New deletable varray.
15485         (alias_invariant_size): New variable.
15486         (REG_BASE_VALUE): Update to use varray.
15487         (find_base_value): Likewise.
15488         (record_set): Likewise.
15489         (record_base_value): Likewise.
15490         (memrefs_conflict_p): Likewise.
15491         (record_set): Likewise
15492         (record_base_value): Likewise.
15493         (memrefs_conflict_p): Use alias_invariant_size.
15494         (init_alias_analysis): Use varray; set alias_invariant_size;
15495         rescale other arrays to be sized by maxreg.
15496         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
15497
15498 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
15499
15500         * config/sparc/sparc.c (function_arg_slotno): Use
15501         FLOAT_TYPE_P to detect FP fields in structures.
15502         (function_arg_record_value_1): Likewise.
15503         (function_arg_record_value_2): Likewise.
15504
15505 2004-01-22  Jan Hubicka  <jh@suse.cz>
15506
15507         * function.c (allocate_struct_function): Do not initialize expr, emit
15508         and varasm.
15509         (prepare_function_start): Do it here.
15510         * c-parse.in (maybe_type_qual): Do not produce line number notes.
15511
15512 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
15513
15514         PR target/13559
15515         * config/sparc/sparc.c (function_arg_record_value_3): Revert
15516         to 'word_mode' once the first slot has been filled.
15517
15518 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
15519
15520         * config/sparc/sparc.c (function_arg_record_value_1): Fix
15521         computation of the number of integer registers required.
15522
15523 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15524
15525         * config/i386/i386.md: Simplify certain comparisons of
15526         const_int.
15527
15528 2004-01-21  Andrew Pinski  <apinski@apple.com>
15529
15530         PR target/13785
15531         * config/rs6000/rs6000.md (call_value): Force operand
15532         1 not operand 0 into a register.
15533
15534 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15535
15536         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
15537         unwind-dw2-fde.h: Update copyright.
15538
15539 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15540
15541         * pa-protos.h: Update copyright.
15542         * pa.h: Likewise.
15543         * pa.md: Likewise.
15544
15545 2004-01-21  Caroline Tice  <ctice@apple.com>
15546
15547         PR target/12308
15548         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
15549         flags register.
15550         (fix_truncdfdi2): Likewise.
15551         (fix_truncsfdi2): Likewise.
15552         (*fix_truncdi_1): Likewise.
15553         (fix_truncxfsi2): Likewise.
15554         (fix_truncdfsi2): Likewise.
15555         (fix_truncsfsi2): Likewise.
15556         (*fix_truncsi_1): Likewise.
15557         (fix_truncxfhi2): Likewise.
15558         (fix_truncdfhi2): Likewise.
15559         (fix_truncsfhi2): Likewise.
15560         (*fix_trunchi_1): Likewise.
15561
15562 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15563
15564         * alias.c, basic-block.h, c-common.c, c-common.h,
15565         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
15566         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
15567         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
15568         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
15569         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
15570         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
15571         genautomata.c, genconditions.c, genemit.c, genflags.c,
15572         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
15573         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
15574         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
15575         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
15576         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
15577         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
15578         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
15579         unwind.h, varray.c, varray.h: Update copyright.
15580
15581 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15582
15583         * config/h8300/coff.h: Update copyright.
15584         * config/h8300/elf.h: Likewise.
15585         * config/h8300/h8300-protos.h: Likewise.
15586         * config/h8300/h8300.c: Likewise.
15587         * config/h8300/h8300.h: Likewise.
15588         * config/h8300/h8300.md: Likewise.
15589
15590 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15591
15592         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
15593         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
15594         ultrix_unistd): New hacks.
15595         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
15596         ULTRIX_CONST2_CHECK): Add checks.
15597         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
15598         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
15599         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
15600         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
15601         * fixinc/tests/base/locale.h: New file.
15602         * fixinc/fixincl.x: Rebuilt.
15603
15604 2004-01-21  Andreas Jaeger  <aj@suse.de>
15605             Michael Matz  <matz@suse.de>
15606
15607         * doc/extend.texi (Extended Asm): Clarify memory clobber.
15608
15609 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15610
15611         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
15612         _Jv_RegisterClasses through a function pointer.
15613
15614 2004-01-21  Falk Hueffner  <falk@debian.org>
15615
15616         PR target/12898
15617         * config/alpha/alpha.c (alpha_emit_set_const_1): If
15618         no_new_pseudos, use gen_rtx_SET directly for SImode constants
15619         which need multiple instructions to emit.
15620
15621 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
15622
15623         * config/m32r/m32r.h (CPP_SPEC): Define.
15624
15625 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
15626
15627         * c-decl.c (merge_decls): Kill different_binding_level and
15628         different_tu arguments; simplify throughout.
15629         (duplicate_decls): Likewise.
15630         (pushdecl, merge_translation_unit_decls): Update calls to
15631         duplicate_decls.
15632
15633 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15634
15635         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
15636         $(SYSTEM_H).
15637         (print-rtl1.o): Depend on $(SYSTEM_H).
15638
15639 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
15640
15641         PR bootstrap/12730
15642         * configure.ac: Delete definition and subsitution of docdir.
15643         Add info, man, srcman and srcinfo to target hooks. Create doc/
15644         directory.
15645         * configure: Regenerate.
15646         * Makefile.in: Don't substitute docdir and delete all references
15647         throughout.
15648         (MAKEINFOFLAGS): Define.
15649         (stmp-docobjdir): Delete.
15650         (INFOFILES, MANFILES): Define.
15651         (info): Call lang.info, srcinfo and lang.srcinfo.
15652         (generated-manpages): Call lang.man, srcman and lang.srcman.
15653         (srcinfo, srcman): New rules to copy back files to source directory.
15654         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
15655         (install-man): Revamp rule.
15656         (clean): Update dvi directory.
15657         (distclean): Delete TAGS from front end directorys.
15658         (maintainer-clean): Delete all document files in source directory.
15659
15660         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
15661         (objc.srcman, objc.srcinfo): Likewise.
15662
15663 2004-01-20  Bruce Korb  <bkorb@gnu.org>
15664
15665         * fixinc/inclhack.def(math_exception): bypass only for glibc.
15666         (matherr_decl): rename & relocate as exception_structure.
15667         This fix must precede the math_exception fix.
15668
15669 2004-01-20  Roger Sayle  <roger@eyesopen.com>
15670
15671         * fold-const.c (fold_convert): Rename to fold_convert_const.
15672         (fold_convert_const): Change arguments to take a tree_code,
15673         a type and the operand/expression to be converted.  Return
15674         NULL_TREE if no simplification is possible.  Add support for
15675         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
15676         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
15677         Adjust call to fold_convert to match new fold_convert_const.
15678         Avoid modifying the tree passed to fold in-place.
15679
15680 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
15681
15682         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
15683         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
15684         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
15685
15686 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15687
15688         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
15689         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
15690         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
15691         (emit_move_sequence): Check scratch_reg first in various if statements.
15692         Extend source simplification to handle all 64-bit CONST_INTs.
15693         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
15694         frame size.
15695         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
15696         frame offset calculations.
15697         * pa.h (NEW_HP_ASSEMBLER): Add comment.
15698         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
15699         LEGITIMATE_64BIT_CONST_INT_P): Define.
15700         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
15701         any CONST_INT as legitimate during and after reload.
15702         (VAL_32_BITS_P, INT_32_BITS): Define.
15703         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
15704
15705 2004-01-20  Jan Hubicka  <jh@suse.cz>
15706
15707         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
15708         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
15709         containing hard regs are shared.
15710         (gen_hard_reg_clobber): New function.
15711         (hard_reg_clobbers): New array.
15712         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
15713         (copy_rtx): Do not copy clobbers containing hard regs.
15714         * rtl.h (gen_hard_reg_clobber): Declare.
15715
15716 2004-01-20  Jan Hubicka  <jh@suse.cz>
15717
15718         * varray.c:  Include hashtab.h
15719         (varray_descriptor): New structure.
15720         (hash_descriptor, eq_descriptor, varray_descriptor,
15721         print_statistics): New static functions
15722         (varray_init, varray_grow): Update statistics
15723         (dump_varray_statistics): New function.
15724         * varray.h (dump_varray_statistics): Declare.
15725         * toplev.c (finalize): Call it.
15726         * Makefile.in (varray.o): Add dependency.
15727
15728 2004-01-20  Jan Hubicka  <jh@suse.cz>
15729
15730         * cselib.c: Include alloc-pool.h
15731         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
15732         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
15733         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
15734         unchain_one_elt_loc_list_pool, unchain_one_value,
15735         new_cselib_val): Simplify using allocpool.
15736         (cselib_init): Initialize allocpools.
15737         (cselib_finish): Finish allocpools.
15738         * Makefile.in (cselib.o): Depend on alloc-pool.h
15739
15740 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
15741
15742         * config/mips/mips.c (mips_load_call_address): Make the call insn
15743         use $gp if it could be calling a lazy binding stub.
15744
15745 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15746
15747         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
15748         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15749         (TARGET_STRUCT_VALUE_RTX): Likewise.
15750         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
15751         (PROMOTE_FUNCTION_RETURN): Remove.
15752         (STRUCT_VALUE): Remove.
15753
15754 2004-01-20  Denis Chertykov  <denisc@overta.ru>
15755
15756         PR bootstrap/13735
15757         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
15758         register as pointer after reload.
15759
15760 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15761
15762         PR optimization/12440
15763         * loop.c: Include ggc.h.
15764         (loop_optimize): Run garbage collector between optimization of loops.
15765         * Makefile.in (loop.o): Add GGC_H dependency.
15766
15767 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
15768
15769         * gcc/config/rs6000/rs6000.c (function_arg) Handle
15770         vector register special in function without prototype.
15771         (function_arg_advance): Vector parameters get always
15772         GPRs allocated for the linux64 target.
15773
15774 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15775
15776         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
15777         not TARGET_M32RX_MASK.
15778
15779 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
15780
15781         PR target/13557
15782         * config/sparc/sparc.c (function_arg): Reorder the cases.
15783
15784 2004-01-19  Per Bothner  <per@bothner.com>
15785
15786         Move cpp_reader's line_maps field to a shared global.
15787         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
15788         and change the type to a pointer rather than a struct.
15789         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
15790         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
15791         Likewise.
15792         * cppfiles.c (validate_pch):  Likewise.
15793         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
15794         Likewise.
15795         * cpperror.c (print_location):  Likewise.
15796         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
15797         * cppinit.c (cpp_create_reader):  Handle new parameter.
15798         (cpp_destroy):  Don't free line_maps - that's no longer our job.
15799         * input.h (line_table):  New variable.
15800         * toplev.c (line_table):  Declare variable.
15801         (general_init):  Initialize line_table.
15802         * c-opts.c (c_common_init_options):  Pass line_table to
15803         cpp_create_reader.
15804         * fix-header.c (read_scan_file):  New local variable line_table.
15805         Initialize, and pass it to cpp_create_reader.
15806         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
15807         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
15808
15809 2004-01-19  Per Bothner  <per@bothner.com>
15810
15811         Implement a cache for linemap_lookup.
15812         * line-map.h (struct_line_maps):  Add cache field.
15813         * line-map.c (linemap_init):  Zero cache field.
15814         (linemap_add):  Set cache field to offset of newly allocated map.
15815         (linemap_lookup):  Use and set cache field.
15816
15817 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15818
15819         PR optimization/13567
15820         * cse.c (cse_basic_block): Call cse_insn with a non-null
15821         libcall_insn for the last SET insn of a no-confilict block.
15822
15823 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
15824
15825         * Makefile.in (target_noncanonical, program_transform_name): Use
15826         immediate define instead of deferred.
15827         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
15828         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
15829         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
15830         deferred backquote.
15831
15832 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
15833
15834         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
15835         true unconditionally.
15836         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
15837         Remove.
15838         (build_unary_op, build_modify_expr): Don't handle extended
15839         lvalues.
15840         (build_component_ref, build_conditional_expr): Call non_lvalue
15841         instead of pedantic_non_lvalue.
15842         (build_c_cast): Don't condition use of non_lvalue on pedantic.
15843         * fold-const.c (fold): Don't check pedantic directly for
15844         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
15845         passed to pedantic_non_lvalue.
15846         * doc/extend.texi: Remove documentation of extended lvalues.
15847
15848 2004-01-19  Roger Sayle  <roger@eyesopen.com>
15849
15850         PR optimization/5263
15851         * simplify-rtx.c (associative_constant_p): Delete.
15852         (simplify_associative_operation): Rewrite to linearize terms, and
15853         attempt to simplify new term against both left and right subterms.
15854         (simplify_binary_operation): Call swap_commutative_operands_p on
15855         op0 and op1, not trueop0 and trueop1.  Move the initialization of
15856         trueop0 and trueop1 down to where first needed.
15857         (simplify_relational_operation): Likewise.
15858         * rtlanal.c (commutative_operand_precedence): Also order constant
15859         operands using avoid_constant_pool_reference.
15860
15861 2004-01-19  Richard Henderson  <rth@redhat.com>
15862
15863         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
15864         don't check memory mode.
15865         (unaligned_memory_operand): Likewise.
15866         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
15867         abort for op0 not MEM.
15868
15869         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
15870         is not a reg, copy to a scratch first.
15871         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
15872         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
15873         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
15874         (reload_inqi, reload_inhi): Fix mode of op0.
15875         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
15876         reload_outhi_help): Likewise.  Use define_insn_and_split.
15877
15878         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
15879         as well as $29 dead.
15880
15881 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
15882
15883         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
15884         "tls_object" for thread-local objects.
15885         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
15886         "#tls" for thread-local sections.
15887         * configure.ac (thread-local checks): Specify --fatal-warnings in
15888         every binutils-specific checks.  For sparc*-*-*, test whether the
15889         OS is Solaris and the tools are native and act accordingly.
15890         * configure: Rebuild.
15891
15892 2004-01-19  Jeff Law  <law@redhat.com>
15893
15894         * contrib.texi: Update Paolo Carlini's entry.  New entries for
15895         Jerry Quinn and Petur Runolfsson.
15896
15897 2004-01-19  Roger Sayle  <roger@eyesopen.com>
15898
15899         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
15900         size, don't use the larger zero-extending loads.
15901
15902 2004-01-19  Richard Henderson  <rth@redhat.com>
15903
15904         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
15905         * alpha.md (UNSPEC_NT_LDA): Remove.
15906         (UNSPEC_CVTLQ, cvtlq): New.
15907         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
15908         (extendsidi2_fix): Remove.
15909         (extendsidi2 splitter): Use cvtlq.
15910         (extendsidi2 fp peepholes): Remove.
15911         (cvtql): Use SFmode instead of SImode.
15912         (fix_trunc?fsi): Update to match.
15913         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
15914         (movsi): Rename from movsi_nofix, remove f alternatives.
15915         (movsi_nt_vms): Similarly.
15916         (movsi_fix, movsi_nt_vms_fix): Remove.
15917         (nt_lda): Remove.
15918         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
15919
15920 2004-01-19  Jan Hubicka  <jh@suse.cz>
15921
15922         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
15923         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
15924         list.
15925         (cgraph_remove_unreachable_nodes): New function
15926         (cgraph_decide_inlining_of_small_function): Fix pasto.
15927         (cgraph_decide_inlining_incrementally): Fix pasto.
15928         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
15929
15930 2004-01-19  Steven Bosscher  <stevenb@suse.de>
15931
15932         * gengtype.c (header_file): Make it static.
15933         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
15934         * gengtype.h (header_file): No longer extern.
15935
15936 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15937
15938         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
15939         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
15940         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
15941
15942 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15943
15944         * stmt.c (HAVE_casesi): Define it not already defined.
15945         (HAVE_tablejump): Likewise.
15946         (expand_end_case_type): Resort to the binary tree method if
15947         neither casesi or tablejump is available.
15948
15949 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
15950
15951         * final.c (final_scan_insn): Make non-static again.
15952         * output.h (final_scan_insn): Re-add prototype.
15953         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
15954         to final_scan_insn call.
15955         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
15956         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
15957         * config/pa/pa.c (output_lbranch, output_call): Likewise.
15958         * config/sh/sh.c (print_slot): Likewise.
15959         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
15960         (output_sibcall, sparc_flat_function_epilogue): Likewise.
15961
15962 2004-01-18  Jan Hubicka  <jh@suse.cz>
15963
15964         * basic-block.h (try_redirect_by_replacing_jump): Declare.
15965         * cfgcleanup.c (try_optimize_cfg): Use it.
15966         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
15967         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
15968         Kill hack.
15969         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
15970
15971         Revert:
15972         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15973
15974                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
15975                 even after reload, just don't remove the actual jump tables.
15976
15977 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15978
15979         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
15980
15981 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15982
15983         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
15984         the size of a pointer in bytes.
15985
15986 2004-01-18  Roger Sayle  <roger@eyesopen.com>
15987
15988         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
15989         live "next" variable, which could lead to an infinite loop.
15990
15991 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
15992
15993         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
15994         block.
15995
15996         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15997         Check for NULL in the chain and remove repeated code.
15998
15999 2004-01-18  Jan Hubicka  <jh@suse.cz>
16000
16001         * coverage.c (checksum_string): Rename to ...
16002         (coverage_checksum_string): ... this one, Use crc32_string; recognize
16003         names containing random number and zero the number out in order to get
16004         match.
16005
16006 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16007
16008         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16009
16010 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16011
16012         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16013         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16014         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16015         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16016         doc/trouble.texi: Remove trailing whitespace.
16017
16018 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16019
16020         PR target/7618
16021         * config/mips/mips.c: Include cfglayout.h.
16022         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16023         (mips_unspec_offset_high): Add temporary register argument.
16024         (mips_load_call_address): New function, split out from...
16025         (mips_expand_call): ...here.
16026         (mips_output_cplocal): New function.
16027         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16028         (mips_emit_loadgp): New function, split out from...
16029         (mips_expand_prologue): ...here.
16030         (mips_output_mi_thunk): New function.
16031
16032 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
16033
16034         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16035         mcpu32): Remove redundant checks for implied target predefines.
16036
16037 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
16038
16039         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16040         Return type is unsigned int not int.
16041         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16042         Likewise.
16043
16044 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16045
16046         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16047         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16048         "GNU/Linux" and "Microsoft Windows" terminology.
16049
16050 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16051
16052         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16053         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16054         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16055         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16056         @smallexample instead of @example.
16057
16058 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
16059
16060         * objc/objc-act.c (build_objc_method_call): Use target
16061         hooks instead of macros to determine if ..._stret
16062         dispatchers should be used (NeXT runtime only).
16063
16064 2004-01-17  Roger Sayle  <roger@eyesopen.com>
16065
16066         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16067         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16068
16069 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16070
16071         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16072         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16073         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16074         macros.
16075         * reload1.c (emit_reload_insns): Use them.
16076         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16077         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16078         for NULL PATTERN.
16079
16080 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16081
16082         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16083         (final_scan_insn): Update to take an additional SEEN argument.  Emit
16084         a line note after the prologue.  Make static.
16085         (line_note_exists): Remove.
16086         (final): Don't initialize line_note_exists.  Update call to
16087         final_scan_insn.
16088         * output.h (final_scan_insn): Remove prologue.
16089         * function.c (set_insn_locators): Update comment.
16090         (thread_prologue_and_epilogue_insns): Add a comment.
16091
16092 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
16093
16094         PR target/10781
16095         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16096         Prototype.
16097         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16098         New function.
16099         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16100         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16101         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16102
16103 2004-01-17  Jan Hubicka  <jh@suse.cz>
16104
16105         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16106         commit.
16107
16108         * toplev.c (HAVE_conditional_execution): Provide default.
16109         (rest_of_handle_reorder_blocks): For conditional_execution target
16110         update liveness once after all transformations
16111         (rest_of_compilation): Do crossjumping before ce3.
16112
16113 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
16114
16115         * alias.c (new_alias_set): Mark last_alias_set for PCH.
16116         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16117         for PCH.
16118         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16119         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16120         (get_TOC_alias_set): Mark 'set' for PCH.
16121
16122 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16123
16124         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16125         even after reload, just don't remove the actual jump tables.
16126
16127 2004-01-17  J. Brobecker  <brobecker@gnat.com>
16128
16129         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16130         Remove checks for is_ada() and TREE_UNSIGNED.
16131         (subrange_type_die): Emit a byte_size attribute if the subrange
16132         type size is different from the base type size.
16133         (modified_type_die): Replace call to is_ada_subrange_type() by
16134         call to is_subrange_type().
16135
16136 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
16137
16138         * config/sh/sh.c: Include ggc.h.
16139
16140 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16141
16142         * Makefile.in (MD5_H): New.
16143         (fold-const.o): Depend on md5.h.
16144         (dwarf2out.o): Likewise.
16145         (cppfiles.o): Likewise.
16146         * cppfiles.c: Include md5.h.
16147         (should_stack_file): Check against list read from PCH file.
16148         (struct pchf_data): New.
16149         (pchf): New variable.
16150         (struct pchf_adder_info): New.
16151         (pchf_adder): New.
16152         (pchf_save_compare): New.
16153         (_cpp_save_file_entries): New.
16154         (_cpp_read_file_entries): New.
16155         (struct pchf_compare_data): New.
16156         (pchf_compare): New.
16157         (check_file_against_entries): New.
16158         * cpphash.h (_cpp_save_file_entries): Prototype.
16159         (_cpp_read_file_entries): Prototype.
16160         * cpppch.c (cpp_write_pch_state): Write the list of headers.
16161         (cpp_read_state): Read the list of headers.
16162
16163 2004-01-17  Jan Hubicka  <jh@suse.cz>
16164
16165         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16166         builtin_expect specially.
16167         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16168         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16169         * invoke.texi (max-inline-insns-single): Set to 100.
16170         (large-function-insns): Set to 3000.
16171
16172 2004-01-16  Eric Christopher  <echristo@redhat.com>
16173             Chandrakala Chavva <cchavva@redhat.com>
16174
16175         * cppcharset.c (one_iso88591_to_utf8): New function.
16176         (convert_iso88591_utf8): Ditto. Use.
16177         (conversion_tab): Use.
16178         (_cpp_input_to_utf8): New function.
16179         (_cpp_init_iconv_buffer): Ditto.
16180         (_cpp_close_iconv_buffer): Ditto.
16181         * cpphash.h: Prototype new functions.
16182         (cpp_buffer): Add input_cset_desc.
16183         * cppinit.c: Add input_charset default.
16184         * cpplib.c (cpp_push_buffer): Support init and
16185         close of iconv.
16186         * cpplib.h (cpp_options): Add input_charset.
16187
16188 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16189
16190         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16191         * config/alpha/unicosmk.h: Remove a commented-out definition
16192         of ASM_OUTPUT_SECTION_NAME.
16193         * config/stormy16/stormy16.h: Likewise.
16194
16195 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16196
16197         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16198         (alpha___extern_prefix_sys_stat): ... this.
16199         Apply to <sys/mount.h>, too.
16200         Tweak to match more variations.
16201         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16202
16203         * fixinc/inclhack.def (alpha___extern_prefix,
16204         alpha___extern_prefix_standards): New hacks to obey
16205         __PRAGMA_EXTERN_PREFIX.
16206         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16207         test.
16208         * fixinc/tests/base/standards.h: Likewise.
16209
16210         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16211         variations.
16212         New testcase.
16213         * fixinc/tests/base/pthread.h: Handle it.
16214
16215         * fixincl/inclhack.def (bad_lval): Sort file list.
16216         Add many missing files up to Tru64 UNIX V5.1B.
16217         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
16218         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
16219         order.
16220
16221         * fixinc/fixincl.x: Regenerate.
16222
16223 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
16224
16225         * version.c (version_string): Change to 3.5.0.
16226         * doc/include/gcc-common.texi (version-GCC): Likewise.
16227
16228 2004-01-16  Jan Hubicka  <jh@suse.cz>
16229
16230         * i386.md (load_tp_di): Fix pasto.
16231
16232         PR opt/13608
16233         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
16234
16235         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
16236         pp_c_character_constant, pp_c_floating_constant,
16237         pp_c_additive_expression, pp_c_shift_expression,
16238         pp_c_equality_expression, pp_c_and_expression,
16239         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
16240         pp_c_logical_and_expression): Remove inline modifier.
16241         * dwarf2out.c (get_AT): Likewise.
16242         * et-forest.c (et_splay): Likewise.
16243         * ra.h (ra_alloc, ra_calloc): Likewise
16244
16245 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16246
16247         * config/frv/frv-protos.h: Fix comment formatting.
16248         * config/frv/frv.c: Likewise.
16249         * config/frv/frv.h: Likewise.
16250         * config/frv/frv.md: Likewise.
16251         * config/frv/frvbegin.c: Likewise.
16252         * config/frv/frvend.c: Likewise.
16253
16254 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16255
16256         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
16257         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
16258         LINKER_DOES_NOT_WORK_WITH_DWARF2.
16259         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
16260
16261 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
16262
16263         PR 11864
16264         * postreload.c (reload_cse_simplify_operands): Don't remove
16265         implicit extension from LOAD_EXTEND_OP.
16266
16267 2004-01-16  Jan Hubicka  <jh@suse.cz>
16268
16269         PR opt/11350
16270         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
16271         after reload.
16272         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
16273         rtl_try_redirect_by_replacing_branch): Likewise.
16274
16275 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
16276
16277         PR pch/13689
16278         * alias.c (struct alias_set_entry): Mark for GC.
16279         (alias_sets): Make static, mark for GC.
16280         (record_alias_subset): Use GC to allocate alias structures.
16281         * varray.c (element): Make generic varrays GCed.
16282
16283         PR pch/13361
16284         * c-typeck.c (constructor_asmspec): Delete.
16285         (struct initializer_stack): Delete field 'asmspec'.
16286         (start_init): Delete saving of asmspec.
16287         (finish_init): Don't update constructor_asmspec.
16288         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16289         * stmt.c (expand_asm): Duplicate strings from tree.
16290         (expand_asm_operands): Likewise.
16291         * tree.c (tree_size): Update computation of size of STRING_CST.
16292         (make_node): Don't make STRING_CST nodes.
16293         (build_string): Allocate string with tree node.
16294         * tree.def (STRING_CST): Update comment.
16295         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16296         (tree_string): Place contents of string in tree node.
16297         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16298         from tree.
16299
16300         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
16301         altivec operands.
16302
16303 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16304
16305         * c-common.h: Fix comment formatting.
16306         * c-cppbuiltin.c: Likewise.
16307         * c-pragma.c: Likewise.
16308         * calls.c: Likewise.
16309         * collect2.c: Likewise.
16310         * cppcharset.c: Likewise.
16311         * cpptrad.c: Likewise.
16312         * dbxout.c: Likewise.
16313         * defaults.h: Likewise.
16314         * dwarf2out.c: Likewise.
16315         * fold-const.c: Likewise.
16316         * genautomata.c: Likewise.
16317         * genconditions.c: Likewise.
16318         * genflags.c: Likewise.
16319         * gengtype.c: Likewise.
16320         * integrate.c: Likewise.
16321         * loop.c: Likewise.
16322         * predict.c: Likewise.
16323         * sdbout.c: Likewise.
16324
16325 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
16326
16327         * config/ia64/ia64.md (*movti_internal): C output template
16328         extracted to ia64.c.
16329         (*movti_internal_reg): Delete.
16330         (reload_inti, reload_outti): Use the correct mode on operand 2
16331         in the first place, don't fix it up in the output template.
16332         (movtf, reload_ointf, reload_outtf): New expanders.
16333         (*movtf_internal): New define_insn_and_split.
16334         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
16335         make static; do not hand TFmode CONST_DOUBLEs to split_double.
16336         (ia64_split_tmode_move): New function, body mostly pulled
16337         from ia64.md:*movti_internal.
16338         (ia64_function_arg_words): New function, extracted common
16339         logic from ia64_function_arg et seq.
16340         (ia64_function_arg_offset): Likewise.  Handle correctly the
16341         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
16342         (ia64_function_arg, ia64_function_arg_partial_nregs)
16343         (ia64_function_arg_advance): Use ia64_function_arg_words and
16344         ia64_function_arg_offset.
16345         (ia64_function_value): TCmode does not go in float regs.
16346         (ia64_secondary_reload_class): Also handle TFmode.
16347         * config/ia64/ia64-protos.h: Remove prototype for
16348         ia64_split_timode; add prototype for ia64_split_tmode_move.
16349
16350 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16351
16352         * Makefile.in (MAINT): Make it an immediate assignment.
16353
16354 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16355
16356         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
16357
16358 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16359
16360         * config/h8300/coff.h: Replace Hitachi with Renesas.
16361         * config/h8300/elf.h: Likewise.
16362         * config/h8300/h8300-protos.h: Likewise.
16363         * config/h8300/h8300.c: Likewise.
16364         * config/h8300/h8300.h: Likewise.
16365         * config/h8300/h8300.md: Likewise.
16366         * config/h8300/lib1funcs.asm: Likewise.
16367
16368 2004-01-15  Andrew Pinski  <apinski@apple.com>
16369
16370         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
16371         around it.
16372
16373 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16374
16375         * config/h8300/h8300.c (h8300_return_in_memory): New.
16376         (TARGET_STRUCT_VALUE_RTX): Likewise.
16377         (TARGET_RETURN_IN_MEMORY): Likewise.
16378         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
16379         (RETURN_IN_MEMORY): Likewise.
16380
16381 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16382
16383         PR optimization/13375
16384         * gcse.c (handle_avail_expr): Just return if the source is not a
16385         single set.
16386
16387 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16388             Daniel Jacobowitz  <drow@mvista.com>
16389
16390         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
16391         (EQUIV): Define.
16392         (ARM_FUNC_ALIAS): New macro.
16393         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
16394         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
16395
16396 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16397
16398         PR optimization/12372
16399         * calls.c (expand_call): Add call_fusage data for stack arguments in
16400         constant calls.
16401
16402 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
16403
16404         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
16405         (rs6000_elf_declare_function_name): Formatting.
16406         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
16407
16408 2004-01-15  Jan Hubicka  <jh@suse.cz>
16409
16410         PR bootstrap/13692
16411         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
16412         previous patch.
16413
16414 2004-01-15  Richard Henderson  <rth@redhat.com>
16415
16416         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
16417         integer regs of the same call-savedness.
16418
16419 2004-01-15  Andreas Schwab  <schwab@suse.de>
16420
16421         PR bootstrap/13562
16422         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
16423         status for NOTB/NOTW/NEGW methods.
16424
16425 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16426
16427         * doc/invoke.texi: Update dump file names.  Fix a typo.
16428
16429 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16430
16431         * builtins.c (expand_builtin_va_end): Don't use
16432         EXPAND_BUILTIN_VA_END.
16433         * system.h (EXPAND_BUILTIN_VA_END): Poison.
16434         * config/d30v/d30v.h: Remove a commented-out definition of
16435         EXPAND_BUILTIN_VA_END.
16436         * config/stormy16/stormy16.h: Likewise.
16437
16438 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16439
16440         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
16441         * targhooks.c (default_struct_value_rtx): Don't use
16442         STRUCT_VALUE_INCOMING_REGNUM.
16443
16444 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16445
16446         PR bootstrap/12744
16447         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
16448         GENINSRC and not parsedir.  Define srcextra as a langhook.
16449         * configure: Regenerate.
16450         * Makefile.in: Suppress default .l.c rule.  Don't substitute
16451         parsedir and delete all references throughout.  Conditionally define
16452         rule for srcextra dependent on GENINSRC.
16453         (stmp-docobjdir): Delete.
16454         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
16455         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
16456         and gengtype-yacc.h back to source directory.
16457         (maintainer-clean): Delete all parse files in source directory.
16458         (distclean): Delete generated files.
16459
16460         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
16461         (objc-parse.c, objc-parse.y): Don't use parsedir.
16462         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
16463         directory if requested.
16464         (po-generated): Don't use parsedir.
16465         (objc.maintainer-clean): Delete above files from source directory.
16466
16467 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16468
16469         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
16470
16471 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16472
16473         * doc/tm.texi: Replace RETURN_IN_MEMORY with
16474         TARGET_RETURN_IN_MEMORY.
16475
16476 2004-01-15  Jan Hubicka  <jh@suse.cz>
16477
16478         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
16479         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
16480         functions accepting SSE arguments
16481         (function_arg): Warn only when asked to warn.
16482         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
16483
16484 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
16485
16486         * c-parse.in (stmts_and_decls): Make label at end of compound
16487         statement a hard error.
16488
16489 2004-01-14  Jan Hubicka  <jh@suse.cz>
16490
16491         * cgraph.c (create_edge): Use local.redefined_extern_inline.
16492         * cgraph.h (cgraph_local_info): Sort fields by size; add
16493         redefined_extern_inline
16494         (cgraph_global_info): Sort fields by size.
16495         (cgraph_node): Likewise.
16496         * cgraphunit.c (cgraph_finalize_function): Se
16497         local.redefined_extern_inline on redefinition.
16498         (cgraph_analyze_function): Use it; fix formating.
16499
16500 2004-01-14  Jan Hubicka  <jh@suse.cz>
16501
16502         PR c++/10776
16503         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
16504         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
16505         bitmaps
16506         (cache_size): New variable
16507         (add_dependence): Update use; canonize early memory locations
16508         (sched_analyze_1): Likewise.
16509         (sched_analyze_2): Likewise.
16510         (init_dependency_caches): Initialize bitmaps.
16511         (free_dependency_caches): Free bitmaps
16512
16513 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16514
16515         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
16516         targetm.calls.strict_argument_naming().
16517         * target.h: Likewise.
16518
16519 2004-01-14  Richard Henderson  <rth@redhat.com>
16520
16521         PR debug/13231
16522         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
16523         instructions.
16524
16525 2004-01-14  Richard Henderson  <rth@redhat.com>
16526
16527         PR c++/12491
16528         * except.c (struct eh_region): Add u.fixup.resolved.
16529         (resolve_one_fixup_region): Split out from ...
16530         (resolve_fixup_regions): ... here.
16531
16532 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16533
16534         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
16535
16536 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16537
16538         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
16539         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
16540         (STRUCT_VALUE): Remove.
16541
16542 2004-01-14  Steven Bosscher  <stevenb@suse.de>
16543
16544         * system.h: Poison PROMOTED_MODE
16545         * integrate.c (expand_inline_function): Don't mention the
16546         PROMOTED_MODE.
16547         * loop.c (update_giv_derive): Same.
16548         * tree.h (DECL_RTL): Same.
16549
16550 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
16551
16552         PR target/9365
16553         * sh.c (gen_block_redirect): Add special handling of RETURN.
16554         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
16555         far branch target (i.e. it's a return).
16556
16557 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16558
16559         * regrename.c (find_oldest_value_reg): Fix a warning.
16560
16561 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
16562
16563         PR bootstrap/12527
16564         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
16565         Move linux-gas.h and linux-elf.h before aout.h.
16566         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
16567         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
16568
16569 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16570
16571         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
16572         (CONST_INT, VOIDmode, ...).
16573
16574 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
16575
16576         * regrename.c (find_oldest_value_reg): If the replacement uses
16577         multiple hard registers, check that all of them are in CLASS.
16578
16579 2004-01-14  Jan Hubicka  <jh@suse.cz>
16580
16581         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
16582         impossible.
16583
16584 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
16585
16586         * Makefile.in: Define MAINT from --enable-maintainer-mode.
16587
16588 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
16589
16590         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
16591         Calculate always vrsave_mask if TARGET_ALTIVEC.
16592         (rs6000_emit_prologue): Emit code for vrsave
16593         only if TARGET_ALTIVEC_VRSAVE.
16594         (rs6000_emit_epilogue): Likewise.
16595
16596 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
16597
16598         * config/sparc/sparc.md (tie_add32): Fix pasto.
16599         (tie_add64): Likewise.
16600
16601 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16602
16603         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
16604
16605 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16606
16607         * config/iq2000/iq2000-protos.h: Fix comment formatting.
16608         * config/iq2000/iq2000.c: Likewise.
16609         * config/iq2000/iq2000.md: Likewise.
16610
16611 2004-01-14  J. Brobecker  <brobecker@gnat.com>
16612
16613         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
16614         (subrange_type_die): Add handle for nameless subrange types.
16615
16616 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16617
16618         * config/h8300/h8300-protos.h: Replace do_movsi with
16619         h8300_expand_movsi.
16620         * config/h8300/h8300.c (do_movsi): Change to
16621         h8300_expand_movsi.
16622         * config/h8300/h8300.md (movsi): Replace do_movsi with
16623         h8300_expand_movsi.
16624         (movsf): Likewise.
16625
16626 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16627
16628         * config/h8300/h8300.c (dosize): Change to
16629         h8300_emit_stack_adjustment.  Update callers.
16630
16631 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16632
16633         * config/h8300/h8300.md (movstrictqi): Add an alternative with
16634         the source being post_inc.  Tighten the predicate for the
16635         destination to register_operand.
16636         (movstricthi): Likewise.
16637
16638 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16639
16640         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
16641         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
16642         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
16643
16644 2004-01-14  Jan Hubicka  <jh@suse.cz>
16645
16646         Partial fix PR c++/12850
16647         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
16648         at zero nest level.
16649
16650 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
16651
16652         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
16653         pseudo-register.
16654
16655 2004-01-13  Devang Patel <dpatel@apple.com
16656
16657         PR debug/7078
16658         * dbxout.c (dbxout_symbol_name): Emit mangled names for
16659         NAMESPACE_DECL memebers.
16660
16661 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
16662
16663         PR c++/12709
16664         * c-common.c (finish_fname_decls): Use the chain only if the
16665         tree is an expr_stmt.
16666
16667 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
16668
16669         * rtl.def: Add comment about new option in automata_option.
16670
16671         * genautomata.c (PROGRESS_OPTION): New macro.
16672         (progress_flag): New global variable.
16673         (gen_automata_option): Process `progress'.
16674         (transform_insn_regexps, check_unit_distributions_to_automata,
16675         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
16676         expand_automata, write_automata): Print about the progress only if
16677         progress_flag.  Remove fflush.
16678         (initiate_automaton_gen): Process command line flag `-progress'.
16679
16680         * doc/md.texi: Describe the new option.
16681
16682 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16683
16684         * cfg.c (dump_bb): Dump entry edges.
16685
16686 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
16687
16688         * arm.c (thumb_legitimate_address_p): Only allow constant pool
16689         references from SImode.
16690         * arm.md (thumb_movhi_insn): Don't allow minipool references.
16691
16692 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16693
16694         * system.h (TEXT_SECTION): Poison.
16695         * varasm.c (text_section): Don't use TEXT_SECTION.
16696         * config/sh/sh.c (sh_file_start): Fix a comment typo.
16697         * doc/tm.texi (TEXT_SECTION): Remove.
16698
16699 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
16700
16701         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
16702
16703 2004-01-12  James E Wilson  <wilson@specifixinc.com>
16704
16705         * unwind-libunwind.c: Delete.
16706
16707 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
16708
16709         PR 13656
16710         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
16711         oldtype is set, set *newtypep or *oldtypep too.  Do not set
16712         them at the very end.
16713         (validate_proto_after_old_defn): Restructure for comprehensibility;
16714         make error messages clearer.
16715
16716 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
16717
16718         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
16719         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
16720         * varray.c: No need to prototype error.
16721         (varray_check_failed): Wrap long string onto two lines.
16722         (varray_underflow): New function.
16723
16724 2004-01-13  Steven Bosscher  <stevenb@suse.de>
16725
16726         PR c++/13376
16727         * function.h (struct function): Kill `name' field.
16728         (current_function_name): Make it an extern function.
16729         * function.c (current_function_name): New function.
16730         * graph.c: Update all uses of current_function_name.
16731         * gcse.c: Likewise.
16732         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
16733         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
16734         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
16735         instead of a strcmp with "main".
16736
16737 2004-01-13  Jan Hubicka  <jh@suse.cz>
16738
16739         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
16740
16741         * cgraphunit.c (cgraph_optimize_function):  Always do
16742         optimize_inline_calls when there is always_inline callee.
16743         (cgraph_decide_inlining): Fix formating.
16744         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
16745         functions.
16746         (expand_call_inline): Likewise.
16747         * toplev.h (sorry): Fix prototype.
16748
16749 2004-01-12  Roger Sayle  <roger@eyesopen.com>
16750
16751         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
16752         conditional jumps that drop through to unconditional jumps or the
16753         end of the sequence.
16754
16755 2004-01-13  Jan Hubicka  <jh@suse.cz>
16756
16757         * alias.c (new_alias_set): Construct the alias_set varray.
16758         (init_alias_once): Don't do it here.
16759
16760 2004-01-12  Marc Espie <espie@openbsd.org>
16761
16762         * system.h: handle YYBYACC like YYBISON.
16763
16764 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
16765
16766         PR target/10847
16767         * config.gcc: No longer includes conflicting header sparc/sol2.h when
16768         building on sparc64-*-openbsd*.
16769
16770 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
16771
16772         PR debug/13539
16773         * dbxout.c (dbxout_type): Protected inheritance is not
16774         private but protected.
16775
16776 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
16777
16778         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
16779
16780 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
16781
16782         PR optimization/12508.
16783         * combine.c (try_combine): Remove a dead set in a parallel
16784         even if its destination is a subreg.
16785
16786         Revert:
16787         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
16788         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
16789         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
16790
16791 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
16792
16793         * real.c: Update copyright date.
16794         * emit-rtl.c: Likewise.
16795         * rtl.h: Likewise.
16796         * dwarf2out.c: Likewise.
16797         * config/rs6000/darwin-ldouble.c: Likewise.
16798         * config/rs6000/rs6000.md: Likewise.
16799
16800 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
16801
16802         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
16803         TFmode to SImode libfuncs.
16804
16805 2004-01-12  Roger Sayle  <roger@eyesopen.com>
16806
16807         PR middle-end/11397
16808         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
16809
16810 2004-01-12  Jan Hubicka  <jh@suse.cz>
16811
16812         PR opt/12826
16813         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
16814         stored.
16815
16816         PR opt/12863
16817         * cfgcleanup.c (label_is_jump_target_p): Move to...
16818         * rtlanal.c (label_is_jump_target_p): ... here.
16819         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
16820         edges unified with branch edges.
16821
16822 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
16823
16824         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
16825         high word of an integral CONST_DOUBLE.
16826
16827 2004-01-12  Paul Brook  <paul@codesourcery.com>
16828
16829         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
16830
16831 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
16832
16833         PR target/13585
16834         * sh-protos.h (check_use_sfunc_addr): Declare.
16835         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
16836         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
16837
16838 2004-01-12  Jan Hubicka  <jh@suse.cz>
16839
16840         * alias.c:  Invlude varray.h
16841         (alias_sets): Turn into varray.
16842         (get_alias_set_entry): Use VARRAY; mark inline.
16843         (mems_in_disjoint_alias_sets_p): Mark inline.
16844         (record_alias_subset): Use varray.
16845         (init_alias_once): Initialize varray.
16846         (new_alias_set): Grow array.
16847         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
16848
16849 2004-01-12  Jan Hubicka  <jh@suse.cz>
16850
16851         Partial fix for PR opt/10776 II
16852         * cselib.c: Include params.h
16853         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
16854         locations.
16855         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
16856         * Makefile.in (cselib.o): Depend on params.h
16857
16858 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
16859
16860         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
16861         simplify_unary_operation if the operand has a known mode.
16862
16863 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
16864
16865         PR target/13534
16866         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
16867         predicate to handle 'ld' conform addresses.
16868         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
16869         contraint.
16870         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
16871         are memory contraints.
16872         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
16873         New prototype.
16874         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
16875         Change 'o' to 'Y' constraint.
16876         (*movdf_softfloat64): Ditto.
16877
16878 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
16879
16880         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
16881         brace-enclosed syntax in all C output statements.
16882
16883 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
16884
16885         PR target/13401
16886         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
16887         Objective-C language type value is 14.
16888
16889 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
16890
16891         PR c/12148
16892         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
16893         `int' in a number of places to make sure we always have a SImode
16894         and not a HImode.  Add a 'L' suffix to a number of constants.
16895
16896 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16897
16898         * pa.c: Don't include obstack.h.
16899
16900         * pa.md: Correct constraint in pattern for loading PIC label address.
16901
16902 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
16903
16904         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
16905          before defining.
16906
16907 2004-01-11  Steven Bosscher  <stevenb@suse.de>
16908
16909         PR fortran/9972
16910         * toplev.c (rest_of_handle_inline): Also consider functions
16911         for deferral if the language is GNU F77.
16912
16913 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
16914
16915         * c-decl.c (diagnose_arglist_conflict): Add missing space to
16916         diagnostic messages.
16917
16918 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
16919
16920         PR middle-end/13392
16921         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
16922         to drop through label.  Don't fall back to SCC even when conditional
16923         jump has not been found.
16924
16925 2004-01-11  Jan Hubicka  <jh@suse.cz>
16926
16927         * invoke.texi: Fix syntax error in previous patch.
16928
16929         Partial fix for PR opt/10776
16930         * Makefile.in (reload.o): Include param.h
16931         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
16932         * reload.c: Include params.h.
16933         (find_equiv_reg): Work limiting check.
16934         * invoke.texi: Document.
16935
16936 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
16937
16938         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
16939         out-of-bounds accesses to string constants.  Simplify mips16
16940         case accordingly.
16941
16942 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
16943
16944         PR optimization/13469
16945         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
16946         reload_cse_regs (-fnon-call-exceptions only).
16947
16948 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
16949
16950         * config/mcore/lib1.asm: Fix comment formatting.
16951         * config/mcore/mcore-elf.h: Likewise.
16952         * config/mcore/mcore.c: Likewise.
16953         * config/mcore/mcore.h: Likewise.
16954         * config/mcore/mcore.md: Likewise.
16955
16956 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
16957
16958         * c-decl.c (duplicate_decls): Break apart into...
16959         (diagnose_arglist_conflict, validate_proto_after_old_defn)
16960         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
16961         ... these new functions.  Restructure for comprehensibility.
16962         Remove various archaic special cases.  Always report the
16963         location of the previous declaration when a diagnostic is issued.
16964         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
16965         (match_builtin_function_types): Delete unnecessary forward declaration.
16966
16967 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
16968
16969         * genautomata.c (make_automaton, NDFA_to_DFA):
16970         Print progress bars with '.' characters instead of '*'.
16971         (build_automaton): Change notes to match.
16972
16973 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
16974
16975         * config/m32r/m32r.md: Use define_constants for unspec and
16976         unspec_volatile.
16977
16978 2004-01-10  Jan Hubicka  <jh@suse.cz>
16979
16980         PR opt/11635
16981         * expr.c (expand_expr_real):  More curefully expand union casts.
16982
16983 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
16984
16985         * config/m32r/m32r.md (flush_icache): Use 1 for
16986         unspec_volatile.
16987
16988 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
16989             James E Wilson  <wilson@specifixinc.com>
16990
16991         PR debug/12860
16992         * dbxout.c (dbxout_symbol): Remove initialization of
16993         current_sym_code, current_sym_value, and current_sym_addr.
16994         (dbxout_symbol_location): Same.
16995         (dbxout_prepare_symbol): Zero current_sym_code,
16996         current_sym_value, and current_sym_addr.
16997
16998 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
16999
17000         * tree.c (get_unwidened): Reorder conditions so that the null pointer
17001         check is done first.
17002
17003 2004-01-09  Eric Christopher  <echristo@redhat.com>
17004
17005         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17006         if we're running mark_constant_function.
17007
17008 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
17009
17010         PR target/12561
17011         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17012
17013 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
17014
17015         PR debug/11231
17016         * dbxout.c (dbxout_type_fields): Return if any item is
17017         error_mark_node or the type is error_mark_node.
17018
17019 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
17020
17021         * config/rs6000/darwin-ldouble.c: Add big comment explaining
17022         exactly what is expected as a 'long double'.
17023         (_xlqadd): When a value to be returned is representable as a
17024         'double', just return it directly, do not construct it using a union.
17025         Also, correct final fixup.
17026         (_xlqmul): Likewise.
17027         (_xlqdiv): Likewise.
17028         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17029
17030         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17031
17032 2004-01-09  Richard Henderson  <rth@redhat.com>
17033
17034         * recog.c (constrain_operands): Validate mem operands.
17035
17036 2004-01-09   James E Wilson  <wilson@specifixinc.com>
17037
17038         * gcc.c (init_spec): Remove -lunwind from shared case.
17039         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17040
17041 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
17042
17043         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17044         * configure: Regenerate
17045
17046 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
17047
17048         PR c/11234
17049         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17050         between function and object pointers.
17051         (digest_init): When comparing a pointer to function type to the
17052         target type, only apply TREE_TYPE once to the pointer to function
17053         type.
17054         * except.c (for_each_eh_label_1): Treat data as a pointer to a
17055         function pointer rather than casting it to a function pointer.
17056         (for_each_eh_label): Update caller.
17057         * recog.h (struct insn_data): Use a struct or union for output.
17058         * genoutput.c (output_insn_data): Update.
17059         * final.c (get_insn_template): Update.
17060
17061 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17062
17063         * expr.h (expand_expr): Make it a macro, not a function.
17064         (expand_expr_real): New function.
17065         * expr.c (store_expr): Adjust logic for deciding whether or not to
17066         copy the value returned by expand_expr.
17067         (expand_expr): Rename to ...
17068         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
17069         calls to language hooks.
17070         * c-common.h (c_expand_expr): Adjust prototype.
17071         * c-common.c (c_expand_expr): Add alt_rtl parameter.
17072         * langhooks-def.h (lhd_expand_expr): Change prototype.
17073         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17074         * langhooks.h (lang_hooks): Change type of expand_expr.
17075         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17076         (last_expr_alt_rtl): Likewise.
17077         (expand_expr_stmt_value): Set last_expr_alt_rtl.
17078         (clear_last_expr): Clear it.
17079         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17080         (expand_end_bindings): Save and restor last_expr_alt_rtl.
17081         * tree.def (RTL_EXPR): Give it an additional operand.
17082         * tree.h (RTL_EXPR_ALT_RTL): New macro.
17083
17084 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17085
17086         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
17087         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
17088
17089 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17090
17091         PR target/13380.
17092         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17093         or (ne:SI (reg:CC 17) (const_int 0)).
17094         Be specific about modes wherever possible.
17095
17096 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17097
17098         * config/m32r/m32r.c (m32r_expand_block_move): Call
17099         gen_movestrsi_internal with two more arguments.
17100         (m32r_output_block_move): Adjust operand numbers.
17101         Properly update the source and destination pointers.
17102         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17103         'r+'.  Change the set detinations to match_operand.
17104
17105 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17106
17107         * final.c (FIRST_INSN_ADDRESS): Remove.
17108         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17109         * system.h (FIRST_INSN_ADDRESS): Poison.
17110         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17111         * config/m32r/m32r-protos.h: Remove the prototype for
17112         m32r_first_insn_address.
17113         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17114         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17115         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17116
17117 2004-01-09  J. Brobecker  <brobecker@gnat.com>
17118
17119         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17120         we just created.
17121         (is_ada_subrange_type): DIEs for enumeration subtypes should be
17122         emitted as subrange types too.
17123         (subrange_type_die): Add handling of enumeration subtypes.
17124
17125 2004-01-08  Richard Henderson  <rth@redhat.com>
17126
17127         PR opt/12441
17128         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17129         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17130         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17131         (ix86_address_cost): Be prepared for SUBREGed registers.
17132         (legitimate_address_p): Accept SUBREGed registers.
17133
17134 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
17135
17136         * Makefile.in: Rename configure.in to configure.ac
17137         * doc/sourcebuild.texi: Likewise.
17138         * configure: Regenerate.
17139         * config.in: Regenerate.
17140
17141 2004-01-08  Stuart Hastings  <stuart@apple.com>
17142
17143         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17144
17145 2004-01-08  Jan Hubicka  <jh@suse.cz>
17146
17147         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
17148
17149 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
17150
17151         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17152         (UNSPEC_FIX_TRUNC_TF): New constant.
17153         (movtf_internal): Make splitter active only when insn is active.
17154         (extenddftf2): Rewrite to properly load zero into low part.
17155         (extenddftf2_internal): New.
17156         (extendsftf2): Rewrite.
17157         (truncdftf2): Correct length.
17158         (floatditf2): Delete.
17159         (fix_trunc_helper): New.
17160         (fix_trunctfdi2): Use fix_trunc_helper.
17161         (fix_trunctfsi2): Likewise.fix_trunc
17162         (fix_trunctfsi2_internal): New.
17163
17164         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17165         addresses are legitimate on Darwin even when flag_pic.
17166         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17167         non-offsettable addresses for loads of TFmode constants.
17168
17169 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17170
17171         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17172         variables in the appropriate bss section.
17173
17174 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
17175
17176         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17177         target_flags has MASK_POWERPC64 when -m64.
17178         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17179         to 620, 630, power3, power4 and rs64a entries.
17180         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17181
17182 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
17183
17184         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17185         floating-point constants.
17186
17187 2004-01-08  J. Brobecker  <brobecker@gnat.com>
17188
17189         * dwarf2out.c (subrange_type_die): Add context_die parameter.
17190         Create the subrange_type DIE using the given context DIE.
17191         (modified_type_die): Update call to subrange_type_die.
17192
17193 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
17194
17195         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17196         Add multiple-include guard.
17197
17198 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
17199
17200         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17201         all vector constant loadable by vsplt*.
17202         (output_vec_const_move): Likewise.
17203
17204 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17205
17206         PR c/6024
17207         * c-typeck.c (comptypes): Only treat enumerated types in the same
17208         translation unit as compatible with each other when they are the
17209         same type.
17210         * doc/extend.texi: Update.
17211
17212 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17213
17214         PR c/12165
17215         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
17216         array type from the array element type.
17217
17218 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
17219
17220         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
17221         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
17222         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
17223         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
17224         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
17225
17226 2004-01-06  Eric Christopher  <echristo@redhat.com>
17227
17228         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
17229         (DWARF2_DEBUGGING_INFO): Define.
17230         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
17231         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
17232         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
17233         for irix as.
17234         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
17235         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
17236         * config/mips/iris5gas.h: Ditto.
17237         (DBX_DEBUGGING_INFO): Remove.
17238         (DWARF2_DEBUGGING_INFO): Ditto.
17239         (MIPS_DEBUGGING_INFO): Ditto.
17240         (PREFERRED_DEBUGGING_TYPE): Ditto.
17241         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
17242         (PREFERRED_DEBUGGING_TYPE): Ditto.
17243         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
17244         * config/mips/elf64.h: Ditto.
17245
17246 2004-01-06  Jan Hubicka  <jh@suse.cz>
17247
17248         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
17249         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
17250
17251 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
17252
17253         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
17254         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
17255         * config/rs6000/darwin-ldouble.c: New.
17256
17257         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
17258         for constants.
17259         (constant_subword): Delete.
17260         * rtl.h (constant_subword): Delete prototype.
17261         (immed_double_const): Is not in varasm.c.
17262         * simplify-rtx.c (simplify_immed_subreg): New.
17263         (simplify_subreg): Use simplify_immed_subreg.
17264
17265         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
17266         than trying to generate RTL directly.
17267         (fix_trunctfsi2): Use expand_fix rather than trying to generate
17268         RTL directly.
17269
17270         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
17271
17272 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
17273
17274         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
17275         function into a separate macro.
17276         (read_only_data_section): Add void argument.
17277         (private_data_section): Same.
17278         (read_only_private_data_section): Same.
17279         (toc_section): Same.
17280
17281 2004-01-06  Jan Hubicka  <jh@suse.cz>
17282
17283         * invoke.texi:  Remove typo in last change.
17284
17285         PR target/10301
17286         * config.gcc: Accept opteron and athlon-64 as variants
17287         of k8.
17288         * i386.c (override_options): Likewise.
17289         * invoke.texi (i386 -mtune): Expand documentation.
17290
17291 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17292
17293         * alias.c: Fix comment typos.
17294         * builtins.c: Likewise.
17295         * cfg.c: Likewise.
17296         * df.c: Likewise.
17297         * dominance.c: Likewise.
17298         * dwarf2out.c: Likewise.
17299         * emit-rtl.c: Likewise.
17300         * expr.c: Likewise.
17301         * final.c: Likewise.
17302         * fold-const.c: Likewise.
17303         * gcse.c: Likewise.
17304         * genattrtab.c: Likewise.
17305         * genrecog.c: Likewise.
17306         * gensupport.c: Likewise.
17307         * ggc-zone.c: Likewise.
17308         * integrate.c: Likewise.
17309         * local-alloc.c: Likewise.
17310         * loop.c: Likewise.
17311         * recog.c: Likewise.
17312         * regmove.c: Likewise.
17313         * reg-stack.c: Likewise.
17314         * reorg.c: Likewise.
17315         * rtlanal.c: Likewise.
17316         * rtl.h: Likewise.
17317         * sched-ebb.c: Likewise.
17318         * simplify-rtx.c: Likewise.
17319         * toplev.c: Likewise.
17320         * varasm.c: Likewise.
17321
17322 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17323
17324         * doc/install.texi: Fix typos.
17325         * doc/invoke.texi: Likewise.
17326         * doc/md.texi: Likewise.
17327
17328 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17329
17330         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
17331
17332 2004-01-06  Jan Hubicka  <jh@suse.cz>
17333
17334         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
17335         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
17336         of MMX_REGPARM.
17337         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
17338         add MMX_REGPARM.
17339         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
17340         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
17341         (MMX_REGPARM_MAX): Similarly for -mmmx.
17342
17343 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17344
17345         * config/sh/linux.h: Fix comment formatting.
17346         * config/sh/netbsd-elf.h: Likewise.
17347         * config/sh/sh.c: Likewise.
17348         * config/sh/sh.h: Likewise.
17349         * config/sh/vxworks.h: Likewise.
17350
17351 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17352
17353         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
17354         * toplev.c (output_file_directive): Don't use
17355         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
17356
17357 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
17358
17359         * toplev.c: Fix broken checkin of 2003-12-30.
17360
17361 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
17362
17363         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
17364         (USING_MMAP): We don't support non-mmap.
17365         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
17366         large objects.
17367         (struct page_entry): Remove bytes_free.
17368         (struct page_table_chain): Remove.
17369         (struct globals): Remove page_table member.
17370         (loookup_page_table_entry): Function deleted.
17371         (set_page_table_entry): Ditto.
17372         (ggc_allocated_p): No longer need page table lookups.
17373         (ggc_marked_p): Ditto.
17374         (alloc_small_page): Don't care about bytes_free anymore.
17375         (alloc_large_page): Round up size.
17376         (ggc_alloc_zone_1): Mark large objects as such, and calculate
17377         their size the new way.
17378         Remove page table lookups and setting.
17379         (ggc_get_size): Calculate large object size the new way.
17380         (sweep_pages): Redo to account for fact that we no longer have
17381         bytes_free.
17382         (ggc_collect): No longer need to reincrement bytes_free.
17383         (ggc_pch_alloc_object): Handle new large objects properly.
17384         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
17385
17386 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17387
17388         * doc/invoke.texi: Remove a page break.
17389
17390 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17391
17392         * config/avr/avr.c (avr_output_function_prologue): Remove an
17393         extra pair of curly braces.
17394
17395 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17396
17397         * config/mn10300/mn10300.c: Fix comment formatting.
17398         * config/mn10300/mn10300.h: Likewise.
17399
17400 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17401
17402         * tree.h: Update documentation on nothrow_flag.
17403         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
17404         types.
17405
17406 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17407
17408         * doc/invoke.texi: Remove traces of dead ports.
17409
17410 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17411
17412         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
17413         option.
17414
17415 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17416
17417         PR target/12945
17418         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
17419         counter labels.
17420         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
17421         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
17422         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
17423         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
17424         (mips_symbol_insns): Don't trust the local/global classification.
17425         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
17426         (override_options): Make -mabicalls -fno-unit-at-a-time imply
17427         -mno-explicit-relocs.
17428         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
17429         between local and global symbols.
17430
17431 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17432
17433         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
17434         (mips_preferred_reload_class): Declare.
17435         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
17436         (EXTRA_CONSTRAINT): Update accordingly.
17437         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
17438         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
17439         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
17440         mips_dangerous_for_la25_p.
17441         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
17442         if mips_dangerous_for_la25_p.
17443
17444 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
17445
17446         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
17447         warning.
17448
17449 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
17450
17451         * configure.ac: Use AC_PROG_CPP_WERROR.
17452         * configure: Regenerate.
17453
17454 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
17455
17456         * .cvsignore: Add autom4te.cache.
17457
17458 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
17459
17460         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
17461         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
17462         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
17463         then architecture options, then ABI options.  General rewording.
17464
17465 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
17466
17467         PR c/3414
17468         * doc/extend.texi: Clarify definition of malloc attribute.
17469
17470 2004-01-04  Jan Hubicka  <jh@suse.cz>
17471
17472         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
17473         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
17474         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
17475         (cgraph_inline_p): Add extra argument reason.
17476         * cgraphunit.c: Minor formating fixes.
17477         cgraph_first_inlined_callee): New functions.
17478         (record_call_1): Record builtins too.
17479         (cgraph_analyze_function): Update inline_failed messages.
17480         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
17481         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
17482         (cgraph_check_inline_limits): Likewise; Add argument reason.
17483         (cgraph_set_inline_failed): New static function.
17484         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
17485         reasons.
17486         (cgraph_inline_p): Add new argument reason.
17487         * tree-inline.c (expand_call_inline):  Update warning.
17488
17489 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
17490
17491         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
17492         with modern equivalents.
17493         * configure: Regenerate.
17494
17495         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
17496         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
17497         * configure: Regenerate.
17498
17499         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
17500
17501         * configure.in: Rename to configure.ac.
17502         * configure.ac: Renamed from configure.in; make minimum necessary
17503         changes for autoconf 2.5x.
17504         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
17505         * configure: Regenerate with autoconf 2.57.
17506
17507 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
17508
17509         * config/mips/linux.h: Fix comment formatting.
17510         * config/mips/mips.c: Likewise.
17511         * config/mips/mips.h: Likewise.
17512         * config/mips/mips.md: Likewise.
17513         * config/mips/netbsd.h: Likewise.
17514         * config/mips/windiss.h: Likewise.
17515
17516 2004-01-02  Richard Henderson  <rth@redhat.com>
17517
17518         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
17519         for sse and 387; add suppression for mmx.
17520
17521 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
17522
17523         * loop.c (loop_optimize): Free all loops_info's mems.
17524
17525         * c-typeck.c (finish_init): Free spelling_base before
17526         setting it again.
17527
17528         * cfgloop.c (flow_loops_find): Always free the sbitmap
17529         headers.
17530
17531         * predict.c (estimate_probability): Free bbs after being
17532         done with it.
17533
17534 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17535
17536         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
17537         const_8bit_operand and call_address_operand.
17538
17539 2004-01-02  Jan Hubicka  <jh@suse.cz>
17540
17541         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
17542         when there is nothing to inline but warnings are requested.
17543         (cgraph_decide_inlining):  Fix memory leak.
17544
17545 2004-01-02  Jan Hubicka  <jh@suse.cz>
17546
17547         * expr.c (store_constructor):  Fix pasto in previous patch.
17548
17549 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17550
17551         * config/i386/cygming.h: Fix comment formatting.
17552         * config/i386/djgpp.h: Likewise.
17553         * config/i386/gthr-win32.c: Likewise.
17554         * config/i386/i386-interix.h: Likewise.
17555         * config/i386/i386.c: Likewise.
17556         * config/i386/i386.h: Likewise.
17557         * config/i386/openbsd.h: Likewise.
17558         * config/i386/winnt.c: Likewise.
17559         * config/i386/xm-mingw32.h: Likewise.
17560
17561 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
17562
17563         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
17564         copyright and last modification dates.
17565
17566 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
17567
17568         * doc/install.texi (Specific): Mention x86_64.
17569
17570 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
17571
17572         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
17573         Call force_operand on plus_constant result.
17574
17575 2004-01-01  Jan Hubicka  <jh@suse.cz>
17576
17577         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
17578         * expr.c (store_constructor): Use vec_init pattern.
17579         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
17580         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
17581         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
17582         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
17583         New patterns.
17584         (sse2_unpc?pd): Fix pattern.
17585         (sse2_movlpd): Kill.
17586         (sse2_movsd): Deal with movlpd too.
17587         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
17588         (ix86_expand_vector_init): New.
17589         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
17590         * md.texi (vec_set, vec_extract): Document
17591
17592 2003-12-31  Jan Hubicka  <jh@suse.cz>
17593
17594         PR opt/13473
17595         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
17596         ASM input operands
17597
17598         PR opt/12617
17599         * toplev.c (dump_file_index): Reorder ce3 and bbro.
17600         (dump_file): Likewise.
17601         (rest_of_compilation): Likewise.
17602
17603         PR debug/13367
17604         * cgraph.c (cgraph_function_possibly_inlined):  Even with
17605         flag_really_no_inline we inline always_inline functions.
17606         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
17607         for non-always_inline functions when there is flag_really_no_inline.
17608         (cgraph_decide_inlining): Limit work done when not inlining.
17609         (cgraph_decide_inlining_incrementally): Likewise.
17610         (cgraph_optimize_function): Check whether something got inlined.
17611         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
17612         extern inline functions when not inlining.
17613
17614         * opts.c (decode_options):  Disable crossjumping at -O1
17615         * invoke.texi (-O1): Document change.
17616
17617 See ChangeLog.10 for earlier changes.