OSDN Git Service

Fixed 2005-05-25 entry to mention that rtlhooks-def.h was added.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-13  Steven Bosscher <stevenb@suse.de>
2
3         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
4         Revert previous change, don't use CALL_P.
5
6 2004-06-13  Jason Merrill  <jason@redhat.com>
7
8         * tree.h: Move std_gimplify_va_arg_expr protoype here.
9         * tree-gimple.h: From here.
10
11 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
12
13         Fix PR tree-optimization/15979
14         Fix PR tree-optimization/15981
15         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
16         try to insert values undefined along some path.
17
18 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
19
20         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
21         are available everywhere too.
22
23 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
24
25         * fold-const.c (fold_checksum_tree <case 't'>): Only
26         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
27         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
28         EXPR is an INTEGERAL_TYPE or a scalar float type.
29
30 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
31
32         * tree-sra.c (tree_sra): Update documentation.
33
34 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
35
36         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
37         function_types_compatible_p, type_lists_compatible_p): Remove
38         flags parameter.
39         * c-tree.h (comptypes): Likewise.
40         (COMPARE_STRICT): Remove.
41         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
42         callers changed.
43
44 2004-06-13  Eric Christopher  <echristo@redhat.com>
45
46         * c-decl.c (diagnose_mismatched_decls): Improve error message.
47         Remove unused code.
48         * c-typeck.c (comptypes): Add location in standard we're checking.
49
50 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
51
52         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
53         version 3.3.4.
54
55 2004-06-12  Roger Sayle  <roger@eyesopen.com>
56
57         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
58         index by machine mode.
59         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
60         tables inside the loop over machine modes.
61         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
62         expand_divmod): Index shift*_cost by the appropriate machine mode.
63
64 2004-06-12  Eric Christopher  <echristo@redhat.com>
65
66         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
67         * config/s390/s390.md: Ditto.
68         * config/s390/s390.c: Ditto.
69         (s390_frame_info): Conditionalize frame and setup info on
70         TARGET_TPF_PROFILING.
71         (s390_arg_frame_offset): Ditto.
72
73 2004-06-12  Roger Sayle  <roger@eyesopen.com>
74
75         * fold-const.c (omit_two_operands): New function.
76         * tree.h (omit_two_operands): Prototype here.
77         * builtins.c (fold_builtin_unordered_cmp): New function to lower
78         C99 unordered comparison builtins to the appropriate tree nodes.
79         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
80         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
81         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
82         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
83         (simplify_builtin_memcmp, simplify_builtin_strncmp,
84         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
85         omit_two_operands function to build the required COMPOUND_EXPRs.
86
87 2004-06-12  Steven Bosscher <stevenb@suse.de>,
88             Andreas Jaeger  <aj@suse.de>
89
90         * gcse.c (record_set_info): Use predicates like REG_P.
91         (mems_conflict_for_gcse_p): Likewise.
92         (load_killed_in_block_p): Likewise.
93         (hash_expr_1): Likewise.
94         (insert_set_in_table): Likewise.
95         (gcse_constant_p): Likewise.
96         (hash_scan_set): Likewise.
97         (hash_scan_insn): Likewise.
98         (canon_list_insert): Likewise.
99         (record_last_mem_set_info): Likewise.
100         (record_last_set_info): Likewise.
101         (compute_hash_table_work): Likewise.
102         (mark_set): Likewise.
103         (mark_clobber): Likewise.
104         (mark_oprs_set): Likewise.
105         (compute_transp): Likewise.
106         (find_avail_set): Likewise.
107         (cprop_insn): Likewise.
108         (do_local_cprop): Likewise.
109         (cprop): Likewise.
110         (find_implicit_sets): Likewise.
111         (find_bypass_set): Likewise.
112         (bypass_conditional_jumps): Likewise.
113         (insert_insn_end_bb): Likewise.
114         (pre_insert_copy_insn): Likewise.
115         (compute_transpout): Likewise.
116         (next_ls_expr): Likewise.
117         (invalidate_any_buried_refs): Likewise.
118         (compute_ld_motion_mems): Likewise.
119         (reg_set_info): Likewise.
120         (reg_clear_last_set): Likewise.
121         (find_moveable_store): Likewise.
122         (compute_store_table): Likewise.
123         (find_loads): Likewise.
124         (store_killed_in_insn): Likewise.
125         (insert_insn_start_bb): Likewise.
126         (reg_set_between_after_reload_p): Likewise.
127         (reg_used_between_after_reload_p): Likewise.
128         (is_jump_table_basic_block): Likewise.
129         (gcse_after_reload): Likewise.
130         (hash_scan_set_after_reload): Likewise.
131         (compute_hash_table_after_reload): Likewise.
132
133 2004-06-12  Steven Bosscher  <stevenb@suse.de>
134
135         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
136         (INSN_P): Don't look at the rtx code class, just explicitly
137         check for one of the tree RTX_INSN codes.
138
139 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
140
141         * c-typeck.c (default_function_array_conversion): Use
142         build_pointer_type not TYPE_POINTER_TO.
143
144 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
145
146         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
147         * configure, config.in: Regenerate.
148         * system.h: Unconditionally define bool as unsigned char,
149         BOOL_BITFIELD as unsigned int.
150         * domwalk.h: Use BOOL_BITFIELD.
151
152 2004-06-12  Andreas Jaeger  <aj@suse.de>
153
154         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
155         * libgcc-darwin.ver: Likewise.
156
157 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
158
159         * reload.c (find_reloads): Force reload for pseudo registers on big
160         endian machines.
161
162 2004-06-11  Steven Bosscher <stevenb@suse.de>
163
164         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
165         Don't try to mark anything control dependent on the entry or
166         exit blocks.
167
168 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
169
170         Fix Bug 15899
171         Fix Bug 15460
172         * tree.h (SSA_NAME_VALUE): New macro.
173         (struct tree_ssa_name): Add value_handle member.
174         * tree-ssa-pre.c: Replaced.
175         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
176         (struct cst_ann_d): New.
177         (struct expr_ann_d): New.
178         (union tree_ann_d): Add cst_ann, expr_ann.
179         * tree-dfa.c (create_cst_ann): New function.
180         (create_expr_ann): Ditto.
181         * tree-flow-inline.h (cst_ann): New function.
182         (expr_ann): Ditto.
183         (get_cst_ann): Ditto.
184         (get_expr_ann): Ditto..
185
186 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
187
188         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
189         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
190         _U_Qfcmp library function.
191         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
192         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
193
194         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
195         unspec used for loading address from DLT.
196         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
197         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
198         Don't use short code sequence when loading the address of a nonlocal
199         label.
200         (nonlocal_goto): New expander.
201         (indirect_goto): New jump pattern for nonlocal gotos.
202         (short_jump): Remove extra whitespace.
203         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
204         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
205         pattern.
206
207 2004-06-11  Roger Sayle  <roger@eyesopen.com>
208
209         * expmed.c (synth_mult): Add an additional MODE argument for the
210         machine mode of the multiplication.  Update recursive calls.  Use
211         mode instead of word_mode for determining operation costs.
212         (choose_mult_variant): Update calls to synth_mult with "mode".
213
214 2004-06-11  Richard Henderson  <rth@redhat.com>
215
216         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
217         and makes_aliased_stores.
218
219 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
220
221         * doc/install.text (--enable-shared): Fix typo.
222
223 2004-06-11  Richard Henderson  <rth@redhat.com>
224
225         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
226         argument.  Use internal post for call to gimplify_expr.  Tidy
227         rounded type size computation.
228         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
229         get_initialized_tmp_var.
230
231 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
232
233         * doc/install.texi (--enable-shared): Update libobjc's shared library
234         status.  Remove reference to libf2c.
235
236 2004-06-11  Jason Merrill  <jason@redhat.com>
237
238         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
239         * config/i386/i386.c (ix86_va_arg): Remove.
240         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
241         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
242         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
243         * config/alpha/alpha.c (alpha_va_arg): Remove.
244         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
245         * config/sparc/sparc.c (sparc_va_arg): Remove.
246
247         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
248         assignment might throw.
249         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
250         expressions.
251
252 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
253
254         PR 15886:
255         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
256
257 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
258
259         * doc/install.texi (Prerequisites): Update documentation of
260         required versions of autoconf and automake.  Remove mention of
261         libf2c.
262
263 2004-06-11  Jason Merrill  <jason@redhat.com>
264
265         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
266         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
267
268 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
269
270         * typeclass.h: Add GPL plus exception license.  Add include
271         guard.
272
273 2004-06-10  Jason Merrill  <jason@redhat.com>
274
275         * gimplify.c (gimplify_modify_expr): Don't force a temporary
276         of an aggregate_value_p type.
277
278 2004-06-10  Jeff Law  <law@redhat.com>
279
280         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
281         code when we are in gimple form.
282
283 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
284
285         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
286         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
287         (highest_ssa_version): Remove.
288         * tree-outof-ssa.c (new_temp_expr_table): Replace
289         highest_ssa_version with num_ssa_names.
290         (dump_replaceable_exprs): Likewise.
291         (rewrite_vars_out_of_ssa): Likewise.
292         * tree-ssa-ccp.c (initialize): Likewise
293         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
294         * tree-ssa-dce.c (tree_dce_init): Likewise.
295         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
296         * tree-ssa-live.c (create_ssa_var_map): Likewise.
297         (dump_var_map): Likewise.
298         * tree-ssa.c (verify_ssa): Likewise.
299         (kill_redundant_phi_nodes): Likewise.
300         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
301         * tree-ssanames.c: Include tree-flow.h
302         (ssa_names): New varray.
303         (init_ssa_names): Initialize ssa_names.
304         Reserve the first slot of the ssa_names table.
305         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
306         Assign version numbers using num_ssa_names.
307
308 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
309
310         * doc/sourcebuild.texi (Front End): Add details of more
311         installation documentation required.
312
313 2004-06-10  Brian Booth  <bbooth@redhat.com>
314
315         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
316         of V_MAY_DEF and V_MUST_DEF.
317         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
318         num_vdefs to num_v_may_defs.
319         (compute_immediate_uses_for_stmt): Rename occurences of vdef
320         to v_may_def.
321         (redirect_immediate_uses): Ditto.
322         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
323         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
324         Also add code to sum up the number of v_must_defs.
325         (vdefs_disappeared_p): Replace with...
326         (v_may_defs_disappeared_p): This.
327         (v_must_defs_disappeared_p): New function.
328         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
329         Also add code to mark new variables found in V_MUST_DEFs for
330         renameing.
331         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
332         vdef_ops to v_may_def_ops.
333         (get_vdef_ops): Replace with...
334         (get_v_may_def_ops): This.
335         * tree-flow-inline.h (get_vdef_ops): Replace with...
336         (get_v_may_def_ops): This.
337         (get_v_must_def_ops): New function.
338         (get_vdef_result_ptr): Replace with...
339         (get_v_may_def_result_ptr): This.
340         (get_vdef_op_ptr): Ditto with...
341         (get_v_may_def_op_ptr); This.
342         (get_v_must_def_op_ptr): New function.
343         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
344         to v_may_def. Also add code to mark statements with
345         V_MUST_DEFs as definition sites.
346         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
347         add code to register new V_MUST_DEFs made by the statement.
348         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
349         (check_replaceable): Rename occurences of vdef to v_may_def. Also
350         add check for V_MUST_DEFs.
351         (find_replaceable_in_bb): Ditto.
352         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
353         to v_may_def. Also add code to dump V_MUST_DEFs.
354         * tree-sra.c (mark_all_vdefs): Replace with...
355         (mark_all_v_may_defs): This.
356         (mark_all_v_must_defs): New function.
357         (create_scalar_copies): Replace call to mark_all_vdefs with
358         calls to mark_all_v_may_defs and mark_all_v_must_defs.
359         (scalarize_structures): Rename occurences of vdef to v_may_def.
360         Also add a check for V_MUST_DEFs.
361         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
362         * tree-ssa-alias.c (global_var): Update comment.
363         (compute_may_aliases): Ditto.
364         (compute_points_to_and_addr_escape): Rename occurences of vdef
365         to v_may_def. Also add code to mark variables in V_MUST_DEF
366         operands as being written to.
367         (group_aliases): Update comment.
368         (maybe_create_global_var): Ditto.
369         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
370         Also add a check for V_MUST_DEFs on GIMPLE registers.
371         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
372         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
373         to v_may_def. Also add code to mark all V_MUST_DEF operands
374         VARYING.
375         (initialize): Ditto.
376         (set_rhs): Rename occurences of vdef to v_may_def. Also add
377         code to update SSA_NAMEs in V_MUST_DEFs.
378         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
379         to v_may_def.
380         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
381         occurences of vdef to v_may_def. Also add code to mark statements
382         with V_MUST_DEFs as necessary.
383         (propagate_necessity): Rename occurences of vdef to v_may_def.
384         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
385         occurences of vdef to v_may_def. Also add code to mark operands
386         in V_MUST_DEFs for renaming.
387         (eliminate_redundant_computations): Rename occurences of vdef
388         to v_may_def.
389         (record_equivalences_from_stmt): Rename occurences of vdef
390         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
391         (optimize_stmt): Remove unnesessary variable vdefs. Update
392         comment.
393         (register_definitions_for_stmt): Rename occurences of vdef
394         to v_may_def. Also add code to register definitions made with
395         V_MUST_DEFs.
396         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
397         (fix_stmt_v_may_defs): This.
398         (fix_phi_uses): Rename occurences of vdef to v_may_def.
399         (dse_optimize_stmt): Ditto.
400         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
401         to v_may_def. Also add code to mark V_MUST_DEF operands as being
402         used in virtual operators.
403         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
404         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
405         renaming.
406         * tree-ssa-operands.c (opf_kill_def): New flag for killing
407         definitions.
408         (build_vdefs): Renamed to...
409         (build_v_may_defs): This.
410         (build_v_must_defs): New variable.
411         (voperands_d): Add v_must_def_ops and replace vdef_ops with
412         v_may_def_ops.
413         (append_vdef): Replace with...
414         (append_v_may_def): This.
415         (append_v_must_def): New function.
416         (NUM_FREE): Increment for V_MUST_DEF
417         (optype_freelist): Increment its size for V_MUST_DEF
418         (allocate_vdef_optype): Replace with...
419         (allocate_v_may_def_optype): This.
420         (allocate_v_must_def_optype): New function.
421         (free_vdefs): Replace with...
422         (free_v_may_defs): This.
423         (free_v_must_defs): New function.
424         (remove_vdefs): Replace with...
425         (remove_v_may_defs): This.
426         (remove_v_must_defs): New function.
427         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
428         add code to initialize build_v_must_defs.
429         (finalize_ssa_vdefs): Replace with...
430         (finalize_ssa_v_may_defs): This.
431         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
432         (finalize_ssa_v_must_defs): New function.
433         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
434         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
435         (verify_start_operands): Rename occurences of vdef to v_may_def.
436         Also add check for build_v_must_defs.
437         (get_stmt_operands): Rename occurences of vdef to v_may_def.
438         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
439         killing definitions.
440         (get_expr_operands): Update comment and use opf_kill_def for
441         killing definitions.
442         (add_stmt_operand): Replace code that appends VDEFs with code
443         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
444         otherwise.
445         (add_call_clobber_ops): Update comments.
446         * tree-ssa-operands.h (vdef_optype_d): Replace with...
447         (v_may_def_optype_d): This.
448         (v_must_def_optype_d): New structure.
449         (VDEF_OPS): Replace with...
450         (V_MAY_DEF_OPS): This.
451         (STMT_VDEF_OPS): Same with...
452         (STMT_V_MAY_DEF_OPS): This.
453         (NUM_VDEFS): And...
454         (NUM_V_MAY_DEFS): This.
455         (VDEF_RESULT_PTR): As well as...
456         (V_MAY_DEF_RESULT_PTR): This.
457         (VDEF_RESULT): Same goes for...
458         (V_MAY_DEF_RESULT): This.
459         (VDEF_OP_PTR): And...
460         (V_MAY_DEF_OP_PTR): This.
461         (VDEF_OP): And...
462         (V_MAY_DEF_OP): This.
463         (V_MUST_DEF_OPS): New macro.
464         (STMT_V_MUST_DEF_OPS): Ditto.
465         (NUM_V_MUST_DEFS): Ditto.
466         (V_MUST_DEF_OP_PTR): Ditto.
467         (V_MUST_DEF_OP): Ditto.
468         (remove_vdefs): Replace signature with...
469         (remove_v_may_defs): This.
470         (remove_v_must_defs): New function signature.
471         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
472         with calls to remove_v_may_defs and remove_v_must_defs.
473         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
474         Also add code that marks left occurences of operands in V_MUST_DEFs.
475         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
476         to v_may_def. Also add check for V_MUST_DEFs.
477         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
478
479 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
480
481         PR target/15653
482         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
483         insn.
484
485 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
486
487         PR web/15263
488         * doc/install.texi: Remove superfluous linebreak.
489
490 2004-06-10  Roger Sayle  <roger@eyesopen.com>
491
492         * builtins.c (expand_builtin): Fall back to library function call for
493         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
494         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
495         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
496         IMAGPART_EXPR respectively.
497
498 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
499
500         * sh.c (dump_table): New argument start.  Changed caller.
501         (fixup_mova): New function.
502         (find_barrier): Use it.
503         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
504         If the label a mova refers to is above the mova itself, change
505         the mova into a load.
506         * sh.md (*casesi_worker): Rename to:
507         (casesi_worker_1).
508         (casesi_worker_2): New insn.
509
510 2004-06-10  Jason Merrill  <jason@redhat.com>
511
512         * target.h (struct gcc_target): Change gimplify_va_arg_expr
513         hook signature.
514         * tree-gimple.h: Adjust.
515         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
516         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
517         Use fold_convert.
518         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
519         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
520         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
521         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
522         (gimplify_va_arg_expr): Return GS_ERROR in error case.
523         Gimplify valist rather than calling stabilize_va_list.
524
525 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
526
527         * Makefile.in (df.o): Remove fibheap dependency.
528         * df.h: Do not include sbitmap.h.
529         (struct ref): New field "data".
530         (DF_REF_DATA): New accessor macro.
531         (struct df): Field "dom" removed.
532         (df_analyze_subcfg): New function.
533         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
534         (transfer_function): ... new type.
535         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
536         (iterative_dataflow): ... new function.
537         (enum set_representation, struct dataflow): New.
538         * df.c: Do not include fibheap.h.
539
540         (df_reg_def_chain_clean, df_reg_use_chain_clean,
541         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
542         prune_to_subcfg, df_bb_modify): New functions.
543         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
544         df_refs_update, df_reg_table_realloc, df_ref_create,
545         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
546         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
547         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
548
549         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
550         (df_rd_transfer_function, df_ru_transfer_function,
551         df_lr_transfer_function): Type of bitmaps changed to void *.
552         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
553         (hybrid_search): ... new function.
554         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
555         (iterative_dataflow): ... new function. Avoid use of fibheaps for
556         a worklist.  Do not process basic blocks unnecessarily.
557
558 2004-06-10  Roger Sayle  <roger@eyesopen.com>
559
560         * fold-const.c (fold_abs_const): Make extern.
561         * tree.h (fold_abs_const): Prototype here.
562         * builtins.c (fold_builtin_fabs): New function to transform
563         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
564         (fold_builtin_abs): New function to transform abs, labs, llabs
565         and imaxabs builtins into ABS_EXPR tree nodes.
566         (expand_builtin): Fall back to a function call for abs, labs,
567         llabs and imaxabs builtins that survive constant folding.
568         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
569         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
570
571 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
572
573         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
574         leaf function without unwind info at RP 0.
575
576 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
577
578         PR c++/14791
579         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
580         (fileptr_type_node): Define.
581         * tree.c (build_common_tree_nodes_2): Initialize
582         fileptr_type_node to ptr_type_node.
583         * c-common.c (c_common_nodes_and_builtins): For C++, make
584         fileptr_type_node a distinct type copy.
585         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
586         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
587         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
588         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
589         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
590         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
591         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
592         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
593         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
594         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
595         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
596         the above *FILEPTR* types instead of *PTR*.
597
598 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
599
600         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
601         match.
602
603 2004-06-09  Roger Sayle  <roger@eyesopen.com>
604
605         * fold-const.c (fold_not_const): New function.
606         (fold) <ABS_EXPR>: Don't bother testing wins.
607         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
608         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
609
610 2004-06-09  Richard Henderson  <rth@redhat.com>
611
612         PR middle-end/15228
613         * function.c (assign_parms): Always set_mem_align with the computed
614         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
615
616 2004-06-09  Richard Henderson  <rth@redhat.com>
617
618         PR opt/15108
619         * tree-tailcall.c (find_tail_calls): Don't check early for
620         tail_recursion failure.
621
622 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
623
624         Move SSA_NAME annotations into tree_ssa_name.
625
626         * tree-dfa.c (create_ssa_name_ann): Remove.
627         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
628         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
629         (struct ssa_name_ann_d): Remove.
630         (union tree_ann_d): Update.
631         (ssa_name_ann_t): Remove.
632         * tree-ssa-alias.c: (get_ptr_info): New local function.
633         Replace references to ssa_name_ann_t with struct ptr_info_def.
634         * tree-ssa-operands.c (get_expr_operands): Likewise.
635         * tree.h (SSA_NAME_PTR_INFO): Define.
636         (struct ptr_info_def): Declare.
637         (struct tree_ssa_name): Add field 'ptr_info'.
638
639 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
640
641         * config/i386/winnt.c (i386_pe_output_labelref): Correct
642         misplaced ')'.
643
644 2004-06-09  Steven Bosscher  <stevenb@suse.de>
645
646         * config/i386/k6.md: Rewrite using the DFA model.
647         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
648         cost of load-operation insns for the K6.
649         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
650         (ia32_multipass_dfa_lookahead): Likewise.
651
652 2004-06-09  Richard Henderson  <rth@redhat.com>
653
654         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
655         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
656
657 2004-06-09  Richard Henderson  <rth@redhat.com>
658
659         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
660
661 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
662
663         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
664         (CPP_ID_DATA_H): New.
665         (gtype-desc.o): Update dependencies.
666         (GTFILES): Use CPP_ID_DATA_H.
667
668 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
669
670         Revert:
671         PR c++/15815
672         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
673         * doc/extend.texi: Deprecate #pragma interface and #pragma
674         implementation.
675
676 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
677
678         * config/sparc/sparc.h (MOVE_RATIO): New definition.
679
680 2004-06-09  Richard Henderson  <rth@redhat.com>
681
682         * basic-block.h (struct edge_def): Add goto_locus.
683         * tree-cfg.c (make_goto_expr_edges): Set it.
684         (disband_implicit_edges): Use it.
685         * tree-pretty-print.c (dump_implicit_edges): Print it.
686
687 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
688
689         * h8300.md (ldm_h8300s_4): Fix condition for expander.
690
691 2004-06-08  Jason Merrill  <jason@redhat.com>
692
693         Gimplify VA_ARG_EXPR into simpler forms.
694         * target.h: Add gimplify_va_arg_expr hook.
695         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
696         * fold-const.c (build_fold_addr_expr)
697         (build_fold_addr_expr_with_type): Move from gimplify.c.
698         * tree.h: Declare them.
699         * gimplify.c (gimplify_and_add): New fn.
700         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
701         (gimplify_array_ref_to_plus, gimplify_modify_expr)
702         (gimplify_expr): Use build_fold_*.
703         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
704         don't know how to gimplify it.
705         * builtins.c (std_gimplify_va_arg_expr): New fn.
706         (dummy_object): New static fn.
707         (gimplify_va_arg_expr): New fn.
708         (stabilize_va_list): Use build_fold_*.
709         * tree-gimple.h: Declare new fns.
710         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
711         (ix86_gimplify_va_arg): New fn.
712         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
713         (ia64_gimplify_va_arg): New fn.
714         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
715         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
716         * alias.c (get_varargs_alias_set): Just return 0 for now.
717
718         * c-objc-common.c (c_tree_printer): Improve handling of %T.
719
720 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
721
722         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
723         of convert.
724         * tree-inline.c (setup_one_parameter): Likewise.
725         * tree-sra.c (csc_build_component_ref): Likewise.
726         * tree-ssa-ccp.c (ccp_fold): Likewise.
727         * tree-ssa-copy.c (cprop_operand): Likewise.
728         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
729         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
730
731 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
732
733         PR rtl-optimization/15521:
734         * sched-int.h (in_post_call_group_p): Change type to enum.
735         * sched-deps.c (sched_analyze_insn):
736         (sched_analyze): When in_post_call_group_p is post_call_initial,
737         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
738         and also reset in_post_call_group_p to post_call.
739         (sched_analyze): When the previous basic block ended in a CALL_INSN,
740         initialize in_post_call_group_p as post_call_initial.
741         (init_deps): initialize in_post_call_group_p to not_post_call.
742
743 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
744
745         PR ada/6637
746         * doc/install.texi: List ada, libada as options to --enable-shared
747
748 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
749
750         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
751         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
752         config.in entries.
753         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
754         if hard links are not available.
755         * configure: Regenerate.
756         * config.in: Regenerate.
757
758 2004-06-08  Per Bothner  <per@bothner.com>
759
760         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
761
762 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
763
764         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
765         Correct formatting.
766
767 2004-06-08  James E Wilson  <wilson@specifixinc.com>
768
769         PR target/15790
770         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
771
772 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
773
774         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
775         POINTER_TYPE and INTEGER_TYPE.
776
777 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
778
779         * modulo-sched.c: Compile only when INSN_SCHEDULING is
780         defined.
781
782 2004-06-08  Jeff Law  <law@redhat.com>
783
784         * doc/contrib.texi: Add entries for Stefan Olsson and
785         Ola Ronnerup.
786
787 2004-06-08  DJ Delorie  <dj@redhat.com>
788
789         * toplev.c (floor_log2_wide): Replace loop with faster bit
790         operations.
791         (exact_log2_wide): Define in terms of the above.
792         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
793         available.
794
795 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
796
797         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
798         Make sure that we are in INDIRECT mode when getting the
799         stub name.
800
801 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
802
803         * h8300.md (extendqisi2_h8300): Add constraints.
804         (ldm_h8300s_4_normal): Fix typo.
805
806 2004-06-08  Richard Henderson  <rth@redhat.com>
807
808         * gimple-low.c (struct lower_data): Replace the_return_label and
809         one_return_stmt with return_statements.
810         (lower_function_body): Process the entire list of return_statements.
811         (lower_return_expr): Check source value before unifying return_exprs.
812         * gimplify.c (gimplify_return_expr): Force the use of a temporary
813         for !aggregate_value_p.
814         * tree-gimple.c: Update RETURN_EXPR grammer.
815
816 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
817
818         PR target/15598
819         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
820
821 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
822
823         PR rtl-optimization/15717
824         * config/i386/i386.c (legitimate_constant_p): Do not allow
825         x - symbol_ref.
826
827 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
828
829         * gimplify.c (copy_if_shared_r): Revert:
830         2004-05-21  Richard Henderson  <rth@redhat.com>
831         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
832
833 2004-06-07  Roger Sayle  <roger@eyesopen.com>
834
835         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
836         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
837         (init_expmed): Initialize these cost arrays as appropriate.
838         (store_bit_field, extract_bit_field): Correct whitespace.
839         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
840         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
841         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
842         word_mode or compute_mode as appropriate.
843
844 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
845
846         PR target/15783
847         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
848         parameter.  Enumerate the registers inside the PARALLEL.
849         (function_arg): Adjust call to function_arg_union_value.
850         (function_value): Likewise.
851
852         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
853
854 2004-06-07  Roger Sayle  <roger@eyesopen.com>
855
856         * real.c (real_copysign): New function to implement libm's copysign.
857         * real.h (real_copysign): Prototype here.
858         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
859         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
860         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
861         fold_builtin_isdigit): Add function prototypes.
862         (fold_builtin_copysign): New function to fold copysign, copysignf
863         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
864         constant arguments at compile-time using real_copysign.  Fold
865         copysign(X,Y) as fabs(X) if Y is always non-negative.
866         (fold_builtin_1): Correct minor whitespace/style issues.  Call
867         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
868
869 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
870
871         * tree.c (iterative_hash_expr): Use real_hash.
872
873 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
874
875         PR c/14765
876         * c-parse.in (compstmt_primary_start): Set last_expr_type to
877         NULL_TREE.
878
879 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
880
881         PR c++/15815
882         * doc/extend.texi: Deprecate #pragma interface and #pragma
883         implementation.
884
885 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
886
887         PR middle-end/15666
888         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
889         builtin decl as well.
890
891 2004-06-07  Roger Sayle  <roger@eyesopen.com>
892
893         PR c/14649
894         * c-typeck.c (require_constant_value, require_constant_elements):
895         Move declarations to the top of the file.
896         (build_function_call): If we require a constant value, fold with
897         fold_initializer.  If the result is a constant, and the function
898         wasn't called using __builtin_foo, issue a pedantic warning.
899         (build_unary_op): If we require a constant value, fold tree with
900         fold_initializer.
901         (build_binary_op): Use require_constant_value to determine whether
902         to call fold or fold_initializer.
903
904 2004-06-07  Richard Henderson  <rth@redhat.com>
905
906         * gimple-low.c (struct lower_data): Add the_return_label and
907         one_return_stmt.
908         (lower_function_body): Initialize and use them.
909         (lower_return_expr): New.
910         (lower_stmt): Call it.
911         * gimplify.c (gimplify_return_expr): Force the argument to be either
912         null or a result_decl.
913         * tree-gimple.c: Update gimple grammer to match.
914         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
915         coalescing of result_decls.
916
917 2004-06-07  Richard Henderson  <rth@redhat.com>
918
919         PR rtl-opt/15193
920         * expmed.c (extract_bit_field): Fix vector_extract return.
921
922         * config/i386/i386.md (negv4sf2): New pattern.
923
924 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
925
926         PR c++/15337
927         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
928         message.
929
930 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
931
932         * config.in: Regenerate.
933
934 2004-06-06  Steven Bosscher  <stevenb@suse.de>
935
936         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
937         SWITCH_LABELS are always sorted.
938
939 2004-06-06  Steven Bosscher  <stevenb@suse.de>
940
941         * hooks.c (hook_int_void_1): New generic hook.
942         * hooks.h (hook_int_void_1): Add prototype.
943         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
944         Define to hook_int_void_1.
945         * config/c4x/c4x.md: Replace dummies for the old pipeline model
946         with dummies for the new one.
947
948 2004-06-06  Roger Sayle  <roger@eyesopen.com>
949
950         * tree.h (lvalue_or_else): Delete function prototype.
951         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
952
953 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
954
955         PR target/14542
956         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
957         a live change of a register after peephole replacement.
958
959 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
960
961         PR c/13519
962         * c-typeck.c (composite_type, common_pointer_type): New functions.
963         (common_type): Split parts into composite_type and
964         common_pointer_type.  Ensure that arithmetic operations return
965         unqualified types without attributes.  Don't make composite type
966         of signed enum and compatible integer be unsigned.
967         (build_conditional_expr, build_binary_op): Use
968         common_pointer_type.
969         * c-decl.c (merge_decls): Use composite_type.
970         * c-tree.h (composite_type): Declare.
971
972 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
973
974         PR target/14457
975         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
976         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
977         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
978         (inhibit_libc): Must define.
979         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
980         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
981         ("xorhi3"): Likewise.
982
983 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
984
985         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
986         always_inline pass.
987
988 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
989
990         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
991         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
992
993 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
994
995         * regclass.c (init_reg_sets): Check for missing registers in target
996         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
997
998 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
999
1000         * Makefile.in (MKDEPS_H): New shorthand.
1001         (c-opts.o): Update dependencies.
1002         * c-opts.c: Include mkdeps.h.
1003         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1004         not cpp_add_dependency_target.
1005
1006 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1007
1008         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1009         * config/v850/v850.md: Convert to DFA scheduler description.
1010
1011 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1012
1013         PR fortran/15478
1014         * doc/install.texi: Document GMP as prerequisite. Document
1015         --with-gmp and --with-gmp-dir configure options.
1016         * fortran/gfortran.texi: Remove section "Compiling and testing",
1017         remove TOC reference to it.
1018
1019 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1020
1021         * combine.c(simplify_shift_const): Check shift amount is a
1022         CONST_INT.
1023
1024 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1025
1026         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1027         opening asm_out_file.
1028         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1029         reading asm_out_file. Replace fflush after reading asm_out_file
1030         with fseek.
1031         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1032         default and add to HOST_HOOKS_INITIALIZER.
1033         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1034         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1035         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1036         to set mmi.offset padding.
1037          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1038         $(srcdir)/config/i386/winnt.c.
1039         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1040         (i[34567]86-*-uwin*): Likewise.
1041         *i[34567]86-*-interix3*): Likewise.
1042         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1043         * config/i386/host-mingw32.c: New file.
1044         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1045         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1046         (extern_head): Likewise.
1047         (struct export_list) Likewise.
1048         (export_head): Likewise.
1049         (i386_pe_record_external_function): Use ggc_alloc.
1050         (i386_pe_record_exported_symbol): Likewise.
1051         Include "gt-winnt.h" at end.
1052         * doc/hostconfig.texi: Document
1053         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1054
1055 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1056
1057         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1058         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1059         trailing whitespace before EOLs and before TABs.
1060         (MAX_CODE_ALIGN): Remove unused macro.
1061         (CALL_USED_REGISTERS): Reformat and add comments.
1062
1063 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1064
1065         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1066         to enumerate -lmudflap* and dependencies when linking.
1067
1068 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1069
1070         PR target/15822
1071         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1072
1073 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1074
1075         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1076         * genconditions.c (write_header): Back out removal of reload.h.
1077
1078 2004-06-04  Jan Hubicka  <jh@suse.cz>
1079
1080         Re-apply hopefully fixed patch:
1081         * i386.md (UNSPECV_EH_RETURN): Kill.
1082         (eh_return): Use jump_insn.
1083         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1084
1085 2004-06-04  Jeff Law  <law@redhat.com>
1086
1087         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1088
1089 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1090
1091         * except.c (for_each_eh_region): New function.
1092         * except.h (for_each_eh_region): Add a prototype for it.
1093         * tree-cfg.c (update_eh_labels): New function, callback for
1094         for_each_eh_region.
1095         (label_for_bb): Make global static, unfortunately.
1096         (cleanup_dead_labels): Also update label references for
1097         exception regions.
1098
1099 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1100
1101         * config/mips/mips.c (struct irix_section_align_entry): Fix
1102         GTY marker.
1103
1104 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1105
1106         * toplev.c (check_global_declarations): Don't ask for
1107         DECL_ASSEMBLER_NAME unless the function really is declared
1108         static and not defined.
1109
1110 2004-06-03  Matt Austern  <austern@apple.com>
1111
1112         PR c++/15428
1113         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1114         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1115         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1116         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1117         documentation to reflect the new macro name and to clarify its
1118         meaning.
1119
1120 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1121
1122         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1123
1124 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1125
1126         * config/darwin.c (machopic_indirect_data_reference): Copy
1127         the SYMBOL_REF_DECL from the original RTX for the new
1128         non-lazy pointer RTX.
1129
1130 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1131
1132         * tree.h: Remove include of version.h
1133         * c-cppbuiltin.c: Include version.h
1134         * diagnostic.c: Include version.h
1135         * dwarf2out.c: Include version.h
1136         * toplev.c: Include version.h
1137         * vmsdbgout.c: Include version.h
1138         * Makefile.in: Remove dependency on version.h from TREE_H, and
1139         add dependencies to required .o targets
1140
1141 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1142
1143         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1144         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1145         (TARGET_H): Add insn-modes.h.
1146         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1147         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1148         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1149         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1150         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1151         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1152         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1153         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1154         CFGLAYOUT_H.
1155         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1156         Replace ra.h with RA_H.
1157         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1158         insn-recog.o): Replace resource.h with RESOURCE_H.
1159         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1160         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1161         with SCHED_INT_H.
1162         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1163         ra-rewrite.o): Replace df.h with DF_H.
1164         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1165         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1166         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1167         (insn-conditions.o): Remove unused reload.h.
1168         * cfglayout.h: Add include guard.  Include basic-block.h.
1169         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
1170         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1171         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
1172         basic-block.h.
1173         * genconditions.c:  Remove reload.h.
1174         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
1175         hard-reg-set.h, insn-modes.h.
1176         * resource.h: Add include guard.  Include hard-reg-set.h.
1177         * sched-int.h:  Add include guard.  Include insn-attr.h,
1178         basic-block.h, rtl.h.
1179         * target.h: Add include guard.  Include insn-modes.h.
1180         * tree-ssa-live.h: Include partition.h.
1181
1182 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
1183                 Kenneth Zadeck <zadeck@naturalbridge.com>
1184
1185         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1186         (add_var_to_ssa_edges_worklist): Add value argument.
1187         Update callers.
1188         Use new worklist.
1189         (process_ssa_edge_worklist): New function.
1190         (tree_ssa_ccp): Move worklist processing core to
1191         process_ssa_edge_worklist, and just call that for the two worklists.
1192
1193 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1194
1195         * basic-block.c (tail_recursion_label_list): Don't declare.
1196         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
1197         accordingly.
1198         * cfgbuild.c (find_label_refs): Remove.
1199         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1200         * cfgcleanup.c (tail_recursion_label_p): Remove.
1201         (merge_blocks_move): Do not check for tail recursion.
1202         (try_optimize_cfg): Likewise.
1203         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1204         * cfgrtl.c (tail_recursion_label_list): Remove.
1205         * except.c (remove_unreachable_regions): Don't handle
1206         CALL_PLACEHOLDER insns.
1207         (convert_from_eh_region_ranges_1, can_throw_internal,
1208         can_throw_external): Likewise.
1209         * function.c (free_after_compilation): Don't clear
1210         x_tail_recursion_label.
1211         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1212         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1213         (reorder_blocks_1): Likewise.
1214         * function.h (struct function): Remove x_tail_recursion_label
1215         member.  Don't define tail_recursion_label.
1216         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1217         * print-rtl.c (print_rtx): Likewise.
1218         * rtl.def (CALL_PLACEHOLDER): Remove.
1219         * rtl.h (sibcall_use_t): Remove enum.
1220         (optimize_sibling_and_tail_recursive_calls,
1221         replace_call_placeholder): Remove function prototypes.
1222         * stmt.c (tail_recursion_args): Remove.
1223         (optimize_tail_recursion): Remove.
1224         (expand_return): Don't check for possible tail recursion.
1225         * tree.h (optimize_tail_recursion): Remove prototype.
1226
1227 2004-06-02  Jan Hubicka  <jh@suse.cz>
1228
1229         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
1230         return_stmt.
1231
1232 2004-06-02  Jason Merrill  <jason@redhat.com>
1233
1234         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1235         Do include c-parse.in.
1236
1237 2004-06-02  Eric Christopher  <echristo@redhat.com>
1238
1239         * c-typeck.c (common_type): Don't lose type qualifiers
1240         when creating new variants.
1241
1242 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1243
1244         PR tree-optimization/14042
1245         PR tree-optimization/14729
1246         PR tree-optimization/14736
1247         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1248         Check the type which the pointer points to
1249         instead of the pointer types.
1250
1251 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1252
1253         PR tree-optimization/15738.
1254         * builtins.c (fold_builtin_strchr): Transform
1255         strrchr (s, '\0') to strchr (s, '\0').
1256
1257 2004-06-02  Steven Bosscher  <stevenb@suse.de>
1258
1259         * i386.c (ix86_adjust_cost): Don't increase the cost for
1260         load+operation for PROCESSOR_PENTIUMPRO, it is already
1261         modelled in the DFA description
1262
1263 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
1264
1265         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1266         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1267         (ALIAS_H, EMIT_RTL_H): New.
1268         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1269         (cfgcleanup.o): Add EMIT_RTL_H.
1270         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1271         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1272         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1273         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1274         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
1275         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1276         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1277         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1278         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1279         set_mem_size): Move to emit-rtl.h.
1280         * emit-rtl.h: New.
1281         * alias.h: New.
1282
1283 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
1284
1285         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1286         Call fixup_memory_subreg only if the MEM is equal to 'var'.
1287         Adjust recursive calls to self.
1288         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1289
1290 2004-06-01  Richard Henderson  <rth@redhat.com>
1291             Andrew Pinski  <pinskia@physics.uc.edu>
1292
1293         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1294         (primary): Handle offsetof.  Add error productions for faux functions.
1295         Move component_ref objc checking to build_component_ref.
1296         (reswords): Add offsetof.
1297         (rid_to_yy): Add offsetof.
1298         * c-tree.h (build_offsetof): Declare.
1299         * c-common.h (objc_is_public): Declare.
1300         * c-typeck.c (build_component_ref): Check objc_is_public.
1301         (build_offsetof): New.
1302         * stub-objc.c (objc_is_public): New.
1303         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1304         from is_public.
1305         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1306         * doc/extend.texi (Offsetof): Move from C++ section to C section
1307         and rewrite for __builtin_offsetof.
1308
1309 2004-06-01  Peter Barada  <peter@the-baradas.com>
1310             Peter Jakubek  <peter@laseranimation.com>
1311
1312         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
1313         a scratch to perform an add to memory.
1314
1315 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1316
1317         PR target/14018
1318         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1319         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1320         m68k_align_funcs): Remove.
1321         (override_options): Remove code to handle -malign-* options.
1322         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1323         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1324         (m68k_align_loops_string, m68k_align_jumps_string,
1325         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1326         m68k_align_funcs): Remove definitions.
1327
1328 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
1329
1330         PR target/15626
1331         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1332         by the Sun linker in conjunction with the Sun assembler.
1333         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1334
1335 2004-06-01  Jeff Law  <law@redhat.com>
1336
1337         * stmt.c (expand_decl): Be more selective about calling
1338         mark_reg_pointer.
1339
1340 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
1341
1342         PR objc/7993
1343         * objc-act.c (is_private): Do not emit the 'instance variable %s
1344         is declared private' error.
1345         (is_public): Emit the error after calling is_private.
1346         (lookup_objc_ivar): If the instance variable is private, return 0
1347         - the instance variable is invisible here.
1348
1349 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1350
1351         * doc/invoke.texi (-static-libgcc): Explicitly mention
1352         non-GNU linkers.
1353
1354 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1355
1356         PR target/12968
1357         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1358
1359 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1360
1361         PR c/15749
1362         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1363         misuses of structures with flexible array members if
1364         in_system_header.
1365
1366 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1367
1368         PR target/15693
1369         * config/sparc/sparc.c (compare_operand): New predicate.
1370         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1371         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
1372         operand is a ZERO_EXTRACT and the second operand is not zero,
1373         force the former to a register.
1374         (cmpdi expander): Likewise.
1375
1376 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
1377
1378         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1379         looks at.
1380         * alias.c (alias_invariant_size): Make alias_invariant_size
1381         static, fix GTY marker.
1382
1383 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1384
1385         PR tree-optimization/15743.
1386         * builtins.c (fold_builtin_1): Fold index() and rindex().
1387
1388 2004-05-31  Roger Sayle  <roger@eyesopen.com>
1389
1390         PR middle-end/15069
1391         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1392         into "X < 0" (where C is the signbit) if X's type is a full mode.
1393
1394 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1395
1396         * pa.md: Disable the peephole2 patterns that generate indexed
1397         floating-point stores when indexing is disabled.
1398
1399 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1400
1401         * c-pretty-print.c (pp_c_left_bracket): Make a function.
1402         (pp_c_right_bracket): Likewise.
1403         (pp_c_star): Likewise.
1404         (pp_c_ampersand): Define.
1405         * c-pretty-print.h (pp_c_left_bracket): Declare.
1406         (pp_c_right_bracket): Likewise.
1407         (pp_c_star): Likewise.
1408         (pp_c_ampersand): Likewise.
1409
1410 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1411
1412         * config/sol2.h (__enable_execute_stack): ANSIfy function
1413         definition.
1414
1415 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
1416
1417         * c-incpath.c (add_path): Canonicalize paths to use '/' if
1418         HAVE_DOS_BASED_FILESYSTEM.
1419
1420 2004-05-31  Steven Bosscher  <stevenb@suse.de>
1421
1422         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1423         Only look at case labels if the immediate dominator is also
1424         the only predecessor.  Don't look for more case labels if the
1425         first seen is a case range.
1426
1427 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1428
1429         * builtins.c: Add a prototype for fold_builtin_strchr().
1430
1431 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
1432
1433         Revert this patch:
1434         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1435
1436         * combine.c (gen_binary): Remove.
1437         (known_cond, simplify_shift_const
1438         find_split_point, combine_simplify_rtx,
1439         simplify_if_then_else, simplify_set,
1440         simplify_logical, expand_field_assignment,
1441         extract_left_shift, force_to_mode,
1442         if_then_else_cond, apply_distributive_law,
1443         simplify_and_const_int, simplify_shift_const,
1444         gen_lowpart_for_combine, simplify_comparison,
1445         reversed_comparison): Replace with
1446         simplify_gen_binary, simplify_gen_relational or
1447         distribute_and_simplify_rtx.
1448         (distribute_and_simplify_rtx): New function.
1449
1450 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1451
1452         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
1453         when generating PIC code.
1454
1455 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1456
1457         * c-decl.c (c_expand_body_1): Remove and fold back into ...
1458         (c_expand_body): here.
1459         (c_expand_decl): Move to ...
1460         * c-common.c (c_expand_decl): Here and remove check for nested
1461         functions.
1462         * c-common.h (c_expand_decl): Add prototype.
1463         * c-tree.h (c_expand_decl): Remove.
1464
1465 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1466
1467         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
1468         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
1469         fold_mathfn_compare, fold_inf_compare, fold,
1470         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
1471         Use constant_boolean_node where appropriate.  Don't bother using
1472         fold_convert on the second argument to omit_one_operand.
1473
1474 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1475
1476         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
1477         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
1478         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
1479         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
1480         Add missing (but documented) tree nodes to the index.
1481
1482 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1483
1484         PR tree-optimization/14819
1485         * builtins.c (fold_builtin_strchr): New.
1486         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
1487         with fold_builtin_strchr().
1488
1489 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1490
1491         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
1492         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
1493         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
1494         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
1495         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
1496         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
1497         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
1498         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
1499         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
1500         formatting.
1501
1502 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1503
1504         * gimplify.c (sort_case_labels): New.  Split out from...
1505         (gimplify_switch_expr): ...here.  Use it.
1506         * tree-eh.c (lower_try_finally_switch): Sort the labels of
1507         the SWITCH_EXPR created here before leaving the function.
1508         * tree.c (sort_case_labels): Add prototype.
1509
1510 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1511
1512         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
1513         of BOOLEAN_TYPE.
1514
1515 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1516
1517         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
1518         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
1519         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
1520         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
1521         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
1522         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
1523         comment typos.  Follow spelling conventions.
1524
1525 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
1526
1527         * gengtype-yacc.y: Add NESTED_PTR token.
1528         (option): Record `nested_ptr' option.
1529         * gengtype-lex.l: Handle `nested_ptr' keyword.
1530         * gengtype.c (walk_type): Process `nested_ptr' option.
1531         * gengtype.h (struct nested_ptr_data): New.
1532         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
1533         * stringpool.c (struct string_pool_data): Make 'entries' point to
1534         ht_identifier instead of tree.
1535         (gt_pch_save_stringpool): Don't adjust pointers.
1536         (gt_pch_restore_stringpool): Call ht_load.
1537
1538 2004-05-29  Jason Merrill  <jason@redhat.com>
1539
1540         * gimplify.c (gimplify_expr): Don't build a statement list
1541         if no gimplification was necessary.
1542
1543 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1544
1545         * pretty-print.c (pp_base_format_text): Support %< instead of %`
1546         and %> as well as %'.
1547         * c-format.c: Use %< and %>.
1548         (gcc_diag_char_table, gcc_cdiag_char_table,
1549         gcc_cxxdiag_char_table): Update.
1550
1551 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1552
1553         * c-typeck.c (common_type): Correct comment.
1554
1555 2004-05-29  Peter Barada  <peter@the-baradas.com>
1556
1557         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
1558         * config/m68k/m68k.c (const_method): Likewise.
1559         * config/m68k/m68k.c (const_int_cost): Likewise.
1560         * config/m68k/m68k.c (const_int_cost): Likewise.
1561         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
1562
1563 2004-05-29  Peter Barada  <peter@the-baradas.com>
1564
1565         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
1566         addressing.
1567         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
1568         movsi,movhi,movqi insn patterns.
1569
1570 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1571
1572         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
1573
1574         PR target/15720
1575         * config/darwin.c (machopic_indirect_call_target): Copy
1576         the SYMBOL_REF_DECL from the original RTX for the new
1577         stub RTX.
1578
1579 2004-05-28  DJ Delorie  <dj@redhat.com>
1580
1581         * stor-layout.c (place_field): Revert erroneous commit.
1582
1583 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
1584
1585         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
1586         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
1587         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
1588         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
1589         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
1590         vec_ste): Remove type checks for integral parameters and literals
1591         from '..._args_eq' macros.
1592
1593 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1594
1595         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
1596
1597 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1598
1599         * testsuite/g++.dg/charset/function.cc: New.
1600
1601         * testsuite/gcc.dg/charset/function.c: New.
1602
1603         * c-decl.c (c_make_fname_decl): Free return value from
1604         fname_as_string.
1605
1606         * cp/decl.c (cp_make_fname_decl): Free return value from
1607         fname_as_string.
1608
1609         * c-common.c (fname_as_string): Translate if necessary.
1610
1611 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
1612
1613         * stringpool.c: Add comments to PCH saving/restoring routines.
1614
1615 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1616
1617         * c-common.c (c_estimate_num_insns_1): Kill.
1618         (c_estimate_num_insns): Kill.
1619         * c-common.h (c_estimate_num_insns): Kill.
1620
1621         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
1622         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
1623         Remove comment about not checking for
1624         _POSIX_PRIORITY_SCHEDULING.
1625         * gthr-posix.c: Likewise.
1626
1627 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
1628             Roger Sayle  <roger@eyesopen.com>
1629
1630         PR rtl-optimization/15649
1631         Add LTGT_EXPR and improve pretty-printing of unordered
1632         comparisons.
1633         * c-common.c (c_common_truthvalue_conversion):
1634         Handle LTGT_EXPR.
1635         * c-typeck.c (build_binary_op): Likewise.
1636         * dojump.c (do_jump): Likewise.
1637         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
1638         * predict.c (tree_predict_by_opcode): Likewise.
1639         * real.c (real_compare): Likewise.
1640         * tree-cfg.c (verify_expr): Likewise.
1641         * tree-inline.c (estimate_num_insns_1): Likewise.
1642         * tree-pretty-print.c (dump_generic_node): Likewise.
1643         Handle ORDERED_EXPR, UNORDERED_EXPR.
1644         (op_symbol): Print unordered comparisons differently
1645         than ordered ones.
1646         * tree.def (LTGT_EXPR): New '<' tree code.
1647         * doc/c-tree.texi (Expressions): Document floating-point
1648         comparison nodes.
1649
1650         Fold comparisons between floating point values.
1651         * fold-const.c (enum comparison_code): New, from
1652         #define'd constants.  Define compcodes for unordered
1653         comparisons and for invalid transformations.
1654         (invert_tree_comparison): Add "honor_nans" parameter.
1655         (fold_truthop): Revamp to work on floating-point types too.
1656         (comparison_to_compcode): Support unordered comparisons.
1657         Use new enum comparison_code.
1658         (compcode_to_comparison): Likewise.
1659         (combine_compcodes): New function.
1660         (invert_truthvalue): Let invert_tree_comparison decide
1661         whether it is valid to fold the comparison.  Fold ORDERED
1662         and UNORDERED even if flag_unsafe_math_optimizations is off,
1663         and the remaining even if flag_unsafe_math_optimizations
1664         is off but we are under -fno-trapping-math.
1665         (fold_relational_const): Integer modes do not honor NaNs.
1666
1667 2004-05-28  Paul Brook  <paul@codesourcery.com>
1668
1669         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
1670
1671 2004-05-28  Paul Brook  <paul@codesourcery.com>
1672
1673         * config/arm/arm.c (thumb_force_lr_save): New function.
1674         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
1675         thumb_output_function_prologue): Use it.
1676         (thumb_expand_prologue): Set lr_save_eliminated.
1677
1678 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
1679
1680         * config/mips/mips.md (extendsidi2): Tie the source and destination
1681         of the register alternative.  Split it into nothing.
1682
1683 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
1684
1685         * rtl.h (skip_consecutive_labels): Declare.
1686         * emit-rtl.c (skip_consecutive_labels): New function.
1687         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
1688         * jump.c (follow_jumps): Say what null return values mean.
1689
1690 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1691
1692         PR target/13250
1693         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
1694
1695 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1696
1697         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
1698         libgcc-std.ver.
1699         * config/sh/libgcc-std.ver: New file.
1700
1701 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
1702
1703         * except.c: Revert change of 2004-05-26.
1704         * config/i386/i386.md: Revert change of 2004-05-27.
1705
1706 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
1707
1708         * configure.ac: Remove --enable-tree-browser option.
1709         Define TREEBROWSER when ac_tree_checking is defined.
1710         * configure: Rebuilt.
1711
1712 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
1713
1714         * expr.c (store_constructor): Restore sanity check on
1715         the size of the type before clearing.
1716
1717 2004-05-27  Jan Hubicka  <jh@suse.cz>
1718
1719         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
1720
1721 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1722
1723         * combine.c (gen_binary): Remove.
1724         (known_cond, simplify_shift_const
1725         find_split_point, combine_simplify_rtx,
1726         simplify_if_then_else, simplify_set,
1727         simplify_logical, expand_field_assignment,
1728         extract_left_shift, force_to_mode,
1729         if_then_else_cond, apply_distributive_law,
1730         simplify_and_const_int, simplify_shift_const,
1731         gen_lowpart_for_combine, simplify_comparison,
1732         reversed_comparison): Replace with
1733         simplify_gen_binary, simplify_gen_relational or
1734         distribute_and_simplify_rtx.
1735         (distribute_and_simplify_rtx): New function.
1736         * simplify-rtx.c (simplify_binary_operation):
1737         Use nonzero_bits to simplify ANDs where we are
1738         turning off bits already known to be off in OP0.
1739
1740 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
1741
1742         PR target/14478
1743         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
1744
1745 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
1746
1747         PR middle-end/14084
1748         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
1749         to size of decl.
1750
1751 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
1752
1753         PR/14924
1754         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
1755
1756 2004-05-26  Roger Sayle  <roger@eyesopen.com>
1757
1758         * tree.h: Fix comment typo.
1759
1760 2004-05-27  Steven Bosscher  <stevenb@suse.de>
1761
1762         * gimplify.c (compare_case_labels): New function.
1763         (gimplify_switch_expr): Sort case labels, and make sure the
1764         last label in the label vector is the default case.
1765         * tree-cfg.c (group_case_labels): New function.
1766         (build_tree_cfg): Cleanup redundant labels and group case labels
1767         before creating edges.
1768         (cleanup_dead_labels): Handle GOTO_EXPRs.
1769         (find_case_label_for_value): Use a binary search to find the
1770         case label for the given value.
1771         * tree-gimple.c: Mention that labels are sorted, and that the
1772         last label must be the default.
1773
1774 2004-05-27  Jan Hubicka  <jh@suse.cz>
1775
1776         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
1777
1778 2004-05-27  Jan Hubicka  <jh@suse.cz>
1779
1780         * i386.md (UNSPECV_EH_RETURN): Kill.
1781         (eh_return): Use jump_insn.
1782         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1783
1784 2004-05-26  Jan Hubicka  <jh@suse.cz>
1785
1786         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
1787         not loop optimizing.
1788
1789 2004-05-26  Jan Hubicka  <jh@suse.cz>
1790
1791         * except.c (can_throw_internal):  Notice RESX instructions.
1792
1793 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
1794
1795         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
1796         of the two sizes to assemble_integer.
1797
1798 2004-05-25  Paul Brook  <paul@codesourcery.com>
1799
1800         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
1801         pointless #ifdef.
1802
1803 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
1804
1805         * Makefile.in (top_builddir): Define to .
1806
1807 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
1808
1809         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
1810         top-level detects, except when in-tree ld is being cross-built.
1811         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
1812         then AS only if target is host.
1813         * configure: Rebuilt.
1814
1815 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
1816
1817         * global.c (global_alloc): Call make_accurate_live_analysis.
1818         (record_one_conflict): Remove dead code.
1819         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
1820         (bb_info): New structure.
1821         (BB_INFO, BB_INFO_BY_INDEX): New macros.
1822         (allocate_bb_info, free_bb_info, mark_reg_change,
1823         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
1824         modify_bb_reg_pav, calculate_reg_pav,
1825         make_accurate_live_analysis): New functions.
1826
1827 2004-05-25  Devang Patel  <dpatel@apple.com>
1828
1829         * alias.c (init_alias_analysis): Use ggc_calloc instead of
1830         xrealloc.
1831         (end_alias_analysis): Use ggc_free instead fo free.
1832
1833 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
1834
1835         PR target/15546
1836         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
1837         as needed to be outputted.
1838
1839 2004-05-25  Jan Hubicka  <jh@suse.cz>
1840
1841         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
1842
1843 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
1844         Mostafa Hagog  <mustafa@il.ibm.com>
1845
1846         * Makefile.in (modulo-sched.o, ddg.o): New.
1847         * ddg.h, ddg.c, modulo-sched.c: New files.
1848         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
1849         internals to "dupicate_insn".
1850         (duplicate_insn): New function.
1851         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
1852         declarations.
1853         * common.opt (fmodulo-sched): New flag.
1854         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
1855         Remove static and forward declaration.
1856         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
1857         functions.
1858         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
1859         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
1860         declarations.
1861         * flags.h (flag_modulo_sched): New flag.
1862         * opts.c (common_handle_option): Handle modulo-sched flag.
1863         * params.def (max-sms-loop-number, sms-max-ii-factor,
1864         sms-dfa-history, sms-loop-average-count-threshold): New
1865         parameters.
1866         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
1867         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
1868         parameters.
1869         * passes.c ("sms", "sms-vcg"): New dumps.
1870         (rest_of_handle_sched): Call sms_schedule.
1871         * rtl.h (sms_schedule): New declaration.
1872         * timevar.def (TV_SMS): New.
1873         * toplev.c (flag_modulo_sched): Initialize.
1874         (f_options): Handle -fmodulo-sched option.
1875         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
1876         * docs/passes.texi: Document new SMS pass.
1877
1878 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
1879
1880         * Makefile.in (OBJS): Add rtlhooks.o.
1881         (rtlanal.o): Depend on function.h.
1882         (cse.o): Depend on rtlhooks-def.h.
1883         (combine.o): Depend on rtlhooks-def.h.
1884         (rtlhooks.o): New rule.
1885         * combine.c: Include rtlhooks-def.h.
1886         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
1887         num_sign_bit_copies, cached_num_sign_bit_copies,
1888         num_sign_bit_copies1): Move most of the code to rtlanal.c.
1889         (reg_nonzero_bits_for_combine,
1890         reg_num_sign_bit_copies_for_combine): New functions holding
1891         the remnants of the above.
1892         (combine_rtl_hooks): New.
1893         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
1894         * cse.c: Include rtlhooks-def.h.
1895         (cse_rtl_hooks): New.
1896         (cse_main): Set rtl_hooks instead of gen_lowpart.
1897         * emit-rtl.c (gen_lowpart): Remove.
1898         (gen_lowpart_general): Move to rtlhooks.c.
1899         * rtl.h (nonzero_bits, num_sign_bit_copies,
1900         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
1901         (gen_lowpart_general): Remove.
1902         (gen_lowpart): Temporarily redefine as a macro.
1903         * rtlanal.c: Include function.h.
1904         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
1905         num_sign_bit_copies, cached_num_sign_bit_copies,
1906         num_sign_bit_copies1): New, from combine.c.
1907         * rtlhooks.c: New file.
1908         * rtlhooks-def.h: New file.
1909
1910 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
1911
1912         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
1913         to support 32-bit -mint8 mode.
1914
1915         * doc/invoke.texi (-mint8): Added documentation for the -mint8
1916         option in the AVR architecture.
1917
1918 2004-05-24  Mike Stump  <mrs@apple.com>
1919
1920         * doc/install.texi: Document that dejagnu 1.4.4 is required.
1921
1922 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
1923
1924         * intl.h (open_quote, close_quote): New.
1925         * intl.c (open_quote, close_quote): New.
1926         (gcc_init_libintl): Set them.
1927         * pretty-print.c: Include "intl.h".
1928         (pp_base_format_text): Support 'q' format flag and %` and %'
1929         formats.  Use ' instead of ` in comments.
1930         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
1931         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
1932         foramt_types_orig): Describe these new formats.
1933         (decode_format_attr, check_function_format,
1934         check_format_info_main): Use these new formats.
1935         (status_warning): Use ATTRIBUTE_GCC_DIAG.
1936         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
1937         check these formats to 3.5.
1938
1939 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1940
1941         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
1942         (BACKEND): Reflect this.
1943         (LIBDEPS): Move CPPLIB before LIBIBERTY.
1944         (LIBS): Likewise.
1945
1946 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
1947
1948         PR tree-optimization/14197
1949         * builtins.c: Include "tree-gimple.h"
1950         (readonly_data_expr): Use get_base_address.  Make sure to call
1951         decl_readonly_section only on trees it can handle.
1952         * tree-gimple.c (get_base_address): Accept STRING_CST and
1953         CONSTRUCTOR expressions.
1954         * Makefile.in: Update dependencies.
1955
1956 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
1957
1958         Move libcpp to the toplevel.
1959         * Makefile.in: Remove references to libcpp files,
1960         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
1961         and change hashtable.h to that.
1962         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
1963         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
1964         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
1965         * configure: Regenerate.
1966         * config.in: Regenerate.
1967         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
1968         * cppcharset.c: Removed.
1969         * cpperror.c: Removed.
1970         * cppexp.c: Removed.
1971         * cppfiles.c: Removed.
1972         * cpphash.c: Removed.
1973         * cpphash.h: Removed.
1974         * cppinit.c: Removed.
1975         * cpplex.c: Removed.
1976         * cpplib.c: Removed.
1977         * cpplib.h: Removed.
1978         * cppmacro.c: Removed.
1979         * cpppch.c: Removed.
1980         * cpptrad.c: Removed.
1981         * cppucnid.h: Removed.
1982         * cppucnid.pl: Removed.
1983         * cppucnid.tab: Removed.
1984         * hashtable.c: Removed.
1985         * hashtable.h: Removed.
1986         * line-map.c: Removed.
1987         * line-map.h: Removed.
1988         * mkdeps.c: Removed.
1989         * mkdeps.h: Removed.
1990         * stringpool.h: Include symtab.h instead of hashtable.h.
1991         * tree.h: Include symtab.h instead of hashtable.h.
1992         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
1993
1994 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
1995
1996         * gcc.c (struct prefix_list): Add forward declaration.
1997         (do_spec_path): New function, extracted from...
1998         (do_spec_1) <'D'>: ... here.  Drop support for
1999         SPACE_AFTER_L_OPTION.
2000         (do_spec_1) <'I'>: Use do_spec_path.
2001         (process_command): Do not store the 'include' suffix
2002         in include_prefixes.
2003         * system.h: Poison SPACE_AFTER_L_OPTION.
2004
2005 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2006
2007         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2008         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2009
2010 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2011
2012         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2013         Update based on printed manual.  Enable setting of offsets for
2014         FSFPRINT and move it to gcc-common.texi.
2015         * doc/gcc.texi: Update FSF printing details.
2016         * doc/gccint.texi: Remove FSF printing details.
2017
2018 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2019
2020         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2021
2022 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2023
2024         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2025         expand_builtin_strrchr, expand_builtin_strpbrk,
2026         expand_builtin_mempcpy, expand_builtin_memcmp,
2027         expand_builtin_strcmp, expand_builtin_strncmp,
2028         expand_builtin_strcat, std_expand_builtin_va_start,
2029         std_expand_builtin_va_arg, expand_builtin_va_copy,
2030         expand_builtin_signbit, fold_builtin_cabs,
2031         fold_builtin_logarithm, fold_builtin_mempcpy,
2032         fold_builtin_signbit, fold_builtin_isascii,
2033         fold_builtin_toascii, fold_builtin_isdigit,
2034         fold_builtin_1, build_function_call_expr,
2035         simplify_builtin_strchr, simplify_builtin_strrchr,
2036         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2037         simplify_builtin_memcmp, simplify_builtin_strcmp,
2038         simplify_builtin_strncmp, simplify_builtin_strncat,
2039         simplify_builtin_strspn, simplify_builtin_strcspn,
2040         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2041         to build with calls to build2, build3 or omit_one_operand.
2042
2043 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2044
2045         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2046         section when generating EABI code.
2047
2048 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2049
2050         PR 15546
2051         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2052         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2053
2054 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2055
2056         * c-common.c (c_common_truthvalue_conversion): Handle
2057         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2058         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2059         i.e. set the type to truthvalue_type_node and return.
2060
2061 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2062
2063        * tree.h (struct tree_decl): Add possibly_inlined bit.
2064         (DECL_POSSIBLY_INLINED): New accessor macro.
2065         * cgraph.h: Remove declaration of cgraph_inline_hash.
2066         * cgraph.c: Remove definition of cgraph_inline_hash.
2067         (hash_node): Revert to hashing DECL_UID.
2068         (eq_node): Take two pointers to cgraph_node structures.
2069         Compare DECL_UIDs.
2070         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2071         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2072         hash on DECL_UID.
2073         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2074         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2075         (cgraph_node): Allocate a temporary node on the stack, fill in
2076         its DECL field, and pass that to htab_find_slot.
2077         (cgraph_varpool_node): Likewise.
2078         (cgraph_function_possibly_inlined_p): If global info is ready,
2079         return the DECL_POSSIBLY_INLINED bit.
2080         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2081         instead of mucking with cgraph_inline_hash.
2082
2083 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2084
2085         * doc/contrib.texi: Add g77 contributors.
2086
2087 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2088
2089         * calls.c (initialize_argument_information): Forbid sibcalls if a
2090         callee-copied argument is stored in the current function's frame.
2091
2092 2004-05-22  Eric Christopher  <echristo@redhat.com>
2093
2094         * fix-header.c (read_scan_file): Update for add_path change.
2095
2096 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2097
2098         * c.opt (Wmissing-include-dirs): New.
2099         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2100         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2101         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2102         * c-incpath.h (add_path): Add fourth (bool) argument.
2103         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2104         (add_standard_paths): Likewise.
2105         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2106         is used and the directory was user-supplied via -I.
2107         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2108         using add_cpp_dir_path ().
2109         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2110         (struct cpp_dir): Add user_supplied_p.
2111         * doc/invoke.texi (Warning Options): Document new option.
2112
2113 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2114
2115         * fold-const.c (fold_read_from_constant_string): Convert result to
2116         requested type.
2117
2118 2004-05-21  Richard Henderson  <rth@redhat.com>
2119
2120         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2121         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2122         Don't mark VA_ARG_EXPRs volatile here.
2123         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2124
2125 2004-05-21  Richard Henderson  <rth@redhat.com>
2126
2127         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2128         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2129
2130 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2131
2132         * fold-const.c (fold, fold_relational_hi_lo,
2133         nondestructive_fold_binary_to_constant,
2134         fold_read_from_constant_string): Use fold_convert instead of convert.
2135         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2136         simplify_builtin_strchr, simplify_builtin_strrchr,
2137         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2138
2139 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2140
2141         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2142         is NULL.
2143
2144 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2145
2146         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2147         override sparc.h definition.
2148
2149 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2150
2151         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2152         get_unwidened, get_narrower): Replace build with build2.
2153         * fold-const.c (negate_expr, associate_trees, size_binop,
2154         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2155         pedantic_omit_one_operand, distribute_bit_expr,
2156         make_bit_field_ref, optimize_bit_field_compare,
2157         decode_field_reference, range_binop, make_range,
2158         build_range_check, fold_range_test, fold_truthop,
2159         optimize_minmax_comparison, extract_muldiv_1,
2160         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2161         fold_inf_compare, fold_single_bit_test, fold,
2162         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2163         Likewise replace build with either build2 or build3.
2164
2165 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
2166
2167         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2168         * calls.c (prepare_call_address): Don't test
2169         NO_RECURSIVE_FUNCTION_CSE.
2170         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2171         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2172         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2173         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2174         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2175         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2176         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2177         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2178         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2179         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2180         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2181         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2182         Likewise.
2183         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2184         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2185         * doc/tm.texi (Costs): Remove documentation for
2186         NO_RECURSIVE_FUNCTION_CSE.
2187
2188 2004-05-20  Paul Brook  <paul@codesourcery.com>
2189
2190         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2191         * unwind-dw2.c (extract_cie_info): Ditto.
2192         (_Unwind_FrameState): Change retaddr_column to word type.
2193
2194 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2195
2196         PR middle-end/3074
2197         * fold-const.c (strip_compound_expr): Delete function.
2198         (count_cond): Delete function.
2199         (fold_binary_op_with_conditional_arg): Only perform transformations
2200         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2201         when a is constant.  This greatly simplifies this routine.
2202
2203         * tree.c (saved_expr_p): Delete function.
2204         * tree.h (saved_expr_p): Delete function prototype.
2205
2206 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2207
2208         * common.opt (ftree-loop-optimize): Remove.
2209
2210 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
2211
2212         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2213         (NM_FOR_TARGET): Use := and $(shell).
2214         (mainversion): Remove unused variable.
2215
2216 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2217
2218         * reorg.c (delete_from_delay_slot): If we have a barrier after the
2219         sequence containing the insn to be deleted, always reemit it.
2220
2221 2004-05-20  Richard Henderson  <rth@redhat.com>
2222
2223         PR 15454
2224         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2225         * function.c (expand_function_start): Expand static_chain_decl by hand.
2226         * gimplify.c (create_tmp_var_name): Export.
2227         * tree-gimple.h (create_tmp_var_name): Declare.
2228
2229 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2230
2231         * rs6000.c (print_operand) <case 'z'>: Call
2232         mark_decl_referenced before assemble_name.
2233
2234 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
2235
2236         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2237         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2238         (cgraph_varpool_node): Hash on the pointer to the decl, not
2239         the DECL_UID.  Fixes 64-bit bootstrap failure.
2240
2241 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
2242
2243         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2244         we don't earlyclobber operands used in the second insn.
2245
2246 2004-05-20  Steven Bosscher  <stevenb@suse.de>
2247
2248         * tree-mudflap.c: Formatting fixes.
2249
2250 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2251
2252         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2253         * gengtype.c (open_base_files): Include reload.h in ifiles.
2254         * reload.h (reg_equiv_memory_loc_varray): Declare.
2255         * reload1.c (reg_equiv_memory_loc_varray): New variable.
2256         (init_reload): Initialize it.
2257         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2258         reg_equiv_memory_loc_varray to size 0.
2259         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2260         growing reg_equiv_memory_loc_varray to the desired size.
2261         * passes.c (rest_of_handle_old_regalloc): Likewise.
2262         * reload.c: Amend comment on calling init_reload.
2263
2264 2004-05-20  Nick Clifton  <nickc@redhat.com>
2265
2266         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2267         with 'TRAMP' in the body of the macro definition.
2268
2269 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2270
2271         PR target/15383
2272         * config/ia64/ia64.c (ia64_expand_compare): Don't check
2273         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2274         cmptf_libfunc isn't set.
2275         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2276         conventions.
2277         (ia64_sysv4_init_libfuncs): New.
2278
2279         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2280         ia64_sysv4_init_libfuncs.
2281
2282 2004-05-20  Falk Hueffner  <falk@debian.org>
2283
2284         PR other/15526
2285         * libgcc2.c (__mulvsi3): Fix overflow test.
2286
2287 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
2288
2289         PR c/14171
2290         * reg-stack.c (nan): Rename to ...
2291         (not_a_num): Here.
2292         (reg_to_stack): Rename nan to not_a_num.
2293         (subst_stack_regs_pat): Likewise.
2294         (convert_regs_entry): Likewise.
2295         (convert_regs_1): Likewise.
2296
2297         * tree-cfg.c (find_case_label_for_value): Replace call to
2298         simple_cst_equal with tree_int_cst_equal.
2299
2300 2004-05-19  Jeff Law <law@redhat.com>
2301
2302         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2303         If the operand is for a use, then strip away the SSA_NAME, do not
2304         strip away the SSA_NAME for a set.  Never call release_ssa_name.
2305         (mark_def_sites): Appropriately pass additional argument to
2306         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
2307         then set the VDEF_RESULT to the VDEF_OP.
2308         (set_def_block): Strip away any SSA_NAME to get to the real
2309         underlying variable.
2310
2311         * tree-ssa-phiopt.c (value_replacement): Handle the case where
2312         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2313         BB directly.
2314
2315 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2316
2317         PR c++/15463
2318         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
2319         result of inverse.
2320
2321         PR rtl-optimization/15274
2322         * loop-iv.c (determine_max_iter, shorten_into_mode,
2323         iv_number_of_iterations): Handle constants correctly.
2324         * rtl.h (get_mode_bounds): Declaration changed.
2325         * stor-layout.c (get_mode_bounds): Return a constant suitable for
2326         the target mode.
2327
2328         PR rtl-optimization/14692
2329         * loop-unswitch.c (may_unswitch_on): Try folding the result.
2330         (unswitch_single_loop): Work correctly when may_unswitch_on
2331         returns a folded constant.
2332
2333         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2334         * simplify-rtx.c (simplify_const_relational_operation): Optimize
2335         comparisons with mode bounds.
2336
2337         * function.c (struct temp_slot): Add new field prev.
2338         (free_after_compilation, init_temp_slots): Free new fields.
2339         (cut_slot_from_list, insert_slot_to_list,
2340         temp_slots_at_level, max_slot_level, move_slot_to_level,
2341         make_slot_available): New functions.
2342         (assign_stack_temp_for_type, combine_temp_slots,
2343         find_temp_slot_from_address, preserve_temp_slots,
2344         preserve_rtl_expr_result, free_temp_slots,
2345         free_temps_for_rtl_expr, pop_temp_slots): Work with
2346         the new structure of lists.
2347         (mark_all_temps_used): Removed.
2348         * function.h (struct function): Field x_temp_slots
2349         replaced by x_used_temp_slots and x_avail_temp_slots.
2350         (temp_slots): Replaced by ...
2351         (used_temp_slots, avail_temp_slots): New.
2352         * tree.h (mark_all_temps_used): Declaration removed.
2353
2354         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2355         simplify_using_assignment): Take the expression out of
2356         the expr_list wrapper.
2357
2358         * loop-iv.c (iv_number_of_iterations): Improve clasification of
2359         infinite loops.
2360
2361 2004-05-19  Roger Sayle  <roger@eyesopen.com>
2362
2363         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2364         costs should be based on code size when optimizing for size.
2365
2366 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
2367
2368         * fold-const.c: Remove non-printable character 160.
2369
2370 2004-05-19  Nick Clifton  <nickc@redhat.com>
2371
2372         * doc/invoke.texi (ARM Options): Fix typo.
2373         Remove descrption of -mshort-load-bytes and
2374         -mno-short-load-bytes.
2375
2376         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2377         missing parenthesis.
2378         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2379         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2380
2381 2004-05-19  Steven Bosscher  <stevenb@suse.de>
2382
2383         * expr.c (store_constructor): Build loop start and end by hand
2384         instead of via loop functions from stmt.c.
2385         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2386         Remove the code to expand them.
2387
2388         * stmt.c (loop_stack): Remove this and everything related.
2389         (struct nesting, enum nesting_desc): Update.
2390         (expand_fixup): Likewise.
2391         (expand_loop_start, expand_start_loop_continue_elsewhere,
2392         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2393         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
2394         expand_exit_loop_if_false, expand_exit_loop_top_cond,
2395         expand_exit_something): Remove.
2396         * tree.h: Remove prototypes.
2397
2398 2004-05-18  Mike Stump  <mrs@apple.com>
2399             Devang Patel  <dpatel@apple.com>
2400
2401         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
2402         if this label is for eh.
2403         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
2404         * config/darwin.c (darwin_emit_unwind_label): Likewise.
2405         * dwarf2out.c (output_call_frame_info): Likewise.
2406         * output.h (default_emit_unwind_label): Likewise.
2407         * target.h (unwind_label): Likewise.
2408         * varasm.c (default_emit_unwind_label): Likewise.
2409
2410         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2411         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
2412         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
2413         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
2414         DEBUG_RANGES_SECTION): Define.
2415
2416 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
2417
2418         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2419         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2420         (cgraph_varpool_node):
2421         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
2422         (cgraph_function_possibly_inlined_p): Use the decl itself for
2423         the key, not DECL_ASSEMBLER_NAME.
2424         (change_decl_assembler_name): No need to muck with the hash tables.
2425         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
2426         Delete.
2427         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
2428         for the key, not DECL_ASSEMBLER_NAME.
2429         * cgraph.h: Remove prototypes of deleted functions.
2430         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
2431         (mark_decl_referenced): New function.
2432         * tree.h: Prototype mark_decl_referenced.
2433         * final.c (output_addr_const) <case SYMBOL_REF>: Call
2434         mark_decl_referenced before assemble_name.
2435         * c-decl.c (finish_decl): Use mark_decl_referenced.
2436
2437 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
2438             Jeff Law <law@redhat.com>
2439
2440         * tree-ssa-phiopt.c (abs_replacement): New function.
2441         (empty_block_p): New function extracted from...
2442         (candidate_bb_for_phi_optimization): Break out empty block test.
2443         (conditional_replacement): Use empty_block_p.
2444         (value_replacement): Similarly.
2445
2446         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
2447         * tree-ssa-phiopt.c: Include flags.h.
2448         (conditional_replacement): Remove argument names from prototype.
2449         Minor formatting and comment fixes.
2450         (tree_ssa_phiopt): If conditional_replacement returns false, then
2451         call value_replacement.
2452         (value_replacement): New function.
2453
2454 2004-05-18  Jeff Law  <law@redhat.com>
2455
2456         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
2457         from conditional_replacement.
2458         (candidate_bb_for_phi_optimization): Similarly.
2459         (conditional_replacement): Use replace_phi_with_stmt and
2460         candidate_bb_for_phi_optimization.
2461
2462         * tree-ssa-phiopt.c: Fix various formatting issues.
2463
2464 2004-05-18  Steven Bosscher  <stevenb@suse.de>
2465
2466         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
2467         s390_expand_cmpmem): Do not use expand_start_loop and
2468         expand_end_loop, instead build the loop manually.
2469
2470 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
2471
2472         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
2473         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
2474
2475 2004-05-17  Jeff Law  <law@redhat.com>
2476
2477         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
2478         * flags.h (flag_delete_null_pointer_checks): Here.
2479         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
2480         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
2481         (add_phi_arg, remove_phi_arg_num): Similarly.
2482         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
2483         property into PHI nodes.
2484         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
2485         (record_equivalences_from_phis): If all PHI arguments are known to be
2486         nonzero, then the result must be nonzero as well.
2487         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
2488         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
2489         appropriately.  Walk the USE-DEF chains and propagate nonzero property
2490         as appropriate.
2491         * tree.h (PHI_ARG_NONZERO): Define.
2492         (phi_arg_d): Add nonzero flag.
2493
2494 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
2495
2496         * f: Entire directory removed
2497
2498         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
2499         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
2500         (g77_integer_type_node, g77_uinteger_type_node)
2501         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
2502         * c-common.c (c_common_nodes_and_builtins): Do not initialize
2503         the above set of variables.
2504
2505         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
2506         * doc/invoke.texi, doc/standards.texi: Remove cross-references
2507         to g77 manual.
2508
2509 2004-05-17  Steven Bosscher  <stevenb@suse.de>
2510
2511         PR tree-optimization/15438
2512         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
2513         attributed functions as pure or const.
2514
2515 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
2516
2517         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
2518         from source code with errors.
2519
2520 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
2521
2522         Enable tree browser for all front ends.
2523         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
2524         (BACKEND): ...to here.
2525
2526 2004-05-17  Jan Hubicka  <jh@suse.cz>
2527
2528         * i386.c (construct_container): Do not produce BLKmode registers.
2529         (classify_argument): Properly compute alignment of complex types.
2530
2531 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
2532
2533         PR target/15084
2534         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
2535         and renamed to movdi_insv_1_rex64.
2536         (insv): Support SImode for 32bit and DImode for 64bit.
2537
2538 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2539
2540         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
2541         (TARGET_SWITCHES): Remove debugg.
2542         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
2543         TARGET_64BIT.
2544         (subdi3): Replace the define_expand with a define_insn, the latter
2545         renamed from subdi3_internal_3.
2546         (negdi2): Likewise negdi2_internal_2.
2547         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
2548         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
2549         and associated define_splits.
2550         (adddi3_internal): Renamed from adddi3_internal_3.
2551         (ashldi3_internal): Likewise ashldi3_internal4.
2552         (ashrdi3_internal): Likewise ashrdi3_internal4.
2553         (lshrdi3_internal): Likewise lshrdi3_internal4.
2554
2555 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2556
2557         * optabs.c (expand_unop): Try implementing negation using subtraction
2558         from zero.
2559
2560 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2561
2562         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
2563         SAR register.
2564
2565 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
2566
2567         PR target/10982
2568         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
2569         (ne_zeroextractsi_shifted): New pattern.
2570         (ite_ne_zeroextractsi): New pattern.
2571         (ite_ne_zeroextractsi_shifted): New pattern.
2572
2573 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2574
2575         * c-gimplify.c (c_genericize):
2576         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
2577         * c-parse.in <expr_no_commas>: Likewise.
2578         <if_prefix>: Likewise.
2579         <select_or_iter_stmt>: Likewise.
2580         * expr.c (expand_var, expand_expr_real_1): Likewise.
2581         * expr.h (expand_expr): Make it a static inline function.
2582         Move prototype for expand_expr_real up before this.
2583         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
2584         Likewise.
2585         * gimplify.c (gimple_boolify, gimplify_addr_expr,
2586         gimplify_asm_expr, gimplify_expr): Likewise.
2587         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
2588         dump_function_to_file): Likewise.
2589         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
2590         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
2591         * tree-into-ssa.c (dump_tree_ssa): Likewise.
2592         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
2593         Likewise.
2594         * tree-optimize.c (execute_one_pass): Likewise.
2595         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
2596         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
2597
2598         * objc/objc-act.c (objc_build_try_enter_fragment,
2599         objc_build_try_epilogue, objc_build_catch_stmt,
2600         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
2601         with lang_hooks.foo ().
2602
2603 2004-05-15  Roger Sayle  <roger@eyesopen.com>
2604
2605         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
2606         that simplify_builtin doesn't destructively modify its argument.
2607
2608 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2609
2610         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
2611         implementations for ARM and Thumb.
2612         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
2613
2614 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
2615
2616         * prefix.c (update_path): Replace PREFIX with KEY only
2617         when it matches a full directory name in PATH.
2618
2619 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2620
2621         * arm.h (TARGET_APCS_32): Delete.
2622         (TARGET_MMU_TRAPS): Delete.
2623         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
2624         define __APCS_26__.
2625         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
2626         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
2627         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
2628         (prog_mode_type): Delete.
2629         (PROMOTE_MODE): Always promote unsigned for HImode.
2630         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
2631         (MASK_RETURN_ADDR): Simplify.
2632         * arm.c (arm_prgmode): Delete.
2633         (arm_override_options, arm_gen_rotated_half_load): Simplify.
2634         (print_multi_reg, output_return_instruction): Simplify.
2635         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
2636         (arm_return_addr): Simplify.
2637         * arm.md (prog_mode): Delete.
2638         (conds): Simplify.
2639         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
2640         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
2641         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
2642         (loadhi_shiftpredec): Delete.
2643         (peephole for post-increment on HImode load): Delete.
2644         * arm/crtn.asm: (FUNC_END): Simplify.
2645         * arm/lib1funcs.asm: Remove APCS-26 return macros.
2646         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
2647         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
2648         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
2649         MULTILIB_DEFAULTS as required.
2650         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
2651         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
2652         variables as required.
2653         * doc/invoke.texi (ARM Options): Remove obsolete flags.
2654
2655 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
2656
2657         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
2658         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
2659         count to 8 to handle n_reg > 2.
2660
2661 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2662
2663         * doc/extend.texi: Update WG14 URL.
2664
2665 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2666
2667         * basic-block.h (life_analysis, delete_noop_moves):
2668         Update prototypes.
2669         * bt-load.c (branch_target_load_optimize): Don't take the
2670         insns stream as an argument.  Update the life_analysis calls.
2671         * combine.c (combine_instructions): Update delete_noop_moves
2672         calls.
2673         * flow.c (notice_stack_pointer_modification): Don't take the
2674         insns stream as an argument.  Work on the flow graph.
2675         (life_analysis): Likewise.
2676         (delete_noop_moves): Likewise.
2677         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
2678         (rest_of_handle_life): Update life_analysis call.
2679         (rest_of_compilation): Likewise, and also update
2680         branch_target_load_optimize call.
2681         * ra.c (reg_alloc): Update life_analysis call.
2682         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
2683         the insns stream as an argument.
2684         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
2685         call.
2686         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
2687         prototypes.
2688         * value-profile.c (branch_prob): Update life_analysis call.
2689         * web.c (web_main): Work on the CFG, not on the insns stream.
2690
2691         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
2692         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
2693         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2694
2695 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2696
2697         PR c/15444
2698         * c-format.c (avoid_dollar_number): New function.
2699         (check_format_info_main): Call avoid_dollar_number when operand
2700         numbers might occur but has_operand_number == 0.
2701
2702 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
2703
2704         * arm.md (all peephole2 patterns): Use predicates that validate
2705         register classes as appropriate.
2706
2707 2004-05-14  Steven Bosscher  <stevenb@suse.de>
2708
2709         PR opt/14472
2710         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
2711         ignore type conversions that do not inhibit tail calling.
2712         (find_tail_calls): Likewise.
2713
2714 2004-05-14  Jeff Law  <law@redhat.com>
2715
2716         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
2717         bother marking bypassed virtuals for out-of-ssa.  Instead merge
2718         bypassed virtuals into vars_to_rename just before into-ssa pass.
2719
2720         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
2721         so that it picks up more opportunities to eliminate ABS expressions
2722         or turn them into negations.
2723
2724 2004-05-14  Steven Bosscher  <stevenb@suse.de>
2725
2726         * passes.c (rest_of_handle_null_pointer): Remove.
2727         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
2728         (rest_of_compilation): Likewise.
2729         * rtl.h (delete_null_pointer_checks): Remove prototype.
2730         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
2731         Remove declarations.
2732         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
2733         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
2734         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
2735         expr_reaches_here_p, computing_insn, def_reaches_here_p,
2736         can_disregard_other_sets, handle_avail_expr, classic_gcse,
2737         one_classic_gcse_pass, invalidate_nonnull_info,
2738         delete_null_pointer_checks_1, delete_null_pointer_checks,
2739         expr_reached_here_p_work): Remove.
2740         (gcse_main): Do not perform classic GCSE when optimizing for size.
2741         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
2742         are never used.
2743
2744 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
2745
2746         PR optimization/14466
2747         * tree-complex.c (make_temp): Remove.
2748         (gimplify_val): Replace make_temp with make_rename_temp
2749         and add NULL as the second argument.
2750         (expand_complex_div_wide): Likewise.
2751         * tree-dfa.c (make_rename_temp): New function.
2752         * tree-flow.h (make_rename_temp): Declare.
2753         * tree-sra.c (make_temp): Remove.
2754         (lookup_scalar): Replace make_temp with make_rename_temp.
2755         (create_scalar_copies): Likewise.
2756         * tree-ssa-phiopt.c (conditional_replacement): When we
2757         get non gimple create a temporary variable to hold the
2758         casted expression.
2759
2760 2004-05-14  Paul Brook  <paul@codesourcery.com>
2761
2762         * stor-layout.c (update_alignment_for_field): Use
2763         targetm.align_anon_bitfield.
2764         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
2765         (TARGET_INITIALIZER): Use it.
2766         * target.h (struct gcc_target): Add align_anon_bitfield.
2767         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
2768         (TARGET_ALIGN_ANON_BITFIELD): Define.
2769         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
2770
2771 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
2772
2773         * tree.def (documentation): Remove mention of class 'b'.
2774         (BLOCK): Now in class 'x'.
2775         * c-common.c (verify_tree): Remove case 'b'.
2776         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
2777         * calls.c (calls_function_1): Control cannot get past the switch
2778         when exp is a BLOCK.
2779         * print-tree.c (print_node): Move code for class 'b' to the class
2780         'c'/'x' switch, as case BLOCK.
2781         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
2782         (unsafe_for_reeval, substitute_placeholder_in_expr)
2783         (stabilize_reference_1): Remove case 'b'.
2784         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
2785         of something being 'b' to tests for TREE_CODE of something being
2786         BLOCK.
2787         * tree-ssa-operands.c (get_expr_operands): Likewise.
2788
2789 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2790
2791         * tree-gimple.c: Rename from tree-simple.c.
2792         * tree-gimple.h: Rename from tree-simple.h.
2793         * c-gimplify.c: Rename from c-simplify.c
2794         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
2795         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
2796         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
2797         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
2798         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
2799         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
2800         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
2801         Update.
2802
2803 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
2804
2805         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
2806
2807 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2808
2809         * tree-ssa.c (delete_tree_ssa): XFREE
2810         bitmaps allocated with BITMAP_XMALLOC.
2811
2812         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
2813         idfs_cache at the end of the function.
2814
2815         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
2816         at the end of the function.
2817
2818         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
2819         el at the end of the function.
2820
2821         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
2822         bitmaps allocated with BITMAP_XMALLOC.
2823
2824         * loop-unswitch.c (unswitch_single_loop): Free bbs at
2825         the end.
2826
2827         * final.c (shorten_branches): Free uid_shuid before
2828         reallocating it.
2829
2830         * bb-reoder.c (connect_traces): Free cold_traces at the end.
2831
2832 2004-05-13  Jeff Law  <law@redhat.com>
2833
2834         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
2835         variables.  Simplify slightly by using USE_OP/DEF_OP instead
2836         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
2837
2838         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
2839         rather than iterating through the blocks testing each bit in
2840         livein to initialize the worklist.
2841         (mark_def_sites): Remove useless checks of KILLS for virtual
2842         operands.
2843
2844         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
2845         new parameters for the statement and variable worklist as well
2846         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
2847         worklist recording interesting variables in the variable worklist
2848         and bitmap.  Handle casts between integral and boolean types.
2849         (substitute_single_use_vars): Accept new parameters for the statement
2850         and variable worklist.  When a substitution is made add a new
2851         entry to the statement worklist.  Handle casts between integral
2852         and boolean types.
2853         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
2854         worklists to children.  Iterate until the statement worklist
2855         is empty.
2856
2857 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2858
2859         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
2860         the end of the block.
2861
2862         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
2863         with BITMAP_XMALLOC.
2864
2865         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
2866         with BITMAP_XMALLOC.
2867
2868         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2869         Free nonzero_vars at the end of the function.
2870
2871         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
2872         need to generate code instead of a NOP_EXPR.
2873
2874 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
2875
2876         * gcc.c (default_compilers): Fill out initializers for new Fortran
2877         entries.
2878
2879 2004-05-13  Paul Brook  <paul@codesourcery.com>
2880
2881         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
2882
2883 2004-05-13  Paul Brook  <paul@codesourcery.com>
2884
2885         * config/arm/arm.c (arm_default_short_enums): New function.
2886         (TARGET_DEFAULT_SHORT_ENUMS): Define.
2887
2888 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2889
2890         Merge from tree-ssa-20020619-branch.
2891
2892         * Makefile.in (reload1.o-warn): Add.
2893         (tree-alias-ander.o-warn): Add.
2894         (GMPLIBS): Define.
2895         (GMPINC): Define.
2896         (BANSHEELIB): Define.
2897         (BANSHEEINC): Define.
2898         (TREE_DUMP_H): Define.
2899         (TREE_SIMPLE_H): Define.
2900         (TREE_FLOW_H): Define.
2901         (LIBDEPS): Add BANSHEELIB.
2902         (INCLUDES): Add BANSHEEINC and GMPINC.
2903         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
2904         c-mudflap.o and c-pretty-print.o.
2905         (C_OBJS): Remove c-pretty-print.o.
2906         (OBJS-common): Remove sibcall.o.
2907         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
2908         tree-ssa.o, tree-optimize.o, tree-simple.o,
2909         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
2910         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
2911         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
2912         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
2913         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
2914         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
2915         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
2916         tree-tailcall.o, gimple-low.o, tree-iterator.o,
2917         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
2918         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
2919         tree-profile.o.
2920         (OBJC-archive): Add tree-nomudflap.o.
2921         (cc1): Add dependency on @TREEBROWSER@.
2922         (c-decl.o): Add dependency on TREE_DUMP_H.
2923         (c-dump.o): Likewise.
2924         (c-common.o): Add dependency on tree-iterator.h
2925         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
2926         (gtype-desc.o): Add dependency on TREE_FLOW_H.
2927         (tree.o): Add dependency on tree-iterator.h,
2928         BASIC_BLOCK_H and TREE_FLOW_H.
2929         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
2930         (langhooks.o): Add dependency on TREE_SIMPLE_H.
2931         (tree-alias-type.o, tree-alias-ander.o,
2932         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
2933         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
2934         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
2935         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
2936         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
2937         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
2938         tree-nested.o, tree-iterator.o, tree-dfa.o,
2939         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
2940         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
2941         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
2942         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
2943         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
2944         tree-sra.o, tree-complex.o, tree-profile.o,
2945         rtl-profile.o): New rules.
2946         (function.o): Add dependency on basic-block.h
2947         (expr.o): Add dependency on tree-iterator.h.
2948         (sibcall.o): Remove.
2949         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
2950         (cfg.o): Add dependency on TIMEVAR_H.
2951         (cfghooks.o): Add dependency on TREE_FLOW_H.
2952         (reg-stack.o): Add dependency on basic-block.h.
2953         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
2954         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
2955         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
2956         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
2957         tree-alias-type.h, tree-alias-common.h,
2958         tree-alias-type.c, tree-alias-common.c,
2959         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
2960         rtl-profile.c and tree-nested.c.
2961         (gt-tree-alias-common.h, gt-tree-mudflap.h,
2962         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
2963         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
2964         gt-tree-cfg.h, gt-tree-nested.h): New rules.
2965         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
2966         * basic-block.h: Include predict.h
2967         (struct edge_def): Add GTY marker.
2968         Change field 'insns' to be a union of tree and rtx.
2969         (EDGE_TRUE_VALUE): Define.
2970         (EDGE_FALSE_VALUE): Define.
2971         (EDGE_EXECUTABLE): Define.
2972         (struct bb_ann_d): Forward declare.
2973         (struct basic_block_def): Add GTY marker.
2974         Remove fields head_tree and end_tree.
2975         Add fields stmt_list, rbi and tree_annotations.
2976         (struct reorder_block_def): Define.
2977         (basic_block_info): Add GTY marker.
2978         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
2979         variables instead of macros.
2980         (flow_call_edges_add): Remove declaration.
2981         (make_eh_edge): Remove declaration.
2982         (brief_dump_cfg, find_edge, tree_predicted_by_p,
2983         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
2984         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
2985         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
2986         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
2987         (try_redirect_by_replacing_jump): Modfiy return type to
2988         edge instead of bool.
2989         * bb-reorder.c (copy_bb): Call duplicate_block
2990         instead of cfg_layout_duplicate_bb.
2991         (copy_bb_p): Call can_duplicate_block_p instead of
2992         cfg_layout_can_duplicate_bb_p.
2993         * bitmap.c (bitmap_first_set_bit): Abort if word
2994         wasn't found.
2995         (bitmap_last_set_bit): Likewise.
2996         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
2997         (DEF_FUNCTION_TYPE_3): Add.
2998         * builtins.c (c_strlen): Make extern.
2999         (builtin_save_expr): New.
3000         (expand_builtin_nonlocal_goto): New.
3001         (expand_builtin_constant_p): Remove.
3002         (expand_builtin_mathfn): Call builtin_save_expr instead
3003         of save_expr.
3004         (expand_builtin_mathfn_2): Likewise.
3005         (expand_builtin_strcmp): Likewise.
3006         (expand_builtin_strncmp): Likewise.
3007         (expand_builtin_strcat): Likewise.
3008         (fold_builtin_cabs): Likewise.
3009         (expand_builtin_alloca): Don't trigger if -fmudflap is
3010         given.
3011         (build_string_literal): Set TREE_INVARIANT on new node.
3012         (expand_builtin_profile_fun): New.
3013         (round_trampoline_addr): New.
3014         (expand_builtin_init_trampoline): New.
3015         (expand_builtin_adjust_trampoline): New.
3016         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3017         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3018         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3019         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3020         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3021         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3022         Handle.
3023         (fold_builtin_expect): New.
3024         (fold_builtin_isascii): Don't return non-constant results
3025         in GIMPLE form.
3026         (fold_builtin_isdigit): Likewise.
3027         (fold_builtin_1): New.
3028         (fold_builtin): Call it.
3029         (build_function_call_expr): Update call to build a new
3030         CALL_EXPR.
3031         (purge_builtin_constant_p): Remove.
3032         (simplify_builtin, simplify_builtin_memcmp,
3033         simplify_builtin_strcmp, simplify_builtin_strncmp,
3034         simplify_builtin_strpbrk, simplify_builtin_strstr,
3035         simplify_builtin_strchr, simplify_builtin_strrchr,
3036         simplify_builtin_strcat, simplify_builtin_strncat,
3037         simplify_builtin_strspn, simplify_builtin_strcspn,
3038         simplify_builtin_next_arg, simplify_builtin_va_start,
3039         simplify_builtin_sprintf): New.
3040         * builtins.def (BUILT_IN_STACK_ALLOC,
3041         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3042         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3043         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3044         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3045         * c-common.c: Include tree-iterator.h and hashtab.h.
3046         (lang_statement_code_p): Declare.
3047         (lang_gimplify_stmt): Declare.
3048         (fix_string_type): Set TREE_INVARIANT for value.
3049         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3050         (c_type_hash): New.
3051         (c_common_get_alias_set): Handle multiple type nodes
3052         referring to "the same" type, currently for C90 only.
3053         (c_add_case_label): Use create_artificial_label.
3054         (finish_label_address_expr): Don't set TREE_CONSTANT on
3055         result.
3056         (c_expand_expr): Don't handle STMT_EXPR.
3057         (handle_alias_attribute): Marke aliased variables to be
3058         TREE_STATIC.
3059         (handle_nonnull_attribute): Initialize arg_num.
3060         (check_function_nonnull): Likewise.
3061         (c_walk_subtrees): New.
3062         (c_estimate_num_insns_1): Don't handle
3063         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3064         (c_decl_uninit_1): Remove.
3065         (c_decl_uninit): Remove.
3066         (c_warn_unused_result): New.
3067         * c-common.def (ASM_STMT): Change number of operands
3068         to 4.
3069         (FILE_STMT): Remove.
3070         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3071         Remove.
3072         (lang_gimplify_stmt): Add.
3073         (expand_stmt): Remove.
3074         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3075         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3076         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3077         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3078         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3079         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3080         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3081         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3082         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3083         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3084         genrtl_compound_stmt, genrtl_asm_stmt,
3085         genrtl_cleanup_stmt, c_decl_uninit): Remove.
3086         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3087         c_tree_chain_matters_p, c_warn_unused_result,
3088         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3089         Declare.
3090         * c-convert.c (convert): Make convert work when
3091         converting to compatible types across translation unit.
3092         * c-decl.c: Include langhooks.h, tree-mudflap.h,
3093         tree-simple.h, diagnostic.h and tree-dump.h
3094         (merge_decls): Initialize oldtype to NULL.
3095         (finish_decl): Use DECL_HARD_REGISTER instead of
3096         DECL_C_HARD_REGISTER.
3097         (check_bitfield_type_and_width): Check for null
3098         lang_type_specific when check the precision of an enum.
3099         (grokdeclarator): Immediately layout an ARRAY_TYPE used
3100         in a pointer-to-array declarator.
3101         (finish_struct): Clear allocated struct lang_type.
3102         (finish_enum): Set enum_min and enum_max.  Set
3103         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3104         not to the enumerators.
3105         (set_decl_nonlocal): New.
3106         (store_parm_decls): Use it via walk_tree.
3107         (c_finalize): New.
3108         (finish_function): When !targetm.have_ctors_dtors,
3109         record static constructors and destructors here...
3110         (c_expand_body_1): ... not here.
3111         (c_expand_decl): Rename from c_expand_decl_stmt.
3112         Handle all C-specific expansion semantics.
3113         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3114         STMT_LINENO.
3115         * c-format.c (handle_format_arg_attribute): Initialize
3116         format_num.
3117         * c-lang.c: Include tree-inline.h
3118         (LANG_HOOKS_EXPAND_DECL,
3119         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3120         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3121         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3122         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3123         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3124         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3125         (c_types_compatible_p): New.
3126         * c-mudflap.c: New file.
3127         * c-objc-common.c: Include tree-mudflap.h
3128         (start_cdtor, finish_cdtor): Collapse
3129         together into
3130         (build_cdtor): ...here.  Update to construct a complete tree
3131         for the function.  No need to call push_scope, pop_scope, or
3132         clear_last_expr, or set current_function_cannot_inline.
3133         (c_missing_noreturn_ok_p): Change prototype to return
3134         bool.
3135         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3136         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3137         opts.c.
3138         (c_common_post_options): Don't ever use rtl inlining.
3139         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3140         * c-pragma.c (handle_pragma_redefine_extname): Define
3141         always.
3142         (init_pragma): Activate #pragma redefine_extname for mudflap.
3143         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3144         (pp_c_initializer): Accept any type CONSTRUCTOR.
3145         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3146         COMPLEX_TYPE.
3147         (decl_name_str): New local function.
3148         (pp_c_direct_declarator): Call it.
3149         (pp_c_primary_expression): Call it.
3150         (pp_c_id_expression): Call it.
3151         (pp_c_statement): Call it.
3152         (print_c_tree): Create new pp object.
3153         * c-pretty-print.h (pp_c_tree_decl_identifier,
3154         print_c_tree): Declare.
3155         * c-semantics.c: Include langhooks.h
3156         (lang_expand_stmt, lang_expand_decl_stmt,
3157         find_reachable_label_1, find_reachable_label,
3158         expand_unreachable_if_stmt, expand_unreachable_stmt,
3159         genrtl_do_stmt_1): Remove.
3160         (begin_stmt_tree): Don't check for changed filename.
3161         Call annotate_with_locus.
3162         (finish_stmt_tree): Don't set line for end of function.
3163         (build_stmt): Don't check type nodes for
3164         side effects.
3165         (build_stmt): Set TREE_SIDE_EFFECTS.
3166         Set EXPR_LOCUS instead of STMT_LINENO.
3167         (lang_expand_stmt, lang_expand_decl_stmt,
3168         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3169         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3170         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3171         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3172         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3173         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3174         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3175         find_reachable_label_1, expand_unreachable_if_stmt,
3176         expand_unreachable_stmt): Remove.
3177         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3178         * c-simplify.c: New file.
3179         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3180         (struct lang_type): Add fields enum_min and enum_max.
3181         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3182         (c_expand_decl, c_missing_noreturn_ok_p,
3183         c_types_compatible_p): Declare.
3184         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3185         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3186         (default_function_array_conversion): Rely on build to
3187         set TREE_CONSTANT.
3188         (parser_build_binary_op, pointer_diff): Likewise.
3189         (build_unary_op, build_binary_op): Likewise.
3190         (build_array_ref):
3191         (build_external_ref): Set TREE_INVARIANT.
3192         (build_c_cast, pop_init_level): Likewise.
3193         (process_init_element): Use ASM_VOLATILE_P.
3194         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3195         (c_finish_case): Call c_do_switch_warnings.
3196         * c.opt (fdump-): Remove.
3197         * calls.c (try_to_integrate): Remove.
3198         (prepare_call_address): Replace fndecl arg with a
3199         precomputed static chain value.
3200         (emit_call_1): New argument for full call expr.
3201         (flags_from_decl_or_type): Call special_function_p.
3202         (initialize_argument_information): Add argument
3203         may_tailcall.
3204         (purge_reg_equiv_notes): New.
3205         (expand_call): Do not try to expand calls inline.
3206         (fixup_tail_calls): New.
3207         * cfg.c: Include timevar.h and ggc.h.
3208         (bb_pool, edge_pool): Remove.
3209         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3210         (entry_exit_blocks): Remove.
3211         (rbi_pool): Declare.
3212         (init_flow): Do not create pools.
3213         Allocate entry/exit block.
3214         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3215         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3216         (unlink_block): Clear b->prev_bb and b->next_bb.
3217         (compact_blocks): Clear all slots of BASIC_BLOCK array.
3218         (dump_flow_info): Work on trees too.
3219         (dump_cfg_bb_info): New.
3220         (brief_dump_cfg): New.
3221         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3222         (find_edge): New.
3223         * cfgbuild.c (rtl_make_eh_edge): Rename from
3224         make_eh_edge.  Update all users.
3225         (find_basic_blocks): Don't call VARRAY_FREE on
3226         basic_block_info.
3227         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3228         and newpos2.
3229         (delete_unreachable_blocks): Return changed status.
3230         (merge_seq_blocks): New.
3231         * cfghooks.c: Include tree-flow.h
3232         (tree_register_cfg_hooks, ir_type): New.
3233         (redirect_edge_and_branch): Change return type to edge.
3234         (predict_edge, predicted_by_p, can_duplicate_block_p,
3235         duplicate_block, block_ends_with_call_p,
3236         block_ends_with_condjump_p, flow_call_edges_add): New.
3237         * cfghooks.h (redirect_edge_and_branch): Change return
3238         type to edge.
3239         (predict_edge, predicted_by_p, can_duplicate_block_p,
3240         duplicate_block, block_ends_with_call_p,
3241         block_ends_with_condjump_p, flow_call_edges_add): Declare.
3242         (redirect_edge_and_branch): Change return type to edge.
3243         (struct cfg_hooks): Add fields block_ends_with_call_p,
3244         block_ends_with_condjump_p, flow_call_edges_add,
3245         predict_edge, predicted_by_p, can_duplicate_block_p and
3246         duplicate_block.
3247         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3248         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3249         (fixup_reorder_chain): Use initialize_bb_rbi.
3250         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3251         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3252         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3253         (insn_locators_initialize): Use new info about blocks.
3254         * cfglayout.h (typedef struct reorder_block_def): Moved to
3255         basic_block.h.
3256         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3257         removed.
3258         * cfgloop.c: Include tree.h and tree-flow.h.
3259         * cfgloop.h (create_loop_notes): Declare.
3260         * cfgloopmanip.c (create_loop_notes): New.
3261         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3262         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3263         and duplicate_block fields.
3264         (create_basic_block_structure): Don't look at
3265         RTX_INTEGRATED_P.
3266         (rtl_block_ends_with_call_p): New.
3267         (rtl_block_ends_with_condjump_p): New.
3268         (need_fake_edge_p): Moved from cfganal.c.
3269         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3270         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3271         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3272         (cfg_layout_rtl_cfg_hooks): Ditto.
3273         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3274         functions to be reachable.
3275         * cgraphunit.c (decide_is_function_needed):
3276         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3277         inline functions don't need to be output.
3278         (cgraph_assemble_pending_functions): Don't do anything
3279         special for nested functions.
3280         (cgraph_mark_functions_to_output): Likewise.
3281         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3282         (cgraph_analyze_function): Use estimate_num_insns.
3283         (cgraph_mark_functions_to_output): Likewise.
3284         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3285         (cgraph_expand_function): Allow functions to not be
3286         emitted.
3287         (cgraph_remove_unreachable_nodes):
3288         (cgraph_recursive_inlining_p): Simplify.
3289         (lookup_recursive_calls,
3290         cgraph_decide_recursive_inlining): New.
3291         (cgraph_decide_inlining_*): Update calls of
3292         cgraph_mark_inline.
3293         * combine.c (get_pos_from_mask): Always set *plen.
3294         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3295         ftree-based-profiling, ftree-ccp, ftree-ch,
3296         ftree-combine-temps, ftree-copyrename, ftree-dce,
3297         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3298         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3299         ftree-lrs): Add.
3300         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3301         Undefine.
3302         * configure.ac: Add --enable-tree-browser option.
3303         Add --with-libbanshee option.
3304         Add GMPLIBS and GMPINC.
3305         * configure: Regenerate.
3306         * coverage.c (tree_ctr_tables): New.
3307         (coverage_counter_alloc): Use it.
3308         (build_ctr_info_value): Ditto.
3309         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
3310         (tree_coverage_counter_ref): New.
3311         * coverage.h (coverage_counter_ref): Remove declaration.
3312         (rtl_coverage_counter_ref): Declare.
3313         (tree_coverage_counter_ref): Declare.
3314         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3315         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3316         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3317         (struct cse_basic_block_data): Rename enum values to not
3318         conflict with profile.h; update all uses.
3319         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3320         in comments.
3321         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3322         * diagnostic.h (debug_output_buffer, dump_generic_node,
3323         print_generic_stmt, print_generic_stmt_indented,
3324         print_generic_expr, print_generic_decl,
3325         debug_generic_expr, debug_generic_stmt, debug_c_tree):
3326         Declare.
3327         * dominance.c: Cache immediate dominators.
3328         * domwalk.c: New file.
3329         * domwalk.h: New file.
3330         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3331         (gen_subprogram_die): Generate a DIE for a named
3332         return value.
3333         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3334         (add_location_or_const_value_attribute): Likewise.
3335         (add_bound_info): Likewise.
3336         (gen_decl_die): Likewise.
3337         * emit-rtl.c (maybe_set_first_label_num): New.
3338         (copy_most_rtx): Don't copy the integrated flag.
3339         Copy the new return_val flag.
3340         * et-forest.c (MAX_NODES): Define.
3341         (record_path_before_1): Abort if len is greater than
3342         MAX_NODES.
3343         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3344         gen_eh_region_catch, gen_eh_region_allowed,
3345         gen_eh_region_must_not_throw, get_eh_region_number,
3346         get_eh_region_may_contain_throw, get_eh_region_tree_label,
3347         set_eh_region_tree_label, expand_resx_expr): New.
3348         (expand_eh_region_start, expand_start_catch): Use them.
3349         (expand_end_catch): Tidy.
3350         (note_eh_region_may_contain_throw): Take region argument.
3351         (note_current_region_may_contain_throw): New.
3352         (get_exception_filter): Export.
3353         (collect_eh_region_array): Export.
3354         (remove_unreachable_regions): Check ERT_TRY based on reachability
3355         of catches, not reachability of continue_label.  Never remove
3356         ERT_MUST_NOT_THROW regions.
3357         (collect_rtl_labels_from_trees): New.
3358         (convert_from_eh_region_ranges): Use it.
3359         (connect_post_landing_pads): Handle dying cleanups.
3360         (struct reachable_info): Add callback data.
3361         (add_reachable_handler): Invoke the callback.
3362         (foreach_reachable_handler): New.
3363         (reachable_handlers): Use it.
3364         (arh_to_landing_pad, arh_to_label): New.
3365         (can_throw_internal_1): Split out from can_throw_internal.
3366         (can_throw_external_1): Similarly.
3367         * except.h: Update.
3368         * explow.c (emit_stack_save): Remove savearea mode check.
3369         (update_nonlocal_goto_save_area): New.
3370         (allocate_dynamic_stack_space): Use it.
3371         (probe_stack_range): Never emit loop notes.
3372         * expmed.c (extract_fixed_bit_field): Always propagate the
3373         target for the shift if it is a REG.
3374         * expr.c: Include tree-iterator.h
3375         (is_zeros_p): Remove.
3376         (categorize_ctor_elements_1, categorize_ctor_elements): New.
3377         (count_type_elements): New.
3378         (mostly_zeros_p): Use them.
3379         (expr_wfl_stack): Remove.
3380         (convert_move): Do nothing if to and from are the same.
3381         (emit_block_move_via_loop): Don't emit LOOP notes.
3382         (emit_move_insn): Don't handle CONSTANT_P_RTX.
3383         (emit_move_insn_1): Don't generate inline warnings.
3384         (expand_vars, expand_var): Split from ...
3385         (expand_expr_1): ... here.
3386         (expand_expr_real, expand_expr_real_1):  Use new macros
3387         EXPR_LOCATION and EXPR_HAS_LOCATION.
3388         * expr.h (simplify_builtin_fputs,
3389         simplify_builtin_strcpy, simplify_builtin_strncpy,
3390         expand_var, fixup_tail_calls,
3391         update_nonlocal_goto_save_area): Declare.
3392         (lookup_static_chain, expand_inline_function,
3393         mark_seen_cases): Remove.
3394         (prepare_call_address): Change type of 2nd argument to
3395         rtx.
3396         * final.c (profile_function): Update static chain test.
3397         (final): Don't look at RTX_INTEGRATED_P.
3398         * flags.h (flag_mudflap, flag_mudflap_threads,
3399         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
3400         flag_tree_dce, flag_tree_combine_temps,
3401         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
3402         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
3403         flag_tree_points_to): Declare.
3404         (enum pta_type): Declare.
3405         * flow.c (lang_missing_noreturn_ok_p): Remove.
3406         (check_function_return_warnings): Remove.
3407         (update_life_info): Update comments.
3408         (free_basic_block_vars): Don't call VARRAY_FREE for
3409         basic_block_info.
3410         (regno_uninitialized): Remove.
3411         * fold-const.c (int_const_binop): Make extern.
3412         (non_lvalue): Rely on build to set TREE_CONSTANT.
3413         (operand_equal_p): Replace only_const argument with
3414         flags.  Allow pure functions if OEP_PURE_SAME.
3415         (fold): Use OEP_ONLY_CONST.
3416         (invert_truthvalue) <NOP_EXPR> Break if argument is of
3417         boolean type.
3418         (fold_relational_hi_lo,
3419         nondestructive_fold_binary_to_constant,
3420         nondestructive_fold_unary_to_constant,
3421         fold_read_from_constant_string): New.
3422         * function.c (struct function): Remove calls_constant_p.
3423         (current_function_calls_constant_p): Remove.
3424         (inline_function_decl): Remove.
3425         (put_var_into_stack): Don't use it.
3426         (fix_lexical_addr): Likewise.
3427         (inline_function_decl): Remove extern declaration.
3428         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
3429         (trampolines_created): Move to varasm.c.
3430         (free_after_compilation): Update for removed fields.
3431         (allocate_struct_function): Likewise.
3432         (delete_handlers, lookup_static_chain): Remove.
3433         (fix_lexical_addr): Don't consider non-local variable refs.
3434         (trampoline_address): Remove.
3435         (round_trampoline_addr): Move to builtins.c.
3436         (adjust_trampoline_addr): Remove.
3437         (expand_function_start): Update for changes to static chain
3438         and nonlocal goto handling.
3439         (initial_trampoline): Move to varasm.c.
3440         (expand_function_end): Don't build trampolines or kill
3441         unreferenced nonlocal goto labels.
3442         (free_after_compilation): Don't set it.
3443         (expand_function_end): Likewise.
3444         (setjmp_vars_warning): Rename from
3445         uninitialized_vars_warning, remove uninitialized vars warning.
3446         (uninitialized_vars_warning): Remove old comment
3447         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
3448         and do not call the langhook.
3449         (expand_function_start, expand_function_end): Don't do
3450         function instrumentation here.
3451         (clear_block_marks): Rename from reorder_blocks_0, export.
3452         (blocks_nreverse): Export.
3453         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
3454         of rtl.
3455         (reset_block_changes, record_block_change, finalize_block_changes,
3456         check_block_change, free_block_changes): New functions.
3457         (assign_parms): Setting of current_function_stdarg
3458         moved ...
3459         (allocate_struct_function): ... here.
3460         * function.h (struct function): Remove x_nonlocal_labels,
3461         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
3462         x_context_display, x_trampoline_list, needs_context.
3463         Add static_chain_decl, nonlocal_goto_save_area.
3464         (struct function): Remove x_clobber_return_insn.
3465         Add tail_call_emit field, last_label_uid,
3466         unexpanded_var_list, dont_emit_block_notes,
3467         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
3468         (clear_block_marks): Declare.
3469         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
3470         (mfwrap_spec, mflib_spec): Declare.
3471         (cpp_unique_options, cc1_options): Ditto.
3472         (default_compilers): Add .F and .f90.
3473         (static_specs): Add mfwrap and mflib.
3474         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
3475         CONSTANT_RTX_P.
3476         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
3477         Update to match insns field in struct edge_def.
3478         * gdbinit.in (pgs, pge): Define.
3479         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
3480         instead of the integrated flag.
3481         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
3482         * gengtype-yacc.y (bitfieldlen): Add empty action.
3483         (struct_fields): Accept unnamed bitfields.
3484         (bitfieldlen): Split from ...
3485         (bitfieldopt): ... here.
3486         * gengtype.c (ifiles): Add tree-alias-type.h and
3487         tree-flow.h.
3488         * genrecog.c (validate_pattern): Do not handle
3489         CONSTANT_P_RTX.
3490         * gimple-low.c: New file.
3491         * gimplify.c: New file.
3492         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
3493         (restore_line_notes): Do not set RTX_INTEGRATED_P.
3494         * ifcvt.c (dead_or_predicable): Initialize local variable
3495         'earliest'.
3496         * input.h (expr_wfl_stack): Remove.
3497         * integrate.c (INTEGRATE_THRESHOLD): Remove.
3498         (setup_initial_hard_reg_value_integration): Likewise.
3499         (initialize_for_inline): Likewise.
3500         (note_modified_parmregs): Likewise.
3501         (integrate_parm_decls): Likewise.
3502         (process_reg_param): Likewise.
3503         (save_parm_insns): Likewise.
3504         (copy_insn_list): Likewise.
3505         (copy_insn_notes): Likewise.
3506         (compare_blocks): Likewise.
3507         (find_block): Likewise.
3508         (inlining): Likewise.
3509         (function_cannot_inline_p): Likewise.
3510         (parmdecl_map): Likewise.
3511         (in_nonparam_insns): Likewise.
3512         (save_for_inline): Likewise.
3513         (FIXED_BASE_PLUS): Likewise.
3514         (expand_inline_function): Likewise.
3515         (copy_rtx_and_substitute): Don't look at map->integrating,
3516         map->inline_target, and inlining, since we are never copying
3517         for integrating.
3518         Don't abort on RTX_INTEGRATED_P.
3519         (old_fun): Remove.
3520         (output_inline_function): Remove.
3521         * integrate.h (struct inline_map): Remove fields integrating,
3522         block_map, leaf_reg_map, inline_target, and local_return_label.
3523         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
3524         copy_loop_headers, never_reached_warning): Removed.
3525         (any_uncondjump_p): Reject nonlocal goto.
3526         * langhooks-def.h (lhd_types_compatible_p,
3527         lhd_expand_decl, lhd_gimplify_expr): Declare.
3528         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3529         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3530         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3531         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3532         LANG_HOOKS_GIMPLIFY_EXPR,
3533         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
3534         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3535         LANG_HOOKS_GIMPLIFY_EXPR,
3536         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
3537         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
3538         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
3539         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3540         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
3541         LANG_HOOKS_DECL_UNINIT,
3542         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
3543         * langhooks.c: Include tree-simple.h.
3544         (lhd_expand_decl): New.
3545         (lhd_types_compatible_p): New.
3546         (lhd_decl_uninit): Remove.
3547         (lhd_gimplify_expr): New.
3548         * langhooks.h (struct lang_hooks_for_rtl_expansion):
3549         Remove.
3550         (struct lang_hooks_for_functions): Add field
3551         missing_noreturn_ok_p.
3552         (struct lang_hooks): Add field expand_decl,
3553         types_compatible_p, gimplify_expr and
3554         gimple_before_inlining.
3555         Remove fields decl_uninit and rtl_expand
3556         * opts.c (decode_options): Set flag_tree_ccp,
3557         flag_tree_dce, flag_tree_dom, flag_tree_dse,
3558         flag_tree_pre, flag_tree_ter,
3559         flag_tree_live_range_split, flag_tree_sra,
3560         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
3561         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
3562         OPT_fmudflapth, OPT_fmudflapir,
3563         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
3564         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
3565         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
3566         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
3567         OPT_ftree_points_to_ and OPT_ftree_pre.
3568         * output.h (regno_uninitialized, find_basic_blocks,
3569         cleanup_cfg, delete_unreachable_blocks,
3570         check_function_return_warnings): Remove.
3571         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
3572         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
3573         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
3574         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
3575         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
3576         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
3577         Define.
3578         * passes.c (rest_of_decl_compilation):
3579         (rest_of_handle_sibling_calls): Remove.
3580         (rest_of_handle_inlining): Remove.
3581         (rest_of_handle_gcse): Do not run
3582         purge_builtin_constant_p.
3583         (rest_of_compilation): Update.
3584         Do not call copy_loop_headers.
3585         Do rtl-based profiling only when
3586         !flag_tree_based_profiling.  Register rtl-based profiling
3587         hooks.
3588         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
3589         (predicted_by_p): Rename to ...
3590         (rtl_predicted_by_p): .. this one; make global
3591         (tree_predicted_by_p): New.
3592         (dump_prediction): Add FILE argument.
3593         (predict_edge): Rename to ...
3594         (rtl_predict_edge): .. this one.
3595         (tree_predict_edge): New.
3596         (combine_predictions_for_insn): Update calls of predict_edge.
3597         (predict_loops): Break out from ...
3598         (estimate_probability): ... here; update comments; move updating
3599         of unknown probabilities from ...
3600         (estimate_bb_frequencies): ... here.
3601         (combine_predictions_for_bb): New.
3602         (tree_predict_by_opcode): New.
3603         (tree_estimate_probability): New.
3604         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
3605         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
3606         * predict.h: Add include guard.
3607         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
3608         * pretty-print.c (pp_write_text_to_stream): Make extern.
3609         * pretty-print.h (pp_write_text_to_stream): Declare.
3610         * print-rtl.c (print_rtx): Don't print the integrated flag.
3611         Print the return_val flag.
3612         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
3613         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
3614         Remove support for EXPR_WITH_FILE_LOCATION nodes.
3615         (print_node): Print TREE_INVARIANT and TREE_VISITED.
3616         * profile.c: Include cfghooks.h, tree-flow.h.
3617         (profile_hooks): New.
3618         (profile_dump_file): New.
3619         (instrument_edges): Use hooks instead of RTL-specific code.
3620         (instrument_values): Ditto.
3621         (get_exec_counts): Ditto.
3622         (compute_branch_probabilities): Ditto.
3623         (compute_value_histograms): Ditto.
3624         (branch_prob): Ditto.
3625         (find_spanning_tree): Ditto.
3626         (end_branch_prob): Ditto.
3627         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
3628         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
3629         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
3630         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
3631         (tree_register_profile_hooks): New.
3632         (rtl_register_profile_hooks): New.
3633         * ra-rewrite.c (rewrite_program): Clear variable info.
3634         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
3635         * regs.h: Add include guards.
3636         * reload.c (decompose): Clear val using memset.
3637         * rtl.def (CONSTANT_P_RTX): Remove.
3638         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
3639         (copy_loop_headers): Remove.
3640         (struct rtx_def): Replace the integrated flag with the
3641         return_val flag.
3642         (maybe_set_first_label_num): Declare.
3643         (init_branch_prob): Move declaration to value-prof.h.
3644         (end_branch_prob): Ditto.
3645         (branch_prob): Ditto.
3646         (never_reached_warning): Don't declare it.
3647         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
3648         (hoist_insn_to_edge): Update to match field insns in
3649         struct edge_def.
3650         * sbitmap.c (sbitmap_realloc): New.
3651         * sbitmap.h (sbitmap_realloc): Declare.
3652         * sibcall.c: Remove file.
3653         * simplify-rtx.c (simplify_rtx): Do not handle
3654         CONSTANT_P_RTX.
3655         * stmt.c (parse_output_constraint): Don't warn for read-write
3656         memory operand.
3657         (tail_recursion_args): Use types_compatible_p langhook.
3658         (force_label_rtx): Don't look at inline_function_decl.
3659         (label_rtx): Set LABEL_PRESERVE_P appropriately.
3660         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
3661         (declare_nonlocal_label): Remove.
3662         (expand_goto): Don't handle nonlocal gotos.
3663         (expand_nl_handler_label): Remove.
3664         (expand_nl_goto_receivers): Remove.
3665         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
3666         update_nonlocal_goto_save_area.
3667         (expand_expr_stmt_value): Check TREE_NO_WARNING.
3668         (warn_if_unused_value): Likewise.
3669         (expand_start_loop, expand_loop_continue_here,
3670         expand_end_loop): Don't create loop notes.
3671         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
3672         mark_seen_cases, check_for_full_enumeration_handling): Remove.
3673         (expand_end_case_type): Don't do warn_switch handling.
3674         (pushcase, pushcase_range) Update add_case_node calls.
3675         (add_case_node): Add dont_expand_label argument.
3676         (same_case_target_p): Don't search rtl.
3677         (expand_start_bindings_and_block, expand_end_bindings):
3678         Don't emit block notes when dont_emit_block_notes.
3679         (using_eh_for_cleanups_p): Export.
3680         (expand_return): Allow any typed rhs.
3681         (expand_stack_alloc): New.
3682         (expand_stack_save, expand_stack_restore): New.
3683         (containing_blocks_have_cleanups_or_stack_level): New
3684         function.
3685         (asm_op_is_mem_input): New fn.
3686         (expand_asm_expr): New fn.
3687         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
3688         nodes.
3689         * stor-layout.c (layout_type): Just return if type is
3690         error_mark_node.
3691         (update_alignment_for_field): Export.
3692         (variable_size): We don't care about global_bindings_p if
3693         the frontend doesn't want a list of the expressions.
3694         * system.h: Poison INTEGRATE_THRESHOLD.
3695         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
3696         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
3697         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
3698         TV_TREE_SSA_OTHER, TV_TREE_OPS,
3699         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
3700         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
3701         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
3702         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
3703         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
3704         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
3705         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
3706         TV_CONTROL_DEPENDENCES): Define.
3707         * toplev.c: Include tree-alias-common.h
3708         (current_file_decl, flag_mudflap, flag_mudflap_threads,
3709         flag_mudflap_ignore_reads, flag_tree_based_profiling,
3710         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
3711         flag_tree_dce, flag_tree_ch, flag_tree_sra,
3712         flag_tree_combine_temps, flag_tree_ter,
3713         flag_tree_live_range_split, flag_tree_dom,
3714         flag_tree_copyrename, flag_tree_dse): Declare.
3715         (f_options): Add tree-based-profiling, tree-gvn,
3716         tree-pre, tree-ccp, tree-dce,
3717         tree-dominator-opts, tree-copyrename, tree-dse,
3718         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
3719         (wrapup_global_declarations): Don't output nested inlined functions.
3720         (general_init): Call init_tree_optimization_passes.
3721         (process_options): Sorry for -ftree-based-profiling plus
3722         -ftest-coverage or -fprofile-values.
3723         * toplev.h (init_tree_optimization_passes,
3724         flag_tree_based_profiling): Declare.
3725         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
3726         * tree-alias-ander.c: New file.
3727         * tree-alias-ander.h: New file.
3728         * tree-alias-common.c: New file.
3729         * tree-alias-common.h: New file.
3730         * tree-alias-type.c: New file.
3731         * tree-alias-type.h: New file.
3732         * tree-browser.c: New file.
3733         * tree-browser.def: New file.
3734         * tree-cfg.c: New file.
3735         * tree-complex.c: New file.
3736         * tree-dfa.c: New file.
3737         * tree-dump.c (dump_enable_all): New.
3738         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
3739         (dump_node): Remove const from field suffix and swtch.
3740         (dump_files): Add null entry, .generic, .nested, .vcg,
3741         .xml and a match-all entry.
3742         (extra_dump_files, extra_dump_files_in_use,
3743         extra_dump_files_alloced): Declare
3744         (dump_option_value_info): Add raw, details, stats,
3745         blocks, vops, lineno, uid and all.
3746         (dump_register): New.
3747         (get_dump_file_info): New.
3748         (dump_begin): Call it.
3749         Do nothing for TDI_none.
3750         (dump_begin): Include phase number in dump filename.
3751         (dump_enable_all): New.
3752         (dump_switch_p_1): Split out from dump_switch_p.
3753         (dump_switch_p): Handle extra_dump_files.
3754         Start our scan at TDI_none + 1.
3755         If -fdump-tree-all was given, call dump_enable_all.
3756         * tree-dump.h: Include splay-tree.h.
3757         (dump_function, dump_function_to_file, dump_register):
3758         Declare.
3759         * tree-eh.c: New file.
3760         * tree-flow-inline.h: New file.
3761         * tree-flow.h: New file.
3762         * tree-inline.c: Re-write to handle inlining on GIMPLE.
3763         * tree-inline.h (walk_tree,
3764         walk_tree_without_duplicates): Move to tree.h.
3765         (estimate_num_insns): Declare.
3766         * tree-into-ssa.c: New file.
3767         * tree-iterator.c: New file.
3768         * tree-iterator.h: New file.
3769         * tree-mudflap.c: New file.
3770         * tree-mudflap.h: New file.
3771         * tree-nested.c: New file.
3772         * tree-nomudflap.c: New file.
3773         * tree-nrv.c: New file.
3774         * tree-optimize.c (dump_flags, vars_to_rename,
3775         in_gimple_form, all_passes, pass_gimple,
3776         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
3777         (execute_gimple, execute_rebuild_bind,
3778         gate_all_optimizations, execute_del_cfg,
3779         register_one_dump_file, register_dump_files, dup_pass_1,
3780         init_tree_optimization_passes, execute_todo,
3781         execute_one_pass, execute_pass_list): New.
3782         (clear_decl_rtl): Remove.
3783         (tree_rest_of_compilation): Update to use tree
3784         optimizers.
3785         * tree-outof-ssa.c: New file.
3786         * tree-pass.h: New file.
3787         * tree-phinodes.c: New file.
3788         * tree-pretty-print.c: New file.
3789         * tree-profile.c: New file.
3790         * tree-simple.c: New file.
3791         * tree-simple.h: New file.
3792         * tree-sra.c: New file.
3793         * tree-ssa-alias.c: New file.
3794         * tree-ssa-ccp.c: New file.
3795         * tree-ssa-copy.c: New file.
3796         * tree-ssa-copyrename.c: New file.
3797         * tree-ssa-dce.c: New file.
3798         * tree-ssa-dom.c: New file.
3799         * tree-ssa-dse.c: New file.
3800         * tree-ssa-forwprop.c: New file.
3801         * tree-ssa-live.c: New file.
3802         * tree-ssa-live.h: New file.
3803         * tree-ssa-loop.c: New file.
3804         * tree-ssa-operands.c: New file.
3805         * tree-ssa-operands.h: New file.
3806         * tree-ssa-phiopt.c: New file.
3807         * tree-ssa-pre.c: New file.
3808         * tree-ssa.c: New file.
3809         * tree-ssanames.c: New file.
3810         * tree-tailcall.c: New file.
3811         * tree.c: Include tree-iterator.h, basic-block.h and
3812         tree-flow.h.
3813         (tree_node_kind): Add phi_nodes and ssa names.
3814         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
3815         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
3816         (make_node_stat): Handle PHI_NODE and SSA_NAME.
3817         <'c'> Set TREE_INVARIANT.
3818         (copy_node_stat): Abort if trying to copy a
3819         STATEMENT_LIST.
3820         Clear TREE_VISITED.
3821         Clear annotation field.
3822         (build_constructor): Copy TREE_INVARIANT from vals.
3823         Don't clear TREE_CONSTANT.
3824         (expr_first, expr_last, expr_length): Remove.
3825         (staticp): Pass unknown component references to the language.
3826         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
3827         (skip_simple_arithmetic): Likewise.
3828         (stabilize_reference_1): Likewise.
3829         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
3830         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
3831         STATEMENT_LIST.
3832         (lhd_unsave_expr_now): Remove.
3833         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
3834         (recompute_tree_invarant_for_addr_expr): New.
3835         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
3836         Call recompute_tree_invarant_for_addr_expr.
3837         Set TREE_INVARIANT accordingly.
3838         (build2_stat): Don't handle CALL_EXPR.
3839         (build3_stat): Don't call build2_stat for CALL_EXPRs.
3840         (build_expr_wfl): Remove.
3841         (annotate_with_file_line, annotate_with_locus): New.
3842         (simple_cst_equal): Call simple_cst_list_equal to compare
3843         CONSTRUCTOR_ELTS pointers.
3844         (iterative_hash_expr): Don't hash types associated
3845         with conversions.  Instead hash on the signedness of the
3846         toplevel object and the operand of the conversion.
3847         (dump_tree_statistics): Call ssanames_print_statistics
3848         and phinodes_print_statistics.
3849         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
3850         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
3851         needs_to_live_in_memory): New.
3852         (initializer_zerop): Handle VECTOR_CST.  Don't check
3853         AGGREGATE_TYPE_P for CONSTRUCTOR.
3854         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
3855         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
3856         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
3857         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
3858         (CALL_EXPR): Add another operand.
3859         (EXPR_WITH_FILE_LOCATION): Remove.
3860         (SWITCH_EXPR): Add another operand.
3861         * tree.h: Update various comments.
3862         (union tree_ann_d): Forward declare.
3863         (struct tree_common): Add fields nowarning_flag,
3864         invariant_flag and visited.
3865         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
3866         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
3867         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
3868         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
3869         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
3870         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
3871         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
3872         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
3873         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
3874         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
3875         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
3876         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
3877         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
3878         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
3879         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
3880         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
3881         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
3882         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
3883         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
3884         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
3885         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
3886         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
3887         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
3888         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
3889         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
3890         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
3891         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
3892         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
3893         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
3894         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
3895         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
3896         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
3897         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
3898         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
3899         TDF_UID,): Define.
3900         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
3901         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
3902         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
3903         EXPR_WFL_SET_LINECOL): Remove.
3904         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
3905         make_phi_node, init_phinodes, fini_phinodes,
3906         release_phi_node, phinodes_print_statistics,
3907         init_ssanames, fini_ssanames, make_ssa_name,
3908         release_ssa_name, ssanames_print_statistics,
3909         annotate_with_file_line, build_empty_stmt,
3910         annotate_with_locus, expr_only, categorize_ctor_elements,
3911         count_type_elements, add_var_to_bind_expr, is_essa_node,
3912         expand_stack_alloc, expand_stack_save,
3913         expand_stack_restore, add_case_node, operand_equal_p,
3914         nondestructive_fold_unary_to_constant,
3915         nondestructive_fold_binary_to_constant,
3916         fold_read_from_constant_string, int_const_binop,
3917         strip_float_extensions, simplify_builtin, c_strlen,
3918         recompute_tree_invarant_for_addr_expr,
3919         needs_to_live_in_memory, make_vector,
3920         setjmp_vars_warning, update_alignment_for_field,
3921         expand_asm_expr, asm_op_is_mem_input,
3922         containing_blocks_have_cleanups_or_stack_level,
3923         create_artificial_label, gimplify_function_tree,
3924         get_name, unshare_expr, walk_tree,
3925         walk_tree_without_duplicates, in_gimple_form): Declare.
3926         (struct tree_exp): Add fields locus and block.
3927         (struct tree_ssa_name, struct edge_def, struct
3928         tree_phi_node, struct tree_eref_common, struct
3929         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
3930         union alias_var_def, struct tree_statement_list_node,
3931         struct tree_statement_list, enum operand_equal_flag): Declare.
3932         (enum tree_node_structure_enum): Add TS_SSA_NAME,
3933         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
3934         TS_STATEMENT_LIST.
3935         (union tree_node): Add fields ssa_name, phi, eref, ephi,
3936         euse and stmt_list.
3937         (function_cannot_inline_p, uninitialized_vars_warning,
3938         save_for_inline, output_inline_function, all_cases_count,
3939         check_for_full_enumeration_handling,
3940         declare_nonlocal_label): Remove.
3941         (enum tree_dump_index): Add TDI_none, TDI_tu,
3942         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
3943         * unroll.c (unroll_loop): Don't clear map->inline_target.
3944         * unwind-sjlj.c (uw_install_context): Make a proper static inline
3945         function.
3946         * value-prof.c (value_prof_hooks): New.
3947         (find_values_to_profile): Rename to rtl_find_values_to_profile.
3948         Move rtl-specific bits in from branch_prob.
3949         (value_profile_transformations): Rename to
3950         rtl_value_profile_transformations.
3951         (struct value_prof_hooks): New.
3952         (rtl_value_prof_hooks): New.
3953         (rtl_register_value_prof_hooks): New.
3954         (tree_find_values_to_profile): New stub.
3955         (tree_value_profile_transformations): New stub.
3956         (tree_value_prof_hooks): New stub.
3957         (tree_register_value_prof_hooks): New stub.
3958         (find_values_to_profile): New.
3959         (value_profile_transformations): New.
3960         * value-prof.h: Add multiple inclusion guard.
3961         (struct histogram_value): Change rtx fields to void *.
3962         (rtl_register_value_prof_hooks): New declaration.
3963         (tree_register_value_prof_hooks): New declaration.
3964         (find_values_to_profile): New declaration.
3965         (free_profiled_values): New declaration.
3966         (value_profile_transformations): New declaration.
3967         (struct profile_hooks): New declaration.
3968         (init_branch_prob): Declaration moved from rtl.h.
3969         (branch_prob): Declaration moved from rtl.h.
3970         (end_branch_prob): Declaration mooved from rtl.h.
3971         (tree_register_profile_hooks): New declaration.
3972         (rtl_register_profile_hooks): New declaration.
3973         (tree_profile_hooks): New declaration.
3974         (rtl_profile_hooks): New declaration.
3975         * varasm.c: Include tree-mudflap.h.
3976         (TRAMPOLINE_ALIGNMENT): Remove.
3977         (make_decl_rtl): Call mudflap_enqueue_decl.
3978         (assemble_static_space):
3979         (assemble_trampoline_template): Set and return
3980         TRAMPOLINE_ALIGNMENT.
3981         * varray.c (element): Add GENERIC_PTR_NOGC entry.
3982         Add entry for 'tree *'.
3983         Add entry for struct edge_def *.
3984         (varray_copy): New.
3985         * varray.h (enum varray_data_enum): Add
3986         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
3987         VARRAY_DATA_TREE_PTR.
3988         (union varray_data_tag): Corresponding changes.
3989         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
3990         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
3991         VARRAY_EDGE, VARRAY_TREE_PTR,
3992         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
3993         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
3994         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
3995
3996         * config/*/*: Various updates for changed macros, tree
3997         codes, etc.  Check ChangeLog.tree-ssa.
3998
3999         * doc/cfg.texi: New file.
4000         * doc/tree-ssa.texi: New file.
4001         * doc/c-tree.texi: Document new codes.
4002         * doc/gccint.texi: Include new files.
4003         * doc/install.texi: Document new features.
4004         * doc/invoke.texi: Document new switches.
4005         * doc/passes.texi: Document new passes.
4006         * doc/rtl.texi: Update changed RTL codes.
4007         * doc/sourcebuild.texi: Update build instructions.
4008         * doc/standards.texi: Document Fortran changes.
4009         * doc/tm.texi: Update.
4010
4011 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4012
4013         Replace several arrays with a struct of arrays.
4014         * combine.c (struct reg_stat): New.
4015         (init_reg_last_arrays): Renamed to...
4016         (init_reg_last): ...this.  Callers adjusted.
4017         (reg_stat): New.
4018         (combine_instructions): Allocate it and use it.
4019         (reg_last_death, reg_last_set, reg_last_set_value,
4020         reg_last_set_label, reg_last_set_table_tick,
4021         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4022         reg_last_set_mode, reg_last_set_nonzero_bits,
4023         reg_last_set_sign_bit_copies): Replace throughout
4024         with items of reg_stat.
4025
4026 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4027
4028         PR optimization/15100
4029         * combine.c (distribute_notes): Don't create a dangling
4030         REG_LIBCALL/REG_RETVAL note.
4031
4032 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4033
4034         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4035
4036         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4037         negv2si2.
4038
4039 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4040
4041         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4042
4043 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4044
4045         * doc/gty.texi (GTY Options): Clarify example.
4046
4047 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4048
4049         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4050         Add const qualifier to altivec vector type if one is needed.
4051
4052 2004-05-11  Paul Brook  <paul@codesourcery.com>
4053
4054         * flags.h (flag_short_enums): Update comment.
4055         * opts.c (decode_options): Set flag_short_enums to 2.
4056         * toplev.c (flag_short_enums): Update comment.
4057         (process_options): Call default_short_enums target hook.
4058
4059 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
4060
4061         PR target/14063
4062         * config/rs6000/altivec.md (altivec_dssall):
4063         Change to unspec_volatile.
4064         (altivec_dss): Likewise.
4065
4066 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
4067
4068         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4069         vnor.
4070         ("one_cmplv8hi2"): Same.
4071         ("one_cmplv4si2"): Same.
4072
4073 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4074
4075         PR target/15130
4076         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4077         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4078         into account.  Compute the correct number of general registers
4079         for the return value.  Generate a special push/pop sequence when
4080         failing to get a temporary register for non SHmedia epilogue.
4081         (sh_expand_epilogue): Add an argument to show whether it's for
4082         sibcall or not.  Set the 3rd argument of output_stack_adjust to
4083         -1 if needed.
4084         (sh_need_epilogue): Call sh_expand_epilogue with 0.
4085         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4086         with 1.
4087         (epilogue): Call sh_expand_epilogue with 0.
4088
4089 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
4090
4091         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4092         goto a cleanup label.  After the cleanup, free the allocated memory.
4093
4094 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
4095
4096         * config/rs6000/altivec.h (vec_sld): Add overloads for
4097         argument/return types of 'vector bool int', 'vector bool short'
4098         and 'vector bool char'.
4099
4100 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
4101
4102         * c-decl.c (store_parm_decls_newstyle): Correct test for a
4103         nested function.
4104
4105 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
4106
4107         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4108         treating missing ones as "".
4109         * config/mips/mips.md: Remove constraints from match_operands and
4110         match_scratches if they appear in define_expands (except reload*),
4111         define_peephole2s, define_splits or attribute specifications.
4112         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4113         constraint strings.
4114
4115 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4116
4117         * config/rs6000/rs6000.c (function_arg_boundary): Always align
4118         AltiVec vectors.
4119         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4120         vectors by refererence.  Align the same for TARGET_64BIT to a 16
4121         byte boundary.  Remove useless code.  Add function comment.
4122         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
4123         call to where it belongs.
4124         (function_arg_partial_nregs): Return true for all TARGET_32BIT
4125         -mabi=no-altivec AltiVec vectors.  Fix debug output.
4126         (rs6000_va_arg): Adjust for AltiVec change.
4127
4128 2004-05-10  Paul Brook  <paul@codesourcery.com>
4129
4130         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4131         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4132         (TARGET_DOUBLEWORD_ALIGN): Use it.
4133         (WCHAR_TYPE): Define.
4134         (WCHAR_SIZE_TYPE): Define.
4135         (SIZE_TYPE): Define.
4136
4137 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4138
4139         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4140         when size is 8 bytes.
4141         (function_arg_advance): Account for stack space used by AltiVec
4142         args when -mabi=altivec.  Simplify alignment calculations.  For
4143         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4144         (function_arg): Similarly.
4145         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4146         not AltiVec ABI.
4147         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
4148         Correct alignment, and align before testing reg count.  Remove
4149         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
4150         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4151         TARGET_FPRS here..
4152         (rs6000_function_value): .. not here before call.
4153
4154 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4155
4156         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4157
4158 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
4159
4160         PR 15007
4161         * c-decl.c (current_file_decl): Rename to all_translation_units,
4162         adjust comment.
4163         (pop_scope): If popping file_scope, construct a
4164         TRANSLATION_UNIT_DECL and make it the context of all the
4165         symbols in the scope.
4166         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4167         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
4168         anything to current_file_decl.
4169         (pushdecl_top_level): Likewise.
4170         (store_parm_decls_newstyle): Adjust check for nested function.
4171         (c_write_global_declarations): Update for renamed variable.
4172
4173 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4174
4175         * config/rs6000/rs6000-protos.h
4176         (rs6000_conditional_register_usage): Protoize.
4177
4178         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4179
4180         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4181         function.
4182
4183 2004-05-08  Roger Sayle  <roger@eyesopen.com>
4184
4185         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4186         where op is a comparison operator and C1 and C2 are integer constants
4187         into a range check.
4188         (fold): Call fold_div_compare.
4189
4190 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4191
4192         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4193         problems with earlier versions of the GNU compiler.
4194
4195 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
4196
4197         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4198         Declare.
4199
4200         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4201         (rs6000_hard_regno_mode_ok): New.
4202         (rs6000_init_hard_regno_mode_ok): New.
4203         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4204
4205         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4206         result.
4207
4208 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
4209
4210         * config/rs6000/altivec.h (vector, pixel, bool): Do not
4211         define as macros #ifdef __APPLE_ALTIVEC__.
4212
4213 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
4214
4215         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4216         Generate appropriate parallels for vector arguments
4217         passed to vararg functions. (function_arg): make the call
4218         to rs6000_mixed_function_arg for vector args as needed.
4219
4220 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4221
4222         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4223         EABI_FLOAT_VARARGS_P.
4224
4225 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4226
4227         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4228         * config/mips/mips.c (override_options): Disable branch likely
4229         instructions if TUNE_MIPS5500.
4230
4231 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4232
4233         * config/mips/mips.c (override_options): Allow the hi and lo registers
4234         to store any integral mode, not just MODE_INTs.
4235
4236 2004-05-07  Paul Brook  <paul@codesourcery.com>
4237
4238         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4239         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4240         (TARGET_DOUBLEWORD_ALIGN): Use it.
4241         (WCHAR_TYPE): Define.
4242         (WCHAR_SIZE_TYPE): Define.
4243         (SIZE_TYPE): Define.
4244
4245 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4246
4247         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4248         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4249
4250 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
4251
4252         * loop-doloop.c (doloop_valid_p): Make sure that body
4253         gets freed.
4254
4255 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
4256
4257         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4258         declaration.
4259         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4260         (sparc_skip_caller_unimp): New global variable.
4261         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4262         Use it instead of SKIP_CALLERS_UNIMP_P.
4263         * config/sparc/sparc.md (call expander): Add sanity check.
4264         (call_address_struct_value_sp32): Re-sync with expander.
4265         (call_symbolic_struct_value_sp32): Likewise.
4266         (return peepholes): Use 'sparc_skip_caller_unimp' instead
4267         of custom predicate.
4268
4269 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4270
4271         PR c++/14962
4272         * c-pragma.c (handle_pragma_redefine_extname): Only change
4273         the assembler name of FUNCTION_DECLs and VAR_DECLs.
4274
4275 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4276
4277         * optabs.h (enum optab_index): Add new OTI_log1p.
4278         (log1p_optab): Define corresponding macro.
4279         * optabs.c (init_optabs): Initialize log1p_optab.
4280         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4281         patterns.
4282         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4283         using log1p_optab.
4284         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4285         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4286
4287         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4288
4289         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4290         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4291         Prototype here.
4292         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4293         x87's fyl2xp1 instruction.
4294         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4295         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4296         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4297         log1p  and log1pl built-ins as inline x87 intrinsics.
4298
4299 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
4300
4301         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4302         * config/arm/freebsd.h: Likewise.
4303         * config/ia64/freebsd.h: Likewise.
4304         * config/sparc/freebsd.h: Likewise.
4305
4306 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
4307
4308         PR optimization/15296
4309         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4310         getting last consecutive label at a branch.
4311         (relax_delay_slots): Similar, near top of loop.
4312
4313 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4314
4315         PR target/15202
4316         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4317         register to general register.
4318
4319 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
4320
4321         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4322         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4323         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4324         (STACK_BOUNDARY): Delete.
4325
4326 2004-05-06  Stuart Hastings  <stuart@apple.com>
4327
4328         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4329         mistakenly clobbered by 1.423.
4330
4331 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4332
4333         * doc/invoke.texi: Document -mvr4130-align.
4334         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4335         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4336         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4337         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4338         * config/mips/mips.md: Include sched-int.h.
4339         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4340         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4341         (override_options): Enable -mvr4130-align at -O3 and above.
4342         (mips_sim_insn): New variable.
4343         (mips_sim): New structure.
4344         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4345         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4346         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4347         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4348         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4349         (mips_reorg): Call vr4130_align_insns.
4350         (vr4130_last_insn): New variable.
4351         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4352         (vr4130_swap_insns_p, vr4130_reorder): New functions.
4353         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4354         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4355         (mips_use_dfa_pipeline_interface): Return true for the same.
4356         * config/mips/4130.md: New file.
4357         * config/mips/mips.md: Include it.  Add a peephole2 to convert
4358         "mult;mflo" into "mtlo;macc".
4359         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4360         target of maccs.
4361         (*msac_using_macc): New pattern.
4362
4363 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4364
4365         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
4366         (ir_vr55_hilo): Split into...
4367         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
4368         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
4369         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
4370         Add various multiplication bypasses.
4371         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
4372         multiplication.
4373
4374 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
4375
4376         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
4377         attribute to "XF".
4378
4379 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
4380
4381         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
4382         (fmod_optab, drem_optab): Define corresponding macros.
4383         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
4384         * genopinit.c (optabs): Implement fmod_optab and drem_optab
4385         using fmod?f3 and drem?f3 patterns.
4386         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
4387         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
4388         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
4389         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
4390         flag_unsafe_math_optimizations is set.
4391
4392         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
4393         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
4394
4395         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
4396         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
4397         Prototype here.
4398         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
4399         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
4400         fprem and fprem1 instructions.
4401         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
4402         Rename insn definition to x86_fnstsw_1.
4403         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
4404         x87 instructions.
4405         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
4406         and fmodl built-ins as inline x87 intrinsics.
4407         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
4408         and dreml built-ins as inline x87 intrinsics.
4409
4410 2004-05-05  Roger Sayle  <roger@eyesopen.com>
4411
4412         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
4413
4414 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
4415
4416         PR driver/9822
4417         * doc/invoke.texi (Spec Files): Remove documentation of %c.
4418
4419 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
4420
4421         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
4422         representation.
4423
4424 2004-05-06  Paul Brook  <paul@codesourcery.com>
4425
4426         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
4427         (arm_coproc_mem_operand): ... To this.
4428         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
4429         (arm_legitimate_index_p): Ditto.
4430         (vfp_mem_operand): Rename ...
4431         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
4432         (vfp_secondary_reload_class): Use it.
4433         (output_move_double): Use doubleword load/store instructions.
4434         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
4435         * config/arm/arm.h (TARGET_LDRD): Define.
4436         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
4437         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
4438         New splitter for invalid doubleword loads.
4439         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
4440         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
4441         * doc/md.texi: Document Uy constraint.
4442
4443 2004-05-05  Jan Hubicka  <jh@suse.cz>
4444
4445         PR opt/14980
4446         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
4447         inline clones.
4448
4449 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4450
4451         PR target/15290
4452         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
4453         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
4454
4455 2004-05-05  Mike Stump  <mrs@apple.com>
4456
4457         * config/darwin-c.c (add_framework): Copy the directory name as it
4458         can be freed later.  Also, ensure we always allocate enough room
4459         for the cached framework information.
4460         (find_subframework_header): Keep track of the directory where the
4461         subframework header was found.
4462         (framework_construct_pathname): Speed up by not trying to re-add a
4463         framework.
4464         * cppfiles.c (search_path_exhausted): Arrange for the missing
4465         header callback to be able to set the directory where the header
4466         was found.
4467         (cpp_get_dir): Add.
4468         * cpplib.h (missing_header_cb): Add a parameter.
4469         (cpp_get_dir): Add.
4470
4471 2004-05-03  Mike Stump  <mrs@apple.com>
4472
4473         * doc/invoke.texi (Directory Options): Document -iquote.
4474         * doc/cpp.texi: Likewise.
4475         * doc/cppopts.texi: Likewise.
4476         * c-opts.c (c_common_missing_argument): Add -iquote processing.
4477         (c_common_handle_option): Likewise.
4478         * c.opt (iquote): Add.
4479         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
4480         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
4481
4482         * c-opts.c (case OPT_I): Deprecate -I- support.
4483         * doc/invoke.texi: Likewise.
4484         * doc/cpp.texi: Likewise.
4485         * doc/cppopts.texi: Likewise.
4486
4487 2004-05-05  Steven Bosscher  <stevenb@suse.de>
4488
4489         * basic-block.h (free_basic_block_vars): Update prototype.
4490         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
4491         argument.
4492         (life_analysis): Update call.
4493         * ifcvt.c (if_convert): Likewise.
4494         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
4495         * passes.c (rest_of_handle_final): Likewise.
4496         (rest_of_compilation): Likewise.
4497         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4498
4499         * emit-rtl.c (next_real_insn): Use INSN_P.
4500         (prev_real_insn): Likewise.
4501
4502 2004-05-05  Eric Christopher  <echristo@redhat.com>
4503
4504         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
4505         representation.
4506
4507 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
4508
4509         * config/rs6000/rs6000.c (build_opaque_vector_type):
4510         New function.
4511         (rs6000_init_builtins): Use it.
4512
4513 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
4514
4515         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
4516         (func_table): Change type from char ** to vms_func_ref.
4517         (write_rtnbeg):  Update to reflect func_table change.  Use
4518         fde->funcdef_number instead of rtnnum in output.
4519         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
4520
4521 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4522             Richard Henderson  <rth@redhat.com>
4523
4524         PR target/14899
4525
4526         * c-common.c (vector_types_convertible_p): New function.
4527         * c-typeck.c (comptypes): Recurse on vector types.
4528         (convert_for_assignment): Use vector_types_convertible_p.
4529         (digest_init): Use vector_types_convertible_p to check
4530         validness of constant vector initializers; otherwise treat
4531         them as scalars.
4532         * tree.c (make_or_reuse_type): New.
4533         (build_common_tree_nodes): Use it.
4534         * cp/call.c (standard_conversion): Likewise.
4535         * cp/typeck.c (comptypes): Recurse on vector types.
4536         (convert_for_assignment): Use vector_types_convertible_p.
4537
4538 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
4539
4540         * config/mips/mips.c (override_options): Default to no
4541         generation of branch-likely operations when tuning for
4542         CPUs where they tend to have a negative performance impact
4543         (e.g., SB-1).
4544
4545 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4546
4547         * expr.c (store_constructor_field): Don't call store_constructor
4548         if bitsize is not a multiple of a byte.
4549
4550 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
4551
4552         * reload1.c (inherit_piecemeal_p): New function.
4553         (emit_reload_insns): When reloading a group of hard registers, use
4554         inherit_piecemeal_p to decide whether the values of individual hard
4555         registers can be inherited.
4556
4557 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4558
4559         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
4560         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
4561         * config/t-linux (LIB2ADDEHDEP): Likewise.
4562
4563 2004-05-04  Paul Brook  <paul@codesourcery.com>
4564
4565         * config/arm/crti.asm: Push an even number of registers.
4566         * config/arm/crtn.asm: And restore them.  Load via sp.
4567
4568 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4569
4570         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
4571         Collect overhead information.
4572         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
4573         parameter and pass it through.
4574         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
4575         MEM_STAT_DECL parameter and pass it through.
4576         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
4577         MEM_STAT_DECL parameter and pass it through.
4578
4579 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4580
4581         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
4582
4583         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
4584
4585         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
4586         rs6000_hard_regno_nregs.
4587
4588 2004-05-03  Eric Christopher  <echristo@redhat.com>
4589
4590         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
4591         prologue insn instead of setting up call.
4592         (s390_emit_epilogue): Ditto.
4593         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
4594         (define_constants): Add numbers for above patterns.
4595
4596 2004-05-03  Eric Christopher  <echristo@redhat.com>
4597
4598         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
4599         * config/s390/s390.c (s390_conditional_register_usage): ...here.
4600         * config/s390/s390-protos.h: Prototype.
4601
4602 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
4603
4604         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
4605         assignment.
4606
4607 2004-05-03  Eric Christopher  <echristo@redhat.com>
4608
4609         * config/mips/mips.md: Fix branch length attribute definition.
4610
4611 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4612
4613         * config.gcc: Remove --enable-altivec support.
4614
4615         * config/rs6000/altivec-defs.h: Remove.
4616
4617 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4618
4619         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
4620         * fixinc/fixincl.x: Regenerate.
4621
4622 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4623
4624         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
4625         definition.
4626         (log?f2, log10?f2, log2?f2): Reimplement expanders with
4627         float_truncate insn.
4628         (*fxtractsf3, *fxtractdf3): Remove insn definition.
4629         (logb?f2): Reimplement expanders with float_truncate insn.
4630
4631 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
4632
4633         PR 14718
4634         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
4635         force_type_die for CONST_DECL.
4636
4637 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4638             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4639
4640         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
4641         tm-dwarf2.h to tm_file.
4642         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
4643         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
4644         (ASM_DEBUG_SPEC): Delete.
4645
4646 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4647
4648         * optabs.h (enum optab_index): Add new OTI_expm1.
4649         (expm1_optab): Define corresponding macro.
4650         * optabs.c (init_optabs): Initialize expm1_optab.
4651         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
4652         patterns.
4653         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
4654         using expm1_optab.
4655         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
4656         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4657
4658         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
4659         to implement expm1, expm1f and expm1l built-ins as inline x87
4660         intrinsics.
4661
4662 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
4663
4664         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
4665         * config/frv/frv.md (*return_true, *return_false): New patterns.
4666
4667 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
4668
4669         * rtl.h (PHI_NODE_P): Remove.
4670
4671 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
4672
4673         PR middle-end/14988
4674         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
4675         when passed -2 as 'align'.
4676         (put_var_into_stack): Use 'bool' as the type for the three local
4677         predicates.  Adjust calls to put_reg_into_stack.
4678         When passed a CONCAT, instruct put_reg_into_stack to use
4679         a consecutive stack slot for the second part.
4680         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
4681         'consecutive_p' parameter.  Turn the three predicates into 'bool'
4682         parameters.  Retrieve the register mode from 'reg'.
4683         When consecutive_p is true, instruct assign_stack_local_1 to use
4684         BITS_PER_UNIT alignment.
4685         (put_addressof_into_stack): Use 'bool' as the type for the two
4686         local predicates. Adjust call to put_reg_into_stack.
4687
4688 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4689
4690         * fold-const.c (fold_convert_const, fold): Add missing
4691         FIX_ROUND_EXPR case.
4692
4693 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
4694
4695         * configure.ac (FLEX, BISON): Only use tools from the build tree
4696         if build equals host.
4697         * configure: Rebuilt.
4698
4699         * config/frv/frv-protos.h (frv_expand_epilogue,
4700         frv_expand_fdpic_call): Add bool argument.
4701         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
4702         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
4703         (frv_expand_epilogue): Use new argument to decide whether to emit
4704         return instruction or copy the return address to LR.
4705         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
4706         sibcalls.
4707         (sibcall_operand): New.
4708         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
4709         PLUS nor LABEL_REF.  Add sibcall_operand.
4710         * config/frv/frv.md (call, call_value): Pass false to
4711         frv_expand_fdpic_call.
4712         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
4713         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
4714         sibcall_value_internal, sibcall_value_fdpicdi): New.
4715         (return_unsigned_true, return_unsigned_false): New.
4716         (epilogue): Adjust call to frv_expand_epilogue.
4717         (sibcall_epilogue): New.
4718
4719         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
4720         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
4721         before redefining them.
4722
4723 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4724
4725         * builtins.c (fold_fixed_mathfn): New function.
4726         (fold_builtin_lround, fold_builtin): Use it.
4727
4728 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
4729
4730         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
4731         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
4732
4733 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
4734
4735         * config/cris/cris.h: Revert my "fix comment typos" patch.
4736
4737 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
4738
4739         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
4740
4741 2004-05-01  Falk Hueffner  <falk@debian.org>
4742
4743         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
4744         builtin_insll): Disallow 0 as first input operand.
4745
4746 2004-05-01  Falk Hueffner  <falk@debian.org>
4747
4748         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
4749
4750 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
4751
4752         PR middle-end/15054
4753         * expr.c (expand_expr_real): Do not call preserve_temp_slots
4754         on a TARGET_EXPR temp.
4755         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
4756         TARGET_EXPR temp slots.
4757
4758 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
4759
4760         * simplify-rtx.c (simplify_ternary_operation): When
4761         converting an IF_THEN_ELSE to a relational op, return
4762         correct mode.
4763
4764 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4765
4766         * builtins.c (fold_builtin_round): Fix comment typo.
4767         (fold_builtin_lround): New function.
4768         (fold_builtin): Use it.
4769
4770 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
4771
4772         PR target/11608
4773         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
4774         more like the one in config/dbxelf.h.
4775
4776 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
4777
4778         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
4779         and adjust definition accordingly.
4780         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
4781         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
4782         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
4783         VECTOR_TYPE.
4784
4785 2004-04-30  Jason Merrill  <jason@redhat.com>
4786
4787         PR c++/14587
4788         * config/i386/winnt.c (associated_type): Look for attributes on
4789         the TYPE_MAIN_VARIANT of *this.
4790         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
4791         apply the attributes to the variants.
4792
4793 2004-04-30  Paul Brook  <paul@codesourcery.com>
4794
4795         * config.gcc: Simplify arm --with-{cpu,tune} test.
4796         * config/arm/arm-cores.def: Document whitespace restrictions.
4797
4798 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4799
4800         PR other/1963
4801         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
4802
4803 2004-04-30  Brian Ford  <ford@vss.fsi.com>
4804             DJ Delorie  <dj@redhat.com>
4805
4806         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4807         (DWARF2_DEBUGGING_INFO): Define to enable.
4808         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
4809         DWARF2.
4810         * configure.ac (Target-specific assembler checks)
4811         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
4812         relocs.
4813         * configure: Regenerate.
4814         * config.in: Likewise.
4815
4816         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4817         (ASM_OUPUT_DWARF_OFFSET): Define.
4818
4819 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
4820
4821         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
4822         (s390_emit_call): New function prototype added.
4823         (s390_tls_get_offset): Function removed.
4824         * config/s390/s390.c (s390_function_ok_for_sibcall,
4825         s390_call_saved_register_used_p): New functions.
4826         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
4827         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
4828         (s390_emit_tls_call_insn): New function.
4829         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
4830         emit_call_insn.
4831         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
4832         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
4833         added.
4834         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
4835         register number used to hold the target address for sibcalls.
4836         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
4837         New expanders.
4838         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
4839         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
4840         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
4841         Expanders removed.
4842         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
4843         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
4844         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
4845         ("epilogue"): Changed the call to s390_emit_epilogue to use the
4846         new parameter.
4847
4848 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
4849
4850         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
4851         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
4852         reg-stack.c, varasm.c, config/alpha/ev4.md,
4853         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
4854         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
4855         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
4856         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
4857         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
4858         config/ia64/itanium2.md, config/ip2k/ip2k.c,
4859         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
4860         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
4861         comment typos.
4862
4863 2004-04-30  Paul Brook  <paul@codesourcery.com>
4864
4865         * config.gcc: Default ep9312 to hard-float.
4866         * config/arm/arm-cores.def: Add ARCH field.
4867         * config/arm/arm.c (FL_FOR_ARCH*): Define.
4868         (arm_arch_cirrus): New variable.
4869         (all_cores): Set and use arch.
4870         (all_architectures): Ditto.
4871         (arm_arch_name): New variable.
4872         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
4873         Set and use arm_arch_cirrus.
4874         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
4875         (enum processor_type): Update ARM_CORE define.
4876         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
4877         (CPP_SPEC): Remove %(cpp_cpu_arch).
4878         (CPP_ARCH_DEFAULT_SPEC): Remove.
4879         (CPP_CPU_ARCH_SPEC): Remove.
4880         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
4881         (FPUTYPE_DEFAULT): Don't define here.
4882
4883 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
4884
4885         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
4886         updates too.
4887
4888 2004-04-30  Paul Brook  <paul@codesourcery.com>
4889
4890         * arm.c (arm_needs_doubleword_align): Use mode alignment.
4891
4892 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
4893
4894         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
4895         vec_sububs.
4896         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
4897         duplicates.
4898
4899 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
4900
4901         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
4902         atan2?f3 expanders.
4903
4904 2004-04-29  Nick Clifton  <nickc@redhat.com>
4905
4906         Bug 14093
4907         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
4908         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
4909         Delete static from definition.
4910         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
4911
4912 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
4913
4914         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
4915         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
4916         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
4917         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
4918
4919 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
4920
4921         * commom.opt (Wfatal-errors): Add it.
4922         * diagnostic.c (flag_fatal_errors): Define it.
4923         (diagnostic_action_after_output): Check for flag_fatal_errors.
4924         * flags.h (flag_fatal_errors): Declare it.
4925         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
4926         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
4927
4928 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
4929
4930         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
4931         blocks which have kill flag set.
4932
4933 2004-04-29  Ben Elliston  <bje@au.ibm.com>
4934
4935         * configure.ac (--with-as): Abort if user-supplied assembler
4936         cannot be executed.
4937         (--with-ld): Likewise for the linker.
4938         * configure: Regenerate.
4939
4940 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4941
4942         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
4943         isn't NULL before using it.
4944
4945 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
4946
4947         PR target/15189
4948         * config/mips/mips.md (load_df_low): Use default length.
4949         (load_df_high, store_df_high): Likewise.
4950
4951 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
4952
4953         * config/mips/mips.md, config/mips/sb1.md,
4954         config/rs6000/rs6000.c: Fix comment typos.
4955
4956 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
4957
4958         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
4959         Fix comment typos.
4960
4961 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
4962
4963         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
4964         (delete_if_ordinary): Use above macro.
4965         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
4966         Update copyright.
4967         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
4968
4969 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
4970
4971         * c-decl.c (get_parm_info): Use the correct tag keywords when
4972         warning about type declarations in prototypes.
4973
4974 2004-04-29  Paul Brook  <paul@codesourcery.com>
4975
4976         * config.gcc: Pull list of cores from arm-cores.def.
4977
4978 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
4979
4980         * combine.c (combine_simplify_rtx): Adjust call to use
4981         simplify_relational_operation.  Do not use SELECT_CC_MODE
4982         when a comparison already has a MODE_CC mode.
4983
4984 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
4985
4986         (simplify_set): simplify_relational_operation may now
4987         return another relational expression.
4988         * cse.c (fold_rtx): simplify_relational_operation now
4989         takes of computing the comparison mode.
4990         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
4991         remove dead code.
4992         (do_compare_rtx_and_jump): Likewise.
4993         * integrate.c (subst_constants): simplify_relational_operation
4994         may now return another relational expression.
4995         * simplify-rtx.c (simplify_gen_relational): Move most code to
4996         the new simplify_relational_operation and
4997         simplify_relational_operation_1 functions.
4998         (simplify_relational_operation): Rewritten.
4999         (simplify_relational_operation_1): New function.
5000         (simplify_ternary_operation): simplify_relational_operation
5001         may now return another relational expression.
5002         (simplify_rtx): Remove unnecessary temp variable.
5003
5004 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5005
5006         * reg-stack.c (swap_to_top): New function.
5007         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5008         swap_to_top().
5009         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5010         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5011         UNSPEC_FSCALE_EXP.
5012
5013         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5014         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5015         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5016         x87's fscale insn.
5017         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5018         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5019         patterns.
5020
5021 2004-04-28  Serge Belyshev  <1319@bot.ru>
5022
5023         PR 14944
5024         * coverage.c (read_counts_file): Fix usage of warning () call.
5025         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5026
5027 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5028
5029         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5030         options with "-" in the option index.
5031         (SPARC Options): Likewise.
5032         (M32R/D Options): Likewise.
5033
5034 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5035
5036         * convert.c (convert_to_integer): Convert (long)round -> lround,
5037         etc.
5038
5039 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5040
5041         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5042         Return false if we do not have fp register.
5043         (addrs_ok_for_quad_peep): Rename to ...
5044         (mems_ok_for_quad_peep): this.
5045         Add check for volatile memory.
5046         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5047         Rename to ...
5048         (mems_ok_for_quad_peep): this.
5049         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5050         to peephole2's.
5051         (lfq_power2): New instruction.
5052         (stfq_power2): Likewise.
5053
5054 2004-04-28  Jan Hubicka  <jh@suse.cz>
5055
5056         PR c/15004
5057         * function.c (do_warn_unused_parameter): Break out form ...
5058         (expand_function_end): ... here; warn only when not using cgraphunit.
5059         * function.h (do_warn_unused_parameter): Declare.
5060         * cgraphunit.c: Include function.h.
5061         (cgraph_finalize_function): Do unused parameter warning.
5062         * Makefile.in (cgraphunit.o): Depend on function.h
5063
5064 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5065
5066         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5067         calling install-info on $(DESTDIR)$(infodir)/dir already being
5068         present.
5069
5070 2004-04-28  Paul Brook  <paul@codesourcery.com>
5071
5072         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5073
5074 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5075
5076         * gcse.c (find_moveable_store): Do not accept store insns with
5077         REG_EH_REGION note.
5078
5079 2004-04-28  Paul Brook  <paul@codesourcery.com>
5080
5081         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5082         * function.c (assign_temp): Ditto.
5083         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5084
5085 2004-04-28  Paul Brook  <paul@codesourcery.com>
5086
5087         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5088
5089 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
5090
5091         * var-tracking.c (variable_different_p): Add a parameter
5092         compare_current_location, compare current location of variable parts
5093         if it is true.
5094         (dataflow_set_different_1): Pass compare_current_location == false.
5095         (dataflow_set_different_2): Pass compare_current_location == false.
5096         (emit_notes_for_differences_1): Pass compare_current_location == true.
5097
5098 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5099
5100         * config/s390/s390.md ("casesi"): Mark jump table access as
5101         non-trapping and unchanging.
5102
5103 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5104
5105         PR debug/14829
5106         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
5107         callers.
5108         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5109         number for indexing hard_regno_nregs array.
5110
5111 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
5112
5113         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5114         * config/darwin-crt2.c: Only have contents on __ppc__.
5115
5116 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
5117
5118         * config/xtensa/xtensa.c (call_insn_operand): Check
5119         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5120         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5121         * config/xtensa/xtensa.md (call, call_value): Likewise.
5122
5123 2004-04-27  Wu Yongwei  <adah@sh163.net>
5124
5125         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5126         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5127         (__gthread_mutex_init_function): Replace CreateMutex with
5128         initialization of custom mutex using CreateSemaphore.
5129         (__gthread_mutex_lock): Use InterlockedIncrement.
5130         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5131         (__gthread_mutex_unlock): Use InterlockedDecrement and
5132         ReleaseSemaphore to unlock
5133         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5134         __gthread_mutex_lock, __gthread_mutex_trylock,
5135         __gthread_mutex_unlock): Adjust to match inline versions in
5136         gthr-win32.h.
5137
5138 2004-04-27  Paul Brook  <paul@codesourcery.com>
5139
5140         * config/arm/arm.c (arm_promote_prototypes): New function.
5141         (TARGET_PROMOTE_PROTOTYPES): Use it.
5142
5143 2004-04-27  Paul Brook  <paul@codesourcery.com>
5144
5145         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5146
5147 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
5148
5149         * config/alpha.c (alpha_end_function): For OpenVMS gas,
5150         correctly output .pdesc directive before .end.
5151
5152 2004-04-26  James E Wilson  <wilson@specifixinc.com>
5153
5154         Bug 14927
5155         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
5156         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
5157
5158 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
5159
5160         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5161         * config/pa/pa-hpux10.h: Likewise.
5162         * config/pa/pa-hpux11.h: Likewise.
5163
5164 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
5165
5166         * doc/invoke.texi (Overall Options): Document default for -o
5167         for PCH files.
5168
5169 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5170
5171         * builtins.c (expand_builtin_update_setjmp_buf): New function.
5172         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5173         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5174
5175 2004-04-26  Paul Brook  <paul@codesourcery.com>
5176
5177         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5178
5179 2004-04-26  Paul Brook  <paul@codesourcery.com>
5180
5181         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5182
5183 2004-04-25  Roger Sayle  <roger@eyesopen.com>
5184
5185         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5186         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
5187         X % -1 as 0.
5188
5189 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
5190
5191         PR bootstrap/15141
5192         * except.c (connect_post_landing_pads): Delete insns after the
5193         barrier when generating a unwind_resume_libfunc call.
5194
5195 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5196
5197         PR/c++ 15119
5198         * tree.c (substitute_placeholder_in_expr, case 4): New case,
5199         for TARGET_EXPR.
5200
5201 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5202
5203         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5204         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5205         inhibit_libc is defined.
5206
5207 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
5208
5209         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5210         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5211         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5212         (TARGET_SCHED_VARIABLE_ISSUE): Define.
5213         (mips_adjust_cost): Move later in file, next to other sched hooks.
5214         (mips_macc_chains_last_hilo): New variable.
5215         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5216         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5217         * config/mips/mips.md (may_clobber_hilo): New attribute.
5218
5219 2004-04-24  Roger Sayle  <roger@eyesopen.com>
5220             Bruce Korb  <bkorb@gnu.org>
5221
5222         * fixinc/inclhack.def (aix_syswait_2): New fix.
5223         * fixinc/fixincl.x: Regenerate.
5224         * fixinc/tests/base/sys/wait.h: Update for new test.
5225
5226 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
5227
5228         PR target/14960
5229         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5230         to non_fixed_size, and leave out fixed_size from the sum.
5231         (generate_set_vrsave): Correct clobbers.
5232         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5233         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5234         (rs6000_libcall_value): Likewise.
5235         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5236         (FUNCTION_ARG_REGNO_P): Likewise.
5237
5238 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5239
5240         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5241         is a CONST_INT.
5242         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5243         with NARROW_OP1 instead of OP1.
5244
5245 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5246
5247         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5248         and __s390x__ hosts.
5249
5250 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5251
5252         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5253         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5254         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5255         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5256         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5257         * builtins.c (expand_builtin_fork_or_exec): New.
5258         (expand_builtin): Call it.
5259         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5260         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5261         * c-common.c (PID_TYPE): New macro.
5262         (c_common_nodes_and_builtins): Initialize pid_type_node.
5263         * calls.c (special_function_p): Do not handle fork and exec.
5264         (expand_call): Do not handle ECF_FORK_OR_EXEC.
5265         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5266         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5267         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5268         __gcov_execv, __gcov_execvp, __gcov_execve): New.
5269         * tree.h (enum tree_index): Add TI_PID_TYPE.
5270         (pid_type_node): New macro.
5271         (ECF_FORK_OR_EXEC): Removed.
5272
5273 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5274
5275         PR optimization/13985
5276         * cfgloopmanip.c (fix_loop_placements): New prototype.
5277         Call fix_bb_placements on the preheader of loops that have
5278         been reparented.
5279         (remove_path): Adjust call to fix_loop_placements.
5280
5281 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
5282
5283         * config/darwin7.h: New file.
5284         * config.gcc (*-*-darwin*): Add darwin7.h if the
5285         version is greater than 6.
5286         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5287         (MATH_LIBRARY): Wrap in ifdefs.
5288
5289 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
5290
5291         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5292         loading iWMMXt registers with a frame pointer.  Use post-increment
5293         without a frame pointer.
5294         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5295
5296 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
5297
5298         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5299         mode" rather than "-funit-at-a-time" since -O2 enables it
5300         without requiring -f* options.  Refer to -fprofile-generate and
5301         -fprofile-use correctly.  Move -funit-at-a-time among options
5302         enabled by -O.  Add information about unit-at-a-time caveats.
5303
5304 2004-04-22  Per Bothner  <per@bothner.com>
5305
5306         * line-map.h (struct line_maps):  New field highest_line.
5307         (linemap_position_for_column):  Make non-inline function.
5308         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
5309         * line-map.c (linemap_init):  Clear highest_line field.
5310         (linemap_add):  Set highest_line field.
5311         (linemap_line_start):  Minor optimization - use highest_line field.
5312         Reduce maximum column hint to 10000.  Update highest_line field.
5313         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
5314         * cpphash.h (struct cpp_reader):  Remove line field - instead use
5315         line_table->highest_line.
5316         (saved_line):  Remove unused field.
5317         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
5318         Use  line_table's highest_line field instead of cpp_reader's line.
5319         * cpplib.c (start_directive):  Likewise use highest_line field.
5320         (do_line, do_linemarker):  Likewise just use newest map.
5321         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
5322         * cpperror.c (cpp_error):  Likewise use highest_line field.
5323         * cppfiles.c (open_file_failed:  Likewise.
5324         (cpp_make_system_header):  Likewise use newest map and highest_line.
5325         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
5326         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5327         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5328         _cpp_lex_direct):  Likewise use highest_line.
5329         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
5330         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
5331         and use newest map.
5332         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
5333         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
5334         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
5335
5336 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
5337
5338         PR bootstrap/14992
5339         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5340         * config/linux.h (USE_LD_AS_NEEDED): Define.
5341         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5342         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5343         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5344         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5345         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5346         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5347         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5348
5349 2004-04-22  Per Bothner  <per@bothner.com>
5350
5351         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
5352         Fixes PR preprocessor/15067.
5353
5354 2004-04-23  Andreas Schwab  <schwab@suse.de>
5355
5356         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5357         avoid aliasing warning.
5358
5359 2004-04-22  Jan Hubicka  <jh@suse.cz>
5360             Mostafa Hagog <mustafa@il.ibm.com>
5361
5362       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5363       * cfgloopanal.c (expected_loop_iterations): Change the return value
5364
5365 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
5366
5367         * cselib.h (struct elt_loc_list): Remove canon_loc field.
5368         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
5369         (cselib_invalidate_mem): Remove all canon_loc and canon_x
5370         traces.
5371
5372 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
5373
5374         Revert
5375         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5376
5377                 * var-tracking.c (variable_part_different_p): Variable parts
5378                 differ when the most recent locations differ.
5379
5380 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
5381
5382         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
5383         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
5384         (embedded_pic_offset): Delete.
5385         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
5386         MASK_* constants.
5387         (TARGET_EMBEDDED_PIC): Delete.
5388         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
5389         (ASM_SPEC): Remove -membedded-pic.
5390         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
5391         (ASM_OUTPUT_CASE_LABEL): Likewise.
5392         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
5393         * config/mips/windiss.h (ASM_SPEC): Likewise.
5394         * config/mips/mips.c (struct machine_function): Remove
5395         embedded_pic_fnaddr_rtx.
5396         (TARGET_ENCODE_SECTION_INFO): Remove override.
5397         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
5398         (override_options): Remove -membedded-pic handling.
5399         (print_operand): Remove handling of '%S'.
5400         (mips_select_section: Remove -membedded-pic handling.
5401         (mips_encode_section_info): Delete.
5402         (mips_output_conditional_branch): Remove mention of -membedded-pic.
5403         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
5404         -membedded-pic handling.
5405         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
5406
5407 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
5408
5409         * var-tracking.c (frame_base_decl): Remove useless GTY.
5410
5411 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
5412
5413         * config/rs6000/rs6000.c (rs6000_override_options): Error when
5414         user wants altivec and e500 instructions.
5415
5416 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
5417
5418         PR target/14813
5419         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
5420         in .init_array section to ...
5421         * config/ia64/crtbegin.asm: Here.
5422
5423         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
5424         and hidden if HAVE_INITFINI_ARRAY is defined.
5425
5426 2004-04-21  James E Wilson  <wilson@specifixinc.com>
5427
5428         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
5429         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
5430         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
5431         (fp_register_operand, lo_operand): New.
5432         (mips_rtx_costs): Add TUNE_SB1 support.
5433         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
5434         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
5435         (mips_multipass_dfa_lookahead): New.
5436         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
5437         TUNE_SB1): New.
5438         (TARGET_SWITCHES): Add -mfp-exceptions support.
5439         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
5440         (BRANCH_COST): Fix whitespace.
5441         * config/mips/mips.md: Include sb1.md.
5442         * config/mips/sb1.md: New file.
5443         * doc/invoke.texi: Document -mfp-exceptions.
5444
5445         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
5446         comment.
5447         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
5448         (fixincl.o-warn): Delete.
5449
5450 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5451
5452         * config/rs6000/rs6000 (print_operand) ['z']:
5453         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
5454
5455 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
5456
5457         * config.gcc: Support --with-arch=iwmmxt for ARM.
5458
5459 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5460
5461         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
5462         in two more places; remove unneeded force_reg
5463
5464 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5465
5466         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
5467         for TARGET_MACHO.
5468         (print_operand): For TARGET_MACHO check to see if we need a stub
5469         and output one if we need it.
5470
5471         PR debug/15033
5472         * dwarf2out.c (rtl_for_decl_location): Check for NULL
5473         rtl.
5474
5475 2004-04-20  James E Wilson  <wilson@specifixinc.com>
5476
5477         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
5478         (vall_value_gp): Likewise.
5479
5480 2004-04-20  DJ Delorie  <dj@redhat.com>
5481
5482         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
5483         variables stored in word registers, then in memory.
5484
5485 2004-04-20  Eric Christopher  <echristo@redhat.com>
5486
5487         * cp/parser.c (cp_parser_declaration): Move translate
5488         up before tokens are lexed.
5489
5490 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
5491
5492         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
5493         (asin_optab, acos_optab): Define corresponding macros.
5494         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
5495         * genopinit.c (optabs): Implement asin_optab and acos_optab
5496         using asin?f2 and acos?f2 patterns.
5497         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
5498         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
5499         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
5500         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5501
5502         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
5503         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
5504         acos, acosf and acosl built-ins as inline x87 intrinsics.
5505
5506 2004-04-20  Paul Brook  <paul@codesourcery.com>
5507
5508         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
5509
5510 2004-04-20  Paul Brook  <paul@codesourcery.com>
5511
5512         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
5513
5514 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
5515
5516         Revert part of 2004-04-17 change that moved -frename-registers
5517         to -O1.  -frename-registers is buggy.
5518
5519         * toplev.c (flag_rename_registers): Initialize to 0.
5520         * doc/invoke.texi (Optimize options): Move -frename-registers
5521         to "Not triggered by any -O level" section.  Adjust commentary
5522         accordingly.
5523
5524 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
5525
5526         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
5527
5528 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
5529
5530         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
5531         for mflo and mfhi instructions.
5532         (mips_output_move): Remove mflo and mfhi handling.
5533         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
5534         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
5535         Likewise various define_peephole2s.
5536         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
5537         alternatives.
5538         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
5539         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
5540         (mfhilo_di, mfhilo_si): New patterns.
5541
5542 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5543
5544         * function.c (assign_parms): Force
5545         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
5546
5547 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5548
5549         * var-tracking.c (variable_part_different_p): Variable parts differ
5550         when the most recent locations differ.
5551
5552 2004-04-19  James E Wilson  <wilson@specifixinc.com>
5553
5554         * rtl.h (reg_set_last): Delete declaration.
5555         * rtlanal.c (reg_set_last): Delete.
5556
5557 2004-04-19  Roger Sayle  <roger@eyesopen.com>
5558
5559         * fold-const.c (fold_convert): Make function extern/public.
5560         * tree.h (fold_convert): Prototype here.
5561         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
5562         expand_builtin_strrchr, expand_builtin_strpbrk,
5563         expand_builtin_mempcpy, expand_builtin_bcopy,
5564         expand_builtin_bzero, expand_builtin_memcmp,
5565         expand_builtin_strcmp, expand_builtin_strncmp,
5566         stabilize_va_list, expand_builtin_sprintf,
5567         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
5568         fold_builtin_exponent, fold_builtin_mempcpy,
5569         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
5570         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
5571         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
5572
5573 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
5574
5575         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
5576         (move_from_CR_gt_bit): New.
5577         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
5578         E500.
5579         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
5580         E500.
5581
5582         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
5583         (tstsfeq_gpr): Same.
5584         (cmpsfgt_gpr): Same.
5585         (tstsfgt_gpr): Same.
5586         (cmpsflt_gpr): Same.
5587         (tstsflt_gpr): Same.
5588         (e500_cceq_ior_compare): New.
5589         (e500_flip_gt_bit): New.
5590
5591         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
5592         (print_operand): Add 'c' and 'D'.
5593         (rs6000_generate_compare): Rewrite to generate correct rtl.
5594         (rs6000_emit_sCOND): Handle E500.
5595         (output_cbranch): Adjust for changes in rs6000_generate_compare.
5596         (output_e500_flip_gt_bit): New.
5597
5598         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
5599         Protoize.
5600
5601 2004-04-19  Eric Christopher  <echristo@redhat.com>
5602
5603         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
5604
5605 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
5606
5607         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
5608         fix information.
5609
5610 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5611
5612         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
5613         download URL.
5614
5615 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
5616
5617         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
5618         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
5619
5620 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
5621
5622         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
5623         (fold_builtin): Update caller to match.
5624
5625         PR bootstrap/15009
5626         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
5627
5628         PR bootstrap/14999
5629         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
5630
5631 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5632
5633         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
5634
5635         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
5636         (expand_mult_highpart_optab): Likewise.
5637         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
5638
5639 2004-04-19  Paul Brook  <paul@codesourcery.com>
5640
5641         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
5642         floatunssisf2, floatunssidf2): New patterns.
5643
5644 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
5645
5646         PR other/14918
5647         * doc/invoke.texi (-fprofile-generate): Document requirement to
5648         use -fprofile-generate when linking.
5649
5650         * doc/extend.texi (Strong Using): Warn users against using this
5651         feature.
5652
5653 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
5654
5655         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
5656         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
5657         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
5658         * config/mips/mips.c (struct mips16_constant): Renamed from struct
5659         constant.  Propogate change throughout file.
5660         (struct machine_function): Remove insns_len.
5661         (mips_string_length, mips16_strings, string_constants): Delete.
5662         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
5663         when generating mips16 code.  Remove special mips16 treatment of
5664         string constants.
5665         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
5666         to have the form LABEL+CONSTANT.
5667         (mips_symbolic_address_p): Fix comment.
5668         (m16_usym8_4, m16_usym5_4): Delete.
5669         (mips_output_function_epilogue): Remove mips16 string handling.
5670         (mips_output_mi_thunk): Call mips16_lay_out_constants.
5671         (mips_select_section, mips_encode_section_info): Remove mips16
5672         string handling.
5673         (struct mips16_constant_pool): New.
5674         (add_constant): Take a mips16_constant_pool structure.  Keep pool
5675         sorted into order of ascending mode size.  Keep track of the highest
5676         possible start address, taking padding and the masking of the base PC
5677         value into account.
5678         (dump_constants_1): New function, split out from dump_constants.
5679         Handle vector constants.  Use gen_consttable_{int,float} rather than
5680         separate functions for each mode.
5681         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
5682         rather than separate functions for each alignment.
5683         (mips_find_symbol): Delete.
5684         (mips16_insn_length): New function, split out from
5685         mips16_lay_out_constants.
5686         (mips16_rewrite_pool_refs): New function.
5687         (mips16_lay_out_constants): Rework. Remove string handling.
5688         Always create an inline constant pool.
5689         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
5690         (UNSPEC_ALIGN): New constants.
5691         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
5692         (UNSPEC_ALIGN_[248]): Delete.
5693         (consttable_int, consttable_float, align): New patterns.
5694         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
5695
5696 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
5697
5698         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
5699         __unn_args_eq.
5700
5701 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
5702
5703         PR target/14715
5704         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
5705         with STARTING_FRAME_OFFSET.
5706
5707 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5708
5709         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
5710         * config/mips/mips.c (macc_msac_operand): New function.
5711         * config/mips/mips.md (*msac): Move after *macc.
5712         (*msac2): New.  Generalize macc-related peepholes so that they apply
5713         to msac too.
5714
5715 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
5716
5717         * opts.c (decode_options): Do not enable flag_rename_registers
5718         and flag_web at -O3.
5719         * toplev.c (flag_rename_registers): Initialize
5720         flag_rename_registers and flag_web to
5721         AUTODETECT_FLAG_VAR_TRACKING.
5722         (default_debug_hooks): New global.
5723         (process_options): Initialize default_debug_hooks.  Warn if
5724         -fvar-tracking specified but not supported by the current
5725         debug format.  Do not run var tracking at -O0 or if not
5726         supported by the current debug format, even if
5727         -fvar-tracking was given.  If -fno-rename-registers
5728         is not specified, always run register renaming if var
5729         tracking is supported by the default debugging information
5730         format for the target, and we are at -O1 or higher; similarly
5731         for -fweb, but only at -O2 or higher.
5732         * doc/invoke.texi (Optimize Options): Document this.
5733
5734 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5735
5736         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
5737         * configure: Regenerate.
5738
5739 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5740
5741         * gcc.c (used_arg): Check whether an option has been removed.
5742
5743 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5744
5745         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
5746         debugging on Solaris 7 and up.
5747
5748 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5749
5750         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
5751         IRIX 5 port.
5752         Remove -save-temps workaround, handled automatically.
5753         Require GNU binutils 2.15 for debugging.
5754         Remove SGI make warnings since GNU make is now required.
5755         (Specific, mips-sgi-irix6): Some markup fixes.
5756         Describe MIPSpro C problems and workarounds.
5757         Mention working O32 ABI support.
5758         Recommend GNU as 2.15 for O32 with debugging.
5759         Remove description of fixed structure pass/return bug.
5760
5761 2004-04-16  DJ Delorie  <dj@redhat.com>
5762
5763         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
5764         TYPE_FIELDS.
5765         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
5766
5767 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5768
5769         * pa.md: Remove unnecessary declarations for asm_out_file.
5770
5771         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
5772         SAR register.  Fix comment.
5773         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
5774         (%cr11).
5775
5776         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
5777
5778 2004-04-16  Nick Clifton  <nickc@redhat.com>
5779
5780         * config/arm/arm.c (arm_override_options): Revert previous patch.
5781         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
5782         be safely built.
5783
5784 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
5785
5786         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
5787         bug.
5788         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
5789         TARGET_DEFAULT): Changed. Ditto.
5790         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
5791         TARGET_ENDIAN_DEFAULT): Added. Ditto.
5792         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
5793         (TARGET_ENDIAN_DEFAULT): Added.
5794
5795 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5796
5797         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
5798         ATTR_CONST_NOTHROW_LIST.
5799
5800 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5801
5802         PR/middle-end 14915
5803         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
5804         BITS_BIG_ENDIAN.
5805
5806 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
5807
5808         * ra-debug.c (ra_print_rtx): Add break's to case legs.
5809
5810 2004-04-14  James E Wilson  <wilson@specifixinc.com>
5811
5812         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
5813
5814 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
5815
5816         * libada-mk.in: New file.
5817         * configure.ac: Create libada-mk from libada-mk.in.
5818         * configure: Regenerate.
5819
5820 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
5821
5822         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
5823         (logb_optab, ilogb_optab): Define corresponding macros.
5824         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
5825         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
5826         using logb?f2 and ilogb?i2 patterns.
5827         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
5828         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
5829         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
5830         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5831
5832         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
5833         and UNSPEC_XTRACT_EXP.
5834
5835         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
5836         patterns to implement fxtract x87 instruction.
5837         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
5838         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
5839         intrinsics.
5840         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
5841         x87's fxtract insn.
5842
5843 2004-04-14  Eric Christopher  <echristo@redhat.com>
5844
5845         * config/mips/t-elf: Enable multilibs by default.
5846
5847 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
5848
5849         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
5850         previous fix to check HAVE_return at runtime too.
5851
5852 2004-04-14  Nick Clifton  <nickc@redhat.com>
5853
5854         * config/arm/arm.c (arm_override_options): If the user has not
5855         specified an ABI, then default to AAPCS for the iWMMXt processor.
5856         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
5857         * config/arm/t-xscale-coff: Likewise.
5858
5859 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5860
5861         * builtins.c (fold_builtin_isdigit): New.
5862         (fold_builtin): Handle BUILT_IN_ISDIGIT.
5863         * defaults.h: Add TARGET_DIGIT0 and sort.
5864         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
5865
5866 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5867
5868         * builtins.c (fold_builtin_cabs, fold_builtin): Use
5869         `mathfn_built_in' to determine the new builtin.
5870         * fold-const.c (fold): Likewise.
5871
5872 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
5873
5874         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
5875         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
5876         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
5877         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
5878         (ASM_SPEC): Update accordingly.
5879         * config/mips/mips.c: Update after above renaming.
5880         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
5881         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
5882
5883 2004-04-13  James E Wilson  <wilson@specifixinc.com>
5884
5885         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
5886         increment errorcount and return false instead of true.
5887
5888 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
5889
5890         * optabs.c (expand_twoval_unop): Reorder function arguments.
5891         * builtins.c (expand_builtin_mathfn_3): Update calls to
5892         expand_twoval_unop.
5893
5894         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
5895         and UNSPEC_TAN_TAN. Add missing comment.
5896
5897         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
5898         patterns to implement fptan x87 instruction.
5899         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
5900         and tanl built-ins as inline x87 intrinsics. Define corresponding
5901         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
5902         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
5903         x87's fptan insn.
5904
5905 2004-03-13  Richard Henderson  <rth@redhat.com>
5906
5907         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
5908         for LABEL_REFs.
5909
5910         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
5911         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
5912         * doc/invoke.texi: Update to match.
5913
5914         * varasm.c (unlikely_text_section): Use assemble_align instead of
5915         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
5916         correct alignment argument.
5917
5918 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
5919
5920         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
5921         after setting reg_last_reload_reg for optional output reloads.
5922
5923 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
5924
5925         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
5926         Definition of these two macros are corrected by adding
5927         matchine right paren.
5928
5929 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
5930
5931         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
5932
5933 2004-04-12  Roger Sayle  <roger@eyesopen.com>
5934
5935         * config/i386/i386.c (output_387_reg_move): New function.
5936         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
5937         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
5938         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
5939         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
5940         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
5941
5942 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5943
5944         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
5945         TYPE_DECL.
5946         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
5947         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
5948         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
5949         Use skip_simple_arithmetic to find SAVE_EXPR.
5950         (force_type_save_exprs, force_type_save_exprs_1): New functions.
5951         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
5952         Properly chain multiple pointers.
5953         (copy_tree_r): Copy a TYPE_DECL.
5954         * tree.c (variably_modified_type_p): Add some missing tests and
5955         make some other minor changes.
5956         * tree.h (force_type_save_exprs): New declaration.
5957
5958 2004-04-12  Roger Sayle  <roger@eyesopen.com>
5959
5960         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
5961         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
5962         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
5963         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
5964         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
5965         x%-1 into 0 (or x&0 if x has side-effects).
5966
5967 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
5968
5969         * config/rs6000/rs6000.md: Document why a pattern is not
5970         available.
5971
5972         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
5973         of floats on the E500.
5974         (branch_positive_comparison_operator): Do not allow NE even on the
5975         E500.
5976
5977 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
5978
5979         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
5980         in_text_unlikely_section to in_unlikely_text_section.
5981
5982 2004-04-11  Roger Sayle  <roger@eyesopen.com>
5983
5984         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
5985         calling convention to allow a NULL_TREE to be returned.  Factor
5986         sanity checks from callers, return NULL_TREE when appropriate.
5987         (fold): Handle COMPOUND_EXPR operands of binary expressions
5988         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
5989         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
5990         calls to fold_binary_op_with_conditional_arg.
5991
5992 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5993
5994         * config/mips/iris5.h (current_section_flags):  Add
5995         in_unlikely_executed_text and default case.
5996
5997 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
5998
5999         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6000         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6001         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6002         HAVE_return and place it around the place where it is needed.
6003
6004 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6005
6006         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6007         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6008         and NORMAL_TEXT_SECTION_NAME.
6009         (unlikely_text_section): Check targetm.have_named_sections
6010         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6011         instead of SECTION_FORMAT_STRING.
6012         * config/mips/iris5.h (current_section_name): Add
6013         in_unlikely_executed_text case and move the abort into the switch.
6014         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6015         (NORMAL_TEXT_SECTION_NAME): Remove.
6016         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6017         (SECTION_FORMAT_STRING): Remove.
6018         * defaults.h (SECTION_FORMAT_STRING): Remove.
6019         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6020         (SECTION_FORMAT_STRING): Remove.
6021
6022 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6023
6024         * c-typeck.c (common_type): Prefer long long to long when same
6025         precision.
6026
6027 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6028
6029         PR 14887
6030         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6031         mode argument.
6032         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6033         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6034
6035 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6036
6037         * simplify-rtx.c (mode_signbit_p): New function to check whether
6038         an RTX is an immediate constant that represents the most significant
6039         bit of a given machine mode.
6040         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6041         C is the sign bit.
6042         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6043         when C2 is the sign bit.
6044         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6045         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6046         sign bit.
6047
6048 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6049
6050         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6051         TYPE_MODE.
6052
6053 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
6054
6055         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6056         of TREE_READONLY for types.
6057
6058 2004-04-09  Caroline Tice  <ctice@apple.com>
6059
6060         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
6061         (struct basic_block_def):  Add new field, partition.
6062         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
6063         definitions.
6064         (partition_hot_cold_basic_blocks): Add extern function
6065         declaration.
6066         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
6067         include statements.
6068         (N_ROUNDS): Increase the maximum number of rounds by 1.
6069         (branch_threshold): Add array value for new round.
6070         (exec_threshold): Add array value for new round.
6071         (push_to_next_round_p): New function.
6072         (add_unlikely_executed_notes): New function.
6073         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6074         (mark_bb_for_unlikely_executed_section): New function.
6075         (add_labels_and_missing_jumps): New function.
6076         (add_reg_crossing_jump_notes): New function.
6077         (fix_up_fall_thru_edges): New function.
6078         (find_jump_block): New function.
6079         (fix_crossing_conditional_branches): New function.
6080         (fix_crossing_unconditional_branches): New function.
6081         (fix_edges_for_rarely_executed_code): New function.
6082         (partition_hot_cold_basic_blocks): New function.
6083         (find_traces):  Add an extra round for partitioning hot/cold
6084         basic blocks.
6085         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
6086         and only cold blocks, into the last (extra) round of collecting traces.
6087         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
6088         over crossing edges.
6089         (bb_to_key):  Add code to correctly identify cold blocks when
6090         doing partitioning.
6091         (connect_traces): Modify to connect all the non-cold traces first, then
6092         go back and connect up all the cold traces.
6093         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
6094         * cfg.c (entry_exit_blocks): Add initialization for partition field in
6095         entry and exit blocks.
6096         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6097         if we are doing hot/cold partitioning.
6098         * cfgcleanup.c (cfglayout.h): Add new include statement.
6099         (try_simplify_condjump): Modify to not attempt on blocks with jumps
6100         that cross section boundaries.
6101         (try_forward_edges): Likewise.
6102         (merge_blocks_move_predecessor_nojumps): Likewise.
6103         (merge_blocks_move_successor_nojumps): Likewise.
6104         (merge_blocks_move): Likewise.
6105         (try_crossjump_to_edge): Modify to not attempt after we have done
6106         the block partitioning.
6107         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6108         cross section boundaries.
6109         (try_optimize_cfg): Likewise.
6110         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6111         jumps that cross section boundaries.
6112         * cfglayout.c (flags.h): Add new include statement.
6113         (update_unlikely_executed_notes):  New function.
6114         (fixup_reorder_chain):  Add code so when a new jumping basic block is
6115         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6116         updated appropriately.
6117         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
6118         introduced by this optimization.
6119         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
6120         extern function declaration.
6121         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6122         list of notes that can be deleted.
6123         (create_basic_block_structure):  Add initialization for partition field.
6124         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
6125         section boundaries.
6126         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
6127         cross section boundaries.
6128         (commit_one_edge_insertion): Add code so newly created basic block
6129         ends up in correct (hot or cold) section.  Modify to disallow
6130         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6131         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
6132         crosses section boundaries.
6133         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6134         cross section boundaries.
6135         (force_nonfallthru_and_redirect): Modify to make sure new basic block
6136         ends up in correct section, with correct notes attached.
6137         * common.opt (freorder-blocks-and-partition):  Add new flag for this
6138         optimization.
6139         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
6140         the end of functions are written into the correct (hot or cold)
6141         section.
6142         (dbx_source_file): Add code so writing debug file information
6143         doesn't incorrectly change sections.
6144         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6145         in partitioning hot/cold basic blocks into separate sections.
6146         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6147         section partitioning.
6148         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6149         conditional branches can span all of memory.
6150         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6151         unconditional branches can span all of memory.
6152         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
6153         (final_scan_insn):  Add code to check for NOTE instruction indicating
6154         whether basic block belongs in hot or cold section, and to make sure
6155         the current basic block is being written to the appropriate section.
6156         Also added code to ensure that jump table basic blocks end up in the
6157         correct section.
6158         * flags.h (flag_reorder_blocks_and_partition):  New flag.
6159         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
6160         one of the branches has a jump that crosses between sections.
6161         (find_if_case_2): Likewise.
6162         (ifcvt): Modify to not attempt to mark loop exit edges after
6163         hot/cold partitioning has occurred.
6164         * opts.c (decode_options): Code to handle new flag,
6165         flag_reorder_blocks_and_partition; also to turn it off if
6166         flag_exceptions is on.
6167         (common_handle_option): Code to handle new flag,
6168         flag_reorder_blocks_and_partition.
6169         * output.h (unlikely_text_section): New extern function declaration.
6170         (in_unlikely_text_section): New extern function declaration.
6171         * passes.c (rest_of_handle_stack_regs):  Add
6172         flag_reorder_blocks_and_partition as an 'or' condition for calling
6173         reorder_basic_blocks.
6174         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
6175         as an 'or' condition for calling reorder_basic_blocks.
6176         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
6177         * print-rtl.c (print_rtx): Add code for handling new note,
6178         NOTE_INSN_UNLIKELY_EXECUTED_CODE
6179         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
6180         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6181         cross between section boundaries.
6182         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
6183         indicating the basic block containing it belongs in the cold section.
6184         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6185         between hot and cold sections.
6186         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
6187         initialize this flag, and to tie it to the command-line option
6188         freorder-blocks-and-partition.
6189         * varasm.c (cfglayout.h):  Add new include statement.
6190         (unlikely_section_label_printed):  New global variable, used for
6191         determining when to output section name labels for cold sections.
6192         (in_section):  Add in_unlikely_executed_text to enum data structure.
6193         (text_section):  Modify code to use SECTION_FORMAT_STRING and
6194         NORMAL_TEXT_SECTION_NAME macros.
6195         (unlikely_text_section):  New function.
6196         (in_unlikely_text_section):  New function.
6197         (function_section):  Add code to make sure beginning of function is
6198         written into correct section (hot or cold).
6199         (assemble_start_function):  Add code to make sure stuff is written to
6200         the correct section.
6201         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
6202         to an if statement that was checking 'in_text_section'.
6203         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
6204         condition to an if statement that was checking 'in_text_section'.
6205         (default_section_type_flags_1):  Add check: if in cold section
6206         flags = SECTION_CODE.
6207         * config/darwin.c (darwin_asm_named_section):  Modify to use
6208         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
6209         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
6210         specifically for the i386.
6211         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
6212         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
6213         text string to something more informative.
6214         (NORMAL_TEXT_SECTION_NAME): Add new definition.
6215         (SECTION_FORMAT_STRING):  Add new definition.
6216         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
6217         '!in_unlikely_text_section' as an 'and' condition to an if statement
6218         that was already checking '!in_text_section'.
6219         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6220         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6221         sure these are properly defined for linux on ppc.
6222         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
6223         for this new flag.
6224         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
6225         reg_note.
6226         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6227         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
6228         these new macros.
6229
6230 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6231
6232         * function.c (gen_mem_addressof): When changing the RTX from a REG
6233         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6234
6235 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6236
6237         PR target/14888
6238         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6239         truncxfdf2_noop): Provide dummy "fmov" implementations.
6240
6241 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
6242
6243         * gcc.c (default_compilers): Add missing initializers.
6244
6245         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6246         Return 1 if file was successfully mapped.
6247
6248 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
6249
6250         PR pch/13419
6251         PR pch/14137
6252         Radar #: 3315288
6253         * doc/invoke.texi (Precompiled Headers): Suggest -o
6254         to put an output file in a particular place.  Be more detailed
6255         about which options affect PCH validity and which options
6256         might not work.
6257         * c-pch.c (pch_matching): New.
6258         (MATCH_SIZE): New.
6259         (struct c_pch_validity): New field 'match'.
6260         (pch_init): Handle pch_matching.
6261         (c_common_valid_pch): Check pch_matching.
6262
6263         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6264
6265 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
6266
6267         * doc/invoke.texi (Precompiled Headers): Warn about known
6268         problems.
6269
6270 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6271
6272         PR c++/14808
6273         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6274         to 1 if ASM_OUTPUT_DEF is defined.
6275         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6276         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6277         Set to non-zero iff not a one_only decl.
6278
6279 2004-04-08  Paul Brook  <paul@codesourcery.com>
6280
6281         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6282
6283 2004-04-08  Paul Brook  <paul@codesourcery.com>
6284
6285         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6286         PROMOTE_FOR_CALL_ONLY.
6287         * config/arm/arm-protos.h (arm_function_value): Declare.
6288         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6289         (TARGET_PROMOTE_PROTOTYPES): Return false.
6290         (arm_function_value): New function.
6291         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6292         (FUNCTION_VALUE): Call arm_function_value.
6293         * config/cris/cris.h (PROMOTE_MODE): Rename ...
6294         (PROMOTE_FUNCTION_MODE): ... to this.
6295         (PROMOTE_FOR_CALL_ONLY): Remove.
6296         * config/mmix/mmix.h: Likewise.
6297         * config/s390/s390.h: Likewise.
6298         * config/sparc/sparc.h: Likewise.
6299         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6300         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6301         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6302         (PROMOTE_FOR_CALL_ONLY): Remove.
6303
6304 2004-04-08  Joel Sherrill <joel@oarcorp.com>
6305
6306         PR ada/14538
6307         * ada/5rosinte.adb: Remove fake mprotect() body.
6308         * ada/5rosinte.ads: Add SA_SIGINFO.
6309         * ada/5rtpopsp.adb: Rewrite to use new interface.
6310         * ada/init.c: Reorder so the simple single OS conditional __rtems__
6311         is tested before more complex ones which mix UNIX and embedded
6312         systems in the conditional.
6313
6314 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
6315
6316         PR ada/14665
6317         * ada/osint.adb (Find_Program_Name): Rework to properly handle
6318         filenames which end in .exe or have versioning suffixes like VMS.
6319
6320 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
6321
6322         PR target/10129
6323         * config/darwin.c (darwin_encode_section_info): When the decl has
6324         a DECL_INITIAL, it is only defined also when it is not a common.
6325
6326 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6327
6328         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6329         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6330
6331 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6332
6333         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6334         global register variables.
6335
6336 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
6337
6338         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6339         rpc_xdr_lvalue_cast_b): New fixes.
6340         * fixinc/fixincl.x: Regenerate.
6341         * fixinc/tests/base/rpc/xdr.h: Add new tests.
6342
6343 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
6344
6345         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6346         to power4 and power5 entries.
6347
6348 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
6349
6350         * c-common.h (pending_lang_change): Mark for PCH.
6351
6352 2004-04-07  Caroline Tice  <ctice@apple.com>
6353
6354         * gcc.c (main): Move 'break' in main loops (on an error)
6355         to wait until error processing has occurred.
6356
6357 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
6358
6359         * config.gcc: Stop changing enable_threads midstream.
6360         Replace uses of enable_threads_flag with enable_threads.
6361         * configure.ac: Replace uses of enable_threads_flag with
6362         enable_threads.  Improve autoconf quotation in one place.
6363         * configure: Regenerate.
6364
6365 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
6366
6367         * builtins.c: Implement support for sincos function.
6368         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
6369         BUILT_IN_COS{,F,L}.
6370         (expand_builtin_mathfn_3): New function.
6371         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
6372         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
6373         flag_unsafe_math_optimization is set.
6374
6375         * optabs.h (enum optab_index): Add new OTI_sincos.
6376         (sincos_optab): Define corresponding macro.
6377
6378         * optabs.c (init_optabs): Initialize sincos_optab.
6379         (expand_twoval_unop): New function.
6380
6381         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
6382         patterns.
6383
6384         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
6385         and UNSPEC_SINCOS_SIN.
6386
6387         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
6388         sincosxf3): New patterns to implement sincos, sincosf and sincosl
6389         built-ins as inline x87 intrinsics. Define splits for
6390         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
6391         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
6392         sincos patterns.
6393         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
6394         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
6395
6396         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
6397         x87's fsincos insn.
6398
6399 2004-04-06  Devang Patel  <dpatel@apple.com>
6400
6401         PR 14467
6402         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
6403
6404 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6405
6406         * doc/install.texi: Update HP-UX 11 installation procedure.
6407
6408 2004-04-06  Paul Brook  <paul@codesourcery.com>
6409
6410         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
6411
6412 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6413
6414         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
6415         when the TLS address is generated by a function call.
6416         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
6417         (tls_local_dynamic): Likewise.
6418
6419 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
6420
6421         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
6422         and TYPE_VOLATILE.
6423
6424 2004-04-05  Caroline Tice  <ctice@apple.com>
6425
6426         * gcc.c (combine_flag): New global variable, for new driver option.
6427         (struct compiler): Add two new fields, to be used when
6428         combining multiple input files in a single pass (IMA).
6429         (default_compilers):  Add values for the new fields to all
6430         compiler entries. Modify the "@c" compiler entry for doing IMA
6431         properly with "-save-temps" and the "combine" flag.
6432         (option_map):  Add new driver option, "--combine", to tell driver
6433         to pass multiple input files to compiler at one time.
6434         (have_o_argbuf_index): New global variable.
6435         (store_arg): Modify to assign value to have_o_argbuf_index.
6436         (struct infile):  Add three new fields, to help with IMA.
6437         (display_help): Add help for new "combine" option.
6438         (process_command): Remove local variable have_o; add code to check
6439         for new "combine" option; remove assignment to combine_inputs.
6440         (do_spec_1):  Modify to deal with IMA better.
6441         (main): Make variable 'lang_n_infiles' local to entire function
6442         rather than to a single block.  Use flag combine_flag to
6443         determine whether to do IMA or not; Modify loop initializing
6444         infiles to deal properly with linker files.
6445         Add code for doing preprocessing in presence of
6446         IMA with "-save-temps" flag.  Modify "main" loop to handle
6447         multiple input files, in multiple languages, with or without
6448         preprocessing,  gracefully.
6449         * toplev.c (set_src_pwd): Modify to not complain if attempting to
6450         re-set it to same directory it's previously been set to (avoid
6451         irritating, meaningless warning messages when doing IMA with
6452         save-temps).
6453         * doc/invoke.texi: Add "-combine" to list of Overall Options;
6454         remove documentation about IMA that is no longer accurate; Add
6455         documentation explaining what "-combine" does.
6456         * ada/lang-specs.h: Add initialization values for new fields in
6457         "struct compiler".
6458         * cp/lang-specs.h: Likewise.
6459         * f/lang-specs.h: Likewise.
6460         * java/lang-specs.h: Likewise.
6461         * objc/lang-specs.h: Likewise.
6462         * treelang/lang-specs.h: Likewise.
6463
6464 2004-04-05  David Edelsohn
6465
6466         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
6467         symbol handling.
6468
6469 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
6470             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6471
6472         PR optimization/13424 (hppa), bootstrap/14462, c/14828
6473         * pa.md: Use replace_equiv_address to retain the attributes of the
6474         memory operands used in the split and peephole2 patterns for optimizing
6475         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
6476
6477 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6478
6479         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
6480         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6481         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
6482         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
6483         PARM_DECL.
6484         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
6485         for a type.
6486         * print-tree.c (print_node): Properly handle side-effects, readonly,
6487         and constant flags.
6488         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
6489         and TREE_CONSTANT if not a type.
6490         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
6491         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
6492         (NON_TYPE_CHECK): New macro.
6493         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
6494
6495 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
6496
6497         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
6498         to DWARF2_DEBUG unconditionally.
6499         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
6500
6501 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
6502             Nathanael Nerode  <neroden@gcc.gnu.org>
6503
6504         PR target/14548
6505         * config.host: Set the shell variable host_can_use_collect2.
6506         Set it to yes by default, and to no for alpha*-dec-*vms*,
6507         i[34567]86-*-mingw32*, and powerpc-*-beos*.
6508         * configure.ac: Set and substitute the shell variable collect2.
6509         Give an error if use_collect2 is yes and host_can_use_collect2 is
6510         no.
6511         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
6512         uses.  Initialize to @collect2@.
6513         (STAGESTUFF): Remove $(USE_COLLECT2).
6514         * config/alpha/x-vms (USE_COLLECT2): Don't set.
6515         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
6516         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
6517         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
6518         * configure: Regenerate.
6519
6520 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6521
6522         * simplify-rtx.c (simplify_binary_operation): Constant fold
6523         DIV, MOD, UDIV and UMOD using div_and_round_double.
6524
6525 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6526
6527         PR c++/14804
6528         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
6529         RECORD_TYPEs.
6530
6531 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6532
6533         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
6534         documentation.
6535
6536 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6537
6538         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
6539         updating the REG_EQUAL note on an insn's libcall_insn.
6540
6541 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6542
6543         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
6544
6545 2004-04-03  Roger Sayle  <roger@eyesopen.com>
6546
6547         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
6548         with reorder_operands_p.
6549
6550 2004-04-03  Jan Hubicka  <jh@suse.cz>
6551
6552         * md.texi (vec_set, vec_extract, vec_init): Document.
6553
6554 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
6555
6556        * opts.c (decode_options): Do function inlining with very small
6557        max-inline-insns-* parameters when optimizing for size.
6558
6559 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
6560
6561         * config/i386/i386.h (TARGET_NOCONA): New macro.
6562         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
6563         (processor_type): Add PROCESSOR_NOCONA.
6564
6565         * config/i386/i386.md (cpu): Add nocona to the attribute values.
6566
6567         * config/i386/i386.c (nocona_cost): New variable.
6568         (m_NOCONA): New macro.
6569         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
6570         x86_branch_hints, x86_use_sahf, x86_single_stringop,
6571         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
6572         x86_integer_DFmode_moves, x86_partial_reg_dependency,
6573         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
6574         x86_decompose_lea, x86_arch_always_fancy_math_387,
6575         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
6576         x86_ext_80387_constants, x86_four_jump_limit):
6577         (override_options): Add nocona_cost to processor_target_table.
6578         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
6579         (incdec_operand): Prevent inc/dec generation for Nocona too.
6580         (ix86_issue_rate): Add PROCESSOR_NOCONA.
6581
6582 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
6583
6584         * rtlanal.c (find_reg_note): Manually
6585         unswitch the loop.
6586
6587 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
6588
6589         * genemit.c (gen_split): Change prototype of generated code.
6590         * genrecog.c (write_action): Adjust prototype for and calls to
6591         gen_split_*.
6592         * gensupport.c (struct queue_elem): Add split field.
6593         (queue_pattern): Return a value.  Clear the split field.
6594         (process_rtx): Maintain an association between an insn and the
6595         split generated from it for a define_insn_and_split.
6596         (process_one_cond_exec): Generate a new split for a
6597         define_insn_and_split.
6598         * config/arm/arm-protos.h (arm_split_constant): Add insn
6599         parameter.
6600         (emit_constant_insn): New function.
6601         (arm_gen_constant): Use it.
6602         * config/arm/arm.md: Adjust calls to arm_split_constant.
6603
6604 2004-04-02  Jan Hubicka  <jh@suse.cz>
6605
6606         * cgraph.c: Add overall comment.
6607         (cgraph_inline_hash): New global variable.
6608         (cgraph_create_node): Break out from ...
6609         (cgraph_node): ... here.
6610         (cgraph_edge): New function.
6611         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
6612         (cgraph_remove_edge): Accept edge, intead of source and destination.
6613         (cgraph_redirect_edge_callee): New.
6614         (cgraph_remove_node): Update all new datastructures.
6615         (cgraph_record_call, cgraph_remove_call): Kill.
6616         (dump_cgraph_node): Break out from ... ; dump new datastructures.
6617         (dump_cgraph): ... here.
6618         (cgraph_function_possibly_inlined_p): Use new hashtable.
6619         (cgraph_clone_edge, cgraph_clone_node): New.
6620         * cgraph.h: Include hashtab.h
6621         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
6622         fields, add inlined_to pointer.
6623         (cgraph_node): Add pointer to next_clone.
6624         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
6625         (cgraph_remove_call, cgraph_record_call): Kill.
6626         (cgraph_inline_hash): Declare.
6627         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
6628         cgraph_redirect_edge_callee): Declare.
6629         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
6630         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
6631         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
6632         * cgraphunit.c: Add overall comment.
6633         (cgraph_optimize_function): Kill.
6634         (cgraph_assemble_pending_functions): Do not assemble inline clones.
6635         (cgraph_finalize_function): Update call of cgraph_remove_node
6636         (record_call_1): Record call sites.
6637         (cgraph_create_edges): Accept node instead of decl argument.
6638         (error_found): New static variable.
6639         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
6640         (cgraph_analyze_function): Update for new datastructures.
6641         (cgraph_finalize_compilation_unit): Plug memory leak.
6642         (cgraph_optimize_function): Kill.
6643         (cgraph_expand_function): Do not use cgraph_optimize_function.
6644         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
6645         cgraph_inlined_callees): Kill.
6646         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
6647         clones.
6648         (estimate_growth): Simplify.
6649         (cgraph_clone_inlined_nodes): New function.
6650         (cgraph_mark_inline_edge): Re-implement.
6651         (cgraph_mark_inline): Likewise.
6652         (cgraph_check_inline_limits): Simplify.
6653         (cgraph_recursive_inlining_p): New.
6654         (update_callee_keys): Break out from ...
6655         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
6656         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
6657         Likewise.
6658         (cgraph_expand_all_functions):  Remove inline clones from the ordered
6659         list.
6660         (cgraph_preserve_function_body_p): New predicate.
6661         (cgraph_optimize): Verify cgraph.
6662         * function.h (struct function): Add fields saved_tree/saved_args.
6663         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
6664         * toplev.c (rest_of_compilation): Do not free cfun.
6665         * tree-inline.c: Include function.h
6666         (struct inline_data): Add saving_p field; replace decl/current_decl by
6667         node/current_node.
6668         (insert_decl_map): New function.
6669         (copy_body_r): Handle saving; update cgraph datastructure.
6670         (copy_body): Handle recursive inlining.
6671         (initialize_inlined_parameters): Likewise.
6672         (expand_call_inline): Propagate node attributes; update cgraph.
6673         (optimize_inline_calls): Verify that datastructure still match.
6674         (save_body): New function.
6675         * tree-inline.h (save_body): New.
6676         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
6677         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
6678         * langhooks.c (lang_hooks): Add update_decl_after_saving.
6679
6680 2004-04-01  Serge Belyshev  <1319@bot.ru>
6681
6682         PR target/14702
6683         * config/i386/i386.md: fix source operand constraints in
6684         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
6685
6686 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
6687
6688         * fold-const.c (folda): Preserve types of comparisons.
6689
6690 2004-04-01  Richard Henderson  <rth@redhat.com>
6691
6692         * toplev.c (backend_init): Move init_optimization_passes call ...
6693         (lang_dependent_init): ... here.
6694
6695 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
6696             Jakub Jelinek  <jakub@redhat.com>
6697
6698         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
6699         -lgcc --as-needed -lgcc_s --no-as-needed by default.
6700         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
6701         * configure: Rebuilt.
6702         * config.in: Rebuilt.
6703         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
6704         (stage2-start, stage3-start, stage4-start): Likewise.
6705         (stageprofile-start, stagefeedback-start): Likewise.
6706
6707 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
6708
6709         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
6710         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6711         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6712         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6713         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
6714         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
6715         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
6716         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
6717         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
6718         * config/sparc/t-linux: Removed.
6719
6720 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
6721
6722         PR c++/14755
6723         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
6724         "bitfld++ == const" to "++bitfld == const + incr" transformations.
6725
6726 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6727
6728         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
6729         * stor-layout.c (layout_decl): Likewise.
6730         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
6731         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
6732         * print-tree.c (print_node): Handle various used of unsigned_flag.
6733         * tree.def (BIT_FIELD_REF): Update comment.
6734         * tree.h (TREE_UNSIGNED): Deleted.
6735         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
6736
6737 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6738
6739         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
6740         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
6741         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
6742         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
6743         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
6744         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
6745         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
6746         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
6747         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
6748         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
6749         REAL_TYPE, not INTEGER_TYPE.
6750         (layout_type, case VECTOR_TYPE): Simplify code.
6751         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
6752         * tree.h: Update comments.
6753         (STRIP_NOPS): Use TYPE_UNSIGNED.
6754         (TYPE_UNSIGNED): New macro.
6755         (TYPE_TRAP_SIGNED): Remove now redundant check.
6756         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
6757
6758 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6759
6760         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
6761
6762 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
6763
6764         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
6765         Add darwin-fpsave.asm, darwin-vecsave.asm,
6766         and darwin-world.asm.
6767         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
6768         as the asm files contain altivec instructions.
6769         * config/rs6000/darwin-fpsave.asm: New file.
6770         * config/rs6000/darwin-vecsave.asm: New file.
6771         * config/rs6000/darwin-world.asm: New file.
6772
6773 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
6774
6775         * gengtype-yacc.y (option, stringseq): Add missing
6776         terminating semicolon.
6777
6778 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
6779
6780         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
6781         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
6782         tls_dtprel_ha_32, tls_dtprel_ha_64,
6783         tls_dtprel_lo_32, tls_dtprel_lo_64,
6784         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
6785         tls_tprel_ha_32, tls_tprel_ha_64,
6786         tls_tprel_lo_32, tls_tprel_lo_64,
6787         tls_got_tprel_32, tls_got_tprel_64,
6788         tls_tls_32, tls_tls_64): Replace register_operand with
6789         gpc_reg_operand.
6790
6791 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
6792
6793         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
6794         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
6795         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
6796         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
6797         *ctrdi_internal6): Replace register_operand with
6798         nonimmediate_operand.
6799
6800 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
6801
6802         * fold-const.c (fold): Reassociate multiply expression
6803         with an adjacent non-multiply expression to use
6804         architecture's multiply-add instruction.
6805
6806 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
6807
6808         * gengtype.c (create_option): New function.
6809         * gengtype.h: Prototype it.
6810         * gengtype-yacc.y (stringseq): New rule.
6811         (option): Use create_option.  Add new bare ID production.  Use
6812         stringseq, not STRING directly.
6813
6814         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
6815         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
6816         * varray.h, config/alpha/alpha.c:
6817         Use new shorter form of GTY markers.
6818
6819         * doc/gty.texi: Rewrite.
6820
6821 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
6822
6823         * config/darwin.c (machopic_function_base_name):
6824         Remove current_name and getting the name of the
6825         current function.
6826
6827 2004-03-30  Nick Clifton  <nickc@redhat.com>
6828
6829         * config/arm/arm.md (thumb_jump): Reduce the backward branch
6830         range, and increase the forward branch range, to allow for
6831         the fact that the PC will be off by 4.
6832
6833 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
6834
6835         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
6836
6837 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6838
6839         * config/rs6000/rs6000.c (output_vec_const_move):
6840         Find all cases of EASY_VECTOR_15_ADD_SELF.
6841         (easy_vector_constant_add_self): Accept
6842         all vector constant loadable by vsplt* and vadd*.
6843         (easy_vector_same): Use easy_vector_splat_const.
6844         (easy_vector_const): Use easy_vector_splat_const.
6845         (easy_vector_splat_const): New function.
6846         (gen_easy_vector_constant_add_self): New function.
6847
6848         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
6849         New prototype.
6850
6851         * config/rs6000/altivec.md (movv4si splitter): Change to
6852         emit move insn with halfed vector constant.
6853         (*movv8hi splitter): Likewise.
6854         (*movv16qi splitter): Likewise.
6855
6856 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6857
6858         PR 11591
6859         * config/rs6000/rs6000.c (rs6000_legitimate_address):
6860         Allow any offset to argument pointer in no-strict case.
6861
6862 2004-03-30  Jan Hubicka  <jh@suse.cz>
6863
6864         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
6865         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
6866         dump file in non-unit-at-a-time mode.
6867
6868 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
6869
6870         * config/cris/cris.h: Correct #ifdef to test for
6871         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
6872         HAVE_AS_MUL_BUG_ABORT_OPTION.
6873
6874 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6875
6876         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
6877         the address inside the old RTL.
6878
6879 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
6880
6881         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
6882         (struct c_binding, struct c_scope): Add chain_next
6883         attributes to GTY markers.
6884         (struct lang_identifier, struct lang_tree_node): Define
6885         here...
6886         * c-tree.h: ... not here.  No longer need to declare struct
6887         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6888         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
6889         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6890
6891         PR 14734, 11944
6892         * c-decl.c (get_parm_info): If error_mark_node is encountered
6893         in the bindings chain, unbind and discard it; don't abort.
6894
6895 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
6896             Dorit Naishlos <dorit@il.ibm.com>
6897
6898         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
6899         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
6900
6901 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
6902
6903         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
6904
6905         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
6906         (m68hc11_attribute_table): New attribute "page0" to mark a global
6907         variable as being allocated from within page0 section.
6908         (m68hc11_encode_label): New function.
6909         (m68hc11_strip_name_encoding): New function.
6910         (m68hc11_page0_symbol_p): New function.
6911         (m68hc11_indirect_p): Accept global variables marked in page0.
6912         (m68hc11_encode_section_info): Lookup "page0" attribute.
6913
6914         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
6915         represents access to page0 variables.
6916
6917         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
6918         ("*logicalsi3_silshl16_zext"): Likewise.
6919         ("*ashldi3_const32"): Likewise.
6920         (peephole2 ashift): Likewise.
6921
6922 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6923
6924         * c-tree.h (C_DECL_REGISTER): New.
6925         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
6926         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
6927         (build_array_ref, c_mark_addressable): Set and use it.
6928         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
6929         Allow structures with volatile fields to be declared register.
6930         Don't check TREE_ADDRESSABLE before warning about taking address
6931         of register.
6932         * c-decl.c (finish_decl): Don't allow structures with volatile
6933         fields to be placed in named register.
6934         * doc/trouble.texi: Remove reference to structures with volatile
6935         fields in registers.
6936
6937 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
6938
6939         * function.c (thread_prologue_and_epilogue): Move
6940         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
6941         before the epilogue.
6942
6943 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
6944
6945         * expr.c (store_constructor): Use gen_int_mode to correctly
6946         sign-extend CONST_INT value.
6947
6948 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6949
6950         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
6951         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
6952         * doc/extend.texi: Likewise.
6953
6954 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
6955
6956         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
6957           with TYPE_ORIG_SIZE_TYPE.
6958
6959 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
6960
6961         PR 14219
6962         * c-typeck.c (build_binary_op): Do not allow comparisons of
6963         vectors.
6964
6965 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
6966
6967         * config.gcc: Remove sparc-tti-*.
6968         * config/sparc/pbd.h: Delete.
6969
6970         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
6971         * config/sparc/aout.h: Likewise.
6972
6973         * config/sparc/sparc.h: Remove if 0'd code.
6974         * config/sparc/sparc.md (call): Remove if 0'd code.
6975         (call_value): Likewise.
6976         (nonlocal_goto): Likewise.
6977         (unimp_insn): Delete.
6978
6979 2004-03-25  Roger Sayle  <roger@eyesopen.com>
6980
6981         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
6982         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
6983
6984 2004-03-25  Richard Henderson  <rth@redhat.com>
6985
6986         PR 11527
6987         * c-typeck.c (pop_init_level): Emit pending init elements earlier
6988         rather than later.
6989
6990 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6991
6992         * builtins.c (fold_builtin): Fix error in last change.
6993
6994 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
6995
6996         * config/mips/mips.h: Formatting fix.
6997
6998 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6999
7000         * builtins.def: Add ctype builtins.
7001         * doc/extend.texi: Likewise.
7002
7003 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7004
7005         * builtins.c (fold_builtin): Add new builtin optimizations for
7006         sqrt and/or cbrt.
7007         * fold-const.c (fold): Likewise.
7008
7009 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7010
7011         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7012         (rs6000_sched_groups): New variable.
7013         (processor_target_table): Add power5.
7014         (rs6000_override_options): Set rs6000_sched_insert_nops,
7015         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7016         from rs6000_sched_groups.
7017         (output_cbranch): Use rs6000_always_hint.
7018         (rs6000_variable_issue): Use rs6000_sched_groups.
7019         (rs6000_adjust_cost): Add CPU_POWER5.
7020         (is_microcoded_insn): Use rs6000_sched_groups.
7021         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7022         Return 2 for POWER5 cracked instructions.
7023         (is_cracked_insn): Use rs6000_sched_groups.
7024         (is_branch_slot_insn): Use rs6000_sched_groups.
7025         (rs6000_issue_rate): Add CPU_POWER5.
7026         (rs6000_sched_finish): Use rs6000_sched_groups.
7027         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7028         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7029         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7030         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7031         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7032         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7033         * config/rs6000/power5.md: New file.
7034         * doc/invoke.texi: Add power5 option.
7035
7036 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7037
7038         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7039         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7040         * doc/invoke.texi: Fix a typo.
7041
7042 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7043
7044         PR optimization/9707.
7045         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7046         of recursing if both children are single-valued cases with no
7047         children.
7048
7049 2004-03-25  Paul Brook  <paul@codesourcery.com>
7050
7051         * config/arm/arm.c (vfp_print_multi): Remove.
7052         (arm_output_fldmx): New function.
7053         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7054         (arm_expand_prologue): Update to match.
7055         (arm_get_vfp_saved_size): New Function.
7056         (arm_get_frame_offsets): Use it.
7057         (arm_output_epilogue): Use new functions.
7058
7059 2004-03-24  Richard Henderson  <rth@redhat.com>
7060
7061         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7062         (reg_known_value, reg_known_value_size): Likewise; make static.
7063         (reg_known_equiv_p): Make static.
7064         (clear_reg_alias_info): Update for new indexing.
7065         (get_reg_known_value, set_reg_known_value): New.
7066         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7067         (canon_rtx): Use them.
7068         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
7069         Don't play queer offsetting games with reg_known_value and
7070         reg_known_equiv_p.
7071         (end_alias_analysis): Free reg_known_value with gc.
7072         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7073         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7074         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7075         functions instead.
7076
7077 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7078
7079         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7080         config/i386/mmintrin.h: Update copyright.
7081
7082 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7083
7084         * configure.ac: Add --enable-werror-always (for top level bootstrap
7085         support).
7086         * configure: Regenerate.
7087
7088 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
7089
7090         * objc/objc-act.c (objc_comptypes): Treat comparisons
7091         between 'Class' and '<class> *' as explicitly invalid.
7092
7093 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
7094
7095         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7096         (-fprofile-values): Add enabled with profile-{generate,use}.
7097         (-fvpt): Same.
7098         (-ftracer): Add enabled with profile-use.
7099         (-funit-at-a-time): Add enabled at -O2,-O3.
7100         (-funroll-loops): Add enabled with profile-use.
7101         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
7102         (max-gcse-passes): Mention default.
7103         (max-cse-path-length): Mention default.
7104
7105 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7106
7107         * Makefile.in (STRICT2_WARN): Reorder.
7108         * configure.ac: Check for -Wold-style-definition, and use it
7109         in strict1_warn if it's available.
7110         * configure: Regnerate.
7111
7112 2004-03-24  Paul Brook  <paul@nowt.org>
7113
7114         * config.gcc <arm>: Add --with-abi=
7115         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7116         thumb_far_jump_used): Remove prototypes.
7117         (arm_needs_doubleword_align): Add prototype.
7118         (thumb_compute_initial_elimination_offset): Ditto.
7119         * config/arm/arm.c (arm_get_frame_offsets): New function.
7120         (use_return_insn, output_return_instruction, arm_output_epilogue,
7121         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7122         arm_expand_prologue, thumb_expand_epilogue): Use it.
7123         (arm_abi, target_abi_name, all_arm_abis): New variables.
7124         (arm_override_options): Set them.  Set structure padding for AAPCS.
7125         (arm_return_in_memory): Update ABI check.
7126         (arm_init_cumulative_args): Initialize can_split.
7127         (arm_needs_doubleword_align): New function.
7128         (arm_function_arg): Don't split args after pushing to stack. Handle
7129         doubleword/even reg alignment.
7130         (arm_va_arg): Handle all doubleword aligned args.
7131         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7132         on ABI, not CPU.
7133         (arm_compute_save_reg0_reg12_mask): Fix comment.
7134         (thumb_get_frame_size, thumb_get_frame_size): Remove.
7135         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
7136         value for alignment.
7137         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7138         to match.
7139         (thumb_compute_initial_elimination_offset): New function.
7140         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
7141         unneccessary rounding.
7142         * config/arm/arm.h (target_abi_name): Declare.
7143         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7144         arm_abi_type, ARM_DEFAULT_ABI): Define.
7145         (ARM_FLAG_ATPCS): Remove.
7146         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7147         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7148         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7149         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7150         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7151         Contitionalize on ABI, not CPU.
7152         (struct arm_stack_offsets): Define.
7153         (struct machine_function): Add stack_offsets.  Remove frame_size.
7154         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7155         pushed.
7156         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7157         doubleword alignment.
7158         (THUMB_INITIAL_ELIMINATION_OFFSET,
7159         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7160         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7161         * config/arm/arm.md (align_8): Enable for all targets.
7162         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7163         (ARM_DEFAULT_ABI): Define.
7164         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7165         -mstructure-size-boundary.
7166
7167 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7168
7169         * configure.ac: Check for -Wno-variadic-macros; don't use
7170         -pedantic (in stage 1 or a simple 'make all') unless it's available,
7171         and if it's available, use it.  Also, clean up check for
7172         -Wno-long-long.
7173         * configure: Regenerate.
7174
7175 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7176
7177         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7178         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7179         (MULTILIB_DEFAULTS): Use it.
7180         (MIPS_CPU_STRING_DEFAULT): Remove.
7181         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7182         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
7183         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
7184         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7185         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
7186         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7187         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
7188         accordingly.
7189
7190 2004-03-24  DJ Delorie  <dj@redhat.com>
7191             Richard Sandiford  <rsandifo@redhat.com>
7192
7193         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7194         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7195         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7196         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7197         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7198         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7199         if TARGET_FIX_VR4122.
7200         * config/mips/mips.md (define_attr length): Account for nops inserted
7201         after macc and dmult when using -mfix-vr4122-bugs.
7202         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7203         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7204         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
7205         * config/mips/vr4122-div.S: New file.
7206         * doc/invoke.texi: Document -mfix-vr4122-bugs.
7207
7208 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7209
7210         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7211         (TARGET_MIPS4130): New macro.
7212         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7213         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7214         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7215         with PROCESSOR_R4130.
7216         * config/mips/mips.md (define_attr cpu): Add r4130.
7217         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7218
7219 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7220             Richard Sandiford  <rsandifo@redhat.com>
7221
7222         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7223
7224 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
7225
7226         PR preprocessor/14438
7227         * cpplib.c (do_pragma): Remove line_change call after pragma
7228         handler.
7229
7230 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
7231
7232         * doc/extend.texi (ARM Built-in Functions): Replace with correct
7233         declarations.
7234
7235 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7236
7237         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7238         if flag_unsafe_math_optimizations.
7239         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7240         and TARGET_80387 expand using truncdfsf2_noop pattern.
7241         (truncxfsf2): Likewise using truncxfsf2_noop.
7242         (truncxfdf2): Likewise using truncxfdf2_noop.
7243         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7244
7245 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
7246
7247         * hooks.c (hook_constcharptr_tree_null): New hook.
7248         * hooks.h (hook_constcharptr_tree_null): New prototype.
7249         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7250         * target.h (mangle_fundamental_type): New target hook.
7251         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7252         target hook at rs6000_mangle_fundamental_type.
7253         (rs6000_mangle_fundamental_type): New function.
7254         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7255
7256 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
7257
7258         PR 12267, 12391, 12560, 13129, 14114, 14133
7259         * c-tree.h: Forward declare struct c_binding.  Declare
7260         c_override_bindings_to_false.  Update prototypes.
7261         (struct lang_identifier): Update comments.  Change fields to be
7262         struct c_binding *.
7263         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7264         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7265         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7266         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7267         * c-common.h: Update prototypes.
7268         * c-decl.c (struct c_scope): Update commentary.  Remove names,
7269         names_last, parms, parms_last, tags, and shadowed fields.  Add
7270         bindings and depth fields.
7271         (scope_freelist): Move to more appropriate location.
7272         (c_print_identifier): Update for changes to struct lang_identifier.
7273         (objc_mark_locals_volatile): Update for new bindings structures.
7274         (global_bindings_p): Honor c_override_global_bindings_to_false.
7275         (pushlevel): Rename to push_scope; take no arguments; use the
7276         scope_freelist; initialize scope->depth and check for overflow.
7277         (poplevel): Rename to pop_scope; totally rewritten for new bindings
7278         structures.
7279         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7280         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
7281         Improve some commentary.  Adjust handling of forward parm decls.
7282         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7283         Preserve C_DECL_IN_EXTERNAL_SCOPE.
7284         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
7285         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
7286         decls.  Rewrite for new bindings structures.  Improve commentary.
7287         Eliminate the copy_node call.
7288         (implicit_decl_warning): Use the "diag" idiom (as seen in
7289         locate_old_decl) to reduce code duplication; call locate_old_decl
7290         if appropriate.  Relocate to remove need for forward declaration.
7291         (implicitly_declare): Adjust for new bindings structures.  Kludge
7292         around Objective-C not-really-builtin functions.
7293         (undeclared_variable): Improve diagnostics.  If current_function_decl
7294         is nonnull but current_function_scope is null, use current_scope.
7295         Use bind.
7296         (lookup_tag): Adjust for new bindings structures.  Kludge around
7297         Objective-C's tag declarations that wind up in the external scope.
7298         (lookup_name): Adjust for new bindings structures.  Kludge around
7299         c-common.c's pseudo-typedefs that wind up in the external scope.
7300         (lookup_name_current_level): Rename lookup_name_in_scope; take a
7301         second argument indicating the scope to examine; rewrite for
7302         new bindings structures.
7303         (c_init_decl_processing): Adjust for renamed functions.  Do not
7304         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7305         First scope pushed is the external scope, not the global scope.
7306         (builtin_function): Use bind, not pushdecl.  Adjust other bits
7307         for new data structures.  Keep track of builtins that should be
7308         made visible automatically.
7309         (start_decl): Adjust diagnostics.  Remove unnecessary call to
7310         expand_decl.
7311         (grokparms): Return 0 if arg_types is error_mark_node.
7312         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7313         reversed sense.  Rewrite for new bindings structures.  Do not
7314         leave any decls in the scope, to prevent pop_scope from doing
7315         contradictory things with them.
7316         (finish_struct, finish_enum): Remove redundant diagnostics.
7317         (build_enumerator): Don't cascade diagnostics for error_mark_node.
7318         Mark location where -pedantic changes the meaning of the program.
7319         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7320         parameter decls into the function's scope structure using bind.
7321         Warn here about function definitions in the wrong style.
7322         Adjust diagnostics.
7323         (store_parm_decls): Correct the determination of whether a
7324         function was defined with a prototype.
7325         (c_write_global_declarations): Operate on all file decls and on
7326         the external scope.  Split body of the loop to...
7327         (c_write_global_declarations_1): ... this new function, to avoid
7328         code duplication.
7329         (truly_local_externals, first_builtin_decl, last_builtin_decl)
7330         (make_scope, pop_scope, in_parm_level_p, set_block)
7331         (any_external_decl, record_external_decl, bind_label, getdecls)
7332         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7333         (c_reset_state): Delete.
7334         (visible_builtins, c_override_global_bindings_to_false)
7335         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7336         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7337         (external_scope, binding_freelist, bind, free_binding_and_advance)
7338         (push_file_scope, pop_file_scope): New.
7339         (pushtag, pushdecl_top_level, lookup_label, declare_label)
7340         (define_label, c_make_fname_decl, finish_decl)
7341         (mark_forward_parm_decls, build_compound_literal)
7342         (grokdeclarator, start_function, check_for_loop_decls)
7343         (identifier_global_value, record_builtin_type): Minor adjustments
7344         for new bindings structures.  Improve diagnostics and commentary.
7345         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7346         pushlevel/poplevel respectively.
7347         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7348         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7349         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
7350         correct loop over multiple translation units; call fatal_error if
7351         requested to compile more than one file at once.  (This disables
7352         IMA temporarily - an up-front error being preferable to a crash.)
7353         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7354         (all actions): Adjust calls to pushlevel/poplevel.
7355         (parsing_iso_function_signature): Delete.
7356         (extdef_1): Fold into extdef.
7357         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
7358         warn here about function definitions in the wrong style.
7359         (after_tyle_declarator, parm_declarator_starttypename)
7360         (parm_declarator_nostarttypename, notype_declarator): Remove
7361         commented-out productions.
7362         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7363         an empty TREE_LIST node.  Adjust calls to get_parm_info.
7364         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7365         to suppress -Wold-style-definition after this error.
7366         (c_parse_file): Don't clear the binding stack or call
7367         finish_fname_decls here.  Correct comment.
7368         * c-typeck.c (same_translation_unit_p): Export.
7369         (common_type): Use c_override_global_bindings_to_false, not
7370         pushlevel/poplevel/declare_parm_level.
7371         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
7372         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
7373         and LANG_HOOKS_GETDECLS with do-nothing stubs.
7374         * objc/objc-lang.c: Likewise.
7375         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
7376         get_parm_info.
7377         (OBJC_VOID_AT_END): Delete; replace all uses
7378         with void_list_node.
7379         (generate_forward_declaration_to_string_table): Delete.
7380         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
7381
7382         * coverage.c (create_coverage): Don't pushdecl anything.
7383         * langhooks.c (lhd_clear_binding_stack): Call
7384         lang_hooks.decls.poplevel, not poplevel.
7385         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
7386         circular list rather than going into an infinite loop.
7387
7388 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
7389
7390         * optabs.c (expand_binop): When synthesizing double word rotates
7391         from single word shifts, use a new register target if the provided
7392         target is not a REG already.
7393
7394 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7395
7396         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
7397         * c-common.c (handle_mode_attribute): Add extra arg to
7398         build_pointer_type_for_mode and build_reference_type_for_mode.
7399         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
7400         for INTEGER_CST.
7401         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
7402         Chain pointers via TYPE_NEXT_PTR_TO.
7403         (build_reference_type_for_mode): Similarly.
7404         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
7405         and build_reference_type_for_mode.
7406         (tree_check4_failed): New function.
7407         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
7408         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
7409         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
7410         Add check.
7411
7412 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7413
7414         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
7415         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
7416         when both A and B are nonnegative.
7417         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
7418         nonzero.
7419
7420 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7421
7422         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
7423         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
7424
7425 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7426
7427         PR optimization/14669
7428         * fold-const.c (fold): Only unwiden integer comparisons for equality
7429         and inequality operators, or when the signedness doesn't change.
7430
7431 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
7432
7433         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
7434         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
7435         * config/sparc/t-linux: New file.
7436
7437 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
7438
7439         * gcse.c (can_assign_to_reg_p): New function, split out from...
7440         (want_to_gcse_p): ...here.
7441         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
7442         the rhs of a store.
7443
7444 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
7445
7446         * c-typeck.c (same_translation_unit_p): Fix pasto.
7447
7448 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
7449
7450         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
7451         (PARAM_MAX_SCHED_REGION_INSNS): New.
7452         * sched-rgn.c: Include params.h
7453         (MAX_RGN_BLOCKS): Delete.
7454         (MAX_RGN_INSNS): Delete.
7455         (too_large): Return bool.  Convert to PARAM_VALUE.
7456         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
7457         * doc/invoke.texi (param): Document max-sched-region-blocks and
7458         max-sched-region-insns.
7459
7460 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7461
7462         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
7463         for base types.
7464
7465 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7466
7467         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
7468         change.
7469
7470 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
7471
7472         PR c/14069
7473         * c-decl.c (finish_struct): Change type of incorrect flexible array
7474         field into error_mark_node.
7475
7476 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
7477
7478         PR target/14580
7479         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
7480         who are not local for Darwin PIC.
7481
7482 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
7483
7484         * regrename.c (regrename_optimize): Set regs_ever_live for all
7485         registers introduced as replacement.
7486
7487 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
7488
7489         PR middle-end/14470
7490         * expr.c (mark_queue): New function.
7491         (emit_insns_enqueued_after_mark): New function replacing
7492         emit_queue.  Clear the body of emitted queued insns.
7493         (emit_queue): Call emit_insns_enqueued_after_mark.
7494         (store_expr): Mark the increment queue on entry.  Emit
7495         only the incrementations queued when expanding the source.
7496
7497 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
7498
7499         * configure.ac: Allow --disable-coverage-flags (for the future benefit
7500         of top level bootstrap, and consistency).  Reindent.
7501         * configure: Regenerate.
7502
7503 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
7504
7505         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
7506         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
7507         unnecessary casts.
7508
7509 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
7510
7511         PR target/14291
7512         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
7513         __MINGW32__.
7514
7515 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7516
7517         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
7518         to nonimmediate_operand.
7519         ("*doloop_di"): Likewise.
7520
7521 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
7522
7523         * real.h (struct real_value): Use the same type for all
7524         bitfields.  Rename exp to uexp.
7525         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
7526         Adjust all uses of exp...
7527         * builtins.c: ... here, ...
7528         * emit-rtl.c: ... here, and ...
7529         * real.c: ... and here.
7530
7531 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7532
7533         * pretty-print.c (pp_base_maybe_space): New function.
7534         * pretty-print.h (pp_base_maybe_space): Declare.
7535         (pp_maybe_space): New macro.
7536
7537 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7538
7539         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
7540
7541 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7542
7543         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
7544         of using register multiplication cost.
7545         (expand_mult): Adapt choose_mult_variant call.
7546         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
7547         of MODE; pass appropriate cost bound.  Adjust result when
7548         performing signed multiplication by a negative constant.
7549         Don't use intermediate modes larger than word_mode.
7550
7551 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7552
7553         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
7554         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
7555         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
7556         * explow.c (expr_size): Likewise.
7557         * expr.h (placeholder_list, find_placeholder): Deleted.
7558         * expr.c (store_constructor): Likewise.
7559         (get_inner_reference): Likewise.  Also don't call find_placeholder.
7560         (placeholder_list, find_placeholder): Deleted.
7561         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
7562         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
7563         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
7564         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
7565         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
7566         Likewise.
7567         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
7568         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
7569         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
7570         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
7571         Clean up by using first_rtl_op.
7572         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
7573         (substitute_placeholder_in_expr): New function.
7574         * tree.def (WITH_RECORD_EXPR): Deleted.
7575         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
7576         (substitute_placeholder_in_expr): New.
7577
7578 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
7579
7580         * dojump.c (prefer_and_bit_test): Fix which part of
7581         the and_test is replaced.
7582
7583 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
7584
7585         * frontends.texi: Add missing line.
7586
7587 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
7588             Chris Devers  <cdevers@pobox.com>
7589             Joseph S. Myers  <jsm@polyomino.org.uk>
7590
7591         * doc/frontends.texi: Rewrite.
7592         * doc/gcc.texi: Update last modification date.
7593
7594 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
7595
7596         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
7597         message before redirecting the edge.
7598
7599 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7600
7601         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
7602         flag.
7603         * explow.c (force_not_mem): Set REG_POINTER flag according to
7604         MEM_POINTER one.
7605         * rtl.h (MEM_POINTER): New macro.
7606         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
7607         for MEM_POINTER.
7608
7609 2004-03-20  Roger Sayle  <roger@eyesopen.com>
7610
7611         PR target/13889
7612         * cse.c (fold_rtx): Avoid substituting constants into unary
7613         conversion operations.
7614
7615 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7616
7617         * fold-const.c (fold): Replace "expr" with "t".
7618
7619 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
7620
7621         PR c/12373
7622         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
7623         DECL_ORIGINAL_TYPE if there isn't one.
7624
7625 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7626
7627         * fold-const.c (fold): Replace "final_type" with "type".
7628         Remove variable "final_type".
7629
7630 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7631
7632         * fold-const.c (fold): Constify "type".
7633         Replace "TREE_TYPE (t)" with "type".
7634
7635 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7636
7637         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
7638         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
7639         via (*targetm.foo) () with targetm.foo ().
7640
7641 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
7642
7643         PR other/14630
7644         * doc/install.texi: Add info directory category and entry.
7645
7646 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7647
7648         * fold-const.c (fold): Replace "t" with "tem" where it is used
7649         as a temporary variable.  Remove "orig_t" and all of its uses.
7650
7651 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7652
7653         * fold-const.c (fold): Remove variable "invert".
7654         Move the handling of relational expressions that can be folded
7655         to a constant ...
7656         (fold_relational_const): ... here.
7657         (tree_expr_nonzero_p): New.
7658
7659 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
7660
7661         PR c/14635
7662         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
7663         DEF_GCC_BUILTIN.
7664
7665 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
7666
7667         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
7668         (GTFILES): Add $(srcdir)/dojump.h.
7669         (gt-dojump.h): New dependency.
7670         * dojump.c (and_reg, and_test, shift_test): New static variables.
7671         (prefer_and_bit_test): New function.
7672         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
7673
7674 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7675
7676         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
7677         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
7678         reorg.c, tree.h: Fix comment typos.
7679
7680 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7681
7682         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
7683         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
7684         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
7685         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
7686         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
7687         vmsdbgout.c: Replace calls via (*targetm.foo) () with
7688         targetm.foo ().
7689
7690 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
7691
7692         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
7693         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
7694         always_inline attribute.
7695         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
7696         Treat expansion as completed even if literal argument is
7697         invalid (so that other expansions are not tried in vain).
7698
7699 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7700
7701         * loop-doloop.c (add_test): Replace GEN_INT (0) with
7702         const0_rtx.
7703
7704 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7705
7706         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
7707         ...
7708         (fold_abs_const): ... here.
7709
7710 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7711
7712         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
7713
7714 2004-03-19  Denis Chertykov  <denisc@overta.ru>
7715
7716         PR target/11520
7717         * config/avr/avr.md ("call_insn"): Handle explicit integer
7718         specially.
7719         (call_value_insn): Likewise.
7720
7721 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7722
7723         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
7724
7725 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7726
7727         * fold-const.c (negate_expr): Move the handling of constants
7728         ...
7729         (fold_negate_const): ... here.
7730
7731 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7732
7733         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
7734         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
7735         * tree.c (debug_no_type_hash): Deleted.
7736         (type_hash_canon): Abort if passed a variant.
7737         Check lang_hooks.types.hash_types.
7738         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
7739         (build_array_type): Remove unnecessary allocation of pointer type.
7740         (build_complex_type): Properly qualify resulting type.
7741
7742 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
7743
7744         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
7745
7746 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
7747
7748         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
7749         (expand_mult): ...here.
7750         (extract_high_half): New, split out from expand_mult_highpart.
7751         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
7752         (expand_highpart): Evaluate the cost of a shift/add sequence,
7753         then see if any of the specialized optabs are cheaper.
7754
7755 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
7756
7757         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
7758
7759 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7760
7761         * convert.c (convert_to_real): Add more math builtins.
7762
7763 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7764
7765         * convert.c (convert_to_real): Reformat using switch stmt.
7766
7767 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7768
7769         * c-common.c (pointer_int_sum): Do not complain about using
7770         pointers to pointers-to-members.
7771
7772 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
7773
7774         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
7775         have moved to the target hooks structure".
7776
7777 2004-03-18  James E Wilson  <wilson@specifixinc.com>
7778
7779         * config/mips/mips.md (type): Split move into arith and fmove.  Split
7780         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
7781         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
7782         Likewise.
7783         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
7784         Likewise.
7785         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
7786         rm7_fp_quick): Likewise.
7787         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
7788         rm9k_fquick): Likewise.
7789         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
7790         Likewise.
7791         (ir_sr70_icmp): Delete.
7792
7793 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7794
7795         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
7796         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
7797         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
7798         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
7799         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
7800         Protect with proper check.
7801         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
7802         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
7803         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
7804         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
7805         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
7806         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
7807         not TYPE_FIELDS.
7808         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
7809
7810 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
7811
7812         * gcse.c (eliminate_partially_redundant_loads): Reject change if
7813         dest is set between beginning and current insn.
7814
7815 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7816
7817         * c-decl.c (grokdeclarator): Do not complain about redeclaring
7818         visible "static" identifiers "extern" in a local scope.
7819         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
7820         post-increments/decrements.
7821
7822 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
7823
7824         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
7825         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
7826         (xtensa_va_start): Remove assignment to current_function_arg_words.
7827
7828 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
7829
7830         * alias.c (record_set): Detect the case where a register is assigned
7831         a new value that has the same base term as the old one.
7832
7833 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7834
7835         * doloop.c: Removed.
7836         * loop-doloop.c: New file.
7837         * Makefile.in (doloop.o): Remove.
7838         (loop-doloop.o): New.
7839         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
7840         * cfgloopanal.c (get_loop_level): New function.
7841         * loop-iv.c (iv_number_of_iterations): Handle case when loop
7842         is leaved immediatelly.
7843         * loop.c (strength_reduce): Do not call doloop optimization.
7844         * loop.h (LOOP_BCT): Removed.
7845         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
7846         (rest_of_handle_loop2): Call doloop_optimize_loops.
7847         (rest_of_compilation): Test for optimizations moved to
7848         rest_of_handle_loop2.
7849
7850 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
7851
7852         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
7853         for mixed mode.
7854         (rs6000_emit_prologue): Ditto.
7855         (rs6000_emit_epilogue): Ditto.
7856         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
7857         macro for mixed mode.
7858
7859 2004-03-18  Jan Hubicka  <jh@suse.cz>
7860
7861         * predict.c (propagate_freq): Compute correctly frequency of
7862         EXIT_BLOCK.
7863
7864 2004-03-17  Eric Christopher  <echristo@redhat.com>
7865
7866         * builtins.c (apply_args_size): Use reg_raw_mode.
7867         (apply_result_size): Ditto.
7868
7869 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7870
7871         PR target/14620
7872         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
7873
7874 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
7875
7876         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
7877         32-bit builds when defaulting to 32-bit.
7878
7879 2004-03-17  Jan Hubicka  <jh@suse.cz>
7880
7881         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
7882         array.
7883
7884 2004-03-17  James E Wilson  <wilson@specifixinc.com>
7885
7886         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
7887         (hazard_nop): Change type to nop.
7888         (type): Split arith into arith, shift, slt, clz.  Delete darith.
7889         Fix all uses.  Change arith to multi if more than one insn emitted.
7890         * config/mips/5400.md (ir_vr54_arith): Likewise.
7891         * config/mips/5500.md (ir_vr55_arith): Likewise.
7892         * config/mips/7000.md (rm7_int_other): Likewise.
7893         * config/mips/9000.md (rm9k_int): Likewise.
7894         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
7895
7896 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
7897
7898         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
7899         to hold the subtype tree instead of recomputing it several times.
7900
7901 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
7902
7903         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
7904         CC_INVERT.
7905         * config/mn10300/mn10300.md (cc): Remove "invert".
7906
7907 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7908
7909         * builtins.c (integer_valued_real_p): Add builtin rint.
7910         (fold_builtin): Likewise.
7911         * convert.c (convert_to_real): Likewise.
7912
7913         * convert.c (convert_to_real): Fix typos in `long double'
7914         builtins.
7915
7916 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
7917
7918         PR c++/14481
7919         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
7920         generated COMPOUND_EXPRs.
7921
7922 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7923
7924         * config/h8300/t-rtems (h8300-*-rtems*): New.
7925
7926 2004-03-16  Eric Christopher  <echristo@redhat.com>
7927
7928         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
7929
7930 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
7931
7932         * config/i386/i386-protos.h: Add a prototype for
7933         ix86_reverse_condition.
7934         * config/i386/i386.c (ix86_reverse_condition): New.
7935         * config/i386/i386.h (REVERSE_CONDITION): Use
7936         ix86_reverse_condition.
7937         * config/i386/i386.md: Use ix86_reverse_condition instead of
7938         REVERSE_CONDITION.
7939
7940 2004-03-16  J. Brobecker  <brobecker@gnat.com>
7941
7942         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
7943
7944 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
7945
7946         PR bootstrap/12974
7947         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
7948
7949 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
7950
7951         * c-common.c (c_common_type_for_mode): Build vector types on
7952         demand.
7953         (handle_mode_attribute): Deprecate using the mode attribute
7954         to create vector types.  Fix indentation.
7955         (vector_type_node_list): Remove.
7956         (handle_vector_size_attribute): Create vector types on demand.
7957         Strip a NON_LVALUE_EXPR from the attribute if there is one.
7958         * c-typeck.c (comptypes): Make vector types compatible if they
7959         have the same underlying mode.
7960         (convert_for_assignment): Use comptypes to convert between
7961         vector types.
7962         * tree.c (build_common_tree_nodes_2): Do not create vector types.
7963         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
7964         vector types.
7965         * tree.h: Remove vector types.
7966         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
7967         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
7968         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
7969         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
7970         * doc/extend.texi (Vector Types): Document how to use the
7971         vector_size attribute to create vectors, rather than mode.
7972
7973         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
7974         * config/i386/emmintrin.h: Likewise.
7975         * config/i386/mmintrin.h: Likewise.
7976         * config/i386/xmmintrin.h: Likewise.
7977         * config/sh/ushmedia.h: Likewise.
7978
7979 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
7980
7981         * config/freebsd-spec.h, config/arc/arc-protos.h,
7982         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
7983         config/arm/linux-gas.h, config/arm/semi.h,
7984         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
7985         config/ia64/freebsd.h, config/mips/7000.md,
7986         config/mips/9000.md, config/ns32k/ns32k-protos.h,
7987         config/sparc/pbd.h: Update copyright.
7988
7989 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7990
7991         PR target/14577
7992         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
7993
7994 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
7995
7996         * combine.c (combine_simplify_rtx): Remove the "last"
7997         parameter and its documentation.  Adjust recursive calls.
7998         (simplify_logical): Always perform the only simplification
7999         controlled by "last", if the simplified expression is
8000         actually different.
8001         (try_combine): Do not pass the "last" parameter to
8002         combine_simplify_rtx.
8003
8004 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8005
8006         PR target/14599
8007         * config/mips/mips.md (UNSPEC_GP): New constant.
8008         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8009         an UNSPEC instead of (reg $gp).
8010         (mips16_gp_pseudo_reg): Change accordingly.
8011         (print_operand): Print $gp directly when handling CONST_GP_P.
8012
8013 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8014
8015         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8016         * longlong.h: Make code 68060 clean when compiling for m68060.
8017
8018 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8019
8020         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8021         * doc/md.texi: Clarify description of "i" constraint.
8022
8023 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8024
8025         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8026         Split store into store, fpstore, fpidxstore.  Fix all uses.
8027         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8028         Likewise.
8029         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8030         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8031         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8032         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8033         ir_sr70_fstore): Likewise.
8034
8035 2004-03-15  Richard Henderson  <rth@redhat.com>
8036
8037         PR middle-end/14535
8038         * except.c (collect_one_action_chain): Record action for cleanup
8039         outer of exception spec.
8040
8041 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8042
8043         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8044         Fix the check for abort and only do the mmap if we can.
8045
8046 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8047
8048         * config/sparc/sparc.h: Rework comments about the code model
8049         in 64-bit environment and the mode 'Pmode'.
8050         * doc/invoke.texi (SPARC options): Rework description of the
8051         different code models supported in 64-bit environment.
8052
8053 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8054
8055         * defaults.h (REVERSIBLE_CC_MODE): Define.
8056         * jump.c (reversed_comparison_code_parts): Don't check if
8057         REVERSIBLE_CC_MODE is defined.
8058
8059 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8060
8061         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8062         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8063         hosthooks.h, params.h, ra-colorize.c, web.c,
8064         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8065         config/avr/avr-protos.h, config/avr/avr.md,
8066         config/fr30/fr30-protos.h, config/fr30/fr30.md,
8067         config/h8300/fixunssfsi.c, config/i386/darwin.h,
8068         config/i386/freebsd.h, config/i386/freebsd64.h,
8069         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8070         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8071         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8072         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8073         config/pa/pa64-regs.h, config/rs6000/aix41.h,
8074         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8075         config/sparc/aout.h, config/sparc/freebsd.h,
8076         config/sparc/litecoff.h, config/vax/vax-protos.h,
8077         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8078         copyright.
8079
8080 2004-03-15  Paul Brook  <paul@codesourcery.com>
8081
8082         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8083
8084 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8085
8086         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8087         (pp_c_cv_qualifier): Document.
8088         (pp_c_space_for_pointer_operator): Likewise.
8089         (pp_c_integer_constant): Likewise.
8090         (pp_c_identifier): Likewise.
8091         (pp_c_init_declarator): Don't print function body.
8092
8093 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8094
8095         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8096         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8097         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8098         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
8099         wording and grammar.
8100
8101 2004-03-14  Roger Sayle  <roger@eyesopen.com>
8102
8103         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8104         with lang_hooks.foo ().
8105         * builtins.c (expand_builtin_va_arg): Likewise.
8106         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8107         c_common_type_for_mode, c_common_nodes_and_builtins,
8108         handle_mode_attribute, handle_vector_size_attribute): Likewise.
8109         * c-convert.c (convert): Likewise.
8110         * c-format.c (check_format_types): Likewise.
8111         * c-objc-common.c (c_tree_printer): Likewise.
8112         * c-typeck.c (build_unary_op, build_conditional_expr,
8113         build_binary_op): Likewise.
8114         * calls.c (try_to_integrate, expand_call,
8115         emit_library_call_value_1): Likewise.
8116         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8117         Likewise.
8118         * cgraphunit.c (record_call_1, cgraph_analyze_function,
8119         cgraph_expand_function): Likewise.
8120         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8121         * coverage.c (build_fn_info_type, build_ctr_info_type,
8122         build_gcov_info, create_coverage): Likewise.
8123         * dbxout.c (dbxout_init): Likewise.
8124         * diagnostic.c (diagnostic_report_current_function): Likewise.
8125         * dojump.c (do_jump): Likewise.
8126         * dwarf2out.c (dwarf2_name): Likewise.
8127         * except.c (init_eh): Likewise.
8128         * explow.c (expr_size, int_expr_size): Likewise.
8129         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8130         Likewise.
8131         * expr.c (store_expr, store_constructor, safe_from_p,
8132         expand_expr_real, do_store_flag, try_casesi): Likewise.
8133         * function.c (push_function_context_to, pop_function_context_from,
8134         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8135         put_var_into_stack, allocate_struct_function, current_function_name):
8136         Likewise.
8137         * integrate.c (copy_decl_for_inlining, expand_inline_function):
8138         Likewise.
8139         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8140         lhd_print_error_function): Likewise.
8141         * opts.c (handle_option, decode_options): Likewise.
8142         * passes.c (open_dump_file): Likewise.
8143         * print-tree.c (print_node): Likewise.
8144         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8145         expand_decl_cleanup, emit_case_nodes): Likewise.
8146         * stor-layout.c (variable_size): Likewise.
8147         * toplev.c (announce_function, wrapup_global_declarations,
8148         check_global_declarations, compile_file, default_tree_printer,
8149         process_options, lang_dependent_init, finalize): Likewise.
8150         * tree-dump.c (dequeue_and_dump): Likewise.
8151         * tree-inline.c (remap_decl, remap_block, copy_body_r,
8152         initialize_inlined_parameters, declare_return_variable,
8153         inlinable_function_p, expand_call_inline, optimize_inline_calls,
8154         walk_tree, copy_tree_r): Likewise.
8155         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8156         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8157         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8158         variably_modified_type_p, dump_tree_statistics): Likewise.
8159         * varasm.c (assemble_variable, compare_constant, copy_constant,
8160         force_const_mem, compute_reloc_for_constant, output_constant,
8161         output_addressed_constants, initializer_constant_valid_p): Likewise.
8162
8163 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
8164
8165         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8166
8167 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
8168
8169         * doc/install.texi: Reflect autoconf and automake version for
8170         libffi. Update autoconf version to 2.59.
8171
8172 2004-03-13  Roger Sayle  <roger@eyesopen.com>
8173
8174         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8175         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8176         make_range, build_range_check, fold_range_test, unextend,
8177         constant_boolean_node, fold_binary_op_with_conditional_arg,
8178         fold_truthop, fold_mathfn_compare, fold_inf_compare,
8179         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8180         with lang_hooks.foo ().
8181
8182 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
8183
8184         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8185
8186 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
8187
8188         * doc/install.texi: Note status of -fnew-ra.
8189
8190 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8191
8192         PR middle-end/14470
8193         * expr.c (store_expr): Call emit_queue before generating the move
8194         from the temporary to the original target.  Protect the temporary
8195         from emit_queue.
8196
8197 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
8198
8199         PR target/14533
8200         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8201         other than UNSPEC_GOTOFF.
8202
8203 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
8204
8205         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
8206         to arm_legitimate_index_p.  Update all callers with SET as default
8207         value.
8208         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
8209         range if OUTER is a sign-extend operation on QImode.  Correctly
8210         reject shift operations on sign-extended QImode addresses.
8211         (bad_signed_byte_operand): Delete.
8212         (arm_extendqisi_mem_op): New function.
8213         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
8214         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
8215         constraints.
8216         (CONSTRAINT_LEN): New.
8217         (EXTRA_CONSTRAINT): Delete.  Replace with...
8218         (EXTRA_CONSTRAINT_STR): ... this.
8219         (PREDICATE_CODES): Remove bad_signed_byte_operand.
8220         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
8221         is now always default.
8222         (define_splits for bad sign-extend loads): Delete.
8223         (arm_extendqisi, arm_extendqisi_v5): Likewise.
8224         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8225         Rework 'U' constraint to 'Uv'.
8226         * arm-protos.h: Remove bad_signed_byte_operand.  Add
8227         arm_extendqisi_mem_op.
8228         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8229         Add Uq constraint.
8230
8231 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
8232
8233         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8234         with targetm version.
8235
8236         PR target/14567
8237         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8238         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8239         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8240         Update all users of RS6000_ARG_SIZE.
8241         (function_arg_advance): Count fregno using mode size.
8242         (function_arg): Handle long double split over regs and memory.
8243         (function_arg_partial_nregs): Likewise.
8244         (rs6000_va_arg): Repackage complex args.
8245
8246 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
8247
8248         PR target/14047
8249         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8250         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8251         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8252
8253 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
8254
8255         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8256         prototype.
8257         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8258         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8259
8260 2003-03-12  Andrew Pinski  <apinski@apple.com>
8261
8262         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8263         Use ret instead of result. Use addr instead of base.
8264
8265 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
8266
8267         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8268         fixes required by libstdc++ and update installation instructions
8269         for libstdc++.a.
8270
8271 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
8272
8273         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8274         leading '@' on fastcall symbols before stripping suffix.
8275
8276 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8277
8278         * combine.c (unmentioned_reg_p): New function to check whether an
8279         expression is a "specialization" of another, i.e. that there are
8280         no registers or memory references mentioned in the first that don't
8281         appear in the second.
8282         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8283         (combine_instructions): Also try combining instructions using the
8284         REG_EQUAL note from a preceding log-linked instruction.
8285
8286 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8287
8288         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8289
8290 2004-03-12  Matt Austern  <austern@apple.com>
8291
8292         * target.h (struct gcc_target): New target hook, unwind_label.
8293         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8294         * output.h (default_emit_unwind_label): New function.
8295         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8296         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8297         (TARGET_SUPPORTS_HIDDEN): New target macro.
8298         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8299         that corresponds to this FDE.
8300         (FRAME_BEGIN_LABEL): Allow target to override default label.
8301         (output_call_frame_info): If FDEs are linknonce, then use extra
8302         indirection for FDE encoding, output a label for each FDE, and
8303         output an empty label for each function without an FDE.
8304         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8305         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8306         decls with DECL_ONE_ONLY set, if that macro is defined.
8307         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8308         for a SUPPORTS_ONE_ONLY target.
8309         * config/darwin-protos.h (darwin_unique_section): Declare.
8310         (darwin_asm_named_section): Likewise.
8311         (darwin_section_type_flags): Likewise.
8312         (darwin_non_lazy_pcrel): Likewise.
8313         (darwin_emit_unwind_label): Likewise.
8314         (darwin_make_decl_one_only): Likewise.
8315         * config/darwin.c (machopic_finish): Get rid of tweak that
8316         eliminate stubs for symbols that are defined.
8317         (darwin_encode_section_info): Don't treat weak functions as defined.
8318         (darwin_make_decl_one_only): Define.
8319         (darwin_asm_named_section): Likewise.
8320         (darwin_section_type_flags): Likewise.
8321         (darwin_unique_section): Likewise.
8322         (darwin_emit_unwind_label): Likewise.
8323         (darwin_non_lazy_pcrel): Likewise.
8324         (darwin_asm_output_dwarf_delta): Difference between two labels is
8325         local only if both labels are local.
8326         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8327         (ASM_MAKE_LABEL_LINKONCE): Likewise.
8328         (TARGET_SUPPORTS_HIDDEN): Likewise.
8329         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8330         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8331         (FRAME_BEGIN_LABEL): Likewise.
8332         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8333         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8334         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8335         (TARGET_ASM_UNIQUE_SECTION): Define.
8336         (EH_FRAME_SECTION_NAME): Define.
8337         (EH_FRAME_SECTION_ATTR): Likewise.
8338         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8339         (TARGET_ASM_NAMED_SECTION): Likewise.
8340         (TARGET_SECTION_TYPE_FLAGS): Likewise.
8341         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8342         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8343         TARGET_ASM_EMIT_UNWIND_LABEL.
8344
8345 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8346
8347         * builtins.c (expand_builtin_mathfn): Add pow10* to the
8348         existing exp10* case.
8349         (expand_builtin): Likewise.
8350
8351 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
8352
8353         * doc/tm.texi (registers) <Values in Registers>: Add
8354         entry for REGMODE_NATURAL_SIZE.
8355
8356 2004-03-12  Richard Henderson  <rth@redhat.com>
8357
8358         PR target/14547
8359         * target.h (struct gcc_target): Move calls substructure before
8360         booleans.  Add split_complex_arg.
8361         * function.c (assign_parms, split_complex_args): Use it.
8362         * calls.c (expand_call): Likewise.
8363         (split_complex_values): Likewise.  Check for splittable types
8364         before allocating memory.
8365         (split_complex_types): Likewise.
8366         * system.h (SPLIT_COMPLEX_ARGS): Poison.
8367         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
8368         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
8369         * config/alpha/alpha.c (alpha_split_complex_arg): New.
8370         (TARGET_SPLIT_COMPLEX_ARG): New.
8371         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
8372         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
8373         (rs6000_override_options): Zap it for non-AIX.
8374         (rs6000_function_value): Use targetm.calls.split_complex_arg.
8375         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
8376         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
8377         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
8378         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
8379         SPLIT_COMPLEX_ARGS entry.
8380
8381 2004-03-11  Richard Henderson  <rth@redhat.com>
8382
8383         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
8384         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
8385         (alpha_emit_xfloating_arith): Update to match.
8386         (alpha_emit_xfloating_compare): Likewise.
8387         (alpha_emit_xfloating_cvt): Likewise.
8388         (alpha_emit_xfloating_libcall): Take already built symbol,
8389         mark call const.
8390         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
8391         op1 in a register.
8392
8393 2004-03-11  Richard Henderson  <rth@redhat.com>
8394
8395         PR target/14539
8396         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
8397
8398         * simplify-rtx.c (simplify_relational_operation): Fix typo.
8399
8400 2004-03-11  Richard Henderson  <rth@redhat.com>
8401
8402         PR middle-end/14477
8403         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
8404
8405 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8406
8407         PR target/14262
8408         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
8409         defined, pass small BLKmode values in registers in the low-order part.
8410
8411 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8412
8413         * combine.c (if_then_else_cond): Check for NULL return value of
8414         simplify_gen_subreg.
8415
8416 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8417
8418         PR target/14496
8419         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
8420         TARGET_SINGLE_FLOAT.
8421
8422 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
8423
8424         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
8425         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
8426         * config/ia64/ia64.c (ia64_init_libfuncs): New.
8427         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
8428
8429 2004-03-11  Roger Sayle  <roger@eyesopen.com>
8430
8431         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
8432         -((int)X>>C) where C is an integer constant one bit less than the
8433         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
8434         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
8435
8436         * simplify-rtx.c (simplify_unary_operation): Also implement the
8437         above transformations at the RTL level.
8438
8439 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
8440
8441         * real.c (encode_ibm_extended): Do round low word.
8442
8443 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
8444
8445         * config/arm/arm.md (is_xscale): Comment this attribute and move
8446         it a bit further up in the file, closer to related attributes.
8447
8448 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
8449
8450         * config/host-solaris.c (sol_gt_pch_use_address): Add
8451         missing terminating marker to comment.
8452
8453 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8454
8455         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
8456         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
8457         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
8458         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
8459         move_operand as source predicate in all cases.
8460         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
8461         Test reg_or_0_operand.  Use move_operand as source predicate.
8462         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
8463         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
8464         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
8465         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
8466         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
8467         Use move_operand as source predicate.  Remove 'K' constraint.
8468         (*movqi_internal): Likewise movqi_internal.
8469         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
8470         reg_or_0_operand.  Use move_operand as source predicate.
8471         (*movsf_softfloat): Likewise movsf_internal2.
8472         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
8473         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
8474         (*movdf_softfloat): Likewise movdf_internal2.
8475         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
8476         for DImode if !TARGET_64BIT.
8477         (mips_legitimize_move): Simplify accordingly.
8478
8479 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8480
8481         PR/14362
8482         * var-tracking.c (struct variable_def): Added field refcount.
8483         (variable_htab_free): Decrease the refcount and delete variable
8484         only if there are no more references.
8485         (unshare_variable): New function.
8486         (vars_copy_1): Increase refcount instead of copying the variable.
8487         (variable_union): Share the variables where possible, unshare
8488         the variables if needed.
8489         (variable_different_p): Return false if var1 and var2 are
8490         the same structure.
8491         (variable_was_changed): Init the refcount of new variable.
8492         (set_frame_base_location): Unshare variable if needed.
8493         (set_variable_part): Init the refcount of new variable.
8494         Unshare the variables if needed.
8495         (delete_variable_part): Unshare the variables if needed.
8496         (emit_notes_for_differences_1): Init the refcount of new variable.
8497         (vt_add_function_parameters): Do not add function parameters to
8498         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
8499         (vt_initialize): Do not add frame_base_decl to IN set of
8500         ENTRY_BLOCK_PTR because it is unused anyway.
8501
8502 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8503
8504         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
8505         (vars_copy): Likewise.
8506         (variable_union): Likewise.
8507         (set_variable_part): Likewise.
8508         (delete_variable_part): Likewise.
8509
8510 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
8511
8512         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
8513         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
8514         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
8515         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
8516         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
8517         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
8518         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
8519         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
8520         config/stormy16/stormy16.c: Fix comment typos and formatting.
8521
8522 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
8523
8524         * configure: Regenerate, since I forgot to while committing Paolo's
8525         changes.
8526
8527 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
8528
8529         PR ada/14131
8530         Move language detection to the top level.
8531         * configure.ac: Remove code to detect languages,
8532         it now lives exclusively in the top level.
8533         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
8534         top level, renamed to ACX_PROG_GNAT.
8535
8536 2004-03-10  Richard Henderson  <rth@redhat.com>
8537
8538         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
8539         extra arguments.
8540         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
8541         and host_xmake_file fragments.
8542         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
8543         (gt_pch_restore): Similarly for gt_pch_use_address.
8544         (default_gt_pch_get_address): New.
8545         (mmap_gt_pch_get_address): Split out of gt_pch_save.
8546         (default_gt_pch_use_address): Split out of gt_pch_restore.
8547         (mmap_gt_pch_use_address): Likewise.
8548         * hooks.c (hook_voidp_size_t_null): Remove.
8549         (hook_bool_voidp_size_t_false): Remove.
8550         * hooks.h: Likewise.
8551         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
8552         default_ or mmap_ definitions.
8553         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
8554         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
8555         and gt_pch_use_address.
8556         * config/host-linux.c, config/host-solaris.c: New files.
8557         * config/x-linux, config/x-solaris: New files.
8558         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
8559         Update for changed definition.
8560         (darwin_rs6000_gt_pch_use_address): Likewise.
8561         * doc/hostconfig.texi: Update docs.
8562
8563 2004-03-10  Richard Henderson  <rth@redhat.com>
8564
8565         PR c/14517
8566         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
8567         except for pedantic c90 mode.
8568
8569 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
8570
8571         * configure.ac: Bump AC_PREREQ to 2.59.
8572         * configure: Regenerate.
8573
8574 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
8575
8576         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
8577         (exp10_optab, exp2_optab): Define corresponding macros.
8578         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
8579         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
8580         using exp10?f2 and exp2?f2 patterns.
8581         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
8582         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
8583         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
8584         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8585
8586         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
8587         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
8588         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
8589
8590 2004-03-10  Anthony Green  <green@redhat.com>
8591
8592         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
8593
8594 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8595
8596         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
8597         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
8598         __LONGDOUBLE128.
8599         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
8600         TARGET_OS_AIX_CPP_BUILTINS.
8601         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
8602         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
8603         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
8604         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
8605         previous change.
8606
8607 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8608
8609         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
8610
8611 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8612
8613         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8614         __LONGDOUBLE128 on AIX.
8615
8616 2004-03-10  Andrew Haley  <aph@redhat.com>
8617
8618         PR optimization/14381
8619         * function.c (expand_function_end): Emit a blockage insn before
8620         the epilogue when -fnon-call-exceptions is used.
8621
8622         * except.c (expand_start_all_catch): Make comment more accurate.
8623
8624 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8625
8626         PR target/14480
8627         * config/rs6000/t-rtems: Add missing file on branch.
8628
8629 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
8630
8631         * dbxout.c (dbxout_symbol_location): Do not output references
8632         to optimized-out constant pool symbols.
8633
8634 2004-03-10  Andreas Schwab  <schwab@suse.de>
8635
8636         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
8637         twon34_r.
8638
8639 2004-03-09  James E Wilson  <wilson@specifixinc.com>
8640
8641         * alias.c (alias_sets_might_conflict_p): New.
8642         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
8643         * common.opt (Wstrict-aliasing=): New.
8644         * flags.h (warn_strict_aliasing): Change type to int.
8645         * opts.c (warn_strict_aliasing): Change type to int.
8646         (common_handle_option): Handle OPT_Wstrict_aliasing_.
8647         * tree.h (alias_sets_might_conflict_p): Declare it.
8648         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
8649
8650 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
8651
8652         PR bootstrap/12371
8653         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
8654         (CALL_USED_REGISTERS): Likewise.
8655         (REG_CLASS_CONTENTS): Likewise.
8656         (REG_ALLOC_ORDER): New.
8657         (REGNO_REG_CLASS): Use regno_reg_class.
8658         * config/m68k/m68k.c: Add regno_reg_class array.
8659
8660 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
8661
8662         * config/ia64/ia64.md (divsi3): Fix algorithm.
8663           (udivsi3): Ditto.
8664           (setf_exp_xf): Remove '*' from name.
8665         * testsuite/gcc.dg/20040309-1.c: New test.
8666
8667 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
8668
8669         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
8670         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
8671         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
8672         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
8673         (sparc_aout_select_rtx_section): Don't check
8674         SUNOS4_SHARED_LIBRARIES.
8675         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
8676
8677 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
8678
8679         PR other/14474
8680         * doc/md.texi (Pattern Ordering, Dependent Patterns)
8681         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
8682         INTERNALS".
8683
8684 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
8685
8686         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
8687         (LIBGCC_SPEC): Update to match.
8688
8689 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
8690
8691         * c-decl.c (last_function_parms, last_function_parm_tags)
8692         (last_function_parm_others, current_function_parms)
8693         (current_function_parm_tags, current_function_parm_others):
8694         Delete.
8695         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
8696         New macros.
8697         (grokdeclarator): For function definitions, save the arg-info
8698         block from the declarator in DECL_ARGUMENTS.
8699         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
8700         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
8701         contains only PARM_DECLs.  Improve diagnostics.
8702         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
8703         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
8704         (store_parm_decls_newstyle): Take the function to operate on,
8705         and an arg-info block, as arguments; don't get anything from
8706         current_function_* globals.
8707         (store_parm_decls_oldstyle): Likewise.
8708         (store_parm_decls): Pass fndecl and its arg-info block down to
8709         store_parm_decls_newstyle/oldstyle.  Send functions with empty
8710         argument lists through store_parm_decls_newstyle to reduce
8711         overhead.
8712         (pushdecl): Comment on the problems with the call to copy_node.
8713         Clear DECL_ARGUMENTS of the old node after copying it, if it
8714         is an arg-info block instead of a chain of decls.
8715         (start_function): Do not manipulate current_function_parm* or
8716         last_function_parm*.
8717
8718 2004-03-09  Roger Sayle  <roger@eyesopen.com>
8719             Andrew Pinski  <pinskia@physics.uc.edu>
8720
8721         * ifcvt.c (noce_try_sign_mask): New function to transform
8722         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
8723         (noce_process_if_block): Call noce_try_sign_mask.
8724
8725 2004-03-09  Andrew Pinski  <apinski@apple.com>
8726
8727         * c-typeck.c (tagged_types_tu_compatible_p):
8728         Fix typo.
8729
8730 2004-03-09  Roger Sayle  <roger@eyesopen.com>
8731
8732         * simplify-rtx.c (simplify_const_relational_operation): New function
8733         renamed from simplify_relational_operation.
8734         (simplify_relational_operation): Change prototype to accept an
8735         additional mode argument.  Call simplify_const_relational_operation.
8736         (simplify_gen_relational): Update simplify_relational_operation call.
8737         (simplify_ternary_operation): Update simplify_relational_operation
8738         subroutine call to use simplify_const_relational_operation instead.
8739
8740         * rtl.h (simplify_const_relational_operation): Prototype here.
8741         (simplify_relational_operation): Add addtional mode argument.
8742
8743         * combine.c (combine_simplify_rtx): Update calls to
8744         simplify_relational_operation.
8745         (simplify_set): Likewise.
8746         (gen_binary): Likewise.
8747         * cse.c (fold_rtx): Likewise.
8748         * dojump.c (compare_from_rtx): Likewise.
8749         (do_compare_rtx_and_jump): Likewise.
8750         * integrate.c (subst_constants): Likewise.
8751         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
8752
8753 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
8754
8755         * config/m32r/m32r.md: Remove all define_peephole's.
8756
8757 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
8758
8759         * config/rs6000/rs6000.md: Remove trailing whitespace.
8760
8761 2004-03-08  Eric Christopher  <echristo@redhat.com>
8762
8763         * Makefile.in (site.exp): Add libiconv variable definition.
8764
8765 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
8766
8767         * configure: Regenerate for config/accross.m4 correction.
8768
8769 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8770
8771         PR target/14480
8772         * config/rs6000/t-rtems: Add missing file on branch.
8773
8774 2004-03-08  Roger Sayle  <roger@eyesopen.com>
8775
8776         PR middle-end/14289
8777         * c-typeck.c (c_mark_addressable): A register variable should
8778         be considered global if its not automatic, i.e. TREE_PUBLIC,
8779         TREE_STATIC or DECL_EXTERNAL.
8780         * function.c (put_var_into_stack): Call abort when placing a
8781         hard register into the stack, if x_parm_reg_stack_loc is NULL.
8782
8783 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
8784
8785         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
8786         ("*extendqisi2_short_displ"): Likewise.
8787
8788 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
8789
8790         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
8791         (comp_operator): Likewise.
8792         * config/pdp11/pdp11-protos.h: Remove corresponding
8793         prototypes.
8794
8795 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
8796
8797         * expr.c (highest_pow2_factor_for_type): Rename into
8798         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
8799         TYPE_ALIGN when the target is a COMPONENT_REF.
8800         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
8801
8802 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8803
8804         * config/rs6000/rs6000.c: Formatting fix.
8805         (legitimate_offset_address_p): Correct offset range check.
8806
8807         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
8808         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
8809         and MASK_STRING.
8810
8811 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8812
8813         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
8814         for little endian.
8815         ("ashrdi3_no_power"): Disable for little endian.
8816         (ashrdi3): Same.
8817
8818 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8819
8820         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
8821         builtins.
8822
8823 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
8824
8825         PR target/14471
8826         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
8827         case, checking for -no-mul-bug-abort option.
8828         * configure, config.in: Regenerate.
8829         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
8830         and -mno-mul-bug-workaround.
8831         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
8832         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
8833         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
8834         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
8835         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
8836         sure mulu.d is not last on cache-line.
8837         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
8838         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
8839         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
8840         (TARGET_SWITCHES): New options -mmul-bug-workaround and
8841         -mno-mul-bug-workaround.
8842         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
8843         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
8844         * config/cris/cris.c (cris_operand_extend_operator): Clarify
8845         relation to MULT in head comment.
8846         (cris_op_str): Abort for MULT.
8847         (cris_print_operand) <case '!'>: New case.
8848
8849 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8850
8851         PR debug/11983
8852         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
8853         dw_val_class_vec.  Replace use throughout file.
8854         (dw_float_const): Delete.
8855         (dw_vec_const): New.
8856         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
8857         throughout file.
8858         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
8859         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
8860         (size_of_die): Adjust dw_val_class_vec sizing.
8861         (output_die): Output dw_val_class_vec.
8862         (insert_int, extract_int, insert_float): New functions.
8863         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
8864         Handle CONST_VECTOR.
8865         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
8866
8867 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8868
8869         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
8870         AltiVec abi cannot co-exist.
8871
8872         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
8873
8874 2004-03-07  Jan Hubicka  <jh@suse.cz>
8875
8876         * except.c (emit_to_new_bb_before):  Break fallthru edges.
8877
8878 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
8879
8880         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
8881         ("*lshrsi3"): Also accept an immediate for 68HC12.
8882         ("*ashrsi3_const"): Likewise.
8883         ("*ashrsi3"): Likewise.
8884         ("*ashlsi3_const"): Likewise.
8885         ("*ashlsi3"): Likewise.
8886         ("cmphi_1_hc12"): Compare two hard register by pushing them and
8887         comparing with a pop; don't use a split for that.
8888         ("cmphi split"): Disable compare split for 68HC12.
8889
8890         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
8891         the status operands if they have side effects.
8892
8893 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
8894
8895         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
8896         definition.
8897         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
8898         config/h8300/h8300.h, config/ia64/ia64.h,
8899         config/mcore/mcore.h, config/mmix/mmix.h,
8900         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
8901         config/stormy16/stormy16.h, config/v850/v850.h,
8902         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
8903         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
8904         definition.
8905
8906 2004-03-07  Roger Sayle  <roger@eyesopen.com>
8907
8908         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
8909         <XOR_EXPR>: Fold x ^ x as zero.
8910         <AND_EXPR>: Fold x & x as x.
8911
8912 2004-03-07  Roger Sayle  <roger@eyesopen.com>
8913
8914         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
8915         "foo++ == const" into "++foo == const+incr".
8916
8917 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
8918
8919         * config/mips/mips.c (mips_in_small_data_p): Return false if
8920         TARGET_ABICALLS.
8921
8922 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
8923
8924         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
8925         the stack register.
8926         (expand_prologue): Don't make an interrupt or a trap handler a far
8927         symbol.
8928         (m68hc11_initial_elimination_offset): Likewise.
8929
8930 2004-03-06  Richard Henderson  <rth@redhat.com>
8931
8932         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
8933
8934 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
8935
8936         * config/ns32k/ns32k-protos.h: Add a prototype for
8937         ns32k_notice_update_cc.
8938         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
8939         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
8940         ns32k_notice_update_cc.
8941
8942 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
8943
8944         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
8945         "*load_multiple_si"): Allow only if reload_completed.
8946         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
8947         Likewise.
8948
8949 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
8950
8951         * config/vax/vax-protos.h: Add a prototype for
8952         vax_notice_update_cc.
8953         * config/vax/vax.c (vax_notice_update_cc): New.
8954         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
8955         vax_notice_update_cc.
8956
8957 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
8958
8959         * collect2.c (main): Only export initfunc and finifunc if
8960         LD_INIT_SWITCH not defined.
8961         (scan_prog_file): Only export constructors and destructors if
8962         LD_INIT_SWITCH not defined.  Only export symbols not found in
8963         shared objects.
8964
8965 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8966
8967         * pa.md (icacheflush): Reorder operands to make match_scratch operand
8968         last.
8969         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
8970         from calls to gen_icacheflush.
8971
8972 2004-03-06  Richard Henderson  <rth@redhat.com>
8973
8974         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
8975         (TARGET_LONG_DOUBLE_128): New.
8976         (TARGET_SWITCHES): Add long-double-{128,64}.
8977         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
8978         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
8979         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
8980         (WIDEST_HARDWARE_FP_SIZE): New.
8981         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
8982         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
8983         if TARGET_VAX_FLOAT.
8984         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
8985         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
8986
8987 2004-03-06  Richard Henderson  <rth@redhat.com>
8988
8989         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
8990         botched rtx class conversion.
8991
8992 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8993
8994         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
8995         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
8996
8997         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
8998         macros.
8999         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9000
9001 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9002
9003         PR target/14343
9004         * config/i386/i386.md (movv2di_internal): Conditionalize on
9005         TARGET_SSE, not TARGET_SSE2.
9006
9007 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9008
9009         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9010         duplicated line.
9011
9012 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9013
9014         * builtins.c: Consistently use logN not log* in comments.
9015
9016 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9017
9018         * rtl.h (mem_expr_equal_p): Function prototype added.
9019         * cfgcleanup.c (merge_memattrs): New function.
9020         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9021         * emit-rtl.c (mem_expr_equal_p): New function.
9022
9023 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9024
9025         * objc/objc-act.c (synth_module_prologue): Const-qualify
9026         objc_selector type if using the GNU runtime; fix generated
9027         signatures for objc_msg_lookup and objc_msg_lookup_super
9028         to match what GNU ObjC headers provide; reformat and clean up.
9029         (synth_self_and_ucmd_args): Use previously constructed (and
9030         hence possibly const-qualified) objc_selector type.
9031
9032 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9033
9034         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9035
9036 2004-03-05  Jason Merrill  <jason@redhat.com>
9037
9038         * tree.h (TYPE_HASH): Use TYPE_UID.
9039         (TREE_HASH): New macro with old definition of TYPE_HASH.
9040         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9041         (build_array_type, build_function_type): Likewise.
9042         (build_method_type_directly): Likewise.
9043         (build_offset_type, build_complex_type): Likewise.
9044         (type_hash_list, attribute_hash_list): Likewise. Now static.
9045         * except.c: s/TYPE_HASH/TREE_HASH/.
9046
9047 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9048
9049         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9050         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
9051         __va_ndx by 2 words when referencing an argument on the stack.
9052         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
9053         words when an arg on the stack is first seen.
9054
9055 2004-03-05  Paul Brook  <paul@codesourcery.com>
9056
9057         * arm.h (ARM_FLAG_VFP): Remove.
9058         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9059         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9060
9061 2004-03-05  Paul Brook  <paul@codesourcery.com>
9062
9063         * function.c (assign_parms): Include pretend alignment offset.
9064
9065 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9066
9067         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9068         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9069
9070 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
9071
9072         * configure.ac: When passing --enable-languages to subdir
9073         configure when host != build, make sure we don't pass an empty
9074         value.
9075         * configure: Regenerate.
9076
9077 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
9078
9079         PR 13577
9080         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9081         options.
9082
9083 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9084
9085         * simplify-rtx.c (simplify_relational_operation): If
9086         flag_wrapv is set, do not move terms between the two
9087         side of a relational operator.
9088
9089 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9090
9091         * rtlanal.c: Include target.h and output.h
9092         (rtx_cost, address_cost, default_address_cost): Move from...
9093         * cse.c (rtx_cost, address_cost, default_address_cost):
9094         ... this file.
9095         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9096         * Makefile.in: Adjust dependencies.
9097
9098 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
9099
9100         * cse.c (cse_end_of_basic_block): Make static.
9101         * local-alloc.c (function_invariant_p): Move to
9102         reload1.c.
9103         * loop.c (libcall_other_reg, record_excess_regs):
9104         Make static.
9105         * reload1.c (function_invariant_p): Moved here
9106         from local-alloc.c, made static.
9107         * rtl.h (cse_end_of_basic_block, function_invariant_p,
9108         libcall_other_reg, record_excess_regs): Remove
9109         declarations.
9110
9111 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9112
9113         * config/m32r/m32r.c (signed_comparison_operator): Add a
9114         missing parenthesis.
9115
9116 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
9117
9118         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9119         going to call mmap again.  Read the file into the right place.
9120         Give a fatal error if we have to relocate.
9121
9122 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
9123
9124         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9125         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9126
9127 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
9128
9129         PR other/14354
9130         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9131         round the same.  When rounding, clear bits that would cause a
9132         second rounding in pack_d.
9133         (_fpmul_parts): Ditto.  Remove #if 0:d code.
9134
9135 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
9136
9137         PR c++/14425, c++/14426
9138         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9139         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9140         Change C++ definitions to accept a 'const int' argument;
9141         the prototypes already do.
9142         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9143         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9144         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9145         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9146         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9147         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9148         end in ..._int; change them to accept an int instead of a char
9149         as the last parameter.
9150
9151 2004-03-04  Phil Edwards  <phil@codesourcery.com>
9152
9153         * genmultilib:  Change '=' to '-' when translating option names
9154         to directory names.
9155
9156 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9157
9158         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9159         stack slot for temp used for result of BLKmode but in integral mode.
9160
9161 2004-03-04  Jan Hubicka  <jh@suse.cz>
9162
9163         * reload.c (find_reloads): Reorganize if seqeunce to switch.
9164
9165         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
9166         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
9167
9168 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
9169
9170         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9171         * testsuite/gcc.dg/20040303-1.c: New test.
9172
9173 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9174
9175         * ppro.md: Rewrite as a DFA pipeline description.
9176         * i386.md: Remove all uses of the ppro_uops attribute.
9177         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9178         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9179         ix86_sched_reorder, ix86_variable_issue,
9180         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9181         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9182         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9183         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9184         * athlon.md (athlon_ssecmp_load): Fix comment
9185
9186 2004-03-04  Stuart Hastings  <stuart@apple.com>
9187
9188         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9189
9190 2004-03-04  Stuart Hastings  <stuart@apple.com>
9191
9192         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9193         686, tell Darwin assembler to allow prefetch insns, non-empty def
9194         of SUBTARGET_OPTION_TRANSLATE_TABLE.
9195
9196 2004-03-04  DJ Delorie  <dj@redhat.com>
9197
9198         PR optimization/14282
9199         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9200         between a call and the assignment of its return value.
9201
9202 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9203
9204         * config/h8300/h8300.c: Put a comment for every function.
9205
9206 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9207
9208         * config/h8300/h8300.md: Add comments about peephole2's.
9209
9210 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9211
9212         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9213
9214 2004-03-04  Jan Hubicka  <jh@suse.cz>
9215
9216         * cfgcleanup.c (thread_jump): Update call of cselib_init.
9217         * cselib.c (cselib_record_memory): New static variable.
9218         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9219         Give up on memories when asked for.
9220         (cselib_init): Accept new argument.
9221         * cselib.h (cselib_init): Update prototype.
9222         * gcse.c (local_cprop_pass): Update call of cselib_init.
9223         * loop.c (load_mems): Update call of cselib_init.
9224         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9225         * sched-deps.c (sched_analyze): Update call of cselib_init.
9226
9227 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9228             GP <gp@qnx.com>
9229
9230         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9231         when compiling PIC.
9232
9233 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
9234
9235         PR/14362
9236         * var-tracking.c (track_expr_p): Do not track variables which
9237         should be ignored for debugging purposes.
9238
9239 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9240
9241         * real.c (encode_ibm_extended): Don't bother rounding low double.
9242         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9243         when fmt->pnan < fmt->p.
9244
9245 2004-03-04  Eric Christopher  <echristo@redhat.com>
9246
9247         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9248         only range of valid arg registers and fixed_regs.
9249
9250 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9251
9252         PR target/14406
9253         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9254         (abstf2, abstf2_internal): New define_expand.
9255
9256 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9257
9258         PR optimization/14235
9259         * expr.c (convert_move): Copy the source to a new pseudo
9260         when converting from a sub-word source to a larger-than-word
9261         register which conflicts with the source.
9262
9263 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
9264
9265         PR 13728
9266         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9267         parameters with the same name, unless one is a forward decl.
9268         Do not issue a redundant-redeclaration warning for forward
9269         decls of parameters.
9270
9271 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9272
9273         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9274         configuration.
9275
9276 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
9277
9278         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9279
9280 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9281
9282         * target-def.h (TARGET_OPTF): Delete.
9283         * c-opts.c (TARGET_OPTF): Define.
9284
9285 2004-03-04  Jan Hubicka  <jh@suse.cz>
9286
9287         * cselib.c (cselib_finish): Fix another miss-application of my previous
9288         patch.
9289
9290 2004-03-03  Mike Stump  <mrs@apple.com>
9291
9292         Add framework support for darwin.
9293
9294         * c-incpath.c: Include target.h and machmode.h.
9295         (add_path): Use a consistent style for cpp_dir.  Initialize
9296         p->construct to 0.
9297         (add_cpp_dir_path): New.
9298         (register_include_chains): Add use of extra_includes callback.
9299         (hook_void_int): Add.
9300         (target_c_incpath): Add.
9301         * c-incpath.h (add_cpp_dir_path): New.
9302         (target_c_incpath_s): Add.
9303         (target_c_incpath): Add.
9304         (C_INCPATH_INIT): Add.
9305         * c-opts.c (c_common_missing_argument,
9306         c_common_handle_option): Add -F argument processing.
9307         * c.opt: Add -F argument processing.
9308         * gcc.c (trad_capable_cpp): Add -F argument processing.
9309         * cppfiles.c (find_file_in_dir): Update to use construct
9310         callback.
9311         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9312         cpp_get_prev): New.
9313         (_cpp_find_file): Use search_path_exhausted.
9314         (make_cpp_dir): Initialize construct to 0.
9315         * cpplib.h (missing_header_cb
9316         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9317         (cpp_callbacks): Add missing_header
9318         (cpp_dir): Add construct.
9319         * target-def.h: (TARGET_OPTF): New.
9320         * hooks.c (hook_void_int, hook_void_charptr): Add.
9321         * hooks.h (hook_void_int, hook_void_charptr): Add.
9322         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9323         $(MACHMODE_H) dependencies.
9324         * doc/invoke.texi (Darwin Options): Document -F.
9325         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9326         (TARGET_OPTF): Add.
9327         * fix-header.c (target_c_incpath): Add.
9328
9329         * config/darwin-c.c: Add c-incpath.h include.
9330         (using_frameworks, find_subframework_file,
9331         find_subframework_header, add_system_framework_path,
9332         frameworks_in_use, num_frameworks, max_frameworks,
9333         add_framework, find_framework, struct framework_header,
9334         framework_header_dirs, framework_construct_pathname,
9335         find_subframework_file, add_system_framework_path,
9336         add_framework_path, framework_defaults,
9337         darwin_register_frameworks, find_subframework_header): Add.
9338         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9339         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9340         (CPP_SPEC): Add __APPLE_CC__ support.
9341         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9342
9343 2004-03-04  Jan Hubicka  <jh@suse.cz>
9344
9345         * cselib.c (cselib_finish): Fix miss-application of my previous
9346         patch.
9347
9348 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9349
9350         * hooks.c (hook_tree_tree_identity): New.
9351         * hooks.h: Add a prototype for hook_tree_tree_identity.
9352         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9353         instead of MD_ASM_CLOBBERS.
9354         * system.h (MD_ASM_CLOBBERS): Poison.
9355         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9356         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9357         * target.h (gcc_target): Add md_asm_clobbers.
9358         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9359         (ix86_md_asm_clobbers): New.
9360         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9361         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9362         TARGET_MD_ASM_CLOBBERS.
9363
9364 2004-03-03  Stuart Hastings  <stuart@apple.com>
9365
9366         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
9367
9368 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9369
9370         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
9371
9372         * config/sparc/sparc.h (ASM_FLOAT): Delete.
9373         (ASM_DOUBLE): Likewise.
9374         (ASM_LONGDOUBLE): Likewise.
9375         * config/sparc/pbd.h (ASM_INT_OP): Delete.
9376
9377 2003-03-03  Richard Henderson  <rth@redhat.com>
9378
9379         PR opt/13862
9380         * cselib.c (cselib_record_sets): Don't record multiple sets in
9381         asm insns.
9382
9383 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
9384
9385         * common.opt: Add description of the new -fgcse-after-reload flag.
9386
9387         * flags.h (flag_gcse_after_reload): Declaration of global variable.
9388
9389         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
9390         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
9391         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9392         get_bb_avail_insn, hash_scan_set_after_reload,
9393         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
9394         gcse_after_reload, get_bb_avail_insn): New functions to implement
9395         gcse-after-reload.
9396         (gcse_after_reload_main): New function, the main entry point to
9397         gcse-after-reload.
9398
9399         * rtl.h (gcse_after_reload_main): Declaration of the new function.
9400
9401         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
9402
9403         * toplev.c (flag_gcse_after_reload): Initialization.
9404
9405         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
9406
9407         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9408         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
9409         the gcse after reload optimization.
9410
9411         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9412         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
9413         parameters.
9414
9415         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
9416
9417 2004-03-03  Nicolas Pitre <nico@cam.org>
9418
9419         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
9420         small negative values.
9421
9422 2004-03-03  Jan Hubicka  <jh@suse.cz>
9423
9424         * cselib.c (hash_table):  Remove GTY marker.
9425         (reg_values): Turn into array.
9426         (used_regs): Likewise.
9427         (n_used_regs): New static variable.
9428         (reg_values_old): Kill.
9429         (clear_table): Update uses of arrays.
9430         (cselib_lookup): Likewise.
9431         (cselib_record_set): Likewise.
9432         (cselib_init): Likewise.
9433         (cselib_finish): Likewise.
9434         (cselib_udpate_varray_sizes): Kill.
9435         * cselib.h (cselib_update_varray_sizes): Kill.
9436
9437 2004-03-03  Paul Brook  <paul@codesourcery.com>
9438
9439         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
9440
9441 2004-03-03  Jan Hubicka  <jh@suse.cz>
9442
9443         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
9444         Rename from ...; make statistics transparent.
9445         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
9446         (loc_descriptor): New structure.
9447         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
9448         add_statistics):
9449         New static function.
9450         (ggc_record_overhead, dump_statistics): New global function.
9451         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9452         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
9453         from ...; accept locations
9454         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9455         ggc_realloc, ggc_alloc_typed):  ... this one.
9456         from ...; accept locations
9457         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
9458         ggc_alloc_stat): Rename from ... ; pass locations
9459         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
9460         ... this one.
9461         (ggc_alloc_stat): Record overehead.
9462         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9463         ggc_realloc, ggc_alloc_typed):  Turn to macros
9464         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9465         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
9466         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
9467         * langhooks.h (lhd_make_node): Declare.
9468         (LANG_HOOKS_MAKE_TYPE): Default to new function,
9469         * langhooks.c (lhd_make_node): New.
9470         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
9471         locations.
9472         (rtx_alloc, swallow_copy_rtx): ... this one.
9473         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
9474         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
9475         * toplpev.c (finalize): Dump stats.
9476         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
9477         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9478         Rename from ... ; pass locators.
9479         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9480         build?,  build_decl): Declare.
9481         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
9482         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9483         Declare.
9484         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9485         build?,  build_decl): New macros.
9486         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
9487         * statistics.h: New file.
9488
9489 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9490             Richard Sandiford  <rsandifo@redhat.com>
9491
9492         * config/mips/mips.h (MASK_FIX_SB1): Bump.
9493         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
9494         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
9495         * config/mips/mips.c (mips_output_division): Fill the branch delay
9496         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
9497         TARGET_FIX_R4400.
9498         (mips_output_division): Adjust accordingly.
9499         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
9500         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
9501
9502 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
9503
9504         * alias.c (rtx_equal_for_memref_p): Use predicates
9505         to test rtx classes and new rtx class codes, possibly
9506         splitting conditionals that tested against '<' and 'o'.
9507         * caller-save.c (save_call_clobbered_regs): Likewise.
9508         * combine.c (contains_muldiv, find_split_point, subst,
9509         combine_simplify_rtx, simplify_if_then_else,
9510         simplify_set, simplify_logical, expand_compound_operation,
9511         make_compound_operation, if_then_else_cond, known_cond,
9512         apply_distributive_law, cached_nonzero_bits,
9513         cached_num_sign_bit_copies, simplify_shift_const,
9514         gen_binary, simplify_comparison, update_table_tick,
9515         record_value_for_reg, get_lsat_value_validate): Likewise.
9516         * cse.c (mention_regs, find_best_addr, find_comparison_args,
9517         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
9518         Likewise.
9519         * emit-rtl.c (copy_insn_1): Likewise.
9520         * expr.c (force_operand): Likewise.
9521         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
9522         * flow.c (notice_stack_pointer_modification_1,
9523         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
9524         and_reg_cond, elim_reg_cond): Likewise.
9525         * function.c (update_epilogue_consts): Likewise.
9526         * genattrtab.c (attr_rtx_1): Likewise.
9527         * genopinit.c (gen_insn): Likewise.
9528         * integrate.c (subst_constants): Likewise.
9529         * jump.c (reversed_comparison_code_parts,
9530         reversed_comparison_code, delete_related_insns,
9531         rtx_renumbered_equal_p): Likewise.
9532         * local-alloc.c (block_alloc): Likewise.
9533         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
9534         canonicalize_condition): Likewise.
9535         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
9536         Likewise.
9537         * optabs.c (add_equal_node, expand_binop): Likewise.
9538         * predict.c (estimate_probability): Likewise.
9539         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
9540         * recog.c (validate_replace_rtx_1, comparison_operator,
9541         offsettable_address_p, constrain_operands): Likewise.
9542         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
9543         Likewise.
9544         * regclass.c (scan_one_insn): Likewise.
9545         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
9546         * regrename.c (kill_autoinc_value): Likewise.
9547         * reload.c (find_reusable_reload, find_reloads,
9548         reg_overlap_mentioned_for_reload_p): Likewise.
9549         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
9550         * rtl.c (copy_rtx): Likewise.
9551         * rtl.h (CONSTANT_P, INSN_P): Likewise.
9552         * rtlanal.c (commutative_operand_precedence): Likewise.
9553         * sched-deps.c (conditions_mutex_p): Likewise.
9554         * sched-rgn.c (is_cfg_nonregular): Likewise.
9555         * simplify-rtx.c (simplify_gen_binary,
9556         simplify_gen_relational, simplify_replace_rtx,
9557         simplify_unary_operation, simplify_binary_operation,
9558         simplify_ternary_operation, simplify_rtx): Likewise.
9559         * unroll.c (reg_dead_after_loop): Likewise.
9560         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
9561         print_operand): Likewise.
9562         * config/arc/arc.c (proper_comparison_operator): Likewise.
9563         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
9564         Likewise.
9565         * config/avr/avr.c (_reg_unused_after): Likewise.
9566         * config/frv/frv.c (frv_ifcvt_modify_tests,
9567         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
9568         * config/i386/i386.c (ix86_comparison_operator,
9569         ix86_carry_flag_operator, fcmov_comparison_operator,
9570         arith_or_logical_operator, print_operand,
9571         ix86_expand_binary_operator, ix86_binary_operator_ok):
9572         Likewise.
9573         * config/i386/i386.md: Likewise.
9574         * config/ia64/ia64.c (not_postinc_memory_operand,
9575         ia64_print_operand, update_set_flags, errata_emit_nops):
9576         Likewise.
9577         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
9578         CONSTRAINT_OK_FOR_S): Likewise.
9579         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
9580         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
9581         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
9582         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
9583         Likewise.
9584         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
9585         eqne_comparison_operator, signed_comparison_operator):
9586         Likewise.
9587         * config/mips/mips.c (cmp_op, symbolic_expression_p):
9588         Likewise.
9589         * config/mmix/mmix (mmix_foldable_comparison_operator,
9590         mmix_comparison_operator): Likewise.
9591         * config/pa/pa.c (hppa_legitimize_address): Likewise.
9592         * config/rs6000/rs6000.c (stmw_operation,
9593         branch_comparison_operator, trap_comparison_operator,
9594         ccr_bit): Likewise.
9595         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
9596         * config/s390/s390.c (s390_alc_comparison,
9597         s390_slb_comparison):L Likewise.
9598         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
9599         Likewise.
9600         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
9601         noov_compare_op, noov_compare64_op, v9_regcmp_op,
9602         emit_hard_tfmode_operation, reg_unused_after)
9603         * doc/md.texi, doc/rtl.texi: Likewise.
9604
9605         * ra-debug.c: Add 2004 to list of copyright years.
9606         * unroll.c: Likewise.
9607
9608         * combine.c (simplify_logical): Remove dummy test,
9609         (apply_distributive_law): Fix typo in comment.
9610         GET_CODE (x) == AND so x is a commutative binary op.
9611         * jump.c (delete_related_insns): simplify loop
9612         condition, move testing of RTX codes inside the loop.
9613         (rtx_renumbered_equal_p): do not use RTX_CODE.
9614         * rtl.c (rtx_class): Declare as enum rtx_class.
9615         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
9616         Move to RTX_COMM_COMPARE class.
9617         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
9618         Move to RTX_CONST_OBJ class.
9619         * rtl.h (enum rtx_class): New declaration,
9620         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
9621         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
9622         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
9623         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
9624         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
9625         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
9626         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
9627         OBJECT_P): New macros.
9628         * config/sparc/sparc.c (noov_compare_op): Remove register
9629         from parameter.
9630
9631 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9632
9633         * target.h: Remove texi jargons in comments.
9634
9635 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9636
9637         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
9638         threshold to 0x4f.
9639
9640         Revert:
9641         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9642         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
9643         as well.
9644         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
9645         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
9646
9647 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9648
9649         * doc/md.texi (cbranchmode4): New.
9650
9651 2004-03-02  Eric Christopher  <echristo@redhat.com>
9652
9653         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
9654         fix_trunc.
9655         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
9656         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
9657         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
9658         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
9659
9660 2004-03-02  Richard Henderson  <rth@redhat.com>
9661
9662         PR middle-end/11767
9663         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
9664         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
9665         before the compare, if flag_non_call_exceptions.
9666
9667 2004-03-02  Richard Henderson  <rth@redhat.com>
9668
9669         PR middle-end/14327
9670         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
9671         emitting the label, not after.
9672
9673 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9674
9675         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
9676         (m68hc11_mov_addr_mode): Likewise.
9677         (m68hc11_override_options): Initialize them based on target.
9678         (register_indirect_p): Allow a MEM for indirect addressing modes and
9679         use flags to control what is allowed.
9680         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
9681         supported addressing modes.
9682         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
9683         (go_if_legitimate_address_internal): Likewise.
9684         (m68hc11_indirect_p): Likewise and check the mode.
9685         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
9686
9687 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9688
9689         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
9690         (expand_builtin_setjmp_setup): Use
9691         targetm.builtin_setjmp_frame_value instead of
9692         BUILTIN_SETJMP_FRAME_VALUE.
9693         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
9694         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
9695         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9696         * target.h (gcc_target): Add builtin_setjmp_frame_value.
9697         * targhooks.c (default_builtin_setjmp_frame_value): New.
9698         * targhooks.h: Add a prototype for
9699         default_builtin_setjmp_frame_value.
9700         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
9701         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9702
9703 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9704
9705         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
9706         sequences of moves.
9707         (add peepholes): New peepholes to optimize sequences adding small
9708         constants.
9709         (bset peepholes): New peepholes to transform an OR in a bset form
9710         (bclr peepholes): Likewise for bclr form.
9711         (cmp peepholes): New peepholes to avoid register copies when comparing.
9712
9713 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9714
9715         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
9716         to separate push from moves.
9717         ("*pushdf_internal"): Likewise.
9718         ("*pushsf_internal"): Likewise.
9719         ("*pushsi_internal"): Likewise.
9720         ("movdi_internal"): Use define_insn_and_split; non push operand.
9721         ("movdf_internal"): Likewise.
9722         ("movsf_internal"): Likewise.
9723         ("movsi_internal"): Likewise.
9724         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
9725         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
9726         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
9727
9728 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9729
9730         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
9731         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
9732         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
9733         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
9734         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
9735         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
9736         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
9737         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
9738         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
9739         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
9740         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
9741
9742 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9743
9744         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
9745         (SOFT_XY_REGNUM): Define.
9746         (cmp split): Use the above instead of hard coded numbers.
9747         (8-bit op split): No need to check the mode; allow Q_REG.
9748         (ashift split): Adjust the first operand if it uses the SP and we
9749         are pushing the shifted value.
9750         (plus shift split): Fix when a source is in register D+X.
9751         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
9752
9753 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9754
9755         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
9756         comparing with Z register.
9757
9758 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9759
9760         * cfgloop.h (struct loop_desc): Removed.
9761         (struct loop): Fields simple, desc and has_desc removed.
9762         (simple_loop_p, count_loop_iterations): Declaration removed.
9763         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
9764         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
9765         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
9766         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
9767         simple_loop_exit_p, variable_initial_value, variable_initial_values,
9768         simple_condition_p, simple_increment, count_strange_loop_iterations,
9769         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
9770         Removed.
9771         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
9772
9773 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9774
9775         * genattrtab.c: Don't handle MATCH_INSN.
9776         * genrecog.c: Likewise.
9777         * gensupport.c: Likewise.
9778         * rtl.def (match_insn): Remove.
9779         * doc/md.texi (match_insn, match_insn2): Remove.
9780
9781 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
9782
9783         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
9784         macro results in memory allocation.
9785
9786 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
9787
9788         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
9789         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
9790         %(fbsd_dynamic_linker),
9791         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
9792         config/i386/freebsd.h
9793         * config/arm/freebsd.h: Ditto.
9794         * config/i386/freebsd.h: Ditto.
9795         * config/i386/freebsd64.h: Ditto.
9796         * config/ia64/freebsd.h: Ditto.
9797         * config/rs6000/sysv4.h: Ditto.
9798         * config/sparc/freebsd.h: Ditto.
9799
9800 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
9801
9802         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
9803
9804 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9805
9806         * rtl.def (define_combine): Remove.
9807
9808 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9809
9810         * config/h8300/h8300.md: Tweak formatting.
9811
9812 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9813
9814         * config/h8300/h8300.md (*cmphi_h8300): Rename to
9815         *cmphi_h8300_znvc.
9816         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
9817
9818 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
9819
9820         PR bootstrap/14356
9821         * gcc.c (process_command): Remove const-qualification from argv.
9822         (main): Likewise.
9823
9824 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9825
9826         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
9827         pushqi1_h8300hs_advanced.  Adjust its caller.
9828         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
9829         Adjust its caller.
9830
9831 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
9832
9833         * Makefile.in (install-libgcc, install-multilib): Pass
9834         mkinstalldirs var to libgcc.mk.
9835
9836 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9837
9838         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
9839         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
9840
9841 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9842
9843         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
9844         * config/h8300/h8300.md: Split several peephole2's, each into
9845         two.
9846
9847 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9848
9849         * dominance.c (recount_dominator): Handle postdominators.
9850
9851 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9852
9853         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
9854         (NUM_SYMBOL_TYPES): Likewise.
9855         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
9856         (mips_unspec_address): Declare.
9857         (mips_gotoff_page, mips_gotoff_global): Delete.
9858         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
9859         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
9860         (mips_symbolic_constant_p, mips_symbolic_address_p)
9861         (mips_symbol_insns): Handle new symbol types.
9862         (general_symbolic_operand): New predicate.
9863         (mips_unspec_address): Make extern.
9864         (mips_gotoff_page, mips_gotoff_global): Delete.
9865         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
9866         Handle new symbol types.
9867         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
9868         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
9869         mips_unspec_address directly.
9870         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
9871         the documentation of -mexplicit-relocs.
9872
9873 2004-03-01  Jeff Law  <law@redhat.com>
9874
9875         * fold-const.c (fold): An equality comparison of a non-weak object
9876         against zero has a known result.  Similarly an equality comparison
9877         of the address of two non-weak, unaliased symbols has a known result.
9878
9879         * ggc-page.c (struct page_entry): New field PREV.
9880         (ggc_alloc): Update PREV field appropriately.
9881         (sweep_pages): Likewise.
9882         (ggc_free): Likewise.  Use PREV field rather than loop to
9883         improve ggc_free performance.
9884
9885 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9886
9887         * config/mips/mips.c (mips_output_division): Use the division
9888         instruction to fill the delay slot of a zero check.
9889         (mips_idiv_insns): Adjust accordingly.
9890
9891 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
9892
9893         * config.gcc: Create a default tmake_file for linux, and use
9894         it in all but two linux clauses.  Comment those two.
9895
9896 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
9897
9898         * combine.c (try_combine):  Do not refer to is_replaced.
9899         (gen_lowpart_for_combine):  Perverse subregs now have a
9900         more politically correct name.
9901         * cse.c (cse_insn): Likewise.
9902         * jump.c: Fix bogus reference to delete_insn.
9903
9904 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
9905
9906         PR debug/14328
9907         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
9908         constants as signed values.
9909
9910         PR middle-end/13448
9911         * c-tree.h (readonly_warning): Rename to ...
9912         (readonly_error): ... this.
9913         * c-typeck.c (build_unary_op): Adjust accordingly.
9914         (readonly_warning): Rename to ...
9915         (readonly_error): ... this and issue errors, not warnings.
9916         (build_modify_expr): Call readonly_error, not readonly_warning.
9917         (c_expand_asm_operands): Likewise.
9918         * tree-inline.c (optimize_inline_calls): Do not inline functions
9919         after errors have occurred.
9920
9921 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
9922
9923         * configure.ac: Rearrange some threading code for clarity;
9924         add section comment.
9925         * configure: Regenerate.
9926
9927 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9928
9929         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
9930         typos.
9931         * doc/cppopts.texi: Fix a typo.
9932
9933 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9934
9935         * config/i386/i386.md: Fix formatting.
9936
9937 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
9938
9939         * configure.ac: Add some comments delineating sections of code.
9940
9941         * doc/install.texi: Note that libada uses autoconf 2.57 also.
9942
9943         * doc/install.texi: Fix idiot typo in previous commit.
9944
9945         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
9946
9947 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9948
9949         * config/h8300/h8300.md: Add comments about peephole2's.
9950
9951 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9952
9953         * config/h8300/h8300.md: Tweak operand numbers of some
9954         peephole2's.
9955
9956 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9957
9958         * config/h8300/h8300.md: Tweak comments about peephole2's.
9959
9960 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
9961
9962         PR middle-end/14203
9963         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
9964         instead of testing whether DECL_RTL is not NULL.
9965
9966 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9967
9968         * config/sh/sh.c: Fix formatting.
9969
9970 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9971
9972         * config/sh/sh.c: Convert to ISO-C.
9973
9974 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
9975
9976         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
9977         my previous patch.
9978
9979         * config/darwin.h (machopic_finish): Output stub even if the
9980         symbol is already defined.
9981
9982 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9983
9984         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
9985
9986 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9987
9988         * genattr.c (main): Don't define
9989         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
9990         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
9991         (DFA_PIPELINE_INTERFACE): Likewise.
9992         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
9993         (DFA_PIPELINE_INTERFACE): Likewise.
9994
9995 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
9996
9997         * config/mips/mips.md (tstsi, tstdi): Delete.
9998
9999 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10000
10001         * config/mips/mips.c (override_options): Remove an obsolete
10002         duplicate definition of the "e" constraint.
10003         * config/mips/mips.h: Update a comment accordingly.
10004
10005 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10006
10007         * config/mips/mips.md: Complete the unfinished R4000
10008         multiply/shift errata workaround.  Improve documentation.
10009         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10010         has a hilo hazard.
10011         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10012         (muldi3, muldi3_internal): Likewise.
10013         (muldi3_internal2): Remove, replacing with...
10014         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10015         (mulsidi3): Take the errata into account.
10016         (mulsidi3_32bit): Remove, replacing with...
10017         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10018         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10019         (umulsidi3): Take the errata into account.
10020         (umulsidi3_32bit): Remove, replacing with..
10021         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10022         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10023         TARGET_FIX_R4000.
10024         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10025         (smuldi3_highpart, umuldi3_highpart): Likewise.
10026         * doc/invoke.texi: Document the errata workaround.
10027
10028 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10029
10030         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10031         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10032         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10033         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10034         * config/mips/mips.c (mips_idiv_insns): New function.
10035         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10036         (mips_output_division): Add a workaround for the R4000 divide/shift
10037         errata.
10038         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10039         the length of an "idiv" instruction.
10040         * doc/invoke.texi: Document the new switches.
10041
10042 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10043
10044         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10045         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10046
10047 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10048
10049         PR optimization/14229
10050         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10051
10052 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10053
10054         * fold-const.c (fold): Strip NOPs that change the signedness
10055         for RSHIFT too.  Expand comment.
10056
10057 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
10058
10059         PR optimization/7871
10060         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10061         from or to call insns.
10062
10063 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10064
10065         PR optimization/7871
10066         * flow.c (propagate_one_insn): Interpret calls as setting global
10067         registers, not merely clobbering them.
10068
10069 2004-02-27  Dale Johannesen  <dalej@apple.com>
10070
10071         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
10072         config/darwin-protos.h:  Ditto.
10073         config/darwin.h:  Remove call to it.
10074         * combine.c (distribute_notes): Do not place a REG_DEAD note
10075         when value is both set and used.
10076
10077 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10078
10079         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10080         as well.
10081         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10082         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10083
10084 2004-02-27  Andrew Pinski  <apinski@apple.com>
10085
10086         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10087         Speedup common case of the type values being in the same order.
10088
10089 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
10090
10091         * config/ia64/ia64.h (no-inline-float-divide): New option.
10092         * config/ia64/ia64.h (no-inline-int-divide): New option.
10093         * config/ia64/ia64.h (no-inline-sqrt): New option.
10094         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10095         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10096         * config/ia64/ia64.c (ia64_override_options): Modify error
10097         checking for inlined division/sqrt.
10098
10099 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10100
10101         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10102         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10103         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10104         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10105         copyright.
10106
10107 2004-02-27  Paul Brook  <paul@codesourcery.com>
10108
10109         * function.c (assign_parms): Don't count pretend args for alignment.
10110
10111 2004-02-27  Richard Henderson  <rth@redhat.com>
10112
10113         * passes.c: New file.
10114         * Makefile.in (OBJS-common): Add it.
10115         * diagnostic.c (rtl_dump_and_exit): Move decl ...
10116         * flags.h (rtl_dump_and_exit): ... here.
10117         * output.h (size_directive_output, last_assemble_variable_decl):
10118         Move from toplev.c.
10119         * rtl.h (reg_alloc): Move from toplev.c.
10120         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10121         struct dump_file_info, enum dump_file_index, dump_file_tbl,
10122         open_dump_file, close_dump_file, rest_of_decl_compilation,
10123         rest_of_type_compilation, rest_of_handle_final,
10124         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10125         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10126         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10127         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10128         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10129         rest_of_handle_tracer, rest_of_handle_if_conversion,
10130         rest_of_handle_if_after_combine, rest_of_handle_web,
10131         rest_of_handle_branch_prob,
10132         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10133         rest_of_handle_addressof, rest_of_handle_sibling_calls,
10134         rest_of_handle_jump_bypass, rest_of_handle_inlining,
10135         rest_of_handle_null_pointer, rest_of_handle_combine,
10136         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10137         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10138         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10139         (decode_d_option): Use enable_rtl_dump_file.
10140         (compile_file, finalize, do_compile): Move profile+combine+graph
10141         cleanup to finish_optimization_passes.
10142         * toplev.h (init_optimization_passes, finish_optimization_passes,
10143         enable_rtl_dump_file): Declare.
10144
10145 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
10146             Roger Sayle  <roger@eyesopen.com>
10147
10148         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
10149         operands to build a tree with swapped operands.
10150         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10151         'unsignedp' predicate to specify the signedness.
10152
10153 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10154
10155         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10156         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10157         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10158         comment typos and formatting.  Follow spelling conventions.
10159
10160 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
10161
10162         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10163         fix_truncsfsi2.
10164
10165         * config/rs6000/spe.md: Delete spe_efsctuiz.
10166         Add spe_fixuns_truncsfsi2.
10167         Add spe_fix_truncsfsi2.
10168
10169 2004-02-26  Eric Christopher  <echristo@redhat.com>
10170
10171         * c-lex.c (c_lex_string_translate): New variable.
10172         (lex_string): Use to determine string translation.
10173         * c-pragma.h: Prototype.
10174         * c-parse.in (start_string_translation): New. Set above.
10175         (stop_string_translation): Ditto.
10176         (attribute, attribute_list, asm_def, asm_stmt,
10177         asm_operand): Use above functions.
10178         * cp/parser.c (cp_parser_declaration): Translate strings
10179         unless token is RID_EXTERN. Set c_lex_string_translate
10180         for recursive use.
10181         (cp_parser_asm_definition): Only translate argument strings
10182         to asms.
10183         (cp_parser_asm_operand_list): Ditto.
10184         (cp_parser_attribute_list): Do not translate attribute strings.
10185
10186 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10187
10188         * stmt.c (expand_start_case_dummy): Remove.
10189         * tree.h: Remove the corresponding prototype.
10190
10191 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10192
10193         * builtins.c (apply_args_register_offset): Remove.
10194         * tree.h: Remove the corresponding prototype.
10195
10196 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10197
10198         * stor-layout.c (is_pending_size): Remove.
10199         * tree.h: Remove the corresponding prototype.
10200
10201 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10202
10203         * recog.c (validate_replace_src): Remove.
10204         * recog.h: Remove the corresponding prototype.
10205
10206 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10207
10208         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10209         MAYBE_REG_PARM_STACK_SPACE.
10210         * function.c: Likewise.
10211         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10212         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10213         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10214         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10215
10216 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10217
10218         * c-decl.c (c_expand_deferred_function): Remove.
10219         * c-tree.h: Remove the corresponding prototype.
10220
10221 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10222
10223         * postreload.c (reload_cse_move2add): Generate just a PLUS
10224         instead of an entire SET.
10225
10226 2004-02-26  Jan Hubicka  <jh@suse.cz>
10227
10228         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10229         /pentium4m.
10230         * i386.c (override_options): Add support for new CPUs.
10231         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10232         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10233         constants.
10234         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10235
10236 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
10237
10238         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10239
10240 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10241
10242         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10243         (sparc_emit_fixunsdi): New prototype.
10244         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10245         (sparc_emit_fixunsdi): New function.
10246         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10247         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
10248         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
10249         to sparc_emit_floatunsdi.
10250         (fixuns_truncsfdi2): New expander.
10251         (fixuns_truncdfdi2): Likewise.
10252
10253 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
10254
10255         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10256         unless HAVE_cc0.
10257
10258 2004-02-25  Richard Henderson  <rth@redhat.com>
10259
10260         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10261         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10262         use (op0-op1) == 0 if op0 is a pointer.
10263         * config/alpha/alpha.md (cmpdi): Use some_operand.
10264         (three comparison combine splits): Remove.
10265
10266 2004-02-25  Richard Henderson  <rth@redhat.com>
10267
10268         PR c/12794
10269         * c-common.c (handle_alias_attribute): Reject the attribute if
10270         current_function_decl is set.
10271
10272 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10273
10274         * config.gcc: Add comment describing extra_gcc_objs.
10275         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10276         * configure.ac (extra_gcc_objs): New substitution variable.
10277         (host_extra_gcc_objs): Don't substitute.
10278         * configure: Regenerate.
10279         * Makefile.in: Use extra_gcc_objs.
10280
10281 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10282
10283         * doc/contrib.texi: Add an entry for myself.
10284
10285 2004-02-25  Jan Hubicka  <jh@suse.cz>
10286
10287         * basic-block.h (make_eh_edge, break_superblocks): Declare.
10288         * cfgbuild.c (make_eh_edge):  Make global.
10289         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10290         * except.c (build_post_landing_pads, connect_post_landing_pads,
10291         dw2_build_landing_pads, sjlj_emit_function_enter,
10292         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10293         sjlj_build_landing_pads): Update CFG.
10294         (emit_to_new_bb_before): New function.
10295         (finish_eh_generation): Do not rebuild the CFG.
10296
10297 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10298
10299         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10300         target_cpu_default defines.
10301         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10302         * pa.h (TARGET_DEFAULT): Likewise.
10303
10304 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10305
10306         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10307         comparisons with regard to signedness.
10308
10309 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10310
10311         * arm.c (thumb_legitimize_address): New function.
10312         * arm-protos.h: Prototype it.
10313         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10314         (LEGITIMIZE_ADDRESS): Use it.
10315
10316 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
10317
10318         * reload1.c (reload): Only spill eliminable register with multiple
10319         adjacent elimination alternatives if all alternatives fail.
10320
10321 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10322
10323         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10324         is -4095...+4095 inclusive.
10325
10326 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
10327
10328         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10329         the bootstrap failure with Sun CC 5.4 and 5.5.
10330
10331 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10332
10333         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10334         which modifies NEWREG.
10335         (cse_condition_code_reg): Update the mode of CC_REG in
10336         CC_SRC_INSN on our own.
10337
10338 2004-02-24  Michael Matz  <matz@suse.de>
10339
10340         * config/i386/i386.c (ix86_comp_type_attributes): Check for
10341         regparm attributes.
10342
10343 2004-02-24  Richard Henderson  <rth@redhat.com>
10344
10345         * toplev.c (dump_file_tbl): Rename from dump_file.
10346         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
10347         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
10348         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10349         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10350         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10351         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10352         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10353         s/rtl_dump_file/dump_file/g.
10354
10355 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
10356
10357         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10358         (spe_fixuns_truncsfsi2): Delete.
10359
10360         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10361         (fixuns_truncsfsi2): Delete.
10362
10363 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
10364
10365         PR/14240
10366         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
10367
10368 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
10369
10370         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
10371
10372 2004-02-24  Jason Merrill  <jason@redhat.com>
10373
10374         * tree.c (check_qualified_type): New fn.
10375         (get_qualified_type): Use it.  If type already has the desired
10376         quals, just return it.
10377         * tree.h: Declare it.
10378
10379 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
10380
10381         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
10382         TARGET_SCHED_FINISH_GLOBAL): New macros.
10383
10384         * target.h (md_init_global, md_finish_global): Function
10385         declarations corresponding to new target macros.
10386
10387         * haifa-sched.c (sched_init, sched_finish): Allow target to
10388         call the new schedular hooks.
10389
10390         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
10391         call to update_life_info.
10392
10393         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
10394         flag_schedule_insns for SH4.
10395
10396         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
10397         find_set_regmode_weight, find_insn_regmode_weight,
10398         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
10399         sh_variable_issue, high_pressure, ready_reorder,
10400         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
10401         functions used to throttle the insn movement in first
10402         scheduling pass for SH.
10403
10404         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
10405         TARGET_SCHED_FINISH_GLOBAL.
10406
10407 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
10408
10409         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
10410         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
10411         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
10412         symbols in sections named by the user.
10413         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
10414         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
10415         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
10416         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
10417         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
10418         the above.
10419         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
10420         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
10421         one more pseudo to further improve code generation.
10422         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
10423         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
10424         inside UNSPEC.
10425         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
10426         * config/frv/frv.c (frv_legitimate_address_p): Added
10427         allow_double_reg_p argument.  Adjust all callers.  Use it to
10428         decide whether to enable double-register indirect addressing.
10429         (frv_funcdesc_alias_set): Remove.
10430         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
10431         register.  Emit movdi_ldd.
10432         (ldd_address_operand): New.
10433         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
10434         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10435         (PREDICATE_CODES): Add ldd_address_operand.
10436         * config/frv/frv.md (movdi_ldd): New.
10437         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
10438         intermediate computations if possible.
10439         (symGOTOFF2reg_i): Fix harmless typo.
10440         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
10441         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
10442         relocated p_vaddr to vaddr type.
10443         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
10444         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
10445         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
10446         MEM, or use a funcdesc alias set.  Use regular move instead of
10447         ldd.
10448         (dbl_memory_one_insn_operand): Recognize function descriptors by
10449         type or by alias set, and don't split them.
10450         * config/frv/frv.md (call, call_value): Never use call_internal
10451         for fdpic.
10452         (call_internal, call_value_internal): Never match for FDPIC.
10453         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
10454         call_value_fdpicsi): Require FDPIC.
10455         (ldd): Removed.
10456         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
10457         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
10458         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
10459         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
10460         FDPIC.  Compute data base address.
10461         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
10462         before the other self-specs are processed.
10463         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
10464         Build with -fPIC.
10465         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
10466         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
10467         inhibit_libc is defined.
10468         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
10469         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
10470         __FRV_FDPIC__.
10471         (__RELOC_POINTER): Define.
10472         (_Unwind_IteratePhdrCallback): Use it.
10473         * config/frv/frv.h (Twrite): Define.
10474         (TRANSFER_FROM_TRAMPOLINE): Use it.
10475         * config/frv/linux.h (INVOKE__main): Undefine.
10476         (Twrite): Override.
10477         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
10478         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
10479         (-mlibrary-pic): Emphasize that this option generates EABI code.
10480         (-mcpu): Add fr550.
10481         (-mpack): Remove.
10482         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
10483         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
10484         and CONSTs in FDPIC mode.
10485         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
10486         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10487         * config/frv/frv.c (move_source_operand): Don't accept symbolic
10488         constants.
10489         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
10490         rather than 'i' constraint for the 2-instruction alternative.
10491         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
10492         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10493         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
10494         EXTRA_CONSTRAINT_FOR_Y.
10495         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
10496         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
10497         (addsi3): Change 'Y' constraint to 'Q'.
10498         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
10499         * reload.c (CONST_POOL_OK_P): New macro.
10500         (find_reloads): Use it to decide whether a constant can be forced
10501         into memory.
10502         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
10503         constant satisfies got12_operand.
10504         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
10505         (frv_legitimate_address_p): Check for valid unspec offsets using
10506         got12_operand rather than frv_legitimate_fdpic_operand_p.
10507         (frv_legitimate_fdpic_operand_p): Delete.
10508         (frv_emit_movsi): Abort if we try to use the FDPIC register during
10509         or after reload.
10510         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
10511         TARGET_FDPIC.
10512         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
10513         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
10514         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
10515         (frv_fdpic_fptr_operand): Don't declare here.
10516         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
10517         rather than fdpic_got12_operand.
10518         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
10519         got12_operand and const_unspec_operand.
10520         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
10521         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
10522         (symbolic_operand): Remove.
10523         (const_unspec_operand): New predicate.
10524         * config/frv/frv.md (*movsi_got): Use got12_operand.
10525         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
10526         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
10527         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
10528         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
10529         * config/frv/frv.c (frv_unspec): New structure.
10530         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
10531         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
10532         validate CONST indices.  Use frv_output_const_unspec to print them.
10533         (frv_print_operand): Update call to unspec_got_name.  Use
10534         frv_output_const_unspec to print constant unspecs.
10535         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
10536         Reject UNSPECs otherwise.
10537         (unspec_got_name): Take the relocation number as argument, not an
10538         rtx containing it.
10539         (frv_output_addr_const_extra): Remove, replacing with...
10540         (frv_output_const_unspec): ...this new function.
10541         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
10542         (gpr_or_int12_operand): Use fdpic_got12_operand.
10543         (dbl_memory_one_insn_operand): Likewise.
10544         (fdpic_got12_operand): Use frv_const_unspec_p.
10545         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
10546         are already legitimate.  Use frv_small_data_reloc_p when deciding
10547         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
10548         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
10549         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
10550         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
10551         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10552         label, for real this time.
10553         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
10554         representation of visibility.
10555         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
10556         such.
10557         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
10558         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
10559         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
10560         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
10561         it was explicitly disabled.
10562         (frv_stack_info): There is no need to save the link register in every
10563         frame unless TARGET_LINKED_FP is true.
10564         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
10565         frame pointer if the stack pointer might change value.
10566         (frv_return_addr_rtx): Check and process "count" argument.
10567         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
10568         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
10569         (frv_find_base_term): Declare.
10570         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
10571         (FIND_BASE_TERM): Define.
10572         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
10573         small_data_register_operand, small_data_symbolic_operand.  Add
10574         symbolic_operand.
10575         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
10576         (frv_print_operand_memory_reference, output_move_single): Remove
10577         special handling for unlegitimized sdata addresses.
10578         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
10579         and symbolic addresses.
10580         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
10581         (frv_find_base_term): New function.
10582         (int_2word_operand): Check specifically for symbolic address constants.
10583         (pic_register_operand, pic_symbolic_operand): Delete.
10584         (small_data_register_operand, small_data_symbolic_operand): Delete.
10585         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
10586         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
10587         (move_source_operand): Only accept CONSTs if they're a two-insn
10588         symbolic constant.
10589         (fdpic_got12_operand): Don't require TARGET_FDPIC.
10590         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
10591         using gen_symGOTOFF2reg*.
10592         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
10593         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
10594         themselves a cost of 3 insns.
10595         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
10596         Change predicate to symbolic_operand.
10597         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
10598         (*movsi_lda_sdata): Delete.
10599         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
10600         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
10601         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
10602         frv-*-*linux*.
10603         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10604         label.
10605         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
10606         -multilib-library-pic.
10607         (LINK_SPEC): Add -z text for -mfdpic.
10608         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
10609         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
10610         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
10611         Override.
10612         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
10613         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
10614         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
10615         crtstuff-generated files.
10616         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
10617         * config.gcc: Add frv-*-*linux*.
10618         * config/frv/linux.h, config/frv/t-linux: New.
10619         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
10620         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
10621         when -mfdpic even if a linker script is explicitly listed.
10622         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10623         * config/frv/frv.c (frv_override_options): Clear asm_out
10624         unaligned_op for SImode on FDPIC.
10625         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
10626         argument passed to decl_readonly_section.
10627         (frv_assemble_integer): Revert 2003-09-30's change, but make the
10628         whole block run with FDPIC even with -fno-PIC.
10629         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10630         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
10631         symbol or label plus offset to memory.
10632         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
10633         GOTOFF and GPREL for LABEL_REF.
10634         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
10635         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
10636         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
10637         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
10638         * doc/invoke.texi: Document them.
10639         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
10640         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
10641         (frv_splittable_got_operand): Removed.
10642         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
10643         LO_SUM.  Add comments.
10644         (frv_override_options): Moved enabling of FDPIC to
10645         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
10646         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
10647         (frv_legitimize_fdpic_address): Don't duplicate logic in
10648         frv_emit_movsi.
10649         (frv_gen_GPsym2reg): New.
10650         (unspec_got_name): Added gprel.
10651         (frv_expand_fdpic_call): Add support for inlining PLTs.
10652         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
10653         (gpr_or_int12_operand): Added GPREL12.
10654         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
10655         (small_data_symbolic_operand): Fail if FDPIC.
10656         (fdpic_splittable_got_operand): Removed.
10657         (fdpic_got12_operand): Added GPREL12.
10658         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
10659         when appropriate.  Fix sdata GOTOFF.
10660         (frv_legitimate_constant_p): Require legitimate PIC operand for
10661         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
10662         (frv_assemble_integer): Move FDPIC funcdesc handling out of
10663         flag_pic case.
10664         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
10665         frv_assemble_integer fails.
10666         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
10667         (SUBTARGET_DRIVER_SELF_SPECS): New.
10668         (ASM_SPEC): Don't pass -mno-fdpic.
10669         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
10670         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
10671         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
10672         -multilib-library-pic.
10673         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
10674         condexec_si_media_operator, condexec_sf_add_operator and
10675         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
10676         and condexec_sf_unary_operator.
10677         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
10678         New.
10679         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
10680         movsi_internal.  Give them internal names.  movsi_got has type
10681         int.
10682         (fdpic got splitters): Remove.
10683         (symGPREL2reg, symGPREL2reg_hilo): New.
10684         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
10685         to -mlibrary-pic.  Map -multilib-library-pic to it.
10686         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
10687         Document.
10688         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
10689         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
10690         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
10691         (frv_cannot_force_const_mem): New function.
10692         (const_small_data_p, plus_small_data_p): Update comments on sdata
10693         on FDPIC.
10694         (frv_override_options): Set flag_pie for FDPIC too.
10695         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
10696         call-saved registers on FDPIC.
10697         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
10698         don't force LR to be preserved.
10699         (frv_expand_prologue): Likewise.
10700         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
10701         (frv_frame_pointer_required): Don't force it just because the
10702         FDPIC register is used.
10703         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
10704         operand only if !condexec_p.
10705         (frv_legitimize_address): Return the FDPIC-legitimized address.
10706         Don't match small data here on FDPIC.
10707         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
10708         symbols.  Use TRUE/FALSE instead of 1/0.
10709         (frv_local_funcdesc_p): New.
10710         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
10711         immediates when possible.
10712         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
10713         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
10714         an UNSPEC_GOT.
10715         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
10716         12-bit immediates when possible.
10717         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
10718         are not legitimate pic operands.
10719         (frv_in_small_data_p): Re-enable for FDPIC.
10720         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
10721         (FRV_GLOBAL_P): Removed.
10722         * config/frv/frv.md: Add modes to CONSTs.
10723         (movsi_got): New.
10724         (movsi_lo_sum_got): Use separate matches instead of match_dup.
10725         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
10726         (fdpic splittable operations): Match on flag_pic != 1.
10727         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
10728         * config/frv/frv.c (frv_asm_out_constructor,
10729         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
10730         bytes, not bits.
10731         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
10732         * config/frv/frv.c (frv_assemble_integer): Reject complex
10733         expressions referencing function SYMBOL_REFs.
10734         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
10735         (move_source_operand): Reject CONSTs that reference function
10736         SYMBOL_REFs on FDPIC.
10737         (frv_emit_movsi): If we get such a CONST, break it up.
10738         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
10739         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
10740         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
10741         MEM.
10742         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
10743         (frv_trampoline_size): Increase for FDPIC.
10744         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
10745         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
10746         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
10747         Disable use of GOTOFF for now.
10748         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
10749         Disable use of small data in FDPIC for now.
10750         (frv_asm_output_mi_thunk): Implement for FDPIC.
10751         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
10752         * config/frv/frv.c (frv_asm_out_constructor): Use
10753         frv_assemble_integer for FDPIC pointers.
10754         (frv_asm_out_destructor): Likewise.
10755         * config/frv/frv.md (ldd): Fix order of operands.  Use
10756         address_operand for input.
10757         2003-09-18  DJ Delorie  <dj@redhat.com>
10758         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
10759         (unspec_got_name): Correct typo.
10760         (frv_emit_movsi): Pre-expand splittable GOTs.
10761         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
10762         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
10763         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
10764         * config/frv/t-frv: Add -mfdpic multilibs.
10765         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
10766         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
10767         * config/frv/frv.c (frv_override_options): -mfdpic assumes
10768         flag_pic, default to 32-bit pics, require DWORD ops.
10769         (frv_override_options): Add W and Z constraints.
10770         (frv_expand_prologue): No pic prologue for -mfdpic.
10771         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
10772         (frv_print_operand_memory_reference): Handle GOT constants.
10773         (frv_legitimate_address_p): Allow GOT constants.
10774         (frv_legitimize_address): Handle GOT addresses too.
10775         (frv_legitimate_fdpic_operand_p): New.
10776         (frv_legitimize_fdpic_address): New.
10777         (unspec_got_name): New.
10778         (frv_output_addr_const_extra): New.
10779         (frv_expand_fdpic_call): New.
10780         (frv_fdpic_fptr_operand): New.
10781         (gpr_or_int12_operand): Handle GOT operands.
10782         (int_2word_operand): Handle GOT operands.
10783         (fdpic_operand): New.
10784         (fdpic_splittable_got_operand): New.
10785         (fdpic_got12_operand): New.
10786         (frv_emit_movsi): Handle GOT operands.
10787         (frv_assemble_integer): -mfdpic doesn't use rofixups.
10788         (frv_print_operand): Support 'g' code for GOT operands.
10789         * config/frv/frv-protos.h: Add prototypes as needed.
10790         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
10791         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
10792         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
10793         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
10794         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
10795         R_FRV_GOTOFFLO): New.
10796         (movsi_high_got, movsi_lo_sum_got): New.
10797         (*movsi_pic): Don't use this splitter for -mfdpic.
10798         (addsi3): Allow GOT references also.
10799         (call, call_value): Handle -mfdpic separately.
10800         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
10801         call_value_fdpicsi): New.
10802         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
10803         symGOTOFF2reg_i): New.
10804         * config/frv/frv.h (MASK_FDPIC): New.
10805         (TARGET_FDPIC): New.
10806         (TARGET_SWITCHES): Add -mfdpic.
10807         (FDPIC_FPTR_REGNO): New.
10808         (FDPIC_REGNO): New.
10809         (OUR_FDPIC_REG): New.
10810         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
10811         FDPIC_CALL_REGS.
10812         (REG_CLASS_NAMES): Likewise.
10813         (REG_CLASS_CONTENTS): Likewise.
10814         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
10815         (EXTRA_CONSTRAINT): Add it here.
10816         (FRV_GLOBAL_P): New.
10817         (OUTPUT_ADDR_CONST_EXTRA): New.
10818
10819 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10820
10821         * config/sparc/sparc.h: Remove commented-out definitions of
10822         TARGET_EDOM and GEN_ERRNO_RTX.
10823
10824 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10825
10826         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
10827         df_analyse with df_analyze.
10828
10829 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
10830
10831         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
10832         beginning of block.
10833
10834 2004-02-23  James E Wilson  <wilson@specifixinc.com>
10835
10836         * calls.c (precompute_arguments): Update comment.
10837
10838 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10839
10840         * et-forest.c: Replace et_occurences with et_occurrences.
10841
10842 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10843
10844         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
10845         with iv_analyze.
10846
10847 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
10848
10849         * config/i386/i386.c: Rename pni to sse3.
10850         * config/i386/i386.h: Likewise.
10851         * config/i386/i386.md: Likewise.
10852         * config/i386/pmmintrin.h: Likewise.
10853         * doc/extend.texi: Likewise.
10854         * doc/invoke.texi: Likewise.
10855
10856 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
10857             Kazu Hirata  <kazu@cs.umass.edu>
10858
10859         Remove -fwritable-strings.
10860         * c-common.c (fix_string_type): Don't check
10861         flag_writable_strings.
10862         (fix_string_type): Likewise.
10863         * c-opts.c (set_std_c89): Don't initialize
10864         flag_writable_strings.
10865         (set_std_c99): Likewise.
10866         * common.opt (fwritable-strings): Remove.
10867         * flags.h: Remove the external declaration of
10868         flag_writable_strings.
10869         * opts.c (common_handle_option) <OPT_fwritable_strings>:
10870         Remove.
10871         * toplev.c (flag_writable_strings): Remove.
10872         (f_options): Remove an entry for writable-strings.
10873         * varasm.c (const_hash_1) <STRING_CST>: Don't check
10874         flag_writable_strings.
10875         (compare_constant) <STRING_CST>: Likewise.
10876         (build_constant_desc): Likewise.
10877         * config/darwin.c (machopic_select_section): Likewise.
10878         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
10879         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
10880         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
10881         * config/mips/mips.c (mips_select_section): Likewise.
10882         (mips_encode_section_info): Likewise.
10883         * config/pa/pa.c (pa_select_section): Likewise.
10884         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
10885         * config/v850/v850.c (v850_select_section): Likewise.
10886         * doc/invoke.texi (-fwritable-strings): Remove.
10887         (-fno-const-strings): Don't mention -fwritable-strings.
10888         * doc/trouble.texi: Don't mention -fwritable-strings.
10889
10890 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
10891
10892         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
10893
10894 2004-02-23  Dale Johannesen  <dalej@apple.com>
10895
10896         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
10897         (movdf_hardfloat64):  Ditto.
10898         (movdf_softfloat64):  Ditto.
10899
10900 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
10901         * config/rs6000/rs6000.c (function_arg): call to
10902         rs6000_mixed_function_arg for DFmode moved to allow
10903         normal DFmode incoming register assignment.
10904
10905 2004-02-23  Dale Johannesen  <dalej@apple.com>
10906
10907         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
10908         (movdf_hardfloat64):  Ditto.
10909
10910 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10911
10912         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
10913         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
10914         copyright.
10915
10916 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
10917
10918         PR c/14156
10919         * c-typeck.c (c_expand_return): Change check for VAR_DECL
10920         to use DECL_P instead.
10921
10922         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
10923         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
10924
10925 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10926
10927         * Makefile.in (opts.o): Depend on target.h.
10928         * opts.c (decode_options): Use targetm.default_short_enums
10929         instead of DEFAULT_SHORT_ENUMS.
10930         * system.h (DEFAULT_SHORT_ENUMS): Poison.
10931         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
10932         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
10933         * target.h (gcc_target): Add default_short_enums.
10934         * config/cris/cris.h: Remove a comment about
10935         DEFAULT_SHORT_ENUMS.
10936         * config/ip2k/ip2k.h: Likewise.
10937         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
10938         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
10939
10940 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
10941             Falk Hueffner  <falk@debian.org>
10942
10943         PR c/14188
10944         * builtins.c (expand_builtin_va_arg): Emit an informative message
10945         if a trap is generated.
10946         * c-typeck.c (build_function_call): Likewise.
10947
10948 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
10949
10950         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
10951         fopen.
10952         * libgcov.c: Include sys/stat.h.
10953         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
10954         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
10955         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
10956         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
10957
10958 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
10959
10960         * reorg.c: Remove comments about dead ports.
10961
10962 2004-02-22  Christopher Faylor  <cgf@redhat.com>
10963
10964         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
10965         extra host object file when targetting cygwin rather than generic
10966         object files.
10967
10968 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
10969
10970         Merge from tree-ssa:
10971         2003-11-20  Richard Henderson  <rth@redhat.com>
10972
10973                 * tree-inline.c (insert_decl_map): New.
10974                 (remap_decl, remap_type, remap_block, copy_body_r,
10975                 initialize_inlined_parameters, declare_return_variable,
10976                 remap_save_expr): Use it.
10977
10978         * function.c (copy_body_r): Add mapping from id->ret_label to
10979         id->ret_label.  Revert test for ret_label.
10980
10981 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
10982
10983         * genoutput.c (process_template): Strip trailing whitespace in @
10984         templates and issue a warning if there was any.
10985
10986 2004-02-21  Christopher Faylor  <cgf@redhat.com>
10987
10988         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
10989         object file when targetting cygwin.
10990         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
10991         overridden by top-level Makefile.
10992
10993 2004-02-21  Roger Sayle  <roger@eyesopen.com>
10994
10995         * config/i386/i386.c (standard_80387_constant_p): Also prefer
10996         the x87's load constant instructions when optimizing for size.
10997
10998 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
10999
11000         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11001         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11002         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11003         * fold-const.c: Likewise.
11004         * simplify-rtx.c: Likewise.
11005
11006 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11007
11008         * combine.c (can_combine_p): Don't ignore SETs marked with
11009         REG_EH_REGION notes.
11010         (try_combine): When attemting to fix unrecognized insns, don't
11011         split a PARALLEL that contains the original i2.
11012
11013 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11014
11015         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11016         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11017         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11018         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11019         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11020         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11021         portion of header.
11022         (__altivec_link_error_invalid_argument): Remove prototype; will use
11023         __builtin_altivec_compiletime_error("vec_*") instead.
11024         (vec_*): Fix/complete set of available operation overloads given the
11025         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11026         cv-correctness of pointer arguments; in C, always check for correct
11027         argument types before macro expansion.
11028         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11029         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11030         '-W[no-]altivec-long-deprecated' switches.
11031         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11032         '__vector', '__pixel' and '__bool' macros using
11033         '__attribute__((altivec(...)))' types.
11034         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11035         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11036         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11037         New type nodes.
11038         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11039         handling '-W[no-]altivec-long-deprecated'.
11040         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11041         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11042         altivec_expand_dst_builtin): Remove casts from integer literals.
11043         (altivec_expand_builtin): Likewise; handle expansion of new
11044         '__builtin_altivec_compiletime_error' function.
11045         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11046         types, and make them distinct from other vector types; register
11047         '__builtin_altivec_compiletime_error' function.
11048         (print_operand): For 'P', print a full target register name instead of
11049         merely its number.
11050         (rs6000_attribute_table): Add "altivec" attribute.
11051         (rs6000_handle_altivec_attribute): New function.
11052         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11053         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11054         maps to).
11055         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11056         declare.
11057         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11058
11059 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11060
11061         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11062         check.
11063         (shift_mix4left+2): Delete redundant pattern.
11064
11065 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11066
11067         * alias.c (OUTGOING_REGNO): Don't define the default.
11068         * builtins.c (OUTGOING_REGNO): Likewise.
11069         (INCOMING_REGNO): Likewise.
11070         (apply_args_register_offset): Always use OUTGOING_REGNO.
11071         * combine.c (OUTGOING_REGNO): Likewise.
11072         * sibcall.c (OUTGOING_REGNO): Likewise.
11073         * defaults.h (INCOMING_REGNO): Provide the default.
11074         (OUTGOING_REGNO): Likewise.
11075
11076 2004-02-21  Jan Hubicka  <jh@suse.cz>
11077
11078         * params.def (max-peeled-insns, max-completely-peeled-insns,
11079         max-once-peeled-insns): Set to 400.
11080
11081 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11082
11083         PR c++/12007
11084         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11085         are set for parameters before outputing debugging information.
11086
11087 2004-02-20  Falk Hueffner  <falk@debian.org>
11088
11089         PR target/14201
11090         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11091         numbers.
11092
11093 2004-02-20  Per Bothner  <per@bothner.com>
11094
11095         * input.h:  Don't #include line-map.h.  It may cause link problems
11096         with undefined linemap_line_start when line-map.h is included but
11097         line-map.o is not linked, as currently happens with gengtype on
11098         compilers that don't support inline.
11099         * toplev.c:  So we do have to explicitly #include line-map.h here.
11100
11101 2004-02-20  Richard Henderson  <rth@redhat.com>
11102
11103         * doc/invoke.texi: Add -Wvariadic-macros.
11104
11105 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11106
11107         * haifa-sched.c (sched_emit_insn): Remove.
11108         * sched-int.h: Remove the corresponding prototype.
11109
11110 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11111
11112         Revert:
11113         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11114         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11115         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11116         * config/cris/cris.h: Remove a comment about
11117         DEFAULT_SHORT_ENUMS.
11118         * config/ip2k/ip2k.h: Likewise.
11119         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11120
11121 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
11122             Tom Tromey  <tromey@redhat.com>
11123
11124         * doc/install.texi: Moved --disable-libgcj and
11125         --with-system-zlib documentation to new section for
11126         Java-specific options.
11127         Added explicit Cross-Compiler-Specific Options subheading.
11128         Added section for Java-specific options.
11129
11130 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
11131
11132         * doc/install.texi (Building the Ada compiler): Remove
11133         example.
11134
11135 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11136
11137         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11138
11139 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11140
11141         * gcc.c (process_command): Allow translation of the copyright
11142         symbol but not the rest of the copyright message.
11143         * gcov.c (print_version): Likewise.  Allow translation of the
11144         message about warranty.
11145
11146 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
11147
11148         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11149         predicate.
11150         ("*andsi_clear"): Tweak constraints to not match postincrement.
11151         Adjust the predicate to exclude a volatile memory reference.
11152         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
11153         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11154
11155 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
11156
11157         * move-if-change: Remove.
11158         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11159         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11160         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11161         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11162         (s-gtyp-gen, s-iov): Use the top level move-if-change.
11163         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11164
11165 2004-02-19  James E Wilson  <wilson@specifixinc.com>
11166
11167         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11168         for operand2.  Add condition that requires register_operand operand2
11169         before reload.
11170
11171 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
11172             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11173
11174         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11175         * config/mips/mips.md: Expand comment above unaligned loads and stores.
11176
11177 2004-02-19  Richard Henderson  <rth@redhat.com>
11178
11179         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11180         * tree.c (build0, build1, build2, build3, build4): Split out from...
11181         (build): ... here.  Call them.
11182         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11183
11184         * convert.c (convert_to_integer): Remove extra build argument.
11185         * tree-inline.c (expand_call_inline): Likewise.
11186
11187 2004-02-19  Richard Henderson  <rth@redhat.com>
11188
11189         * c-opts.c (warn_variadic_macros): New.
11190         (c_common_handle_option): Set it.
11191         (sanitize_cpp_opts): Copy it to cpp_opts.
11192         * c.opt (Wvariadic-macros): New.
11193         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11194         * cppinit.c (cpp_create_reader): Initialize it.
11195         * cppmacro.c (parse_params): Check it.
11196
11197 2004-02-19  David Daney <ddaney@avtrex.com>
11198
11199         PR preprocessor/14198
11200         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11201         builtin_assert ("machine=mips")
11202
11203 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11204
11205         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11206         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11207         * config/cris/cris.h: Remove a comment about
11208         DEFAULT_SHORT_ENUMS.
11209         * config/ip2k/ip2k.h: Likewise.
11210         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11211
11212 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11213
11214         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11215         when passing single SFmode quantities in general registers,
11216         put them in the high half.
11217
11218 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11219
11220         * doc/md.texi (Standard Names): Document additional dependency on
11221         fix pattern.
11222
11223         * optabs.c (ftruncify): Remove.
11224         (expand_fix): Manually inline ftruncify above.
11225         (can_fix_p): Add FIXME note.
11226
11227 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11228
11229         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11230         spe_fixuns_truncsfsi2.
11231
11232         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11233         fixuns_truncsfsi2.
11234
11235 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
11236
11237         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11238         * testsuite/gcc.dg/20040219-1.c: New test.
11239
11240 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
11241
11242         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11243         "*subsf3_cconly"): Subtraction is not commutative.
11244
11245 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11246
11247         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11248         (sdbout_symbol): If called before sdbout_init, queue DECL for
11249         later and return.
11250         (sdbout_init): Set sdbout_initialized true, process decls
11251         queued earlier by sdbout_symbol.
11252         (sdbout_finish): Use size_t for index variable.
11253
11254 2004-02-19  Jeff Law  <law@redhat.com>
11255
11256         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11257         for unordered comparison codes.
11258
11259 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
11260
11261         * reload1.c (reload): Correct comment.
11262         (scan_paradoxical_subregs): Remove #if 0 and old comment.
11263         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11264         register variables are not used by reload.
11265
11266 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
11267
11268         PR target/14209
11269         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11270         constraints to not match postincrement.  Adjust the predicate to
11271         exclude a volatile memory reference.
11272
11273 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11274
11275         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11276
11277 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11278
11279         * hooks.c (hook_void_tree_int): Remove.
11280         (hook_void_constcharptr): Likewise.
11281         (hook_int_void_0): Likewise.
11282         * hooks.h: Remove the prototypes for the above three
11283         functions.
11284         * targhooks.c (hook_bool_machine_mode_true): Remove.
11285         * targhooks.h: Remove the prototype for
11286         hook_bool_machine_mode_true.
11287
11288 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11289
11290         * emit-rtl.c (subreg_realpart_p): Remove.
11291         (reorder_insns_with_line_notes): Likewise.
11292         (end_full_sequence): Likewise.
11293         * rtl.h: Remove the prototype for the above functions.
11294
11295 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11296
11297         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11298         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11299         config/iq2000/iq2000.h, config/m32r/m32r.h,
11300         config/pdp11/pdp11.h, config/sparc/sparc.h,
11301         config/xtensa/xtensa.h: Remove commented-out or useless
11302         definitions of CASE_VECTOR_PC_RELATIVE.
11303
11304 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11305
11306         * loop.c (all_sets_invariant_p): Remove.
11307
11308 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11309
11310         PR target/12916
11311         * config/sparc/sparc.h (NPARM_REGS): Delete.
11312         (BASE_RETURN_VALUE_REG): Likewise.
11313         (BASE_OUTGOING_VALUE_REG): Likewise.
11314         (BASE_PASSING_ARG_REG): Likewise.
11315         (BASE_INCOMING_ARG_REG): Likewise.
11316         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11317         TARGET_ARCH64, not TARGET_V9.
11318         (function_arg_slotno): Dispatch based on the mode class.
11319         Handle vector modes like floating-point modes.
11320         (function_arg_record_value_1): Handle vector types like
11321         floating-point types.
11322         (function_arg_record_value_2): Likewise.
11323         Calculate regno after mode transformation.
11324         (function_arg): Handle vector modes like floating-point modes.
11325         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11326         If ARCH64, do not recheck alignment.
11327         (function_arg_pass_by_reference): Reorder the conditions.
11328         (sparc_return_in_memory): Move after function_arg_padding.
11329         Implement calling conventions for vector modes.
11330         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11331         (function_value): Move scope of 'regbase'.
11332         Implement calling conventions for vector modes.
11333         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11334         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11335         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11336         the argument is passed by reference.
11337         (sparc_type_code): Handle vector types.
11338
11339 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
11340
11341         * function.c (assign_parms): When building decl_rtl for
11342         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11343
11344 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
11345
11346         * expr.c (is_aligning_offset): Check if we are aligning the
11347         expressions's address over BIGGEST_ALIGNMENT in bytes, not
11348         in bits.
11349
11350 2003-02-18  Matt Austern  <austern@apple.com>
11351
11352         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11353         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11354         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11355         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11356         spec string.
11357         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
11358
11359 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
11360
11361         * dwarf2out.c (loclabel_num): Move outside #ifdef
11362         DWARF2_DEBUGGING_INFO and mark with GTY(()).
11363         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11364         Mark with GTY(()).
11365         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
11366         Allocate memory with ggc_alloc.  No need to copy anything.
11367         (ia64_hpux_file_end): Update to match.
11368
11369 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11370
11371         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
11372         by default.
11373
11374 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11375
11376         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
11377         ("divmodtisi3"): Likewise.
11378         ("udivmoddi4", "udivmodtidi3"): Likewise.
11379         ("divmodsi4", "divmoddisi3"): Likewise.
11380         ("udivmodsi4", "udivmoddisi3"): Likewise.
11381         ("udivsi3", "umodsi3"): Likewise.
11382
11383 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11384
11385         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
11386         placeholder insn when chunkifying the pool.
11387
11388 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11389
11390         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
11391         generating PIC code.
11392
11393 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11394
11395         * config/h8300/h8300-protos.h: Add a prototype for
11396         h8300_expand_branch.
11397         * config/h8300/h8300.c (h8300_expand_branch): New.
11398         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
11399         bgtu, beq, bne): Call h8300_expand_branch().
11400
11401 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11402
11403         * config/h8300/h8300-protos.h: Add prototypes for
11404         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
11405         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
11406         (h8300_hard_regno_mode_ok): Likewise.
11407         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
11408         h8300_hard_regno_nregs().
11409         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
11410
11411 2004-02-18  Per Bothner  <per@bothner.com>
11412
11413         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
11414         partly reverts my 2003-10-01 change, because we're back to logically
11415         including <command line> inside the main line.
11416         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
11417         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
11418         Fixes PR preprocessor/14103.
11419
11420         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
11421         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
11422         (cpp_push_include):  Don't need to increment pfile's line field.
11423         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
11424
11425         * c-ppoutput.c (print struct):  New first_time field.
11426         (init_pp_output):  Set print.first_time.
11427         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
11428         which is set also for (say) <command line>.  Clear print.first_time.
11429
11430         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
11431         does not match the code, so fix both.
11432         (should_stack_file):  Inline include_pch_p function.
11433         (include_pch_p):  Remove pointless function.
11434
11435         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
11436
11437 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11438
11439         * config/h8300/h8300.md (four define_peephole2's): Use
11440         h8300_regs_ok_for_stm().
11441
11442 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11443
11444         * config/h8300/h8300-protos.h: Update the prototype for
11445         expand_a_rotate().
11446         * config/h8300/h8300.c (expand_a_rotate): Remove the first
11447         argument.
11448         * config/h8300/h8300.md: Update all callers.
11449
11450 2004-02-18  Jan Hubicka  <jh@suse.cz>
11451
11452         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
11453         floats.
11454         (simplify_binary_operation): Deal with logicals on floats.
11455
11456         * i386.md (SSE fabs splitters): Emit new patterns.
11457         (SSE cmov splitters): Likewise.
11458         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
11459         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
11460         subregs.
11461         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
11462         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
11463
11464 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11465
11466         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
11467         by hand.
11468         (output_a_rotate): Tweak a comment.
11469         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
11470         (*rotlhi3_1): Change to rotlhi3_1.
11471         (*rotlsi3_1): Change to rotlsi3_1.
11472
11473 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
11474
11475         PR target/13866
11476         * arm.c (load_multiple_operation): Don't insist that the source reg
11477         of a post-increment component is the same as the destination.
11478         (store_multiple_operation): Likewise.
11479
11480 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11481
11482         * config/h8300/h8300.md: Move movsf patterns into one section
11483         of the file.
11484
11485 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11486
11487         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
11488         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
11489         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
11490         config/mips/linux64.h, config/pa/pa-64.h,
11491         config/rs6000/aix51.h, config/rs6000/aix52.h,
11492         config/rs6000/spe.md, config/sparc/linux.h,
11493         config/sparc/linux64.h: Update copyright.
11494
11495 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11496
11497         * config/h8300/h8300.md: Move push patterns into one
11498         section of the file.
11499
11500 2004-02-18  Mark Mitchell <mark@codesourcery.com>
11501
11502         PR c++/11326
11503         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
11504         fntype.
11505
11506 2004-02-18  Paul Brook  <paul@codesourcery.com>
11507
11508         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
11509
11510 2004-02-18  Paul Brook  <paul@codesourcery.com>
11511
11512         PR debug/12934
11513         * dwarf2out.c (loc_descriptor_from_tree): Handle
11514         EXPR_WITH_FILE_LOCATION.
11515
11516 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11517
11518         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
11519         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
11520         trailing whitespace from instructions.
11521
11522 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
11523
11524         * configure.ac: When generating auto-build.h, pass
11525         --enable-languages to the sub-configure.
11526         Put quotes around ${program_transform_name} when generating
11527         name of as, ld, nm, objdump.
11528         * configure: Regenerate.
11529
11530 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
11531
11532         * Makefile.in (s-check, s-config, s-conditions, s-flags)
11533         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
11534         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
11535         (s-preds, s-iov): Do not depend on move-if-change.
11536
11537 2004-02-17  James E Wilson  <wilson@specifixinc.com>
11538
11539         * caller-save.c (insert_restore): Pass mem through copy_rtx.
11540         (insert_save): Likewise.
11541
11542 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11543
11544         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
11545         warning.
11546
11547 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11548
11549         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
11550         *one_cmplsi2_h8300.
11551         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
11552
11553 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11554
11555         * config/h8300/h8300-protos.h: Update the prototype of
11556         fix_bit_operand().
11557         * config/h8300/h8300.c (fix_bit_operand): Remove the second
11558         argument "what".
11559         * config/h8300/h8300.md: Update all callers.
11560
11561 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11562
11563         * config/h8300/h8300.c (fix_bit_operand): Change the name of
11564         the last argument to "code" from "type".
11565
11566 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11567
11568         * config/h8300/h8300.c: Remove an extern declaration of
11569         rtx_equal_function_value_matters.
11570
11571 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11572
11573         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
11574         by hand.
11575         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
11576         (*iorqi3_1): Change to iorqi3_1.
11577         (*xorqi3_1): Change to xorqi3_1.
11578
11579 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11580
11581         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
11582         typos.
11583
11584 2004-02-17  Jan Hubicka  <jh@suse.cz>
11585
11586         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
11587
11588 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
11589
11590         PR optimization/14119
11591         * combine.c (try_combine): When attemting to fix unrecognized insns,
11592         don't delete SETs marked with REG_EH_REGION notes.
11593
11594 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
11595
11596         * combine.c (simplify_if_then_else): Do not replace
11597         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
11598         modes differ.
11599
11600 2004-02017  Steven Bosscher  <stevenb@suse.de>
11601
11602         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
11603         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
11604         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
11605         * ada/utils.c: Likewise.
11606         * cp/decl.c: Likewise.
11607         * f/com.c: Likewise.
11608         * java/class.c: Likewise.
11609
11610 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11611
11612         * config/h8300/h8300.md: Fix comment typos.
11613
11614 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11615
11616         * config/mips/t-iris6gld: Renamed to ...
11617         * config/mips/t-irix-gld: ... this.
11618         * config.gcc (mips-sgi-irix6*): Reflect this
11619         (mips-sgi-irix5*): Use it with GNU ld.
11620
11621         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
11622         to ...
11623         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
11624         * config/mips/t-irix-gld: Reflect this.
11625         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11626
11627         * config/mips/iris5gld.h: New file.
11628         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
11629         Only use collect2 without gas.
11630
11631         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
11632         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11633         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
11634         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11635
11636         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
11637         * config/mips/iris5.h: ... here.
11638
11639         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
11640         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11641         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
11642
11643         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
11644         using irix_startfile_spec, irix_endfile_spec.
11645
11646 2004-02-16  Gunther Nikl  <gni@gecko.de>
11647
11648         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
11649
11650 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11651
11652         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
11653         insns by hand.
11654
11655 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11656
11657         * cfghooks.c (split_edge): Speed up updating of dominators.
11658
11659 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
11660
11661         PR c++/11326
11662         * c-common.c (flag_abi_version): Remove.
11663         * c-common.h (flag_abi_version): Likewise.
11664         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
11665         * c.opt (fabi-version): Remove.
11666         * calls.c (expand_call): Always pass a function type to
11667         struct_value_rtx.  Use convert_memory_address.
11668         * common.opt (fabi-version): Add it.
11669         * flags.h (flag_abi_version): Likewise.
11670         (abi_version_at_least): New macro.
11671         * opts.c (common_handle_option): Add OPT_fabi_version.
11672         * toplev.c (flag_abi_version): Define it.
11673         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
11674         New function.
11675         (ia64_output_mi_thunk): Use it.
11676         (ia64_struct_value_rtx): Likewise.
11677
11678 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11679
11680         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
11681         Don't generate insns by hand.
11682
11683 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
11684
11685         PR c++/14178
11686         * doc/invoke.texi (fabi-version): The default is 2 now.
11687
11688 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11689
11690         * loop-iv.c: New file.
11691         * Makefile.in (loop-iv.o): New.
11692         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
11693         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
11694         num_loop_branches): New functions.
11695         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
11696         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
11697         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
11698         get_simple_loop_desc, free_simple_loop_desc): Declare.
11699         (simple_loop_desc): New inline function.
11700         (struct rtx_iv, struct niter_desc): New.
11701         * cfgloopmanip.c (loopify): Specify semantics more precisely.
11702         * expr.c (force_operand): Handle subregs of expressions created by
11703         loop unroller.
11704         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
11705         parts of the initialization to toplev.c
11706         * loop-unroll.c (loop_exit_at_end_p): New.
11707         (unroll_and_peel_loops): Call iv_analysis_done.
11708         (decide_peel_once_rolling, decide_peel_completely,
11709         decide_unroll_stupid, decide_unroll_constant_iterations,
11710         decide_unroll_runtime_iterations, decide_peel_simple,
11711         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
11712         unroll_loop_runtime_iterations): Use new simple loop analysis.
11713         * loop-unswitch.c (compare_and_jump_seq): New.
11714         (may_unswitch_on_p): Renamed to ...
11715         (may_unswitch_on): Use new iv analysis.
11716         (reversed_condition): Export.
11717         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
11718         * predict.c (estimate_probability): Use new simple loop analysis.
11719         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
11720         canon_condition, simplify_using_condition): Declare.
11721         * stor-layout.c (get_mode_bounds): New.
11722         * toplev.c (rest_of_handle_loop2): Some parts of
11723         initialization/finalization moved here from loop-init.c.
11724
11725 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11726
11727         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
11728         pointer.
11729         (CALL_USED_REGISTERS): Likewise.
11730         (REG_ALLOC_ORDER): Likewise.
11731         (REG_CLASS) <GENERAL_REGS>: Likewise.
11732
11733 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
11734
11735         * doc/md.texi (Insn Canonicalizations): Document left-chaining
11736         in associative operators.
11737         * rtlanal.c (commutative_operand_precedence): Create some new
11738         variables.  Prefer a commutative operand on the left, then
11739         binary expressions, then NEG and NOT.
11740
11741 2004-02-16  Matthias Klose  <doko@debian.org>
11742
11743         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
11744         in terms of SHLIB_SOVERSION.
11745         * config/m68k/t-slibgcc-elf-ver: New file.
11746         * config/pa/t-slibgcc-elf-ver: New file.
11747         * config.gcc (m68k-linux, parisc-linux): Use them when not
11748         sjlj exceptions are not configured.
11749
11750 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
11751
11752         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
11753
11754 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
11755
11756         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
11757
11758 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
11759
11760         * doc/sourcebuild.texi: Mention backends.html.
11761
11762 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
11763
11764         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
11765         line-map.c, line-map.h, var-tracking.c: Fix comment
11766         formatting.
11767
11768 2004-02-16  Richard Henderson  <rth@redhat.com>
11769
11770         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
11771
11772         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
11773
11774 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11775
11776         * config/h8300/h8300.md: Remove unnecessary parallels from
11777         all define_insn and define_split patterns.
11778
11779 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11780
11781         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
11782         "clobber").
11783
11784 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
11785
11786         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
11787         '%#'.
11788
11789 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11790
11791         * config/ia64/ia64.c, config/mips/mips.c,
11792         config/mmix/mmix-modes.def: Fix comment typos.
11793
11794 2004-02-15  Roger Sayle  <roger@eyesopen.com>
11795
11796         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
11797         (get_directive_line): Remove unused function prototype.
11798
11799 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11800
11801         * tree-inline.c (copy_body_r): Do not replace ret_label.
11802
11803 2004-02-14  Jan Hubicka  <jh@suse.cz>
11804
11805         * i386.c (x86_four_jump_limit): New variable.
11806         (k8_avoid_jump_misspredicts): Rename to ...
11807         (ix86_avoid_jump_misspredicts): .. this one.
11808         (ix86_pad_returns): Break out from ...
11809         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
11810         to.
11811         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
11812
11813 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11814
11815         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
11816         PARALLEL is NULL.
11817
11818 2004-02-14  Per Bothner  <per@bothner.com>
11819
11820         * fix-header.c (line_table):  Move local variable in main to global.
11821         * scan.h (line_table):  Use it.
11822         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
11823         line (recently renamed to src_loc) before calling recognized_function.
11824
11825 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
11826
11827         * Makefile.in: Fix comment typos.
11828
11829 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
11830
11831         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
11832         for start_value when it is directly moved into reg, and factorize
11833         the retrieval of GET_MODE (reg).
11834
11835 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11836
11837         * config/mips/mips-protos.h (mips_load_got_page): Delete.
11838         (mips_load_got_global): Delete.
11839         (mips_gotoff_page): Declare.
11840         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
11841         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
11842         UNSPEC_LOAD_GOT pattern rather than a MEM.
11843         (*load_got[sd]i): New patterns.
11844         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
11845         (mips_load_got_page, mips_load_got_global): Delete.
11846         (mips_gotoff_page): New function.
11847         (override_options): Don't initialize mips_got_alias_set.
11848
11849 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11850
11851         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
11852         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
11853         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
11854         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
11855         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
11856         * config/mips/mips.c: Fix some overly-long lines.
11857         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
11858         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
11859
11860 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11861
11862         * configure.ac: Search for as, ld below libexec/gcc.
11863         * configure: Regenerate.
11864
11865 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
11866
11867         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
11868         __builtin_arm_setwcx ().
11869         * config/arm/arm.c (arm_expand_builtin): Generate operands
11870         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
11871
11872 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
11873
11874         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
11875         and "wmuluh" to "wmulsm" and "wmulum", respectively.
11876         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
11877         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
11878         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
11879         (_mm_mulhi_pu16): Likewise.
11880
11881 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
11882
11883         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
11884         DECL_NAME != 0 before dereferencing.
11885
11886 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
11887
11888         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
11889         (s390_output_addr_const_extra): Declare.
11890         (s390_output_pool_entry): Remove FILE * argument.
11891         * config/s390/s390.c (s390_output_symbolic_const): Remove.
11892         (s390_output_addr_const_extra): New function.
11893         (print_operand_address): Call output_addr_const instead of
11894         s390_output_symbolic_const.
11895         (print_operand): Likewise.
11896         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
11897         Remove FILE * argument.
11898         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
11899         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
11900         call.
11901
11902 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11903
11904         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
11905         (struct edge, struct vertex, struct graph): New.
11906         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
11907         free_graph): New functions.
11908
11909 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
11910
11911         * config/mips/mips.md (casesi_internal, casesi_internal_di):
11912         Use ".set macro" to avoid warnings about multi-instruction
11913         macros, since they're intentional.
11914
11915 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
11916
11917         * config/darwin.h: Add include guards.  Remove old, now incorrect,
11918         comment about STANDARD_EXEC_PREFIX.
11919
11920         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
11921         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
11922         for installing .1 manpages.  Add rules for installing cpp
11923         and gcov manpages under their installed names.
11924
11925 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
11926
11927         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
11928         host, but try LD_FOR_TARGET first.
11929         * configure: Rebuilt.
11930
11931 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
11932
11933         * dbxout.c: Move declaration of dbxout_type_decl outside
11934         #ifdef DBX_DEBUGGING_INFO.
11935         * c-parse.in: Don't give the asmdef production a type.
11936
11937 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
11938
11939         * debug.h (struct gcc_debug_hooks): Add type_decl field.
11940         (debug_nothing_tree_int): Prototype.
11941         (dwarf_debug_hooks): Delete, unused.
11942         * debug.c (do_nothing_debug_hooks): Update.
11943         (debug_nothing_tree_int): New function.
11944         * langhooks.h (struct lang_hooks_for_decls):
11945         Remove builtin_type_decls field.
11946         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
11947         (LANG_HOOKS_DECLS): Update.
11948         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
11949         Use debug_hooks->type_decl.
11950         * dbxout.c (preinit_symbols): New static.
11951         (dbx_debug_hooks, xcoff_debug_hooks): Update.
11952         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
11953         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
11954         for symbols to output.
11955         (dbxout_type_decl): New function.
11956         (dbxout_symbol): If called before dbxout_init has run, queue
11957         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
11958         to TYPE_DECLs before emitting them.
11959         * xcoffout.c (assign_type_number): Delete.
11960         (xcoff_type_numbers): New static table.
11961         (xcoff_assign_fundamental_type_number): New function.
11962         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
11963         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
11964         * sdbout.c: Include varray.h.
11965         (deferred_global_decls): New static.
11966         (sdb_debug_hooks): Update.
11967         (sdbout_global_decl): If we can't emit something right now,
11968         remember it in deferred_global_decls.
11969         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
11970         (sdbout_init): Initialize deferred_global_decls.
11971         * Makefile.in: Update dependencies of sdbout.o.
11972         * dwarf2out.c (dwarf2out_type_decl): New function.
11973         (dwarf2_debug_hooks): Update.
11974         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
11975         * c-decl.c (getdecls): Just return 0.
11976         (check_for_loop_decls): Don't use getdecls.
11977         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
11978         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
11979
11980 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
11981
11982         * config/s390/s390.c (s390_sched_reorder2): Remove.
11983         (TARGET_SCHED_REORDER2): Do not redefine.
11984
11985 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
11986
11987         * c-parse.in (maybe_type_qual): Delete.
11988         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
11989         (asm_argument): New grammar rules.
11990         (extdef_1): Use asmdef.
11991         (maybeasm): Move down with other asm rules; use simple_asm_expr.
11992         (xexpr): Move up with other expression rules.
11993         (stmt): Use asm_stmt.
11994
11995         * c-typeck.c (build_asm_expr): New function - body mostly
11996         pulled from build_asm_stmt.
11997         (build_asm_stmt): Just handle tacking on the volatile qualifier.
11998         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
11999
12000 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12001
12002         PR bootstrap/13617
12003         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12004         (mips_declare_object): Make variadic.
12005         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12006         mips_output_aligned_decl_common.
12007         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12008         (mips_declare_object): Make variadic.
12009
12010 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12011
12012         * function.c (update_epilogue_consts): Teach about binary operations.
12013
12014         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12015         previous MEM_VOLATILE in REF.
12016         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12017         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12018
12019 2004-02-12  Gunther Nikl  <gni@gecko.de>
12020
12021         * config.gcc: Restore support for m68k-openbsd.
12022
12023 2004-02-12  Jan Hubicka  <jh@suse.cz>
12024
12025         * tree-optimize.c (tree_rest_of_compilation): Do not release
12026         DECL_ARGUMENTS.
12027
12028 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12029
12030         * doc/install.texi: Fix the spelling of "explicitly".
12031
12032 2004-02-11  Eric Christopher  <echristo@redhat.com>
12033
12034         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12035         duplicate argument structure of cpp_interpret_string.
12036         * cpphash.h: Move prototype...
12037         * cpplib.h: Here.
12038         * cpplib.c: Fix calls to match new function signature.
12039
12040 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12041
12042         PR c/456
12043         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12044         constant expressions at all outside C99 mode if pedantic.
12045
12046 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12047
12048         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12049         (log10_optab, log2_optab): Define corresponding macros.
12050         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12051         * genopinit.c (optabs): Implement log10_optab and log2_optab
12052         using log10?f2 and log2?f2 patterns.
12053         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12054         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12055         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12056         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12057
12058         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12059         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12060         log2, log2f and log2l built-ins as inline x87 intrinsics.
12061
12062 2004-02-11  Richard Henderson  <rth@redhat.com>
12063
12064         PR target/1532
12065         * flow.c (insn_dead_p): A clobber of a dead hard register is a
12066         dead insn after reload.
12067
12068 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12069
12070         * tree.h (frame_base_decl): Add GTY marker.
12071         * var-tracking.c (frame_base_decl): Likewise.
12072
12073 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
12074
12075         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12076         incorrect, hunk.
12077         (add_location_or_const_value_attribute): Use text_section_label,
12078         not TEXT_SECTION_NAME.
12079
12080 2004-02-11  Per Bothner  <per@bothner.com>
12081
12082         Represent column numbers using line-map's source_location.
12083         The "next available source_location" is now managed internally by
12084         line-maps.c rather than by clients.
12085         * line-map.h (struct line_map):  New field column_bits.
12086         <from_line>:  Rename field to start_location.
12087         (struct line_maps):  New fields highest_location and max_column_hint.
12088         (linemap_check_files_exited):  New declaration.
12089         (linemap_line_start):  New declaration.
12090         (linemap_add):  Remove from_line parameter; use highest_location field.
12091         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
12092         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
12093         (CURRENT_LINE_MAP):  Remove macro.
12094         (linemap_position_for_column):  New inline function.
12095         * line-map.c (linemap_init):  Clear new fields.
12096         (linemap_check_files_exited):  New function, extracted from ...
12097         (linemap_free):  Use linemap_check_files_exited.
12098         (linemap_add):  Remove from_line parameter.  Various updates.
12099         (linemap_line_start):  New function.
12100         (linemap_lookeup):  Update for new field names.
12101         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
12102         linemap_position_for_column may unpredictably change the current map,
12103         it is cleaner and simpler for us to not cache it in cpp_reader.
12104         (struct cpp_buffer):  New sysp field.
12105         Changed warned_cplusplus_comments and from_stage3 to bitfields.
12106         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
12107         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
12108         current map using linemap_lookup.
12109         (do_linemarker):  Also set buffer's sysp field.
12110         (destringize_and_run):  No longer need to decrement current line.
12111         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
12112         (search_path_head, open_file_failed):  Use buffer's sysp.
12113         (cpp_make_system_header):  Get current map using linemap_lookup.
12114         Also set buffer's sysp flag.
12115         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
12116         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
12117         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
12118         (struct cpp_reader):  ... and adding saved_line_base field.
12119         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12120         Update accordingly.  Don't adjust line.
12121         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
12122         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
12123         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
12124         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
12125         * cpplex.c (_cpp_lex_direct):  Likewise.
12126         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
12127         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
12128         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
12129         Remove col field as it is now subsumed by src_loc.
12130         * cpperror.c:  Update various field, parameter, and macro names.
12131         (print_location):  If col==0, try SOURCE_COLUMN of line.
12132         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
12133         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
12134         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12135         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
12136         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
12137         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
12138         (_cpp_lex_direct):  Use linemap_position_for_column.
12139         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
12140         parameter.  Instead get it from the line_table global.  Adjust callers.
12141         (print):  Remove map field.  Replace line field to src_line.
12142         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
12143         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
12144         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
12145         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12146         * cpptrad.c (copy_comment):  Rename variable.
12147         * c-lex.c (map):  Remove static variable, for same reason we removed
12148         cpp_reader's map field.
12149         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
12150         to call linemap_lookup.
12151         (cb_line_change):  Token's line field replaced by src_loc.
12152         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
12153         Don't save new_map.
12154
12155         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
12156         source_location.
12157
12158 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12159
12160         * config/rs6000/altivec.md (*movv4si_internal): At least one
12161         operand must be register_operand.
12162         (*movv8hi_internal1): Likewise.
12163         (*movv16qi_internal1): Likewise.
12164         (*movv4sf_internal1): Likewise.
12165
12166 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
12167
12168         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12169         operand.
12170         (movv4hi_internal): Same.
12171         (movv2sf_internal): Same.
12172         (movv1di_internal): Same.
12173
12174 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
12175
12176         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
12177         TARGET_OLDABI consistently.
12178         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12179         mips_va_arg,override_options,compute_frame_size,
12180         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12181         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
12182         and TARGET_OLDABI consistently.
12183         * config/mips/mips.md (exception_receiver): Likewise.
12184         * config/mips/linux64.h: Likewise.
12185
12186 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12187
12188         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12189         Set AltiVec ABI and vrsave as default for ppc64 linux.
12190         (init_cumulative_args): Post error, if try to return
12191         value in AltiVec register without enable AltiVec.
12192         (function_arg_advance): Ditto for passing arguments.
12193
12194 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
12195
12196         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12197         a label before updating its usage count.
12198
12199 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
12200
12201         * doc/install.texi: Remove extra cd.
12202
12203 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
12204
12205         * c-common.c (vector_size_helper): Remove; call
12206         reconstruct_complex_type() instead.
12207         * tree.c (reconstruct_complex_type): New function
12208         (formerly vector_size_helper() in c-common.c).
12209         (make_vector): Make externally visible.
12210         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12211
12212 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12213
12214         * config/h8300/h8300-protos.h: Add a prototype for
12215         h8300_regs_ok_for_stm.
12216         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12217         * config/h8300/h8300.md (stm_h8300s_2_advanced,
12218         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12219         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12220         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12221         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12222         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12223         ldm_h8300s_4_normal, ldm_h8300s_4): Use
12224         h8300_regs_ok_for_stm().
12225
12226 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12227
12228         PR c/14088
12229         * real.c (real_from_string): Look for 'X' as well as 'x' in
12230         hexfloat strings.
12231
12232 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12233
12234         * config/h8300/h8300.md: Remove an incorrect comment about
12235         peephole2.  Add comments.
12236
12237 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
12238
12239         PR/14058
12240         * emit-rtl.c (set_decl_incoming_rtl): New.
12241         * tree.h (set_decl_incoming_rtl): New.
12242         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12243         DECL_INCOMING_RTL.
12244         * ada/misc.c (adjust_decl_rtl): Likewise.
12245
12246 2004-02-10  Per Bothner  <per@bothner.com>
12247
12248         * c-opts.c (c_common_post_options):   Don't emit working directory
12249         in cpp output if -P was specified.
12250
12251 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12252
12253         PR c/14092
12254         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12255         negate_expr back to the original type.
12256
12257 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
12258
12259         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12260         bump retaddr here.
12261
12262 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12263
12264         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12265         gen_lowpart_SUBREG): Move under the file in which they
12266         are actually declared.
12267
12268 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
12269
12270         * doc/sourcebuild.texi: Add libada documentation.
12271
12272         * doc/install.texi: Update documentation on Ada build, now
12273         that the GNAT lib and tools are built automatically.
12274
12275 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
12276
12277         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12278         && TARGET_IRIX.
12279
12280 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
12281
12282         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12283         boundaries outside build_component_ref() call (a macro in ObjC++).
12284
12285 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
12286
12287         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12288         (init_cumulative_args): Likewise.
12289         (a7_overlap_mentioned_p): Delete prototype.
12290         * config/xtensa/xtensa.c (struct machine_function): Replace
12291         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12292         Add set_frame_ptr_insn field.
12293         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12294         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12295         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
12296         at the function entry and replace the operand with the pseudo.
12297         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
12298         argument and record this flag in CUMULATIVE_ARGS.
12299         (function_arg): Remove result_mode and special-case code to handle
12300         arguments in a7.  Instead, set need_a7_copy flag when there is an
12301         incoming argument in a7.
12302         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12303         and use the value recorded in cfun->machine->set_frame_ptr_insn.
12304         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
12305         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
12306         special-case code.
12307         (a7_overlap_mentioned_p): Delete.
12308         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12309         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12310         arguments to init_cumulative_args and pass "incoming" flag instead.
12311         (BLOCK_REG_PADDING): Delete.
12312         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12313         checks for reload_in_progress and reload_completed.  Update calls to
12314         xtensa_copy_incoming_a7.
12315         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
12316         to call xtensa_copy_incoming_a7.
12317
12318 2004-02-09  DJ Delorie  <dj@redhat.com>
12319
12320         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12321         longer modify standard_exec_prefix, standard_bindir_prefix, or
12322         standard_startfile_prefix.
12323
12324 2004-02-09  James E Wilson  <wilson@specifixinc.com>
12325
12326         PR c++/11295
12327         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12328         to expand_expr_real call, and pass in alt_rtl as last argument.
12329
12330         PR libstdc++/5625
12331         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12332         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12333         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12334         * except.c (expand_builtin_extend_pointer): New.
12335         * except.h (expand_builtin_extend_pointer): Declare.
12336
12337 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
12338
12339         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12340         unaligned loads and stores.
12341
12342 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12343
12344         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12345         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12346
12347         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12348         * config/mips/iris5.h: ... here.
12349         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12350
12351         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12352         * config/mips/iris5.h: ... here.
12353
12354 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12355
12356         * configure.ac: Remove default executable files before AC_PROG_CC.
12357         * configure: Regenerate.
12358
12359 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
12360
12361         PR target/13721
12362         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12363         print a operand other than a register.
12364
12365 2004-02-09  Roger Sayle  <roger@eyesopen.com>
12366
12367         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
12368         tree code rather than call fold_convert, which doesn't specify a
12369         default floating point to integer conversion.
12370
12371 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
12372
12373         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
12374         code to support SGS assembler.  Reformat adjacent code where possible.
12375         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
12376         definition.
12377         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
12378         for '%#'.
12379         * config/m68k/linux.h, config/m68k/m68k.c,
12380         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
12381         macros and asm_printf() format strings.
12382         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
12383         * config/m68k/linux.h: Update copyright.
12384         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
12385
12386 2004-02-08  Andreas Schwab  <schwab@suse.de>
12387             Bernardo Innocenti  <bernie@develer.com>
12388
12389         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
12390         REGISTER_PREFIX.
12391         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
12392         frame pointer register, overridable by OS targets.
12393         * (M68K_REGNAME): Macro to obtain register name for asm output,
12394         eventually replacing %a6 with M68K_FP_REG_NAME.
12395         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
12396         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
12397         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
12398         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
12399         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
12400
12401 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12402
12403         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
12404         hook_rtx_tree_int_null.
12405         * targhooks.c (default_struct_value_rtx): Remove.
12406         * targhooks.h: Remove the prototype for
12407         default_struct_value_rtx.
12408         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12409         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
12410         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12411         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
12412         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
12413         config/rs6000/rs6000.c, config/s390/s390.c,
12414         config/stormy16/stormy16.c, config/v850/v850.c,
12415         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
12416         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
12417
12418 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
12419
12420         * README.Portability: Change "ISO C89" to "ISO C90".
12421         * c-parse.in (primary, initelt): Likewise.
12422
12423 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
12424
12425         * real.c (encode_ibm_extended): Normalize the input value before
12426         converting it to a double.  Handle the case where a normal value
12427         rounds to infinity.
12428
12429 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12430
12431         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
12432         warning.
12433         * cse.c (preferrable): Change to preferable. Update all of its
12434         callers.
12435         * genautomata.c (ainsn): Change
12436         first_ainsn_with_given_equialence_num to
12437         first_ainsn_with_given_equivalence_num.  Update all of its
12438         references.
12439
12440 2004-02-08  Jan Hubicka  <jh@suse.cz>
12441
12442         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
12443
12444 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
12445
12446         * function.c (assign_parms): Fix formatting.
12447
12448 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12449
12450         * default.h (PROMOTE_PROTOTYPES): Remove.
12451         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
12452         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
12453         EXPAND_BUILTIN_SAVEREGS): Poison.
12454         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
12455         hook_bool_tree_false.
12456         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12457         * target.h: Replace SETUP_INCOMING_VARARGS with
12458         targetm.calls.setup_incoming_varargs().
12459         * targhooks.c (default_promote_function_return): Remove.
12460         (default_promote_prototypes): Likewise.
12461         (default_struct_value_rtx): Always abort().
12462         (default_expand_builtin_saveregs): Always print an error
12463         message.
12464         (default_setup_incoming_varargs): Do nothing.
12465         (default_pretend_outgoing_varargs_named): Don't depend on
12466         SETUP_INCOMING_VARARGS.
12467         * targhooks.h: Remove the prototype for
12468         default_promote_function_return and
12469         default_promote_prototypes.
12470
12471 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12472
12473         * system.h (SHARED_SECTION_ASM_OP): Poison.
12474         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
12475         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
12476
12477 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12478
12479         Bug 13856
12480         * c-decl.c (diagnose_mismatched_decls): Only give special
12481         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
12482         is also true.
12483         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
12484         DECL_FUNCTION_CODE when defining a built-in function.
12485         Don't update DECL_ESTIMATED_INSNS.
12486         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
12487         FUNCTION_DECLs.
12488         * tree.h: Delete DECL_ESTIMATED_INSNS.
12489         * tree-inline.c (struct inline_data): Delete inlined_insns field.
12490         (expand_call_inline, optimize_inline_calls): Don't update
12491         DECL_ESTIMATED_INSNS nor inlined_insns.
12492         * cgraphunit.c (cgraph_analyze_function): Don't update
12493         DECL_ESTIMATED_INSNS.
12494
12495 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12496
12497         * c-common.c (shadow_warning): Delete.
12498         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
12499         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
12500         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
12501         * c-parse.in (free_parser_stacks): Delete.
12502
12503 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
12504
12505         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
12506         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
12507         Use the top level mkinstalldirs, not the one in the gcc subdir.
12508         * mkinstalldirs: Remove (from the gcc subdir).
12509
12510 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12511
12512         PR middle-end/13696
12513         * fold-const.c (fold_convert): New function to provide type
12514         conversion to the middle-end without using convert.
12515         (negate_expr, associate_trees, size_diffop, omit_one_operand,
12516         operand_equal_for_comparison_p, pedantic_omit_one_operand,
12517         invert_truthvalue, optimize_bit_field_compare, range_binop,
12518         decode_field_reference, make_range, build_range_check, unextend,
12519         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
12520         fold_binary_op_with_conditional_arg, fold_inf_compare,
12521         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
12522         convert with calls to fold_convert.
12523
12524 2004-02-07  Jan Hubicka  <jh@suse.cz>
12525
12526         * genrecog.c (find_operand): add extra argument stop.
12527         (validate_pattern): Verify that mach_dup is duplicating operand
12528         defined lexically earlier.
12529
12530 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12531
12532         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
12533         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12534         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
12535         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
12536         config/ia64/ia64.h, config/ip2k/ip2k.h,
12537         config/iq2000/iq2000.h, config/mips/iris5.h,
12538         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
12539         config/rs6000/aix51.h, config/rs6000/aix52.h,
12540         config/rs6000/darwin.h, config/rs6000/rs6000.h,
12541         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
12542         config/sparc/linux.h, config/sparc/linux64.h,
12543         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
12544         config/xtensa/xtensa.h: Remove the definitions of
12545         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
12546         MAX_WCHAR_TYPE_SIZE.
12547         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12548         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
12549
12550 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
12551
12552         PR bootstrap/13990
12553         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
12554         gen_rtx_NE.
12555
12556 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
12557
12558         * var-tracking.c (vt_add_function_parameters): Surround checkings by
12559         #ifdef ENABLE_CHECKING and #endif.
12560
12561 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12562
12563         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
12564         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
12565         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
12566         integer types and floating point with unsafe_math_optimizations.
12567         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
12568         Optimize A - B as A + (-B), if B is easily negated.
12569
12570 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12571
12572         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
12573         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
12574         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
12575         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
12576         Update copyright.
12577
12578 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12579
12580         * c-ppoutput.c, var-tracking.c: Fix comment typos.
12581
12582 2004-02-06  James E Wilson  <wilson@specifixinc.com>
12583
12584         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
12585         glibc 2.3 or better.
12586
12587 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12588
12589         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
12590         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
12591
12592 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
12593
12594         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
12595         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
12596         (SHLIB_MKMAP_OPTS): Delete.
12597         (TARGET_LIBGCC2_CFLAGS): Add -specs.
12598         (bispecs): Add rule.
12599         * config/rs6000/libgcc-ppc64.ver: New file.
12600         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
12601         (__floatdidf, __floatdisf): Optimize multiply.
12602         (__fixunstfdi): New function.
12603         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
12604         real and imag parts larger than one register.
12605         (function_arg): Correct type of reg used when fp arg split partially
12606         to stack.
12607         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
12608         and __MACH__ or __powerpc64__.
12609
12610 2004-02-06  Roger Sayle  <roger@eyesopen.com>
12611             Ulrich Weigand  <uweigand@de.ibm.com>
12612
12613         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
12614         of gen_highpart or gen_lowpart when the floating point format is
12615         wider than the result mode.
12616
12617 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
12618
12619         * dwarf2out.c (loclabel_num): Move into #ifdef
12620         DWARF2_DEBUGGING_INFO.
12621
12622 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
12623
12624         * objc/objc-act.c (build_super_template) the 'class' field of
12625         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
12626         (get_super_receiver): Likewise.
12627
12628 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12629
12630         * reload1.c (check_eliminable_occurrences): Optimize the reset
12631         of can_eliminate.
12632         (eliminate_regs_in_insn): Likewise.
12633
12634 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
12635             Josef Zlomek  <zlomekj@suse.cz>
12636
12637         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
12638         at the beginning of function, call dwarf2out_var_location for
12639         NOTE_INSN_VAR_LOCATION note.
12640         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
12641         decl_loc_table): New.
12642         (lookup_decl_loc): New function.
12643         (add_var_loc_to_decl): New function.
12644         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
12645         only if can_use_fbreg.
12646         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
12647         functions.
12648         (loc_descriptor): Likewise. Process VAR_LOCATION.
12649         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
12650         (loc_descriptor_from_tree): Call mem_loc_descriptor with
12651         can_use_fbreg == true.
12652         (add_location_or_const_value_attribute): Added parameter enum
12653         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
12654         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
12655         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
12656         with attr == DW_AT_location.
12657         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
12658         if frame_base_decl is defined and has a location list.
12659         (gen_variable_die): Call add_location_or_const_value_attribute with
12660         attr == DW_AT_location.
12661         (dwarf2out_var_location): New function.
12662         (dwarf2out_begin_function): New function.
12663         (dwarf2out_init): Create decl_loc_table.
12664
12665 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12666
12667         * loop.c (force_movables): Transitively increase the priorities of
12668         all insns forces by an insn, not just the first one.
12669
12670 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
12671             Daniel Berlin <dberlin@dberlin.org>
12672
12673         Josef Zlomek  <zlomekj@suse.cz>
12674         * Makefile.in (var-tracking.o): New.
12675         * common.opt (fvar-tracking): New.
12676         * flags.h (flag_var_tracking): New.
12677         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
12678         * opts.c (common_handle_option): Add OPT_fvar_tracking.
12679         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
12680         * rtl.c (note_insn_name): Likewise.
12681         * rtl.def (VAR_LOCATION): New.
12682         * rtl.h (NOTE_VAR_LOCATION): New.
12683         (NOTE_VAR_LOCATION_DECL): New.
12684         (NOTE_VAR_LOCATION_LOC): New.
12685         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
12686         (variable_tracking_main): New exported function.
12687         * timevar.def (TV_VAR_TRACKING): New.
12688         * toplev.c (enum dump_file_index): Added DFI_vartrack.
12689         (dump_file): "vartrack" was added (-dV).
12690         (flag_var_tracking): New.
12691         (f_options): "var-tracking" was added.
12692         (rest_of_handle_variable_tracking): New function.
12693         (rest_of_compilation): Run variable tracking.
12694         (process_options): If user has not specified flag_var_tracking set it
12695         according to optimize, debug_info_level and debug_hooks.
12696         * tree.h (frame_base_decl): New.
12697         * var-tracking.c: New file.
12698         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
12699         (ia64_override_options): Set flags to run variable tracking in machine
12700         dependent reorg instead of toplev.c.
12701         (ia64_reorg): Run variable tracking if wanted.
12702         * doc/invoke.texi: Mention variable tracking in -dV,
12703         add and -fvar-tracking.
12704         * doc/passes.texi: Added variable tracking pass.
12705
12706         Daniel Berlin <dberlin@dberlin.org>
12707         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
12708         * dbxout.c (dbx_debug_hooks): Likewise.
12709         (xcoff_debug): Likewise.
12710         * debug.c (do_nothing_debug_hooks): Likewise.
12711         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
12712         * dwarfout.c (dwarf_debug_hooks): Likewise.
12713         * sdbout.c (sdb_debug_hooks): Likewise.
12714         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12715         * final.c (final_scan_insn): Call var_location debug hook for each
12716         NOTE_INSN_VAR_LOCATION.
12717
12718 2004-02-06  Jan Hubicka  <jh@suse.cz>
12719
12720         * flow.c (update_life_info): Allocate reg_deaths when called from
12721         scheudler.
12722         (attempt_auto_inc):  Update life ranges accordingly.
12723
12724 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12725
12726         PR debug/11816
12727         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
12728
12729 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12730
12731         * cfganal.c (flow_call_edges_add): Never split a libcall block.
12732
12733 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
12734
12735         * dwarf2out.c (output_loc_list): Don't use deltas if we have
12736         a separate line info table in use.
12737         Use the correct size for terminators.
12738         (output_die): Use offset, not delta.
12739
12740 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
12741
12742         * doc/invoke.texi: Remove the pni option from -mfpmath=.
12743
12744 2004-02-06  Jan Hubicka  <jh@suse.cz>
12745
12746         * recog.c (split_all_insns): Do not update reg info.
12747         * regrename.c (regrename_optimize): Likewise.
12748         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
12749         * flow.c (struct propagate_block_info): Add insn_num field.
12750         (reg_deaths): New array.
12751         (life_analysis): Free reg_deaths info.
12752         (allocate_reg_life_data): Allocate reg_deaths array.
12753         (propagate_one_insn): Use new array.
12754         (init_propagate_block): Initialize it.
12755         (free_propagate_block_info): Finish compuation of
12756         REG_LIVE_LENGTH
12757         (attempt_auto_inc): Sanity check that REG_INFO is not
12758         computed at same time.
12759         (mark_used_regs): Update new array.
12760
12761         * reg-stack.c (subst_stack_regs): Unshare clobbers before
12762         substitution.
12763
12764 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12765
12766         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
12767         *extendqisi2_short_displ.
12768
12769 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
12770
12771         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
12772         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
12773         (emit_library_call_value_1): Likewise pass nargs.
12774         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
12775         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
12776         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
12777         parameter instead of scanning TYPE_ARGS_TYPES to count args.
12778         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
12779         prototype.
12780         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
12781         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
12782         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
12783         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
12784         INIT_CUMULATIVE_ARGS.
12785         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
12786         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
12787         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
12788         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
12789         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12790         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
12791         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
12792         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
12793         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
12794         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
12795         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
12796         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
12797
12798 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12799
12800         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
12801         possible.
12802
12803 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12804
12805         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
12806         note containing (plus (reg) (const_int)), where reg is an
12807         eliminable reg, then perform the register elimination without
12808         depending on eliminate_regs().
12809
12810 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12811
12812         * config/arc/arc.c (arc_return_in_memory): Check the return
12813         value of int_size_in_bytes against -1.  Don't check
12814         TREE_ADDRESSABLE.
12815         * config/avr/avr.c (avr_return_in_memory): Check the return
12816         value of int_size_in_bytes against -1.
12817         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
12818         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
12819         Likewise.
12820         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
12821         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
12822         Likewise.
12823
12824 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12825
12826         * config/frv/frv-protos.h: Remove the prototype for
12827         frv_setup_incoming_varargs.
12828         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
12829         (frv_setup_incoming_varargs): Make it static.
12830         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
12831
12832 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12833
12834         * config/fr30/fr30-protos.h: Remove the prototype for
12835         fr30_setup_incoming_varargs.
12836         Update the prototypes for fr30_num_arg_regs and
12837         fr30_function_arg_partial_nregs.
12838         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
12839         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12840         (fr30_setup_incoming_varargs): Make it static.
12841         Add argument second_time.  Don't do anything when second_time
12842         is nonzero.
12843         (fr30_num_arg_regs): Change the type of the first argument to
12844         enum machine_mode.
12845         (fr30_function_arg_partial_nregs): Change the type of the
12846         second argument to enum machine_mode.
12847         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
12848         (SETUP_INCOMING_VARARGS): Remove.
12849
12850 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12851
12852         * config/arc/arc-protos.h: Remove the prototype for
12853         arc_setup_incoming_varargs.
12854         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12855         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12856         (arc_setup_incoming_varargs): Make it static.
12857         (arc_external_libcall): Likewise.
12858         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
12859         Remove the commented-out definition of
12860         ASM_OUTPUT_EXTERNAL_LIBCALL.
12861
12862 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
12863
12864         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
12865         to $$(slibdir) in the installation commands.
12866
12867 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
12868
12869         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
12870         with inner_regno, not regno.
12871         * rtlanal.c (refers_to_regno_p): Same.
12872
12873 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12874
12875         * config.gcc: Remove i370 support.
12876
12877 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12878
12879         * doc/install.texi:  Update automake and autoconf version
12880         requirements.  Note where to find gcj automake version.
12881
12882 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12883
12884         * Makefile.in (generate-manpages): Move dependencies to ...
12885         (man): here.
12886         * doc/makefile.texi: Document new targets.
12887         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
12888
12889 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12890
12891         PR/13485
12892         Makefile.in (srcextra):  Add a level of indirection to ...
12893         (gcc.srcextra): ... here.
12894         (po-generated): Delete.
12895         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
12896         options.c.
12897         (start.encap): Remove superfluous lang.srcextra dependency.
12898         objc/Make-lang.in (po-generated):  Delete.
12899
12900 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12901
12902         * config/ia64/ia64.c (REG_GP): Remove.
12903
12904 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12905
12906         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
12907
12908 2004-02-05  Devang Patel  <dpatel@apple.com>
12909
12910         * dwarf2out.c (force_type_die): Look up input type itself
12911         instead of root_type() of type.
12912
12913 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
12914
12915         * config/s390/s390.md ("*tmqidi_ext"): New insn.
12916         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
12917         pre-reload splitters are transformed to post-reload
12918         define_insn_and_split patterns.
12919         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
12920
12921 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12922
12923         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
12924         TARGET_PROMOTE_PROTOTYPES.
12925
12926 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12927
12928         PR middle-end/13750
12929         Revert:
12930         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
12931         PR pch/13361
12932         * c-typeck.c (constructor_asmspec): Delete.
12933         (struct initializer_stack): Delete field 'asmspec'.
12934         (start_init): Delete saving of asmspec.
12935         (finish_init): Don't update constructor_asmspec.
12936         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
12937         * stmt.c (expand_asm): Duplicate strings from tree.
12938         (expand_asm_operands): Likewise.
12939         * tree.c (tree_size): Update computation of size of STRING_CST.
12940         (make_node): Don't make STRING_CST nodes.
12941         (build_string): Allocate string with tree node.
12942         * tree.def (STRING_CST): Update comment.
12943         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
12944         (tree_string): Place contents of string in tree node.
12945         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
12946         from tree.
12947
12948 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12949
12950         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
12951         msgid.
12952
12953 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
12954
12955         * config/rs6000/altivec.md (*movv4si_internal): At least one
12956         operand must be altivec_register_operand.
12957         (*movv8hi_internal1): Likewise.
12958         (*movv16qi_internal1): Likewise.
12959         (*movv4sf_internal1): Likewise.
12960
12961 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
12962
12963         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
12964         * configure: Regenerate.
12965
12966 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
12967
12968         * doc/install.texi: Update description of --gxx-include-dir to
12969         give correct default value.
12970
12971 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12972
12973         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
12974         8 with MAC_REG.
12975
12976 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12977
12978         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
12979         gen_rtx_PARALLEL.
12980
12981 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12982
12983         * emit-rtl.c: Update the comment about the file.
12984
12985 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12986
12987         * sourcebuild.texi (Test Idioms): Update testcase naming
12988         conventions.
12989
12990 2004-02-04  Per Bothner  <per@bothner.com>
12991
12992         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
12993         * c-ppoutput.c (pp_dir_change):  New function.
12994         * c-common.h (pp_dir_change):  New declaration.
12995         * cpplib.h (struct cpp_options):  Remove working_directory field.
12996         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
12997         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
12998         Don't handle -fworking_directory here, but in c_common_post_options.
12999         (read_original_directory): Don't back up when done.
13000         Don't clear no-longer used working_directory flag.
13001         * cpplib.h:  Update declarations to match.
13002         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13003         (init_c_lex):  Don't set dir_change callback here, since we want
13004         to set it even if flag_preprocess_only.
13005         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13006         (c_common_post_options):  Set dir_change callback.
13007         Call pp_dir_change if approporiate.
13008         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13009         unneeded parameter and result. Do LC_RENAME for <built-in>.
13010         (c_common_post_options):  Call cpp_read_main_file here instead.
13011         (c_common_init):  Update accordingly.
13012         (push_command_line_include):  Don't cpp_push_main_file.
13013         Do LC_RENAME rather than LC_LEASE to get back to main file.
13014         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13015         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13016         files, but call finish_options for all files.
13017         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13018         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13019         cpp_find_main_file + cpp_push_main_file.
13020         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13021         * opts.c (handle_options):  Only set main_input_filename first time.
13022
13023 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13024
13025         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13026
13027 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13028
13029         * reload.c (find_equiv_reg): When checking for register overlap,
13030         don't index hard_regno_nregs with a pseudo-reg.
13031
13032 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13033
13034         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13035
13036 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13037
13038         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13039         against FIRST_PSEUDO_REGISTER.
13040
13041 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13042
13043         * Makefile.in: Move target, host overrides after per-language
13044         fragments.
13045
13046         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13047         (GNATLIBCFLAGS): Remove -g.
13048
13049 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13050
13051         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13052         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13053         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13054         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13055         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13056         config/sparc/sparc.c, config/vax/vax.c: Revert the
13057         replacements of "FALLTHRU" with "Fall through" done in the
13058         previous patch.
13059
13060 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13061
13062         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13063         config/arm/arm.c, config/arm/arm.md,
13064         config/cris/cris-protos.h, config/fr30/fr30.c,
13065         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13066         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13067         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13068         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13069         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13070         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13071         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13072         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13073         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13074         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13075         config/s390/s390.md, config/sparc/netbsd-elf.h,
13076         config/sparc/openbsd.h, config/sparc/sparc.c,
13077         config/xtensa/lib2funcs.S: Fix comment formatting.
13078
13079 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13080
13081         * config/alpha/alpha.c, config/arc/arc.c,
13082         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13083         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13084         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13085         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13086         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13087         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13088         config/iq2000/iq2000.c, config/m32r/m32r.c,
13089         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13090         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13091         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13092         config/rs6000/rs6000.h, config/sparc/sparc.c,
13093         config/vax/vax.c: Fix comment typos.  Follow spelling
13094         conventions.
13095
13096 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13097
13098         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13099         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13100         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13101         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13102         config/arm/fpa.md, config/arm/iwmmxt.md,
13103         config/arm/netbsd-elf.h, config/arm/netbsd.h,
13104         config/m68hc11/m68hc11.md, config/mips/iris5.h,
13105         config/mn10300/mn10300.md, config/rs6000/altivec.md,
13106         config/sparc/netbsd-elf.h: Update copyright.
13107
13108 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13109
13110         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13111         for all modes whose size is greater than 8 bytes if ARCH32.
13112         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13113         by reference if ARCH32.
13114
13115 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
13116
13117         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13118
13119 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13120
13121         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13122         to before adddi3 insn patterns.
13123         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13124         "reload_insi"): Move to before addsi3 insn patterns.
13125
13126 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
13127
13128         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13129         parameter.  Use it instead of current_function_is_thunk.
13130         * function.h (struct function): Update documentation for is_thunk.
13131         * tree.h (CALL_FROM_THUNK_P): New macro.
13132         * config/alpha/alpha.c (alpha_sa_mask): Do not check
13133         no_new_pseudos when testing current_function_is_thunk.
13134         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13135
13136 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13137
13138         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13139         TARGET_SETUP_INCOMING_VARARGS.
13140
13141 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13142
13143         * emit-rtl.c (gen_rtx): Remove.
13144         * genattrtab.c: Don't mention gen_rtx in a comment.
13145         * rtl.h: Remove the prototype for gen_rtx.
13146         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13147
13148 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13149
13150         * config/arc/arc.h, config/fr30/fr30.h
13151         (SETUP_INCOMING_VARARGS): Remove the target-independent
13152         comments.
13153         * doc/tm.texi: Don't mention deprecated target macros.
13154
13155 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13156
13157         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13158         target-independent comment.
13159
13160 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13161
13162         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13163         mention deprecated target macros.
13164
13165 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13166
13167         * config.gcc: Remove obsolete ports and configurations.
13168         * config/linux-aout.h, config/netware.h,
13169         config/t-linux-gnulibc1, config/d30v/abi,
13170         config/d30v/d30v-protos.h, config/d30v/d30v.c,
13171         config/d30v/d30v.h, config/d30v/d30v.md,
13172         config/d30v/libgcc1.asm, config/d30v/t-d30v,
13173         config/dsp16xx/dsp16xx-modes.def,
13174         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13175         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13176         config/i370/README, config/i370/i370-c.c,
13177         config/i370/i370-protos.h, config/i370/i370.c,
13178         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13179         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13180         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13181         config/i386/moss.h, config/i386/netware.h,
13182         config/i386/svr3.ifile, config/i386/svr3dbx.h,
13183         config/i386/svr3gas.h, config/i386/svr3z.ifile,
13184         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13185         config/i960/i960-c.c, config/i960/i960-coff.h,
13186         config/i960/i960-modes.def, config/i960/i960-protos.h,
13187         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13188         config/i960/rtems.h, config/i960/t-960bare,
13189         config/m68k/hp310.h, config/m68k/hp320.h,
13190         config/m68k/hp320base.h, config/m68k/m68kv4.h,
13191         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13192         Remove.
13193         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13194         doc/md.texi: Remove mentions of obsolete ports.
13195
13196 2004-02-04  Jan Hubicka  <jh@suse.cz>
13197
13198         * alias.c (find_base_term, get_addr):  Do not dereference NULL
13199         pointer when all VALUE's locations has been invalidated.
13200         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13201
13202 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
13203
13204         * doc/invoke.texi (x86 options): Fix spelling/wording.
13205
13206 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
13207
13208         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13209         put the original string in a comment.
13210         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13211         * config/mips/mips.c (mips_output_ascii): Likewise.
13212         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13213
13214 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13215
13216         * system.h (GIV_SORT_CRITERION): Poison.
13217         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13218         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13219
13220 2004-02-03  Roger Sayle  <roger@eyesopen.com>
13221
13222         PR target/9348
13223         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
13224         multiplies with a multiplication of the wrong signedness, its the
13225         signedness of the multiplication that we've performed that needs to
13226         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
13227         if expand_mult_highpart_adjust places the result in target.
13228
13229 2004-02-03  Richard Henderson  <rth@redhat.com>
13230
13231         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13232
13233 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
13234
13235         * config.gcc (sh[234]l): Use little endian fragments.
13236
13237 2004-02-03  Paul Koning  <pkoning@equallogic.com>
13238
13239         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13240         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13241         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13242         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13243         floating point format.
13244         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13245         the above functions.
13246         (output_move_quad): Output float values in correct target format.
13247         (legitimate_const_double_p): New function.
13248         * config/pdp11/pdp11.h: Fix typos.
13249         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13250         (TARGET_FLOAT_FORMAT): Ditto.
13251         (pdp11_f_format, pdp11_d_format): Add external declarations.
13252         (MAX_REGS_PER_ADDRESS): Corrected.
13253         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13254         (PRINT_OPERAND): Output float literals in target format.
13255
13256 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
13257
13258         PR c++/13975
13259         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13260         TI_PRIVATE.
13261         (access_public_node): Redefine.
13262         (access_protected_node): Likewise.
13263         (access_private_node): Likewise.
13264         * tree.c (build_common_tree_nodes): Create access_public_node,
13265         access_protected_node, and access_private_node.
13266
13267 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
13268
13269         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13270         (MASK_INLINE_INT_DIV_THR): Ditto.
13271         (MASK_INLINE_SQRT_LAT): Ditto.
13272         (MASK_INLINE_SQRT_THR): Ditto.
13273         (MASK_DWARF2_ASM): Ditto.
13274         (MASK_EARLY_STOP_BITS): Ditto.
13275
13276 2004-02-02  Paul Brook  <paul@codesourcery.com>
13277
13278         Merge from csl-arm-branch.
13279
13280         2004-01-30  Paul Brook  <paul@codesourcery.com>
13281
13282         * aof.h (REGISTER_NAMES): Add vfp reg names
13283         (ADDITIONAL_REGISTER_NAMES): Ditto.
13284         * aout.h (REGISTER_NAMES): Ditto.
13285         (ADDITIONAL_REGISTER_NAMES): Ditto.
13286         * arm-protos.h: Update/Add Prototypes.
13287         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13288         Only allow 0.0 for VFP.
13289         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
13290         (values_fp): Rename from values_fpa.  Update Users.
13291         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13292         Update users.  Only check valid constants for this hardware.
13293         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
13294         Only allow consts for FPA.
13295         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
13296         Only allow consts for FPA.
13297         (use_return_insn): Check for saved VFP regs.
13298         (arm_legitimate_address_p): Handle VFP DFmode addressing.
13299         (arm_legitimize_address): Ditto.
13300         (arm_general_register_operand): New function.
13301         (vfp_mem_operand): New function.
13302         (vfp_compare_operand): New function.
13303         (vfp_secondary_reload_class): New function.
13304         (arm_float_compare_operand): New function.
13305         (vfp_print_multi): New function.
13306         (vfp_output_fstmx): New function.
13307         (vfp_emit_fstm): New function.
13308         (arm_output_epilogue): Output VPF reg restore code.
13309         (arm_expand_prologue): Output VFP reg save code.
13310         (arm_print_operand): Add 'P'.
13311         (arm_hard_regno_mode_ok): Return modes for VFP regs.
13312         (arm_regno_class): Return classes for VFP regs.
13313         (arm_compute_initial_elimination_offset): Include space for VFP regs.
13314         (arm_get_frame_size): Ditto.
13315         * arm.h (FIXED_REGISTERS): Add VFP regs.
13316         (CALL_USED_REGISTERS): Ditto.
13317         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13318         (FIRST_VFP_REGNUM): Define.
13319         (LAST_VFP_REGNUM): Define.
13320         (IS_VFP_REGNUM): Define.
13321         (FIRST_PSEUDO_REGISTER): Include VFP regs.
13322         (HARD_REGNO_NREGS): Handle VFP regs.
13323         (REG_ALLOC_ORDER): Add VFP regs.
13324         (enum reg_class): Add VFP_REGS.
13325         (REG_CLASS_NAMES): Ditto.
13326         (REG_CLASS_CONTENTS): Ditto.
13327         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13328         (REG_CLASS_FROM_LETTER): Add 'w'.
13329         (EXTRA_CONSTRAINT_ARM): Add 'U'.
13330         (EXTRA_MEMORY_CONSTRAINT): Define.
13331         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13332         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13333         (REGISTER_MOVE_COST): Ditto.
13334         (PREDICATE_CODES): Add arm_general_register_operand,
13335         arm_float_compare_operand and vfp_compare_operand.
13336         * arm.md (various): Rename as above.
13337         (divsf3): Enable when TARGET_VFP.
13338         (divdf3): Ditto.
13339         (movdfcc): Ditto.
13340         (sqrtsf2): Ditto.
13341         (sqrtdf2): Ditto.
13342         (arm_movdi): Disable when TARGET_VFP.
13343         (arm_movsi_insn): Ditto.
13344         (movsi): Only split with general regs.
13345         (cmpsf): Use arm_float_compare_operand.
13346         (push_fp_multi): Restrict to TARGET_FPA.
13347         (vfp.md): Include.
13348         * vfp.md: New file.
13349         * fpa.md (various): Rename as above.
13350         * doc/md.texi: Document ARM w and U constraints.
13351
13352         2004-01-15  Paul Brook  <paul@codesourcery.com>
13353
13354         * config.gcc: Add with_fpu.  Allow with-float=softfp.
13355         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13356         Break out of loop when we find a float-abi.  Fix typo.
13357         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13358         Set -mfloat-abi=.
13359         * doc/install.texi: Document --with-fpu.
13360
13361         2003-01-14  Paul Brook  <paul@codesourcery.com>
13362
13363         * config.gcc (with_arch): Add armv6.
13364         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13365         * config/arm/arm.c (arm_overrride_options): Ditto.
13366
13367         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
13368
13369         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
13370         (FL_ARCH6): Renamed from FL_ARCH6J.
13371         (arm_arch3m): Renamed from arm_fast_multiply.
13372         (arm_arch6): Renamed from arm_arch6j.
13373         * arm.h: Update all uses of above.
13374         * arm-cores.def: Likewise.
13375         * arm.md: Likewise.
13376
13377         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
13378         not arm6j.  Add entry for arch armv6.
13379
13380         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
13381
13382         * arm.c (arm_emit_extendsi): Delete.
13383         * arm-protos.h (arm_emit_extendsi): Delete.
13384         * arm.md (zero_extendhisi2): Also handle zero-extension of
13385         non-subregs.
13386         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
13387         (thumb_zero_extendhisi2): Only match if not v6.
13388         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
13389         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
13390         (thumb_extendqisi2): Likewise.
13391         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
13392         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
13393         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
13394         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
13395         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
13396         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
13397         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
13398         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
13399         (arm_extendqisi2addsi): Likewise.
13400
13401         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
13402
13403         Revert this change:
13404         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13405         + REG addressing modes.
13406
13407         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13408         + REG addressing modes.
13409
13410         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
13411
13412         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
13413         CONSTANT_P_RTX.
13414
13415         2003-30-12  Paul Brook  <paul@codesourcery.com>
13416
13417         * longlong.h: protect arm inlines with !defined (__thumb__)
13418
13419         2003-30-12  Paul Brook  <paul@codesourcery.com>
13420
13421         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
13422
13423         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
13424
13425         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
13426         change.
13427
13428         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13429
13430         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
13431         to the virtual incoming args pointer for downward stacks.
13432
13433         2003-12-29  Paul Brook  <paul@codesourcery.com>
13434
13435         * config/arm/arm-cores.def: Add cost function.
13436         * config/arm/arm.c (arm_*_rtx_costs): New functions.
13437         (arm_rtx_costs): Remove
13438         (struct processors): Add rtx_costs field.
13439         (all_cores, all_architectures): Ditto.
13440         (arm_override_options): Set targetm.rtx_costs.
13441         (thumb_rtx_costs): New function.
13442         (arm_rtx_costs_1): Remove cases handled elsewhere.
13443         * config/arm/arm.h (processor_type): Add COSTS parameter.
13444
13445         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13446
13447         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
13448         (arm926ejs.md): Include it.
13449         * config/arm/arm926ejs.md: New pipeline description.
13450
13451         2003-12-24  Paul Brook  <paul@codesourcery.com>
13452
13453         * config/arm/arm.c (arm_arch6j): New variable.
13454         (arm_override_options): Set it.
13455         (arm_emit_extendsi): New function.
13456         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
13457         * config/arm/arm.h (arm_arch6j): Declare.
13458         * config/arm/arm.md: Add sign/zero extend insns.
13459
13460         2003-12-23  Paul Brook  <paul@codesourcery.com>
13461
13462         * config/arm/arm.c (all_architectures): Add armv6.
13463         * doc/invoke.texi: Document it.
13464
13465         2003-12-19  Paul Brook  <paul@codesourcery.com>
13466
13467         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
13468         insn patterns to match.
13469         * config/arm/arm-generic.md: Ditto.
13470         * config/arm/cirrus.md: Ditto.
13471         * config/arm/fpa.md: Ditto.
13472         * config/amm/iwmmxt.md: Ditto.
13473         * config/arm/arm1026ejs.md: Ditto.
13474         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
13475         for 11_loadb.
13476
13477         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
13478
13479         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
13480         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
13481         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
13482         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
13483         arm_no_early_mul_dep): Correctly deal with conditional execution,
13484         parallels and single shift operations.
13485         (arm_no_early_alu_shift_value_dep): Define.
13486         * arm.md (attr type): Replace 'normal' with 'alu',
13487         'alu_shift' and 'alu_shift_reg'.
13488         (attr core_cycles): Adjust.
13489         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
13490         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
13491         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
13492         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
13493         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
13494         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
13495         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
13496         attribute appropriately.
13497         * config/arm/arm1026ejs.md (alu_op): Adjust.
13498         (alu_shift_op, alu_shift_reg_op): New.
13499         * config/arm/arm1136.md: Add better bypasses for early
13500         registers. Remove load[234] and store[234] bypasses.
13501         (11_alu_op): Adjust.
13502         (11_alu_shift_op, 11_alu_shift_reg_op): New.
13503
13504         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
13505
13506         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
13507         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
13508         * config/arm/arm.c (arm_no_early_store_addr_dep,
13509         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
13510         * config/arm/arm1026ejs.md: Add load-store bypass.
13511         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
13512         Add bypasses between instructions.
13513
13514         2003-12-10  Paul Brook  <paul@codesourcery.com>
13515
13516         * config/arm/arm.c (arm_fpu_model): New variable.
13517         (arm_fload_abi): New variable.
13518         (target_fpe_name): Rename from target_fp_name.
13519         (target_fpu_name): New variable.
13520         (arm_is_cirrus): Remove.
13521         (fpu_desc): New struct.
13522         (all_fpus): Define.
13523         (pf_model_for_fpu): Define.
13524         (all_loat_abis): Define.
13525         (arm_override_options): Set fp arch flags based on -mfpu=
13526         and -float-abi=.
13527         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13528         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13529         (*): Use new TARGET_* flags.
13530         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
13531         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
13532         (TARGET_SOFT_FLOAT): Ditto.
13533         (TARGET_SOFT_FLOAT_ABI): New.
13534         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
13535         TARGET_HARD_FLOAT.
13536         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
13537         (TARGET_OPTIONS): Add -mfpu=.
13538         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13539         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13540         (arm_pf_model): Define.
13541         (arm_float_abi_type): Define.
13542         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
13543         * config/arm/arm.md: Use new TARGET_* flags.
13544         * config/arm/cirrus.md: Ditto.
13545         * config/arm/fpa.md: Ditto.
13546         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
13547         * config/arm/semi.h (ASM_SPEC): Ditto.
13548         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
13549         (FPUTYPE_DEFAULT): Set to VFP.
13550         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
13551
13552         2003-11-22  Phil Edwards  <phil@codesourcery.com>
13553
13554         PR target/12476
13555         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
13556         'bx' instead of 'b' to avoid branch range restrictions.  Output
13557         the thunk immediately before the thunked-to function.
13558         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
13559         .thumb_func if a thunk is being generated.  Emit .code 16 along
13560         with .thumb_func if a thunk is not being generated.
13561
13562         2003-11-15  Nicolas Pitre <nico@cam.org>
13563
13564         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
13565         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
13566         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
13567         (lshrdi3_iwmmxt): Renamed from lshrdi3.
13568         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
13569
13570         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
13571             Ian Lance Taylor  <ian@wasabisystems.com>
13572
13573         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
13574         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
13575
13576         2003-11-05  Phil Edwards  <phil@codesourcery.com>
13577
13578         * config/arm/arm.md (insn):  Add new V6 instruction names.
13579         (generic_sched):  New attr.
13580         * config/arm/arm-generic.md:  Use generic_sched here.
13581         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
13582         stages of pipeline.  Adjust latency counts accordingly.
13583         * config/arm/arm1136jfs.md:  New file.
13584
13585         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
13586
13587         * config/arm/arm.h (processor_type): New enumeration type.
13588         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
13589         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
13590         (CPP_CPU_ARCH_SPEC): Likewise.
13591         * config/arm/arm.c (arm_tune): New variable.
13592         (all_cores): Use cores.def.
13593         (all_architectures): Add representative processor.
13594         (arm_override_options): Restructure way in which tuning
13595         information is deduced.
13596         * arm.md: Update "insn" and "type" attributes throughout.
13597         (insn): New attribute.
13598         (type): Compute "mult" from "insn" attribute.  Add load2,
13599         load3, load4 alternatives.
13600         (arm automaton): Move to arm-generic.md.
13601         * config/arm/arm-cores.def: New file.
13602         * config/arm/arm-generic.md: Likewise.
13603         * config/arm/arm1026ejs.md: Likewise.
13604
13605 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
13606
13607         * doc/invoke.texi (SPARC options): Remove -mflat and
13608         all -mxxx (xxx:chip) options.
13609         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
13610         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
13611         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
13612         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
13613         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
13614         * config/sparc/sparc.c: Likewise.
13615         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
13616         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
13617         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
13618         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
13619         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
13620         (sparc_flat_must_save_register_p): Likewise.
13621         (sparc_flat_compute_frame_size): Likewise.
13622         (sparc_flat_save_restore): Likewise.
13623         (sparc_flat_function_prologue): Likewise.
13624         (sparc_flat_function_epilogue): Likewise.
13625         (sparc_flat_epilogue_delay_slots): Likewise.
13626         (sparc_flat_eligible_for_epilogue_delay): Likewise.
13627         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
13628         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
13629         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
13630         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
13631         (CONDITIONAL_REGISTER_USAGE): Likewise.
13632         (FRAME_POINTER_REQUIRED): Likewise.
13633         (INITIAL_ELIMINATION_OFFSET): Likewise.
13634         (BASE_RETURN_VALUE_REG): Likewise.
13635         (BASE_OUTGOING_VALUE_REG): Likewise.
13636         (BASE_PASSING_ARG_REG): Likewise.
13637         (BASE_INCOMING_ARG_REG): Likewise.
13638         (INCOMING_REGNO): Likewise.
13639         (OUTGOING_REGNO): Likewise.
13640         (LOCAL_REGNO): Likewise.
13641         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
13642         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
13643         (EPILOGUE_USES): Likewise.
13644         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
13645         ("flat" attribute): Delete.
13646         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
13647         handling.
13648         (call followed by jump define_peephole's): Delete.
13649         (exception_receiver): Likewise.
13650         (builtin_setjmp_receiver): Likewise.
13651         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
13652
13653 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
13654
13655         PR c/11658
13656         PR c/13994
13657         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
13658         on langhooks.h.
13659         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
13660         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
13661         Include langhooks.h.  Replace c_common_truthvalue_conversion
13662         with the truthvalue_conversion language hook throughout.
13663         (expr_no_commas): Call default_conversion before save_expr
13664         for the first term of the production 'x ? : y'.
13665         * c-common.c (c_common_truthvalue_conversion): Remove
13666         obsolete block.  Invoke recursively the hook instead
13667         of this function.
13668         * c-convert.c (convert): handle ERROR_MARK_NODE.
13669         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
13670         returned by the truthvalue_conversion language hook.
13671         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13672         c_objc_common_truthvalue_conversion.
13673         * c-objc-common.c (c_objc_common_truthvalue_conversion):
13674         New function.
13675         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
13676         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13677         c_objc_common_truthvalue_conversion.
13678
13679 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13680
13681         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
13682         of gen_rtx.
13683         (LIBCALL_VALUE): Likewise.
13684         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
13685         gen_rtx_CC0 instead of gen_rtx.
13686         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
13687         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
13688         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
13689         gen_rtx.
13690         (m68hc11_emit_logical): Likewise.
13691
13692 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13693
13694         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
13695         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
13696         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
13697         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
13698         config/mips/mips.md, config/mmix/mmix.c,
13699         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
13700         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
13701         config/rs6000/altivec.md, config/s390/s390.c,
13702         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
13703         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
13704         Use const0_rtx instead of GEN_INT (0).  Do the same for other
13705         constants that are readily available.
13706
13707 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13708
13709         * doloop.c, optabs.c, regmove.c, sched-deps.c,
13710         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
13711         instead of GEN_INT (0).  Do the same for other constants that
13712         are readily available.
13713
13714 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13715
13716         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
13717         gen_rtx.
13718         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
13719         instead of gen_rtx.
13720         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
13721         gen_rtx.
13722         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
13723         gen_rtx_ASHIFT instead of gen_rtx.
13724         (udivmodqi4): Likewise.
13725
13726 2004-02-02  Richard Henderson  <rth@redhat.com>
13727
13728         PR target/13789
13729         * expr.c (store_expr): Use force_operand before emit_move_insn.
13730
13731 2004-02-02  Jeff Law  <law@redhat.com>
13732             Roger Sayle  <roger@eyesopen.com>
13733
13734         * tree.c (commutative_tree_code, associative_tree_code): New
13735         functions.
13736         (iterative_hash_expr): Use commutative_tree_code.
13737         * tree.h (commutative_tree_code, associative_tree_code): Declare.
13738         * fold-const.c (operand_equal_p): Use commutative_tree_code
13739         rather than inlining the commutativity check.
13740         (fold): Likewise.
13741
13742 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13743
13744         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
13745         * config/frv/frv-protos.h: Remove the prototype for
13746         frv_function_arg_keep_as_reference.
13747         * config/frv/frv.c (frv_function_arg_keep_as_reference):
13748         Remove.
13749         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
13750         * config/stormy16/stormy16.h: Remove the commented-out
13751         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
13752
13753 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
13754
13755         PR target/13914
13756         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
13757         for retaddr_column.
13758
13759 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13760
13761         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
13762         gen_rtx.
13763
13764 2004-02-02  Eric Christopher  <echristo@redhat.com>
13765             Zack Weinberg  <zack@codesourcery.com>
13766
13767         * c-opts.c (c_common_handle_option): Add -finput-charset.
13768         * c.opt: Ditto.
13769         * cppcharset.c (one_iso88591_to_utf8): Remove.
13770         (convert_iso88591_utf8): Ditto.
13771         (conversion_tab): Remove 8859-1 converter.
13772         (_cpp_input_to_utf8): Remove.
13773         (_cpp_init_iconv_buffer): Ditto.
13774         (_cpp_close_iconv_buffer): Ditto.
13775         (_cpp_convert_input): New function.
13776         (_cpp_default_encoding): Ditto.
13777         * cpphash.h: Add/remove prototypes for above.
13778         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
13779         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
13780         for narrow execution and input character sets.
13781         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
13782         * doc/cppopts.texi: Document -finput-charset.
13783
13784 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
13785
13786         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
13787         against FIRST_PSEUDO_REGISTER.
13788
13789 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13790
13791         * doc/invoke.texi (SPARC options): Further improve.
13792
13793 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13794
13795         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
13796         config/h8300/h8300.c, config/ip2k/ip2k.md,
13797         config/iq2000/iq2000.c, config/mips/mips.c,
13798         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
13799         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
13800         config/v850/v850.md: Fix indentation.
13801
13802 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13803
13804         * config/sparc/sparc.c (function_arg_slotno): Align TImode
13805         arguments on a 16-byte boundary in the parameter array if ARCH64.
13806         Split handling of TFmode.
13807
13808 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
13809
13810         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
13811         Don't test CONSTANT_P (x).
13812         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
13813         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
13814         Fix misindentation.
13815
13816 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13817
13818         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
13819
13820 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13821
13822         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
13823         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
13824         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
13825         config/iq2000/iq2000.c, config/m32r/m32r.c,
13826         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
13827         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
13828         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
13829         config/stormy16/stormy16.c, config/v850/v850.md,
13830         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
13831
13832 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13833
13834         * config/mcore/mcore.c (block_move_sequence): Replace
13835         gen_rtx_CONST_INT with GEN_INT.
13836
13837 2004-02-02  Jan Hubicka  <jh@suse.cz>
13838
13839         * alias.c (record_set): Use hard_regno_nregs.
13840         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
13841         * builtins.c (apply_args_size): Likewise.
13842         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
13843         mark_set_regs, add_stored_regs, mark_referenced_regs,
13844         insert_restore, insert_save, insert_one_insn): Likewise.
13845         * cfgcleanup.c: Include regs.h
13846         (mark_effect, mentions_nonequal_regs): Likewise.
13847         * cfgrtl.c (mark_killed_regs): Likewise
13848         * combine.c (update_table_tick, record_value_for_reg,
13849         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
13850         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
13851         reg_bitfield_target_p, distribute_notes): Likewise.
13852         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
13853         exp_equiv_p, cse_insn): Likewise.
13854         * cselib.c (cselib_lookup): Likewise.
13855         (cselib_invalidate_regno, cselib_record_set): Likewise.
13856         * df.c (df_ref_record): Likewise.
13857         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
13858         Likewise.
13859         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
13860         count_or_remove_death_notes_bb): Likewise.
13861         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
13862         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
13863         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
13864         * integrate.c (mark_stores): Likewise.
13865         * jump.c (delete_prior_computation): Likewise.
13866         * lcm.c (reg_dies, reg_becomes_live): Likewise.
13867         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
13868         * loop.c (LOOP_REGNO_NREGS): Likewise.
13869         * postreload.c (reload_combine, reload_combine_note_store,
13870         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
13871         * ra-colorize.c (combine, color_usable_p, get_free_reg,
13872         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
13873         try_recolor_web, insert_coalesced_conflicts, check_colors,
13874         break_precolored_alias): Likewise.
13875         * ra-debug.c: Include regs.h
13876         (ra_print_rtx_object): Likewise.
13877         * ra-rewrite (choose_spill_colors): Likewise.
13878         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
13879         * ra.c (init_ra): Likewise.
13880         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
13881         peep2_find_free_register): Likewise.
13882         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
13883         * regclass.c (hard_regno_nregs): New array.
13884         (init_reg_modes_once): Initialize it.
13885         (choose_hard_reg_mode): Use it.
13886         (record_reg_classes): Likewise.
13887         * regmove.c (mark_flags_life_zones): Likewise.
13888         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
13889         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
13890         copy_value, maybe_mode_change, find_oldest_value_reg,
13891         copyprop_hardreg_forward_1):
13892         * regs.h (hard_regno_nregs): Declare.
13893         * realod.c (reload_inner_reg_of_subreg): Use it.
13894         (push_reload, combine_reloads, find_dummy_reload,
13895         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
13896         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
13897         reload_adjust_reg_for_mode): Likewise.
13898         * reload1.c (compute_use_by_pseudos, count_pseudo,
13899         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
13900         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
13901         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
13902         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
13903         delete_output_reload): Likewise.
13904         * resource.c (update_live_status, mark_referenced_resources,
13905         mark_set_resources, mark_target_live_regs): Likewise.
13906         * rtlanal.c:  Include regs.h
13907         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
13908         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
13909         subreg_regno_offset, subreg_offset_representable_p,
13910         hoist_test_store): Likewise.
13911         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
13912         * sched-rgn.c (check_live_1, update_live_1): Likewise.
13913         * stmt.c: Include regs.h
13914         (decl_conflicts_with_clobbers_p): Likewise.
13915         * varasm.c (make_decl_rtl): Likewise.
13916         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
13917
13918 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13919
13920         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
13921         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
13922         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
13923         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
13924         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
13925         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13926         config/iq2000/iq2000.h, config/m32r/m32r.c,
13927         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
13928         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
13929         config/mcore/mcore.c, config/mcore/mcore.h,
13930         config/mcore/mcore.md, config/mips/mips.c,
13931         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
13932         config/rs6000/rs6000.c, config/s390/s390.c,
13933         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
13934         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
13935         "gen_rtx (FOO, " with "gen_rtx_FOO (".
13936
13937 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13938
13939         * config/h8300/h8300.md (two peephole2's): New.
13940
13941 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
13942
13943         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
13944         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
13945         (ASM_CPU_SPEC): Likewise
13946         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
13947         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
13948
13949 2004-02-01  Roger Sayle  <roger@eyesopen.com>
13950
13951         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
13952         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
13953         (expand_builtin): Always call expand_builtin_pow.
13954
13955 2004-02-01  Roger Sayle  <roger@eyesopen.com>
13956
13957         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
13958         BUILT_IN_SIGNBITL): New GCC builtins.
13959         * builtins.c (expand_builtin_signbit): New function to RTL expand
13960         calls to signbit, signbitf and signbitl as inline intrinsics.
13961         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
13962         (fold_builtin_signbit): New function to perform constant folding
13963         of signbit, signbitf and signbitl.
13964         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
13965
13966         * doc/extend.texi: Document new signbit{,f,l} builtins.
13967
13968 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
13969
13970         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
13971
13972 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
13973
13974         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
13975         "mips_const_double_ok" and "simple_memory_operand", which were
13976         removed from the MIPS port with the mips-3_4-rewrite branch merge.
13977         * config/mips/mips.c (mips16_lay_out_constants): Update comment
13978         for removal of simple_memory_operand.
13979
13980 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13981
13982         * config/c4x/c4x.md: Use GEN_INT instead of
13983         gen_rtx (CONST_INT, ...).
13984
13985 2004-01-31  Richard Henderson  <rth@redhat.com>
13986
13987         * varasm.c (output_constant_pool): Don't zap the pool.
13988
13989 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13990
13991         * genrecog.c (decision_type): Add DT_const_int.
13992         (write_cond) [DT_const_int]: Print a comparison against small
13993         constant.
13994         (write_node): Simplify comparisons against small constants
13995         before printing tests.
13996
13997 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13998
13999         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14000         instead of gen_rtx_CONST_INT.
14001
14002 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14003
14004         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14005         instead of gen_rtx_CONST_INT.
14006
14007 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14008
14009         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14010         hook_bool_CUMULATIVE_ARGS_false.
14011         * targhooks.c (default_strict_argument_naming): Rename to
14012         hook_bool_CUMULATIVE_ARGS_false.
14013         * targhooks.h: Update the prototype for
14014         default_strict_argument_naming.
14015
14016 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14017
14018         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14019         * config/sh/sh.h: Likewise.
14020         * config/sh/sh.md: Likewise.
14021
14022 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14023
14024         * doc/invoke.texi (SPARC options): Restructure and update.
14025
14026 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14027
14028         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14029         STRICT_ARGUMENT_NAMING): Poison.
14030         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14031         hook_bool_tree_false.
14032         * targhooks.c (default_promote_function_args): Remove.
14033         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14034         Don't check incoming.
14035         (default_strict_argument_naming): Don't use
14036         STRICT_ARGUMENT_NAMING.
14037         * targhooks.h: Remove the prototype for
14038         default_promote_function_args.
14039
14040 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14041
14042         * config/i386/i386-protos.h: Remove the prototype for
14043         ix86_setup_incoming_varargs.
14044         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14045         (ix86_setup_incoming_varargs): Make it static.
14046         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14047
14048 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14049
14050         * alloc-pool.c: Fix comment typos.
14051         * builtin-types.def: Likewise.
14052         * builtins.def: Likewise.
14053         * c-pretty-print.c: Likewise.
14054         * df.h: Likewise.
14055         * reload1.c: Likewise.
14056
14057 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14058
14059         * doc/invoke.texi: Follow spelling conventions.
14060         * doc/tm.texi: Likewise.
14061
14062 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14063
14064         * doc/install.texi: Fix typos.
14065         * doc/invoke.texi: Likewise.
14066
14067 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14068
14069         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14070         registers as pointers.
14071         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14072
14073 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
14074
14075         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14076         and restore it to gen_lowpart_general on exit.
14077         (gen_lowpart_for_combine): Adjust all callers to go through
14078         gen_lowpart.
14079         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14080         and restore it to gen_lowpart_general on exit.
14081         (gen_lowpart_if_possible): Adjust all callers to go through
14082         gen_lowpart.
14083         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14084         (gen_lowpart): Declare as pointer to function, initialized to
14085         gen_lowpart_general.
14086         * rtl.h (gen_lowpart): Declare as pointer to function.
14087
14088 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14089
14090         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14091         * calls.c: Likewise.
14092         * emit-rtl.c: Likewise.
14093         * function.c: Likewise.
14094         * reload1.c: Likewise.
14095         * config/i386/cygming.h: Likewise.
14096         * config/i386/i386.c: Likewise.
14097         * config/i386/winnt.c: Likewise.
14098
14099 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
14100
14101         PR bootstrap/9249
14102         * doc/install.texi: document --enable-__cxa_atexit option.
14103         * configure.ac: Disable __cxa_atexit if not supported.
14104         * configure: Regenerate.
14105
14106 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
14107
14108         * ggc-zone.c (ggc_free): New function.
14109
14110 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14111
14112         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14113         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14114         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14115         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14116         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14117         config/alpha/alpha.c, config/alpha/alpha.h,
14118         config/alpha/alpha.md, config/alpha/unicosmk.h,
14119         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14120         config/c4x/c4x-protos.h, config/c4x/c4x.md,
14121         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14122         config/frv/frvend.c, config/i386/cygming.h,
14123         config/i386/djgpp.h, config/i386/emmintrin.h,
14124         config/i386/gthr-win32.c, config/i386/i386-interix.h,
14125         config/i386/i386-protos.h, config/i386/openbsd.h,
14126         config/i386/winnt.c, config/i386/xm-mingw32.h,
14127         config/i386/xmmintrin.h, config/ia64/ia64.md,
14128         config/iq2000/iq2000.md, config/m32r/m32r.md,
14129         config/m68k/m68k.md, config/mcore/mcore-elf.h,
14130         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14131         config/mips/iris5gas.h, config/mips/iris6.h,
14132         config/mips/iris6gas.h, config/mips/linux.h,
14133         config/mips/mips.md, config/mips/netbsd.h,
14134         config/mips/openbsd.h, config/mips/windiss.h,
14135         config/pa/fptr.c, config/rs6000/aix.h,
14136         config/rs6000/altivec.h, config/rs6000/darwin.h,
14137         config/rs6000/xcoff.h, config/s390/s390-protos.h,
14138         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14139         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14140         config/sparc/sol2.h: Update copyright.
14141
14142 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
14143
14144         * Makefile.in (abs_docdir, abs_srcdir): Define.
14145         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14146
14147 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14148
14149         * genconfig.c (main): Have CC0_P check its operand even on a
14150         target without cc0.
14151
14152 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14153
14154         * config/alpha/alpha.c: Remove mentions of deprecates macros
14155         in comments, remove some target-independent comments about target
14156         macros, and/or add minimal function comments for target hook
14157         implementations.
14158         * config/avr/avr.c: Likewise.
14159         * config/ia64/ia64.h: Likewise.
14160         * config/ip2k/ip2k.c: Likewise.
14161         * config/iq2000/iq2000.c: Likewise.
14162         * config/m32r/m32r.h: Likewise.
14163         * config/m68hc11/m68hc11.c: Likewise.
14164         * config/mcore/mcore.c: Likewise.
14165         * config/mmix/mmix.c: Likewise.
14166         * config/mn10300/mn10300.c: Likewise.
14167         * config/pa/pa.c: Likewise.
14168         * config/pdp11/pdp11.c: Likewise.
14169         * config/rs6000/rs6000.h: Likewise.
14170         * config/sh/sh.c: Likewise.
14171         * config/sh/sh.h: Likewise.
14172         * config/sparc/sparc.c: Likewise.
14173         * config/sparc/sparc.h: Likewise.
14174         * config/stormy16/stormy16.c: Likewise.
14175         * config/xtensa/xtensa.c: Likewise.
14176
14177 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14178
14179         PR optimization/12147
14180         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14181         RELOAD_FOR_OPADDR_ADDR.
14182         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14183         might be reused as RELOAD_FOR_OPADDR_ADDR register.
14184
14185 2004-01-30  Jan Hubicka  <jh@suse.cz>
14186
14187         * reload.c (get_secondary_mem): Fix updating of
14188         secondary_memlocs_elim_used.
14189
14190 2004-01-30  Richard Henderson  <rth@redhat.com>
14191
14192         * varasm.c (struct rtx_const, struct pool_constant): Remove.
14193         (MAX_RTX_HASH_TABLE): Remove.
14194         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14195         (first_pool, last_pool, pool_offset): Remove.
14196         (struct rtx_constant_pool): Split out from ...
14197         (struct varasm_status): ... here.  Reference one via pointer.
14198         (struct constant_descriptor_rtx): Merge struct pool_constant.
14199         (SYMHASH): Remove.
14200         (decode_rtx_const): Remove.
14201         (const_hash_rtx, compare_constant_rtx): Remove.
14202         (record_constant_rtx): Remove.
14203         (const_desc_rtx_hash, const_desc_rtx_eq): New.
14204         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14205         (const_rtx_hash_1, const_rtx_hash): New.
14206         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14207         (simplify_subtraction): Use simplify_rtx.
14208         (force_const_mem): Rewrite to use new data structures.
14209         (find_pool_constant): Likewise.
14210         (get_pool_constant, get_pool_constant_mark,
14211         get_pool_constant_for_function, get_pool_mode,
14212         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14213         (output_constant_pool_2): Split out from output_constant_pool.
14214         (output_constant_pool_1): Likewise.  Use new pool datastructures.
14215         (output_constant_pool): Zap entire pool datastructure.
14216         (mark_constant): Use new pool datastructures.
14217         (mark_constants): Use for_each_rtx.
14218         (mark_constant_pool): Use new pool datastructures.
14219
14220 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
14221
14222         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
14223         Copy operands[1] to pseudo for simplify_gen_subreg.
14224
14225 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14226
14227         * gcse.c (bypass_block): Fix a typo in the previous check-in
14228         to the file.
14229
14230 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
14231
14232         * toplev.c: Include alloc-pool.h.
14233         * Makefile.in (toplev.c): Update dependencies.
14234
14235 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14236
14237         * combine.c (simplify_shift_const, case XOR): Be careful when
14238         commuting XOR with ASHIFTRT.
14239
14240 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14241             Eric Botcazou  <ebotcazou@libertysurf.fr>
14242
14243         * config/sparc/sparc-protos.h: Remove the prototype for
14244         sparc_builtin_saveregs.
14245         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14246         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14247         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14248         (TARGET_STRUCT_VALUE_RTX): Likewise.
14249         (TARGET_RETURN_IN_MEMORY): Likewise.
14250         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14251         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14252         (sparc_builtin_saveregs): Make it static.
14253         (sparc_promote_prototypes): New.
14254         (sparc_struct_value_rtx): Likewise.
14255         (sparc_return_in_memory): Likewise.
14256         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14257         (PROMOTE_FUNCTION_RETURN): Likewise.
14258         (RETURN_IN_MEMORY): Likewise.
14259         (STRUCT_VALUE): Likewise.
14260         (STRUCT_VALUE_INCOMING): Likewise.
14261         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14262         (STRICT_ARGUMENT_NAMING): Likewise.
14263         (PROMOTE_PROTOTYPES): Likewise.
14264
14265         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14266
14267 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14268
14269         PR c/12818
14270         * varasm.c (const_hash_1) <STRING_CST>: Use the
14271         address to compute the hash value if flag_writable_strings.
14272         (compare_constant) <STRING_CST>: Compare the addresses
14273         if flag_writable_strings.
14274         (build_constant_desc): Do not copy the expression for a
14275         STRING_CST if flag_writable_strings.
14276
14277 2004-01-30  Jan Hubicka  <jh@suse.cz>
14278
14279         * alloc-pool.c: Include hashtab.h
14280         (alloc_pool_descriptor): New structure
14281         (alloc_pool_hash): New global variable.
14282         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14283         (create_alloc_pool): Update statistics.
14284         (free_alloc_pool): Likewise.
14285         (pool_alloc): Likewise.
14286         (output_info): New structure
14287         (print_statistics, dump_alloc_pool_statistics): New function.
14288         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14289         (dump_alloc_pool_statistics): Declare.
14290         * toplev.c (finalize):  Dump statistics.
14291
14292         * reload.c (secondary_memlocs_elim_used): New static variable.
14293         (get_secondary_mem): Update it.
14294         (find_reloads): Use it.
14295
14296 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
14297
14298         * toplev.c: Fix broken checkin of 2003-12-30, again.
14299
14300 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14301
14302         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14303         s390*-*-* targets by specifying a 'nop' insn.
14304         * configure: Regenerate.
14305
14306 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14307
14308         PR target/11475
14309         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14310
14311 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14312
14313         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14314         of addr when creating MEM copy.
14315
14316 2004-01-29  Devang Patel  <dpatel@apple.com>
14317
14318         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
14319
14320 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14321
14322         PR inline-asm/6162
14323         * reload.c (find_reloads): Only support one pair of commutative
14324         operands.
14325
14326 2004-01-29  Roger Sayle  <roger@eyesopen.com>
14327
14328         PR java/13824
14329         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14330         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14331         recursion.
14332
14333 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14334
14335         * config/frv/frv.c: Don't mention deprecated macros in
14336         comments.  Remove some target-independent comments about
14337         target macros.
14338         * config/frv/frv.h: Likewise.
14339
14340 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14341
14342         * cfghooks.c (split_block): Set probability and count of the
14343         new edge.
14344
14345 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
14346
14347         * dwarf2out.c (struct die_struct): Added field decl_id.
14348         (decl_die_table): Changed to hash table.
14349         (decl_die_table_allocated): Deleted.
14350         (decl_die_table_in_use): Deleted.
14351         (DECL_DIE_TABLE_INCREMENT): Deleted.
14352         (decl_die_table_hash): New function.
14353         (decl_die_table_eq): New function.
14354         (lookup_decl_die): Lookup in a hash table.
14355         (equate_decl_number_to_die): Insert into a hash table.
14356         (dwarf2out_init): Init hash table decl_die_table.
14357
14358 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14359
14360         PR optimization/13424
14361         * expr.c (store_constructor): Revert 2003-12-03 change.
14362
14363         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14364         expected before returning early.  Avoid sharing RTL if they
14365         need to be changed.
14366
14367         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
14368         handling so that memory attributes are preserved.  Don't call
14369         ix86_set_move_mem_attrs.
14370         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
14371         (ix86_expand_clrstr): Rename src argument to
14372         dst.  Rework rep_stos and strset handling so that memory attributes
14373         are preserved.
14374         (ix86_expand_strlen): Pass src argument to
14375         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
14376         memory attributes are preserved.
14377         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
14378         change_address instead of gen_rtx_MEM.
14379         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
14380         expanders.
14381         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
14382         strmovqi, strmovqi_rex64): Remove.
14383         (rep_mov*, strmov*): Prefix insn names with *.
14384         (strset, strset_singleop, rep_stos): New expanders.
14385         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
14386         strsetqi, strsetqi_rex64): Remove.
14387         (rep_stos*, strset*): Prefix insn names with *.
14388         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
14389         to SImode.
14390         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
14391         are preserved.
14392         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
14393         Prefix insn names with *.
14394         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
14395         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
14396         (strlenqi_1): New expander.
14397         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
14398
14399 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14400
14401         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
14402         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
14403         verify_flow_info): Declaration removed.
14404         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
14405         (debug_bb, debug_bb_n): Add argument to dump_bb call.
14406         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
14407         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
14408         instead of delete_block.
14409         * cfghooks.c: Include timevar.h and toplev.h.
14410         (cfg_hooks): Define here.
14411         (verify_flow_info, dump_bb): Moved from cfg.c.
14412         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14413         split_block, split_block_after_labels, move_block_after,
14414         delete_basic_block, split_edge, create_basic_block,
14415         create_empty_bb, can_merge_blocks_p, merge_blocks,
14416         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14417         New functions.
14418         * cfghooks.h (struct cfg_hooks): Added fields name,
14419         make_forwarder_block, tidy_fallthru_edge and
14420         move_block_after. Changed type of verify_flow_info, dump_bb,
14421         split_block fields. Renamed cfgh_split_edge and delete_block
14422         fields.
14423         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14424         split_block, delete_block, split_edge, create_basic_block,
14425         can_merge_blocks_p, merge_blocks): Macros removed.
14426         (cfg_hooks): Do not export.
14427         (verify_flow_info, dump_bb, redirect_edge_and_branch,
14428         redirect_edge_and_branch_force, split_block, split_block_after_labels,
14429         move_block_after, delete_basic_block, split_edge, create_basic_block,
14430         create_empty_bb, can_merge_blocks_p, merge_blocks,
14431         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14432         Declare.
14433         (cfg_layout_rtl_cfg_hooks): Declare.
14434         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
14435         New functions.
14436         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
14437         (redirect_edge_with_latch_update): Removed.
14438         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
14439         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
14440         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
14441         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
14442         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
14443         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
14444         cfghooks.c.
14445         (rtl_create_basic_block): Coding style fix.
14446         (rtl_tidy_fallthru_edge, rtl_move_block_after,
14447         rtl_make_forwarder_block): New functions.
14448         (update_cfg_after_block_merging): Removed.
14449         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
14450         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
14451         to dump_bb.
14452         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
14453         find_if_case_2): Don't update dominators.
14454         * timevar.def (TV_CFG_VERIFY): New.
14455         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
14456         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
14457         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
14458         (remove_bbs): Don't call remove_bbs.
14459         (create_preheader): Use make_forwarder_block.
14460         (mfb_keep_just, mfb_update_loops): New static functions.
14461
14462 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14463
14464         * config/avr/avr.h: Remove target-independent comments about
14465         target macros.
14466
14467 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
14468
14469         * timevar.c (timevar_print): Mention when checking is enabled.
14470
14471 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
14472
14473         * c-lex.c (c_lex): Rename to...
14474         (c_lex_with_flags): Add new parameter to get CPP flags.
14475         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
14476         * c-pragma.h (c_lex_with_flags): Declare.
14477
14478 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14479
14480         * config/mcore/mcore.c (mcore_external_libcall): Add a
14481         comment.
14482         (mcore_return_in_memory): Likewise.
14483
14484 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14485
14486         * config/mcore/mcore-protos.h: Remove the prototype for
14487         mcore_setup_incoming_varargs.
14488         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14489         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14490         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14491         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14492         (TARGET_STRUCT_VALUE_RTX): Likewise.
14493         (TARGET_RETURN_IN_MEMORY): Likewise.
14494         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14495         (mcore_setup_incoming_varargs): Make it static.  Receive the
14496         first argument by reference.  Add argument second_time.
14497         (mcore_external_libcall): New.
14498         (mcore_return_in_memory): Likewise.
14499         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
14500         (PROMOTE_FUNCTION_RETURN): Likewise.
14501         (STRUCT_VALUE): Likewise.
14502         (RETURN_IN_MEMORY): Likewise.
14503         (SETUP_INCOMING_VARARGS): Likewise.
14504         (PROMOTE_PROTOTYPES): Likewise.
14505         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14506
14507 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14508
14509         * config/m32r/m32r-protos.h: Remove the prototype for
14510         m32r_setup_incoming_varargs.
14511         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
14512         (TARGET_STRUCT_VALUE_RTX): Likewise.
14513         (TARGET_RETURN_IN_MEMORY): Likewise.
14514         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14515         (m32r_return_in_memory): New.
14516         (m32r_setup_incoming_varargs): Make it static.
14517         * config/m32r/m32r.h: Remove #undef of
14518         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
14519         definitions of PROMOTE_FUNCTION_ARGS and
14520         PROMOTE_FUNCTION_RETURN.
14521         (PROMOTE_PROTOTYPES): Remove.
14522         (RETURN_IN_MEMORY): Likewise.
14523         (STRUCT_VALUE): Likewise.
14524
14525 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14526
14527         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
14528         (TARGET_STRUCT_VALUE_RTX): Likewise.
14529         (m68k_struct_value_rtx): Likewise.
14530         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
14531         STRUCT_VALUE_REGNUM.
14532         (PROMOTE_PROTOTYPES): Remove.
14533         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
14534         STRUCT_VALUE_REGNUM.
14535         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
14536         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
14537
14538 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14539
14540         * config/stormy16/stormy16.c
14541         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
14542         TARGET_BUILD_BUILTIN_VA_LIST.
14543
14544 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14545
14546         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
14547         (TARGET_STRUCT_VALUE_RTX): Likewise.
14548         (TARGET_RETURN_IN_MEMORY): Likewise.
14549         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14550         (v850_return_in_memory): Likewise.
14551         (v850_setup_incoming_varargs): Likewise.
14552         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
14553         (SETUP_INCOMING_VARARGS): Likewise.
14554         (RETURN_IN_MEMORY): Likewise.
14555         (STRUCT_VALUE): Likewise.
14556
14557 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14558
14559         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
14560         (fr30_setup_incoming_varargs): Don't use
14561         STRICT_ARGUMENT_NAMING.
14562         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
14563         (STRICT_ARGUMENT_NAMING): Likewise.
14564
14565 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14566
14567         * config/frv/frv-protos.h: Remove the prototype for
14568         frv_expand_builtin_saveregs.
14569         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
14570         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14571         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
14572         STRUCT_VALUE_REGNUM.
14573         (frv_expand_builtin_saveregs): Make it static.
14574         (frv_struct_value_rtx): New.
14575         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
14576
14577 2004-01-29  Jan Hubicka  <jh@suse.cz>
14578
14579         PR c++/12850
14580         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
14581         initial pointers.
14582         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
14583         for functions that will be only inlined.
14584         (cgraph_mark_function_to_output): Likewise.
14585         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
14586         do not clear function body.
14587         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
14588         (tree_rest_of_compilation): Reorganize the logic releasing function
14589         body to use callgraph datastructure.
14590
14591 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14592
14593         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
14594         to register_operand.
14595
14596 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14597
14598         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
14599         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
14600         match_operand expressions so that all match_dups appear
14601         lexically after their corresponding match_operands.
14602
14603 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14604
14605         * config/h8300/h8300.c (WORD_REG_USED): Use
14606         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
14607         (compute_saved_regs): Likewise.
14608         (h8300_expand_prologue): Likewise.  Allocate locals after
14609         saving registers.
14610         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
14611         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
14612         registers.
14613         (h8300_initial_elimination_offset): Adjust for the new frame
14614         layout, which swaps flips the order of locals and saved
14615         registers.
14616         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
14617         (HARD_FRAME_POINTER_REGNUM): New.
14618         (ELIMINABLE_REGS): Add an elimination rule from
14619         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
14620         (REGISTER_NAMES): Add fp.
14621         * config/h8300/h8300.md (FP_REG): Change to 11.
14622         (HFP_REG): New.
14623
14624 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14625
14626         * genrecog.c (write_node): Remove a useless local variable.
14627
14628 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14629
14630         * Makefile.in (options.c options.h): Use stamp file s-options to
14631         avoid unnecessary rebuilds.
14632         (options.o): New target listing dependencies.
14633         (gtyp-gen.h): Use stamp file s-gtyp-gen.
14634         (STAGESTUFF): Add s-gtyp-gen.
14635
14636 2004-01-28  Richard Henderson  <rth@redhat.com>
14637
14638         * ggc.h (ggc_free): Declare.
14639         * ggc-common.c (ggc_realloc): Use it.
14640         * ggc-page.c: Remove lots of inline markers.
14641         (globals): Add free_object_list.
14642         (ggc_alloc): Tidy.
14643         (ggc_free, validate_free_objects): New.
14644         (poison_pages): Provide default.
14645         (ggc_collect): Call validate_free_objects; emit markers to
14646         the debug file.
14647
14648 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14649             Jim Wilson  <wilson@specifixinc.com>
14650
14651         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
14652         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
14653         scratch pointer.
14654         (ia64_secondary_reload_class): Delete case GR_REGS.
14655         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
14656         Do not allocate a scratch register.
14657         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
14658
14659 2004-01-28  Jan Hubicka  <jh@suse.cz>
14660
14661         * gcse.c (bypass_block): Prevent edges to be unified when we are
14662         about to emit compenstation code.
14663
14664 2004-01-28  Nick Clifton  <nickc@redhat.com>
14665
14666         * config/arm/arm.c (arm_expand_builtin): Force second argument of
14667         the setcwx insn into a register.
14668
14669 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
14670
14671         * config/fp-bit.c (pack_d): When using paired doubles to implement
14672         a long double, round the high part separately.
14673         (unpack_d): Fix the case in which the high part is a power of two
14674         and the low part is a nonzero value of the opposite sign.
14675
14676 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14677
14678         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14679         (TARGET_STRUCT_VALUE_RTX): Likewise.
14680         (c4x_external_libcall): Likewise.
14681         (c4x_struct_value_rtx): Likewise.
14682         * config/c4x/c4x.h: Remove.
14683         (STRUCT_VALUE_REGNUM): Likewise.
14684         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14685
14686 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14687
14688         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
14689         (TARGET_STRUCT_VALUE_RTX): Likewise.
14690         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
14691         (STRUCT_VALUE): Likewise.
14692         (PROMOTE_PROTOTYPES): Likewise.
14693
14694 2004-01-27  Roger Sayle  <roger@eyesopen.com>
14695
14696         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
14697         CONST_INT before using INTVAL.
14698
14699 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
14700
14701         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
14702         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
14703         frame if !TARGET_BACKCHAIN.
14704         * config/s390/s390.md ("allocate_stack"): Use pattern only if
14705         TARGET_BACKCHAIN.
14706         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
14707
14708 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14709
14710         * ia64.c (ia64_function_arg): When placing HFAs in integer
14711         registers, do not special case the mode used for complex
14712         types.  Do not advance int_regs until the current register
14713         is full.
14714
14715 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
14716
14717         PR target/7297
14718         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
14719
14720 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
14721
14722         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
14723         slow, unaligned loads and stores while debugging.  Fix formatting.
14724
14725 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
14726
14727         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
14728         of computing wmode.
14729         (restore_stack_nonlocal): Same.
14730
14731 2004-01-27  Devang Patel <dpatel@apple.com>
14732
14733         * Makefile.in (dwarf2out.o): Depend on input.h
14734         * dbxout.c (dbx_debug_hooks): Add new empty hook for
14735         imported_module_or_decl.
14736         (xcoff_debug_hooks): Same.
14737         * sdbout.c (sdb_debug_hooks): Same.
14738         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
14739         * debug.c (do_nothing_debug_hooks): Same.
14740         (debug_nothing_tree_tree): New function.
14741         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
14742         * dwarf2out.c: Include input.h.
14743         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
14744         (remove_child_TAG): New function.
14745         (dwarf_tag_name): Handle DW_TAG_imported_module.
14746         (gen_subprogram_die): Equate decl number to declaration die. Do not
14747         remove all children dies while reusing declaration die for definition.
14748         Instead, selectively remove only formal parameters.
14749         (gen_variable_die): Equate variable decl to declaration die.
14750         (gen_field_die): Equate field decl to line number.
14751         (force_namespace_die): Replace it with ...
14752         (force_decl_die): ... this.
14753         (force_type_die): New function.
14754         (setup_namespace_context): Replace use of force_namespace_die() with
14755         force_decl_die().
14756         (gen_namespace_die): Same.
14757         (dwarf2out_imported_module_or_decl): New function.
14758
14759 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
14760
14761         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
14762         on CQImode and CHImode incoming arguments in register a7.
14763         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
14764         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
14765         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
14766         xtensa_copy_incoming_a7 before reload.
14767
14768 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14769
14770         * coverage.c (get_coverage_counts): Give a different message
14771         if flag_guess_branch_prob is set.
14772         * predict.c (counts_to_freqs): Return an int.
14773         (estimate_bb_frequencies): If counts_to_freqs returns zero,
14774         calculate estimates.
14775
14776 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
14777
14778         * config/iq2000/iq2000-protos.h: Remove the prototype for
14779         iq2000_setup_incoming_varargs.
14780         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14781         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14782         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14783         (TARGET_STRUCT_VALUE_RTX): Likewise.
14784         (TARGET_RETURN_IN_MEMORY): Likewise.
14785         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14786         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14787         (iq2000_return_in_memory): Likewise.
14788         (iq2000_setup_incoming_varargs): Make it static.  Receive the
14789         first argument by reference.
14790         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
14791         (PROMOTE_FUNCTION_RETURN): Likewise.
14792         (PROMOTE_PROTOTYPES): Likewise.
14793         (RETURN_IN_MEMORY): Likewise.
14794         (STRUCT_VALUE): Likewise.
14795         (SETUP_INCOMING_VARARGS): Likewise.
14796         (STRICT_ARGUMENT_NAMING): Likewise.
14797
14798 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
14799
14800         * fixinc/fixinc.c (test_test): Initialize res.
14801         (start_flexer): Initialize pz_cmd_save.
14802
14803 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14804
14805         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
14806         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
14807
14808 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14809
14810         PR 7198
14811         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
14812         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
14813         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
14814         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
14815         Possibly rename pattern for consistency.
14816         Remove ??? comments suggesting that this be done.
14817         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
14818         New patterns.
14819         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
14820         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
14821         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
14822         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
14823         Update to match.
14824
14825 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
14826
14827         * config/arm/arm.c (output_return_instruction): Only restore IP
14828         into SP if frame_pointer_needed.
14829
14830 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14831
14832         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14833         for SCmode and DCmode if ARCH32.
14834         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
14835         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
14836         if ARCH32.
14837         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
14838         if ARCH32.
14839         (BASE_OUTGOING_VALUE_REG): Likewise.
14840
14841 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14842
14843         PR target/10904
14844         PR target/13058
14845         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
14846         Forbid mode changes from SImode for lower FP regs if ARCH64.
14847
14848 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14849
14850         * Makefile.in (bt-load.o): Depend on except.h.
14851         * bt-load.c (except.h): #include.
14852         (compute_defs_uses_and_gen): If insn at end of BB can throw
14853         within this function, consider registers used by it unavailable for
14854         btr migration.
14855         (move_btr_def): If insn at end of BB can throw, insert before rather
14856         than after.
14857
14858         * flags.h (flag_btr_bb_exclusive): Declare.
14859         * toplev.c (flag_btr_bb_exclusive): New variable.
14860         (f_options): Add btr-bb-exclusive.
14861         * bt-load.c (augment_live_range): Restore old behaviour if
14862         flag_btr_bb_exclusive is set.
14863         * common.opt: Add entry for -fbtr-bb-exclusive.
14864         * opts.c (common_handle_options): Same.
14865         * doc/invoke.texi: Document -fbtr-bb-exclusive.
14866
14867         * bt-load.c (btrs_live_at_end): New variable.
14868         (compute_defs_uses_and_gen): Compute its pointed-to array.
14869         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
14870         (augment_live_range): When augmenting with a new dominator,
14871         use only its btrs_live_at_end set, but also add in the full set
14872         of the old dominator.
14873         (btr_def_live_range): Use btrs_live_at_end.
14874         (move_btr_def): Set other_btr_uses_before_def, and move new set
14875         to the end of the basic block, if appropriate.
14876         (migrate_btr_defs): Allocate and free btrs_live_at_end.
14877
14878         * bt-load.c (basic_block_freq): Remove outdated comment.
14879
14880 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
14881
14882         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
14883         (PREDICATE_CODES): Remove duplicate.
14884         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
14885         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
14886         (MASK_PROFILE_KERNEL): Adjust define.
14887
14888 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
14889
14890         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
14891         of long string literals from 32 bytes to sizeof (void *) when !-Os
14892         and to 1 with -Os.
14893
14894 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14895
14896         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
14897         constant addresses in the normal mode.
14898
14899 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14900
14901         * system.h (CHAR_BITFIELD): Delete.
14902         (BOOL_BITFIELD): New.
14903         * c-decl.c (c_scope): Use BOOL_BITFIELD.
14904         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
14905
14906 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14907
14908         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14909         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14910         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14911         (TARGET_STRUCT_VALUE_RTX): Likewise.
14912         (TARGET_RETURN_IN_MEMORY): Likewise.
14913         (arc_return_in_memory): Likewise.
14914         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
14915         (PROMOTE_FUNCTION_RETURN): Likewise.
14916         (RETURN_IN_MEMORY): Likewise.
14917         (STRUCT_VALUE): Likewise.
14918
14919 2004-01-26  Richard Henderson  <rth@redhat.com>
14920
14921         * c-parse.in (extension): Use itype.
14922         (SAVE_EXT_FLAGS): Don't allocate a tree.
14923         (RESTORE_EXT_FLAGS): Don't read a tree.
14924
14925 2004-01-26  Jan Hubicka  <jh@suse.cz>
14926
14927         * cselib.c (discard_useless_values):  Clear out value pointer pointing
14928         to datastructure to be recycled.
14929
14930 2004-01-25  Jan Hubicka  <jh@suse.cz>
14931
14932         * genextract.c (main): Do not output the memset when not checking.
14933
14934 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14935
14936         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
14937         switch statement instead of a chain of if statements.
14938
14939 2004-01-26  Jeff Law  <law@redhat.com>
14940
14941         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
14942         acute accents for Petur Runolfsson's entry.
14943
14944 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14945
14946         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
14947         (TARGET_RETURN_IN_MEMORY): Likewise.
14948         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
14949         (RETURN_IN_MEMORY): Likewise.
14950
14951 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14952
14953          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
14954          unaligned load/store into smaller loads and stores.
14955
14956 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14957
14958         * function.c (assign_parms): Do not assign
14959         long long argument to memory in prologue if
14960         is it loaded into register.
14961
14962 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14963
14964          PR middle-end/13779
14965          * expr.c (emit_group_load): split constant
14966          correctly into register components of PARALLEL insn.
14967
14968 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14969
14970         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
14971         Use adjust_address_nv directly with appropriate mode.
14972         (restore_stack_nonlocal): Ditto.
14973
14974 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14975
14976         * config/xtensa/xtensa-protos.h: Remove the prototype for
14977         xtensa_builtin_saveregs.
14978         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14979         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14980         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14981         (TARGET_STRUCT_VALUE_RTX): Likewise.
14982         (TARGET_RETURN_IN_MEMORY): Likewise.
14983         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14984         (xtensa_builtin_saveregs): Make it static.
14985         (xtensa_return_in_memory): New.
14986         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
14987         (PROMOTE_FUNCTION_RETURN): Likewise.
14988         (PROMOTE_PROTOTYPES): Likewise.
14989         (STRUCT_VALUE): Likewise.
14990         (RETURN_IN_MEMORY): Likewise.
14991         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14992
14993 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14994
14995         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
14996         (arm_setup_incoming_varargs): Likewise.
14997         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
14998
14999 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15000
15001         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15002         (cris_setup_incoming_varargs): Likewise.
15003         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15004
15005 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15006
15007         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15008         (ns32k_struct_value_rtx): Likewise.
15009         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15010         NS32K_STRUCT_VALUE_REGNUM.
15011
15012 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15013
15014         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15015         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15016         (TARGET_STRUCT_VALUE_RTX): Likewise.
15017         (arm_struct_value_rtx): Likewise.
15018         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15019         (STRUCT_VALUE): Likewise.
15020         (STRUCT_VALUE_REGNUM): Likewise.
15021         (PROMOTE_PROTOTYPES): Likewise.
15022
15023 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15024
15025         * config/ia64/ia64-protos.h: Remove the prototype for
15026         ia64_setup_incoming_varargs and ia64_return_in_memory.
15027         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15028         (TARGET_RETURN_IN_MEMORY): Likewise.
15029         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15030         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15031         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15032         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15033         (ia64_return_in_memory): Make it static.  Change the return
15034         type to bool from int.  Add an argument.
15035         (ia64_struct_value_rtx): New.
15036         * config/ia64/ia64.h: Remove commented-out definitions of
15037         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15038         PROMOTE_PROTOTYPES.
15039         (RETURN_IN_MEMORY): Remove.
15040         (STRUCT_VALUE_REGNUM): Likewise.
15041         (STRICT_ARGUMENT_NAMING): Likewise.
15042
15043 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15044
15045         PR target/13666
15046         * config/sparc/sparc.c (function_arg_union_value): New function.
15047         (function_arg): Use it to deal with unions.
15048         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15049         Replace a conditional statement by a simpler one.
15050
15051 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
15052
15053         * config/mips/mips.c (mips16_optimize_gp): Delete.
15054         (mips_reorg): Don't call it.
15055
15056 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15057
15058         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15059         (floatunsqihf2): Remove operand 6.
15060         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15061         fix patterns.
15062         (ldi_conditional, ldf_conditional): Validate operands.
15063
15064 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15065
15066         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15067         (HAVE_GAS_HIDDEN): Undefine as interim measure.
15068
15069 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15070
15071         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
15072         memory references if TARGET_EXPOSE_LDP nonzero.
15073
15074 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15075
15076         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15077
15078 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15079
15080         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15081         invalid operand combinations.
15082
15083 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15084
15085         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15086         c4x_legitimate_address_p.  Fix post_modify check.
15087
15088         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15089         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15090
15091 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15092
15093         * config/pa/pa-protos.h: Remove the prototype for
15094         hppa_builtin_saveregs.  Add a prototype for
15095         pa_return_in_memory.
15096         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15097         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15098         (TARGET_STRUCT_VALUE_RTX): Likewise.
15099         (TARGET_RETURN_IN_MEMORY): Likewise.
15100         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15101         (pa_struct_value_rtx): Likewise.
15102         (pa_return_in_memory): Likewise.
15103         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15104         PA_STRUCT_VALUE_REGNUM.
15105         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15106         (EXPAND_BUILTIN_SAVEREGS): Remove.
15107         (PROMOTE_PROTOTYPES): Likewise.
15108         (PROMOTE_FUNCTION_RETURN): Likewise.
15109
15110 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15111
15112         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15113         (TARGET_STRUCT_VALUE_RTX): Likewise.
15114         (vax_struct_value_rtx): Likewise.
15115         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15116         VAX_STRUCT_VALUE_REGNUM.
15117         (PROMOTE_PROTOTYPES): Remove.
15118
15119 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15120
15121         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
15122
15123 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
15124
15125         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15126         and MIPS64 have HI/LO interlocks.  Update comment.
15127
15128 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15129
15130         * config/stormy16/stormy16-protos.h: Remove the prototype for
15131         xstormy16_setup_incoming_varargs.
15132         * config/stormy16/stormy16.c
15133         (xstormy16_setup_incoming_varargs): Remove.
15134         (xstormy16_return_in_memory): New.
15135         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15136         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15137         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15138         (TARGET_STRUCT_VALUE_RTX): Likewise.
15139         (TARGET_RETURN_IN_MEMORY): Likewise.
15140         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15141         (PROMOTE_FUNCTION_RETURN): Likewise
15142         (PROMOTE_PROTOTYPES): Likewise
15143         (RETURN_IN_MEMORY): Likewise
15144         (STRUCT_VALUE): Likewise
15145         (SETUP_INCOMING_VARARGS): Likewise
15146
15147 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15148
15149         * config/mips/mips.c (mips_offset_within_object_p): New function.
15150         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15151         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
15152         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15153
15154 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15155
15156         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15157         (PROMOTE_FUNCTION_RETURN): Likewise.
15158
15159 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15160
15161         * config/mn10300/mn10300-protos.h: Remove the prototype for
15162         mn10300_builtin_saveregs.
15163         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15164         (TARGET_STRUCT_VALUE_RTX): Likewise.
15165         (TARGET_RETURN_IN_MEMORY): Likewise.
15166         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15167         (mn10300_return_in_memory): Likewise.
15168         (mn10300_builtin_saveregs): Make it static.
15169         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15170         (RETURN_IN_MEMORY): Likewise.
15171         (STRUCT_VALUE): Likewise.
15172         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15173
15174 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
15175
15176         PR bootstrap/13853
15177         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15178
15179 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15180
15181         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15182         using ccr.
15183
15184 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15185
15186         * config/i860/i860-protos.h: Remove the prototype for
15187         i860_saveregs.
15188         * config/i860/i860.c (i860_saveregs): Make it static.
15189         (i860_struct_value_rtx): New.
15190         (TARGET_STRUCT_VALUE_RTX): Likewise.
15191         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15192         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15193         I860_STRUCT_VALUE_REGNUM.
15194         (EXPAND_BUILTIN_SAVEREGS): Remove.
15195
15196 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15197
15198         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15199         (TARGET_RETURN_IN_MEMORY): Likewise.
15200         (m68hc11_struct_value_rtx): Likewise.
15201         (m68hc11_return_in_memory): Likewise.
15202         * config/m68hc11/m68hc11.h: Remove a commented-out definition
15203         of PROMOTE_PROTOTYPES.
15204         (RETURN_IN_MEMORY): Remove.
15205         (STRUCT_VALUE_REGNUM): Likewise.
15206
15207 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15208
15209         * config/mmix/mmix-protos.h: Remove the prototype for
15210         mmix_setup_incoming_varargs.
15211         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15212         (TARGET_STRUCT_VALUE_RTX): Likewise.
15213         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15214         (mmix_setup_incoming_varargs): Make it static.
15215         (mmix_struct_value_rtx): New.
15216         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15217         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15218         (STRUCT_VALUE_REGNUM): Remove.
15219         (SETUP_INCOMING_VARARGS): Likewise.
15220
15221 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15222
15223         * config/mips/mips-protos.h: Remove the prototypes for
15224         mips_setup_incoming_varargs and mips_return_in_memory.
15225         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15226         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15227         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15228         (TARGET_STRUCT_VALUE_RTX): Likewise.
15229         (TARGET_RETURN_IN_MEMORY): Likewise.
15230         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15231         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15232         (mips_setup_incoming_varargs): Match the prototype for
15233         TARGET_SETUP_INCOMING_VARARGS.
15234         (mips_return_in_memory): Make it static.  Add argument fntype.
15235         (mips_strict_argument_naming): New.
15236         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15237         (PROMOTE_FUNCTION_ARGS): Likewise.
15238         (PROMOTE_FUNCTION_RETURN): Likewise.
15239         (STRUCT_VALUE): Likewise.
15240         (RETURN_IN_MEMORY): Likewise.
15241         (SETUP_INCOMING_VARARGS): Likewise.
15242         (STRICT_ARGUMENT_NAMING): Likewise.
15243
15244 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15245
15246         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15247         (TARGET_RETURN_IN_MEMORY): Likewise.
15248         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15249         (ip2k_return_in_memory): Likewise.
15250         (ip2k_setup_incoming_varargs): Likewise.
15251         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15252         (STRUCT_VALUE): Likewise.
15253         (STRUCT_VALUE_INCOMING): Likewise.
15254         (SETUP_INCOMING_VARARGS): Likewise.
15255
15256 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15257
15258         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15259         (TARGET_RETURN_IN_MEMORY): Likewise.
15260         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15261         (avr_return_in_memory): Remove.
15262         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15263         (STRUCT_VALUE): Likewise.
15264         (STRUCT_VALUE_INCOMING): Likewise.
15265         (STRICT_ARGUMENT_NAMING): Likewise.
15266
15267 2004-01-25  Jan Hubicka  <jh@suse.cz>
15268
15269         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15270
15271 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15272
15273         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15274         (mips_regno_mode_ok_for_base_p): Declare.
15275         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15276         (FRAME_POINTER_REGNUM): Renumber to 78.
15277         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15278         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15279         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15280         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15281         (REG_MODE_OK_FOR_BASE_P): Likewise.
15282         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15283         entry for 77 to "$arg" and entry for 78 to "$frame".
15284         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15285         (mips_reg_mode_ok_for_base_p): Remove.
15286         (mips_regno_mode_ok_for_base_p): New function, derived from old
15287         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
15288         restrictions unless we're being strict.
15289         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15290
15291 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15292
15293         * c-common.h: Fix comment typos.
15294         * c-decl.c: Likewise.
15295         * cgraphunit.c: Likewise.
15296         * combine.c: Likewise.
15297         * et-forest.c: Likewise.
15298         * flow.c: Likewise.
15299         * function.c: Likewise.
15300         * ifcvt.c: Likewise.
15301         * integrate.c: Likewise.
15302         * jump.c: Likewise.
15303         * postreload.c: Likewise.
15304         * varray.c: Likewise.
15305
15306 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15307
15308         * doc/frontends.texi: Update copyright.
15309         * doc/gcov.texi: Likewise.
15310         * doc/gty.texi: Likewise.
15311         * doc/sourcebuild.texi: Likewise.
15312         * doc/standards.texi: Likewise.
15313
15314 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
15315
15316         PR target/12978
15317         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15318         Remove movstrqi_small because it conflicts with movstrqi_large.
15319
15320 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15321
15322         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15323         (TARGET_STRUCT_VALUE_RTX): Likewise.
15324         (cris_struct_value_rtx): Likewise.
15325         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15326         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15327         STRUCT_VALUE_REGNUM.
15328         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15329
15330 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
15331
15332         PR bootstrap/13848
15333         * cse.c (cse_cc_succs): Change the mode of the source expression
15334         as soon as decide we need a new mode.  Don't permit changing modes
15335         if we found a match in a successor block.
15336         (cse_condition_code_reg): Save original mode of source expression
15337         so that we know whether we have to change the mode in other
15338         insns.
15339
15340 2004-01-24  Jan Hubicka  <jh@suse.cz>
15341
15342         * emit-rtl.c (change_address, adjust_address_1, offset_address,
15343         widen_memory_access):  Return early when there is nothing to change.
15344
15345 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
15346
15347         * simplify-rtx.c (simplify_relational_operation): Don't
15348         simplify address == constant into address + -constant == 0.
15349
15350 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15351
15352         * gcc.c (process_command): Don't internationalize the
15353         Copyright message.
15354         * mips-tfile.c (main): Likewise.
15355
15356 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
15357
15358         * cse.c: (cse_cc_succs) Fix comparison warning.
15359
15360 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15361
15362         * config/h8300/h8300.md: Remove extraneous USE in expanders.
15363
15364 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15365
15366         * config/h8300/h8300-protos.h: Provide prototypes for
15367         h8300_legitimate_constant_p and h8300_legitimate_address_p.
15368         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
15369         (h8300_rtx_ok_for_base_p): Likewise.
15370         (h8300_legitimate_address_p): Likewise.
15371         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
15372         h8300_legitimate_constant_p.
15373         (RTX_OK_FOR_BASE_P): Remove.
15374         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
15375
15376 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15377
15378         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
15379         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15380         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
15381         (REG_OK_FOR_BASE_STRICT_P): Likewise.
15382         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
15383         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
15384         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
15385         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
15386
15387 2004-01-24  Jan Hubicka  <jh@suse.cz>
15388
15389         * cselib.c (remove_useless_values):  Do not access discarded values.
15390
15391 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
15392
15393         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
15394         arrays.
15395
15396 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
15397
15398         * recog.c: Fix a typo in copyright.
15399
15400 2004-01-23  Andrew Pinski  <apinski@apple.com>
15401
15402         * config/rs6000/rs6000.md (call): Fix misappiled patch.
15403         (call_value): Likewise.
15404
15405 2004-01-23  Richard Henderson  <rth@redhat.com>
15406
15407         PR opt/12941
15408         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
15409         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
15410         if SHIFT_COUNT_TRUNCATED is set.
15411
15412 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
15413
15414         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
15415         separate real and imaginary parts.
15416         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
15417
15418 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
15419
15420         PR target/13674
15421         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
15422         loading into GPR.
15423
15424 2004-01-23  Jan Hubicka  <jh@suse.cz>
15425
15426         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
15427         change.
15428
15429         * alloc-pool.c (align_four): Kill.
15430         (create_alloc_pool): Align size to eight.
15431         (free_alloc_pool, free_pool): Invalidate deallocated data.
15432
15433 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
15434
15435         PR gcc/1532
15436         * cse.c (cse_change_cc_mode): New static function.
15437         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
15438         (cse_condition_code_reg): New function.
15439         * rtl.h (cse_condition_code_reg): Declare.
15440         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
15441         * target.h (struct gcc_target): Add fixed_condition_code_regs and
15442         cc_modes_compatible.
15443         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15444         (TARGET_CC_MODES_COMPATIBLE): Define.
15445         (TARGET_INITIALIZER): Add new initializers.
15446         * targhooks.c (default_cc_modes_compatible): New function.
15447         * targhooks.c (default_cc_modes_compatible): Declare.
15448         * hooks.c (hook_bool_intp_intp_false): New function.
15449         * hooks.h (hook_bool_intp_intp_false): Declare.
15450         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15451         (TARGET_CC_MODES_COMPATIBLE): Define.
15452         (ix86_fixed_condition_code_regs): New static function.
15453         (ix86_cc_modes_compatible): Likewise.
15454         * doc/tm.texi (Condition Code): Document new hooks.
15455
15456 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15457
15458         * fixinc/inclhack.def (bad_lval): Renamed to ...
15459         (alpha_bad_lval): ... this.
15460         Removed file list.
15461         Restrict to alpha*-dec-osf*.
15462         * fixinc/fixincl.x: Regenerate.
15463         * fixinc/tests/base/dirent.h: Remove, moving test ...
15464         * fixinc/tests/base/testing.h: ... here, reflecting new name.
15465
15466 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
15467
15468         PR c/13814
15469         * c-decl.c (diagnose_mismatched_decls): Also discard a
15470         built-in if we encounter an old-style definition with the
15471         same name.
15472
15473 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
15474
15475         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
15476         set to default{32,64}.
15477
15478 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15479
15480         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
15481         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
15482
15483 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
15484             Olivier Hainque  <hainque@act-europe.fr>
15485
15486         * fold-const.c (fold_binary_op_with_conditional_arg): Only
15487         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
15488
15489 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
15490
15491         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
15492         size for minipool references.
15493
15494 2004-01-23  Roger Sayle  <roger@eyesopen.com>
15495
15496         * real.c (real_floor, real_ceil): Tweak to allow input and output
15497         arguments to overlap.
15498         (real_round): New function to implement round(3m) semantics.
15499         * real.h (real_round): Prototype here.
15500         * builtins.c (fold_builtin_round): New function to constant fold
15501         round, roundf and roundl.
15502         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
15503
15504 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
15505
15506         PR optimization/13819
15507         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
15508         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
15509         (sh_handle_sp_switch_attribute): Remove warning.
15510
15511 2003-11-30  Jan Hubicka  <jh@suse.cz>
15512
15513         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
15514
15515 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
15516
15517         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
15518         may or may not return non-NIL.
15519         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
15520         check CANNOT_CHANGE_MODE_CLASS
15521
15522 2004-01-23  Jan Hubicka  <jh@suse.cz>
15523
15524         * basic-block.h (PROP_POSTRELOAD): New macro.
15525         (CLEANUP_LOG_LINKS): New.
15526         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
15527         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
15528
15529         * cselib.c (value_pool): New.
15530         (new_cselib_val): Use pool.
15531         (cselib_init): Initialize value_pool
15532         (cselib_finish): Free pool.
15533
15534 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
15535
15536         * config/sparc/sparc.c (scan_record_type): New function.
15537         (function_arg_slotno): Use it to determine which kinds of
15538         registers the record can be passed in.
15539
15540 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
15541
15542         * config/pa/fptr.c: Fix old-style definition.
15543
15544 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
15545
15546         PR optimization/13724
15547         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
15548         represents the zero bits produced by a ZERO_EXTEND operation.
15549
15550 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15551
15552         PR optimization/13821
15553         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
15554         correctly calculate the lowpart offset of the contracted subreg.
15555
15556 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
15557
15558         * doc/invoke.texi (Optimize Options): Note that --param arguments
15559         are subject to change without notice.
15560
15561 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15562
15563         * config.gcc (mips-sgi-irix6*o32): Removed.
15564         * config/mips/iris6-o32-as.h: Likewise.
15565         * config/mips/iris6-o32-gas.h: Likewise.
15566         * config/mips/iris6-o32.h: Likewise.
15567
15568 2004-01-22  Jan Hubicka  <jh@suse.cz>
15569
15570         * cfgcleanup.c (first_pass): New static variable.
15571         (try_forward_edges):  Add work limiting check for threading.
15572         (try_crossjump_bb):  Add work limiting check for crossjumping.
15573         (try_optimize_cfg):  Maintain first pass variable.
15574
15575 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
15576
15577         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
15578         handles complex and vector modes.
15579
15580 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15581
15582         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
15583         (REG_OK_FOR_BASE_P_STRICT): Likewise.
15584         (STRICT): Likewise.
15585
15586 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15587
15588         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
15589         (genrtl_for_stmt): Remove emit_nop calls.
15590
15591 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15592
15593         PR target/13713
15594         PR target/13324
15595         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
15596         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
15597         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
15598
15599 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15600
15601         * config/arm/arm.c: Include "debug.h".
15602         (thumb_pushpop): Take two new arguments.  Add some commentary.
15603         Output frame information when pushing.
15604         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
15605         thumb_pushpop.
15606         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
15607         offset, and pass it to thumb_pushpop.  Output CFI information.
15608         (thumb_expand_prologue): Add some frame-related markers and notes.
15609
15610 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
15611
15612         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
15613         for TARGET_64BIT.
15614         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
15615         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
15616
15617 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15618             Paolo Bonzini  <bonzini@gnu.org>
15619
15620         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
15621         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
15622         * rtl.h (subreg_lsb_1): Prototype here.
15623         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
15624         sign extensions.
15625
15626 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15627
15628         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
15629         macro need not be defined if jump-tables should contain
15630         relative addresses only when -fPIC or -fPIC is in effect.
15631
15632 2004-01-22  Jan Hubicka  <jh@suse.cz>
15633
15634         * alias.c (reg_base_value): Turn into varray.
15635         (reg_base_value_size): Kill.
15636         (old_reg_base_value): New deletable varray.
15637         (alias_invariant_size): New variable.
15638         (REG_BASE_VALUE): Update to use varray.
15639         (find_base_value): Likewise.
15640         (record_set): Likewise.
15641         (record_base_value): Likewise.
15642         (memrefs_conflict_p): Likewise.
15643         (record_set): Likewise
15644         (record_base_value): Likewise.
15645         (memrefs_conflict_p): Use alias_invariant_size.
15646         (init_alias_analysis): Use varray; set alias_invariant_size;
15647         rescale other arrays to be sized by maxreg.
15648         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
15649
15650 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
15651
15652         * config/sparc/sparc.c (function_arg_slotno): Use
15653         FLOAT_TYPE_P to detect FP fields in structures.
15654         (function_arg_record_value_1): Likewise.
15655         (function_arg_record_value_2): Likewise.
15656
15657 2004-01-22  Jan Hubicka  <jh@suse.cz>
15658
15659         * function.c (allocate_struct_function): Do not initialize expr, emit
15660         and varasm.
15661         (prepare_function_start): Do it here.
15662         * c-parse.in (maybe_type_qual): Do not produce line number notes.
15663
15664 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
15665
15666         PR target/13559
15667         * config/sparc/sparc.c (function_arg_record_value_3): Revert
15668         to 'word_mode' once the first slot has been filled.
15669
15670 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
15671
15672         * config/sparc/sparc.c (function_arg_record_value_1): Fix
15673         computation of the number of integer registers required.
15674
15675 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15676
15677         * config/i386/i386.md: Simplify certain comparisons of
15678         const_int.
15679
15680 2004-01-21  Andrew Pinski  <apinski@apple.com>
15681
15682         PR target/13785
15683         * config/rs6000/rs6000.md (call_value): Force operand
15684         1 not operand 0 into a register.
15685
15686 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15687
15688         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
15689         unwind-dw2-fde.h: Update copyright.
15690
15691 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15692
15693         * pa-protos.h: Update copyright.
15694         * pa.h: Likewise.
15695         * pa.md: Likewise.
15696
15697 2004-01-21  Caroline Tice  <ctice@apple.com>
15698
15699         PR target/12308
15700         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
15701         flags register.
15702         (fix_truncdfdi2): Likewise.
15703         (fix_truncsfdi2): Likewise.
15704         (*fix_truncdi_1): Likewise.
15705         (fix_truncxfsi2): Likewise.
15706         (fix_truncdfsi2): Likewise.
15707         (fix_truncsfsi2): Likewise.
15708         (*fix_truncsi_1): Likewise.
15709         (fix_truncxfhi2): Likewise.
15710         (fix_truncdfhi2): Likewise.
15711         (fix_truncsfhi2): Likewise.
15712         (*fix_trunchi_1): Likewise.
15713
15714 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15715
15716         * alias.c, basic-block.h, c-common.c, c-common.h,
15717         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
15718         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
15719         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
15720         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
15721         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
15722         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
15723         genautomata.c, genconditions.c, genemit.c, genflags.c,
15724         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
15725         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
15726         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
15727         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
15728         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
15729         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
15730         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
15731         unwind.h, varray.c, varray.h: Update copyright.
15732
15733 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15734
15735         * config/h8300/coff.h: Update copyright.
15736         * config/h8300/elf.h: Likewise.
15737         * config/h8300/h8300-protos.h: Likewise.
15738         * config/h8300/h8300.c: Likewise.
15739         * config/h8300/h8300.h: Likewise.
15740         * config/h8300/h8300.md: Likewise.
15741
15742 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15743
15744         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
15745         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
15746         ultrix_unistd): New hacks.
15747         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
15748         ULTRIX_CONST2_CHECK): Add checks.
15749         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
15750         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
15751         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
15752         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
15753         * fixinc/tests/base/locale.h: New file.
15754         * fixinc/fixincl.x: Rebuilt.
15755
15756 2004-01-21  Andreas Jaeger  <aj@suse.de>
15757             Michael Matz  <matz@suse.de>
15758
15759         * doc/extend.texi (Extended Asm): Clarify memory clobber.
15760
15761 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15762
15763         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
15764         _Jv_RegisterClasses through a function pointer.
15765
15766 2004-01-21  Falk Hueffner  <falk@debian.org>
15767
15768         PR target/12898
15769         * config/alpha/alpha.c (alpha_emit_set_const_1): If
15770         no_new_pseudos, use gen_rtx_SET directly for SImode constants
15771         which need multiple instructions to emit.
15772
15773 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
15774
15775         * config/m32r/m32r.h (CPP_SPEC): Define.
15776
15777 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
15778
15779         * c-decl.c (merge_decls): Kill different_binding_level and
15780         different_tu arguments; simplify throughout.
15781         (duplicate_decls): Likewise.
15782         (pushdecl, merge_translation_unit_decls): Update calls to
15783         duplicate_decls.
15784
15785 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15786
15787         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
15788         $(SYSTEM_H).
15789         (print-rtl1.o): Depend on $(SYSTEM_H).
15790
15791 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
15792
15793         PR bootstrap/12730
15794         * configure.ac: Delete definition and subsitution of docdir.
15795         Add info, man, srcman and srcinfo to target hooks. Create doc/
15796         directory.
15797         * configure: Regenerate.
15798         * Makefile.in: Don't substitute docdir and delete all references
15799         throughout.
15800         (MAKEINFOFLAGS): Define.
15801         (stmp-docobjdir): Delete.
15802         (INFOFILES, MANFILES): Define.
15803         (info): Call lang.info, srcinfo and lang.srcinfo.
15804         (generated-manpages): Call lang.man, srcman and lang.srcman.
15805         (srcinfo, srcman): New rules to copy back files to source directory.
15806         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
15807         (install-man): Revamp rule.
15808         (clean): Update dvi directory.
15809         (distclean): Delete TAGS from front end directorys.
15810         (maintainer-clean): Delete all document files in source directory.
15811
15812         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
15813         (objc.srcman, objc.srcinfo): Likewise.
15814
15815 2004-01-20  Bruce Korb  <bkorb@gnu.org>
15816
15817         * fixinc/inclhack.def(math_exception): bypass only for glibc.
15818         (matherr_decl): rename & relocate as exception_structure.
15819         This fix must precede the math_exception fix.
15820
15821 2004-01-20  Roger Sayle  <roger@eyesopen.com>
15822
15823         * fold-const.c (fold_convert): Rename to fold_convert_const.
15824         (fold_convert_const): Change arguments to take a tree_code,
15825         a type and the operand/expression to be converted.  Return
15826         NULL_TREE if no simplification is possible.  Add support for
15827         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
15828         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
15829         Adjust call to fold_convert to match new fold_convert_const.
15830         Avoid modifying the tree passed to fold in-place.
15831
15832 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
15833
15834         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
15835         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
15836         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
15837
15838 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15839
15840         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
15841         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
15842         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
15843         (emit_move_sequence): Check scratch_reg first in various if statements.
15844         Extend source simplification to handle all 64-bit CONST_INTs.
15845         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
15846         frame size.
15847         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
15848         frame offset calculations.
15849         * pa.h (NEW_HP_ASSEMBLER): Add comment.
15850         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
15851         LEGITIMATE_64BIT_CONST_INT_P): Define.
15852         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
15853         any CONST_INT as legitimate during and after reload.
15854         (VAL_32_BITS_P, INT_32_BITS): Define.
15855         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
15856
15857 2004-01-20  Jan Hubicka  <jh@suse.cz>
15858
15859         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
15860         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
15861         containing hard regs are shared.
15862         (gen_hard_reg_clobber): New function.
15863         (hard_reg_clobbers): New array.
15864         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
15865         (copy_rtx): Do not copy clobbers containing hard regs.
15866         * rtl.h (gen_hard_reg_clobber): Declare.
15867
15868 2004-01-20  Jan Hubicka  <jh@suse.cz>
15869
15870         * varray.c:  Include hashtab.h
15871         (varray_descriptor): New structure.
15872         (hash_descriptor, eq_descriptor, varray_descriptor,
15873         print_statistics): New static functions
15874         (varray_init, varray_grow): Update statistics
15875         (dump_varray_statistics): New function.
15876         * varray.h (dump_varray_statistics): Declare.
15877         * toplev.c (finalize): Call it.
15878         * Makefile.in (varray.o): Add dependency.
15879
15880 2004-01-20  Jan Hubicka  <jh@suse.cz>
15881
15882         * cselib.c: Include alloc-pool.h
15883         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
15884         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
15885         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
15886         unchain_one_elt_loc_list_pool, unchain_one_value,
15887         new_cselib_val): Simplify using allocpool.
15888         (cselib_init): Initialize allocpools.
15889         (cselib_finish): Finish allocpools.
15890         * Makefile.in (cselib.o): Depend on alloc-pool.h
15891
15892 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
15893
15894         * config/mips/mips.c (mips_load_call_address): Make the call insn
15895         use $gp if it could be calling a lazy binding stub.
15896
15897 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15898
15899         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
15900         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15901         (TARGET_STRUCT_VALUE_RTX): Likewise.
15902         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
15903         (PROMOTE_FUNCTION_RETURN): Remove.
15904         (STRUCT_VALUE): Remove.
15905
15906 2004-01-20  Denis Chertykov  <denisc@overta.ru>
15907
15908         PR bootstrap/13735
15909         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
15910         register as pointer after reload.
15911
15912 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15913
15914         PR optimization/12440
15915         * loop.c: Include ggc.h.
15916         (loop_optimize): Run garbage collector between optimization of loops.
15917         * Makefile.in (loop.o): Add GGC_H dependency.
15918
15919 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
15920
15921         * gcc/config/rs6000/rs6000.c (function_arg) Handle
15922         vector register special in function without prototype.
15923         (function_arg_advance): Vector parameters get always
15924         GPRs allocated for the linux64 target.
15925
15926 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15927
15928         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
15929         not TARGET_M32RX_MASK.
15930
15931 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
15932
15933         PR target/13557
15934         * config/sparc/sparc.c (function_arg): Reorder the cases.
15935
15936 2004-01-19  Per Bothner  <per@bothner.com>
15937
15938         Move cpp_reader's line_maps field to a shared global.
15939         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
15940         and change the type to a pointer rather than a struct.
15941         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
15942         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
15943         Likewise.
15944         * cppfiles.c (validate_pch):  Likewise.
15945         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
15946         Likewise.
15947         * cpperror.c (print_location):  Likewise.
15948         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
15949         * cppinit.c (cpp_create_reader):  Handle new parameter.
15950         (cpp_destroy):  Don't free line_maps - that's no longer our job.
15951         * input.h (line_table):  New variable.
15952         * toplev.c (line_table):  Declare variable.
15953         (general_init):  Initialize line_table.
15954         * c-opts.c (c_common_init_options):  Pass line_table to
15955         cpp_create_reader.
15956         * fix-header.c (read_scan_file):  New local variable line_table.
15957         Initialize, and pass it to cpp_create_reader.
15958         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
15959         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
15960
15961 2004-01-19  Per Bothner  <per@bothner.com>
15962
15963         Implement a cache for linemap_lookup.
15964         * line-map.h (struct_line_maps):  Add cache field.
15965         * line-map.c (linemap_init):  Zero cache field.
15966         (linemap_add):  Set cache field to offset of newly allocated map.
15967         (linemap_lookup):  Use and set cache field.
15968
15969 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15970
15971         PR optimization/13567
15972         * cse.c (cse_basic_block): Call cse_insn with a non-null
15973         libcall_insn for the last SET insn of a no-confilict block.
15974
15975 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
15976
15977         * Makefile.in (target_noncanonical, program_transform_name): Use
15978         immediate define instead of deferred.
15979         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
15980         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
15981         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
15982         deferred backquote.
15983
15984 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
15985
15986         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
15987         true unconditionally.
15988         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
15989         Remove.
15990         (build_unary_op, build_modify_expr): Don't handle extended
15991         lvalues.
15992         (build_component_ref, build_conditional_expr): Call non_lvalue
15993         instead of pedantic_non_lvalue.
15994         (build_c_cast): Don't condition use of non_lvalue on pedantic.
15995         * fold-const.c (fold): Don't check pedantic directly for
15996         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
15997         passed to pedantic_non_lvalue.
15998         * doc/extend.texi: Remove documentation of extended lvalues.
15999
16000 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16001
16002         PR optimization/5263
16003         * simplify-rtx.c (associative_constant_p): Delete.
16004         (simplify_associative_operation): Rewrite to linearize terms, and
16005         attempt to simplify new term against both left and right subterms.
16006         (simplify_binary_operation): Call swap_commutative_operands_p on
16007         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16008         trueop0 and trueop1 down to where first needed.
16009         (simplify_relational_operation): Likewise.
16010         * rtlanal.c (commutative_operand_precedence): Also order constant
16011         operands using avoid_constant_pool_reference.
16012
16013 2004-01-19  Richard Henderson  <rth@redhat.com>
16014
16015         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16016         don't check memory mode.
16017         (unaligned_memory_operand): Likewise.
16018         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16019         abort for op0 not MEM.
16020
16021         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16022         is not a reg, copy to a scratch first.
16023         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16024         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16025         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16026         (reload_inqi, reload_inhi): Fix mode of op0.
16027         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16028         reload_outhi_help): Likewise.  Use define_insn_and_split.
16029
16030         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16031         as well as $29 dead.
16032
16033 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16034
16035         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16036         "tls_object" for thread-local objects.
16037         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16038         "#tls" for thread-local sections.
16039         * configure.ac (thread-local checks): Specify --fatal-warnings in
16040         every binutils-specific checks.  For sparc*-*-*, test whether the
16041         OS is Solaris and the tools are native and act accordingly.
16042         * configure: Rebuild.
16043
16044 2004-01-19  Jeff Law  <law@redhat.com>
16045
16046         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16047         Jerry Quinn and Petur Runolfsson.
16048
16049 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16050
16051         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16052         size, don't use the larger zero-extending loads.
16053
16054 2004-01-19  Richard Henderson  <rth@redhat.com>
16055
16056         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16057         * alpha.md (UNSPEC_NT_LDA): Remove.
16058         (UNSPEC_CVTLQ, cvtlq): New.
16059         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16060         (extendsidi2_fix): Remove.
16061         (extendsidi2 splitter): Use cvtlq.
16062         (extendsidi2 fp peepholes): Remove.
16063         (cvtql): Use SFmode instead of SImode.
16064         (fix_trunc?fsi): Update to match.
16065         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16066         (movsi): Rename from movsi_nofix, remove f alternatives.
16067         (movsi_nt_vms): Similarly.
16068         (movsi_fix, movsi_nt_vms_fix): Remove.
16069         (nt_lda): Remove.
16070         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16071
16072 2004-01-19  Jan Hubicka  <jh@suse.cz>
16073
16074         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16075         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16076         list.
16077         (cgraph_remove_unreachable_nodes): New function
16078         (cgraph_decide_inlining_of_small_function): Fix pasto.
16079         (cgraph_decide_inlining_incrementally): Fix pasto.
16080         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16081
16082 2004-01-19  Steven Bosscher  <stevenb@suse.de>
16083
16084         * gengtype.c (header_file): Make it static.
16085         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16086         * gengtype.h (header_file): No longer extern.
16087
16088 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16089
16090         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16091         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16092         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16093
16094 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16095
16096         * stmt.c (HAVE_casesi): Define it not already defined.
16097         (HAVE_tablejump): Likewise.
16098         (expand_end_case_type): Resort to the binary tree method if
16099         neither casesi or tablejump is available.
16100
16101 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
16102
16103         * final.c (final_scan_insn): Make non-static again.
16104         * output.h (final_scan_insn): Re-add prototype.
16105         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16106         to final_scan_insn call.
16107         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16108         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16109         * config/pa/pa.c (output_lbranch, output_call): Likewise.
16110         * config/sh/sh.c (print_slot): Likewise.
16111         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16112         (output_sibcall, sparc_flat_function_epilogue): Likewise.
16113
16114 2004-01-18  Jan Hubicka  <jh@suse.cz>
16115
16116         * basic-block.h (try_redirect_by_replacing_jump): Declare.
16117         * cfgcleanup.c (try_optimize_cfg): Use it.
16118         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16119         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16120         Kill hack.
16121         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16122
16123         Revert:
16124         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16125
16126                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16127                 even after reload, just don't remove the actual jump tables.
16128
16129 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16130
16131         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16132
16133 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16134
16135         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16136         the size of a pointer in bytes.
16137
16138 2004-01-18  Roger Sayle  <roger@eyesopen.com>
16139
16140         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16141         live "next" variable, which could lead to an infinite loop.
16142
16143 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16144
16145         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16146         block.
16147
16148         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16149         Check for NULL in the chain and remove repeated code.
16150
16151 2004-01-18  Jan Hubicka  <jh@suse.cz>
16152
16153         * coverage.c (checksum_string): Rename to ...
16154         (coverage_checksum_string): ... this one, Use crc32_string; recognize
16155         names containing random number and zero the number out in order to get
16156         match.
16157
16158 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16159
16160         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16161
16162 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16163
16164         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16165         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16166         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16167         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16168         doc/trouble.texi: Remove trailing whitespace.
16169
16170 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16171
16172         PR target/7618
16173         * config/mips/mips.c: Include cfglayout.h.
16174         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16175         (mips_unspec_offset_high): Add temporary register argument.
16176         (mips_load_call_address): New function, split out from...
16177         (mips_expand_call): ...here.
16178         (mips_output_cplocal): New function.
16179         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16180         (mips_emit_loadgp): New function, split out from...
16181         (mips_expand_prologue): ...here.
16182         (mips_output_mi_thunk): New function.
16183
16184 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
16185
16186         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16187         mcpu32): Remove redundant checks for implied target predefines.
16188
16189 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
16190
16191         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16192         Return type is unsigned int not int.
16193         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16194         Likewise.
16195
16196 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16197
16198         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16199         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16200         "GNU/Linux" and "Microsoft Windows" terminology.
16201
16202 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16203
16204         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16205         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16206         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16207         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16208         @smallexample instead of @example.
16209
16210 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
16211
16212         * objc/objc-act.c (build_objc_method_call): Use target
16213         hooks instead of macros to determine if ..._stret
16214         dispatchers should be used (NeXT runtime only).
16215
16216 2004-01-17  Roger Sayle  <roger@eyesopen.com>
16217
16218         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16219         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16220
16221 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16222
16223         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16224         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16225         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16226         macros.
16227         * reload1.c (emit_reload_insns): Use them.
16228         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16229         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16230         for NULL PATTERN.
16231
16232 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16233
16234         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16235         (final_scan_insn): Update to take an additional SEEN argument.  Emit
16236         a line note after the prologue.  Make static.
16237         (line_note_exists): Remove.
16238         (final): Don't initialize line_note_exists.  Update call to
16239         final_scan_insn.
16240         * output.h (final_scan_insn): Remove prologue.
16241         * function.c (set_insn_locators): Update comment.
16242         (thread_prologue_and_epilogue_insns): Add a comment.
16243
16244 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
16245
16246         PR target/10781
16247         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16248         Prototype.
16249         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16250         New function.
16251         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16252         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16253         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16254
16255 2004-01-17  Jan Hubicka  <jh@suse.cz>
16256
16257         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16258         commit.
16259
16260         * toplev.c (HAVE_conditional_execution): Provide default.
16261         (rest_of_handle_reorder_blocks): For conditional_execution target
16262         update liveness once after all transformations
16263         (rest_of_compilation): Do crossjumping before ce3.
16264
16265 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
16266
16267         * alias.c (new_alias_set): Mark last_alias_set for PCH.
16268         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16269         for PCH.
16270         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16271         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16272         (get_TOC_alias_set): Mark 'set' for PCH.
16273
16274 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16275
16276         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16277         even after reload, just don't remove the actual jump tables.
16278
16279 2004-01-17  J. Brobecker  <brobecker@gnat.com>
16280
16281         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16282         Remove checks for is_ada() and TREE_UNSIGNED.
16283         (subrange_type_die): Emit a byte_size attribute if the subrange
16284         type size is different from the base type size.
16285         (modified_type_die): Replace call to is_ada_subrange_type() by
16286         call to is_subrange_type().
16287
16288 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
16289
16290         * config/sh/sh.c: Include ggc.h.
16291
16292 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16293
16294         * Makefile.in (MD5_H): New.
16295         (fold-const.o): Depend on md5.h.
16296         (dwarf2out.o): Likewise.
16297         (cppfiles.o): Likewise.
16298         * cppfiles.c: Include md5.h.
16299         (should_stack_file): Check against list read from PCH file.
16300         (struct pchf_data): New.
16301         (pchf): New variable.
16302         (struct pchf_adder_info): New.
16303         (pchf_adder): New.
16304         (pchf_save_compare): New.
16305         (_cpp_save_file_entries): New.
16306         (_cpp_read_file_entries): New.
16307         (struct pchf_compare_data): New.
16308         (pchf_compare): New.
16309         (check_file_against_entries): New.
16310         * cpphash.h (_cpp_save_file_entries): Prototype.
16311         (_cpp_read_file_entries): Prototype.
16312         * cpppch.c (cpp_write_pch_state): Write the list of headers.
16313         (cpp_read_state): Read the list of headers.
16314
16315 2004-01-17  Jan Hubicka  <jh@suse.cz>
16316
16317         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16318         builtin_expect specially.
16319         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16320         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16321         * invoke.texi (max-inline-insns-single): Set to 100.
16322         (large-function-insns): Set to 3000.
16323
16324 2004-01-16  Eric Christopher  <echristo@redhat.com>
16325             Chandrakala Chavva <cchavva@redhat.com>
16326
16327         * cppcharset.c (one_iso88591_to_utf8): New function.
16328         (convert_iso88591_utf8): Ditto. Use.
16329         (conversion_tab): Use.
16330         (_cpp_input_to_utf8): New function.
16331         (_cpp_init_iconv_buffer): Ditto.
16332         (_cpp_close_iconv_buffer): Ditto.
16333         * cpphash.h: Prototype new functions.
16334         (cpp_buffer): Add input_cset_desc.
16335         * cppinit.c: Add input_charset default.
16336         * cpplib.c (cpp_push_buffer): Support init and
16337         close of iconv.
16338         * cpplib.h (cpp_options): Add input_charset.
16339
16340 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16341
16342         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16343         * config/alpha/unicosmk.h: Remove a commented-out definition
16344         of ASM_OUTPUT_SECTION_NAME.
16345         * config/stormy16/stormy16.h: Likewise.
16346
16347 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16348
16349         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16350         (alpha___extern_prefix_sys_stat): ... this.
16351         Apply to <sys/mount.h>, too.
16352         Tweak to match more variations.
16353         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16354
16355         * fixinc/inclhack.def (alpha___extern_prefix,
16356         alpha___extern_prefix_standards): New hacks to obey
16357         __PRAGMA_EXTERN_PREFIX.
16358         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16359         test.
16360         * fixinc/tests/base/standards.h: Likewise.
16361
16362         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16363         variations.
16364         New testcase.
16365         * fixinc/tests/base/pthread.h: Handle it.
16366
16367         * fixincl/inclhack.def (bad_lval): Sort file list.
16368         Add many missing files up to Tru64 UNIX V5.1B.
16369         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
16370         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
16371         order.
16372
16373         * fixinc/fixincl.x: Regenerate.
16374
16375 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
16376
16377         * version.c (version_string): Change to 3.5.0.
16378         * doc/include/gcc-common.texi (version-GCC): Likewise.
16379
16380 2004-01-16  Jan Hubicka  <jh@suse.cz>
16381
16382         * i386.md (load_tp_di): Fix pasto.
16383
16384         PR opt/13608
16385         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
16386
16387         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
16388         pp_c_character_constant, pp_c_floating_constant,
16389         pp_c_additive_expression, pp_c_shift_expression,
16390         pp_c_equality_expression, pp_c_and_expression,
16391         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
16392         pp_c_logical_and_expression): Remove inline modifier.
16393         * dwarf2out.c (get_AT): Likewise.
16394         * et-forest.c (et_splay): Likewise.
16395         * ra.h (ra_alloc, ra_calloc): Likewise
16396
16397 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16398
16399         * config/frv/frv-protos.h: Fix comment formatting.
16400         * config/frv/frv.c: Likewise.
16401         * config/frv/frv.h: Likewise.
16402         * config/frv/frv.md: Likewise.
16403         * config/frv/frvbegin.c: Likewise.
16404         * config/frv/frvend.c: Likewise.
16405
16406 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16407
16408         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
16409         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
16410         LINKER_DOES_NOT_WORK_WITH_DWARF2.
16411         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
16412
16413 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
16414
16415         PR 11864
16416         * postreload.c (reload_cse_simplify_operands): Don't remove
16417         implicit extension from LOAD_EXTEND_OP.
16418
16419 2004-01-16  Jan Hubicka  <jh@suse.cz>
16420
16421         PR opt/11350
16422         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
16423         after reload.
16424         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
16425         rtl_try_redirect_by_replacing_branch): Likewise.
16426
16427 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
16428
16429         PR pch/13689
16430         * alias.c (struct alias_set_entry): Mark for GC.
16431         (alias_sets): Make static, mark for GC.
16432         (record_alias_subset): Use GC to allocate alias structures.
16433         * varray.c (element): Make generic varrays GCed.
16434
16435         PR pch/13361
16436         * c-typeck.c (constructor_asmspec): Delete.
16437         (struct initializer_stack): Delete field 'asmspec'.
16438         (start_init): Delete saving of asmspec.
16439         (finish_init): Don't update constructor_asmspec.
16440         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16441         * stmt.c (expand_asm): Duplicate strings from tree.
16442         (expand_asm_operands): Likewise.
16443         * tree.c (tree_size): Update computation of size of STRING_CST.
16444         (make_node): Don't make STRING_CST nodes.
16445         (build_string): Allocate string with tree node.
16446         * tree.def (STRING_CST): Update comment.
16447         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16448         (tree_string): Place contents of string in tree node.
16449         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16450         from tree.
16451
16452         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
16453         altivec operands.
16454
16455 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16456
16457         * c-common.h: Fix comment formatting.
16458         * c-cppbuiltin.c: Likewise.
16459         * c-pragma.c: Likewise.
16460         * calls.c: Likewise.
16461         * collect2.c: Likewise.
16462         * cppcharset.c: Likewise.
16463         * cpptrad.c: Likewise.
16464         * dbxout.c: Likewise.
16465         * defaults.h: Likewise.
16466         * dwarf2out.c: Likewise.
16467         * fold-const.c: Likewise.
16468         * genautomata.c: Likewise.
16469         * genconditions.c: Likewise.
16470         * genflags.c: Likewise.
16471         * gengtype.c: Likewise.
16472         * integrate.c: Likewise.
16473         * loop.c: Likewise.
16474         * predict.c: Likewise.
16475         * sdbout.c: Likewise.
16476
16477 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
16478
16479         * config/ia64/ia64.md (*movti_internal): C output template
16480         extracted to ia64.c.
16481         (*movti_internal_reg): Delete.
16482         (reload_inti, reload_outti): Use the correct mode on operand 2
16483         in the first place, don't fix it up in the output template.
16484         (movtf, reload_ointf, reload_outtf): New expanders.
16485         (*movtf_internal): New define_insn_and_split.
16486         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
16487         make static; do not hand TFmode CONST_DOUBLEs to split_double.
16488         (ia64_split_tmode_move): New function, body mostly pulled
16489         from ia64.md:*movti_internal.
16490         (ia64_function_arg_words): New function, extracted common
16491         logic from ia64_function_arg et seq.
16492         (ia64_function_arg_offset): Likewise.  Handle correctly the
16493         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
16494         (ia64_function_arg, ia64_function_arg_partial_nregs)
16495         (ia64_function_arg_advance): Use ia64_function_arg_words and
16496         ia64_function_arg_offset.
16497         (ia64_function_value): TCmode does not go in float regs.
16498         (ia64_secondary_reload_class): Also handle TFmode.
16499         * config/ia64/ia64-protos.h: Remove prototype for
16500         ia64_split_timode; add prototype for ia64_split_tmode_move.
16501
16502 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16503
16504         * Makefile.in (MAINT): Make it an immediate assignment.
16505
16506 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16507
16508         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
16509
16510 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16511
16512         * config/h8300/coff.h: Replace Hitachi with Renesas.
16513         * config/h8300/elf.h: Likewise.
16514         * config/h8300/h8300-protos.h: Likewise.
16515         * config/h8300/h8300.c: Likewise.
16516         * config/h8300/h8300.h: Likewise.
16517         * config/h8300/h8300.md: Likewise.
16518         * config/h8300/lib1funcs.asm: Likewise.
16519
16520 2004-01-15  Andrew Pinski  <apinski@apple.com>
16521
16522         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
16523         around it.
16524
16525 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16526
16527         * config/h8300/h8300.c (h8300_return_in_memory): New.
16528         (TARGET_STRUCT_VALUE_RTX): Likewise.
16529         (TARGET_RETURN_IN_MEMORY): Likewise.
16530         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
16531         (RETURN_IN_MEMORY): Likewise.
16532
16533 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16534
16535         PR optimization/13375
16536         * gcse.c (handle_avail_expr): Just return if the source is not a
16537         single set.
16538
16539 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16540             Daniel Jacobowitz  <drow@mvista.com>
16541
16542         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
16543         (EQUIV): Define.
16544         (ARM_FUNC_ALIAS): New macro.
16545         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
16546         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
16547
16548 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16549
16550         PR optimization/12372
16551         * calls.c (expand_call): Add call_fusage data for stack arguments in
16552         constant calls.
16553
16554 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
16555
16556         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
16557         (rs6000_elf_declare_function_name): Formatting.
16558         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
16559
16560 2004-01-15  Jan Hubicka  <jh@suse.cz>
16561
16562         PR bootstrap/13692
16563         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
16564         previous patch.
16565
16566 2004-01-15  Richard Henderson  <rth@redhat.com>
16567
16568         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
16569         integer regs of the same call-savedness.
16570
16571 2004-01-15  Andreas Schwab  <schwab@suse.de>
16572
16573         PR bootstrap/13562
16574         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
16575         status for NOTB/NOTW/NEGW methods.
16576
16577 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16578
16579         * doc/invoke.texi: Update dump file names.  Fix a typo.
16580
16581 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16582
16583         * builtins.c (expand_builtin_va_end): Don't use
16584         EXPAND_BUILTIN_VA_END.
16585         * system.h (EXPAND_BUILTIN_VA_END): Poison.
16586         * config/d30v/d30v.h: Remove a commented-out definition of
16587         EXPAND_BUILTIN_VA_END.
16588         * config/stormy16/stormy16.h: Likewise.
16589
16590 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16591
16592         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
16593         * targhooks.c (default_struct_value_rtx): Don't use
16594         STRUCT_VALUE_INCOMING_REGNUM.
16595
16596 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16597
16598         PR bootstrap/12744
16599         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
16600         GENINSRC and not parsedir.  Define srcextra as a langhook.
16601         * configure: Regenerate.
16602         * Makefile.in: Suppress default .l.c rule.  Don't substitute
16603         parsedir and delete all references throughout.  Conditionally define
16604         rule for srcextra dependent on GENINSRC.
16605         (stmp-docobjdir): Delete.
16606         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
16607         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
16608         and gengtype-yacc.h back to source directory.
16609         (maintainer-clean): Delete all parse files in source directory.
16610         (distclean): Delete generated files.
16611
16612         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
16613         (objc-parse.c, objc-parse.y): Don't use parsedir.
16614         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
16615         directory if requested.
16616         (po-generated): Don't use parsedir.
16617         (objc.maintainer-clean): Delete above files from source directory.
16618
16619 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16620
16621         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
16622
16623 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16624
16625         * doc/tm.texi: Replace RETURN_IN_MEMORY with
16626         TARGET_RETURN_IN_MEMORY.
16627
16628 2004-01-15  Jan Hubicka  <jh@suse.cz>
16629
16630         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
16631         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
16632         functions accepting SSE arguments
16633         (function_arg): Warn only when asked to warn.
16634         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
16635
16636 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
16637
16638         * c-parse.in (stmts_and_decls): Make label at end of compound
16639         statement a hard error.
16640
16641 2004-01-14  Jan Hubicka  <jh@suse.cz>
16642
16643         * cgraph.c (create_edge): Use local.redefined_extern_inline.
16644         * cgraph.h (cgraph_local_info): Sort fields by size; add
16645         redefined_extern_inline
16646         (cgraph_global_info): Sort fields by size.
16647         (cgraph_node): Likewise.
16648         * cgraphunit.c (cgraph_finalize_function): Se
16649         local.redefined_extern_inline on redefinition.
16650         (cgraph_analyze_function): Use it; fix formating.
16651
16652 2004-01-14  Jan Hubicka  <jh@suse.cz>
16653
16654         PR c++/10776
16655         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
16656         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
16657         bitmaps
16658         (cache_size): New variable
16659         (add_dependence): Update use; canonize early memory locations
16660         (sched_analyze_1): Likewise.
16661         (sched_analyze_2): Likewise.
16662         (init_dependency_caches): Initialize bitmaps.
16663         (free_dependency_caches): Free bitmaps
16664
16665 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16666
16667         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
16668         targetm.calls.strict_argument_naming().
16669         * target.h: Likewise.
16670
16671 2004-01-14  Richard Henderson  <rth@redhat.com>
16672
16673         PR debug/13231
16674         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
16675         instructions.
16676
16677 2004-01-14  Richard Henderson  <rth@redhat.com>
16678
16679         PR c++/12491
16680         * except.c (struct eh_region): Add u.fixup.resolved.
16681         (resolve_one_fixup_region): Split out from ...
16682         (resolve_fixup_regions): ... here.
16683
16684 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16685
16686         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
16687
16688 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16689
16690         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
16691         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
16692         (STRUCT_VALUE): Remove.
16693
16694 2004-01-14  Steven Bosscher  <stevenb@suse.de>
16695
16696         * system.h: Poison PROMOTED_MODE
16697         * integrate.c (expand_inline_function): Don't mention the
16698         PROMOTED_MODE.
16699         * loop.c (update_giv_derive): Same.
16700         * tree.h (DECL_RTL): Same.
16701
16702 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
16703
16704         PR target/9365
16705         * sh.c (gen_block_redirect): Add special handling of RETURN.
16706         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
16707         far branch target (i.e. it's a return).
16708
16709 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16710
16711         * regrename.c (find_oldest_value_reg): Fix a warning.
16712
16713 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
16714
16715         PR bootstrap/12527
16716         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
16717         Move linux-gas.h and linux-elf.h before aout.h.
16718         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
16719         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
16720
16721 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16722
16723         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
16724         (CONST_INT, VOIDmode, ...).
16725
16726 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
16727
16728         * regrename.c (find_oldest_value_reg): If the replacement uses
16729         multiple hard registers, check that all of them are in CLASS.
16730
16731 2004-01-14  Jan Hubicka  <jh@suse.cz>
16732
16733         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
16734         impossible.
16735
16736 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
16737
16738         * Makefile.in: Define MAINT from --enable-maintainer-mode.
16739
16740 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
16741
16742         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
16743         Calculate always vrsave_mask if TARGET_ALTIVEC.
16744         (rs6000_emit_prologue): Emit code for vrsave
16745         only if TARGET_ALTIVEC_VRSAVE.
16746         (rs6000_emit_epilogue): Likewise.
16747
16748 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
16749
16750         * config/sparc/sparc.md (tie_add32): Fix pasto.
16751         (tie_add64): Likewise.
16752
16753 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16754
16755         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
16756
16757 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16758
16759         * config/iq2000/iq2000-protos.h: Fix comment formatting.
16760         * config/iq2000/iq2000.c: Likewise.
16761         * config/iq2000/iq2000.md: Likewise.
16762
16763 2004-01-14  J. Brobecker  <brobecker@gnat.com>
16764
16765         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
16766         (subrange_type_die): Add handle for nameless subrange types.
16767
16768 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16769
16770         * config/h8300/h8300-protos.h: Replace do_movsi with
16771         h8300_expand_movsi.
16772         * config/h8300/h8300.c (do_movsi): Change to
16773         h8300_expand_movsi.
16774         * config/h8300/h8300.md (movsi): Replace do_movsi with
16775         h8300_expand_movsi.
16776         (movsf): Likewise.
16777
16778 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16779
16780         * config/h8300/h8300.c (dosize): Change to
16781         h8300_emit_stack_adjustment.  Update callers.
16782
16783 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16784
16785         * config/h8300/h8300.md (movstrictqi): Add an alternative with
16786         the source being post_inc.  Tighten the predicate for the
16787         destination to register_operand.
16788         (movstricthi): Likewise.
16789
16790 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16791
16792         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
16793         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
16794         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
16795
16796 2004-01-14  Jan Hubicka  <jh@suse.cz>
16797
16798         Partial fix PR c++/12850
16799         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
16800         at zero nest level.
16801
16802 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
16803
16804         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
16805         pseudo-register.
16806
16807 2004-01-13  Devang Patel <dpatel@apple.com
16808
16809         PR debug/7078
16810         * dbxout.c (dbxout_symbol_name): Emit mangled names for
16811         NAMESPACE_DECL memebers.
16812
16813 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
16814
16815         PR c++/12709
16816         * c-common.c (finish_fname_decls): Use the chain only if the
16817         tree is an expr_stmt.
16818
16819 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
16820
16821         * rtl.def: Add comment about new option in automata_option.
16822
16823         * genautomata.c (PROGRESS_OPTION): New macro.
16824         (progress_flag): New global variable.
16825         (gen_automata_option): Process `progress'.
16826         (transform_insn_regexps, check_unit_distributions_to_automata,
16827         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
16828         expand_automata, write_automata): Print about the progress only if
16829         progress_flag.  Remove fflush.
16830         (initiate_automaton_gen): Process command line flag `-progress'.
16831
16832         * doc/md.texi: Describe the new option.
16833
16834 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16835
16836         * cfg.c (dump_bb): Dump entry edges.
16837
16838 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
16839
16840         * arm.c (thumb_legitimate_address_p): Only allow constant pool
16841         references from SImode.
16842         * arm.md (thumb_movhi_insn): Don't allow minipool references.
16843
16844 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16845
16846         * system.h (TEXT_SECTION): Poison.
16847         * varasm.c (text_section): Don't use TEXT_SECTION.
16848         * config/sh/sh.c (sh_file_start): Fix a comment typo.
16849         * doc/tm.texi (TEXT_SECTION): Remove.
16850
16851 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
16852
16853         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
16854
16855 2004-01-12  James E Wilson  <wilson@specifixinc.com>
16856
16857         * unwind-libunwind.c: Delete.
16858
16859 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
16860
16861         PR 13656
16862         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
16863         oldtype is set, set *newtypep or *oldtypep too.  Do not set
16864         them at the very end.
16865         (validate_proto_after_old_defn): Restructure for comprehensibility;
16866         make error messages clearer.
16867
16868 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
16869
16870         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
16871         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
16872         * varray.c: No need to prototype error.
16873         (varray_check_failed): Wrap long string onto two lines.
16874         (varray_underflow): New function.
16875
16876 2004-01-13  Steven Bosscher  <stevenb@suse.de>
16877
16878         PR c++/13376
16879         * function.h (struct function): Kill `name' field.
16880         (current_function_name): Make it an extern function.
16881         * function.c (current_function_name): New function.
16882         * graph.c: Update all uses of current_function_name.
16883         * gcse.c: Likewise.
16884         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
16885         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
16886         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
16887         instead of a strcmp with "main".
16888
16889 2004-01-13  Jan Hubicka  <jh@suse.cz>
16890
16891         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
16892
16893         * cgraphunit.c (cgraph_optimize_function):  Always do
16894         optimize_inline_calls when there is always_inline callee.
16895         (cgraph_decide_inlining): Fix formating.
16896         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
16897         functions.
16898         (expand_call_inline): Likewise.
16899         * toplev.h (sorry): Fix prototype.
16900
16901 2004-01-12  Roger Sayle  <roger@eyesopen.com>
16902
16903         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
16904         conditional jumps that drop through to unconditional jumps or the
16905         end of the sequence.
16906
16907 2004-01-13  Jan Hubicka  <jh@suse.cz>
16908
16909         * alias.c (new_alias_set): Construct the alias_set varray.
16910         (init_alias_once): Don't do it here.
16911
16912 2004-01-12  Marc Espie <espie@openbsd.org>
16913
16914         * system.h: handle YYBYACC like YYBISON.
16915
16916 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
16917
16918         PR target/10847
16919         * config.gcc: No longer includes conflicting header sparc/sol2.h when
16920         building on sparc64-*-openbsd*.
16921
16922 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
16923
16924         PR debug/13539
16925         * dbxout.c (dbxout_type): Protected inheritance is not
16926         private but protected.
16927
16928 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
16929
16930         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
16931
16932 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
16933
16934         PR optimization/12508.
16935         * combine.c (try_combine): Remove a dead set in a parallel
16936         even if its destination is a subreg.
16937
16938         Revert:
16939         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
16940         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
16941         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
16942
16943 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
16944
16945         * real.c: Update copyright date.
16946         * emit-rtl.c: Likewise.
16947         * rtl.h: Likewise.
16948         * dwarf2out.c: Likewise.
16949         * config/rs6000/darwin-ldouble.c: Likewise.
16950         * config/rs6000/rs6000.md: Likewise.
16951
16952 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
16953
16954         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
16955         TFmode to SImode libfuncs.
16956
16957 2004-01-12  Roger Sayle  <roger@eyesopen.com>
16958
16959         PR middle-end/11397
16960         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
16961
16962 2004-01-12  Jan Hubicka  <jh@suse.cz>
16963
16964         PR opt/12826
16965         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
16966         stored.
16967
16968         PR opt/12863
16969         * cfgcleanup.c (label_is_jump_target_p): Move to...
16970         * rtlanal.c (label_is_jump_target_p): ... here.
16971         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
16972         edges unified with branch edges.
16973
16974 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
16975
16976         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
16977         high word of an integral CONST_DOUBLE.
16978
16979 2004-01-12  Paul Brook  <paul@codesourcery.com>
16980
16981         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
16982
16983 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
16984
16985         PR target/13585
16986         * sh-protos.h (check_use_sfunc_addr): Declare.
16987         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
16988         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
16989
16990 2004-01-12  Jan Hubicka  <jh@suse.cz>
16991
16992         * alias.c:  Invlude varray.h
16993         (alias_sets): Turn into varray.
16994         (get_alias_set_entry): Use VARRAY; mark inline.
16995         (mems_in_disjoint_alias_sets_p): Mark inline.
16996         (record_alias_subset): Use varray.
16997         (init_alias_once): Initialize varray.
16998         (new_alias_set): Grow array.
16999         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17000
17001 2004-01-12  Jan Hubicka  <jh@suse.cz>
17002
17003         Partial fix for PR opt/10776 II
17004         * cselib.c: Include params.h
17005         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17006         locations.
17007         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17008         * Makefile.in (cselib.o): Depend on params.h
17009
17010 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17011
17012         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17013         simplify_unary_operation if the operand has a known mode.
17014
17015 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17016
17017         PR target/13534
17018         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17019         predicate to handle 'ld' conform addresses.
17020         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17021         contraint.
17022         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17023         are memory contraints.
17024         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17025         New prototype.
17026         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17027         Change 'o' to 'Y' constraint.
17028         (*movdf_softfloat64): Ditto.
17029
17030 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17031
17032         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17033         brace-enclosed syntax in all C output statements.
17034
17035 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17036
17037         PR target/13401
17038         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17039         Objective-C language type value is 14.
17040
17041 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17042
17043         PR c/12148
17044         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17045         `int' in a number of places to make sure we always have a SImode
17046         and not a HImode.  Add a 'L' suffix to a number of constants.
17047
17048 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17049
17050         * pa.c: Don't include obstack.h.
17051
17052         * pa.md: Correct constraint in pattern for loading PIC label address.
17053
17054 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17055
17056         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17057          before defining.
17058
17059 2004-01-11  Steven Bosscher  <stevenb@suse.de>
17060
17061         PR fortran/9972
17062         * toplev.c (rest_of_handle_inline): Also consider functions
17063         for deferral if the language is GNU F77.
17064
17065 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
17066
17067         * c-decl.c (diagnose_arglist_conflict): Add missing space to
17068         diagnostic messages.
17069
17070 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
17071
17072         PR middle-end/13392
17073         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17074         to drop through label.  Don't fall back to SCC even when conditional
17075         jump has not been found.
17076
17077 2004-01-11  Jan Hubicka  <jh@suse.cz>
17078
17079         * invoke.texi: Fix syntax error in previous patch.
17080
17081         Partial fix for PR opt/10776
17082         * Makefile.in (reload.o): Include param.h
17083         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17084         * reload.c: Include params.h.
17085         (find_equiv_reg): Work limiting check.
17086         * invoke.texi: Document.
17087
17088 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17089
17090         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17091         out-of-bounds accesses to string constants.  Simplify mips16
17092         case accordingly.
17093
17094 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17095
17096         PR optimization/13469
17097         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17098         reload_cse_regs (-fnon-call-exceptions only).
17099
17100 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17101
17102         * config/mcore/lib1.asm: Fix comment formatting.
17103         * config/mcore/mcore-elf.h: Likewise.
17104         * config/mcore/mcore.c: Likewise.
17105         * config/mcore/mcore.h: Likewise.
17106         * config/mcore/mcore.md: Likewise.
17107
17108 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17109
17110         * c-decl.c (duplicate_decls): Break apart into...
17111         (diagnose_arglist_conflict, validate_proto_after_old_defn)
17112         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17113         ... these new functions.  Restructure for comprehensibility.
17114         Remove various archaic special cases.  Always report the
17115         location of the previous declaration when a diagnostic is issued.
17116         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17117         (match_builtin_function_types): Delete unnecessary forward declaration.
17118
17119 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17120
17121         * genautomata.c (make_automaton, NDFA_to_DFA):
17122         Print progress bars with '.' characters instead of '*'.
17123         (build_automaton): Change notes to match.
17124
17125 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17126
17127         * config/m32r/m32r.md: Use define_constants for unspec and
17128         unspec_volatile.
17129
17130 2004-01-10  Jan Hubicka  <jh@suse.cz>
17131
17132         PR opt/11635
17133         * expr.c (expand_expr_real):  More curefully expand union casts.
17134
17135 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17136
17137         * config/m32r/m32r.md (flush_icache): Use 1 for
17138         unspec_volatile.
17139
17140 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
17141             James E Wilson  <wilson@specifixinc.com>
17142
17143         PR debug/12860
17144         * dbxout.c (dbxout_symbol): Remove initialization of
17145         current_sym_code, current_sym_value, and current_sym_addr.
17146         (dbxout_symbol_location): Same.
17147         (dbxout_prepare_symbol): Zero current_sym_code,
17148         current_sym_value, and current_sym_addr.
17149
17150 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
17151
17152         * tree.c (get_unwidened): Reorder conditions so that the null pointer
17153         check is done first.
17154
17155 2004-01-09  Eric Christopher  <echristo@redhat.com>
17156
17157         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17158         if we're running mark_constant_function.
17159
17160 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
17161
17162         PR target/12561
17163         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17164
17165 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
17166
17167         PR debug/11231
17168         * dbxout.c (dbxout_type_fields): Return if any item is
17169         error_mark_node or the type is error_mark_node.
17170
17171 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
17172
17173         * config/rs6000/darwin-ldouble.c: Add big comment explaining
17174         exactly what is expected as a 'long double'.
17175         (_xlqadd): When a value to be returned is representable as a
17176         'double', just return it directly, do not construct it using a union.
17177         Also, correct final fixup.
17178         (_xlqmul): Likewise.
17179         (_xlqdiv): Likewise.
17180         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17181
17182         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17183
17184 2004-01-09  Richard Henderson  <rth@redhat.com>
17185
17186         * recog.c (constrain_operands): Validate mem operands.
17187
17188 2004-01-09   James E Wilson  <wilson@specifixinc.com>
17189
17190         * gcc.c (init_spec): Remove -lunwind from shared case.
17191         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17192
17193 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
17194
17195         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17196         * configure: Regenerate
17197
17198 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
17199
17200         PR c/11234
17201         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17202         between function and object pointers.
17203         (digest_init): When comparing a pointer to function type to the
17204         target type, only apply TREE_TYPE once to the pointer to function
17205         type.
17206         * except.c (for_each_eh_label_1): Treat data as a pointer to a
17207         function pointer rather than casting it to a function pointer.
17208         (for_each_eh_label): Update caller.
17209         * recog.h (struct insn_data): Use a struct or union for output.
17210         * genoutput.c (output_insn_data): Update.
17211         * final.c (get_insn_template): Update.
17212
17213 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17214
17215         * expr.h (expand_expr): Make it a macro, not a function.
17216         (expand_expr_real): New function.
17217         * expr.c (store_expr): Adjust logic for deciding whether or not to
17218         copy the value returned by expand_expr.
17219         (expand_expr): Rename to ...
17220         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
17221         calls to language hooks.
17222         * c-common.h (c_expand_expr): Adjust prototype.
17223         * c-common.c (c_expand_expr): Add alt_rtl parameter.
17224         * langhooks-def.h (lhd_expand_expr): Change prototype.
17225         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17226         * langhooks.h (lang_hooks): Change type of expand_expr.
17227         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17228         (last_expr_alt_rtl): Likewise.
17229         (expand_expr_stmt_value): Set last_expr_alt_rtl.
17230         (clear_last_expr): Clear it.
17231         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17232         (expand_end_bindings): Save and restor last_expr_alt_rtl.
17233         * tree.def (RTL_EXPR): Give it an additional operand.
17234         * tree.h (RTL_EXPR_ALT_RTL): New macro.
17235
17236 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17237
17238         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
17239         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
17240
17241 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17242
17243         PR target/13380.
17244         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17245         or (ne:SI (reg:CC 17) (const_int 0)).
17246         Be specific about modes wherever possible.
17247
17248 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17249
17250         * config/m32r/m32r.c (m32r_expand_block_move): Call
17251         gen_movestrsi_internal with two more arguments.
17252         (m32r_output_block_move): Adjust operand numbers.
17253         Properly update the source and destination pointers.
17254         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17255         'r+'.  Change the set detinations to match_operand.
17256
17257 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17258
17259         * final.c (FIRST_INSN_ADDRESS): Remove.
17260         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17261         * system.h (FIRST_INSN_ADDRESS): Poison.
17262         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17263         * config/m32r/m32r-protos.h: Remove the prototype for
17264         m32r_first_insn_address.
17265         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17266         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17267         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17268
17269 2004-01-09  J. Brobecker  <brobecker@gnat.com>
17270
17271         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17272         we just created.
17273         (is_ada_subrange_type): DIEs for enumeration subtypes should be
17274         emitted as subrange types too.
17275         (subrange_type_die): Add handling of enumeration subtypes.
17276
17277 2004-01-08  Richard Henderson  <rth@redhat.com>
17278
17279         PR opt/12441
17280         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17281         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17282         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17283         (ix86_address_cost): Be prepared for SUBREGed registers.
17284         (legitimate_address_p): Accept SUBREGed registers.
17285
17286 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
17287
17288         * Makefile.in: Rename configure.in to configure.ac
17289         * doc/sourcebuild.texi: Likewise.
17290         * configure: Regenerate.
17291         * config.in: Regenerate.
17292
17293 2004-01-08  Stuart Hastings  <stuart@apple.com>
17294
17295         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17296
17297 2004-01-08  Jan Hubicka  <jh@suse.cz>
17298
17299         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
17300
17301 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
17302
17303         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17304         (UNSPEC_FIX_TRUNC_TF): New constant.
17305         (movtf_internal): Make splitter active only when insn is active.
17306         (extenddftf2): Rewrite to properly load zero into low part.
17307         (extenddftf2_internal): New.
17308         (extendsftf2): Rewrite.
17309         (truncdftf2): Correct length.
17310         (floatditf2): Delete.
17311         (fix_trunc_helper): New.
17312         (fix_trunctfdi2): Use fix_trunc_helper.
17313         (fix_trunctfsi2): Likewise.fix_trunc
17314         (fix_trunctfsi2_internal): New.
17315
17316         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17317         addresses are legitimate on Darwin even when flag_pic.
17318         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17319         non-offsettable addresses for loads of TFmode constants.
17320
17321 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17322
17323         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17324         variables in the appropriate bss section.
17325
17326 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
17327
17328         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17329         target_flags has MASK_POWERPC64 when -m64.
17330         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17331         to 620, 630, power3, power4 and rs64a entries.
17332         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17333
17334 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
17335
17336         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17337         floating-point constants.
17338
17339 2004-01-08  J. Brobecker  <brobecker@gnat.com>
17340
17341         * dwarf2out.c (subrange_type_die): Add context_die parameter.
17342         Create the subrange_type DIE using the given context DIE.
17343         (modified_type_die): Update call to subrange_type_die.
17344
17345 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
17346
17347         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17348         Add multiple-include guard.
17349
17350 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
17351
17352         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17353         all vector constant loadable by vsplt*.
17354         (output_vec_const_move): Likewise.
17355
17356 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17357
17358         PR c/6024
17359         * c-typeck.c (comptypes): Only treat enumerated types in the same
17360         translation unit as compatible with each other when they are the
17361         same type.
17362         * doc/extend.texi: Update.
17363
17364 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17365
17366         PR c/12165
17367         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
17368         array type from the array element type.
17369
17370 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
17371
17372         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
17373         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
17374         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
17375         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
17376         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
17377
17378 2004-01-06  Eric Christopher  <echristo@redhat.com>
17379
17380         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
17381         (DWARF2_DEBUGGING_INFO): Define.
17382         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
17383         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
17384         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
17385         for irix as.
17386         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
17387         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
17388         * config/mips/iris5gas.h: Ditto.
17389         (DBX_DEBUGGING_INFO): Remove.
17390         (DWARF2_DEBUGGING_INFO): Ditto.
17391         (MIPS_DEBUGGING_INFO): Ditto.
17392         (PREFERRED_DEBUGGING_TYPE): Ditto.
17393         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
17394         (PREFERRED_DEBUGGING_TYPE): Ditto.
17395         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
17396         * config/mips/elf64.h: Ditto.
17397
17398 2004-01-06  Jan Hubicka  <jh@suse.cz>
17399
17400         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
17401         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
17402
17403 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
17404
17405         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
17406         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
17407         * config/rs6000/darwin-ldouble.c: New.
17408
17409         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
17410         for constants.
17411         (constant_subword): Delete.
17412         * rtl.h (constant_subword): Delete prototype.
17413         (immed_double_const): Is not in varasm.c.
17414         * simplify-rtx.c (simplify_immed_subreg): New.
17415         (simplify_subreg): Use simplify_immed_subreg.
17416
17417         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
17418         than trying to generate RTL directly.
17419         (fix_trunctfsi2): Use expand_fix rather than trying to generate
17420         RTL directly.
17421
17422         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
17423
17424 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
17425
17426         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
17427         function into a separate macro.
17428         (read_only_data_section): Add void argument.
17429         (private_data_section): Same.
17430         (read_only_private_data_section): Same.
17431         (toc_section): Same.
17432
17433 2004-01-06  Jan Hubicka  <jh@suse.cz>
17434
17435         * invoke.texi:  Remove typo in last change.
17436
17437         PR target/10301
17438         * config.gcc: Accept opteron and athlon-64 as variants
17439         of k8.
17440         * i386.c (override_options): Likewise.
17441         * invoke.texi (i386 -mtune): Expand documentation.
17442
17443 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17444
17445         * alias.c: Fix comment typos.
17446         * builtins.c: Likewise.
17447         * cfg.c: Likewise.
17448         * df.c: Likewise.
17449         * dominance.c: Likewise.
17450         * dwarf2out.c: Likewise.
17451         * emit-rtl.c: Likewise.
17452         * expr.c: Likewise.
17453         * final.c: Likewise.
17454         * fold-const.c: Likewise.
17455         * gcse.c: Likewise.
17456         * genattrtab.c: Likewise.
17457         * genrecog.c: Likewise.
17458         * gensupport.c: Likewise.
17459         * ggc-zone.c: Likewise.
17460         * integrate.c: Likewise.
17461         * local-alloc.c: Likewise.
17462         * loop.c: Likewise.
17463         * recog.c: Likewise.
17464         * regmove.c: Likewise.
17465         * reg-stack.c: Likewise.
17466         * reorg.c: Likewise.
17467         * rtlanal.c: Likewise.
17468         * rtl.h: Likewise.
17469         * sched-ebb.c: Likewise.
17470         * simplify-rtx.c: Likewise.
17471         * toplev.c: Likewise.
17472         * varasm.c: Likewise.
17473
17474 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17475
17476         * doc/install.texi: Fix typos.
17477         * doc/invoke.texi: Likewise.
17478         * doc/md.texi: Likewise.
17479
17480 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17481
17482         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
17483
17484 2004-01-06  Jan Hubicka  <jh@suse.cz>
17485
17486         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
17487         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
17488         of MMX_REGPARM.
17489         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
17490         add MMX_REGPARM.
17491         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
17492         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
17493         (MMX_REGPARM_MAX): Similarly for -mmmx.
17494
17495 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17496
17497         * config/sh/linux.h: Fix comment formatting.
17498         * config/sh/netbsd-elf.h: Likewise.
17499         * config/sh/sh.c: Likewise.
17500         * config/sh/sh.h: Likewise.
17501         * config/sh/vxworks.h: Likewise.
17502
17503 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17504
17505         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
17506         * toplev.c (output_file_directive): Don't use
17507         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
17508
17509 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
17510
17511         * toplev.c: Fix broken checkin of 2003-12-30.
17512
17513 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
17514
17515         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
17516         (USING_MMAP): We don't support non-mmap.
17517         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
17518         large objects.
17519         (struct page_entry): Remove bytes_free.
17520         (struct page_table_chain): Remove.
17521         (struct globals): Remove page_table member.
17522         (loookup_page_table_entry): Function deleted.
17523         (set_page_table_entry): Ditto.
17524         (ggc_allocated_p): No longer need page table lookups.
17525         (ggc_marked_p): Ditto.
17526         (alloc_small_page): Don't care about bytes_free anymore.
17527         (alloc_large_page): Round up size.
17528         (ggc_alloc_zone_1): Mark large objects as such, and calculate
17529         their size the new way.
17530         Remove page table lookups and setting.
17531         (ggc_get_size): Calculate large object size the new way.
17532         (sweep_pages): Redo to account for fact that we no longer have
17533         bytes_free.
17534         (ggc_collect): No longer need to reincrement bytes_free.
17535         (ggc_pch_alloc_object): Handle new large objects properly.
17536         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
17537
17538 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17539
17540         * doc/invoke.texi: Remove a page break.
17541
17542 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17543
17544         * config/avr/avr.c (avr_output_function_prologue): Remove an
17545         extra pair of curly braces.
17546
17547 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17548
17549         * config/mn10300/mn10300.c: Fix comment formatting.
17550         * config/mn10300/mn10300.h: Likewise.
17551
17552 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17553
17554         * tree.h: Update documentation on nothrow_flag.
17555         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
17556         types.
17557
17558 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17559
17560         * doc/invoke.texi: Remove traces of dead ports.
17561
17562 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17563
17564         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
17565         option.
17566
17567 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17568
17569         PR target/12945
17570         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
17571         counter labels.
17572         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
17573         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
17574         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
17575         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
17576         (mips_symbol_insns): Don't trust the local/global classification.
17577         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
17578         (override_options): Make -mabicalls -fno-unit-at-a-time imply
17579         -mno-explicit-relocs.
17580         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
17581         between local and global symbols.
17582
17583 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17584
17585         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
17586         (mips_preferred_reload_class): Declare.
17587         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
17588         (EXTRA_CONSTRAINT): Update accordingly.
17589         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
17590         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
17591         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
17592         mips_dangerous_for_la25_p.
17593         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
17594         if mips_dangerous_for_la25_p.
17595
17596 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
17597
17598         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
17599         warning.
17600
17601 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
17602
17603         * configure.ac: Use AC_PROG_CPP_WERROR.
17604         * configure: Regenerate.
17605
17606 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
17607
17608         * .cvsignore: Add autom4te.cache.
17609
17610 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
17611
17612         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
17613         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
17614         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
17615         then architecture options, then ABI options.  General rewording.
17616
17617 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
17618
17619         PR c/3414
17620         * doc/extend.texi: Clarify definition of malloc attribute.
17621
17622 2004-01-04  Jan Hubicka  <jh@suse.cz>
17623
17624         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
17625         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
17626         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
17627         (cgraph_inline_p): Add extra argument reason.
17628         * cgraphunit.c: Minor formating fixes.
17629         cgraph_first_inlined_callee): New functions.
17630         (record_call_1): Record builtins too.
17631         (cgraph_analyze_function): Update inline_failed messages.
17632         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
17633         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
17634         (cgraph_check_inline_limits): Likewise; Add argument reason.
17635         (cgraph_set_inline_failed): New static function.
17636         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
17637         reasons.
17638         (cgraph_inline_p): Add new argument reason.
17639         * tree-inline.c (expand_call_inline):  Update warning.
17640
17641 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
17642
17643         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
17644         with modern equivalents.
17645         * configure: Regenerate.
17646
17647         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
17648         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
17649         * configure: Regenerate.
17650
17651         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
17652
17653         * configure.in: Rename to configure.ac.
17654         * configure.ac: Renamed from configure.in; make minimum necessary
17655         changes for autoconf 2.5x.
17656         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
17657         * configure: Regenerate with autoconf 2.57.
17658
17659 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
17660
17661         * config/mips/linux.h: Fix comment formatting.
17662         * config/mips/mips.c: Likewise.
17663         * config/mips/mips.h: Likewise.
17664         * config/mips/mips.md: Likewise.
17665         * config/mips/netbsd.h: Likewise.
17666         * config/mips/windiss.h: Likewise.
17667
17668 2004-01-02  Richard Henderson  <rth@redhat.com>
17669
17670         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
17671         for sse and 387; add suppression for mmx.
17672
17673 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
17674
17675         * loop.c (loop_optimize): Free all loops_info's mems.
17676
17677         * c-typeck.c (finish_init): Free spelling_base before
17678         setting it again.
17679
17680         * cfgloop.c (flow_loops_find): Always free the sbitmap
17681         headers.
17682
17683         * predict.c (estimate_probability): Free bbs after being
17684         done with it.
17685
17686 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17687
17688         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
17689         const_8bit_operand and call_address_operand.
17690
17691 2004-01-02  Jan Hubicka  <jh@suse.cz>
17692
17693         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
17694         when there is nothing to inline but warnings are requested.
17695         (cgraph_decide_inlining):  Fix memory leak.
17696
17697 2004-01-02  Jan Hubicka  <jh@suse.cz>
17698
17699         * expr.c (store_constructor):  Fix pasto in previous patch.
17700
17701 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17702
17703         * config/i386/cygming.h: Fix comment formatting.
17704         * config/i386/djgpp.h: Likewise.
17705         * config/i386/gthr-win32.c: Likewise.
17706         * config/i386/i386-interix.h: Likewise.
17707         * config/i386/i386.c: Likewise.
17708         * config/i386/i386.h: Likewise.
17709         * config/i386/openbsd.h: Likewise.
17710         * config/i386/winnt.c: Likewise.
17711         * config/i386/xm-mingw32.h: Likewise.
17712
17713 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
17714
17715         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
17716         copyright and last modification dates.
17717
17718 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
17719
17720         * doc/install.texi (Specific): Mention x86_64.
17721
17722 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
17723
17724         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
17725         Call force_operand on plus_constant result.
17726
17727 2004-01-01  Jan Hubicka  <jh@suse.cz>
17728
17729         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
17730         * expr.c (store_constructor): Use vec_init pattern.
17731         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
17732         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
17733         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
17734         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
17735         New patterns.
17736         (sse2_unpc?pd): Fix pattern.
17737         (sse2_movlpd): Kill.
17738         (sse2_movsd): Deal with movlpd too.
17739         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
17740         (ix86_expand_vector_init): New.
17741         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
17742         * md.texi (vec_set, vec_extract): Document
17743
17744 2003-12-31  Jan Hubicka  <jh@suse.cz>
17745
17746         PR opt/13473
17747         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
17748         ASM input operands
17749
17750         PR opt/12617
17751         * toplev.c (dump_file_index): Reorder ce3 and bbro.
17752         (dump_file): Likewise.
17753         (rest_of_compilation): Likewise.
17754
17755         PR debug/13367
17756         * cgraph.c (cgraph_function_possibly_inlined):  Even with
17757         flag_really_no_inline we inline always_inline functions.
17758         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
17759         for non-always_inline functions when there is flag_really_no_inline.
17760         (cgraph_decide_inlining): Limit work done when not inlining.
17761         (cgraph_decide_inlining_incrementally): Likewise.
17762         (cgraph_optimize_function): Check whether something got inlined.
17763         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
17764         extern inline functions when not inlining.
17765
17766         * opts.c (decode_options):  Disable crossjumping at -O1
17767         * invoke.texi (-O1): Document change.
17768
17769 See ChangeLog.10 for earlier changes.