re PR middle-end/15945 (Incorrect floating point optimization)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
2
3         PR middle-end/15945
4         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
5         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
6
7 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8
9         * opts.sh (var_args): Fix regexp.
10
11 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
12
13         PR target/15178
14         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
15
16 2004-06-14  Paul Brook  <paul@codesourcery.com>
17
18         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
19
20 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
21
22         * Makefile.in (FLAGS_H): New.
23         (flags.h): Replace by FLAGS_H.
24         * c.opt: Document Var, VarExists, Init and Report attributes.
25         * common.opt: Fill the values of the attributes.
26         * diagnostic.c (flag_fatal_errors): Do not define.
27         * except.c (flag_non_call_exceptions): Do not define.
28         * flags.h: Include options.h.  Remove declarations conflicting with
29         the automatically defined ones.
30         * opts.c: Remove automatically defined variables.
31         (handle_option): Perform default initialization.
32         (common_handle_option): Do not handle options covered by the
33         default initialization.
34         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
35         fields.
36         (CL_REPORT): New.
37         * opts.sh: Generate variable declarations, handle CL_REPORT.
38         * toplev.c: Remove automatically defined variables.
39         (f_options): Removed.
40         (print_switch_values): Use cl_options instead of f_options.
41         * toplev.h (version_flag): Declaration removed.
42
43 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
44
45         * config/sparc/sparc.h: Correct comment about availability of
46         little endian option.
47
48         * config.gcc: Remove sparc64-*-aout*.
49         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
50         * config/sparc/sp64-aout.h: Remove.
51         * config/sparc/aout.h: Remove.
52
53 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
54
55         * config/s390/s390.c: Include "tree-gimple.h".
56         (s390_gimplify_va_arg): New function.
57         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
58         (s390_va_arg): Remove.
59         * config/s390/s390-protos.h (s390_va_arg): Remove.
60         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
61
62 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
63
64         * basic-block.h (could_fall_through): Declare.
65         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
66         Fail if the source already has a fallthrough edge to the exit
67         block pointer.
68         (could_fall_through): New function.
69         * cfgbuild.c (make_edges): Check if we already have a fallthrough
70         edge to the exit block pointer.
71         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
72         not called before reload has completed.
73         Handle special case of first block having a fall-through exit edge.
74         (cfg_layout_finalize): Don't call it before reload or if we have
75         rtl epilogues.
76         (fixup_reorder_chain): A fall through to the exit block does not
77         require the block to come last.  Add sanity checks.
78         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
79         edges to the exit block.
80         * function.c (cfglayout.h): #include.
81         (thread_prologue_and_epilogue_insns): If we have neither return nor
82         epilogue, but a fall through to the exit block from mid-function,
83         force a non-fall-through exit.
84         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
85
86 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
87
88         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
89         for power5 and rs64a.  Correct condition for default.  Correct power3,
90         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
91
92 2004-06-13  Steven Bosscher <stevenb@suse.de>
93
94         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
95         Revert previous change, don't use CALL_P.
96
97 2004-06-13  Jason Merrill  <jason@redhat.com>
98
99         * tree.h: Move std_gimplify_va_arg_expr protoype here.
100         * tree-gimple.h: From here.
101
102 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
103
104         Fix PR tree-optimization/15979
105         Fix PR tree-optimization/15981
106         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
107         try to insert values undefined along some path.
108
109 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
110
111         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
112         are available everywhere too.
113
114 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
115
116         * fold-const.c (fold_checksum_tree <case 't'>): Only
117         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
118         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
119         EXPR is an INTEGERAL_TYPE or a scalar float type.
120
121 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
122
123         * tree-sra.c (tree_sra): Update documentation.
124
125 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
126
127         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
128         function_types_compatible_p, type_lists_compatible_p): Remove
129         flags parameter.
130         * c-tree.h (comptypes): Likewise.
131         (COMPARE_STRICT): Remove.
132         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
133         callers changed.
134
135 2004-06-13  Eric Christopher  <echristo@redhat.com>
136
137         * c-decl.c (diagnose_mismatched_decls): Improve error message.
138         Remove unused code.
139         * c-typeck.c (comptypes): Add location in standard we're checking.
140
141 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
142
143         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
144         version 3.3.4.
145
146 2004-06-12  Roger Sayle  <roger@eyesopen.com>
147
148         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
149         index by machine mode.
150         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
151         tables inside the loop over machine modes.
152         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
153         expand_divmod): Index shift*_cost by the appropriate machine mode.
154
155 2004-06-12  Eric Christopher  <echristo@redhat.com>
156
157         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
158         * config/s390/s390.md: Ditto.
159         * config/s390/s390.c: Ditto.
160         (s390_frame_info): Conditionalize frame and setup info on
161         TARGET_TPF_PROFILING.
162         (s390_arg_frame_offset): Ditto.
163
164 2004-06-12  Roger Sayle  <roger@eyesopen.com>
165
166         * fold-const.c (omit_two_operands): New function.
167         * tree.h (omit_two_operands): Prototype here.
168         * builtins.c (fold_builtin_unordered_cmp): New function to lower
169         C99 unordered comparison builtins to the appropriate tree nodes.
170         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
171         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
172         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
173         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
174         (simplify_builtin_memcmp, simplify_builtin_strncmp,
175         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
176         omit_two_operands function to build the required COMPOUND_EXPRs.
177
178 2004-06-12  Steven Bosscher <stevenb@suse.de>,
179             Andreas Jaeger  <aj@suse.de>
180
181         * gcse.c (record_set_info): Use predicates like REG_P.
182         (mems_conflict_for_gcse_p): Likewise.
183         (load_killed_in_block_p): Likewise.
184         (hash_expr_1): Likewise.
185         (insert_set_in_table): Likewise.
186         (gcse_constant_p): Likewise.
187         (hash_scan_set): Likewise.
188         (hash_scan_insn): Likewise.
189         (canon_list_insert): Likewise.
190         (record_last_mem_set_info): Likewise.
191         (record_last_set_info): Likewise.
192         (compute_hash_table_work): Likewise.
193         (mark_set): Likewise.
194         (mark_clobber): Likewise.
195         (mark_oprs_set): Likewise.
196         (compute_transp): Likewise.
197         (find_avail_set): Likewise.
198         (cprop_insn): Likewise.
199         (do_local_cprop): Likewise.
200         (cprop): Likewise.
201         (find_implicit_sets): Likewise.
202         (find_bypass_set): Likewise.
203         (bypass_conditional_jumps): Likewise.
204         (insert_insn_end_bb): Likewise.
205         (pre_insert_copy_insn): Likewise.
206         (compute_transpout): Likewise.
207         (next_ls_expr): Likewise.
208         (invalidate_any_buried_refs): Likewise.
209         (compute_ld_motion_mems): Likewise.
210         (reg_set_info): Likewise.
211         (reg_clear_last_set): Likewise.
212         (find_moveable_store): Likewise.
213         (compute_store_table): Likewise.
214         (find_loads): Likewise.
215         (store_killed_in_insn): Likewise.
216         (insert_insn_start_bb): Likewise.
217         (reg_set_between_after_reload_p): Likewise.
218         (reg_used_between_after_reload_p): Likewise.
219         (is_jump_table_basic_block): Likewise.
220         (gcse_after_reload): Likewise.
221         (hash_scan_set_after_reload): Likewise.
222         (compute_hash_table_after_reload): Likewise.
223
224 2004-06-12  Steven Bosscher  <stevenb@suse.de>
225
226         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
227         (INSN_P): Don't look at the rtx code class, just explicitly
228         check for one of the tree RTX_INSN codes.
229
230 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
231
232         * c-typeck.c (default_function_array_conversion): Use
233         build_pointer_type not TYPE_POINTER_TO.
234
235 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
236
237         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
238         * configure, config.in: Regenerate.
239         * system.h: Unconditionally define bool as unsigned char,
240         BOOL_BITFIELD as unsigned int.
241         * domwalk.h: Use BOOL_BITFIELD.
242
243 2004-06-12  Andreas Jaeger  <aj@suse.de>
244
245         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
246         * libgcc-darwin.ver: Likewise.
247
248 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
249
250         * reload.c (find_reloads): Force reload for pseudo registers on big
251         endian machines.
252
253 2004-06-11  Steven Bosscher <stevenb@suse.de>
254
255         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
256         Don't try to mark anything control dependent on the entry or
257         exit blocks.
258
259 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
260
261         Fix Bug 15899
262         Fix Bug 15460
263         * tree.h (SSA_NAME_VALUE): New macro.
264         (struct tree_ssa_name): Add value_handle member.
265         * tree-ssa-pre.c: Replaced.
266         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
267         (struct cst_ann_d): New.
268         (struct expr_ann_d): New.
269         (union tree_ann_d): Add cst_ann, expr_ann.
270         * tree-dfa.c (create_cst_ann): New function.
271         (create_expr_ann): Ditto.
272         * tree-flow-inline.h (cst_ann): New function.
273         (expr_ann): Ditto.
274         (get_cst_ann): Ditto.
275         (get_expr_ann): Ditto..
276
277 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
278
279         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
280         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
281         _U_Qfcmp library function.
282         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
283         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
284
285         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
286         unspec used for loading address from DLT.
287         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
288         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
289         Don't use short code sequence when loading the address of a nonlocal
290         label.
291         (nonlocal_goto): New expander.
292         (indirect_goto): New jump pattern for nonlocal gotos.
293         (short_jump): Remove extra whitespace.
294         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
295         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
296         pattern.
297
298 2004-06-11  Roger Sayle  <roger@eyesopen.com>
299
300         * expmed.c (synth_mult): Add an additional MODE argument for the
301         machine mode of the multiplication.  Update recursive calls.  Use
302         mode instead of word_mode for determining operation costs.
303         (choose_mult_variant): Update calls to synth_mult with "mode".
304
305 2004-06-11  Richard Henderson  <rth@redhat.com>
306
307         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
308         and makes_aliased_stores.
309
310 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
311
312         * doc/install.text (--enable-shared): Fix typo.
313
314 2004-06-11  Richard Henderson  <rth@redhat.com>
315
316         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
317         argument.  Use internal post for call to gimplify_expr.  Tidy
318         rounded type size computation.
319         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
320         get_initialized_tmp_var.
321
322 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
323
324         * doc/install.texi (--enable-shared): Update libobjc's shared library
325         status.  Remove reference to libf2c.
326
327 2004-06-11  Jason Merrill  <jason@redhat.com>
328
329         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
330         * config/i386/i386.c (ix86_va_arg): Remove.
331         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
332         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
333         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
334         * config/alpha/alpha.c (alpha_va_arg): Remove.
335         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
336         * config/sparc/sparc.c (sparc_va_arg): Remove.
337
338         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
339         assignment might throw.
340         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
341         expressions.
342
343 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
344
345         PR 15886:
346         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
347
348 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
349
350         * doc/install.texi (Prerequisites): Update documentation of
351         required versions of autoconf and automake.  Remove mention of
352         libf2c.
353
354 2004-06-11  Jason Merrill  <jason@redhat.com>
355
356         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
357         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
358
359 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
360
361         * typeclass.h: Add GPL plus exception license.  Add include
362         guard.
363
364 2004-06-10  Jason Merrill  <jason@redhat.com>
365
366         * gimplify.c (gimplify_modify_expr): Don't force a temporary
367         of an aggregate_value_p type.
368
369 2004-06-10  Jeff Law  <law@redhat.com>
370
371         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
372         code when we are in gimple form.
373
374 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
375
376         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
377         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
378         (highest_ssa_version): Remove.
379         * tree-outof-ssa.c (new_temp_expr_table): Replace
380         highest_ssa_version with num_ssa_names.
381         (dump_replaceable_exprs): Likewise.
382         (rewrite_vars_out_of_ssa): Likewise.
383         * tree-ssa-ccp.c (initialize): Likewise
384         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
385         * tree-ssa-dce.c (tree_dce_init): Likewise.
386         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
387         * tree-ssa-live.c (create_ssa_var_map): Likewise.
388         (dump_var_map): Likewise.
389         * tree-ssa.c (verify_ssa): Likewise.
390         (kill_redundant_phi_nodes): Likewise.
391         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
392         * tree-ssanames.c: Include tree-flow.h
393         (ssa_names): New varray.
394         (init_ssa_names): Initialize ssa_names.
395         Reserve the first slot of the ssa_names table.
396         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
397         Assign version numbers using num_ssa_names.
398
399 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
400
401         * doc/sourcebuild.texi (Front End): Add details of more
402         installation documentation required.
403
404 2004-06-10  Brian Booth  <bbooth@redhat.com>
405
406         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
407         of V_MAY_DEF and V_MUST_DEF.
408         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
409         num_vdefs to num_v_may_defs.
410         (compute_immediate_uses_for_stmt): Rename occurences of vdef
411         to v_may_def.
412         (redirect_immediate_uses): Ditto.
413         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
414         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
415         Also add code to sum up the number of v_must_defs.
416         (vdefs_disappeared_p): Replace with...
417         (v_may_defs_disappeared_p): This.
418         (v_must_defs_disappeared_p): New function.
419         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
420         Also add code to mark new variables found in V_MUST_DEFs for
421         renameing.
422         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
423         vdef_ops to v_may_def_ops.
424         (get_vdef_ops): Replace with...
425         (get_v_may_def_ops): This.
426         * tree-flow-inline.h (get_vdef_ops): Replace with...
427         (get_v_may_def_ops): This.
428         (get_v_must_def_ops): New function.
429         (get_vdef_result_ptr): Replace with...
430         (get_v_may_def_result_ptr): This.
431         (get_vdef_op_ptr): Ditto with...
432         (get_v_may_def_op_ptr); This.
433         (get_v_must_def_op_ptr): New function.
434         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
435         to v_may_def. Also add code to mark statements with
436         V_MUST_DEFs as definition sites.
437         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
438         add code to register new V_MUST_DEFs made by the statement.
439         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
440         (check_replaceable): Rename occurences of vdef to v_may_def. Also
441         add check for V_MUST_DEFs.
442         (find_replaceable_in_bb): Ditto.
443         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
444         to v_may_def. Also add code to dump V_MUST_DEFs.
445         * tree-sra.c (mark_all_vdefs): Replace with...
446         (mark_all_v_may_defs): This.
447         (mark_all_v_must_defs): New function.
448         (create_scalar_copies): Replace call to mark_all_vdefs with
449         calls to mark_all_v_may_defs and mark_all_v_must_defs.
450         (scalarize_structures): Rename occurences of vdef to v_may_def.
451         Also add a check for V_MUST_DEFs.
452         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
453         * tree-ssa-alias.c (global_var): Update comment.
454         (compute_may_aliases): Ditto.
455         (compute_points_to_and_addr_escape): Rename occurences of vdef
456         to v_may_def. Also add code to mark variables in V_MUST_DEF
457         operands as being written to.
458         (group_aliases): Update comment.
459         (maybe_create_global_var): Ditto.
460         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
461         Also add a check for V_MUST_DEFs on GIMPLE registers.
462         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
463         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
464         to v_may_def. Also add code to mark all V_MUST_DEF operands
465         VARYING.
466         (initialize): Ditto.
467         (set_rhs): Rename occurences of vdef to v_may_def. Also add
468         code to update SSA_NAMEs in V_MUST_DEFs.
469         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
470         to v_may_def.
471         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
472         occurences of vdef to v_may_def. Also add code to mark statements
473         with V_MUST_DEFs as necessary.
474         (propagate_necessity): Rename occurences of vdef to v_may_def.
475         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
476         occurences of vdef to v_may_def. Also add code to mark operands
477         in V_MUST_DEFs for renaming.
478         (eliminate_redundant_computations): Rename occurences of vdef
479         to v_may_def.
480         (record_equivalences_from_stmt): Rename occurences of vdef
481         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
482         (optimize_stmt): Remove unnesessary variable vdefs. Update
483         comment.
484         (register_definitions_for_stmt): Rename occurences of vdef
485         to v_may_def. Also add code to register definitions made with
486         V_MUST_DEFs.
487         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
488         (fix_stmt_v_may_defs): This.
489         (fix_phi_uses): Rename occurences of vdef to v_may_def.
490         (dse_optimize_stmt): Ditto.
491         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
492         to v_may_def. Also add code to mark V_MUST_DEF operands as being
493         used in virtual operators.
494         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
495         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
496         renaming.
497         * tree-ssa-operands.c (opf_kill_def): New flag for killing
498         definitions.
499         (build_vdefs): Renamed to...
500         (build_v_may_defs): This.
501         (build_v_must_defs): New variable.
502         (voperands_d): Add v_must_def_ops and replace vdef_ops with
503         v_may_def_ops.
504         (append_vdef): Replace with...
505         (append_v_may_def): This.
506         (append_v_must_def): New function.
507         (NUM_FREE): Increment for V_MUST_DEF
508         (optype_freelist): Increment its size for V_MUST_DEF
509         (allocate_vdef_optype): Replace with...
510         (allocate_v_may_def_optype): This.
511         (allocate_v_must_def_optype): New function.
512         (free_vdefs): Replace with...
513         (free_v_may_defs): This.
514         (free_v_must_defs): New function.
515         (remove_vdefs): Replace with...
516         (remove_v_may_defs): This.
517         (remove_v_must_defs): New function.
518         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
519         add code to initialize build_v_must_defs.
520         (finalize_ssa_vdefs): Replace with...
521         (finalize_ssa_v_may_defs): This.
522         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
523         (finalize_ssa_v_must_defs): New function.
524         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
525         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
526         (verify_start_operands): Rename occurences of vdef to v_may_def.
527         Also add check for build_v_must_defs.
528         (get_stmt_operands): Rename occurences of vdef to v_may_def.
529         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
530         killing definitions.
531         (get_expr_operands): Update comment and use opf_kill_def for
532         killing definitions.
533         (add_stmt_operand): Replace code that appends VDEFs with code
534         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
535         otherwise.
536         (add_call_clobber_ops): Update comments.
537         * tree-ssa-operands.h (vdef_optype_d): Replace with...
538         (v_may_def_optype_d): This.
539         (v_must_def_optype_d): New structure.
540         (VDEF_OPS): Replace with...
541         (V_MAY_DEF_OPS): This.
542         (STMT_VDEF_OPS): Same with...
543         (STMT_V_MAY_DEF_OPS): This.
544         (NUM_VDEFS): And...
545         (NUM_V_MAY_DEFS): This.
546         (VDEF_RESULT_PTR): As well as...
547         (V_MAY_DEF_RESULT_PTR): This.
548         (VDEF_RESULT): Same goes for...
549         (V_MAY_DEF_RESULT): This.
550         (VDEF_OP_PTR): And...
551         (V_MAY_DEF_OP_PTR): This.
552         (VDEF_OP): And...
553         (V_MAY_DEF_OP): This.
554         (V_MUST_DEF_OPS): New macro.
555         (STMT_V_MUST_DEF_OPS): Ditto.
556         (NUM_V_MUST_DEFS): Ditto.
557         (V_MUST_DEF_OP_PTR): Ditto.
558         (V_MUST_DEF_OP): Ditto.
559         (remove_vdefs): Replace signature with...
560         (remove_v_may_defs): This.
561         (remove_v_must_defs): New function signature.
562         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
563         with calls to remove_v_may_defs and remove_v_must_defs.
564         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
565         Also add code that marks left occurences of operands in V_MUST_DEFs.
566         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
567         to v_may_def. Also add check for V_MUST_DEFs.
568         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
569
570 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
571
572         PR target/15653
573         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
574         insn.
575
576 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
577
578         PR web/15263
579         * doc/install.texi: Remove superfluous linebreak.
580
581 2004-06-10  Roger Sayle  <roger@eyesopen.com>
582
583         * builtins.c (expand_builtin): Fall back to library function call for
584         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
585         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
586         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
587         IMAGPART_EXPR respectively.
588
589 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
590
591         * sh.c (dump_table): New argument start.  Changed caller.
592         (fixup_mova): New function.
593         (find_barrier): Use it.
594         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
595         If the label a mova refers to is above the mova itself, change
596         the mova into a load.
597         * sh.md (*casesi_worker): Rename to:
598         (casesi_worker_1).
599         (casesi_worker_2): New insn.
600
601 2004-06-10  Jason Merrill  <jason@redhat.com>
602
603         * target.h (struct gcc_target): Change gimplify_va_arg_expr
604         hook signature.
605         * tree-gimple.h: Adjust.
606         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
607         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
608         Use fold_convert.
609         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
610         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
611         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
612         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
613         (gimplify_va_arg_expr): Return GS_ERROR in error case.
614         Gimplify valist rather than calling stabilize_va_list.
615
616 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
617
618         * Makefile.in (df.o): Remove fibheap dependency.
619         * df.h: Do not include sbitmap.h.
620         (struct ref): New field "data".
621         (DF_REF_DATA): New accessor macro.
622         (struct df): Field "dom" removed.
623         (df_analyze_subcfg): New function.
624         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
625         (transfer_function): ... new type.
626         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
627         (iterative_dataflow): ... new function.
628         (enum set_representation, struct dataflow): New.
629         * df.c: Do not include fibheap.h.
630
631         (df_reg_def_chain_clean, df_reg_use_chain_clean,
632         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
633         prune_to_subcfg, df_bb_modify): New functions.
634         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
635         df_refs_update, df_reg_table_realloc, df_ref_create,
636         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
637         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
638         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
639
640         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
641         (df_rd_transfer_function, df_ru_transfer_function,
642         df_lr_transfer_function): Type of bitmaps changed to void *.
643         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
644         (hybrid_search): ... new function.
645         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
646         (iterative_dataflow): ... new function. Avoid use of fibheaps for
647         a worklist.  Do not process basic blocks unnecessarily.
648
649 2004-06-10  Roger Sayle  <roger@eyesopen.com>
650
651         * fold-const.c (fold_abs_const): Make extern.
652         * tree.h (fold_abs_const): Prototype here.
653         * builtins.c (fold_builtin_fabs): New function to transform
654         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
655         (fold_builtin_abs): New function to transform abs, labs, llabs
656         and imaxabs builtins into ABS_EXPR tree nodes.
657         (expand_builtin): Fall back to a function call for abs, labs,
658         llabs and imaxabs builtins that survive constant folding.
659         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
660         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
661
662 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
663
664         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
665         leaf function without unwind info at RP 0.
666
667 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
668
669         PR c++/14791
670         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
671         (fileptr_type_node): Define.
672         * tree.c (build_common_tree_nodes_2): Initialize
673         fileptr_type_node to ptr_type_node.
674         * c-common.c (c_common_nodes_and_builtins): For C++, make
675         fileptr_type_node a distinct type copy.
676         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
677         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
678         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
679         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
680         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
681         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
682         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
683         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
684         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
685         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
686         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
687         the above *FILEPTR* types instead of *PTR*.
688
689 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
690
691         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
692         match.
693
694 2004-06-09  Roger Sayle  <roger@eyesopen.com>
695
696         * fold-const.c (fold_not_const): New function.
697         (fold) <ABS_EXPR>: Don't bother testing wins.
698         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
699         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
700
701 2004-06-09  Richard Henderson  <rth@redhat.com>
702
703         PR middle-end/15228
704         * function.c (assign_parms): Always set_mem_align with the computed
705         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
706
707 2004-06-09  Richard Henderson  <rth@redhat.com>
708
709         PR opt/15108
710         * tree-tailcall.c (find_tail_calls): Don't check early for
711         tail_recursion failure.
712
713 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
714
715         Move SSA_NAME annotations into tree_ssa_name.
716
717         * tree-dfa.c (create_ssa_name_ann): Remove.
718         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
719         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
720         (struct ssa_name_ann_d): Remove.
721         (union tree_ann_d): Update.
722         (ssa_name_ann_t): Remove.
723         * tree-ssa-alias.c: (get_ptr_info): New local function.
724         Replace references to ssa_name_ann_t with struct ptr_info_def.
725         * tree-ssa-operands.c (get_expr_operands): Likewise.
726         * tree.h (SSA_NAME_PTR_INFO): Define.
727         (struct ptr_info_def): Declare.
728         (struct tree_ssa_name): Add field 'ptr_info'.
729
730 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
731
732         * config/i386/winnt.c (i386_pe_output_labelref): Correct
733         misplaced ')'.
734
735 2004-06-09  Steven Bosscher  <stevenb@suse.de>
736
737         * config/i386/k6.md: Rewrite using the DFA model.
738         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
739         cost of load-operation insns for the K6.
740         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
741         (ia32_multipass_dfa_lookahead): Likewise.
742
743 2004-06-09  Richard Henderson  <rth@redhat.com>
744
745         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
746         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
747
748 2004-06-09  Richard Henderson  <rth@redhat.com>
749
750         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
751
752 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
753
754         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
755         (CPP_ID_DATA_H): New.
756         (gtype-desc.o): Update dependencies.
757         (GTFILES): Use CPP_ID_DATA_H.
758
759 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
760
761         Revert:
762         PR c++/15815
763         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
764         * doc/extend.texi: Deprecate #pragma interface and #pragma
765         implementation.
766
767 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
768
769         * config/sparc/sparc.h (MOVE_RATIO): New definition.
770
771 2004-06-09  Richard Henderson  <rth@redhat.com>
772
773         * basic-block.h (struct edge_def): Add goto_locus.
774         * tree-cfg.c (make_goto_expr_edges): Set it.
775         (disband_implicit_edges): Use it.
776         * tree-pretty-print.c (dump_implicit_edges): Print it.
777
778 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
779
780         * h8300.md (ldm_h8300s_4): Fix condition for expander.
781
782 2004-06-08  Jason Merrill  <jason@redhat.com>
783
784         Gimplify VA_ARG_EXPR into simpler forms.
785         * target.h: Add gimplify_va_arg_expr hook.
786         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
787         * fold-const.c (build_fold_addr_expr)
788         (build_fold_addr_expr_with_type): Move from gimplify.c.
789         * tree.h: Declare them.
790         * gimplify.c (gimplify_and_add): New fn.
791         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
792         (gimplify_array_ref_to_plus, gimplify_modify_expr)
793         (gimplify_expr): Use build_fold_*.
794         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
795         don't know how to gimplify it.
796         * builtins.c (std_gimplify_va_arg_expr): New fn.
797         (dummy_object): New static fn.
798         (gimplify_va_arg_expr): New fn.
799         (stabilize_va_list): Use build_fold_*.
800         * tree-gimple.h: Declare new fns.
801         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
802         (ix86_gimplify_va_arg): New fn.
803         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
804         (ia64_gimplify_va_arg): New fn.
805         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
806         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
807         * alias.c (get_varargs_alias_set): Just return 0 for now.
808
809         * c-objc-common.c (c_tree_printer): Improve handling of %T.
810
811 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
812
813         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
814         of convert.
815         * tree-inline.c (setup_one_parameter): Likewise.
816         * tree-sra.c (csc_build_component_ref): Likewise.
817         * tree-ssa-ccp.c (ccp_fold): Likewise.
818         * tree-ssa-copy.c (cprop_operand): Likewise.
819         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
820         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
821
822 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
823
824         PR rtl-optimization/15521:
825         * sched-int.h (in_post_call_group_p): Change type to enum.
826         * sched-deps.c (sched_analyze_insn):
827         (sched_analyze): When in_post_call_group_p is post_call_initial,
828         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
829         and also reset in_post_call_group_p to post_call.
830         (sched_analyze): When the previous basic block ended in a CALL_INSN,
831         initialize in_post_call_group_p as post_call_initial.
832         (init_deps): initialize in_post_call_group_p to not_post_call.
833
834 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
835
836         PR ada/6637
837         * doc/install.texi: List ada, libada as options to --enable-shared
838
839 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
840
841         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
842         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
843         config.in entries.
844         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
845         if hard links are not available.
846         * configure: Regenerate.
847         * config.in: Regenerate.
848
849 2004-06-08  Per Bothner  <per@bothner.com>
850
851         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
852
853 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
854
855         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
856         Correct formatting.
857
858 2004-06-08  James E Wilson  <wilson@specifixinc.com>
859
860         PR target/15790
861         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
862
863 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
864
865         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
866         POINTER_TYPE and INTEGER_TYPE.
867
868 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
869
870         * modulo-sched.c: Compile only when INSN_SCHEDULING is
871         defined.
872
873 2004-06-08  Jeff Law  <law@redhat.com>
874
875         * doc/contrib.texi: Add entries for Stefan Olsson and
876         Ola Ronnerup.
877
878 2004-06-08  DJ Delorie  <dj@redhat.com>
879
880         * toplev.c (floor_log2_wide): Replace loop with faster bit
881         operations.
882         (exact_log2_wide): Define in terms of the above.
883         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
884         available.
885
886 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
887
888         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
889         Make sure that we are in INDIRECT mode when getting the
890         stub name.
891
892 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
893
894         * h8300.md (extendqisi2_h8300): Add constraints.
895         (ldm_h8300s_4_normal): Fix typo.
896
897 2004-06-08  Richard Henderson  <rth@redhat.com>
898
899         * gimple-low.c (struct lower_data): Replace the_return_label and
900         one_return_stmt with return_statements.
901         (lower_function_body): Process the entire list of return_statements.
902         (lower_return_expr): Check source value before unifying return_exprs.
903         * gimplify.c (gimplify_return_expr): Force the use of a temporary
904         for !aggregate_value_p.
905         * tree-gimple.c: Update RETURN_EXPR grammer.
906
907 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
908
909         PR target/15598
910         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
911
912 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
913
914         PR rtl-optimization/15717
915         * config/i386/i386.c (legitimate_constant_p): Do not allow
916         x - symbol_ref.
917
918 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
919
920         * gimplify.c (copy_if_shared_r): Revert:
921         2004-05-21  Richard Henderson  <rth@redhat.com>
922         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
923
924 2004-06-07  Roger Sayle  <roger@eyesopen.com>
925
926         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
927         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
928         (init_expmed): Initialize these cost arrays as appropriate.
929         (store_bit_field, extract_bit_field): Correct whitespace.
930         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
931         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
932         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
933         word_mode or compute_mode as appropriate.
934
935 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
936
937         PR target/15783
938         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
939         parameter.  Enumerate the registers inside the PARALLEL.
940         (function_arg): Adjust call to function_arg_union_value.
941         (function_value): Likewise.
942
943         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
944
945 2004-06-07  Roger Sayle  <roger@eyesopen.com>
946
947         * real.c (real_copysign): New function to implement libm's copysign.
948         * real.h (real_copysign): Prototype here.
949         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
950         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
951         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
952         fold_builtin_isdigit): Add function prototypes.
953         (fold_builtin_copysign): New function to fold copysign, copysignf
954         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
955         constant arguments at compile-time using real_copysign.  Fold
956         copysign(X,Y) as fabs(X) if Y is always non-negative.
957         (fold_builtin_1): Correct minor whitespace/style issues.  Call
958         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
959
960 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
961
962         * tree.c (iterative_hash_expr): Use real_hash.
963
964 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
965
966         PR c/14765
967         * c-parse.in (compstmt_primary_start): Set last_expr_type to
968         NULL_TREE.
969
970 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
971
972         PR c++/15815
973         * doc/extend.texi: Deprecate #pragma interface and #pragma
974         implementation.
975
976 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
977
978         PR middle-end/15666
979         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
980         builtin decl as well.
981
982 2004-06-07  Roger Sayle  <roger@eyesopen.com>
983
984         PR c/14649
985         * c-typeck.c (require_constant_value, require_constant_elements):
986         Move declarations to the top of the file.
987         (build_function_call): If we require a constant value, fold with
988         fold_initializer.  If the result is a constant, and the function
989         wasn't called using __builtin_foo, issue a pedantic warning.
990         (build_unary_op): If we require a constant value, fold tree with
991         fold_initializer.
992         (build_binary_op): Use require_constant_value to determine whether
993         to call fold or fold_initializer.
994
995 2004-06-07  Richard Henderson  <rth@redhat.com>
996
997         * gimple-low.c (struct lower_data): Add the_return_label and
998         one_return_stmt.
999         (lower_function_body): Initialize and use them.
1000         (lower_return_expr): New.
1001         (lower_stmt): Call it.
1002         * gimplify.c (gimplify_return_expr): Force the argument to be either
1003         null or a result_decl.
1004         * tree-gimple.c: Update gimple grammer to match.
1005         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1006         coalescing of result_decls.
1007
1008 2004-06-07  Richard Henderson  <rth@redhat.com>
1009
1010         PR rtl-opt/15193
1011         * expmed.c (extract_bit_field): Fix vector_extract return.
1012
1013         * config/i386/i386.md (negv4sf2): New pattern.
1014
1015 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1016
1017         PR c++/15337
1018         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1019         message.
1020
1021 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1022
1023         * config.in: Regenerate.
1024
1025 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1026
1027         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1028         SWITCH_LABELS are always sorted.
1029
1030 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1031
1032         * hooks.c (hook_int_void_1): New generic hook.
1033         * hooks.h (hook_int_void_1): Add prototype.
1034         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1035         Define to hook_int_void_1.
1036         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1037         with dummies for the new one.
1038
1039 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1040
1041         * tree.h (lvalue_or_else): Delete function prototype.
1042         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1043
1044 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1045
1046         PR target/14542
1047         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1048         a live change of a register after peephole replacement.
1049
1050 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1051
1052         PR c/13519
1053         * c-typeck.c (composite_type, common_pointer_type): New functions.
1054         (common_type): Split parts into composite_type and
1055         common_pointer_type.  Ensure that arithmetic operations return
1056         unqualified types without attributes.  Don't make composite type
1057         of signed enum and compatible integer be unsigned.
1058         (build_conditional_expr, build_binary_op): Use
1059         common_pointer_type.
1060         * c-decl.c (merge_decls): Use composite_type.
1061         * c-tree.h (composite_type): Declare.
1062
1063 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1064
1065         PR target/14457
1066         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1067         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1068         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1069         (inhibit_libc): Must define.
1070         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1071         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1072         ("xorhi3"): Likewise.
1073
1074 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1075
1076         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1077         always_inline pass.
1078
1079 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1080
1081         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1082         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1083
1084 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1085
1086         * regclass.c (init_reg_sets): Check for missing registers in target
1087         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1088
1089 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1090
1091         * Makefile.in (MKDEPS_H): New shorthand.
1092         (c-opts.o): Update dependencies.
1093         * c-opts.c: Include mkdeps.h.
1094         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1095         not cpp_add_dependency_target.
1096
1097 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1098
1099         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1100         * config/v850/v850.md: Convert to DFA scheduler description.
1101
1102 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1103
1104         PR fortran/15478
1105         * doc/install.texi: Document GMP as prerequisite. Document
1106         --with-gmp and --with-gmp-dir configure options.
1107         * fortran/gfortran.texi: Remove section "Compiling and testing",
1108         remove TOC reference to it.
1109
1110 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1111
1112         * combine.c(simplify_shift_const): Check shift amount is a
1113         CONST_INT.
1114
1115 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1116
1117         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1118         opening asm_out_file.
1119         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1120         reading asm_out_file. Replace fflush after reading asm_out_file
1121         with fseek.
1122         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1123         default and add to HOST_HOOKS_INITIALIZER.
1124         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1125         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1126         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1127         to set mmi.offset padding.
1128          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1129         $(srcdir)/config/i386/winnt.c.
1130         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1131         (i[34567]86-*-uwin*): Likewise.
1132         *i[34567]86-*-interix3*): Likewise.
1133         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1134         * config/i386/host-mingw32.c: New file.
1135         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1136         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1137         (extern_head): Likewise.
1138         (struct export_list) Likewise.
1139         (export_head): Likewise.
1140         (i386_pe_record_external_function): Use ggc_alloc.
1141         (i386_pe_record_exported_symbol): Likewise.
1142         Include "gt-winnt.h" at end.
1143         * doc/hostconfig.texi: Document
1144         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1145
1146 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1147
1148         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1149         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1150         trailing whitespace before EOLs and before TABs.
1151         (MAX_CODE_ALIGN): Remove unused macro.
1152         (CALL_USED_REGISTERS): Reformat and add comments.
1153
1154 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1155
1156         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1157         to enumerate -lmudflap* and dependencies when linking.
1158
1159 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1160
1161         PR target/15822
1162         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1163
1164 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1165
1166         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1167         * genconditions.c (write_header): Back out removal of reload.h.
1168
1169 2004-06-04  Jan Hubicka  <jh@suse.cz>
1170
1171         Re-apply hopefully fixed patch:
1172         * i386.md (UNSPECV_EH_RETURN): Kill.
1173         (eh_return): Use jump_insn.
1174         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1175
1176 2004-06-04  Jeff Law  <law@redhat.com>
1177
1178         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1179
1180 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1181
1182         * except.c (for_each_eh_region): New function.
1183         * except.h (for_each_eh_region): Add a prototype for it.
1184         * tree-cfg.c (update_eh_labels): New function, callback for
1185         for_each_eh_region.
1186         (label_for_bb): Make global static, unfortunately.
1187         (cleanup_dead_labels): Also update label references for
1188         exception regions.
1189
1190 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1191
1192         * config/mips/mips.c (struct irix_section_align_entry): Fix
1193         GTY marker.
1194
1195 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1196
1197         * toplev.c (check_global_declarations): Don't ask for
1198         DECL_ASSEMBLER_NAME unless the function really is declared
1199         static and not defined.
1200
1201 2004-06-03  Matt Austern  <austern@apple.com>
1202
1203         PR c++/15428
1204         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1205         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1206         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1207         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1208         documentation to reflect the new macro name and to clarify its
1209         meaning.
1210
1211 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1212
1213         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1214
1215 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1216
1217         * config/darwin.c (machopic_indirect_data_reference): Copy
1218         the SYMBOL_REF_DECL from the original RTX for the new
1219         non-lazy pointer RTX.
1220
1221 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1222
1223         * tree.h: Remove include of version.h
1224         * c-cppbuiltin.c: Include version.h
1225         * diagnostic.c: Include version.h
1226         * dwarf2out.c: Include version.h
1227         * toplev.c: Include version.h
1228         * vmsdbgout.c: Include version.h
1229         * Makefile.in: Remove dependency on version.h from TREE_H, and
1230         add dependencies to required .o targets
1231
1232 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1233
1234         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1235         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1236         (TARGET_H): Add insn-modes.h.
1237         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1238         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1239         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1240         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1241         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1242         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1243         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1244         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1245         CFGLAYOUT_H.
1246         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1247         Replace ra.h with RA_H.
1248         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1249         insn-recog.o): Replace resource.h with RESOURCE_H.
1250         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1251         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1252         with SCHED_INT_H.
1253         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1254         ra-rewrite.o): Replace df.h with DF_H.
1255         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1256         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1257         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1258         (insn-conditions.o): Remove unused reload.h.
1259         * cfglayout.h: Add include guard.  Include basic-block.h.
1260         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
1261         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1262         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
1263         basic-block.h.
1264         * genconditions.c:  Remove reload.h.
1265         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
1266         hard-reg-set.h, insn-modes.h.
1267         * resource.h: Add include guard.  Include hard-reg-set.h.
1268         * sched-int.h:  Add include guard.  Include insn-attr.h,
1269         basic-block.h, rtl.h.
1270         * target.h: Add include guard.  Include insn-modes.h.
1271         * tree-ssa-live.h: Include partition.h.
1272
1273 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
1274                 Kenneth Zadeck <zadeck@naturalbridge.com>
1275
1276         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1277         (add_var_to_ssa_edges_worklist): Add value argument.
1278         Update callers.
1279         Use new worklist.
1280         (process_ssa_edge_worklist): New function.
1281         (tree_ssa_ccp): Move worklist processing core to
1282         process_ssa_edge_worklist, and just call that for the two worklists.
1283
1284 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1285
1286         * basic-block.c (tail_recursion_label_list): Don't declare.
1287         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
1288         accordingly.
1289         * cfgbuild.c (find_label_refs): Remove.
1290         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1291         * cfgcleanup.c (tail_recursion_label_p): Remove.
1292         (merge_blocks_move): Do not check for tail recursion.
1293         (try_optimize_cfg): Likewise.
1294         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1295         * cfgrtl.c (tail_recursion_label_list): Remove.
1296         * except.c (remove_unreachable_regions): Don't handle
1297         CALL_PLACEHOLDER insns.
1298         (convert_from_eh_region_ranges_1, can_throw_internal,
1299         can_throw_external): Likewise.
1300         * function.c (free_after_compilation): Don't clear
1301         x_tail_recursion_label.
1302         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1303         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1304         (reorder_blocks_1): Likewise.
1305         * function.h (struct function): Remove x_tail_recursion_label
1306         member.  Don't define tail_recursion_label.
1307         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1308         * print-rtl.c (print_rtx): Likewise.
1309         * rtl.def (CALL_PLACEHOLDER): Remove.
1310         * rtl.h (sibcall_use_t): Remove enum.
1311         (optimize_sibling_and_tail_recursive_calls,
1312         replace_call_placeholder): Remove function prototypes.
1313         * stmt.c (tail_recursion_args): Remove.
1314         (optimize_tail_recursion): Remove.
1315         (expand_return): Don't check for possible tail recursion.
1316         * tree.h (optimize_tail_recursion): Remove prototype.
1317
1318 2004-06-02  Jan Hubicka  <jh@suse.cz>
1319
1320         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
1321         return_stmt.
1322
1323 2004-06-02  Jason Merrill  <jason@redhat.com>
1324
1325         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1326         Do include c-parse.in.
1327
1328 2004-06-02  Eric Christopher  <echristo@redhat.com>
1329
1330         * c-typeck.c (common_type): Don't lose type qualifiers
1331         when creating new variants.
1332
1333 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1334
1335         PR tree-optimization/14042
1336         PR tree-optimization/14729
1337         PR tree-optimization/14736
1338         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1339         Check the type which the pointer points to
1340         instead of the pointer types.
1341
1342 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1343
1344         PR tree-optimization/15738.
1345         * builtins.c (fold_builtin_strchr): Transform
1346         strrchr (s, '\0') to strchr (s, '\0').
1347
1348 2004-06-02  Steven Bosscher  <stevenb@suse.de>
1349
1350         * i386.c (ix86_adjust_cost): Don't increase the cost for
1351         load+operation for PROCESSOR_PENTIUMPRO, it is already
1352         modelled in the DFA description
1353
1354 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
1355
1356         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1357         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1358         (ALIAS_H, EMIT_RTL_H): New.
1359         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1360         (cfgcleanup.o): Add EMIT_RTL_H.
1361         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1362         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1363         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1364         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1365         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
1366         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1367         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1368         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1369         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1370         set_mem_size): Move to emit-rtl.h.
1371         * emit-rtl.h: New.
1372         * alias.h: New.
1373
1374 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
1375
1376         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1377         Call fixup_memory_subreg only if the MEM is equal to 'var'.
1378         Adjust recursive calls to self.
1379         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1380
1381 2004-06-01  Richard Henderson  <rth@redhat.com>
1382             Andrew Pinski  <pinskia@physics.uc.edu>
1383
1384         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1385         (primary): Handle offsetof.  Add error productions for faux functions.
1386         Move component_ref objc checking to build_component_ref.
1387         (reswords): Add offsetof.
1388         (rid_to_yy): Add offsetof.
1389         * c-tree.h (build_offsetof): Declare.
1390         * c-common.h (objc_is_public): Declare.
1391         * c-typeck.c (build_component_ref): Check objc_is_public.
1392         (build_offsetof): New.
1393         * stub-objc.c (objc_is_public): New.
1394         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1395         from is_public.
1396         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1397         * doc/extend.texi (Offsetof): Move from C++ section to C section
1398         and rewrite for __builtin_offsetof.
1399
1400 2004-06-01  Peter Barada  <peter@the-baradas.com>
1401             Peter Jakubek  <peter@laseranimation.com>
1402
1403         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
1404         a scratch to perform an add to memory.
1405
1406 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1407
1408         PR target/14018
1409         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1410         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1411         m68k_align_funcs): Remove.
1412         (override_options): Remove code to handle -malign-* options.
1413         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1414         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1415         (m68k_align_loops_string, m68k_align_jumps_string,
1416         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1417         m68k_align_funcs): Remove definitions.
1418
1419 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
1420
1421         PR target/15626
1422         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1423         by the Sun linker in conjunction with the Sun assembler.
1424         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1425
1426 2004-06-01  Jeff Law  <law@redhat.com>
1427
1428         * stmt.c (expand_decl): Be more selective about calling
1429         mark_reg_pointer.
1430
1431 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
1432
1433         PR objc/7993
1434         * objc-act.c (is_private): Do not emit the 'instance variable %s
1435         is declared private' error.
1436         (is_public): Emit the error after calling is_private.
1437         (lookup_objc_ivar): If the instance variable is private, return 0
1438         - the instance variable is invisible here.
1439
1440 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1441
1442         * doc/invoke.texi (-static-libgcc): Explicitly mention
1443         non-GNU linkers.
1444
1445 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1446
1447         PR target/12968
1448         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1449
1450 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1451
1452         PR c/15749
1453         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1454         misuses of structures with flexible array members if
1455         in_system_header.
1456
1457 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1458
1459         PR target/15693
1460         * config/sparc/sparc.c (compare_operand): New predicate.
1461         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1462         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
1463         operand is a ZERO_EXTRACT and the second operand is not zero,
1464         force the former to a register.
1465         (cmpdi expander): Likewise.
1466
1467 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
1468
1469         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1470         looks at.
1471         * alias.c (alias_invariant_size): Make alias_invariant_size
1472         static, fix GTY marker.
1473
1474 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1475
1476         PR tree-optimization/15743.
1477         * builtins.c (fold_builtin_1): Fold index() and rindex().
1478
1479 2004-05-31  Roger Sayle  <roger@eyesopen.com>
1480
1481         PR middle-end/15069
1482         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1483         into "X < 0" (where C is the signbit) if X's type is a full mode.
1484
1485 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1486
1487         * pa.md: Disable the peephole2 patterns that generate indexed
1488         floating-point stores when indexing is disabled.
1489
1490 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1491
1492         * c-pretty-print.c (pp_c_left_bracket): Make a function.
1493         (pp_c_right_bracket): Likewise.
1494         (pp_c_star): Likewise.
1495         (pp_c_ampersand): Define.
1496         * c-pretty-print.h (pp_c_left_bracket): Declare.
1497         (pp_c_right_bracket): Likewise.
1498         (pp_c_star): Likewise.
1499         (pp_c_ampersand): Likewise.
1500
1501 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1502
1503         * config/sol2.h (__enable_execute_stack): ANSIfy function
1504         definition.
1505
1506 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
1507
1508         * c-incpath.c (add_path): Canonicalize paths to use '/' if
1509         HAVE_DOS_BASED_FILESYSTEM.
1510
1511 2004-05-31  Steven Bosscher  <stevenb@suse.de>
1512
1513         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1514         Only look at case labels if the immediate dominator is also
1515         the only predecessor.  Don't look for more case labels if the
1516         first seen is a case range.
1517
1518 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1519
1520         * builtins.c: Add a prototype for fold_builtin_strchr().
1521
1522 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
1523
1524         Revert this patch:
1525         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1526
1527         * combine.c (gen_binary): Remove.
1528         (known_cond, simplify_shift_const
1529         find_split_point, combine_simplify_rtx,
1530         simplify_if_then_else, simplify_set,
1531         simplify_logical, expand_field_assignment,
1532         extract_left_shift, force_to_mode,
1533         if_then_else_cond, apply_distributive_law,
1534         simplify_and_const_int, simplify_shift_const,
1535         gen_lowpart_for_combine, simplify_comparison,
1536         reversed_comparison): Replace with
1537         simplify_gen_binary, simplify_gen_relational or
1538         distribute_and_simplify_rtx.
1539         (distribute_and_simplify_rtx): New function.
1540
1541 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1542
1543         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
1544         when generating PIC code.
1545
1546 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1547
1548         * c-decl.c (c_expand_body_1): Remove and fold back into ...
1549         (c_expand_body): here.
1550         (c_expand_decl): Move to ...
1551         * c-common.c (c_expand_decl): Here and remove check for nested
1552         functions.
1553         * c-common.h (c_expand_decl): Add prototype.
1554         * c-tree.h (c_expand_decl): Remove.
1555
1556 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1557
1558         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
1559         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
1560         fold_mathfn_compare, fold_inf_compare, fold,
1561         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
1562         Use constant_boolean_node where appropriate.  Don't bother using
1563         fold_convert on the second argument to omit_one_operand.
1564
1565 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1566
1567         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
1568         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
1569         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
1570         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
1571         Add missing (but documented) tree nodes to the index.
1572
1573 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1574
1575         PR tree-optimization/14819
1576         * builtins.c (fold_builtin_strchr): New.
1577         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
1578         with fold_builtin_strchr().
1579
1580 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1581
1582         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
1583         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
1584         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
1585         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
1586         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
1587         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
1588         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
1589         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
1590         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
1591         formatting.
1592
1593 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1594
1595         * gimplify.c (sort_case_labels): New.  Split out from...
1596         (gimplify_switch_expr): ...here.  Use it.
1597         * tree-eh.c (lower_try_finally_switch): Sort the labels of
1598         the SWITCH_EXPR created here before leaving the function.
1599         * tree.c (sort_case_labels): Add prototype.
1600
1601 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1602
1603         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
1604         of BOOLEAN_TYPE.
1605
1606 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1607
1608         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
1609         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
1610         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
1611         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
1612         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
1613         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
1614         comment typos.  Follow spelling conventions.
1615
1616 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
1617
1618         * gengtype-yacc.y: Add NESTED_PTR token.
1619         (option): Record `nested_ptr' option.
1620         * gengtype-lex.l: Handle `nested_ptr' keyword.
1621         * gengtype.c (walk_type): Process `nested_ptr' option.
1622         * gengtype.h (struct nested_ptr_data): New.
1623         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
1624         * stringpool.c (struct string_pool_data): Make 'entries' point to
1625         ht_identifier instead of tree.
1626         (gt_pch_save_stringpool): Don't adjust pointers.
1627         (gt_pch_restore_stringpool): Call ht_load.
1628
1629 2004-05-29  Jason Merrill  <jason@redhat.com>
1630
1631         * gimplify.c (gimplify_expr): Don't build a statement list
1632         if no gimplification was necessary.
1633
1634 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1635
1636         * pretty-print.c (pp_base_format_text): Support %< instead of %`
1637         and %> as well as %'.
1638         * c-format.c: Use %< and %>.
1639         (gcc_diag_char_table, gcc_cdiag_char_table,
1640         gcc_cxxdiag_char_table): Update.
1641
1642 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1643
1644         * c-typeck.c (common_type): Correct comment.
1645
1646 2004-05-29  Peter Barada  <peter@the-baradas.com>
1647
1648         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
1649         * config/m68k/m68k.c (const_method): Likewise.
1650         * config/m68k/m68k.c (const_int_cost): Likewise.
1651         * config/m68k/m68k.c (const_int_cost): Likewise.
1652         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
1653
1654 2004-05-29  Peter Barada  <peter@the-baradas.com>
1655
1656         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
1657         addressing.
1658         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
1659         movsi,movhi,movqi insn patterns.
1660
1661 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1662
1663         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
1664
1665         PR target/15720
1666         * config/darwin.c (machopic_indirect_call_target): Copy
1667         the SYMBOL_REF_DECL from the original RTX for the new
1668         stub RTX.
1669
1670 2004-05-28  DJ Delorie  <dj@redhat.com>
1671
1672         * stor-layout.c (place_field): Revert erroneous commit.
1673
1674 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
1675
1676         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
1677         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
1678         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
1679         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
1680         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
1681         vec_ste): Remove type checks for integral parameters and literals
1682         from '..._args_eq' macros.
1683
1684 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1685
1686         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
1687
1688 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1689
1690         * testsuite/g++.dg/charset/function.cc: New.
1691
1692         * testsuite/gcc.dg/charset/function.c: New.
1693
1694         * c-decl.c (c_make_fname_decl): Free return value from
1695         fname_as_string.
1696
1697         * cp/decl.c (cp_make_fname_decl): Free return value from
1698         fname_as_string.
1699
1700         * c-common.c (fname_as_string): Translate if necessary.
1701
1702 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
1703
1704         * stringpool.c: Add comments to PCH saving/restoring routines.
1705
1706 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1707
1708         * c-common.c (c_estimate_num_insns_1): Kill.
1709         (c_estimate_num_insns): Kill.
1710         * c-common.h (c_estimate_num_insns): Kill.
1711
1712         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
1713         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
1714         Remove comment about not checking for
1715         _POSIX_PRIORITY_SCHEDULING.
1716         * gthr-posix.c: Likewise.
1717
1718 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
1719             Roger Sayle  <roger@eyesopen.com>
1720
1721         PR rtl-optimization/15649
1722         Add LTGT_EXPR and improve pretty-printing of unordered
1723         comparisons.
1724         * c-common.c (c_common_truthvalue_conversion):
1725         Handle LTGT_EXPR.
1726         * c-typeck.c (build_binary_op): Likewise.
1727         * dojump.c (do_jump): Likewise.
1728         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
1729         * predict.c (tree_predict_by_opcode): Likewise.
1730         * real.c (real_compare): Likewise.
1731         * tree-cfg.c (verify_expr): Likewise.
1732         * tree-inline.c (estimate_num_insns_1): Likewise.
1733         * tree-pretty-print.c (dump_generic_node): Likewise.
1734         Handle ORDERED_EXPR, UNORDERED_EXPR.
1735         (op_symbol): Print unordered comparisons differently
1736         than ordered ones.
1737         * tree.def (LTGT_EXPR): New '<' tree code.
1738         * doc/c-tree.texi (Expressions): Document floating-point
1739         comparison nodes.
1740
1741         Fold comparisons between floating point values.
1742         * fold-const.c (enum comparison_code): New, from
1743         #define'd constants.  Define compcodes for unordered
1744         comparisons and for invalid transformations.
1745         (invert_tree_comparison): Add "honor_nans" parameter.
1746         (fold_truthop): Revamp to work on floating-point types too.
1747         (comparison_to_compcode): Support unordered comparisons.
1748         Use new enum comparison_code.
1749         (compcode_to_comparison): Likewise.
1750         (combine_compcodes): New function.
1751         (invert_truthvalue): Let invert_tree_comparison decide
1752         whether it is valid to fold the comparison.  Fold ORDERED
1753         and UNORDERED even if flag_unsafe_math_optimizations is off,
1754         and the remaining even if flag_unsafe_math_optimizations
1755         is off but we are under -fno-trapping-math.
1756         (fold_relational_const): Integer modes do not honor NaNs.
1757
1758 2004-05-28  Paul Brook  <paul@codesourcery.com>
1759
1760         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
1761
1762 2004-05-28  Paul Brook  <paul@codesourcery.com>
1763
1764         * config/arm/arm.c (thumb_force_lr_save): New function.
1765         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
1766         thumb_output_function_prologue): Use it.
1767         (thumb_expand_prologue): Set lr_save_eliminated.
1768
1769 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
1770
1771         * config/mips/mips.md (extendsidi2): Tie the source and destination
1772         of the register alternative.  Split it into nothing.
1773
1774 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
1775
1776         * rtl.h (skip_consecutive_labels): Declare.
1777         * emit-rtl.c (skip_consecutive_labels): New function.
1778         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
1779         * jump.c (follow_jumps): Say what null return values mean.
1780
1781 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1782
1783         PR target/13250
1784         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
1785
1786 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1787
1788         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
1789         libgcc-std.ver.
1790         * config/sh/libgcc-std.ver: New file.
1791
1792 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
1793
1794         * except.c: Revert change of 2004-05-26.
1795         * config/i386/i386.md: Revert change of 2004-05-27.
1796
1797 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
1798
1799         * configure.ac: Remove --enable-tree-browser option.
1800         Define TREEBROWSER when ac_tree_checking is defined.
1801         * configure: Rebuilt.
1802
1803 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
1804
1805         * expr.c (store_constructor): Restore sanity check on
1806         the size of the type before clearing.
1807
1808 2004-05-27  Jan Hubicka  <jh@suse.cz>
1809
1810         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
1811
1812 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1813
1814         * combine.c (gen_binary): Remove.
1815         (known_cond, simplify_shift_const
1816         find_split_point, combine_simplify_rtx,
1817         simplify_if_then_else, simplify_set,
1818         simplify_logical, expand_field_assignment,
1819         extract_left_shift, force_to_mode,
1820         if_then_else_cond, apply_distributive_law,
1821         simplify_and_const_int, simplify_shift_const,
1822         gen_lowpart_for_combine, simplify_comparison,
1823         reversed_comparison): Replace with
1824         simplify_gen_binary, simplify_gen_relational or
1825         distribute_and_simplify_rtx.
1826         (distribute_and_simplify_rtx): New function.
1827         * simplify-rtx.c (simplify_binary_operation):
1828         Use nonzero_bits to simplify ANDs where we are
1829         turning off bits already known to be off in OP0.
1830
1831 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
1832
1833         PR target/14478
1834         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
1835
1836 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
1837
1838         PR middle-end/14084
1839         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
1840         to size of decl.
1841
1842 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
1843
1844         PR/14924
1845         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
1846
1847 2004-05-26  Roger Sayle  <roger@eyesopen.com>
1848
1849         * tree.h: Fix comment typo.
1850
1851 2004-05-27  Steven Bosscher  <stevenb@suse.de>
1852
1853         * gimplify.c (compare_case_labels): New function.
1854         (gimplify_switch_expr): Sort case labels, and make sure the
1855         last label in the label vector is the default case.
1856         * tree-cfg.c (group_case_labels): New function.
1857         (build_tree_cfg): Cleanup redundant labels and group case labels
1858         before creating edges.
1859         (cleanup_dead_labels): Handle GOTO_EXPRs.
1860         (find_case_label_for_value): Use a binary search to find the
1861         case label for the given value.
1862         * tree-gimple.c: Mention that labels are sorted, and that the
1863         last label must be the default.
1864
1865 2004-05-27  Jan Hubicka  <jh@suse.cz>
1866
1867         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
1868
1869 2004-05-27  Jan Hubicka  <jh@suse.cz>
1870
1871         * i386.md (UNSPECV_EH_RETURN): Kill.
1872         (eh_return): Use jump_insn.
1873         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1874
1875 2004-05-26  Jan Hubicka  <jh@suse.cz>
1876
1877         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
1878         not loop optimizing.
1879
1880 2004-05-26  Jan Hubicka  <jh@suse.cz>
1881
1882         * except.c (can_throw_internal):  Notice RESX instructions.
1883
1884 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
1885
1886         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
1887         of the two sizes to assemble_integer.
1888
1889 2004-05-25  Paul Brook  <paul@codesourcery.com>
1890
1891         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
1892         pointless #ifdef.
1893
1894 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
1895
1896         * Makefile.in (top_builddir): Define to .
1897
1898 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
1899
1900         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
1901         top-level detects, except when in-tree ld is being cross-built.
1902         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
1903         then AS only if target is host.
1904         * configure: Rebuilt.
1905
1906 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
1907
1908         * global.c (global_alloc): Call make_accurate_live_analysis.
1909         (record_one_conflict): Remove dead code.
1910         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
1911         (bb_info): New structure.
1912         (BB_INFO, BB_INFO_BY_INDEX): New macros.
1913         (allocate_bb_info, free_bb_info, mark_reg_change,
1914         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
1915         modify_bb_reg_pav, calculate_reg_pav,
1916         make_accurate_live_analysis): New functions.
1917
1918 2004-05-25  Devang Patel  <dpatel@apple.com>
1919
1920         * alias.c (init_alias_analysis): Use ggc_calloc instead of
1921         xrealloc.
1922         (end_alias_analysis): Use ggc_free instead fo free.
1923
1924 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
1925
1926         PR target/15546
1927         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
1928         as needed to be outputted.
1929
1930 2004-05-25  Jan Hubicka  <jh@suse.cz>
1931
1932         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
1933
1934 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
1935         Mostafa Hagog  <mustafa@il.ibm.com>
1936
1937         * Makefile.in (modulo-sched.o, ddg.o): New.
1938         * ddg.h, ddg.c, modulo-sched.c: New files.
1939         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
1940         internals to "dupicate_insn".
1941         (duplicate_insn): New function.
1942         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
1943         declarations.
1944         * common.opt (fmodulo-sched): New flag.
1945         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
1946         Remove static and forward declaration.
1947         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
1948         functions.
1949         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
1950         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
1951         declarations.
1952         * flags.h (flag_modulo_sched): New flag.
1953         * opts.c (common_handle_option): Handle modulo-sched flag.
1954         * params.def (max-sms-loop-number, sms-max-ii-factor,
1955         sms-dfa-history, sms-loop-average-count-threshold): New
1956         parameters.
1957         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
1958         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
1959         parameters.
1960         * passes.c ("sms", "sms-vcg"): New dumps.
1961         (rest_of_handle_sched): Call sms_schedule.
1962         * rtl.h (sms_schedule): New declaration.
1963         * timevar.def (TV_SMS): New.
1964         * toplev.c (flag_modulo_sched): Initialize.
1965         (f_options): Handle -fmodulo-sched option.
1966         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
1967         * docs/passes.texi: Document new SMS pass.
1968
1969 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
1970
1971         * Makefile.in (OBJS): Add rtlhooks.o.
1972         (rtlanal.o): Depend on function.h.
1973         (cse.o): Depend on rtlhooks-def.h.
1974         (combine.o): Depend on rtlhooks-def.h.
1975         (rtlhooks.o): New rule.
1976         * combine.c: Include rtlhooks-def.h.
1977         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
1978         num_sign_bit_copies, cached_num_sign_bit_copies,
1979         num_sign_bit_copies1): Move most of the code to rtlanal.c.
1980         (reg_nonzero_bits_for_combine,
1981         reg_num_sign_bit_copies_for_combine): New functions holding
1982         the remnants of the above.
1983         (combine_rtl_hooks): New.
1984         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
1985         * cse.c: Include rtlhooks-def.h.
1986         (cse_rtl_hooks): New.
1987         (cse_main): Set rtl_hooks instead of gen_lowpart.
1988         * emit-rtl.c (gen_lowpart): Remove.
1989         (gen_lowpart_general): Move to rtlhooks.c.
1990         * rtl.h (nonzero_bits, num_sign_bit_copies,
1991         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
1992         (gen_lowpart_general): Remove.
1993         (gen_lowpart): Temporarily redefine as a macro.
1994         * rtlanal.c: Include function.h.
1995         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
1996         num_sign_bit_copies, cached_num_sign_bit_copies,
1997         num_sign_bit_copies1): New, from combine.c.
1998         * rtlhooks.c: New file.
1999         * rtlhooks-def.h: New file.
2000
2001 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2002
2003         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2004         to support 32-bit -mint8 mode.
2005
2006         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2007         option in the AVR architecture.
2008
2009 2004-05-24  Mike Stump  <mrs@apple.com>
2010
2011         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2012
2013 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2014
2015         * intl.h (open_quote, close_quote): New.
2016         * intl.c (open_quote, close_quote): New.
2017         (gcc_init_libintl): Set them.
2018         * pretty-print.c: Include "intl.h".
2019         (pp_base_format_text): Support 'q' format flag and %` and %'
2020         formats.  Use ' instead of ` in comments.
2021         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2022         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2023         foramt_types_orig): Describe these new formats.
2024         (decode_format_attr, check_function_format,
2025         check_format_info_main): Use these new formats.
2026         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2027         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2028         check these formats to 3.5.
2029
2030 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2031
2032         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2033         (BACKEND): Reflect this.
2034         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2035         (LIBS): Likewise.
2036
2037 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2038
2039         PR tree-optimization/14197
2040         * builtins.c: Include "tree-gimple.h"
2041         (readonly_data_expr): Use get_base_address.  Make sure to call
2042         decl_readonly_section only on trees it can handle.
2043         * tree-gimple.c (get_base_address): Accept STRING_CST and
2044         CONSTRUCTOR expressions.
2045         * Makefile.in: Update dependencies.
2046
2047 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2048
2049         Move libcpp to the toplevel.
2050         * Makefile.in: Remove references to libcpp files,
2051         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2052         and change hashtable.h to that.
2053         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2054         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2055         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2056         * configure: Regenerate.
2057         * config.in: Regenerate.
2058         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2059         * cppcharset.c: Removed.
2060         * cpperror.c: Removed.
2061         * cppexp.c: Removed.
2062         * cppfiles.c: Removed.
2063         * cpphash.c: Removed.
2064         * cpphash.h: Removed.
2065         * cppinit.c: Removed.
2066         * cpplex.c: Removed.
2067         * cpplib.c: Removed.
2068         * cpplib.h: Removed.
2069         * cppmacro.c: Removed.
2070         * cpppch.c: Removed.
2071         * cpptrad.c: Removed.
2072         * cppucnid.h: Removed.
2073         * cppucnid.pl: Removed.
2074         * cppucnid.tab: Removed.
2075         * hashtable.c: Removed.
2076         * hashtable.h: Removed.
2077         * line-map.c: Removed.
2078         * line-map.h: Removed.
2079         * mkdeps.c: Removed.
2080         * mkdeps.h: Removed.
2081         * stringpool.h: Include symtab.h instead of hashtable.h.
2082         * tree.h: Include symtab.h instead of hashtable.h.
2083         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2084
2085 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2086
2087         * gcc.c (struct prefix_list): Add forward declaration.
2088         (do_spec_path): New function, extracted from...
2089         (do_spec_1) <'D'>: ... here.  Drop support for
2090         SPACE_AFTER_L_OPTION.
2091         (do_spec_1) <'I'>: Use do_spec_path.
2092         (process_command): Do not store the 'include' suffix
2093         in include_prefixes.
2094         * system.h: Poison SPACE_AFTER_L_OPTION.
2095
2096 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2097
2098         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2099         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2100
2101 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2102
2103         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2104         Update based on printed manual.  Enable setting of offsets for
2105         FSFPRINT and move it to gcc-common.texi.
2106         * doc/gcc.texi: Update FSF printing details.
2107         * doc/gccint.texi: Remove FSF printing details.
2108
2109 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2110
2111         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2112
2113 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2114
2115         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2116         expand_builtin_strrchr, expand_builtin_strpbrk,
2117         expand_builtin_mempcpy, expand_builtin_memcmp,
2118         expand_builtin_strcmp, expand_builtin_strncmp,
2119         expand_builtin_strcat, std_expand_builtin_va_start,
2120         std_expand_builtin_va_arg, expand_builtin_va_copy,
2121         expand_builtin_signbit, fold_builtin_cabs,
2122         fold_builtin_logarithm, fold_builtin_mempcpy,
2123         fold_builtin_signbit, fold_builtin_isascii,
2124         fold_builtin_toascii, fold_builtin_isdigit,
2125         fold_builtin_1, build_function_call_expr,
2126         simplify_builtin_strchr, simplify_builtin_strrchr,
2127         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2128         simplify_builtin_memcmp, simplify_builtin_strcmp,
2129         simplify_builtin_strncmp, simplify_builtin_strncat,
2130         simplify_builtin_strspn, simplify_builtin_strcspn,
2131         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2132         to build with calls to build2, build3 or omit_one_operand.
2133
2134 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2135
2136         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2137         section when generating EABI code.
2138
2139 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2140
2141         PR 15546
2142         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2143         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2144
2145 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2146
2147         * c-common.c (c_common_truthvalue_conversion): Handle
2148         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2149         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2150         i.e. set the type to truthvalue_type_node and return.
2151
2152 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2153
2154        * tree.h (struct tree_decl): Add possibly_inlined bit.
2155         (DECL_POSSIBLY_INLINED): New accessor macro.
2156         * cgraph.h: Remove declaration of cgraph_inline_hash.
2157         * cgraph.c: Remove definition of cgraph_inline_hash.
2158         (hash_node): Revert to hashing DECL_UID.
2159         (eq_node): Take two pointers to cgraph_node structures.
2160         Compare DECL_UIDs.
2161         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2162         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2163         hash on DECL_UID.
2164         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2165         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2166         (cgraph_node): Allocate a temporary node on the stack, fill in
2167         its DECL field, and pass that to htab_find_slot.
2168         (cgraph_varpool_node): Likewise.
2169         (cgraph_function_possibly_inlined_p): If global info is ready,
2170         return the DECL_POSSIBLY_INLINED bit.
2171         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2172         instead of mucking with cgraph_inline_hash.
2173
2174 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2175
2176         * doc/contrib.texi: Add g77 contributors.
2177
2178 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2179
2180         * calls.c (initialize_argument_information): Forbid sibcalls if a
2181         callee-copied argument is stored in the current function's frame.
2182
2183 2004-05-22  Eric Christopher  <echristo@redhat.com>
2184
2185         * fix-header.c (read_scan_file): Update for add_path change.
2186
2187 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2188
2189         * c.opt (Wmissing-include-dirs): New.
2190         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2191         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2192         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2193         * c-incpath.h (add_path): Add fourth (bool) argument.
2194         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2195         (add_standard_paths): Likewise.
2196         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2197         is used and the directory was user-supplied via -I.
2198         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2199         using add_cpp_dir_path ().
2200         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2201         (struct cpp_dir): Add user_supplied_p.
2202         * doc/invoke.texi (Warning Options): Document new option.
2203
2204 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2205
2206         * fold-const.c (fold_read_from_constant_string): Convert result to
2207         requested type.
2208
2209 2004-05-21  Richard Henderson  <rth@redhat.com>
2210
2211         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2212         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2213         Don't mark VA_ARG_EXPRs volatile here.
2214         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2215
2216 2004-05-21  Richard Henderson  <rth@redhat.com>
2217
2218         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2219         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2220
2221 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2222
2223         * fold-const.c (fold, fold_relational_hi_lo,
2224         nondestructive_fold_binary_to_constant,
2225         fold_read_from_constant_string): Use fold_convert instead of convert.
2226         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2227         simplify_builtin_strchr, simplify_builtin_strrchr,
2228         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2229
2230 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2231
2232         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2233         is NULL.
2234
2235 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2236
2237         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2238         override sparc.h definition.
2239
2240 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2241
2242         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2243         get_unwidened, get_narrower): Replace build with build2.
2244         * fold-const.c (negate_expr, associate_trees, size_binop,
2245         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2246         pedantic_omit_one_operand, distribute_bit_expr,
2247         make_bit_field_ref, optimize_bit_field_compare,
2248         decode_field_reference, range_binop, make_range,
2249         build_range_check, fold_range_test, fold_truthop,
2250         optimize_minmax_comparison, extract_muldiv_1,
2251         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2252         fold_inf_compare, fold_single_bit_test, fold,
2253         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2254         Likewise replace build with either build2 or build3.
2255
2256 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
2257
2258         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2259         * calls.c (prepare_call_address): Don't test
2260         NO_RECURSIVE_FUNCTION_CSE.
2261         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2262         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2263         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2264         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2265         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2266         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2267         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2268         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2269         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2270         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2271         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2272         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2273         Likewise.
2274         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2275         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2276         * doc/tm.texi (Costs): Remove documentation for
2277         NO_RECURSIVE_FUNCTION_CSE.
2278
2279 2004-05-20  Paul Brook  <paul@codesourcery.com>
2280
2281         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2282         * unwind-dw2.c (extract_cie_info): Ditto.
2283         (_Unwind_FrameState): Change retaddr_column to word type.
2284
2285 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2286
2287         PR middle-end/3074
2288         * fold-const.c (strip_compound_expr): Delete function.
2289         (count_cond): Delete function.
2290         (fold_binary_op_with_conditional_arg): Only perform transformations
2291         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2292         when a is constant.  This greatly simplifies this routine.
2293
2294         * tree.c (saved_expr_p): Delete function.
2295         * tree.h (saved_expr_p): Delete function prototype.
2296
2297 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2298
2299         * common.opt (ftree-loop-optimize): Remove.
2300
2301 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
2302
2303         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2304         (NM_FOR_TARGET): Use := and $(shell).
2305         (mainversion): Remove unused variable.
2306
2307 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2308
2309         * reorg.c (delete_from_delay_slot): If we have a barrier after the
2310         sequence containing the insn to be deleted, always reemit it.
2311
2312 2004-05-20  Richard Henderson  <rth@redhat.com>
2313
2314         PR 15454
2315         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2316         * function.c (expand_function_start): Expand static_chain_decl by hand.
2317         * gimplify.c (create_tmp_var_name): Export.
2318         * tree-gimple.h (create_tmp_var_name): Declare.
2319
2320 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2321
2322         * rs6000.c (print_operand) <case 'z'>: Call
2323         mark_decl_referenced before assemble_name.
2324
2325 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
2326
2327         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2328         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2329         (cgraph_varpool_node): Hash on the pointer to the decl, not
2330         the DECL_UID.  Fixes 64-bit bootstrap failure.
2331
2332 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
2333
2334         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2335         we don't earlyclobber operands used in the second insn.
2336
2337 2004-05-20  Steven Bosscher  <stevenb@suse.de>
2338
2339         * tree-mudflap.c: Formatting fixes.
2340
2341 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2342
2343         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2344         * gengtype.c (open_base_files): Include reload.h in ifiles.
2345         * reload.h (reg_equiv_memory_loc_varray): Declare.
2346         * reload1.c (reg_equiv_memory_loc_varray): New variable.
2347         (init_reload): Initialize it.
2348         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2349         reg_equiv_memory_loc_varray to size 0.
2350         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2351         growing reg_equiv_memory_loc_varray to the desired size.
2352         * passes.c (rest_of_handle_old_regalloc): Likewise.
2353         * reload.c: Amend comment on calling init_reload.
2354
2355 2004-05-20  Nick Clifton  <nickc@redhat.com>
2356
2357         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2358         with 'TRAMP' in the body of the macro definition.
2359
2360 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2361
2362         PR target/15383
2363         * config/ia64/ia64.c (ia64_expand_compare): Don't check
2364         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2365         cmptf_libfunc isn't set.
2366         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2367         conventions.
2368         (ia64_sysv4_init_libfuncs): New.
2369
2370         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2371         ia64_sysv4_init_libfuncs.
2372
2373 2004-05-20  Falk Hueffner  <falk@debian.org>
2374
2375         PR other/15526
2376         * libgcc2.c (__mulvsi3): Fix overflow test.
2377
2378 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
2379
2380         PR c/14171
2381         * reg-stack.c (nan): Rename to ...
2382         (not_a_num): Here.
2383         (reg_to_stack): Rename nan to not_a_num.
2384         (subst_stack_regs_pat): Likewise.
2385         (convert_regs_entry): Likewise.
2386         (convert_regs_1): Likewise.
2387
2388         * tree-cfg.c (find_case_label_for_value): Replace call to
2389         simple_cst_equal with tree_int_cst_equal.
2390
2391 2004-05-19  Jeff Law <law@redhat.com>
2392
2393         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2394         If the operand is for a use, then strip away the SSA_NAME, do not
2395         strip away the SSA_NAME for a set.  Never call release_ssa_name.
2396         (mark_def_sites): Appropriately pass additional argument to
2397         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
2398         then set the VDEF_RESULT to the VDEF_OP.
2399         (set_def_block): Strip away any SSA_NAME to get to the real
2400         underlying variable.
2401
2402         * tree-ssa-phiopt.c (value_replacement): Handle the case where
2403         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2404         BB directly.
2405
2406 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2407
2408         PR c++/15463
2409         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
2410         result of inverse.
2411
2412         PR rtl-optimization/15274
2413         * loop-iv.c (determine_max_iter, shorten_into_mode,
2414         iv_number_of_iterations): Handle constants correctly.
2415         * rtl.h (get_mode_bounds): Declaration changed.
2416         * stor-layout.c (get_mode_bounds): Return a constant suitable for
2417         the target mode.
2418
2419         PR rtl-optimization/14692
2420         * loop-unswitch.c (may_unswitch_on): Try folding the result.
2421         (unswitch_single_loop): Work correctly when may_unswitch_on
2422         returns a folded constant.
2423
2424         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2425         * simplify-rtx.c (simplify_const_relational_operation): Optimize
2426         comparisons with mode bounds.
2427
2428         * function.c (struct temp_slot): Add new field prev.
2429         (free_after_compilation, init_temp_slots): Free new fields.
2430         (cut_slot_from_list, insert_slot_to_list,
2431         temp_slots_at_level, max_slot_level, move_slot_to_level,
2432         make_slot_available): New functions.
2433         (assign_stack_temp_for_type, combine_temp_slots,
2434         find_temp_slot_from_address, preserve_temp_slots,
2435         preserve_rtl_expr_result, free_temp_slots,
2436         free_temps_for_rtl_expr, pop_temp_slots): Work with
2437         the new structure of lists.
2438         (mark_all_temps_used): Removed.
2439         * function.h (struct function): Field x_temp_slots
2440         replaced by x_used_temp_slots and x_avail_temp_slots.
2441         (temp_slots): Replaced by ...
2442         (used_temp_slots, avail_temp_slots): New.
2443         * tree.h (mark_all_temps_used): Declaration removed.
2444
2445         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2446         simplify_using_assignment): Take the expression out of
2447         the expr_list wrapper.
2448
2449         * loop-iv.c (iv_number_of_iterations): Improve clasification of
2450         infinite loops.
2451
2452 2004-05-19  Roger Sayle  <roger@eyesopen.com>
2453
2454         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2455         costs should be based on code size when optimizing for size.
2456
2457 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
2458
2459         * fold-const.c: Remove non-printable character 160.
2460
2461 2004-05-19  Nick Clifton  <nickc@redhat.com>
2462
2463         * doc/invoke.texi (ARM Options): Fix typo.
2464         Remove descrption of -mshort-load-bytes and
2465         -mno-short-load-bytes.
2466
2467         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2468         missing parenthesis.
2469         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2470         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2471
2472 2004-05-19  Steven Bosscher  <stevenb@suse.de>
2473
2474         * expr.c (store_constructor): Build loop start and end by hand
2475         instead of via loop functions from stmt.c.
2476         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2477         Remove the code to expand them.
2478
2479         * stmt.c (loop_stack): Remove this and everything related.
2480         (struct nesting, enum nesting_desc): Update.
2481         (expand_fixup): Likewise.
2482         (expand_loop_start, expand_start_loop_continue_elsewhere,
2483         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2484         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
2485         expand_exit_loop_if_false, expand_exit_loop_top_cond,
2486         expand_exit_something): Remove.
2487         * tree.h: Remove prototypes.
2488
2489 2004-05-18  Mike Stump  <mrs@apple.com>
2490             Devang Patel  <dpatel@apple.com>
2491
2492         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
2493         if this label is for eh.
2494         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
2495         * config/darwin.c (darwin_emit_unwind_label): Likewise.
2496         * dwarf2out.c (output_call_frame_info): Likewise.
2497         * output.h (default_emit_unwind_label): Likewise.
2498         * target.h (unwind_label): Likewise.
2499         * varasm.c (default_emit_unwind_label): Likewise.
2500
2501         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2502         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
2503         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
2504         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
2505         DEBUG_RANGES_SECTION): Define.
2506
2507 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
2508
2509         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2510         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2511         (cgraph_varpool_node):
2512         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
2513         (cgraph_function_possibly_inlined_p): Use the decl itself for
2514         the key, not DECL_ASSEMBLER_NAME.
2515         (change_decl_assembler_name): No need to muck with the hash tables.
2516         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
2517         Delete.
2518         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
2519         for the key, not DECL_ASSEMBLER_NAME.
2520         * cgraph.h: Remove prototypes of deleted functions.
2521         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
2522         (mark_decl_referenced): New function.
2523         * tree.h: Prototype mark_decl_referenced.
2524         * final.c (output_addr_const) <case SYMBOL_REF>: Call
2525         mark_decl_referenced before assemble_name.
2526         * c-decl.c (finish_decl): Use mark_decl_referenced.
2527
2528 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
2529             Jeff Law <law@redhat.com>
2530
2531         * tree-ssa-phiopt.c (abs_replacement): New function.
2532         (empty_block_p): New function extracted from...
2533         (candidate_bb_for_phi_optimization): Break out empty block test.
2534         (conditional_replacement): Use empty_block_p.
2535         (value_replacement): Similarly.
2536
2537         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
2538         * tree-ssa-phiopt.c: Include flags.h.
2539         (conditional_replacement): Remove argument names from prototype.
2540         Minor formatting and comment fixes.
2541         (tree_ssa_phiopt): If conditional_replacement returns false, then
2542         call value_replacement.
2543         (value_replacement): New function.
2544
2545 2004-05-18  Jeff Law  <law@redhat.com>
2546
2547         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
2548         from conditional_replacement.
2549         (candidate_bb_for_phi_optimization): Similarly.
2550         (conditional_replacement): Use replace_phi_with_stmt and
2551         candidate_bb_for_phi_optimization.
2552
2553         * tree-ssa-phiopt.c: Fix various formatting issues.
2554
2555 2004-05-18  Steven Bosscher  <stevenb@suse.de>
2556
2557         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
2558         s390_expand_cmpmem): Do not use expand_start_loop and
2559         expand_end_loop, instead build the loop manually.
2560
2561 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
2562
2563         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
2564         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
2565
2566 2004-05-17  Jeff Law  <law@redhat.com>
2567
2568         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
2569         * flags.h (flag_delete_null_pointer_checks): Here.
2570         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
2571         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
2572         (add_phi_arg, remove_phi_arg_num): Similarly.
2573         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
2574         property into PHI nodes.
2575         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
2576         (record_equivalences_from_phis): If all PHI arguments are known to be
2577         nonzero, then the result must be nonzero as well.
2578         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
2579         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
2580         appropriately.  Walk the USE-DEF chains and propagate nonzero property
2581         as appropriate.
2582         * tree.h (PHI_ARG_NONZERO): Define.
2583         (phi_arg_d): Add nonzero flag.
2584
2585 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
2586
2587         * f: Entire directory removed
2588
2589         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
2590         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
2591         (g77_integer_type_node, g77_uinteger_type_node)
2592         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
2593         * c-common.c (c_common_nodes_and_builtins): Do not initialize
2594         the above set of variables.
2595
2596         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
2597         * doc/invoke.texi, doc/standards.texi: Remove cross-references
2598         to g77 manual.
2599
2600 2004-05-17  Steven Bosscher  <stevenb@suse.de>
2601
2602         PR tree-optimization/15438
2603         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
2604         attributed functions as pure or const.
2605
2606 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
2607
2608         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
2609         from source code with errors.
2610
2611 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
2612
2613         Enable tree browser for all front ends.
2614         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
2615         (BACKEND): ...to here.
2616
2617 2004-05-17  Jan Hubicka  <jh@suse.cz>
2618
2619         * i386.c (construct_container): Do not produce BLKmode registers.
2620         (classify_argument): Properly compute alignment of complex types.
2621
2622 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
2623
2624         PR target/15084
2625         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
2626         and renamed to movdi_insv_1_rex64.
2627         (insv): Support SImode for 32bit and DImode for 64bit.
2628
2629 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2630
2631         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
2632         (TARGET_SWITCHES): Remove debugg.
2633         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
2634         TARGET_64BIT.
2635         (subdi3): Replace the define_expand with a define_insn, the latter
2636         renamed from subdi3_internal_3.
2637         (negdi2): Likewise negdi2_internal_2.
2638         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
2639         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
2640         and associated define_splits.
2641         (adddi3_internal): Renamed from adddi3_internal_3.
2642         (ashldi3_internal): Likewise ashldi3_internal4.
2643         (ashrdi3_internal): Likewise ashrdi3_internal4.
2644         (lshrdi3_internal): Likewise lshrdi3_internal4.
2645
2646 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2647
2648         * optabs.c (expand_unop): Try implementing negation using subtraction
2649         from zero.
2650
2651 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2652
2653         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
2654         SAR register.
2655
2656 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
2657
2658         PR target/10982
2659         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
2660         (ne_zeroextractsi_shifted): New pattern.
2661         (ite_ne_zeroextractsi): New pattern.
2662         (ite_ne_zeroextractsi_shifted): New pattern.
2663
2664 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2665
2666         * c-gimplify.c (c_genericize):
2667         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
2668         * c-parse.in <expr_no_commas>: Likewise.
2669         <if_prefix>: Likewise.
2670         <select_or_iter_stmt>: Likewise.
2671         * expr.c (expand_var, expand_expr_real_1): Likewise.
2672         * expr.h (expand_expr): Make it a static inline function.
2673         Move prototype for expand_expr_real up before this.
2674         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
2675         Likewise.
2676         * gimplify.c (gimple_boolify, gimplify_addr_expr,
2677         gimplify_asm_expr, gimplify_expr): Likewise.
2678         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
2679         dump_function_to_file): Likewise.
2680         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
2681         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
2682         * tree-into-ssa.c (dump_tree_ssa): Likewise.
2683         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
2684         Likewise.
2685         * tree-optimize.c (execute_one_pass): Likewise.
2686         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
2687         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
2688
2689         * objc/objc-act.c (objc_build_try_enter_fragment,
2690         objc_build_try_epilogue, objc_build_catch_stmt,
2691         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
2692         with lang_hooks.foo ().
2693
2694 2004-05-15  Roger Sayle  <roger@eyesopen.com>
2695
2696         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
2697         that simplify_builtin doesn't destructively modify its argument.
2698
2699 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2700
2701         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
2702         implementations for ARM and Thumb.
2703         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
2704
2705 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
2706
2707         * prefix.c (update_path): Replace PREFIX with KEY only
2708         when it matches a full directory name in PATH.
2709
2710 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2711
2712         * arm.h (TARGET_APCS_32): Delete.
2713         (TARGET_MMU_TRAPS): Delete.
2714         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
2715         define __APCS_26__.
2716         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
2717         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
2718         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
2719         (prog_mode_type): Delete.
2720         (PROMOTE_MODE): Always promote unsigned for HImode.
2721         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
2722         (MASK_RETURN_ADDR): Simplify.
2723         * arm.c (arm_prgmode): Delete.
2724         (arm_override_options, arm_gen_rotated_half_load): Simplify.
2725         (print_multi_reg, output_return_instruction): Simplify.
2726         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
2727         (arm_return_addr): Simplify.
2728         * arm.md (prog_mode): Delete.
2729         (conds): Simplify.
2730         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
2731         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
2732         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
2733         (loadhi_shiftpredec): Delete.
2734         (peephole for post-increment on HImode load): Delete.
2735         * arm/crtn.asm: (FUNC_END): Simplify.
2736         * arm/lib1funcs.asm: Remove APCS-26 return macros.
2737         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
2738         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
2739         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
2740         MULTILIB_DEFAULTS as required.
2741         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
2742         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
2743         variables as required.
2744         * doc/invoke.texi (ARM Options): Remove obsolete flags.
2745
2746 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
2747
2748         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
2749         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
2750         count to 8 to handle n_reg > 2.
2751
2752 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2753
2754         * doc/extend.texi: Update WG14 URL.
2755
2756 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2757
2758         * basic-block.h (life_analysis, delete_noop_moves):
2759         Update prototypes.
2760         * bt-load.c (branch_target_load_optimize): Don't take the
2761         insns stream as an argument.  Update the life_analysis calls.
2762         * combine.c (combine_instructions): Update delete_noop_moves
2763         calls.
2764         * flow.c (notice_stack_pointer_modification): Don't take the
2765         insns stream as an argument.  Work on the flow graph.
2766         (life_analysis): Likewise.
2767         (delete_noop_moves): Likewise.
2768         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
2769         (rest_of_handle_life): Update life_analysis call.
2770         (rest_of_compilation): Likewise, and also update
2771         branch_target_load_optimize call.
2772         * ra.c (reg_alloc): Update life_analysis call.
2773         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
2774         the insns stream as an argument.
2775         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
2776         call.
2777         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
2778         prototypes.
2779         * value-profile.c (branch_prob): Update life_analysis call.
2780         * web.c (web_main): Work on the CFG, not on the insns stream.
2781
2782         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
2783         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
2784         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2785
2786 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2787
2788         PR c/15444
2789         * c-format.c (avoid_dollar_number): New function.
2790         (check_format_info_main): Call avoid_dollar_number when operand
2791         numbers might occur but has_operand_number == 0.
2792
2793 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
2794
2795         * arm.md (all peephole2 patterns): Use predicates that validate
2796         register classes as appropriate.
2797
2798 2004-05-14  Steven Bosscher  <stevenb@suse.de>
2799
2800         PR opt/14472
2801         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
2802         ignore type conversions that do not inhibit tail calling.
2803         (find_tail_calls): Likewise.
2804
2805 2004-05-14  Jeff Law  <law@redhat.com>
2806
2807         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
2808         bother marking bypassed virtuals for out-of-ssa.  Instead merge
2809         bypassed virtuals into vars_to_rename just before into-ssa pass.
2810
2811         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
2812         so that it picks up more opportunities to eliminate ABS expressions
2813         or turn them into negations.
2814
2815 2004-05-14  Steven Bosscher  <stevenb@suse.de>
2816
2817         * passes.c (rest_of_handle_null_pointer): Remove.
2818         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
2819         (rest_of_compilation): Likewise.
2820         * rtl.h (delete_null_pointer_checks): Remove prototype.
2821         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
2822         Remove declarations.
2823         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
2824         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
2825         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
2826         expr_reaches_here_p, computing_insn, def_reaches_here_p,
2827         can_disregard_other_sets, handle_avail_expr, classic_gcse,
2828         one_classic_gcse_pass, invalidate_nonnull_info,
2829         delete_null_pointer_checks_1, delete_null_pointer_checks,
2830         expr_reached_here_p_work): Remove.
2831         (gcse_main): Do not perform classic GCSE when optimizing for size.
2832         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
2833         are never used.
2834
2835 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
2836
2837         PR optimization/14466
2838         * tree-complex.c (make_temp): Remove.
2839         (gimplify_val): Replace make_temp with make_rename_temp
2840         and add NULL as the second argument.
2841         (expand_complex_div_wide): Likewise.
2842         * tree-dfa.c (make_rename_temp): New function.
2843         * tree-flow.h (make_rename_temp): Declare.
2844         * tree-sra.c (make_temp): Remove.
2845         (lookup_scalar): Replace make_temp with make_rename_temp.
2846         (create_scalar_copies): Likewise.
2847         * tree-ssa-phiopt.c (conditional_replacement): When we
2848         get non gimple create a temporary variable to hold the
2849         casted expression.
2850
2851 2004-05-14  Paul Brook  <paul@codesourcery.com>
2852
2853         * stor-layout.c (update_alignment_for_field): Use
2854         targetm.align_anon_bitfield.
2855         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
2856         (TARGET_INITIALIZER): Use it.
2857         * target.h (struct gcc_target): Add align_anon_bitfield.
2858         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
2859         (TARGET_ALIGN_ANON_BITFIELD): Define.
2860         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
2861
2862 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
2863
2864         * tree.def (documentation): Remove mention of class 'b'.
2865         (BLOCK): Now in class 'x'.
2866         * c-common.c (verify_tree): Remove case 'b'.
2867         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
2868         * calls.c (calls_function_1): Control cannot get past the switch
2869         when exp is a BLOCK.
2870         * print-tree.c (print_node): Move code for class 'b' to the class
2871         'c'/'x' switch, as case BLOCK.
2872         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
2873         (unsafe_for_reeval, substitute_placeholder_in_expr)
2874         (stabilize_reference_1): Remove case 'b'.
2875         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
2876         of something being 'b' to tests for TREE_CODE of something being
2877         BLOCK.
2878         * tree-ssa-operands.c (get_expr_operands): Likewise.
2879
2880 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2881
2882         * tree-gimple.c: Rename from tree-simple.c.
2883         * tree-gimple.h: Rename from tree-simple.h.
2884         * c-gimplify.c: Rename from c-simplify.c
2885         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
2886         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
2887         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
2888         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
2889         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
2890         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
2891         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
2892         Update.
2893
2894 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
2895
2896         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
2897
2898 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2899
2900         * tree-ssa.c (delete_tree_ssa): XFREE
2901         bitmaps allocated with BITMAP_XMALLOC.
2902
2903         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
2904         idfs_cache at the end of the function.
2905
2906         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
2907         at the end of the function.
2908
2909         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
2910         el at the end of the function.
2911
2912         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
2913         bitmaps allocated with BITMAP_XMALLOC.
2914
2915         * loop-unswitch.c (unswitch_single_loop): Free bbs at
2916         the end.
2917
2918         * final.c (shorten_branches): Free uid_shuid before
2919         reallocating it.
2920
2921         * bb-reoder.c (connect_traces): Free cold_traces at the end.
2922
2923 2004-05-13  Jeff Law  <law@redhat.com>
2924
2925         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
2926         variables.  Simplify slightly by using USE_OP/DEF_OP instead
2927         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
2928
2929         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
2930         rather than iterating through the blocks testing each bit in
2931         livein to initialize the worklist.
2932         (mark_def_sites): Remove useless checks of KILLS for virtual
2933         operands.
2934
2935         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
2936         new parameters for the statement and variable worklist as well
2937         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
2938         worklist recording interesting variables in the variable worklist
2939         and bitmap.  Handle casts between integral and boolean types.
2940         (substitute_single_use_vars): Accept new parameters for the statement
2941         and variable worklist.  When a substitution is made add a new
2942         entry to the statement worklist.  Handle casts between integral
2943         and boolean types.
2944         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
2945         worklists to children.  Iterate until the statement worklist
2946         is empty.
2947
2948 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2949
2950         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
2951         the end of the block.
2952
2953         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
2954         with BITMAP_XMALLOC.
2955
2956         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
2957         with BITMAP_XMALLOC.
2958
2959         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2960         Free nonzero_vars at the end of the function.
2961
2962         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
2963         need to generate code instead of a NOP_EXPR.
2964
2965 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
2966
2967         * gcc.c (default_compilers): Fill out initializers for new Fortran
2968         entries.
2969
2970 2004-05-13  Paul Brook  <paul@codesourcery.com>
2971
2972         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
2973
2974 2004-05-13  Paul Brook  <paul@codesourcery.com>
2975
2976         * config/arm/arm.c (arm_default_short_enums): New function.
2977         (TARGET_DEFAULT_SHORT_ENUMS): Define.
2978
2979 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2980
2981         Merge from tree-ssa-20020619-branch.
2982
2983         * Makefile.in (reload1.o-warn): Add.
2984         (tree-alias-ander.o-warn): Add.
2985         (GMPLIBS): Define.
2986         (GMPINC): Define.
2987         (BANSHEELIB): Define.
2988         (BANSHEEINC): Define.
2989         (TREE_DUMP_H): Define.
2990         (TREE_SIMPLE_H): Define.
2991         (TREE_FLOW_H): Define.
2992         (LIBDEPS): Add BANSHEELIB.
2993         (INCLUDES): Add BANSHEEINC and GMPINC.
2994         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
2995         c-mudflap.o and c-pretty-print.o.
2996         (C_OBJS): Remove c-pretty-print.o.
2997         (OBJS-common): Remove sibcall.o.
2998         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
2999         tree-ssa.o, tree-optimize.o, tree-simple.o,
3000         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3001         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3002         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3003         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3004         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3005         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3006         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3007         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3008         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3009         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3010         tree-profile.o.
3011         (OBJC-archive): Add tree-nomudflap.o.
3012         (cc1): Add dependency on @TREEBROWSER@.
3013         (c-decl.o): Add dependency on TREE_DUMP_H.
3014         (c-dump.o): Likewise.
3015         (c-common.o): Add dependency on tree-iterator.h
3016         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3017         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3018         (tree.o): Add dependency on tree-iterator.h,
3019         BASIC_BLOCK_H and TREE_FLOW_H.
3020         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3021         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3022         (tree-alias-type.o, tree-alias-ander.o,
3023         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3024         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3025         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3026         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3027         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3028         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3029         tree-nested.o, tree-iterator.o, tree-dfa.o,
3030         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3031         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3032         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3033         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3034         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3035         tree-sra.o, tree-complex.o, tree-profile.o,
3036         rtl-profile.o): New rules.
3037         (function.o): Add dependency on basic-block.h
3038         (expr.o): Add dependency on tree-iterator.h.
3039         (sibcall.o): Remove.
3040         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3041         (cfg.o): Add dependency on TIMEVAR_H.
3042         (cfghooks.o): Add dependency on TREE_FLOW_H.
3043         (reg-stack.o): Add dependency on basic-block.h.
3044         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3045         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3046         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3047         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3048         tree-alias-type.h, tree-alias-common.h,
3049         tree-alias-type.c, tree-alias-common.c,
3050         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3051         rtl-profile.c and tree-nested.c.
3052         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3053         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3054         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3055         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3056         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3057         * basic-block.h: Include predict.h
3058         (struct edge_def): Add GTY marker.
3059         Change field 'insns' to be a union of tree and rtx.
3060         (EDGE_TRUE_VALUE): Define.
3061         (EDGE_FALSE_VALUE): Define.
3062         (EDGE_EXECUTABLE): Define.
3063         (struct bb_ann_d): Forward declare.
3064         (struct basic_block_def): Add GTY marker.
3065         Remove fields head_tree and end_tree.
3066         Add fields stmt_list, rbi and tree_annotations.
3067         (struct reorder_block_def): Define.
3068         (basic_block_info): Add GTY marker.
3069         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3070         variables instead of macros.
3071         (flow_call_edges_add): Remove declaration.
3072         (make_eh_edge): Remove declaration.
3073         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3074         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3075         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3076         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3077         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3078         (try_redirect_by_replacing_jump): Modfiy return type to
3079         edge instead of bool.
3080         * bb-reorder.c (copy_bb): Call duplicate_block
3081         instead of cfg_layout_duplicate_bb.
3082         (copy_bb_p): Call can_duplicate_block_p instead of
3083         cfg_layout_can_duplicate_bb_p.
3084         * bitmap.c (bitmap_first_set_bit): Abort if word
3085         wasn't found.
3086         (bitmap_last_set_bit): Likewise.
3087         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3088         (DEF_FUNCTION_TYPE_3): Add.
3089         * builtins.c (c_strlen): Make extern.
3090         (builtin_save_expr): New.
3091         (expand_builtin_nonlocal_goto): New.
3092         (expand_builtin_constant_p): Remove.
3093         (expand_builtin_mathfn): Call builtin_save_expr instead
3094         of save_expr.
3095         (expand_builtin_mathfn_2): Likewise.
3096         (expand_builtin_strcmp): Likewise.
3097         (expand_builtin_strncmp): Likewise.
3098         (expand_builtin_strcat): Likewise.
3099         (fold_builtin_cabs): Likewise.
3100         (expand_builtin_alloca): Don't trigger if -fmudflap is
3101         given.
3102         (build_string_literal): Set TREE_INVARIANT on new node.
3103         (expand_builtin_profile_fun): New.
3104         (round_trampoline_addr): New.
3105         (expand_builtin_init_trampoline): New.
3106         (expand_builtin_adjust_trampoline): New.
3107         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3108         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3109         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3110         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3111         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3112         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3113         Handle.
3114         (fold_builtin_expect): New.
3115         (fold_builtin_isascii): Don't return non-constant results
3116         in GIMPLE form.
3117         (fold_builtin_isdigit): Likewise.
3118         (fold_builtin_1): New.
3119         (fold_builtin): Call it.
3120         (build_function_call_expr): Update call to build a new
3121         CALL_EXPR.
3122         (purge_builtin_constant_p): Remove.
3123         (simplify_builtin, simplify_builtin_memcmp,
3124         simplify_builtin_strcmp, simplify_builtin_strncmp,
3125         simplify_builtin_strpbrk, simplify_builtin_strstr,
3126         simplify_builtin_strchr, simplify_builtin_strrchr,
3127         simplify_builtin_strcat, simplify_builtin_strncat,
3128         simplify_builtin_strspn, simplify_builtin_strcspn,
3129         simplify_builtin_next_arg, simplify_builtin_va_start,
3130         simplify_builtin_sprintf): New.
3131         * builtins.def (BUILT_IN_STACK_ALLOC,
3132         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3133         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3134         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3135         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3136         * c-common.c: Include tree-iterator.h and hashtab.h.
3137         (lang_statement_code_p): Declare.
3138         (lang_gimplify_stmt): Declare.
3139         (fix_string_type): Set TREE_INVARIANT for value.
3140         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3141         (c_type_hash): New.
3142         (c_common_get_alias_set): Handle multiple type nodes
3143         referring to "the same" type, currently for C90 only.
3144         (c_add_case_label): Use create_artificial_label.
3145         (finish_label_address_expr): Don't set TREE_CONSTANT on
3146         result.
3147         (c_expand_expr): Don't handle STMT_EXPR.
3148         (handle_alias_attribute): Marke aliased variables to be
3149         TREE_STATIC.
3150         (handle_nonnull_attribute): Initialize arg_num.
3151         (check_function_nonnull): Likewise.
3152         (c_walk_subtrees): New.
3153         (c_estimate_num_insns_1): Don't handle
3154         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3155         (c_decl_uninit_1): Remove.
3156         (c_decl_uninit): Remove.
3157         (c_warn_unused_result): New.
3158         * c-common.def (ASM_STMT): Change number of operands
3159         to 4.
3160         (FILE_STMT): Remove.
3161         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3162         Remove.
3163         (lang_gimplify_stmt): Add.
3164         (expand_stmt): Remove.
3165         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3166         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3167         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3168         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3169         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3170         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3171         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3172         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3173         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3174         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3175         genrtl_compound_stmt, genrtl_asm_stmt,
3176         genrtl_cleanup_stmt, c_decl_uninit): Remove.
3177         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3178         c_tree_chain_matters_p, c_warn_unused_result,
3179         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3180         Declare.
3181         * c-convert.c (convert): Make convert work when
3182         converting to compatible types across translation unit.
3183         * c-decl.c: Include langhooks.h, tree-mudflap.h,
3184         tree-simple.h, diagnostic.h and tree-dump.h
3185         (merge_decls): Initialize oldtype to NULL.
3186         (finish_decl): Use DECL_HARD_REGISTER instead of
3187         DECL_C_HARD_REGISTER.
3188         (check_bitfield_type_and_width): Check for null
3189         lang_type_specific when check the precision of an enum.
3190         (grokdeclarator): Immediately layout an ARRAY_TYPE used
3191         in a pointer-to-array declarator.
3192         (finish_struct): Clear allocated struct lang_type.
3193         (finish_enum): Set enum_min and enum_max.  Set
3194         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3195         not to the enumerators.
3196         (set_decl_nonlocal): New.
3197         (store_parm_decls): Use it via walk_tree.
3198         (c_finalize): New.
3199         (finish_function): When !targetm.have_ctors_dtors,
3200         record static constructors and destructors here...
3201         (c_expand_body_1): ... not here.
3202         (c_expand_decl): Rename from c_expand_decl_stmt.
3203         Handle all C-specific expansion semantics.
3204         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3205         STMT_LINENO.
3206         * c-format.c (handle_format_arg_attribute): Initialize
3207         format_num.
3208         * c-lang.c: Include tree-inline.h
3209         (LANG_HOOKS_EXPAND_DECL,
3210         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3211         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3212         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3213         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3214         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3215         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3216         (c_types_compatible_p): New.
3217         * c-mudflap.c: New file.
3218         * c-objc-common.c: Include tree-mudflap.h
3219         (start_cdtor, finish_cdtor): Collapse
3220         together into
3221         (build_cdtor): ...here.  Update to construct a complete tree
3222         for the function.  No need to call push_scope, pop_scope, or
3223         clear_last_expr, or set current_function_cannot_inline.
3224         (c_missing_noreturn_ok_p): Change prototype to return
3225         bool.
3226         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3227         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3228         opts.c.
3229         (c_common_post_options): Don't ever use rtl inlining.
3230         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3231         * c-pragma.c (handle_pragma_redefine_extname): Define
3232         always.
3233         (init_pragma): Activate #pragma redefine_extname for mudflap.
3234         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3235         (pp_c_initializer): Accept any type CONSTRUCTOR.
3236         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3237         COMPLEX_TYPE.
3238         (decl_name_str): New local function.
3239         (pp_c_direct_declarator): Call it.
3240         (pp_c_primary_expression): Call it.
3241         (pp_c_id_expression): Call it.
3242         (pp_c_statement): Call it.
3243         (print_c_tree): Create new pp object.
3244         * c-pretty-print.h (pp_c_tree_decl_identifier,
3245         print_c_tree): Declare.
3246         * c-semantics.c: Include langhooks.h
3247         (lang_expand_stmt, lang_expand_decl_stmt,
3248         find_reachable_label_1, find_reachable_label,
3249         expand_unreachable_if_stmt, expand_unreachable_stmt,
3250         genrtl_do_stmt_1): Remove.
3251         (begin_stmt_tree): Don't check for changed filename.
3252         Call annotate_with_locus.
3253         (finish_stmt_tree): Don't set line for end of function.
3254         (build_stmt): Don't check type nodes for
3255         side effects.
3256         (build_stmt): Set TREE_SIDE_EFFECTS.
3257         Set EXPR_LOCUS instead of STMT_LINENO.
3258         (lang_expand_stmt, lang_expand_decl_stmt,
3259         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3260         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3261         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3262         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3263         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3264         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3265         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3266         find_reachable_label_1, expand_unreachable_if_stmt,
3267         expand_unreachable_stmt): Remove.
3268         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3269         * c-simplify.c: New file.
3270         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3271         (struct lang_type): Add fields enum_min and enum_max.
3272         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3273         (c_expand_decl, c_missing_noreturn_ok_p,
3274         c_types_compatible_p): Declare.
3275         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3276         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3277         (default_function_array_conversion): Rely on build to
3278         set TREE_CONSTANT.
3279         (parser_build_binary_op, pointer_diff): Likewise.
3280         (build_unary_op, build_binary_op): Likewise.
3281         (build_array_ref):
3282         (build_external_ref): Set TREE_INVARIANT.
3283         (build_c_cast, pop_init_level): Likewise.
3284         (process_init_element): Use ASM_VOLATILE_P.
3285         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3286         (c_finish_case): Call c_do_switch_warnings.
3287         * c.opt (fdump-): Remove.
3288         * calls.c (try_to_integrate): Remove.
3289         (prepare_call_address): Replace fndecl arg with a
3290         precomputed static chain value.
3291         (emit_call_1): New argument for full call expr.
3292         (flags_from_decl_or_type): Call special_function_p.
3293         (initialize_argument_information): Add argument
3294         may_tailcall.
3295         (purge_reg_equiv_notes): New.
3296         (expand_call): Do not try to expand calls inline.
3297         (fixup_tail_calls): New.
3298         * cfg.c: Include timevar.h and ggc.h.
3299         (bb_pool, edge_pool): Remove.
3300         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3301         (entry_exit_blocks): Remove.
3302         (rbi_pool): Declare.
3303         (init_flow): Do not create pools.
3304         Allocate entry/exit block.
3305         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3306         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3307         (unlink_block): Clear b->prev_bb and b->next_bb.
3308         (compact_blocks): Clear all slots of BASIC_BLOCK array.
3309         (dump_flow_info): Work on trees too.
3310         (dump_cfg_bb_info): New.
3311         (brief_dump_cfg): New.
3312         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3313         (find_edge): New.
3314         * cfgbuild.c (rtl_make_eh_edge): Rename from
3315         make_eh_edge.  Update all users.
3316         (find_basic_blocks): Don't call VARRAY_FREE on
3317         basic_block_info.
3318         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3319         and newpos2.
3320         (delete_unreachable_blocks): Return changed status.
3321         (merge_seq_blocks): New.
3322         * cfghooks.c: Include tree-flow.h
3323         (tree_register_cfg_hooks, ir_type): New.
3324         (redirect_edge_and_branch): Change return type to edge.
3325         (predict_edge, predicted_by_p, can_duplicate_block_p,
3326         duplicate_block, block_ends_with_call_p,
3327         block_ends_with_condjump_p, flow_call_edges_add): New.
3328         * cfghooks.h (redirect_edge_and_branch): Change return
3329         type to edge.
3330         (predict_edge, predicted_by_p, can_duplicate_block_p,
3331         duplicate_block, block_ends_with_call_p,
3332         block_ends_with_condjump_p, flow_call_edges_add): Declare.
3333         (redirect_edge_and_branch): Change return type to edge.
3334         (struct cfg_hooks): Add fields block_ends_with_call_p,
3335         block_ends_with_condjump_p, flow_call_edges_add,
3336         predict_edge, predicted_by_p, can_duplicate_block_p and
3337         duplicate_block.
3338         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3339         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3340         (fixup_reorder_chain): Use initialize_bb_rbi.
3341         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3342         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3343         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3344         (insn_locators_initialize): Use new info about blocks.
3345         * cfglayout.h (typedef struct reorder_block_def): Moved to
3346         basic_block.h.
3347         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3348         removed.
3349         * cfgloop.c: Include tree.h and tree-flow.h.
3350         * cfgloop.h (create_loop_notes): Declare.
3351         * cfgloopmanip.c (create_loop_notes): New.
3352         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3353         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3354         and duplicate_block fields.
3355         (create_basic_block_structure): Don't look at
3356         RTX_INTEGRATED_P.
3357         (rtl_block_ends_with_call_p): New.
3358         (rtl_block_ends_with_condjump_p): New.
3359         (need_fake_edge_p): Moved from cfganal.c.
3360         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3361         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3362         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3363         (cfg_layout_rtl_cfg_hooks): Ditto.
3364         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3365         functions to be reachable.
3366         * cgraphunit.c (decide_is_function_needed):
3367         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3368         inline functions don't need to be output.
3369         (cgraph_assemble_pending_functions): Don't do anything
3370         special for nested functions.
3371         (cgraph_mark_functions_to_output): Likewise.
3372         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3373         (cgraph_analyze_function): Use estimate_num_insns.
3374         (cgraph_mark_functions_to_output): Likewise.
3375         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3376         (cgraph_expand_function): Allow functions to not be
3377         emitted.
3378         (cgraph_remove_unreachable_nodes):
3379         (cgraph_recursive_inlining_p): Simplify.
3380         (lookup_recursive_calls,
3381         cgraph_decide_recursive_inlining): New.
3382         (cgraph_decide_inlining_*): Update calls of
3383         cgraph_mark_inline.
3384         * combine.c (get_pos_from_mask): Always set *plen.
3385         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3386         ftree-based-profiling, ftree-ccp, ftree-ch,
3387         ftree-combine-temps, ftree-copyrename, ftree-dce,
3388         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3389         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3390         ftree-lrs): Add.
3391         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3392         Undefine.
3393         * configure.ac: Add --enable-tree-browser option.
3394         Add --with-libbanshee option.
3395         Add GMPLIBS and GMPINC.
3396         * configure: Regenerate.
3397         * coverage.c (tree_ctr_tables): New.
3398         (coverage_counter_alloc): Use it.
3399         (build_ctr_info_value): Ditto.
3400         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
3401         (tree_coverage_counter_ref): New.
3402         * coverage.h (coverage_counter_ref): Remove declaration.
3403         (rtl_coverage_counter_ref): Declare.
3404         (tree_coverage_counter_ref): Declare.
3405         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3406         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3407         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3408         (struct cse_basic_block_data): Rename enum values to not
3409         conflict with profile.h; update all uses.
3410         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3411         in comments.
3412         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3413         * diagnostic.h (debug_output_buffer, dump_generic_node,
3414         print_generic_stmt, print_generic_stmt_indented,
3415         print_generic_expr, print_generic_decl,
3416         debug_generic_expr, debug_generic_stmt, debug_c_tree):
3417         Declare.
3418         * dominance.c: Cache immediate dominators.
3419         * domwalk.c: New file.
3420         * domwalk.h: New file.
3421         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3422         (gen_subprogram_die): Generate a DIE for a named
3423         return value.
3424         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3425         (add_location_or_const_value_attribute): Likewise.
3426         (add_bound_info): Likewise.
3427         (gen_decl_die): Likewise.
3428         * emit-rtl.c (maybe_set_first_label_num): New.
3429         (copy_most_rtx): Don't copy the integrated flag.
3430         Copy the new return_val flag.
3431         * et-forest.c (MAX_NODES): Define.
3432         (record_path_before_1): Abort if len is greater than
3433         MAX_NODES.
3434         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3435         gen_eh_region_catch, gen_eh_region_allowed,
3436         gen_eh_region_must_not_throw, get_eh_region_number,
3437         get_eh_region_may_contain_throw, get_eh_region_tree_label,
3438         set_eh_region_tree_label, expand_resx_expr): New.
3439         (expand_eh_region_start, expand_start_catch): Use them.
3440         (expand_end_catch): Tidy.
3441         (note_eh_region_may_contain_throw): Take region argument.
3442         (note_current_region_may_contain_throw): New.
3443         (get_exception_filter): Export.
3444         (collect_eh_region_array): Export.
3445         (remove_unreachable_regions): Check ERT_TRY based on reachability
3446         of catches, not reachability of continue_label.  Never remove
3447         ERT_MUST_NOT_THROW regions.
3448         (collect_rtl_labels_from_trees): New.
3449         (convert_from_eh_region_ranges): Use it.
3450         (connect_post_landing_pads): Handle dying cleanups.
3451         (struct reachable_info): Add callback data.
3452         (add_reachable_handler): Invoke the callback.
3453         (foreach_reachable_handler): New.
3454         (reachable_handlers): Use it.
3455         (arh_to_landing_pad, arh_to_label): New.
3456         (can_throw_internal_1): Split out from can_throw_internal.
3457         (can_throw_external_1): Similarly.
3458         * except.h: Update.
3459         * explow.c (emit_stack_save): Remove savearea mode check.
3460         (update_nonlocal_goto_save_area): New.
3461         (allocate_dynamic_stack_space): Use it.
3462         (probe_stack_range): Never emit loop notes.
3463         * expmed.c (extract_fixed_bit_field): Always propagate the
3464         target for the shift if it is a REG.
3465         * expr.c: Include tree-iterator.h
3466         (is_zeros_p): Remove.
3467         (categorize_ctor_elements_1, categorize_ctor_elements): New.
3468         (count_type_elements): New.
3469         (mostly_zeros_p): Use them.
3470         (expr_wfl_stack): Remove.
3471         (convert_move): Do nothing if to and from are the same.
3472         (emit_block_move_via_loop): Don't emit LOOP notes.
3473         (emit_move_insn): Don't handle CONSTANT_P_RTX.
3474         (emit_move_insn_1): Don't generate inline warnings.
3475         (expand_vars, expand_var): Split from ...
3476         (expand_expr_1): ... here.
3477         (expand_expr_real, expand_expr_real_1):  Use new macros
3478         EXPR_LOCATION and EXPR_HAS_LOCATION.
3479         * expr.h (simplify_builtin_fputs,
3480         simplify_builtin_strcpy, simplify_builtin_strncpy,
3481         expand_var, fixup_tail_calls,
3482         update_nonlocal_goto_save_area): Declare.
3483         (lookup_static_chain, expand_inline_function,
3484         mark_seen_cases): Remove.
3485         (prepare_call_address): Change type of 2nd argument to
3486         rtx.
3487         * final.c (profile_function): Update static chain test.
3488         (final): Don't look at RTX_INTEGRATED_P.
3489         * flags.h (flag_mudflap, flag_mudflap_threads,
3490         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
3491         flag_tree_dce, flag_tree_combine_temps,
3492         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
3493         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
3494         flag_tree_points_to): Declare.
3495         (enum pta_type): Declare.
3496         * flow.c (lang_missing_noreturn_ok_p): Remove.
3497         (check_function_return_warnings): Remove.
3498         (update_life_info): Update comments.
3499         (free_basic_block_vars): Don't call VARRAY_FREE for
3500         basic_block_info.
3501         (regno_uninitialized): Remove.
3502         * fold-const.c (int_const_binop): Make extern.
3503         (non_lvalue): Rely on build to set TREE_CONSTANT.
3504         (operand_equal_p): Replace only_const argument with
3505         flags.  Allow pure functions if OEP_PURE_SAME.
3506         (fold): Use OEP_ONLY_CONST.
3507         (invert_truthvalue) <NOP_EXPR> Break if argument is of
3508         boolean type.
3509         (fold_relational_hi_lo,
3510         nondestructive_fold_binary_to_constant,
3511         nondestructive_fold_unary_to_constant,
3512         fold_read_from_constant_string): New.
3513         * function.c (struct function): Remove calls_constant_p.
3514         (current_function_calls_constant_p): Remove.
3515         (inline_function_decl): Remove.
3516         (put_var_into_stack): Don't use it.
3517         (fix_lexical_addr): Likewise.
3518         (inline_function_decl): Remove extern declaration.
3519         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
3520         (trampolines_created): Move to varasm.c.
3521         (free_after_compilation): Update for removed fields.
3522         (allocate_struct_function): Likewise.
3523         (delete_handlers, lookup_static_chain): Remove.
3524         (fix_lexical_addr): Don't consider non-local variable refs.
3525         (trampoline_address): Remove.
3526         (round_trampoline_addr): Move to builtins.c.
3527         (adjust_trampoline_addr): Remove.
3528         (expand_function_start): Update for changes to static chain
3529         and nonlocal goto handling.
3530         (initial_trampoline): Move to varasm.c.
3531         (expand_function_end): Don't build trampolines or kill
3532         unreferenced nonlocal goto labels.
3533         (free_after_compilation): Don't set it.
3534         (expand_function_end): Likewise.
3535         (setjmp_vars_warning): Rename from
3536         uninitialized_vars_warning, remove uninitialized vars warning.
3537         (uninitialized_vars_warning): Remove old comment
3538         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
3539         and do not call the langhook.
3540         (expand_function_start, expand_function_end): Don't do
3541         function instrumentation here.
3542         (clear_block_marks): Rename from reorder_blocks_0, export.
3543         (blocks_nreverse): Export.
3544         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
3545         of rtl.
3546         (reset_block_changes, record_block_change, finalize_block_changes,
3547         check_block_change, free_block_changes): New functions.
3548         (assign_parms): Setting of current_function_stdarg
3549         moved ...
3550         (allocate_struct_function): ... here.
3551         * function.h (struct function): Remove x_nonlocal_labels,
3552         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
3553         x_context_display, x_trampoline_list, needs_context.
3554         Add static_chain_decl, nonlocal_goto_save_area.
3555         (struct function): Remove x_clobber_return_insn.
3556         Add tail_call_emit field, last_label_uid,
3557         unexpanded_var_list, dont_emit_block_notes,
3558         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
3559         (clear_block_marks): Declare.
3560         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
3561         (mfwrap_spec, mflib_spec): Declare.
3562         (cpp_unique_options, cc1_options): Ditto.
3563         (default_compilers): Add .F and .f90.
3564         (static_specs): Add mfwrap and mflib.
3565         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
3566         CONSTANT_RTX_P.
3567         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
3568         Update to match insns field in struct edge_def.
3569         * gdbinit.in (pgs, pge): Define.
3570         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
3571         instead of the integrated flag.
3572         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
3573         * gengtype-yacc.y (bitfieldlen): Add empty action.
3574         (struct_fields): Accept unnamed bitfields.
3575         (bitfieldlen): Split from ...
3576         (bitfieldopt): ... here.
3577         * gengtype.c (ifiles): Add tree-alias-type.h and
3578         tree-flow.h.
3579         * genrecog.c (validate_pattern): Do not handle
3580         CONSTANT_P_RTX.
3581         * gimple-low.c: New file.
3582         * gimplify.c: New file.
3583         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
3584         (restore_line_notes): Do not set RTX_INTEGRATED_P.
3585         * ifcvt.c (dead_or_predicable): Initialize local variable
3586         'earliest'.
3587         * input.h (expr_wfl_stack): Remove.
3588         * integrate.c (INTEGRATE_THRESHOLD): Remove.
3589         (setup_initial_hard_reg_value_integration): Likewise.
3590         (initialize_for_inline): Likewise.
3591         (note_modified_parmregs): Likewise.
3592         (integrate_parm_decls): Likewise.
3593         (process_reg_param): Likewise.
3594         (save_parm_insns): Likewise.
3595         (copy_insn_list): Likewise.
3596         (copy_insn_notes): Likewise.
3597         (compare_blocks): Likewise.
3598         (find_block): Likewise.
3599         (inlining): Likewise.
3600         (function_cannot_inline_p): Likewise.
3601         (parmdecl_map): Likewise.
3602         (in_nonparam_insns): Likewise.
3603         (save_for_inline): Likewise.
3604         (FIXED_BASE_PLUS): Likewise.
3605         (expand_inline_function): Likewise.
3606         (copy_rtx_and_substitute): Don't look at map->integrating,
3607         map->inline_target, and inlining, since we are never copying
3608         for integrating.
3609         Don't abort on RTX_INTEGRATED_P.
3610         (old_fun): Remove.
3611         (output_inline_function): Remove.
3612         * integrate.h (struct inline_map): Remove fields integrating,
3613         block_map, leaf_reg_map, inline_target, and local_return_label.
3614         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
3615         copy_loop_headers, never_reached_warning): Removed.
3616         (any_uncondjump_p): Reject nonlocal goto.
3617         * langhooks-def.h (lhd_types_compatible_p,
3618         lhd_expand_decl, lhd_gimplify_expr): Declare.
3619         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3620         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3621         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3622         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3623         LANG_HOOKS_GIMPLIFY_EXPR,
3624         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
3625         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3626         LANG_HOOKS_GIMPLIFY_EXPR,
3627         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
3628         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
3629         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
3630         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3631         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
3632         LANG_HOOKS_DECL_UNINIT,
3633         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
3634         * langhooks.c: Include tree-simple.h.
3635         (lhd_expand_decl): New.
3636         (lhd_types_compatible_p): New.
3637         (lhd_decl_uninit): Remove.
3638         (lhd_gimplify_expr): New.
3639         * langhooks.h (struct lang_hooks_for_rtl_expansion):
3640         Remove.
3641         (struct lang_hooks_for_functions): Add field
3642         missing_noreturn_ok_p.
3643         (struct lang_hooks): Add field expand_decl,
3644         types_compatible_p, gimplify_expr and
3645         gimple_before_inlining.
3646         Remove fields decl_uninit and rtl_expand
3647         * opts.c (decode_options): Set flag_tree_ccp,
3648         flag_tree_dce, flag_tree_dom, flag_tree_dse,
3649         flag_tree_pre, flag_tree_ter,
3650         flag_tree_live_range_split, flag_tree_sra,
3651         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
3652         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
3653         OPT_fmudflapth, OPT_fmudflapir,
3654         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
3655         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
3656         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
3657         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
3658         OPT_ftree_points_to_ and OPT_ftree_pre.
3659         * output.h (regno_uninitialized, find_basic_blocks,
3660         cleanup_cfg, delete_unreachable_blocks,
3661         check_function_return_warnings): Remove.
3662         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
3663         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
3664         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
3665         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
3666         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
3667         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
3668         Define.
3669         * passes.c (rest_of_decl_compilation):
3670         (rest_of_handle_sibling_calls): Remove.
3671         (rest_of_handle_inlining): Remove.
3672         (rest_of_handle_gcse): Do not run
3673         purge_builtin_constant_p.
3674         (rest_of_compilation): Update.
3675         Do not call copy_loop_headers.
3676         Do rtl-based profiling only when
3677         !flag_tree_based_profiling.  Register rtl-based profiling
3678         hooks.
3679         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
3680         (predicted_by_p): Rename to ...
3681         (rtl_predicted_by_p): .. this one; make global
3682         (tree_predicted_by_p): New.
3683         (dump_prediction): Add FILE argument.
3684         (predict_edge): Rename to ...
3685         (rtl_predict_edge): .. this one.
3686         (tree_predict_edge): New.
3687         (combine_predictions_for_insn): Update calls of predict_edge.
3688         (predict_loops): Break out from ...
3689         (estimate_probability): ... here; update comments; move updating
3690         of unknown probabilities from ...
3691         (estimate_bb_frequencies): ... here.
3692         (combine_predictions_for_bb): New.
3693         (tree_predict_by_opcode): New.
3694         (tree_estimate_probability): New.
3695         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
3696         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
3697         * predict.h: Add include guard.
3698         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
3699         * pretty-print.c (pp_write_text_to_stream): Make extern.
3700         * pretty-print.h (pp_write_text_to_stream): Declare.
3701         * print-rtl.c (print_rtx): Don't print the integrated flag.
3702         Print the return_val flag.
3703         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
3704         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
3705         Remove support for EXPR_WITH_FILE_LOCATION nodes.
3706         (print_node): Print TREE_INVARIANT and TREE_VISITED.
3707         * profile.c: Include cfghooks.h, tree-flow.h.
3708         (profile_hooks): New.
3709         (profile_dump_file): New.
3710         (instrument_edges): Use hooks instead of RTL-specific code.
3711         (instrument_values): Ditto.
3712         (get_exec_counts): Ditto.
3713         (compute_branch_probabilities): Ditto.
3714         (compute_value_histograms): Ditto.
3715         (branch_prob): Ditto.
3716         (find_spanning_tree): Ditto.
3717         (end_branch_prob): Ditto.
3718         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
3719         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
3720         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
3721         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
3722         (tree_register_profile_hooks): New.
3723         (rtl_register_profile_hooks): New.
3724         * ra-rewrite.c (rewrite_program): Clear variable info.
3725         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
3726         * regs.h: Add include guards.
3727         * reload.c (decompose): Clear val using memset.
3728         * rtl.def (CONSTANT_P_RTX): Remove.
3729         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
3730         (copy_loop_headers): Remove.
3731         (struct rtx_def): Replace the integrated flag with the
3732         return_val flag.
3733         (maybe_set_first_label_num): Declare.
3734         (init_branch_prob): Move declaration to value-prof.h.
3735         (end_branch_prob): Ditto.
3736         (branch_prob): Ditto.
3737         (never_reached_warning): Don't declare it.
3738         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
3739         (hoist_insn_to_edge): Update to match field insns in
3740         struct edge_def.
3741         * sbitmap.c (sbitmap_realloc): New.
3742         * sbitmap.h (sbitmap_realloc): Declare.
3743         * sibcall.c: Remove file.
3744         * simplify-rtx.c (simplify_rtx): Do not handle
3745         CONSTANT_P_RTX.
3746         * stmt.c (parse_output_constraint): Don't warn for read-write
3747         memory operand.
3748         (tail_recursion_args): Use types_compatible_p langhook.
3749         (force_label_rtx): Don't look at inline_function_decl.
3750         (label_rtx): Set LABEL_PRESERVE_P appropriately.
3751         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
3752         (declare_nonlocal_label): Remove.
3753         (expand_goto): Don't handle nonlocal gotos.
3754         (expand_nl_handler_label): Remove.
3755         (expand_nl_goto_receivers): Remove.
3756         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
3757         update_nonlocal_goto_save_area.
3758         (expand_expr_stmt_value): Check TREE_NO_WARNING.
3759         (warn_if_unused_value): Likewise.
3760         (expand_start_loop, expand_loop_continue_here,
3761         expand_end_loop): Don't create loop notes.
3762         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
3763         mark_seen_cases, check_for_full_enumeration_handling): Remove.
3764         (expand_end_case_type): Don't do warn_switch handling.
3765         (pushcase, pushcase_range) Update add_case_node calls.
3766         (add_case_node): Add dont_expand_label argument.
3767         (same_case_target_p): Don't search rtl.
3768         (expand_start_bindings_and_block, expand_end_bindings):
3769         Don't emit block notes when dont_emit_block_notes.
3770         (using_eh_for_cleanups_p): Export.
3771         (expand_return): Allow any typed rhs.
3772         (expand_stack_alloc): New.
3773         (expand_stack_save, expand_stack_restore): New.
3774         (containing_blocks_have_cleanups_or_stack_level): New
3775         function.
3776         (asm_op_is_mem_input): New fn.
3777         (expand_asm_expr): New fn.
3778         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
3779         nodes.
3780         * stor-layout.c (layout_type): Just return if type is
3781         error_mark_node.
3782         (update_alignment_for_field): Export.
3783         (variable_size): We don't care about global_bindings_p if
3784         the frontend doesn't want a list of the expressions.
3785         * system.h: Poison INTEGRATE_THRESHOLD.
3786         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
3787         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
3788         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
3789         TV_TREE_SSA_OTHER, TV_TREE_OPS,
3790         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
3791         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
3792         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
3793         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
3794         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
3795         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
3796         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
3797         TV_CONTROL_DEPENDENCES): Define.
3798         * toplev.c: Include tree-alias-common.h
3799         (current_file_decl, flag_mudflap, flag_mudflap_threads,
3800         flag_mudflap_ignore_reads, flag_tree_based_profiling,
3801         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
3802         flag_tree_dce, flag_tree_ch, flag_tree_sra,
3803         flag_tree_combine_temps, flag_tree_ter,
3804         flag_tree_live_range_split, flag_tree_dom,
3805         flag_tree_copyrename, flag_tree_dse): Declare.
3806         (f_options): Add tree-based-profiling, tree-gvn,
3807         tree-pre, tree-ccp, tree-dce,
3808         tree-dominator-opts, tree-copyrename, tree-dse,
3809         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
3810         (wrapup_global_declarations): Don't output nested inlined functions.
3811         (general_init): Call init_tree_optimization_passes.
3812         (process_options): Sorry for -ftree-based-profiling plus
3813         -ftest-coverage or -fprofile-values.
3814         * toplev.h (init_tree_optimization_passes,
3815         flag_tree_based_profiling): Declare.
3816         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
3817         * tree-alias-ander.c: New file.
3818         * tree-alias-ander.h: New file.
3819         * tree-alias-common.c: New file.
3820         * tree-alias-common.h: New file.
3821         * tree-alias-type.c: New file.
3822         * tree-alias-type.h: New file.
3823         * tree-browser.c: New file.
3824         * tree-browser.def: New file.
3825         * tree-cfg.c: New file.
3826         * tree-complex.c: New file.
3827         * tree-dfa.c: New file.
3828         * tree-dump.c (dump_enable_all): New.
3829         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
3830         (dump_node): Remove const from field suffix and swtch.
3831         (dump_files): Add null entry, .generic, .nested, .vcg,
3832         .xml and a match-all entry.
3833         (extra_dump_files, extra_dump_files_in_use,
3834         extra_dump_files_alloced): Declare
3835         (dump_option_value_info): Add raw, details, stats,
3836         blocks, vops, lineno, uid and all.
3837         (dump_register): New.
3838         (get_dump_file_info): New.
3839         (dump_begin): Call it.
3840         Do nothing for TDI_none.
3841         (dump_begin): Include phase number in dump filename.
3842         (dump_enable_all): New.
3843         (dump_switch_p_1): Split out from dump_switch_p.
3844         (dump_switch_p): Handle extra_dump_files.
3845         Start our scan at TDI_none + 1.
3846         If -fdump-tree-all was given, call dump_enable_all.
3847         * tree-dump.h: Include splay-tree.h.
3848         (dump_function, dump_function_to_file, dump_register):
3849         Declare.
3850         * tree-eh.c: New file.
3851         * tree-flow-inline.h: New file.
3852         * tree-flow.h: New file.
3853         * tree-inline.c: Re-write to handle inlining on GIMPLE.
3854         * tree-inline.h (walk_tree,
3855         walk_tree_without_duplicates): Move to tree.h.
3856         (estimate_num_insns): Declare.
3857         * tree-into-ssa.c: New file.
3858         * tree-iterator.c: New file.
3859         * tree-iterator.h: New file.
3860         * tree-mudflap.c: New file.
3861         * tree-mudflap.h: New file.
3862         * tree-nested.c: New file.
3863         * tree-nomudflap.c: New file.
3864         * tree-nrv.c: New file.
3865         * tree-optimize.c (dump_flags, vars_to_rename,
3866         in_gimple_form, all_passes, pass_gimple,
3867         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
3868         (execute_gimple, execute_rebuild_bind,
3869         gate_all_optimizations, execute_del_cfg,
3870         register_one_dump_file, register_dump_files, dup_pass_1,
3871         init_tree_optimization_passes, execute_todo,
3872         execute_one_pass, execute_pass_list): New.
3873         (clear_decl_rtl): Remove.
3874         (tree_rest_of_compilation): Update to use tree
3875         optimizers.
3876         * tree-outof-ssa.c: New file.
3877         * tree-pass.h: New file.
3878         * tree-phinodes.c: New file.
3879         * tree-pretty-print.c: New file.
3880         * tree-profile.c: New file.
3881         * tree-simple.c: New file.
3882         * tree-simple.h: New file.
3883         * tree-sra.c: New file.
3884         * tree-ssa-alias.c: New file.
3885         * tree-ssa-ccp.c: New file.
3886         * tree-ssa-copy.c: New file.
3887         * tree-ssa-copyrename.c: New file.
3888         * tree-ssa-dce.c: New file.
3889         * tree-ssa-dom.c: New file.
3890         * tree-ssa-dse.c: New file.
3891         * tree-ssa-forwprop.c: New file.
3892         * tree-ssa-live.c: New file.
3893         * tree-ssa-live.h: New file.
3894         * tree-ssa-loop.c: New file.
3895         * tree-ssa-operands.c: New file.
3896         * tree-ssa-operands.h: New file.
3897         * tree-ssa-phiopt.c: New file.
3898         * tree-ssa-pre.c: New file.
3899         * tree-ssa.c: New file.
3900         * tree-ssanames.c: New file.
3901         * tree-tailcall.c: New file.
3902         * tree.c: Include tree-iterator.h, basic-block.h and
3903         tree-flow.h.
3904         (tree_node_kind): Add phi_nodes and ssa names.
3905         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
3906         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
3907         (make_node_stat): Handle PHI_NODE and SSA_NAME.
3908         <'c'> Set TREE_INVARIANT.
3909         (copy_node_stat): Abort if trying to copy a
3910         STATEMENT_LIST.
3911         Clear TREE_VISITED.
3912         Clear annotation field.
3913         (build_constructor): Copy TREE_INVARIANT from vals.
3914         Don't clear TREE_CONSTANT.
3915         (expr_first, expr_last, expr_length): Remove.
3916         (staticp): Pass unknown component references to the language.
3917         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
3918         (skip_simple_arithmetic): Likewise.
3919         (stabilize_reference_1): Likewise.
3920         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
3921         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
3922         STATEMENT_LIST.
3923         (lhd_unsave_expr_now): Remove.
3924         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
3925         (recompute_tree_invarant_for_addr_expr): New.
3926         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
3927         Call recompute_tree_invarant_for_addr_expr.
3928         Set TREE_INVARIANT accordingly.
3929         (build2_stat): Don't handle CALL_EXPR.
3930         (build3_stat): Don't call build2_stat for CALL_EXPRs.
3931         (build_expr_wfl): Remove.
3932         (annotate_with_file_line, annotate_with_locus): New.
3933         (simple_cst_equal): Call simple_cst_list_equal to compare
3934         CONSTRUCTOR_ELTS pointers.
3935         (iterative_hash_expr): Don't hash types associated
3936         with conversions.  Instead hash on the signedness of the
3937         toplevel object and the operand of the conversion.
3938         (dump_tree_statistics): Call ssanames_print_statistics
3939         and phinodes_print_statistics.
3940         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
3941         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
3942         needs_to_live_in_memory): New.
3943         (initializer_zerop): Handle VECTOR_CST.  Don't check
3944         AGGREGATE_TYPE_P for CONSTRUCTOR.
3945         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
3946         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
3947         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
3948         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
3949         (CALL_EXPR): Add another operand.
3950         (EXPR_WITH_FILE_LOCATION): Remove.
3951         (SWITCH_EXPR): Add another operand.
3952         * tree.h: Update various comments.
3953         (union tree_ann_d): Forward declare.
3954         (struct tree_common): Add fields nowarning_flag,
3955         invariant_flag and visited.
3956         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
3957         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
3958         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
3959         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
3960         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
3961         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
3962         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
3963         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
3964         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
3965         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
3966         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
3967         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
3968         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
3969         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
3970         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
3971         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
3972         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
3973         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
3974         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
3975         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
3976         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
3977         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
3978         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
3979         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
3980         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
3981         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
3982         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
3983         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
3984         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
3985         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
3986         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
3987         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
3988         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
3989         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
3990         TDF_UID,): Define.
3991         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
3992         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
3993         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
3994         EXPR_WFL_SET_LINECOL): Remove.
3995         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
3996         make_phi_node, init_phinodes, fini_phinodes,
3997         release_phi_node, phinodes_print_statistics,
3998         init_ssanames, fini_ssanames, make_ssa_name,
3999         release_ssa_name, ssanames_print_statistics,
4000         annotate_with_file_line, build_empty_stmt,
4001         annotate_with_locus, expr_only, categorize_ctor_elements,
4002         count_type_elements, add_var_to_bind_expr, is_essa_node,
4003         expand_stack_alloc, expand_stack_save,
4004         expand_stack_restore, add_case_node, operand_equal_p,
4005         nondestructive_fold_unary_to_constant,
4006         nondestructive_fold_binary_to_constant,
4007         fold_read_from_constant_string, int_const_binop,
4008         strip_float_extensions, simplify_builtin, c_strlen,
4009         recompute_tree_invarant_for_addr_expr,
4010         needs_to_live_in_memory, make_vector,
4011         setjmp_vars_warning, update_alignment_for_field,
4012         expand_asm_expr, asm_op_is_mem_input,
4013         containing_blocks_have_cleanups_or_stack_level,
4014         create_artificial_label, gimplify_function_tree,
4015         get_name, unshare_expr, walk_tree,
4016         walk_tree_without_duplicates, in_gimple_form): Declare.
4017         (struct tree_exp): Add fields locus and block.
4018         (struct tree_ssa_name, struct edge_def, struct
4019         tree_phi_node, struct tree_eref_common, struct
4020         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4021         union alias_var_def, struct tree_statement_list_node,
4022         struct tree_statement_list, enum operand_equal_flag): Declare.
4023         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4024         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4025         TS_STATEMENT_LIST.
4026         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4027         euse and stmt_list.
4028         (function_cannot_inline_p, uninitialized_vars_warning,
4029         save_for_inline, output_inline_function, all_cases_count,
4030         check_for_full_enumeration_handling,
4031         declare_nonlocal_label): Remove.
4032         (enum tree_dump_index): Add TDI_none, TDI_tu,
4033         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4034         * unroll.c (unroll_loop): Don't clear map->inline_target.
4035         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4036         function.
4037         * value-prof.c (value_prof_hooks): New.
4038         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4039         Move rtl-specific bits in from branch_prob.
4040         (value_profile_transformations): Rename to
4041         rtl_value_profile_transformations.
4042         (struct value_prof_hooks): New.
4043         (rtl_value_prof_hooks): New.
4044         (rtl_register_value_prof_hooks): New.
4045         (tree_find_values_to_profile): New stub.
4046         (tree_value_profile_transformations): New stub.
4047         (tree_value_prof_hooks): New stub.
4048         (tree_register_value_prof_hooks): New stub.
4049         (find_values_to_profile): New.
4050         (value_profile_transformations): New.
4051         * value-prof.h: Add multiple inclusion guard.
4052         (struct histogram_value): Change rtx fields to void *.
4053         (rtl_register_value_prof_hooks): New declaration.
4054         (tree_register_value_prof_hooks): New declaration.
4055         (find_values_to_profile): New declaration.
4056         (free_profiled_values): New declaration.
4057         (value_profile_transformations): New declaration.
4058         (struct profile_hooks): New declaration.
4059         (init_branch_prob): Declaration moved from rtl.h.
4060         (branch_prob): Declaration moved from rtl.h.
4061         (end_branch_prob): Declaration mooved from rtl.h.
4062         (tree_register_profile_hooks): New declaration.
4063         (rtl_register_profile_hooks): New declaration.
4064         (tree_profile_hooks): New declaration.
4065         (rtl_profile_hooks): New declaration.
4066         * varasm.c: Include tree-mudflap.h.
4067         (TRAMPOLINE_ALIGNMENT): Remove.
4068         (make_decl_rtl): Call mudflap_enqueue_decl.
4069         (assemble_static_space):
4070         (assemble_trampoline_template): Set and return
4071         TRAMPOLINE_ALIGNMENT.
4072         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4073         Add entry for 'tree *'.
4074         Add entry for struct edge_def *.
4075         (varray_copy): New.
4076         * varray.h (enum varray_data_enum): Add
4077         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4078         VARRAY_DATA_TREE_PTR.
4079         (union varray_data_tag): Corresponding changes.
4080         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4081         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4082         VARRAY_EDGE, VARRAY_TREE_PTR,
4083         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4084         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4085         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4086
4087         * config/*/*: Various updates for changed macros, tree
4088         codes, etc.  Check ChangeLog.tree-ssa.
4089
4090         * doc/cfg.texi: New file.
4091         * doc/tree-ssa.texi: New file.
4092         * doc/c-tree.texi: Document new codes.
4093         * doc/gccint.texi: Include new files.
4094         * doc/install.texi: Document new features.
4095         * doc/invoke.texi: Document new switches.
4096         * doc/passes.texi: Document new passes.
4097         * doc/rtl.texi: Update changed RTL codes.
4098         * doc/sourcebuild.texi: Update build instructions.
4099         * doc/standards.texi: Document Fortran changes.
4100         * doc/tm.texi: Update.
4101
4102 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4103
4104         Replace several arrays with a struct of arrays.
4105         * combine.c (struct reg_stat): New.
4106         (init_reg_last_arrays): Renamed to...
4107         (init_reg_last): ...this.  Callers adjusted.
4108         (reg_stat): New.
4109         (combine_instructions): Allocate it and use it.
4110         (reg_last_death, reg_last_set, reg_last_set_value,
4111         reg_last_set_label, reg_last_set_table_tick,
4112         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4113         reg_last_set_mode, reg_last_set_nonzero_bits,
4114         reg_last_set_sign_bit_copies): Replace throughout
4115         with items of reg_stat.
4116
4117 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4118
4119         PR optimization/15100
4120         * combine.c (distribute_notes): Don't create a dangling
4121         REG_LIBCALL/REG_RETVAL note.
4122
4123 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4124
4125         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4126
4127         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4128         negv2si2.
4129
4130 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4131
4132         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4133
4134 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4135
4136         * doc/gty.texi (GTY Options): Clarify example.
4137
4138 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4139
4140         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4141         Add const qualifier to altivec vector type if one is needed.
4142
4143 2004-05-11  Paul Brook  <paul@codesourcery.com>
4144
4145         * flags.h (flag_short_enums): Update comment.
4146         * opts.c (decode_options): Set flag_short_enums to 2.
4147         * toplev.c (flag_short_enums): Update comment.
4148         (process_options): Call default_short_enums target hook.
4149
4150 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
4151
4152         PR target/14063
4153         * config/rs6000/altivec.md (altivec_dssall):
4154         Change to unspec_volatile.
4155         (altivec_dss): Likewise.
4156
4157 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
4158
4159         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4160         vnor.
4161         ("one_cmplv8hi2"): Same.
4162         ("one_cmplv4si2"): Same.
4163
4164 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4165
4166         PR target/15130
4167         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4168         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4169         into account.  Compute the correct number of general registers
4170         for the return value.  Generate a special push/pop sequence when
4171         failing to get a temporary register for non SHmedia epilogue.
4172         (sh_expand_epilogue): Add an argument to show whether it's for
4173         sibcall or not.  Set the 3rd argument of output_stack_adjust to
4174         -1 if needed.
4175         (sh_need_epilogue): Call sh_expand_epilogue with 0.
4176         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4177         with 1.
4178         (epilogue): Call sh_expand_epilogue with 0.
4179
4180 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
4181
4182         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4183         goto a cleanup label.  After the cleanup, free the allocated memory.
4184
4185 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
4186
4187         * config/rs6000/altivec.h (vec_sld): Add overloads for
4188         argument/return types of 'vector bool int', 'vector bool short'
4189         and 'vector bool char'.
4190
4191 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
4192
4193         * c-decl.c (store_parm_decls_newstyle): Correct test for a
4194         nested function.
4195
4196 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
4197
4198         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4199         treating missing ones as "".
4200         * config/mips/mips.md: Remove constraints from match_operands and
4201         match_scratches if they appear in define_expands (except reload*),
4202         define_peephole2s, define_splits or attribute specifications.
4203         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4204         constraint strings.
4205
4206 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4207
4208         * config/rs6000/rs6000.c (function_arg_boundary): Always align
4209         AltiVec vectors.
4210         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4211         vectors by refererence.  Align the same for TARGET_64BIT to a 16
4212         byte boundary.  Remove useless code.  Add function comment.
4213         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
4214         call to where it belongs.
4215         (function_arg_partial_nregs): Return true for all TARGET_32BIT
4216         -mabi=no-altivec AltiVec vectors.  Fix debug output.
4217         (rs6000_va_arg): Adjust for AltiVec change.
4218
4219 2004-05-10  Paul Brook  <paul@codesourcery.com>
4220
4221         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4222         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4223         (TARGET_DOUBLEWORD_ALIGN): Use it.
4224         (WCHAR_TYPE): Define.
4225         (WCHAR_SIZE_TYPE): Define.
4226         (SIZE_TYPE): Define.
4227
4228 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4229
4230         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4231         when size is 8 bytes.
4232         (function_arg_advance): Account for stack space used by AltiVec
4233         args when -mabi=altivec.  Simplify alignment calculations.  For
4234         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4235         (function_arg): Similarly.
4236         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4237         not AltiVec ABI.
4238         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
4239         Correct alignment, and align before testing reg count.  Remove
4240         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
4241         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4242         TARGET_FPRS here..
4243         (rs6000_function_value): .. not here before call.
4244
4245 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4246
4247         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4248
4249 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
4250
4251         PR 15007
4252         * c-decl.c (current_file_decl): Rename to all_translation_units,
4253         adjust comment.
4254         (pop_scope): If popping file_scope, construct a
4255         TRANSLATION_UNIT_DECL and make it the context of all the
4256         symbols in the scope.
4257         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4258         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
4259         anything to current_file_decl.
4260         (pushdecl_top_level): Likewise.
4261         (store_parm_decls_newstyle): Adjust check for nested function.
4262         (c_write_global_declarations): Update for renamed variable.
4263
4264 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4265
4266         * config/rs6000/rs6000-protos.h
4267         (rs6000_conditional_register_usage): Protoize.
4268
4269         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4270
4271         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4272         function.
4273
4274 2004-05-08  Roger Sayle  <roger@eyesopen.com>
4275
4276         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4277         where op is a comparison operator and C1 and C2 are integer constants
4278         into a range check.
4279         (fold): Call fold_div_compare.
4280
4281 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4282
4283         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4284         problems with earlier versions of the GNU compiler.
4285
4286 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
4287
4288         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4289         Declare.
4290
4291         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4292         (rs6000_hard_regno_mode_ok): New.
4293         (rs6000_init_hard_regno_mode_ok): New.
4294         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4295
4296         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4297         result.
4298
4299 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
4300
4301         * config/rs6000/altivec.h (vector, pixel, bool): Do not
4302         define as macros #ifdef __APPLE_ALTIVEC__.
4303
4304 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
4305
4306         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4307         Generate appropriate parallels for vector arguments
4308         passed to vararg functions. (function_arg): make the call
4309         to rs6000_mixed_function_arg for vector args as needed.
4310
4311 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4312
4313         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4314         EABI_FLOAT_VARARGS_P.
4315
4316 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4317
4318         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4319         * config/mips/mips.c (override_options): Disable branch likely
4320         instructions if TUNE_MIPS5500.
4321
4322 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4323
4324         * config/mips/mips.c (override_options): Allow the hi and lo registers
4325         to store any integral mode, not just MODE_INTs.
4326
4327 2004-05-07  Paul Brook  <paul@codesourcery.com>
4328
4329         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4330         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4331         (TARGET_DOUBLEWORD_ALIGN): Use it.
4332         (WCHAR_TYPE): Define.
4333         (WCHAR_SIZE_TYPE): Define.
4334         (SIZE_TYPE): Define.
4335
4336 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4337
4338         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4339         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4340
4341 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
4342
4343         * loop-doloop.c (doloop_valid_p): Make sure that body
4344         gets freed.
4345
4346 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
4347
4348         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4349         declaration.
4350         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4351         (sparc_skip_caller_unimp): New global variable.
4352         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4353         Use it instead of SKIP_CALLERS_UNIMP_P.
4354         * config/sparc/sparc.md (call expander): Add sanity check.
4355         (call_address_struct_value_sp32): Re-sync with expander.
4356         (call_symbolic_struct_value_sp32): Likewise.
4357         (return peepholes): Use 'sparc_skip_caller_unimp' instead
4358         of custom predicate.
4359
4360 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4361
4362         PR c++/14962
4363         * c-pragma.c (handle_pragma_redefine_extname): Only change
4364         the assembler name of FUNCTION_DECLs and VAR_DECLs.
4365
4366 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4367
4368         * optabs.h (enum optab_index): Add new OTI_log1p.
4369         (log1p_optab): Define corresponding macro.
4370         * optabs.c (init_optabs): Initialize log1p_optab.
4371         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4372         patterns.
4373         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4374         using log1p_optab.
4375         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4376         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4377
4378         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4379
4380         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4381         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4382         Prototype here.
4383         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4384         x87's fyl2xp1 instruction.
4385         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4386         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4387         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4388         log1p  and log1pl built-ins as inline x87 intrinsics.
4389
4390 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
4391
4392         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4393         * config/arm/freebsd.h: Likewise.
4394         * config/ia64/freebsd.h: Likewise.
4395         * config/sparc/freebsd.h: Likewise.
4396
4397 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
4398
4399         PR optimization/15296
4400         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4401         getting last consecutive label at a branch.
4402         (relax_delay_slots): Similar, near top of loop.
4403
4404 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4405
4406         PR target/15202
4407         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4408         register to general register.
4409
4410 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
4411
4412         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4413         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4414         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4415         (STACK_BOUNDARY): Delete.
4416
4417 2004-05-06  Stuart Hastings  <stuart@apple.com>
4418
4419         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4420         mistakenly clobbered by 1.423.
4421
4422 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4423
4424         * doc/invoke.texi: Document -mvr4130-align.
4425         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4426         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4427         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4428         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4429         * config/mips/mips.md: Include sched-int.h.
4430         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4431         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4432         (override_options): Enable -mvr4130-align at -O3 and above.
4433         (mips_sim_insn): New variable.
4434         (mips_sim): New structure.
4435         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4436         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4437         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4438         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4439         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4440         (mips_reorg): Call vr4130_align_insns.
4441         (vr4130_last_insn): New variable.
4442         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4443         (vr4130_swap_insns_p, vr4130_reorder): New functions.
4444         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4445         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4446         (mips_use_dfa_pipeline_interface): Return true for the same.
4447         * config/mips/4130.md: New file.
4448         * config/mips/mips.md: Include it.  Add a peephole2 to convert
4449         "mult;mflo" into "mtlo;macc".
4450         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4451         target of maccs.
4452         (*msac_using_macc): New pattern.
4453
4454 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4455
4456         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
4457         (ir_vr55_hilo): Split into...
4458         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
4459         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
4460         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
4461         Add various multiplication bypasses.
4462         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
4463         multiplication.
4464
4465 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
4466
4467         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
4468         attribute to "XF".
4469
4470 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
4471
4472         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
4473         (fmod_optab, drem_optab): Define corresponding macros.
4474         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
4475         * genopinit.c (optabs): Implement fmod_optab and drem_optab
4476         using fmod?f3 and drem?f3 patterns.
4477         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
4478         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
4479         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
4480         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
4481         flag_unsafe_math_optimizations is set.
4482
4483         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
4484         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
4485
4486         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
4487         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
4488         Prototype here.
4489         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
4490         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
4491         fprem and fprem1 instructions.
4492         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
4493         Rename insn definition to x86_fnstsw_1.
4494         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
4495         x87 instructions.
4496         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
4497         and fmodl built-ins as inline x87 intrinsics.
4498         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
4499         and dreml built-ins as inline x87 intrinsics.
4500
4501 2004-05-05  Roger Sayle  <roger@eyesopen.com>
4502
4503         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
4504
4505 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
4506
4507         PR driver/9822
4508         * doc/invoke.texi (Spec Files): Remove documentation of %c.
4509
4510 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
4511
4512         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
4513         representation.
4514
4515 2004-05-06  Paul Brook  <paul@codesourcery.com>
4516
4517         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
4518         (arm_coproc_mem_operand): ... To this.
4519         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
4520         (arm_legitimate_index_p): Ditto.
4521         (vfp_mem_operand): Rename ...
4522         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
4523         (vfp_secondary_reload_class): Use it.
4524         (output_move_double): Use doubleword load/store instructions.
4525         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
4526         * config/arm/arm.h (TARGET_LDRD): Define.
4527         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
4528         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
4529         New splitter for invalid doubleword loads.
4530         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
4531         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
4532         * doc/md.texi: Document Uy constraint.
4533
4534 2004-05-05  Jan Hubicka  <jh@suse.cz>
4535
4536         PR opt/14980
4537         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
4538         inline clones.
4539
4540 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4541
4542         PR target/15290
4543         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
4544         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
4545
4546 2004-05-05  Mike Stump  <mrs@apple.com>
4547
4548         * config/darwin-c.c (add_framework): Copy the directory name as it
4549         can be freed later.  Also, ensure we always allocate enough room
4550         for the cached framework information.
4551         (find_subframework_header): Keep track of the directory where the
4552         subframework header was found.
4553         (framework_construct_pathname): Speed up by not trying to re-add a
4554         framework.
4555         * cppfiles.c (search_path_exhausted): Arrange for the missing
4556         header callback to be able to set the directory where the header
4557         was found.
4558         (cpp_get_dir): Add.
4559         * cpplib.h (missing_header_cb): Add a parameter.
4560         (cpp_get_dir): Add.
4561
4562 2004-05-03  Mike Stump  <mrs@apple.com>
4563
4564         * doc/invoke.texi (Directory Options): Document -iquote.
4565         * doc/cpp.texi: Likewise.
4566         * doc/cppopts.texi: Likewise.
4567         * c-opts.c (c_common_missing_argument): Add -iquote processing.
4568         (c_common_handle_option): Likewise.
4569         * c.opt (iquote): Add.
4570         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
4571         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
4572
4573         * c-opts.c (case OPT_I): Deprecate -I- support.
4574         * doc/invoke.texi: Likewise.
4575         * doc/cpp.texi: Likewise.
4576         * doc/cppopts.texi: Likewise.
4577
4578 2004-05-05  Steven Bosscher  <stevenb@suse.de>
4579
4580         * basic-block.h (free_basic_block_vars): Update prototype.
4581         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
4582         argument.
4583         (life_analysis): Update call.
4584         * ifcvt.c (if_convert): Likewise.
4585         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
4586         * passes.c (rest_of_handle_final): Likewise.
4587         (rest_of_compilation): Likewise.
4588         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4589
4590         * emit-rtl.c (next_real_insn): Use INSN_P.
4591         (prev_real_insn): Likewise.
4592
4593 2004-05-05  Eric Christopher  <echristo@redhat.com>
4594
4595         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
4596         representation.
4597
4598 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
4599
4600         * config/rs6000/rs6000.c (build_opaque_vector_type):
4601         New function.
4602         (rs6000_init_builtins): Use it.
4603
4604 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
4605
4606         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
4607         (func_table): Change type from char ** to vms_func_ref.
4608         (write_rtnbeg):  Update to reflect func_table change.  Use
4609         fde->funcdef_number instead of rtnnum in output.
4610         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
4611
4612 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4613             Richard Henderson  <rth@redhat.com>
4614
4615         PR target/14899
4616
4617         * c-common.c (vector_types_convertible_p): New function.
4618         * c-typeck.c (comptypes): Recurse on vector types.
4619         (convert_for_assignment): Use vector_types_convertible_p.
4620         (digest_init): Use vector_types_convertible_p to check
4621         validness of constant vector initializers; otherwise treat
4622         them as scalars.
4623         * tree.c (make_or_reuse_type): New.
4624         (build_common_tree_nodes): Use it.
4625         * cp/call.c (standard_conversion): Likewise.
4626         * cp/typeck.c (comptypes): Recurse on vector types.
4627         (convert_for_assignment): Use vector_types_convertible_p.
4628
4629 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
4630
4631         * config/mips/mips.c (override_options): Default to no
4632         generation of branch-likely operations when tuning for
4633         CPUs where they tend to have a negative performance impact
4634         (e.g., SB-1).
4635
4636 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4637
4638         * expr.c (store_constructor_field): Don't call store_constructor
4639         if bitsize is not a multiple of a byte.
4640
4641 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
4642
4643         * reload1.c (inherit_piecemeal_p): New function.
4644         (emit_reload_insns): When reloading a group of hard registers, use
4645         inherit_piecemeal_p to decide whether the values of individual hard
4646         registers can be inherited.
4647
4648 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4649
4650         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
4651         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
4652         * config/t-linux (LIB2ADDEHDEP): Likewise.
4653
4654 2004-05-04  Paul Brook  <paul@codesourcery.com>
4655
4656         * config/arm/crti.asm: Push an even number of registers.
4657         * config/arm/crtn.asm: And restore them.  Load via sp.
4658
4659 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4660
4661         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
4662         Collect overhead information.
4663         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
4664         parameter and pass it through.
4665         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
4666         MEM_STAT_DECL parameter and pass it through.
4667         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
4668         MEM_STAT_DECL parameter and pass it through.
4669
4670 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4671
4672         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
4673
4674         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
4675
4676         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
4677         rs6000_hard_regno_nregs.
4678
4679 2004-05-03  Eric Christopher  <echristo@redhat.com>
4680
4681         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
4682         prologue insn instead of setting up call.
4683         (s390_emit_epilogue): Ditto.
4684         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
4685         (define_constants): Add numbers for above patterns.
4686
4687 2004-05-03  Eric Christopher  <echristo@redhat.com>
4688
4689         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
4690         * config/s390/s390.c (s390_conditional_register_usage): ...here.
4691         * config/s390/s390-protos.h: Prototype.
4692
4693 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
4694
4695         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
4696         assignment.
4697
4698 2004-05-03  Eric Christopher  <echristo@redhat.com>
4699
4700         * config/mips/mips.md: Fix branch length attribute definition.
4701
4702 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4703
4704         * config.gcc: Remove --enable-altivec support.
4705
4706         * config/rs6000/altivec-defs.h: Remove.
4707
4708 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4709
4710         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
4711         * fixinc/fixincl.x: Regenerate.
4712
4713 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4714
4715         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
4716         definition.
4717         (log?f2, log10?f2, log2?f2): Reimplement expanders with
4718         float_truncate insn.
4719         (*fxtractsf3, *fxtractdf3): Remove insn definition.
4720         (logb?f2): Reimplement expanders with float_truncate insn.
4721
4722 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
4723
4724         PR 14718
4725         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
4726         force_type_die for CONST_DECL.
4727
4728 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4729             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4730
4731         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
4732         tm-dwarf2.h to tm_file.
4733         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
4734         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
4735         (ASM_DEBUG_SPEC): Delete.
4736
4737 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4738
4739         * optabs.h (enum optab_index): Add new OTI_expm1.
4740         (expm1_optab): Define corresponding macro.
4741         * optabs.c (init_optabs): Initialize expm1_optab.
4742         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
4743         patterns.
4744         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
4745         using expm1_optab.
4746         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
4747         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4748
4749         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
4750         to implement expm1, expm1f and expm1l built-ins as inline x87
4751         intrinsics.
4752
4753 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
4754
4755         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
4756         * config/frv/frv.md (*return_true, *return_false): New patterns.
4757
4758 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
4759
4760         * rtl.h (PHI_NODE_P): Remove.
4761
4762 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
4763
4764         PR middle-end/14988
4765         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
4766         when passed -2 as 'align'.
4767         (put_var_into_stack): Use 'bool' as the type for the three local
4768         predicates.  Adjust calls to put_reg_into_stack.
4769         When passed a CONCAT, instruct put_reg_into_stack to use
4770         a consecutive stack slot for the second part.
4771         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
4772         'consecutive_p' parameter.  Turn the three predicates into 'bool'
4773         parameters.  Retrieve the register mode from 'reg'.
4774         When consecutive_p is true, instruct assign_stack_local_1 to use
4775         BITS_PER_UNIT alignment.
4776         (put_addressof_into_stack): Use 'bool' as the type for the two
4777         local predicates. Adjust call to put_reg_into_stack.
4778
4779 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4780
4781         * fold-const.c (fold_convert_const, fold): Add missing
4782         FIX_ROUND_EXPR case.
4783
4784 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
4785
4786         * configure.ac (FLEX, BISON): Only use tools from the build tree
4787         if build equals host.
4788         * configure: Rebuilt.
4789
4790         * config/frv/frv-protos.h (frv_expand_epilogue,
4791         frv_expand_fdpic_call): Add bool argument.
4792         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
4793         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
4794         (frv_expand_epilogue): Use new argument to decide whether to emit
4795         return instruction or copy the return address to LR.
4796         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
4797         sibcalls.
4798         (sibcall_operand): New.
4799         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
4800         PLUS nor LABEL_REF.  Add sibcall_operand.
4801         * config/frv/frv.md (call, call_value): Pass false to
4802         frv_expand_fdpic_call.
4803         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
4804         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
4805         sibcall_value_internal, sibcall_value_fdpicdi): New.
4806         (return_unsigned_true, return_unsigned_false): New.
4807         (epilogue): Adjust call to frv_expand_epilogue.
4808         (sibcall_epilogue): New.
4809
4810         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
4811         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
4812         before redefining them.
4813
4814 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4815
4816         * builtins.c (fold_fixed_mathfn): New function.
4817         (fold_builtin_lround, fold_builtin): Use it.
4818
4819 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
4820
4821         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
4822         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
4823
4824 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
4825
4826         * config/cris/cris.h: Revert my "fix comment typos" patch.
4827
4828 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
4829
4830         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
4831
4832 2004-05-01  Falk Hueffner  <falk@debian.org>
4833
4834         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
4835         builtin_insll): Disallow 0 as first input operand.
4836
4837 2004-05-01  Falk Hueffner  <falk@debian.org>
4838
4839         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
4840
4841 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
4842
4843         PR middle-end/15054
4844         * expr.c (expand_expr_real): Do not call preserve_temp_slots
4845         on a TARGET_EXPR temp.
4846         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
4847         TARGET_EXPR temp slots.
4848
4849 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
4850
4851         * simplify-rtx.c (simplify_ternary_operation): When
4852         converting an IF_THEN_ELSE to a relational op, return
4853         correct mode.
4854
4855 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4856
4857         * builtins.c (fold_builtin_round): Fix comment typo.
4858         (fold_builtin_lround): New function.
4859         (fold_builtin): Use it.
4860
4861 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
4862
4863         PR target/11608
4864         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
4865         more like the one in config/dbxelf.h.
4866
4867 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
4868
4869         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
4870         and adjust definition accordingly.
4871         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
4872         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
4873         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
4874         VECTOR_TYPE.
4875
4876 2004-04-30  Jason Merrill  <jason@redhat.com>
4877
4878         PR c++/14587
4879         * config/i386/winnt.c (associated_type): Look for attributes on
4880         the TYPE_MAIN_VARIANT of *this.
4881         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
4882         apply the attributes to the variants.
4883
4884 2004-04-30  Paul Brook  <paul@codesourcery.com>
4885
4886         * config.gcc: Simplify arm --with-{cpu,tune} test.
4887         * config/arm/arm-cores.def: Document whitespace restrictions.
4888
4889 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4890
4891         PR other/1963
4892         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
4893
4894 2004-04-30  Brian Ford  <ford@vss.fsi.com>
4895             DJ Delorie  <dj@redhat.com>
4896
4897         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4898         (DWARF2_DEBUGGING_INFO): Define to enable.
4899         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
4900         DWARF2.
4901         * configure.ac (Target-specific assembler checks)
4902         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
4903         relocs.
4904         * configure: Regenerate.
4905         * config.in: Likewise.
4906
4907         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4908         (ASM_OUPUT_DWARF_OFFSET): Define.
4909
4910 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
4911
4912         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
4913         (s390_emit_call): New function prototype added.
4914         (s390_tls_get_offset): Function removed.
4915         * config/s390/s390.c (s390_function_ok_for_sibcall,
4916         s390_call_saved_register_used_p): New functions.
4917         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
4918         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
4919         (s390_emit_tls_call_insn): New function.
4920         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
4921         emit_call_insn.
4922         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
4923         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
4924         added.
4925         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
4926         register number used to hold the target address for sibcalls.
4927         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
4928         New expanders.
4929         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
4930         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
4931         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
4932         Expanders removed.
4933         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
4934         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
4935         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
4936         ("epilogue"): Changed the call to s390_emit_epilogue to use the
4937         new parameter.
4938
4939 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
4940
4941         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
4942         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
4943         reg-stack.c, varasm.c, config/alpha/ev4.md,
4944         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
4945         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
4946         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
4947         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
4948         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
4949         config/ia64/itanium2.md, config/ip2k/ip2k.c,
4950         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
4951         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
4952         comment typos.
4953
4954 2004-04-30  Paul Brook  <paul@codesourcery.com>
4955
4956         * config.gcc: Default ep9312 to hard-float.
4957         * config/arm/arm-cores.def: Add ARCH field.
4958         * config/arm/arm.c (FL_FOR_ARCH*): Define.
4959         (arm_arch_cirrus): New variable.
4960         (all_cores): Set and use arch.
4961         (all_architectures): Ditto.
4962         (arm_arch_name): New variable.
4963         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
4964         Set and use arm_arch_cirrus.
4965         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
4966         (enum processor_type): Update ARM_CORE define.
4967         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
4968         (CPP_SPEC): Remove %(cpp_cpu_arch).
4969         (CPP_ARCH_DEFAULT_SPEC): Remove.
4970         (CPP_CPU_ARCH_SPEC): Remove.
4971         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
4972         (FPUTYPE_DEFAULT): Don't define here.
4973
4974 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
4975
4976         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
4977         updates too.
4978
4979 2004-04-30  Paul Brook  <paul@codesourcery.com>
4980
4981         * arm.c (arm_needs_doubleword_align): Use mode alignment.
4982
4983 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
4984
4985         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
4986         vec_sububs.
4987         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
4988         duplicates.
4989
4990 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
4991
4992         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
4993         atan2?f3 expanders.
4994
4995 2004-04-29  Nick Clifton  <nickc@redhat.com>
4996
4997         Bug 14093
4998         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
4999         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5000         Delete static from definition.
5001         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5002
5003 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5004
5005         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5006         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5007         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5008         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5009
5010 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5011
5012         * commom.opt (Wfatal-errors): Add it.
5013         * diagnostic.c (flag_fatal_errors): Define it.
5014         (diagnostic_action_after_output): Check for flag_fatal_errors.
5015         * flags.h (flag_fatal_errors): Declare it.
5016         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5017         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5018
5019 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5020
5021         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5022         blocks which have kill flag set.
5023
5024 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5025
5026         * configure.ac (--with-as): Abort if user-supplied assembler
5027         cannot be executed.
5028         (--with-ld): Likewise for the linker.
5029         * configure: Regenerate.
5030
5031 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5032
5033         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5034         isn't NULL before using it.
5035
5036 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5037
5038         PR target/15189
5039         * config/mips/mips.md (load_df_low): Use default length.
5040         (load_df_high, store_df_high): Likewise.
5041
5042 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5043
5044         * config/mips/mips.md, config/mips/sb1.md,
5045         config/rs6000/rs6000.c: Fix comment typos.
5046
5047 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5048
5049         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5050         Fix comment typos.
5051
5052 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5053
5054         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5055         (delete_if_ordinary): Use above macro.
5056         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5057         Update copyright.
5058         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5059
5060 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5061
5062         * c-decl.c (get_parm_info): Use the correct tag keywords when
5063         warning about type declarations in prototypes.
5064
5065 2004-04-29  Paul Brook  <paul@codesourcery.com>
5066
5067         * config.gcc: Pull list of cores from arm-cores.def.
5068
5069 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5070
5071         * combine.c (combine_simplify_rtx): Adjust call to use
5072         simplify_relational_operation.  Do not use SELECT_CC_MODE
5073         when a comparison already has a MODE_CC mode.
5074
5075 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5076
5077         (simplify_set): simplify_relational_operation may now
5078         return another relational expression.
5079         * cse.c (fold_rtx): simplify_relational_operation now
5080         takes of computing the comparison mode.
5081         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5082         remove dead code.
5083         (do_compare_rtx_and_jump): Likewise.
5084         * integrate.c (subst_constants): simplify_relational_operation
5085         may now return another relational expression.
5086         * simplify-rtx.c (simplify_gen_relational): Move most code to
5087         the new simplify_relational_operation and
5088         simplify_relational_operation_1 functions.
5089         (simplify_relational_operation): Rewritten.
5090         (simplify_relational_operation_1): New function.
5091         (simplify_ternary_operation): simplify_relational_operation
5092         may now return another relational expression.
5093         (simplify_rtx): Remove unnecessary temp variable.
5094
5095 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5096
5097         * reg-stack.c (swap_to_top): New function.
5098         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5099         swap_to_top().
5100         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5101         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5102         UNSPEC_FSCALE_EXP.
5103
5104         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5105         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5106         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5107         x87's fscale insn.
5108         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5109         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5110         patterns.
5111
5112 2004-04-28  Serge Belyshev  <1319@bot.ru>
5113
5114         PR 14944
5115         * coverage.c (read_counts_file): Fix usage of warning () call.
5116         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5117
5118 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5119
5120         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5121         options with "-" in the option index.
5122         (SPARC Options): Likewise.
5123         (M32R/D Options): Likewise.
5124
5125 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5126
5127         * convert.c (convert_to_integer): Convert (long)round -> lround,
5128         etc.
5129
5130 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5131
5132         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5133         Return false if we do not have fp register.
5134         (addrs_ok_for_quad_peep): Rename to ...
5135         (mems_ok_for_quad_peep): this.
5136         Add check for volatile memory.
5137         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5138         Rename to ...
5139         (mems_ok_for_quad_peep): this.
5140         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5141         to peephole2's.
5142         (lfq_power2): New instruction.
5143         (stfq_power2): Likewise.
5144
5145 2004-04-28  Jan Hubicka  <jh@suse.cz>
5146
5147         PR c/15004
5148         * function.c (do_warn_unused_parameter): Break out form ...
5149         (expand_function_end): ... here; warn only when not using cgraphunit.
5150         * function.h (do_warn_unused_parameter): Declare.
5151         * cgraphunit.c: Include function.h.
5152         (cgraph_finalize_function): Do unused parameter warning.
5153         * Makefile.in (cgraphunit.o): Depend on function.h
5154
5155 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5156
5157         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5158         calling install-info on $(DESTDIR)$(infodir)/dir already being
5159         present.
5160
5161 2004-04-28  Paul Brook  <paul@codesourcery.com>
5162
5163         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5164
5165 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5166
5167         * gcse.c (find_moveable_store): Do not accept store insns with
5168         REG_EH_REGION note.
5169
5170 2004-04-28  Paul Brook  <paul@codesourcery.com>
5171
5172         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5173         * function.c (assign_temp): Ditto.
5174         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5175
5176 2004-04-28  Paul Brook  <paul@codesourcery.com>
5177
5178         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5179
5180 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
5181
5182         * var-tracking.c (variable_different_p): Add a parameter
5183         compare_current_location, compare current location of variable parts
5184         if it is true.
5185         (dataflow_set_different_1): Pass compare_current_location == false.
5186         (dataflow_set_different_2): Pass compare_current_location == false.
5187         (emit_notes_for_differences_1): Pass compare_current_location == true.
5188
5189 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5190
5191         * config/s390/s390.md ("casesi"): Mark jump table access as
5192         non-trapping and unchanging.
5193
5194 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5195
5196         PR debug/14829
5197         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
5198         callers.
5199         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5200         number for indexing hard_regno_nregs array.
5201
5202 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
5203
5204         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5205         * config/darwin-crt2.c: Only have contents on __ppc__.
5206
5207 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
5208
5209         * config/xtensa/xtensa.c (call_insn_operand): Check
5210         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5211         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5212         * config/xtensa/xtensa.md (call, call_value): Likewise.
5213
5214 2004-04-27  Wu Yongwei  <adah@sh163.net>
5215
5216         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5217         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5218         (__gthread_mutex_init_function): Replace CreateMutex with
5219         initialization of custom mutex using CreateSemaphore.
5220         (__gthread_mutex_lock): Use InterlockedIncrement.
5221         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5222         (__gthread_mutex_unlock): Use InterlockedDecrement and
5223         ReleaseSemaphore to unlock
5224         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5225         __gthread_mutex_lock, __gthread_mutex_trylock,
5226         __gthread_mutex_unlock): Adjust to match inline versions in
5227         gthr-win32.h.
5228
5229 2004-04-27  Paul Brook  <paul@codesourcery.com>
5230
5231         * config/arm/arm.c (arm_promote_prototypes): New function.
5232         (TARGET_PROMOTE_PROTOTYPES): Use it.
5233
5234 2004-04-27  Paul Brook  <paul@codesourcery.com>
5235
5236         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5237
5238 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
5239
5240         * config/alpha.c (alpha_end_function): For OpenVMS gas,
5241         correctly output .pdesc directive before .end.
5242
5243 2004-04-26  James E Wilson  <wilson@specifixinc.com>
5244
5245         Bug 14927
5246         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
5247         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
5248
5249 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
5250
5251         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5252         * config/pa/pa-hpux10.h: Likewise.
5253         * config/pa/pa-hpux11.h: Likewise.
5254
5255 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
5256
5257         * doc/invoke.texi (Overall Options): Document default for -o
5258         for PCH files.
5259
5260 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5261
5262         * builtins.c (expand_builtin_update_setjmp_buf): New function.
5263         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5264         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5265
5266 2004-04-26  Paul Brook  <paul@codesourcery.com>
5267
5268         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5269
5270 2004-04-26  Paul Brook  <paul@codesourcery.com>
5271
5272         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5273
5274 2004-04-25  Roger Sayle  <roger@eyesopen.com>
5275
5276         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5277         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
5278         X % -1 as 0.
5279
5280 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
5281
5282         PR bootstrap/15141
5283         * except.c (connect_post_landing_pads): Delete insns after the
5284         barrier when generating a unwind_resume_libfunc call.
5285
5286 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5287
5288         PR/c++ 15119
5289         * tree.c (substitute_placeholder_in_expr, case 4): New case,
5290         for TARGET_EXPR.
5291
5292 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5293
5294         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5295         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5296         inhibit_libc is defined.
5297
5298 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
5299
5300         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5301         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5302         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5303         (TARGET_SCHED_VARIABLE_ISSUE): Define.
5304         (mips_adjust_cost): Move later in file, next to other sched hooks.
5305         (mips_macc_chains_last_hilo): New variable.
5306         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5307         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5308         * config/mips/mips.md (may_clobber_hilo): New attribute.
5309
5310 2004-04-24  Roger Sayle  <roger@eyesopen.com>
5311             Bruce Korb  <bkorb@gnu.org>
5312
5313         * fixinc/inclhack.def (aix_syswait_2): New fix.
5314         * fixinc/fixincl.x: Regenerate.
5315         * fixinc/tests/base/sys/wait.h: Update for new test.
5316
5317 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
5318
5319         PR target/14960
5320         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5321         to non_fixed_size, and leave out fixed_size from the sum.
5322         (generate_set_vrsave): Correct clobbers.
5323         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5324         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5325         (rs6000_libcall_value): Likewise.
5326         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5327         (FUNCTION_ARG_REGNO_P): Likewise.
5328
5329 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5330
5331         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5332         is a CONST_INT.
5333         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5334         with NARROW_OP1 instead of OP1.
5335
5336 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5337
5338         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5339         and __s390x__ hosts.
5340
5341 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5342
5343         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5344         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5345         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5346         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5347         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5348         * builtins.c (expand_builtin_fork_or_exec): New.
5349         (expand_builtin): Call it.
5350         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5351         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5352         * c-common.c (PID_TYPE): New macro.
5353         (c_common_nodes_and_builtins): Initialize pid_type_node.
5354         * calls.c (special_function_p): Do not handle fork and exec.
5355         (expand_call): Do not handle ECF_FORK_OR_EXEC.
5356         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5357         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5358         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5359         __gcov_execv, __gcov_execvp, __gcov_execve): New.
5360         * tree.h (enum tree_index): Add TI_PID_TYPE.
5361         (pid_type_node): New macro.
5362         (ECF_FORK_OR_EXEC): Removed.
5363
5364 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5365
5366         PR optimization/13985
5367         * cfgloopmanip.c (fix_loop_placements): New prototype.
5368         Call fix_bb_placements on the preheader of loops that have
5369         been reparented.
5370         (remove_path): Adjust call to fix_loop_placements.
5371
5372 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
5373
5374         * config/darwin7.h: New file.
5375         * config.gcc (*-*-darwin*): Add darwin7.h if the
5376         version is greater than 6.
5377         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5378         (MATH_LIBRARY): Wrap in ifdefs.
5379
5380 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
5381
5382         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5383         loading iWMMXt registers with a frame pointer.  Use post-increment
5384         without a frame pointer.
5385         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5386
5387 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
5388
5389         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5390         mode" rather than "-funit-at-a-time" since -O2 enables it
5391         without requiring -f* options.  Refer to -fprofile-generate and
5392         -fprofile-use correctly.  Move -funit-at-a-time among options
5393         enabled by -O.  Add information about unit-at-a-time caveats.
5394
5395 2004-04-22  Per Bothner  <per@bothner.com>
5396
5397         * line-map.h (struct line_maps):  New field highest_line.
5398         (linemap_position_for_column):  Make non-inline function.
5399         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
5400         * line-map.c (linemap_init):  Clear highest_line field.
5401         (linemap_add):  Set highest_line field.
5402         (linemap_line_start):  Minor optimization - use highest_line field.
5403         Reduce maximum column hint to 10000.  Update highest_line field.
5404         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
5405         * cpphash.h (struct cpp_reader):  Remove line field - instead use
5406         line_table->highest_line.
5407         (saved_line):  Remove unused field.
5408         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
5409         Use  line_table's highest_line field instead of cpp_reader's line.
5410         * cpplib.c (start_directive):  Likewise use highest_line field.
5411         (do_line, do_linemarker):  Likewise just use newest map.
5412         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
5413         * cpperror.c (cpp_error):  Likewise use highest_line field.
5414         * cppfiles.c (open_file_failed:  Likewise.
5415         (cpp_make_system_header):  Likewise use newest map and highest_line.
5416         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
5417         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5418         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5419         _cpp_lex_direct):  Likewise use highest_line.
5420         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
5421         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
5422         and use newest map.
5423         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
5424         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
5425         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
5426
5427 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
5428
5429         PR bootstrap/14992
5430         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5431         * config/linux.h (USE_LD_AS_NEEDED): Define.
5432         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5433         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5434         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5435         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5436         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5437         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5438         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5439
5440 2004-04-22  Per Bothner  <per@bothner.com>
5441
5442         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
5443         Fixes PR preprocessor/15067.
5444
5445 2004-04-23  Andreas Schwab  <schwab@suse.de>
5446
5447         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5448         avoid aliasing warning.
5449
5450 2004-04-22  Jan Hubicka  <jh@suse.cz>
5451             Mostafa Hagog <mustafa@il.ibm.com>
5452
5453       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5454       * cfgloopanal.c (expected_loop_iterations): Change the return value
5455
5456 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
5457
5458         * cselib.h (struct elt_loc_list): Remove canon_loc field.
5459         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
5460         (cselib_invalidate_mem): Remove all canon_loc and canon_x
5461         traces.
5462
5463 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
5464
5465         Revert
5466         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5467
5468                 * var-tracking.c (variable_part_different_p): Variable parts
5469                 differ when the most recent locations differ.
5470
5471 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
5472
5473         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
5474         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
5475         (embedded_pic_offset): Delete.
5476         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
5477         MASK_* constants.
5478         (TARGET_EMBEDDED_PIC): Delete.
5479         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
5480         (ASM_SPEC): Remove -membedded-pic.
5481         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
5482         (ASM_OUTPUT_CASE_LABEL): Likewise.
5483         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
5484         * config/mips/windiss.h (ASM_SPEC): Likewise.
5485         * config/mips/mips.c (struct machine_function): Remove
5486         embedded_pic_fnaddr_rtx.
5487         (TARGET_ENCODE_SECTION_INFO): Remove override.
5488         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
5489         (override_options): Remove -membedded-pic handling.
5490         (print_operand): Remove handling of '%S'.
5491         (mips_select_section: Remove -membedded-pic handling.
5492         (mips_encode_section_info): Delete.
5493         (mips_output_conditional_branch): Remove mention of -membedded-pic.
5494         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
5495         -membedded-pic handling.
5496         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
5497
5498 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
5499
5500         * var-tracking.c (frame_base_decl): Remove useless GTY.
5501
5502 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
5503
5504         * config/rs6000/rs6000.c (rs6000_override_options): Error when
5505         user wants altivec and e500 instructions.
5506
5507 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
5508
5509         PR target/14813
5510         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
5511         in .init_array section to ...
5512         * config/ia64/crtbegin.asm: Here.
5513
5514         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
5515         and hidden if HAVE_INITFINI_ARRAY is defined.
5516
5517 2004-04-21  James E Wilson  <wilson@specifixinc.com>
5518
5519         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
5520         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
5521         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
5522         (fp_register_operand, lo_operand): New.
5523         (mips_rtx_costs): Add TUNE_SB1 support.
5524         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
5525         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
5526         (mips_multipass_dfa_lookahead): New.
5527         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
5528         TUNE_SB1): New.
5529         (TARGET_SWITCHES): Add -mfp-exceptions support.
5530         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
5531         (BRANCH_COST): Fix whitespace.
5532         * config/mips/mips.md: Include sb1.md.
5533         * config/mips/sb1.md: New file.
5534         * doc/invoke.texi: Document -mfp-exceptions.
5535
5536         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
5537         comment.
5538         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
5539         (fixincl.o-warn): Delete.
5540
5541 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5542
5543         * config/rs6000/rs6000 (print_operand) ['z']:
5544         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
5545
5546 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
5547
5548         * config.gcc: Support --with-arch=iwmmxt for ARM.
5549
5550 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5551
5552         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
5553         in two more places; remove unneeded force_reg
5554
5555 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5556
5557         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
5558         for TARGET_MACHO.
5559         (print_operand): For TARGET_MACHO check to see if we need a stub
5560         and output one if we need it.
5561
5562         PR debug/15033
5563         * dwarf2out.c (rtl_for_decl_location): Check for NULL
5564         rtl.
5565
5566 2004-04-20  James E Wilson  <wilson@specifixinc.com>
5567
5568         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
5569         (vall_value_gp): Likewise.
5570
5571 2004-04-20  DJ Delorie  <dj@redhat.com>
5572
5573         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
5574         variables stored in word registers, then in memory.
5575
5576 2004-04-20  Eric Christopher  <echristo@redhat.com>
5577
5578         * cp/parser.c (cp_parser_declaration): Move translate
5579         up before tokens are lexed.
5580
5581 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
5582
5583         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
5584         (asin_optab, acos_optab): Define corresponding macros.
5585         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
5586         * genopinit.c (optabs): Implement asin_optab and acos_optab
5587         using asin?f2 and acos?f2 patterns.
5588         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
5589         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
5590         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
5591         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5592
5593         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
5594         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
5595         acos, acosf and acosl built-ins as inline x87 intrinsics.
5596
5597 2004-04-20  Paul Brook  <paul@codesourcery.com>
5598
5599         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
5600
5601 2004-04-20  Paul Brook  <paul@codesourcery.com>
5602
5603         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
5604
5605 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
5606
5607         Revert part of 2004-04-17 change that moved -frename-registers
5608         to -O1.  -frename-registers is buggy.
5609
5610         * toplev.c (flag_rename_registers): Initialize to 0.
5611         * doc/invoke.texi (Optimize options): Move -frename-registers
5612         to "Not triggered by any -O level" section.  Adjust commentary
5613         accordingly.
5614
5615 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
5616
5617         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
5618
5619 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
5620
5621         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
5622         for mflo and mfhi instructions.
5623         (mips_output_move): Remove mflo and mfhi handling.
5624         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
5625         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
5626         Likewise various define_peephole2s.
5627         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
5628         alternatives.
5629         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
5630         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
5631         (mfhilo_di, mfhilo_si): New patterns.
5632
5633 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5634
5635         * function.c (assign_parms): Force
5636         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
5637
5638 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5639
5640         * var-tracking.c (variable_part_different_p): Variable parts differ
5641         when the most recent locations differ.
5642
5643 2004-04-19  James E Wilson  <wilson@specifixinc.com>
5644
5645         * rtl.h (reg_set_last): Delete declaration.
5646         * rtlanal.c (reg_set_last): Delete.
5647
5648 2004-04-19  Roger Sayle  <roger@eyesopen.com>
5649
5650         * fold-const.c (fold_convert): Make function extern/public.
5651         * tree.h (fold_convert): Prototype here.
5652         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
5653         expand_builtin_strrchr, expand_builtin_strpbrk,
5654         expand_builtin_mempcpy, expand_builtin_bcopy,
5655         expand_builtin_bzero, expand_builtin_memcmp,
5656         expand_builtin_strcmp, expand_builtin_strncmp,
5657         stabilize_va_list, expand_builtin_sprintf,
5658         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
5659         fold_builtin_exponent, fold_builtin_mempcpy,
5660         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
5661         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
5662         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
5663
5664 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
5665
5666         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
5667         (move_from_CR_gt_bit): New.
5668         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
5669         E500.
5670         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
5671         E500.
5672
5673         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
5674         (tstsfeq_gpr): Same.
5675         (cmpsfgt_gpr): Same.
5676         (tstsfgt_gpr): Same.
5677         (cmpsflt_gpr): Same.
5678         (tstsflt_gpr): Same.
5679         (e500_cceq_ior_compare): New.
5680         (e500_flip_gt_bit): New.
5681
5682         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
5683         (print_operand): Add 'c' and 'D'.
5684         (rs6000_generate_compare): Rewrite to generate correct rtl.
5685         (rs6000_emit_sCOND): Handle E500.
5686         (output_cbranch): Adjust for changes in rs6000_generate_compare.
5687         (output_e500_flip_gt_bit): New.
5688
5689         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
5690         Protoize.
5691
5692 2004-04-19  Eric Christopher  <echristo@redhat.com>
5693
5694         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
5695
5696 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
5697
5698         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
5699         fix information.
5700
5701 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5702
5703         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
5704         download URL.
5705
5706 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
5707
5708         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
5709         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
5710
5711 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
5712
5713         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
5714         (fold_builtin): Update caller to match.
5715
5716         PR bootstrap/15009
5717         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
5718
5719         PR bootstrap/14999
5720         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
5721
5722 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5723
5724         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
5725
5726         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
5727         (expand_mult_highpart_optab): Likewise.
5728         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
5729
5730 2004-04-19  Paul Brook  <paul@codesourcery.com>
5731
5732         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
5733         floatunssisf2, floatunssidf2): New patterns.
5734
5735 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
5736
5737         PR other/14918
5738         * doc/invoke.texi (-fprofile-generate): Document requirement to
5739         use -fprofile-generate when linking.
5740
5741         * doc/extend.texi (Strong Using): Warn users against using this
5742         feature.
5743
5744 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
5745
5746         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
5747         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
5748         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
5749         * config/mips/mips.c (struct mips16_constant): Renamed from struct
5750         constant.  Propogate change throughout file.
5751         (struct machine_function): Remove insns_len.
5752         (mips_string_length, mips16_strings, string_constants): Delete.
5753         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
5754         when generating mips16 code.  Remove special mips16 treatment of
5755         string constants.
5756         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
5757         to have the form LABEL+CONSTANT.
5758         (mips_symbolic_address_p): Fix comment.
5759         (m16_usym8_4, m16_usym5_4): Delete.
5760         (mips_output_function_epilogue): Remove mips16 string handling.
5761         (mips_output_mi_thunk): Call mips16_lay_out_constants.
5762         (mips_select_section, mips_encode_section_info): Remove mips16
5763         string handling.
5764         (struct mips16_constant_pool): New.
5765         (add_constant): Take a mips16_constant_pool structure.  Keep pool
5766         sorted into order of ascending mode size.  Keep track of the highest
5767         possible start address, taking padding and the masking of the base PC
5768         value into account.
5769         (dump_constants_1): New function, split out from dump_constants.
5770         Handle vector constants.  Use gen_consttable_{int,float} rather than
5771         separate functions for each mode.
5772         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
5773         rather than separate functions for each alignment.
5774         (mips_find_symbol): Delete.
5775         (mips16_insn_length): New function, split out from
5776         mips16_lay_out_constants.
5777         (mips16_rewrite_pool_refs): New function.
5778         (mips16_lay_out_constants): Rework. Remove string handling.
5779         Always create an inline constant pool.
5780         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
5781         (UNSPEC_ALIGN): New constants.
5782         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
5783         (UNSPEC_ALIGN_[248]): Delete.
5784         (consttable_int, consttable_float, align): New patterns.
5785         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
5786
5787 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
5788
5789         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
5790         __unn_args_eq.
5791
5792 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
5793
5794         PR target/14715
5795         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
5796         with STARTING_FRAME_OFFSET.
5797
5798 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5799
5800         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
5801         * config/mips/mips.c (macc_msac_operand): New function.
5802         * config/mips/mips.md (*msac): Move after *macc.
5803         (*msac2): New.  Generalize macc-related peepholes so that they apply
5804         to msac too.
5805
5806 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
5807
5808         * opts.c (decode_options): Do not enable flag_rename_registers
5809         and flag_web at -O3.
5810         * toplev.c (flag_rename_registers): Initialize
5811         flag_rename_registers and flag_web to
5812         AUTODETECT_FLAG_VAR_TRACKING.
5813         (default_debug_hooks): New global.
5814         (process_options): Initialize default_debug_hooks.  Warn if
5815         -fvar-tracking specified but not supported by the current
5816         debug format.  Do not run var tracking at -O0 or if not
5817         supported by the current debug format, even if
5818         -fvar-tracking was given.  If -fno-rename-registers
5819         is not specified, always run register renaming if var
5820         tracking is supported by the default debugging information
5821         format for the target, and we are at -O1 or higher; similarly
5822         for -fweb, but only at -O2 or higher.
5823         * doc/invoke.texi (Optimize Options): Document this.
5824
5825 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5826
5827         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
5828         * configure: Regenerate.
5829
5830 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5831
5832         * gcc.c (used_arg): Check whether an option has been removed.
5833
5834 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5835
5836         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
5837         debugging on Solaris 7 and up.
5838
5839 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5840
5841         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
5842         IRIX 5 port.
5843         Remove -save-temps workaround, handled automatically.
5844         Require GNU binutils 2.15 for debugging.
5845         Remove SGI make warnings since GNU make is now required.
5846         (Specific, mips-sgi-irix6): Some markup fixes.
5847         Describe MIPSpro C problems and workarounds.
5848         Mention working O32 ABI support.
5849         Recommend GNU as 2.15 for O32 with debugging.
5850         Remove description of fixed structure pass/return bug.
5851
5852 2004-04-16  DJ Delorie  <dj@redhat.com>
5853
5854         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
5855         TYPE_FIELDS.
5856         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
5857
5858 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5859
5860         * pa.md: Remove unnecessary declarations for asm_out_file.
5861
5862         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
5863         SAR register.  Fix comment.
5864         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
5865         (%cr11).
5866
5867         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
5868
5869 2004-04-16  Nick Clifton  <nickc@redhat.com>
5870
5871         * config/arm/arm.c (arm_override_options): Revert previous patch.
5872         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
5873         be safely built.
5874
5875 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
5876
5877         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
5878         bug.
5879         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
5880         TARGET_DEFAULT): Changed. Ditto.
5881         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
5882         TARGET_ENDIAN_DEFAULT): Added. Ditto.
5883         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
5884         (TARGET_ENDIAN_DEFAULT): Added.
5885
5886 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5887
5888         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
5889         ATTR_CONST_NOTHROW_LIST.
5890
5891 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5892
5893         PR/middle-end 14915
5894         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
5895         BITS_BIG_ENDIAN.
5896
5897 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
5898
5899         * ra-debug.c (ra_print_rtx): Add break's to case legs.
5900
5901 2004-04-14  James E Wilson  <wilson@specifixinc.com>
5902
5903         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
5904
5905 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
5906
5907         * libada-mk.in: New file.
5908         * configure.ac: Create libada-mk from libada-mk.in.
5909         * configure: Regenerate.
5910
5911 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
5912
5913         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
5914         (logb_optab, ilogb_optab): Define corresponding macros.
5915         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
5916         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
5917         using logb?f2 and ilogb?i2 patterns.
5918         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
5919         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
5920         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
5921         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5922
5923         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
5924         and UNSPEC_XTRACT_EXP.
5925
5926         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
5927         patterns to implement fxtract x87 instruction.
5928         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
5929         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
5930         intrinsics.
5931         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
5932         x87's fxtract insn.
5933
5934 2004-04-14  Eric Christopher  <echristo@redhat.com>
5935
5936         * config/mips/t-elf: Enable multilibs by default.
5937
5938 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
5939
5940         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
5941         previous fix to check HAVE_return at runtime too.
5942
5943 2004-04-14  Nick Clifton  <nickc@redhat.com>
5944
5945         * config/arm/arm.c (arm_override_options): If the user has not
5946         specified an ABI, then default to AAPCS for the iWMMXt processor.
5947         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
5948         * config/arm/t-xscale-coff: Likewise.
5949
5950 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5951
5952         * builtins.c (fold_builtin_isdigit): New.
5953         (fold_builtin): Handle BUILT_IN_ISDIGIT.
5954         * defaults.h: Add TARGET_DIGIT0 and sort.
5955         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
5956
5957 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5958
5959         * builtins.c (fold_builtin_cabs, fold_builtin): Use
5960         `mathfn_built_in' to determine the new builtin.
5961         * fold-const.c (fold): Likewise.
5962
5963 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
5964
5965         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
5966         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
5967         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
5968         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
5969         (ASM_SPEC): Update accordingly.
5970         * config/mips/mips.c: Update after above renaming.
5971         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
5972         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
5973
5974 2004-04-13  James E Wilson  <wilson@specifixinc.com>
5975
5976         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
5977         increment errorcount and return false instead of true.
5978
5979 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
5980
5981         * optabs.c (expand_twoval_unop): Reorder function arguments.
5982         * builtins.c (expand_builtin_mathfn_3): Update calls to
5983         expand_twoval_unop.
5984
5985         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
5986         and UNSPEC_TAN_TAN. Add missing comment.
5987
5988         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
5989         patterns to implement fptan x87 instruction.
5990         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
5991         and tanl built-ins as inline x87 intrinsics. Define corresponding
5992         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
5993         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
5994         x87's fptan insn.
5995
5996 2004-03-13  Richard Henderson  <rth@redhat.com>
5997
5998         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
5999         for LABEL_REFs.
6000
6001         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6002         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6003         * doc/invoke.texi: Update to match.
6004
6005         * varasm.c (unlikely_text_section): Use assemble_align instead of
6006         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6007         correct alignment argument.
6008
6009 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6010
6011         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6012         after setting reg_last_reload_reg for optional output reloads.
6013
6014 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6015
6016         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6017         Definition of these two macros are corrected by adding
6018         matchine right paren.
6019
6020 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6021
6022         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6023
6024 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6025
6026         * config/i386/i386.c (output_387_reg_move): New function.
6027         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6028         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6029         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6030         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6031         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6032
6033 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6034
6035         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6036         TYPE_DECL.
6037         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6038         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6039         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6040         Use skip_simple_arithmetic to find SAVE_EXPR.
6041         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6042         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6043         Properly chain multiple pointers.
6044         (copy_tree_r): Copy a TYPE_DECL.
6045         * tree.c (variably_modified_type_p): Add some missing tests and
6046         make some other minor changes.
6047         * tree.h (force_type_save_exprs): New declaration.
6048
6049 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6050
6051         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6052         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6053         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6054         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6055         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6056         x%-1 into 0 (or x&0 if x has side-effects).
6057
6058 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6059
6060         * config/rs6000/rs6000.md: Document why a pattern is not
6061         available.
6062
6063         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6064         of floats on the E500.
6065         (branch_positive_comparison_operator): Do not allow NE even on the
6066         E500.
6067
6068 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6069
6070         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6071         in_text_unlikely_section to in_unlikely_text_section.
6072
6073 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6074
6075         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6076         calling convention to allow a NULL_TREE to be returned.  Factor
6077         sanity checks from callers, return NULL_TREE when appropriate.
6078         (fold): Handle COMPOUND_EXPR operands of binary expressions
6079         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6080         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6081         calls to fold_binary_op_with_conditional_arg.
6082
6083 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6084
6085         * config/mips/iris5.h (current_section_flags):  Add
6086         in_unlikely_executed_text and default case.
6087
6088 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
6089
6090         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6091         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6092         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6093         HAVE_return and place it around the place where it is needed.
6094
6095 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6096
6097         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6098         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6099         and NORMAL_TEXT_SECTION_NAME.
6100         (unlikely_text_section): Check targetm.have_named_sections
6101         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6102         instead of SECTION_FORMAT_STRING.
6103         * config/mips/iris5.h (current_section_name): Add
6104         in_unlikely_executed_text case and move the abort into the switch.
6105         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6106         (NORMAL_TEXT_SECTION_NAME): Remove.
6107         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6108         (SECTION_FORMAT_STRING): Remove.
6109         * defaults.h (SECTION_FORMAT_STRING): Remove.
6110         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6111         (SECTION_FORMAT_STRING): Remove.
6112
6113 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6114
6115         * c-typeck.c (common_type): Prefer long long to long when same
6116         precision.
6117
6118 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6119
6120         PR 14887
6121         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6122         mode argument.
6123         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6124         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6125
6126 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6127
6128         * simplify-rtx.c (mode_signbit_p): New function to check whether
6129         an RTX is an immediate constant that represents the most significant
6130         bit of a given machine mode.
6131         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6132         C is the sign bit.
6133         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6134         when C2 is the sign bit.
6135         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6136         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6137         sign bit.
6138
6139 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6140
6141         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6142         TYPE_MODE.
6143
6144 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
6145
6146         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6147         of TREE_READONLY for types.
6148
6149 2004-04-09  Caroline Tice  <ctice@apple.com>
6150
6151         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
6152         (struct basic_block_def):  Add new field, partition.
6153         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
6154         definitions.
6155         (partition_hot_cold_basic_blocks): Add extern function
6156         declaration.
6157         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
6158         include statements.
6159         (N_ROUNDS): Increase the maximum number of rounds by 1.
6160         (branch_threshold): Add array value for new round.
6161         (exec_threshold): Add array value for new round.
6162         (push_to_next_round_p): New function.
6163         (add_unlikely_executed_notes): New function.
6164         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6165         (mark_bb_for_unlikely_executed_section): New function.
6166         (add_labels_and_missing_jumps): New function.
6167         (add_reg_crossing_jump_notes): New function.
6168         (fix_up_fall_thru_edges): New function.
6169         (find_jump_block): New function.
6170         (fix_crossing_conditional_branches): New function.
6171         (fix_crossing_unconditional_branches): New function.
6172         (fix_edges_for_rarely_executed_code): New function.
6173         (partition_hot_cold_basic_blocks): New function.
6174         (find_traces):  Add an extra round for partitioning hot/cold
6175         basic blocks.
6176         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
6177         and only cold blocks, into the last (extra) round of collecting traces.
6178         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
6179         over crossing edges.
6180         (bb_to_key):  Add code to correctly identify cold blocks when
6181         doing partitioning.
6182         (connect_traces): Modify to connect all the non-cold traces first, then
6183         go back and connect up all the cold traces.
6184         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
6185         * cfg.c (entry_exit_blocks): Add initialization for partition field in
6186         entry and exit blocks.
6187         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6188         if we are doing hot/cold partitioning.
6189         * cfgcleanup.c (cfglayout.h): Add new include statement.
6190         (try_simplify_condjump): Modify to not attempt on blocks with jumps
6191         that cross section boundaries.
6192         (try_forward_edges): Likewise.
6193         (merge_blocks_move_predecessor_nojumps): Likewise.
6194         (merge_blocks_move_successor_nojumps): Likewise.
6195         (merge_blocks_move): Likewise.
6196         (try_crossjump_to_edge): Modify to not attempt after we have done
6197         the block partitioning.
6198         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6199         cross section boundaries.
6200         (try_optimize_cfg): Likewise.
6201         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6202         jumps that cross section boundaries.
6203         * cfglayout.c (flags.h): Add new include statement.
6204         (update_unlikely_executed_notes):  New function.
6205         (fixup_reorder_chain):  Add code so when a new jumping basic block is
6206         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6207         updated appropriately.
6208         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
6209         introduced by this optimization.
6210         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
6211         extern function declaration.
6212         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6213         list of notes that can be deleted.
6214         (create_basic_block_structure):  Add initialization for partition field.
6215         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
6216         section boundaries.
6217         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
6218         cross section boundaries.
6219         (commit_one_edge_insertion): Add code so newly created basic block
6220         ends up in correct (hot or cold) section.  Modify to disallow
6221         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6222         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
6223         crosses section boundaries.
6224         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6225         cross section boundaries.
6226         (force_nonfallthru_and_redirect): Modify to make sure new basic block
6227         ends up in correct section, with correct notes attached.
6228         * common.opt (freorder-blocks-and-partition):  Add new flag for this
6229         optimization.
6230         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
6231         the end of functions are written into the correct (hot or cold)
6232         section.
6233         (dbx_source_file): Add code so writing debug file information
6234         doesn't incorrectly change sections.
6235         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6236         in partitioning hot/cold basic blocks into separate sections.
6237         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6238         section partitioning.
6239         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6240         conditional branches can span all of memory.
6241         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6242         unconditional branches can span all of memory.
6243         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
6244         (final_scan_insn):  Add code to check for NOTE instruction indicating
6245         whether basic block belongs in hot or cold section, and to make sure
6246         the current basic block is being written to the appropriate section.
6247         Also added code to ensure that jump table basic blocks end up in the
6248         correct section.
6249         * flags.h (flag_reorder_blocks_and_partition):  New flag.
6250         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
6251         one of the branches has a jump that crosses between sections.
6252         (find_if_case_2): Likewise.
6253         (ifcvt): Modify to not attempt to mark loop exit edges after
6254         hot/cold partitioning has occurred.
6255         * opts.c (decode_options): Code to handle new flag,
6256         flag_reorder_blocks_and_partition; also to turn it off if
6257         flag_exceptions is on.
6258         (common_handle_option): Code to handle new flag,
6259         flag_reorder_blocks_and_partition.
6260         * output.h (unlikely_text_section): New extern function declaration.
6261         (in_unlikely_text_section): New extern function declaration.
6262         * passes.c (rest_of_handle_stack_regs):  Add
6263         flag_reorder_blocks_and_partition as an 'or' condition for calling
6264         reorder_basic_blocks.
6265         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
6266         as an 'or' condition for calling reorder_basic_blocks.
6267         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
6268         * print-rtl.c (print_rtx): Add code for handling new note,
6269         NOTE_INSN_UNLIKELY_EXECUTED_CODE
6270         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
6271         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6272         cross between section boundaries.
6273         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
6274         indicating the basic block containing it belongs in the cold section.
6275         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6276         between hot and cold sections.
6277         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
6278         initialize this flag, and to tie it to the command-line option
6279         freorder-blocks-and-partition.
6280         * varasm.c (cfglayout.h):  Add new include statement.
6281         (unlikely_section_label_printed):  New global variable, used for
6282         determining when to output section name labels for cold sections.
6283         (in_section):  Add in_unlikely_executed_text to enum data structure.
6284         (text_section):  Modify code to use SECTION_FORMAT_STRING and
6285         NORMAL_TEXT_SECTION_NAME macros.
6286         (unlikely_text_section):  New function.
6287         (in_unlikely_text_section):  New function.
6288         (function_section):  Add code to make sure beginning of function is
6289         written into correct section (hot or cold).
6290         (assemble_start_function):  Add code to make sure stuff is written to
6291         the correct section.
6292         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
6293         to an if statement that was checking 'in_text_section'.
6294         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
6295         condition to an if statement that was checking 'in_text_section'.
6296         (default_section_type_flags_1):  Add check: if in cold section
6297         flags = SECTION_CODE.
6298         * config/darwin.c (darwin_asm_named_section):  Modify to use
6299         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
6300         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
6301         specifically for the i386.
6302         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
6303         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
6304         text string to something more informative.
6305         (NORMAL_TEXT_SECTION_NAME): Add new definition.
6306         (SECTION_FORMAT_STRING):  Add new definition.
6307         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
6308         '!in_unlikely_text_section' as an 'and' condition to an if statement
6309         that was already checking '!in_text_section'.
6310         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6311         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6312         sure these are properly defined for linux on ppc.
6313         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
6314         for this new flag.
6315         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
6316         reg_note.
6317         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6318         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
6319         these new macros.
6320
6321 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6322
6323         * function.c (gen_mem_addressof): When changing the RTX from a REG
6324         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6325
6326 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6327
6328         PR target/14888
6329         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6330         truncxfdf2_noop): Provide dummy "fmov" implementations.
6331
6332 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
6333
6334         * gcc.c (default_compilers): Add missing initializers.
6335
6336         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6337         Return 1 if file was successfully mapped.
6338
6339 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
6340
6341         PR pch/13419
6342         PR pch/14137
6343         Radar #: 3315288
6344         * doc/invoke.texi (Precompiled Headers): Suggest -o
6345         to put an output file in a particular place.  Be more detailed
6346         about which options affect PCH validity and which options
6347         might not work.
6348         * c-pch.c (pch_matching): New.
6349         (MATCH_SIZE): New.
6350         (struct c_pch_validity): New field 'match'.
6351         (pch_init): Handle pch_matching.
6352         (c_common_valid_pch): Check pch_matching.
6353
6354         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6355
6356 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
6357
6358         * doc/invoke.texi (Precompiled Headers): Warn about known
6359         problems.
6360
6361 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6362
6363         PR c++/14808
6364         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6365         to 1 if ASM_OUTPUT_DEF is defined.
6366         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6367         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6368         Set to non-zero iff not a one_only decl.
6369
6370 2004-04-08  Paul Brook  <paul@codesourcery.com>
6371
6372         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6373
6374 2004-04-08  Paul Brook  <paul@codesourcery.com>
6375
6376         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6377         PROMOTE_FOR_CALL_ONLY.
6378         * config/arm/arm-protos.h (arm_function_value): Declare.
6379         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6380         (TARGET_PROMOTE_PROTOTYPES): Return false.
6381         (arm_function_value): New function.
6382         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6383         (FUNCTION_VALUE): Call arm_function_value.
6384         * config/cris/cris.h (PROMOTE_MODE): Rename ...
6385         (PROMOTE_FUNCTION_MODE): ... to this.
6386         (PROMOTE_FOR_CALL_ONLY): Remove.
6387         * config/mmix/mmix.h: Likewise.
6388         * config/s390/s390.h: Likewise.
6389         * config/sparc/sparc.h: Likewise.
6390         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6391         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6392         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6393         (PROMOTE_FOR_CALL_ONLY): Remove.
6394
6395 2004-04-08  Joel Sherrill <joel@oarcorp.com>
6396
6397         PR ada/14538
6398         * ada/5rosinte.adb: Remove fake mprotect() body.
6399         * ada/5rosinte.ads: Add SA_SIGINFO.
6400         * ada/5rtpopsp.adb: Rewrite to use new interface.
6401         * ada/init.c: Reorder so the simple single OS conditional __rtems__
6402         is tested before more complex ones which mix UNIX and embedded
6403         systems in the conditional.
6404
6405 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
6406
6407         PR ada/14665
6408         * ada/osint.adb (Find_Program_Name): Rework to properly handle
6409         filenames which end in .exe or have versioning suffixes like VMS.
6410
6411 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
6412
6413         PR target/10129
6414         * config/darwin.c (darwin_encode_section_info): When the decl has
6415         a DECL_INITIAL, it is only defined also when it is not a common.
6416
6417 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6418
6419         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6420         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6421
6422 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6423
6424         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6425         global register variables.
6426
6427 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
6428
6429         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6430         rpc_xdr_lvalue_cast_b): New fixes.
6431         * fixinc/fixincl.x: Regenerate.
6432         * fixinc/tests/base/rpc/xdr.h: Add new tests.
6433
6434 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
6435
6436         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6437         to power4 and power5 entries.
6438
6439 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
6440
6441         * c-common.h (pending_lang_change): Mark for PCH.
6442
6443 2004-04-07  Caroline Tice  <ctice@apple.com>
6444
6445         * gcc.c (main): Move 'break' in main loops (on an error)
6446         to wait until error processing has occurred.
6447
6448 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
6449
6450         * config.gcc: Stop changing enable_threads midstream.
6451         Replace uses of enable_threads_flag with enable_threads.
6452         * configure.ac: Replace uses of enable_threads_flag with
6453         enable_threads.  Improve autoconf quotation in one place.
6454         * configure: Regenerate.
6455
6456 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
6457
6458         * builtins.c: Implement support for sincos function.
6459         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
6460         BUILT_IN_COS{,F,L}.
6461         (expand_builtin_mathfn_3): New function.
6462         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
6463         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
6464         flag_unsafe_math_optimization is set.
6465
6466         * optabs.h (enum optab_index): Add new OTI_sincos.
6467         (sincos_optab): Define corresponding macro.
6468
6469         * optabs.c (init_optabs): Initialize sincos_optab.
6470         (expand_twoval_unop): New function.
6471
6472         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
6473         patterns.
6474
6475         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
6476         and UNSPEC_SINCOS_SIN.
6477
6478         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
6479         sincosxf3): New patterns to implement sincos, sincosf and sincosl
6480         built-ins as inline x87 intrinsics. Define splits for
6481         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
6482         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
6483         sincos patterns.
6484         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
6485         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
6486
6487         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
6488         x87's fsincos insn.
6489
6490 2004-04-06  Devang Patel  <dpatel@apple.com>
6491
6492         PR 14467
6493         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
6494
6495 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6496
6497         * doc/install.texi: Update HP-UX 11 installation procedure.
6498
6499 2004-04-06  Paul Brook  <paul@codesourcery.com>
6500
6501         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
6502
6503 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6504
6505         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
6506         when the TLS address is generated by a function call.
6507         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
6508         (tls_local_dynamic): Likewise.
6509
6510 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
6511
6512         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
6513         and TYPE_VOLATILE.
6514
6515 2004-04-05  Caroline Tice  <ctice@apple.com>
6516
6517         * gcc.c (combine_flag): New global variable, for new driver option.
6518         (struct compiler): Add two new fields, to be used when
6519         combining multiple input files in a single pass (IMA).
6520         (default_compilers):  Add values for the new fields to all
6521         compiler entries. Modify the "@c" compiler entry for doing IMA
6522         properly with "-save-temps" and the "combine" flag.
6523         (option_map):  Add new driver option, "--combine", to tell driver
6524         to pass multiple input files to compiler at one time.
6525         (have_o_argbuf_index): New global variable.
6526         (store_arg): Modify to assign value to have_o_argbuf_index.
6527         (struct infile):  Add three new fields, to help with IMA.
6528         (display_help): Add help for new "combine" option.
6529         (process_command): Remove local variable have_o; add code to check
6530         for new "combine" option; remove assignment to combine_inputs.
6531         (do_spec_1):  Modify to deal with IMA better.
6532         (main): Make variable 'lang_n_infiles' local to entire function
6533         rather than to a single block.  Use flag combine_flag to
6534         determine whether to do IMA or not; Modify loop initializing
6535         infiles to deal properly with linker files.
6536         Add code for doing preprocessing in presence of
6537         IMA with "-save-temps" flag.  Modify "main" loop to handle
6538         multiple input files, in multiple languages, with or without
6539         preprocessing,  gracefully.
6540         * toplev.c (set_src_pwd): Modify to not complain if attempting to
6541         re-set it to same directory it's previously been set to (avoid
6542         irritating, meaningless warning messages when doing IMA with
6543         save-temps).
6544         * doc/invoke.texi: Add "-combine" to list of Overall Options;
6545         remove documentation about IMA that is no longer accurate; Add
6546         documentation explaining what "-combine" does.
6547         * ada/lang-specs.h: Add initialization values for new fields in
6548         "struct compiler".
6549         * cp/lang-specs.h: Likewise.
6550         * f/lang-specs.h: Likewise.
6551         * java/lang-specs.h: Likewise.
6552         * objc/lang-specs.h: Likewise.
6553         * treelang/lang-specs.h: Likewise.
6554
6555 2004-04-05  David Edelsohn
6556
6557         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
6558         symbol handling.
6559
6560 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
6561             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6562
6563         PR optimization/13424 (hppa), bootstrap/14462, c/14828
6564         * pa.md: Use replace_equiv_address to retain the attributes of the
6565         memory operands used in the split and peephole2 patterns for optimizing
6566         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
6567
6568 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6569
6570         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
6571         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6572         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
6573         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
6574         PARM_DECL.
6575         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
6576         for a type.
6577         * print-tree.c (print_node): Properly handle side-effects, readonly,
6578         and constant flags.
6579         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
6580         and TREE_CONSTANT if not a type.
6581         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
6582         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
6583         (NON_TYPE_CHECK): New macro.
6584         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
6585
6586 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
6587
6588         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
6589         to DWARF2_DEBUG unconditionally.
6590         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
6591
6592 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
6593             Nathanael Nerode  <neroden@gcc.gnu.org>
6594
6595         PR target/14548
6596         * config.host: Set the shell variable host_can_use_collect2.
6597         Set it to yes by default, and to no for alpha*-dec-*vms*,
6598         i[34567]86-*-mingw32*, and powerpc-*-beos*.
6599         * configure.ac: Set and substitute the shell variable collect2.
6600         Give an error if use_collect2 is yes and host_can_use_collect2 is
6601         no.
6602         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
6603         uses.  Initialize to @collect2@.
6604         (STAGESTUFF): Remove $(USE_COLLECT2).
6605         * config/alpha/x-vms (USE_COLLECT2): Don't set.
6606         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
6607         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
6608         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
6609         * configure: Regenerate.
6610
6611 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6612
6613         * simplify-rtx.c (simplify_binary_operation): Constant fold
6614         DIV, MOD, UDIV and UMOD using div_and_round_double.
6615
6616 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6617
6618         PR c++/14804
6619         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
6620         RECORD_TYPEs.
6621
6622 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6623
6624         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
6625         documentation.
6626
6627 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6628
6629         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
6630         updating the REG_EQUAL note on an insn's libcall_insn.
6631
6632 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6633
6634         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
6635
6636 2004-04-03  Roger Sayle  <roger@eyesopen.com>
6637
6638         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
6639         with reorder_operands_p.
6640
6641 2004-04-03  Jan Hubicka  <jh@suse.cz>
6642
6643         * md.texi (vec_set, vec_extract, vec_init): Document.
6644
6645 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
6646
6647        * opts.c (decode_options): Do function inlining with very small
6648        max-inline-insns-* parameters when optimizing for size.
6649
6650 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
6651
6652         * config/i386/i386.h (TARGET_NOCONA): New macro.
6653         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
6654         (processor_type): Add PROCESSOR_NOCONA.
6655
6656         * config/i386/i386.md (cpu): Add nocona to the attribute values.
6657
6658         * config/i386/i386.c (nocona_cost): New variable.
6659         (m_NOCONA): New macro.
6660         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
6661         x86_branch_hints, x86_use_sahf, x86_single_stringop,
6662         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
6663         x86_integer_DFmode_moves, x86_partial_reg_dependency,
6664         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
6665         x86_decompose_lea, x86_arch_always_fancy_math_387,
6666         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
6667         x86_ext_80387_constants, x86_four_jump_limit):
6668         (override_options): Add nocona_cost to processor_target_table.
6669         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
6670         (incdec_operand): Prevent inc/dec generation for Nocona too.
6671         (ix86_issue_rate): Add PROCESSOR_NOCONA.
6672
6673 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
6674
6675         * rtlanal.c (find_reg_note): Manually
6676         unswitch the loop.
6677
6678 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
6679
6680         * genemit.c (gen_split): Change prototype of generated code.
6681         * genrecog.c (write_action): Adjust prototype for and calls to
6682         gen_split_*.
6683         * gensupport.c (struct queue_elem): Add split field.
6684         (queue_pattern): Return a value.  Clear the split field.
6685         (process_rtx): Maintain an association between an insn and the
6686         split generated from it for a define_insn_and_split.
6687         (process_one_cond_exec): Generate a new split for a
6688         define_insn_and_split.
6689         * config/arm/arm-protos.h (arm_split_constant): Add insn
6690         parameter.
6691         (emit_constant_insn): New function.
6692         (arm_gen_constant): Use it.
6693         * config/arm/arm.md: Adjust calls to arm_split_constant.
6694
6695 2004-04-02  Jan Hubicka  <jh@suse.cz>
6696
6697         * cgraph.c: Add overall comment.
6698         (cgraph_inline_hash): New global variable.
6699         (cgraph_create_node): Break out from ...
6700         (cgraph_node): ... here.
6701         (cgraph_edge): New function.
6702         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
6703         (cgraph_remove_edge): Accept edge, intead of source and destination.
6704         (cgraph_redirect_edge_callee): New.
6705         (cgraph_remove_node): Update all new datastructures.
6706         (cgraph_record_call, cgraph_remove_call): Kill.
6707         (dump_cgraph_node): Break out from ... ; dump new datastructures.
6708         (dump_cgraph): ... here.
6709         (cgraph_function_possibly_inlined_p): Use new hashtable.
6710         (cgraph_clone_edge, cgraph_clone_node): New.
6711         * cgraph.h: Include hashtab.h
6712         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
6713         fields, add inlined_to pointer.
6714         (cgraph_node): Add pointer to next_clone.
6715         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
6716         (cgraph_remove_call, cgraph_record_call): Kill.
6717         (cgraph_inline_hash): Declare.
6718         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
6719         cgraph_redirect_edge_callee): Declare.
6720         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
6721         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
6722         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
6723         * cgraphunit.c: Add overall comment.
6724         (cgraph_optimize_function): Kill.
6725         (cgraph_assemble_pending_functions): Do not assemble inline clones.
6726         (cgraph_finalize_function): Update call of cgraph_remove_node
6727         (record_call_1): Record call sites.
6728         (cgraph_create_edges): Accept node instead of decl argument.
6729         (error_found): New static variable.
6730         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
6731         (cgraph_analyze_function): Update for new datastructures.
6732         (cgraph_finalize_compilation_unit): Plug memory leak.
6733         (cgraph_optimize_function): Kill.
6734         (cgraph_expand_function): Do not use cgraph_optimize_function.
6735         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
6736         cgraph_inlined_callees): Kill.
6737         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
6738         clones.
6739         (estimate_growth): Simplify.
6740         (cgraph_clone_inlined_nodes): New function.
6741         (cgraph_mark_inline_edge): Re-implement.
6742         (cgraph_mark_inline): Likewise.
6743         (cgraph_check_inline_limits): Simplify.
6744         (cgraph_recursive_inlining_p): New.
6745         (update_callee_keys): Break out from ...
6746         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
6747         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
6748         Likewise.
6749         (cgraph_expand_all_functions):  Remove inline clones from the ordered
6750         list.
6751         (cgraph_preserve_function_body_p): New predicate.
6752         (cgraph_optimize): Verify cgraph.
6753         * function.h (struct function): Add fields saved_tree/saved_args.
6754         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
6755         * toplev.c (rest_of_compilation): Do not free cfun.
6756         * tree-inline.c: Include function.h
6757         (struct inline_data): Add saving_p field; replace decl/current_decl by
6758         node/current_node.
6759         (insert_decl_map): New function.
6760         (copy_body_r): Handle saving; update cgraph datastructure.
6761         (copy_body): Handle recursive inlining.
6762         (initialize_inlined_parameters): Likewise.
6763         (expand_call_inline): Propagate node attributes; update cgraph.
6764         (optimize_inline_calls): Verify that datastructure still match.
6765         (save_body): New function.
6766         * tree-inline.h (save_body): New.
6767         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
6768         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
6769         * langhooks.c (lang_hooks): Add update_decl_after_saving.
6770
6771 2004-04-01  Serge Belyshev  <1319@bot.ru>
6772
6773         PR target/14702
6774         * config/i386/i386.md: fix source operand constraints in
6775         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
6776
6777 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
6778
6779         * fold-const.c (folda): Preserve types of comparisons.
6780
6781 2004-04-01  Richard Henderson  <rth@redhat.com>
6782
6783         * toplev.c (backend_init): Move init_optimization_passes call ...
6784         (lang_dependent_init): ... here.
6785
6786 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
6787             Jakub Jelinek  <jakub@redhat.com>
6788
6789         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
6790         -lgcc --as-needed -lgcc_s --no-as-needed by default.
6791         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
6792         * configure: Rebuilt.
6793         * config.in: Rebuilt.
6794         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
6795         (stage2-start, stage3-start, stage4-start): Likewise.
6796         (stageprofile-start, stagefeedback-start): Likewise.
6797
6798 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
6799
6800         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
6801         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6802         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6803         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6804         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
6805         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
6806         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
6807         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
6808         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
6809         * config/sparc/t-linux: Removed.
6810
6811 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
6812
6813         PR c++/14755
6814         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
6815         "bitfld++ == const" to "++bitfld == const + incr" transformations.
6816
6817 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6818
6819         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
6820         * stor-layout.c (layout_decl): Likewise.
6821         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
6822         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
6823         * print-tree.c (print_node): Handle various used of unsigned_flag.
6824         * tree.def (BIT_FIELD_REF): Update comment.
6825         * tree.h (TREE_UNSIGNED): Deleted.
6826         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
6827
6828 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6829
6830         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
6831         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
6832         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
6833         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
6834         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
6835         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
6836         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
6837         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
6838         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
6839         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
6840         REAL_TYPE, not INTEGER_TYPE.
6841         (layout_type, case VECTOR_TYPE): Simplify code.
6842         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
6843         * tree.h: Update comments.
6844         (STRIP_NOPS): Use TYPE_UNSIGNED.
6845         (TYPE_UNSIGNED): New macro.
6846         (TYPE_TRAP_SIGNED): Remove now redundant check.
6847         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
6848
6849 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6850
6851         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
6852
6853 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
6854
6855         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
6856         Add darwin-fpsave.asm, darwin-vecsave.asm,
6857         and darwin-world.asm.
6858         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
6859         as the asm files contain altivec instructions.
6860         * config/rs6000/darwin-fpsave.asm: New file.
6861         * config/rs6000/darwin-vecsave.asm: New file.
6862         * config/rs6000/darwin-world.asm: New file.
6863
6864 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
6865
6866         * gengtype-yacc.y (option, stringseq): Add missing
6867         terminating semicolon.
6868
6869 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
6870
6871         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
6872         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
6873         tls_dtprel_ha_32, tls_dtprel_ha_64,
6874         tls_dtprel_lo_32, tls_dtprel_lo_64,
6875         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
6876         tls_tprel_ha_32, tls_tprel_ha_64,
6877         tls_tprel_lo_32, tls_tprel_lo_64,
6878         tls_got_tprel_32, tls_got_tprel_64,
6879         tls_tls_32, tls_tls_64): Replace register_operand with
6880         gpc_reg_operand.
6881
6882 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
6883
6884         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
6885         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
6886         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
6887         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
6888         *ctrdi_internal6): Replace register_operand with
6889         nonimmediate_operand.
6890
6891 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
6892
6893         * fold-const.c (fold): Reassociate multiply expression
6894         with an adjacent non-multiply expression to use
6895         architecture's multiply-add instruction.
6896
6897 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
6898
6899         * gengtype.c (create_option): New function.
6900         * gengtype.h: Prototype it.
6901         * gengtype-yacc.y (stringseq): New rule.
6902         (option): Use create_option.  Add new bare ID production.  Use
6903         stringseq, not STRING directly.
6904
6905         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
6906         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
6907         * varray.h, config/alpha/alpha.c:
6908         Use new shorter form of GTY markers.
6909
6910         * doc/gty.texi: Rewrite.
6911
6912 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
6913
6914         * config/darwin.c (machopic_function_base_name):
6915         Remove current_name and getting the name of the
6916         current function.
6917
6918 2004-03-30  Nick Clifton  <nickc@redhat.com>
6919
6920         * config/arm/arm.md (thumb_jump): Reduce the backward branch
6921         range, and increase the forward branch range, to allow for
6922         the fact that the PC will be off by 4.
6923
6924 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
6925
6926         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
6927
6928 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6929
6930         * config/rs6000/rs6000.c (output_vec_const_move):
6931         Find all cases of EASY_VECTOR_15_ADD_SELF.
6932         (easy_vector_constant_add_self): Accept
6933         all vector constant loadable by vsplt* and vadd*.
6934         (easy_vector_same): Use easy_vector_splat_const.
6935         (easy_vector_const): Use easy_vector_splat_const.
6936         (easy_vector_splat_const): New function.
6937         (gen_easy_vector_constant_add_self): New function.
6938
6939         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
6940         New prototype.
6941
6942         * config/rs6000/altivec.md (movv4si splitter): Change to
6943         emit move insn with halfed vector constant.
6944         (*movv8hi splitter): Likewise.
6945         (*movv16qi splitter): Likewise.
6946
6947 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6948
6949         PR 11591
6950         * config/rs6000/rs6000.c (rs6000_legitimate_address):
6951         Allow any offset to argument pointer in no-strict case.
6952
6953 2004-03-30  Jan Hubicka  <jh@suse.cz>
6954
6955         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
6956         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
6957         dump file in non-unit-at-a-time mode.
6958
6959 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
6960
6961         * config/cris/cris.h: Correct #ifdef to test for
6962         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
6963         HAVE_AS_MUL_BUG_ABORT_OPTION.
6964
6965 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6966
6967         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
6968         the address inside the old RTL.
6969
6970 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
6971
6972         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
6973         (struct c_binding, struct c_scope): Add chain_next
6974         attributes to GTY markers.
6975         (struct lang_identifier, struct lang_tree_node): Define
6976         here...
6977         * c-tree.h: ... not here.  No longer need to declare struct
6978         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6979         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
6980         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6981
6982         PR 14734, 11944
6983         * c-decl.c (get_parm_info): If error_mark_node is encountered
6984         in the bindings chain, unbind and discard it; don't abort.
6985
6986 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
6987             Dorit Naishlos <dorit@il.ibm.com>
6988
6989         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
6990         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
6991
6992 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
6993
6994         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
6995
6996         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
6997         (m68hc11_attribute_table): New attribute "page0" to mark a global
6998         variable as being allocated from within page0 section.
6999         (m68hc11_encode_label): New function.
7000         (m68hc11_strip_name_encoding): New function.
7001         (m68hc11_page0_symbol_p): New function.
7002         (m68hc11_indirect_p): Accept global variables marked in page0.
7003         (m68hc11_encode_section_info): Lookup "page0" attribute.
7004
7005         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7006         represents access to page0 variables.
7007
7008         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7009         ("*logicalsi3_silshl16_zext"): Likewise.
7010         ("*ashldi3_const32"): Likewise.
7011         (peephole2 ashift): Likewise.
7012
7013 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7014
7015         * c-tree.h (C_DECL_REGISTER): New.
7016         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7017         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7018         (build_array_ref, c_mark_addressable): Set and use it.
7019         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7020         Allow structures with volatile fields to be declared register.
7021         Don't check TREE_ADDRESSABLE before warning about taking address
7022         of register.
7023         * c-decl.c (finish_decl): Don't allow structures with volatile
7024         fields to be placed in named register.
7025         * doc/trouble.texi: Remove reference to structures with volatile
7026         fields in registers.
7027
7028 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7029
7030         * function.c (thread_prologue_and_epilogue): Move
7031         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7032         before the epilogue.
7033
7034 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7035
7036         * expr.c (store_constructor): Use gen_int_mode to correctly
7037         sign-extend CONST_INT value.
7038
7039 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7040
7041         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7042         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7043         * doc/extend.texi: Likewise.
7044
7045 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7046
7047         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7048           with TYPE_ORIG_SIZE_TYPE.
7049
7050 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7051
7052         PR 14219
7053         * c-typeck.c (build_binary_op): Do not allow comparisons of
7054         vectors.
7055
7056 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7057
7058         * config.gcc: Remove sparc-tti-*.
7059         * config/sparc/pbd.h: Delete.
7060
7061         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7062         * config/sparc/aout.h: Likewise.
7063
7064         * config/sparc/sparc.h: Remove if 0'd code.
7065         * config/sparc/sparc.md (call): Remove if 0'd code.
7066         (call_value): Likewise.
7067         (nonlocal_goto): Likewise.
7068         (unimp_insn): Delete.
7069
7070 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7071
7072         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7073         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7074
7075 2004-03-25  Richard Henderson  <rth@redhat.com>
7076
7077         PR 11527
7078         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7079         rather than later.
7080
7081 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7082
7083         * builtins.c (fold_builtin): Fix error in last change.
7084
7085 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
7086
7087         * config/mips/mips.h: Formatting fix.
7088
7089 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7090
7091         * builtins.def: Add ctype builtins.
7092         * doc/extend.texi: Likewise.
7093
7094 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7095
7096         * builtins.c (fold_builtin): Add new builtin optimizations for
7097         sqrt and/or cbrt.
7098         * fold-const.c (fold): Likewise.
7099
7100 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7101
7102         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7103         (rs6000_sched_groups): New variable.
7104         (processor_target_table): Add power5.
7105         (rs6000_override_options): Set rs6000_sched_insert_nops,
7106         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7107         from rs6000_sched_groups.
7108         (output_cbranch): Use rs6000_always_hint.
7109         (rs6000_variable_issue): Use rs6000_sched_groups.
7110         (rs6000_adjust_cost): Add CPU_POWER5.
7111         (is_microcoded_insn): Use rs6000_sched_groups.
7112         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7113         Return 2 for POWER5 cracked instructions.
7114         (is_cracked_insn): Use rs6000_sched_groups.
7115         (is_branch_slot_insn): Use rs6000_sched_groups.
7116         (rs6000_issue_rate): Add CPU_POWER5.
7117         (rs6000_sched_finish): Use rs6000_sched_groups.
7118         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7119         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7120         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7121         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7122         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7123         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7124         * config/rs6000/power5.md: New file.
7125         * doc/invoke.texi: Add power5 option.
7126
7127 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7128
7129         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7130         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7131         * doc/invoke.texi: Fix a typo.
7132
7133 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7134
7135         PR optimization/9707.
7136         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7137         of recursing if both children are single-valued cases with no
7138         children.
7139
7140 2004-03-25  Paul Brook  <paul@codesourcery.com>
7141
7142         * config/arm/arm.c (vfp_print_multi): Remove.
7143         (arm_output_fldmx): New function.
7144         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7145         (arm_expand_prologue): Update to match.
7146         (arm_get_vfp_saved_size): New Function.
7147         (arm_get_frame_offsets): Use it.
7148         (arm_output_epilogue): Use new functions.
7149
7150 2004-03-24  Richard Henderson  <rth@redhat.com>
7151
7152         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7153         (reg_known_value, reg_known_value_size): Likewise; make static.
7154         (reg_known_equiv_p): Make static.
7155         (clear_reg_alias_info): Update for new indexing.
7156         (get_reg_known_value, set_reg_known_value): New.
7157         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7158         (canon_rtx): Use them.
7159         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
7160         Don't play queer offsetting games with reg_known_value and
7161         reg_known_equiv_p.
7162         (end_alias_analysis): Free reg_known_value with gc.
7163         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7164         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7165         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7166         functions instead.
7167
7168 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7169
7170         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7171         config/i386/mmintrin.h: Update copyright.
7172
7173 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7174
7175         * configure.ac: Add --enable-werror-always (for top level bootstrap
7176         support).
7177         * configure: Regenerate.
7178
7179 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
7180
7181         * objc/objc-act.c (objc_comptypes): Treat comparisons
7182         between 'Class' and '<class> *' as explicitly invalid.
7183
7184 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
7185
7186         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7187         (-fprofile-values): Add enabled with profile-{generate,use}.
7188         (-fvpt): Same.
7189         (-ftracer): Add enabled with profile-use.
7190         (-funit-at-a-time): Add enabled at -O2,-O3.
7191         (-funroll-loops): Add enabled with profile-use.
7192         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
7193         (max-gcse-passes): Mention default.
7194         (max-cse-path-length): Mention default.
7195
7196 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7197
7198         * Makefile.in (STRICT2_WARN): Reorder.
7199         * configure.ac: Check for -Wold-style-definition, and use it
7200         in strict1_warn if it's available.
7201         * configure: Regnerate.
7202
7203 2004-03-24  Paul Brook  <paul@nowt.org>
7204
7205         * config.gcc <arm>: Add --with-abi=
7206         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7207         thumb_far_jump_used): Remove prototypes.
7208         (arm_needs_doubleword_align): Add prototype.
7209         (thumb_compute_initial_elimination_offset): Ditto.
7210         * config/arm/arm.c (arm_get_frame_offsets): New function.
7211         (use_return_insn, output_return_instruction, arm_output_epilogue,
7212         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7213         arm_expand_prologue, thumb_expand_epilogue): Use it.
7214         (arm_abi, target_abi_name, all_arm_abis): New variables.
7215         (arm_override_options): Set them.  Set structure padding for AAPCS.
7216         (arm_return_in_memory): Update ABI check.
7217         (arm_init_cumulative_args): Initialize can_split.
7218         (arm_needs_doubleword_align): New function.
7219         (arm_function_arg): Don't split args after pushing to stack. Handle
7220         doubleword/even reg alignment.
7221         (arm_va_arg): Handle all doubleword aligned args.
7222         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7223         on ABI, not CPU.
7224         (arm_compute_save_reg0_reg12_mask): Fix comment.
7225         (thumb_get_frame_size, thumb_get_frame_size): Remove.
7226         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
7227         value for alignment.
7228         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7229         to match.
7230         (thumb_compute_initial_elimination_offset): New function.
7231         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
7232         unneccessary rounding.
7233         * config/arm/arm.h (target_abi_name): Declare.
7234         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7235         arm_abi_type, ARM_DEFAULT_ABI): Define.
7236         (ARM_FLAG_ATPCS): Remove.
7237         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7238         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7239         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7240         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7241         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7242         Contitionalize on ABI, not CPU.
7243         (struct arm_stack_offsets): Define.
7244         (struct machine_function): Add stack_offsets.  Remove frame_size.
7245         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7246         pushed.
7247         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7248         doubleword alignment.
7249         (THUMB_INITIAL_ELIMINATION_OFFSET,
7250         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7251         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7252         * config/arm/arm.md (align_8): Enable for all targets.
7253         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7254         (ARM_DEFAULT_ABI): Define.
7255         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7256         -mstructure-size-boundary.
7257
7258 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7259
7260         * configure.ac: Check for -Wno-variadic-macros; don't use
7261         -pedantic (in stage 1 or a simple 'make all') unless it's available,
7262         and if it's available, use it.  Also, clean up check for
7263         -Wno-long-long.
7264         * configure: Regenerate.
7265
7266 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7267
7268         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7269         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7270         (MULTILIB_DEFAULTS): Use it.
7271         (MIPS_CPU_STRING_DEFAULT): Remove.
7272         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7273         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
7274         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
7275         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7276         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
7277         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7278         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
7279         accordingly.
7280
7281 2004-03-24  DJ Delorie  <dj@redhat.com>
7282             Richard Sandiford  <rsandifo@redhat.com>
7283
7284         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7285         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7286         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7287         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7288         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7289         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7290         if TARGET_FIX_VR4122.
7291         * config/mips/mips.md (define_attr length): Account for nops inserted
7292         after macc and dmult when using -mfix-vr4122-bugs.
7293         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7294         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7295         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
7296         * config/mips/vr4122-div.S: New file.
7297         * doc/invoke.texi: Document -mfix-vr4122-bugs.
7298
7299 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7300
7301         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7302         (TARGET_MIPS4130): New macro.
7303         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7304         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7305         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7306         with PROCESSOR_R4130.
7307         * config/mips/mips.md (define_attr cpu): Add r4130.
7308         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7309
7310 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7311             Richard Sandiford  <rsandifo@redhat.com>
7312
7313         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7314
7315 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
7316
7317         PR preprocessor/14438
7318         * cpplib.c (do_pragma): Remove line_change call after pragma
7319         handler.
7320
7321 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
7322
7323         * doc/extend.texi (ARM Built-in Functions): Replace with correct
7324         declarations.
7325
7326 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7327
7328         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7329         if flag_unsafe_math_optimizations.
7330         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7331         and TARGET_80387 expand using truncdfsf2_noop pattern.
7332         (truncxfsf2): Likewise using truncxfsf2_noop.
7333         (truncxfdf2): Likewise using truncxfdf2_noop.
7334         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7335
7336 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
7337
7338         * hooks.c (hook_constcharptr_tree_null): New hook.
7339         * hooks.h (hook_constcharptr_tree_null): New prototype.
7340         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7341         * target.h (mangle_fundamental_type): New target hook.
7342         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7343         target hook at rs6000_mangle_fundamental_type.
7344         (rs6000_mangle_fundamental_type): New function.
7345         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7346
7347 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
7348
7349         PR 12267, 12391, 12560, 13129, 14114, 14133
7350         * c-tree.h: Forward declare struct c_binding.  Declare
7351         c_override_bindings_to_false.  Update prototypes.
7352         (struct lang_identifier): Update comments.  Change fields to be
7353         struct c_binding *.
7354         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7355         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7356         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7357         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7358         * c-common.h: Update prototypes.
7359         * c-decl.c (struct c_scope): Update commentary.  Remove names,
7360         names_last, parms, parms_last, tags, and shadowed fields.  Add
7361         bindings and depth fields.
7362         (scope_freelist): Move to more appropriate location.
7363         (c_print_identifier): Update for changes to struct lang_identifier.
7364         (objc_mark_locals_volatile): Update for new bindings structures.
7365         (global_bindings_p): Honor c_override_global_bindings_to_false.
7366         (pushlevel): Rename to push_scope; take no arguments; use the
7367         scope_freelist; initialize scope->depth and check for overflow.
7368         (poplevel): Rename to pop_scope; totally rewritten for new bindings
7369         structures.
7370         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7371         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
7372         Improve some commentary.  Adjust handling of forward parm decls.
7373         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7374         Preserve C_DECL_IN_EXTERNAL_SCOPE.
7375         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
7376         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
7377         decls.  Rewrite for new bindings structures.  Improve commentary.
7378         Eliminate the copy_node call.
7379         (implicit_decl_warning): Use the "diag" idiom (as seen in
7380         locate_old_decl) to reduce code duplication; call locate_old_decl
7381         if appropriate.  Relocate to remove need for forward declaration.
7382         (implicitly_declare): Adjust for new bindings structures.  Kludge
7383         around Objective-C not-really-builtin functions.
7384         (undeclared_variable): Improve diagnostics.  If current_function_decl
7385         is nonnull but current_function_scope is null, use current_scope.
7386         Use bind.
7387         (lookup_tag): Adjust for new bindings structures.  Kludge around
7388         Objective-C's tag declarations that wind up in the external scope.
7389         (lookup_name): Adjust for new bindings structures.  Kludge around
7390         c-common.c's pseudo-typedefs that wind up in the external scope.
7391         (lookup_name_current_level): Rename lookup_name_in_scope; take a
7392         second argument indicating the scope to examine; rewrite for
7393         new bindings structures.
7394         (c_init_decl_processing): Adjust for renamed functions.  Do not
7395         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7396         First scope pushed is the external scope, not the global scope.
7397         (builtin_function): Use bind, not pushdecl.  Adjust other bits
7398         for new data structures.  Keep track of builtins that should be
7399         made visible automatically.
7400         (start_decl): Adjust diagnostics.  Remove unnecessary call to
7401         expand_decl.
7402         (grokparms): Return 0 if arg_types is error_mark_node.
7403         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7404         reversed sense.  Rewrite for new bindings structures.  Do not
7405         leave any decls in the scope, to prevent pop_scope from doing
7406         contradictory things with them.
7407         (finish_struct, finish_enum): Remove redundant diagnostics.
7408         (build_enumerator): Don't cascade diagnostics for error_mark_node.
7409         Mark location where -pedantic changes the meaning of the program.
7410         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7411         parameter decls into the function's scope structure using bind.
7412         Warn here about function definitions in the wrong style.
7413         Adjust diagnostics.
7414         (store_parm_decls): Correct the determination of whether a
7415         function was defined with a prototype.
7416         (c_write_global_declarations): Operate on all file decls and on
7417         the external scope.  Split body of the loop to...
7418         (c_write_global_declarations_1): ... this new function, to avoid
7419         code duplication.
7420         (truly_local_externals, first_builtin_decl, last_builtin_decl)
7421         (make_scope, pop_scope, in_parm_level_p, set_block)
7422         (any_external_decl, record_external_decl, bind_label, getdecls)
7423         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7424         (c_reset_state): Delete.
7425         (visible_builtins, c_override_global_bindings_to_false)
7426         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7427         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7428         (external_scope, binding_freelist, bind, free_binding_and_advance)
7429         (push_file_scope, pop_file_scope): New.
7430         (pushtag, pushdecl_top_level, lookup_label, declare_label)
7431         (define_label, c_make_fname_decl, finish_decl)
7432         (mark_forward_parm_decls, build_compound_literal)
7433         (grokdeclarator, start_function, check_for_loop_decls)
7434         (identifier_global_value, record_builtin_type): Minor adjustments
7435         for new bindings structures.  Improve diagnostics and commentary.
7436         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7437         pushlevel/poplevel respectively.
7438         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7439         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7440         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
7441         correct loop over multiple translation units; call fatal_error if
7442         requested to compile more than one file at once.  (This disables
7443         IMA temporarily - an up-front error being preferable to a crash.)
7444         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7445         (all actions): Adjust calls to pushlevel/poplevel.
7446         (parsing_iso_function_signature): Delete.
7447         (extdef_1): Fold into extdef.
7448         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
7449         warn here about function definitions in the wrong style.
7450         (after_tyle_declarator, parm_declarator_starttypename)
7451         (parm_declarator_nostarttypename, notype_declarator): Remove
7452         commented-out productions.
7453         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7454         an empty TREE_LIST node.  Adjust calls to get_parm_info.
7455         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7456         to suppress -Wold-style-definition after this error.
7457         (c_parse_file): Don't clear the binding stack or call
7458         finish_fname_decls here.  Correct comment.
7459         * c-typeck.c (same_translation_unit_p): Export.
7460         (common_type): Use c_override_global_bindings_to_false, not
7461         pushlevel/poplevel/declare_parm_level.
7462         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
7463         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
7464         and LANG_HOOKS_GETDECLS with do-nothing stubs.
7465         * objc/objc-lang.c: Likewise.
7466         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
7467         get_parm_info.
7468         (OBJC_VOID_AT_END): Delete; replace all uses
7469         with void_list_node.
7470         (generate_forward_declaration_to_string_table): Delete.
7471         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
7472
7473         * coverage.c (create_coverage): Don't pushdecl anything.
7474         * langhooks.c (lhd_clear_binding_stack): Call
7475         lang_hooks.decls.poplevel, not poplevel.
7476         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
7477         circular list rather than going into an infinite loop.
7478
7479 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
7480
7481         * optabs.c (expand_binop): When synthesizing double word rotates
7482         from single word shifts, use a new register target if the provided
7483         target is not a REG already.
7484
7485 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7486
7487         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
7488         * c-common.c (handle_mode_attribute): Add extra arg to
7489         build_pointer_type_for_mode and build_reference_type_for_mode.
7490         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
7491         for INTEGER_CST.
7492         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
7493         Chain pointers via TYPE_NEXT_PTR_TO.
7494         (build_reference_type_for_mode): Similarly.
7495         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
7496         and build_reference_type_for_mode.
7497         (tree_check4_failed): New function.
7498         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
7499         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
7500         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
7501         Add check.
7502
7503 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7504
7505         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
7506         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
7507         when both A and B are nonnegative.
7508         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
7509         nonzero.
7510
7511 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7512
7513         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
7514         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
7515
7516 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7517
7518         PR optimization/14669
7519         * fold-const.c (fold): Only unwiden integer comparisons for equality
7520         and inequality operators, or when the signedness doesn't change.
7521
7522 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
7523
7524         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
7525         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
7526         * config/sparc/t-linux: New file.
7527
7528 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
7529
7530         * gcse.c (can_assign_to_reg_p): New function, split out from...
7531         (want_to_gcse_p): ...here.
7532         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
7533         the rhs of a store.
7534
7535 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
7536
7537         * c-typeck.c (same_translation_unit_p): Fix pasto.
7538
7539 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
7540
7541         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
7542         (PARAM_MAX_SCHED_REGION_INSNS): New.
7543         * sched-rgn.c: Include params.h
7544         (MAX_RGN_BLOCKS): Delete.
7545         (MAX_RGN_INSNS): Delete.
7546         (too_large): Return bool.  Convert to PARAM_VALUE.
7547         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
7548         * doc/invoke.texi (param): Document max-sched-region-blocks and
7549         max-sched-region-insns.
7550
7551 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7552
7553         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
7554         for base types.
7555
7556 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7557
7558         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
7559         change.
7560
7561 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
7562
7563         PR c/14069
7564         * c-decl.c (finish_struct): Change type of incorrect flexible array
7565         field into error_mark_node.
7566
7567 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
7568
7569         PR target/14580
7570         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
7571         who are not local for Darwin PIC.
7572
7573 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
7574
7575         * regrename.c (regrename_optimize): Set regs_ever_live for all
7576         registers introduced as replacement.
7577
7578 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
7579
7580         PR middle-end/14470
7581         * expr.c (mark_queue): New function.
7582         (emit_insns_enqueued_after_mark): New function replacing
7583         emit_queue.  Clear the body of emitted queued insns.
7584         (emit_queue): Call emit_insns_enqueued_after_mark.
7585         (store_expr): Mark the increment queue on entry.  Emit
7586         only the incrementations queued when expanding the source.
7587
7588 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
7589
7590         * configure.ac: Allow --disable-coverage-flags (for the future benefit
7591         of top level bootstrap, and consistency).  Reindent.
7592         * configure: Regenerate.
7593
7594 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
7595
7596         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
7597         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
7598         unnecessary casts.
7599
7600 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
7601
7602         PR target/14291
7603         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
7604         __MINGW32__.
7605
7606 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7607
7608         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
7609         to nonimmediate_operand.
7610         ("*doloop_di"): Likewise.
7611
7612 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
7613
7614         * real.h (struct real_value): Use the same type for all
7615         bitfields.  Rename exp to uexp.
7616         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
7617         Adjust all uses of exp...
7618         * builtins.c: ... here, ...
7619         * emit-rtl.c: ... here, and ...
7620         * real.c: ... and here.
7621
7622 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7623
7624         * pretty-print.c (pp_base_maybe_space): New function.
7625         * pretty-print.h (pp_base_maybe_space): Declare.
7626         (pp_maybe_space): New macro.
7627
7628 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7629
7630         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
7631
7632 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7633
7634         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
7635         of using register multiplication cost.
7636         (expand_mult): Adapt choose_mult_variant call.
7637         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
7638         of MODE; pass appropriate cost bound.  Adjust result when
7639         performing signed multiplication by a negative constant.
7640         Don't use intermediate modes larger than word_mode.
7641
7642 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7643
7644         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
7645         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
7646         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
7647         * explow.c (expr_size): Likewise.
7648         * expr.h (placeholder_list, find_placeholder): Deleted.
7649         * expr.c (store_constructor): Likewise.
7650         (get_inner_reference): Likewise.  Also don't call find_placeholder.
7651         (placeholder_list, find_placeholder): Deleted.
7652         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
7653         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
7654         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
7655         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
7656         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
7657         Likewise.
7658         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
7659         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
7660         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
7661         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
7662         Clean up by using first_rtl_op.
7663         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
7664         (substitute_placeholder_in_expr): New function.
7665         * tree.def (WITH_RECORD_EXPR): Deleted.
7666         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
7667         (substitute_placeholder_in_expr): New.
7668
7669 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
7670
7671         * dojump.c (prefer_and_bit_test): Fix which part of
7672         the and_test is replaced.
7673
7674 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
7675
7676         * frontends.texi: Add missing line.
7677
7678 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
7679             Chris Devers  <cdevers@pobox.com>
7680             Joseph S. Myers  <jsm@polyomino.org.uk>
7681
7682         * doc/frontends.texi: Rewrite.
7683         * doc/gcc.texi: Update last modification date.
7684
7685 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
7686
7687         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
7688         message before redirecting the edge.
7689
7690 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7691
7692         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
7693         flag.
7694         * explow.c (force_not_mem): Set REG_POINTER flag according to
7695         MEM_POINTER one.
7696         * rtl.h (MEM_POINTER): New macro.
7697         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
7698         for MEM_POINTER.
7699
7700 2004-03-20  Roger Sayle  <roger@eyesopen.com>
7701
7702         PR target/13889
7703         * cse.c (fold_rtx): Avoid substituting constants into unary
7704         conversion operations.
7705
7706 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7707
7708         * fold-const.c (fold): Replace "expr" with "t".
7709
7710 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
7711
7712         PR c/12373
7713         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
7714         DECL_ORIGINAL_TYPE if there isn't one.
7715
7716 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7717
7718         * fold-const.c (fold): Replace "final_type" with "type".
7719         Remove variable "final_type".
7720
7721 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7722
7723         * fold-const.c (fold): Constify "type".
7724         Replace "TREE_TYPE (t)" with "type".
7725
7726 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7727
7728         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
7729         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
7730         via (*targetm.foo) () with targetm.foo ().
7731
7732 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
7733
7734         PR other/14630
7735         * doc/install.texi: Add info directory category and entry.
7736
7737 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7738
7739         * fold-const.c (fold): Replace "t" with "tem" where it is used
7740         as a temporary variable.  Remove "orig_t" and all of its uses.
7741
7742 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7743
7744         * fold-const.c (fold): Remove variable "invert".
7745         Move the handling of relational expressions that can be folded
7746         to a constant ...
7747         (fold_relational_const): ... here.
7748         (tree_expr_nonzero_p): New.
7749
7750 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
7751
7752         PR c/14635
7753         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
7754         DEF_GCC_BUILTIN.
7755
7756 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
7757
7758         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
7759         (GTFILES): Add $(srcdir)/dojump.h.
7760         (gt-dojump.h): New dependency.
7761         * dojump.c (and_reg, and_test, shift_test): New static variables.
7762         (prefer_and_bit_test): New function.
7763         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
7764
7765 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7766
7767         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
7768         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
7769         reorg.c, tree.h: Fix comment typos.
7770
7771 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7772
7773         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
7774         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
7775         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
7776         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
7777         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
7778         vmsdbgout.c: Replace calls via (*targetm.foo) () with
7779         targetm.foo ().
7780
7781 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
7782
7783         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
7784         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
7785         always_inline attribute.
7786         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
7787         Treat expansion as completed even if literal argument is
7788         invalid (so that other expansions are not tried in vain).
7789
7790 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7791
7792         * loop-doloop.c (add_test): Replace GEN_INT (0) with
7793         const0_rtx.
7794
7795 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7796
7797         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
7798         ...
7799         (fold_abs_const): ... here.
7800
7801 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7802
7803         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
7804
7805 2004-03-19  Denis Chertykov  <denisc@overta.ru>
7806
7807         PR target/11520
7808         * config/avr/avr.md ("call_insn"): Handle explicit integer
7809         specially.
7810         (call_value_insn): Likewise.
7811
7812 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7813
7814         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
7815
7816 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7817
7818         * fold-const.c (negate_expr): Move the handling of constants
7819         ...
7820         (fold_negate_const): ... here.
7821
7822 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7823
7824         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
7825         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
7826         * tree.c (debug_no_type_hash): Deleted.
7827         (type_hash_canon): Abort if passed a variant.
7828         Check lang_hooks.types.hash_types.
7829         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
7830         (build_array_type): Remove unnecessary allocation of pointer type.
7831         (build_complex_type): Properly qualify resulting type.
7832
7833 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
7834
7835         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
7836
7837 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
7838
7839         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
7840         (expand_mult): ...here.
7841         (extract_high_half): New, split out from expand_mult_highpart.
7842         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
7843         (expand_highpart): Evaluate the cost of a shift/add sequence,
7844         then see if any of the specialized optabs are cheaper.
7845
7846 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
7847
7848         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
7849
7850 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7851
7852         * convert.c (convert_to_real): Add more math builtins.
7853
7854 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7855
7856         * convert.c (convert_to_real): Reformat using switch stmt.
7857
7858 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7859
7860         * c-common.c (pointer_int_sum): Do not complain about using
7861         pointers to pointers-to-members.
7862
7863 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
7864
7865         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
7866         have moved to the target hooks structure".
7867
7868 2004-03-18  James E Wilson  <wilson@specifixinc.com>
7869
7870         * config/mips/mips.md (type): Split move into arith and fmove.  Split
7871         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
7872         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
7873         Likewise.
7874         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
7875         Likewise.
7876         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
7877         rm7_fp_quick): Likewise.
7878         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
7879         rm9k_fquick): Likewise.
7880         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
7881         Likewise.
7882         (ir_sr70_icmp): Delete.
7883
7884 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7885
7886         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
7887         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
7888         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
7889         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
7890         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
7891         Protect with proper check.
7892         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
7893         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
7894         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
7895         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
7896         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
7897         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
7898         not TYPE_FIELDS.
7899         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
7900
7901 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
7902
7903         * gcse.c (eliminate_partially_redundant_loads): Reject change if
7904         dest is set between beginning and current insn.
7905
7906 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7907
7908         * c-decl.c (grokdeclarator): Do not complain about redeclaring
7909         visible "static" identifiers "extern" in a local scope.
7910         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
7911         post-increments/decrements.
7912
7913 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
7914
7915         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
7916         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
7917         (xtensa_va_start): Remove assignment to current_function_arg_words.
7918
7919 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
7920
7921         * alias.c (record_set): Detect the case where a register is assigned
7922         a new value that has the same base term as the old one.
7923
7924 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7925
7926         * doloop.c: Removed.
7927         * loop-doloop.c: New file.
7928         * Makefile.in (doloop.o): Remove.
7929         (loop-doloop.o): New.
7930         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
7931         * cfgloopanal.c (get_loop_level): New function.
7932         * loop-iv.c (iv_number_of_iterations): Handle case when loop
7933         is leaved immediatelly.
7934         * loop.c (strength_reduce): Do not call doloop optimization.
7935         * loop.h (LOOP_BCT): Removed.
7936         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
7937         (rest_of_handle_loop2): Call doloop_optimize_loops.
7938         (rest_of_compilation): Test for optimizations moved to
7939         rest_of_handle_loop2.
7940
7941 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
7942
7943         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
7944         for mixed mode.
7945         (rs6000_emit_prologue): Ditto.
7946         (rs6000_emit_epilogue): Ditto.
7947         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
7948         macro for mixed mode.
7949
7950 2004-03-18  Jan Hubicka  <jh@suse.cz>
7951
7952         * predict.c (propagate_freq): Compute correctly frequency of
7953         EXIT_BLOCK.
7954
7955 2004-03-17  Eric Christopher  <echristo@redhat.com>
7956
7957         * builtins.c (apply_args_size): Use reg_raw_mode.
7958         (apply_result_size): Ditto.
7959
7960 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7961
7962         PR target/14620
7963         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
7964
7965 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
7966
7967         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
7968         32-bit builds when defaulting to 32-bit.
7969
7970 2004-03-17  Jan Hubicka  <jh@suse.cz>
7971
7972         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
7973         array.
7974
7975 2004-03-17  James E Wilson  <wilson@specifixinc.com>
7976
7977         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
7978         (hazard_nop): Change type to nop.
7979         (type): Split arith into arith, shift, slt, clz.  Delete darith.
7980         Fix all uses.  Change arith to multi if more than one insn emitted.
7981         * config/mips/5400.md (ir_vr54_arith): Likewise.
7982         * config/mips/5500.md (ir_vr55_arith): Likewise.
7983         * config/mips/7000.md (rm7_int_other): Likewise.
7984         * config/mips/9000.md (rm9k_int): Likewise.
7985         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
7986
7987 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
7988
7989         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
7990         to hold the subtype tree instead of recomputing it several times.
7991
7992 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
7993
7994         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
7995         CC_INVERT.
7996         * config/mn10300/mn10300.md (cc): Remove "invert".
7997
7998 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7999
8000         * builtins.c (integer_valued_real_p): Add builtin rint.
8001         (fold_builtin): Likewise.
8002         * convert.c (convert_to_real): Likewise.
8003
8004         * convert.c (convert_to_real): Fix typos in `long double'
8005         builtins.
8006
8007 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8008
8009         PR c++/14481
8010         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8011         generated COMPOUND_EXPRs.
8012
8013 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8014
8015         * config/h8300/t-rtems (h8300-*-rtems*): New.
8016
8017 2004-03-16  Eric Christopher  <echristo@redhat.com>
8018
8019         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8020
8021 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8022
8023         * config/i386/i386-protos.h: Add a prototype for
8024         ix86_reverse_condition.
8025         * config/i386/i386.c (ix86_reverse_condition): New.
8026         * config/i386/i386.h (REVERSE_CONDITION): Use
8027         ix86_reverse_condition.
8028         * config/i386/i386.md: Use ix86_reverse_condition instead of
8029         REVERSE_CONDITION.
8030
8031 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8032
8033         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8034
8035 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8036
8037         PR bootstrap/12974
8038         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8039
8040 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8041
8042         * c-common.c (c_common_type_for_mode): Build vector types on
8043         demand.
8044         (handle_mode_attribute): Deprecate using the mode attribute
8045         to create vector types.  Fix indentation.
8046         (vector_type_node_list): Remove.
8047         (handle_vector_size_attribute): Create vector types on demand.
8048         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8049         * c-typeck.c (comptypes): Make vector types compatible if they
8050         have the same underlying mode.
8051         (convert_for_assignment): Use comptypes to convert between
8052         vector types.
8053         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8054         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8055         vector types.
8056         * tree.h: Remove vector types.
8057         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8058         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8059         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8060         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8061         * doc/extend.texi (Vector Types): Document how to use the
8062         vector_size attribute to create vectors, rather than mode.
8063
8064         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8065         * config/i386/emmintrin.h: Likewise.
8066         * config/i386/mmintrin.h: Likewise.
8067         * config/i386/xmmintrin.h: Likewise.
8068         * config/sh/ushmedia.h: Likewise.
8069
8070 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8071
8072         * config/freebsd-spec.h, config/arc/arc-protos.h,
8073         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8074         config/arm/linux-gas.h, config/arm/semi.h,
8075         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8076         config/ia64/freebsd.h, config/mips/7000.md,
8077         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8078         config/sparc/pbd.h: Update copyright.
8079
8080 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8081
8082         PR target/14577
8083         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
8084
8085 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8086
8087         * combine.c (combine_simplify_rtx): Remove the "last"
8088         parameter and its documentation.  Adjust recursive calls.
8089         (simplify_logical): Always perform the only simplification
8090         controlled by "last", if the simplified expression is
8091         actually different.
8092         (try_combine): Do not pass the "last" parameter to
8093         combine_simplify_rtx.
8094
8095 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8096
8097         PR target/14599
8098         * config/mips/mips.md (UNSPEC_GP): New constant.
8099         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8100         an UNSPEC instead of (reg $gp).
8101         (mips16_gp_pseudo_reg): Change accordingly.
8102         (print_operand): Print $gp directly when handling CONST_GP_P.
8103
8104 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8105
8106         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8107         * longlong.h: Make code 68060 clean when compiling for m68060.
8108
8109 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8110
8111         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8112         * doc/md.texi: Clarify description of "i" constraint.
8113
8114 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8115
8116         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8117         Split store into store, fpstore, fpidxstore.  Fix all uses.
8118         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8119         Likewise.
8120         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8121         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8122         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8123         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8124         ir_sr70_fstore): Likewise.
8125
8126 2004-03-15  Richard Henderson  <rth@redhat.com>
8127
8128         PR middle-end/14535
8129         * except.c (collect_one_action_chain): Record action for cleanup
8130         outer of exception spec.
8131
8132 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8133
8134         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8135         Fix the check for abort and only do the mmap if we can.
8136
8137 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8138
8139         * config/sparc/sparc.h: Rework comments about the code model
8140         in 64-bit environment and the mode 'Pmode'.
8141         * doc/invoke.texi (SPARC options): Rework description of the
8142         different code models supported in 64-bit environment.
8143
8144 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8145
8146         * defaults.h (REVERSIBLE_CC_MODE): Define.
8147         * jump.c (reversed_comparison_code_parts): Don't check if
8148         REVERSIBLE_CC_MODE is defined.
8149
8150 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8151
8152         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8153         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8154         hosthooks.h, params.h, ra-colorize.c, web.c,
8155         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8156         config/avr/avr-protos.h, config/avr/avr.md,
8157         config/fr30/fr30-protos.h, config/fr30/fr30.md,
8158         config/h8300/fixunssfsi.c, config/i386/darwin.h,
8159         config/i386/freebsd.h, config/i386/freebsd64.h,
8160         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8161         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8162         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8163         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8164         config/pa/pa64-regs.h, config/rs6000/aix41.h,
8165         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8166         config/sparc/aout.h, config/sparc/freebsd.h,
8167         config/sparc/litecoff.h, config/vax/vax-protos.h,
8168         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8169         copyright.
8170
8171 2004-03-15  Paul Brook  <paul@codesourcery.com>
8172
8173         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8174
8175 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8176
8177         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8178         (pp_c_cv_qualifier): Document.
8179         (pp_c_space_for_pointer_operator): Likewise.
8180         (pp_c_integer_constant): Likewise.
8181         (pp_c_identifier): Likewise.
8182         (pp_c_init_declarator): Don't print function body.
8183
8184 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8185
8186         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8187         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8188         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8189         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
8190         wording and grammar.
8191
8192 2004-03-14  Roger Sayle  <roger@eyesopen.com>
8193
8194         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8195         with lang_hooks.foo ().
8196         * builtins.c (expand_builtin_va_arg): Likewise.
8197         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8198         c_common_type_for_mode, c_common_nodes_and_builtins,
8199         handle_mode_attribute, handle_vector_size_attribute): Likewise.
8200         * c-convert.c (convert): Likewise.
8201         * c-format.c (check_format_types): Likewise.
8202         * c-objc-common.c (c_tree_printer): Likewise.
8203         * c-typeck.c (build_unary_op, build_conditional_expr,
8204         build_binary_op): Likewise.
8205         * calls.c (try_to_integrate, expand_call,
8206         emit_library_call_value_1): Likewise.
8207         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8208         Likewise.
8209         * cgraphunit.c (record_call_1, cgraph_analyze_function,
8210         cgraph_expand_function): Likewise.
8211         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8212         * coverage.c (build_fn_info_type, build_ctr_info_type,
8213         build_gcov_info, create_coverage): Likewise.
8214         * dbxout.c (dbxout_init): Likewise.
8215         * diagnostic.c (diagnostic_report_current_function): Likewise.
8216         * dojump.c (do_jump): Likewise.
8217         * dwarf2out.c (dwarf2_name): Likewise.
8218         * except.c (init_eh): Likewise.
8219         * explow.c (expr_size, int_expr_size): Likewise.
8220         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8221         Likewise.
8222         * expr.c (store_expr, store_constructor, safe_from_p,
8223         expand_expr_real, do_store_flag, try_casesi): Likewise.
8224         * function.c (push_function_context_to, pop_function_context_from,
8225         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8226         put_var_into_stack, allocate_struct_function, current_function_name):
8227         Likewise.
8228         * integrate.c (copy_decl_for_inlining, expand_inline_function):
8229         Likewise.
8230         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8231         lhd_print_error_function): Likewise.
8232         * opts.c (handle_option, decode_options): Likewise.
8233         * passes.c (open_dump_file): Likewise.
8234         * print-tree.c (print_node): Likewise.
8235         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8236         expand_decl_cleanup, emit_case_nodes): Likewise.
8237         * stor-layout.c (variable_size): Likewise.
8238         * toplev.c (announce_function, wrapup_global_declarations,
8239         check_global_declarations, compile_file, default_tree_printer,
8240         process_options, lang_dependent_init, finalize): Likewise.
8241         * tree-dump.c (dequeue_and_dump): Likewise.
8242         * tree-inline.c (remap_decl, remap_block, copy_body_r,
8243         initialize_inlined_parameters, declare_return_variable,
8244         inlinable_function_p, expand_call_inline, optimize_inline_calls,
8245         walk_tree, copy_tree_r): Likewise.
8246         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8247         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8248         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8249         variably_modified_type_p, dump_tree_statistics): Likewise.
8250         * varasm.c (assemble_variable, compare_constant, copy_constant,
8251         force_const_mem, compute_reloc_for_constant, output_constant,
8252         output_addressed_constants, initializer_constant_valid_p): Likewise.
8253
8254 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
8255
8256         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8257
8258 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
8259
8260         * doc/install.texi: Reflect autoconf and automake version for
8261         libffi. Update autoconf version to 2.59.
8262
8263 2004-03-13  Roger Sayle  <roger@eyesopen.com>
8264
8265         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8266         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8267         make_range, build_range_check, fold_range_test, unextend,
8268         constant_boolean_node, fold_binary_op_with_conditional_arg,
8269         fold_truthop, fold_mathfn_compare, fold_inf_compare,
8270         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8271         with lang_hooks.foo ().
8272
8273 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
8274
8275         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8276
8277 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
8278
8279         * doc/install.texi: Note status of -fnew-ra.
8280
8281 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8282
8283         PR middle-end/14470
8284         * expr.c (store_expr): Call emit_queue before generating the move
8285         from the temporary to the original target.  Protect the temporary
8286         from emit_queue.
8287
8288 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
8289
8290         PR target/14533
8291         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8292         other than UNSPEC_GOTOFF.
8293
8294 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
8295
8296         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
8297         to arm_legitimate_index_p.  Update all callers with SET as default
8298         value.
8299         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
8300         range if OUTER is a sign-extend operation on QImode.  Correctly
8301         reject shift operations on sign-extended QImode addresses.
8302         (bad_signed_byte_operand): Delete.
8303         (arm_extendqisi_mem_op): New function.
8304         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
8305         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
8306         constraints.
8307         (CONSTRAINT_LEN): New.
8308         (EXTRA_CONSTRAINT): Delete.  Replace with...
8309         (EXTRA_CONSTRAINT_STR): ... this.
8310         (PREDICATE_CODES): Remove bad_signed_byte_operand.
8311         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
8312         is now always default.
8313         (define_splits for bad sign-extend loads): Delete.
8314         (arm_extendqisi, arm_extendqisi_v5): Likewise.
8315         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8316         Rework 'U' constraint to 'Uv'.
8317         * arm-protos.h: Remove bad_signed_byte_operand.  Add
8318         arm_extendqisi_mem_op.
8319         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8320         Add Uq constraint.
8321
8322 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
8323
8324         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8325         with targetm version.
8326
8327         PR target/14567
8328         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8329         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8330         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8331         Update all users of RS6000_ARG_SIZE.
8332         (function_arg_advance): Count fregno using mode size.
8333         (function_arg): Handle long double split over regs and memory.
8334         (function_arg_partial_nregs): Likewise.
8335         (rs6000_va_arg): Repackage complex args.
8336
8337 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
8338
8339         PR target/14047
8340         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8341         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8342         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8343
8344 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
8345
8346         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8347         prototype.
8348         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8349         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8350
8351 2003-03-12  Andrew Pinski  <apinski@apple.com>
8352
8353         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8354         Use ret instead of result. Use addr instead of base.
8355
8356 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
8357
8358         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8359         fixes required by libstdc++ and update installation instructions
8360         for libstdc++.a.
8361
8362 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
8363
8364         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8365         leading '@' on fastcall symbols before stripping suffix.
8366
8367 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8368
8369         * combine.c (unmentioned_reg_p): New function to check whether an
8370         expression is a "specialization" of another, i.e. that there are
8371         no registers or memory references mentioned in the first that don't
8372         appear in the second.
8373         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8374         (combine_instructions): Also try combining instructions using the
8375         REG_EQUAL note from a preceding log-linked instruction.
8376
8377 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8378
8379         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8380
8381 2004-03-12  Matt Austern  <austern@apple.com>
8382
8383         * target.h (struct gcc_target): New target hook, unwind_label.
8384         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8385         * output.h (default_emit_unwind_label): New function.
8386         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8387         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8388         (TARGET_SUPPORTS_HIDDEN): New target macro.
8389         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8390         that corresponds to this FDE.
8391         (FRAME_BEGIN_LABEL): Allow target to override default label.
8392         (output_call_frame_info): If FDEs are linknonce, then use extra
8393         indirection for FDE encoding, output a label for each FDE, and
8394         output an empty label for each function without an FDE.
8395         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8396         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8397         decls with DECL_ONE_ONLY set, if that macro is defined.
8398         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8399         for a SUPPORTS_ONE_ONLY target.
8400         * config/darwin-protos.h (darwin_unique_section): Declare.
8401         (darwin_asm_named_section): Likewise.
8402         (darwin_section_type_flags): Likewise.
8403         (darwin_non_lazy_pcrel): Likewise.
8404         (darwin_emit_unwind_label): Likewise.
8405         (darwin_make_decl_one_only): Likewise.
8406         * config/darwin.c (machopic_finish): Get rid of tweak that
8407         eliminate stubs for symbols that are defined.
8408         (darwin_encode_section_info): Don't treat weak functions as defined.
8409         (darwin_make_decl_one_only): Define.
8410         (darwin_asm_named_section): Likewise.
8411         (darwin_section_type_flags): Likewise.
8412         (darwin_unique_section): Likewise.
8413         (darwin_emit_unwind_label): Likewise.
8414         (darwin_non_lazy_pcrel): Likewise.
8415         (darwin_asm_output_dwarf_delta): Difference between two labels is
8416         local only if both labels are local.
8417         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8418         (ASM_MAKE_LABEL_LINKONCE): Likewise.
8419         (TARGET_SUPPORTS_HIDDEN): Likewise.
8420         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8421         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8422         (FRAME_BEGIN_LABEL): Likewise.
8423         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8424         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8425         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8426         (TARGET_ASM_UNIQUE_SECTION): Define.
8427         (EH_FRAME_SECTION_NAME): Define.
8428         (EH_FRAME_SECTION_ATTR): Likewise.
8429         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8430         (TARGET_ASM_NAMED_SECTION): Likewise.
8431         (TARGET_SECTION_TYPE_FLAGS): Likewise.
8432         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8433         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8434         TARGET_ASM_EMIT_UNWIND_LABEL.
8435
8436 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8437
8438         * builtins.c (expand_builtin_mathfn): Add pow10* to the
8439         existing exp10* case.
8440         (expand_builtin): Likewise.
8441
8442 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
8443
8444         * doc/tm.texi (registers) <Values in Registers>: Add
8445         entry for REGMODE_NATURAL_SIZE.
8446
8447 2004-03-12  Richard Henderson  <rth@redhat.com>
8448
8449         PR target/14547
8450         * target.h (struct gcc_target): Move calls substructure before
8451         booleans.  Add split_complex_arg.
8452         * function.c (assign_parms, split_complex_args): Use it.
8453         * calls.c (expand_call): Likewise.
8454         (split_complex_values): Likewise.  Check for splittable types
8455         before allocating memory.
8456         (split_complex_types): Likewise.
8457         * system.h (SPLIT_COMPLEX_ARGS): Poison.
8458         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
8459         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
8460         * config/alpha/alpha.c (alpha_split_complex_arg): New.
8461         (TARGET_SPLIT_COMPLEX_ARG): New.
8462         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
8463         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
8464         (rs6000_override_options): Zap it for non-AIX.
8465         (rs6000_function_value): Use targetm.calls.split_complex_arg.
8466         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
8467         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
8468         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
8469         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
8470         SPLIT_COMPLEX_ARGS entry.
8471
8472 2004-03-11  Richard Henderson  <rth@redhat.com>
8473
8474         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
8475         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
8476         (alpha_emit_xfloating_arith): Update to match.
8477         (alpha_emit_xfloating_compare): Likewise.
8478         (alpha_emit_xfloating_cvt): Likewise.
8479         (alpha_emit_xfloating_libcall): Take already built symbol,
8480         mark call const.
8481         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
8482         op1 in a register.
8483
8484 2004-03-11  Richard Henderson  <rth@redhat.com>
8485
8486         PR target/14539
8487         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
8488
8489         * simplify-rtx.c (simplify_relational_operation): Fix typo.
8490
8491 2004-03-11  Richard Henderson  <rth@redhat.com>
8492
8493         PR middle-end/14477
8494         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
8495
8496 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8497
8498         PR target/14262
8499         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
8500         defined, pass small BLKmode values in registers in the low-order part.
8501
8502 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8503
8504         * combine.c (if_then_else_cond): Check for NULL return value of
8505         simplify_gen_subreg.
8506
8507 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8508
8509         PR target/14496
8510         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
8511         TARGET_SINGLE_FLOAT.
8512
8513 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
8514
8515         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
8516         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
8517         * config/ia64/ia64.c (ia64_init_libfuncs): New.
8518         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
8519
8520 2004-03-11  Roger Sayle  <roger@eyesopen.com>
8521
8522         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
8523         -((int)X>>C) where C is an integer constant one bit less than the
8524         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
8525         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
8526
8527         * simplify-rtx.c (simplify_unary_operation): Also implement the
8528         above transformations at the RTL level.
8529
8530 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
8531
8532         * real.c (encode_ibm_extended): Do round low word.
8533
8534 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
8535
8536         * config/arm/arm.md (is_xscale): Comment this attribute and move
8537         it a bit further up in the file, closer to related attributes.
8538
8539 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
8540
8541         * config/host-solaris.c (sol_gt_pch_use_address): Add
8542         missing terminating marker to comment.
8543
8544 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8545
8546         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
8547         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
8548         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
8549         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
8550         move_operand as source predicate in all cases.
8551         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
8552         Test reg_or_0_operand.  Use move_operand as source predicate.
8553         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
8554         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
8555         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
8556         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
8557         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
8558         Use move_operand as source predicate.  Remove 'K' constraint.
8559         (*movqi_internal): Likewise movqi_internal.
8560         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
8561         reg_or_0_operand.  Use move_operand as source predicate.
8562         (*movsf_softfloat): Likewise movsf_internal2.
8563         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
8564         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
8565         (*movdf_softfloat): Likewise movdf_internal2.
8566         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
8567         for DImode if !TARGET_64BIT.
8568         (mips_legitimize_move): Simplify accordingly.
8569
8570 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8571
8572         PR/14362
8573         * var-tracking.c (struct variable_def): Added field refcount.
8574         (variable_htab_free): Decrease the refcount and delete variable
8575         only if there are no more references.
8576         (unshare_variable): New function.
8577         (vars_copy_1): Increase refcount instead of copying the variable.
8578         (variable_union): Share the variables where possible, unshare
8579         the variables if needed.
8580         (variable_different_p): Return false if var1 and var2 are
8581         the same structure.
8582         (variable_was_changed): Init the refcount of new variable.
8583         (set_frame_base_location): Unshare variable if needed.
8584         (set_variable_part): Init the refcount of new variable.
8585         Unshare the variables if needed.
8586         (delete_variable_part): Unshare the variables if needed.
8587         (emit_notes_for_differences_1): Init the refcount of new variable.
8588         (vt_add_function_parameters): Do not add function parameters to
8589         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
8590         (vt_initialize): Do not add frame_base_decl to IN set of
8591         ENTRY_BLOCK_PTR because it is unused anyway.
8592
8593 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8594
8595         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
8596         (vars_copy): Likewise.
8597         (variable_union): Likewise.
8598         (set_variable_part): Likewise.
8599         (delete_variable_part): Likewise.
8600
8601 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
8602
8603         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
8604         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
8605         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
8606         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
8607         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
8608         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
8609         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
8610         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
8611         config/stormy16/stormy16.c: Fix comment typos and formatting.
8612
8613 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
8614
8615         * configure: Regenerate, since I forgot to while committing Paolo's
8616         changes.
8617
8618 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
8619
8620         PR ada/14131
8621         Move language detection to the top level.
8622         * configure.ac: Remove code to detect languages,
8623         it now lives exclusively in the top level.
8624         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
8625         top level, renamed to ACX_PROG_GNAT.
8626
8627 2004-03-10  Richard Henderson  <rth@redhat.com>
8628
8629         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
8630         extra arguments.
8631         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
8632         and host_xmake_file fragments.
8633         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
8634         (gt_pch_restore): Similarly for gt_pch_use_address.
8635         (default_gt_pch_get_address): New.
8636         (mmap_gt_pch_get_address): Split out of gt_pch_save.
8637         (default_gt_pch_use_address): Split out of gt_pch_restore.
8638         (mmap_gt_pch_use_address): Likewise.
8639         * hooks.c (hook_voidp_size_t_null): Remove.
8640         (hook_bool_voidp_size_t_false): Remove.
8641         * hooks.h: Likewise.
8642         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
8643         default_ or mmap_ definitions.
8644         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
8645         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
8646         and gt_pch_use_address.
8647         * config/host-linux.c, config/host-solaris.c: New files.
8648         * config/x-linux, config/x-solaris: New files.
8649         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
8650         Update for changed definition.
8651         (darwin_rs6000_gt_pch_use_address): Likewise.
8652         * doc/hostconfig.texi: Update docs.
8653
8654 2004-03-10  Richard Henderson  <rth@redhat.com>
8655
8656         PR c/14517
8657         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
8658         except for pedantic c90 mode.
8659
8660 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
8661
8662         * configure.ac: Bump AC_PREREQ to 2.59.
8663         * configure: Regenerate.
8664
8665 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
8666
8667         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
8668         (exp10_optab, exp2_optab): Define corresponding macros.
8669         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
8670         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
8671         using exp10?f2 and exp2?f2 patterns.
8672         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
8673         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
8674         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
8675         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8676
8677         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
8678         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
8679         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
8680
8681 2004-03-10  Anthony Green  <green@redhat.com>
8682
8683         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
8684
8685 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8686
8687         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
8688         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
8689         __LONGDOUBLE128.
8690         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
8691         TARGET_OS_AIX_CPP_BUILTINS.
8692         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
8693         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
8694         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
8695         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
8696         previous change.
8697
8698 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8699
8700         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
8701
8702 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8703
8704         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8705         __LONGDOUBLE128 on AIX.
8706
8707 2004-03-10  Andrew Haley  <aph@redhat.com>
8708
8709         PR optimization/14381
8710         * function.c (expand_function_end): Emit a blockage insn before
8711         the epilogue when -fnon-call-exceptions is used.
8712
8713         * except.c (expand_start_all_catch): Make comment more accurate.
8714
8715 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8716
8717         PR target/14480
8718         * config/rs6000/t-rtems: Add missing file on branch.
8719
8720 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
8721
8722         * dbxout.c (dbxout_symbol_location): Do not output references
8723         to optimized-out constant pool symbols.
8724
8725 2004-03-10  Andreas Schwab  <schwab@suse.de>
8726
8727         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
8728         twon34_r.
8729
8730 2004-03-09  James E Wilson  <wilson@specifixinc.com>
8731
8732         * alias.c (alias_sets_might_conflict_p): New.
8733         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
8734         * common.opt (Wstrict-aliasing=): New.
8735         * flags.h (warn_strict_aliasing): Change type to int.
8736         * opts.c (warn_strict_aliasing): Change type to int.
8737         (common_handle_option): Handle OPT_Wstrict_aliasing_.
8738         * tree.h (alias_sets_might_conflict_p): Declare it.
8739         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
8740
8741 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
8742
8743         PR bootstrap/12371
8744         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
8745         (CALL_USED_REGISTERS): Likewise.
8746         (REG_CLASS_CONTENTS): Likewise.
8747         (REG_ALLOC_ORDER): New.
8748         (REGNO_REG_CLASS): Use regno_reg_class.
8749         * config/m68k/m68k.c: Add regno_reg_class array.
8750
8751 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
8752
8753         * config/ia64/ia64.md (divsi3): Fix algorithm.
8754           (udivsi3): Ditto.
8755           (setf_exp_xf): Remove '*' from name.
8756         * testsuite/gcc.dg/20040309-1.c: New test.
8757
8758 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
8759
8760         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
8761         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
8762         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
8763         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
8764         (sparc_aout_select_rtx_section): Don't check
8765         SUNOS4_SHARED_LIBRARIES.
8766         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
8767
8768 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
8769
8770         PR other/14474
8771         * doc/md.texi (Pattern Ordering, Dependent Patterns)
8772         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
8773         INTERNALS".
8774
8775 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
8776
8777         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
8778         (LIBGCC_SPEC): Update to match.
8779
8780 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
8781
8782         * c-decl.c (last_function_parms, last_function_parm_tags)
8783         (last_function_parm_others, current_function_parms)
8784         (current_function_parm_tags, current_function_parm_others):
8785         Delete.
8786         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
8787         New macros.
8788         (grokdeclarator): For function definitions, save the arg-info
8789         block from the declarator in DECL_ARGUMENTS.
8790         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
8791         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
8792         contains only PARM_DECLs.  Improve diagnostics.
8793         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
8794         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
8795         (store_parm_decls_newstyle): Take the function to operate on,
8796         and an arg-info block, as arguments; don't get anything from
8797         current_function_* globals.
8798         (store_parm_decls_oldstyle): Likewise.
8799         (store_parm_decls): Pass fndecl and its arg-info block down to
8800         store_parm_decls_newstyle/oldstyle.  Send functions with empty
8801         argument lists through store_parm_decls_newstyle to reduce
8802         overhead.
8803         (pushdecl): Comment on the problems with the call to copy_node.
8804         Clear DECL_ARGUMENTS of the old node after copying it, if it
8805         is an arg-info block instead of a chain of decls.
8806         (start_function): Do not manipulate current_function_parm* or
8807         last_function_parm*.
8808
8809 2004-03-09  Roger Sayle  <roger@eyesopen.com>
8810             Andrew Pinski  <pinskia@physics.uc.edu>
8811
8812         * ifcvt.c (noce_try_sign_mask): New function to transform
8813         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
8814         (noce_process_if_block): Call noce_try_sign_mask.
8815
8816 2004-03-09  Andrew Pinski  <apinski@apple.com>
8817
8818         * c-typeck.c (tagged_types_tu_compatible_p):
8819         Fix typo.
8820
8821 2004-03-09  Roger Sayle  <roger@eyesopen.com>
8822
8823         * simplify-rtx.c (simplify_const_relational_operation): New function
8824         renamed from simplify_relational_operation.
8825         (simplify_relational_operation): Change prototype to accept an
8826         additional mode argument.  Call simplify_const_relational_operation.
8827         (simplify_gen_relational): Update simplify_relational_operation call.
8828         (simplify_ternary_operation): Update simplify_relational_operation
8829         subroutine call to use simplify_const_relational_operation instead.
8830
8831         * rtl.h (simplify_const_relational_operation): Prototype here.
8832         (simplify_relational_operation): Add addtional mode argument.
8833
8834         * combine.c (combine_simplify_rtx): Update calls to
8835         simplify_relational_operation.
8836         (simplify_set): Likewise.
8837         (gen_binary): Likewise.
8838         * cse.c (fold_rtx): Likewise.
8839         * dojump.c (compare_from_rtx): Likewise.
8840         (do_compare_rtx_and_jump): Likewise.
8841         * integrate.c (subst_constants): Likewise.
8842         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
8843
8844 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
8845
8846         * config/m32r/m32r.md: Remove all define_peephole's.
8847
8848 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
8849
8850         * config/rs6000/rs6000.md: Remove trailing whitespace.
8851
8852 2004-03-08  Eric Christopher  <echristo@redhat.com>
8853
8854         * Makefile.in (site.exp): Add libiconv variable definition.
8855
8856 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
8857
8858         * configure: Regenerate for config/accross.m4 correction.
8859
8860 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8861
8862         PR target/14480
8863         * config/rs6000/t-rtems: Add missing file on branch.
8864
8865 2004-03-08  Roger Sayle  <roger@eyesopen.com>
8866
8867         PR middle-end/14289
8868         * c-typeck.c (c_mark_addressable): A register variable should
8869         be considered global if its not automatic, i.e. TREE_PUBLIC,
8870         TREE_STATIC or DECL_EXTERNAL.
8871         * function.c (put_var_into_stack): Call abort when placing a
8872         hard register into the stack, if x_parm_reg_stack_loc is NULL.
8873
8874 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
8875
8876         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
8877         ("*extendqisi2_short_displ"): Likewise.
8878
8879 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
8880
8881         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
8882         (comp_operator): Likewise.
8883         * config/pdp11/pdp11-protos.h: Remove corresponding
8884         prototypes.
8885
8886 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
8887
8888         * expr.c (highest_pow2_factor_for_type): Rename into
8889         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
8890         TYPE_ALIGN when the target is a COMPONENT_REF.
8891         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
8892
8893 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8894
8895         * config/rs6000/rs6000.c: Formatting fix.
8896         (legitimate_offset_address_p): Correct offset range check.
8897
8898         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
8899         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
8900         and MASK_STRING.
8901
8902 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8903
8904         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
8905         for little endian.
8906         ("ashrdi3_no_power"): Disable for little endian.
8907         (ashrdi3): Same.
8908
8909 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8910
8911         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
8912         builtins.
8913
8914 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
8915
8916         PR target/14471
8917         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
8918         case, checking for -no-mul-bug-abort option.
8919         * configure, config.in: Regenerate.
8920         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
8921         and -mno-mul-bug-workaround.
8922         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
8923         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
8924         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
8925         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
8926         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
8927         sure mulu.d is not last on cache-line.
8928         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
8929         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
8930         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
8931         (TARGET_SWITCHES): New options -mmul-bug-workaround and
8932         -mno-mul-bug-workaround.
8933         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
8934         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
8935         * config/cris/cris.c (cris_operand_extend_operator): Clarify
8936         relation to MULT in head comment.
8937         (cris_op_str): Abort for MULT.
8938         (cris_print_operand) <case '!'>: New case.
8939
8940 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8941
8942         PR debug/11983
8943         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
8944         dw_val_class_vec.  Replace use throughout file.
8945         (dw_float_const): Delete.
8946         (dw_vec_const): New.
8947         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
8948         throughout file.
8949         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
8950         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
8951         (size_of_die): Adjust dw_val_class_vec sizing.
8952         (output_die): Output dw_val_class_vec.
8953         (insert_int, extract_int, insert_float): New functions.
8954         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
8955         Handle CONST_VECTOR.
8956         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
8957
8958 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8959
8960         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
8961         AltiVec abi cannot co-exist.
8962
8963         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
8964
8965 2004-03-07  Jan Hubicka  <jh@suse.cz>
8966
8967         * except.c (emit_to_new_bb_before):  Break fallthru edges.
8968
8969 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
8970
8971         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
8972         ("*lshrsi3"): Also accept an immediate for 68HC12.
8973         ("*ashrsi3_const"): Likewise.
8974         ("*ashrsi3"): Likewise.
8975         ("*ashlsi3_const"): Likewise.
8976         ("*ashlsi3"): Likewise.
8977         ("cmphi_1_hc12"): Compare two hard register by pushing them and
8978         comparing with a pop; don't use a split for that.
8979         ("cmphi split"): Disable compare split for 68HC12.
8980
8981         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
8982         the status operands if they have side effects.
8983
8984 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
8985
8986         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
8987         definition.
8988         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
8989         config/h8300/h8300.h, config/ia64/ia64.h,
8990         config/mcore/mcore.h, config/mmix/mmix.h,
8991         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
8992         config/stormy16/stormy16.h, config/v850/v850.h,
8993         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
8994         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
8995         definition.
8996
8997 2004-03-07  Roger Sayle  <roger@eyesopen.com>
8998
8999         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9000         <XOR_EXPR>: Fold x ^ x as zero.
9001         <AND_EXPR>: Fold x & x as x.
9002
9003 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9004
9005         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9006         "foo++ == const" into "++foo == const+incr".
9007
9008 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9009
9010         * config/mips/mips.c (mips_in_small_data_p): Return false if
9011         TARGET_ABICALLS.
9012
9013 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9014
9015         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9016         the stack register.
9017         (expand_prologue): Don't make an interrupt or a trap handler a far
9018         symbol.
9019         (m68hc11_initial_elimination_offset): Likewise.
9020
9021 2004-03-06  Richard Henderson  <rth@redhat.com>
9022
9023         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9024
9025 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9026
9027         * config/ns32k/ns32k-protos.h: Add a prototype for
9028         ns32k_notice_update_cc.
9029         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9030         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9031         ns32k_notice_update_cc.
9032
9033 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9034
9035         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9036         "*load_multiple_si"): Allow only if reload_completed.
9037         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9038         Likewise.
9039
9040 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9041
9042         * config/vax/vax-protos.h: Add a prototype for
9043         vax_notice_update_cc.
9044         * config/vax/vax.c (vax_notice_update_cc): New.
9045         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9046         vax_notice_update_cc.
9047
9048 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9049
9050         * collect2.c (main): Only export initfunc and finifunc if
9051         LD_INIT_SWITCH not defined.
9052         (scan_prog_file): Only export constructors and destructors if
9053         LD_INIT_SWITCH not defined.  Only export symbols not found in
9054         shared objects.
9055
9056 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9057
9058         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9059         last.
9060         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9061         from calls to gen_icacheflush.
9062
9063 2004-03-06  Richard Henderson  <rth@redhat.com>
9064
9065         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9066         (TARGET_LONG_DOUBLE_128): New.
9067         (TARGET_SWITCHES): Add long-double-{128,64}.
9068         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9069         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9070         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9071         (WIDEST_HARDWARE_FP_SIZE): New.
9072         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9073         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9074         if TARGET_VAX_FLOAT.
9075         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9076         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9077
9078 2004-03-06  Richard Henderson  <rth@redhat.com>
9079
9080         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9081         botched rtx class conversion.
9082
9083 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9084
9085         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9086         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9087
9088         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9089         macros.
9090         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9091
9092 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9093
9094         PR target/14343
9095         * config/i386/i386.md (movv2di_internal): Conditionalize on
9096         TARGET_SSE, not TARGET_SSE2.
9097
9098 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9099
9100         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9101         duplicated line.
9102
9103 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9104
9105         * builtins.c: Consistently use logN not log* in comments.
9106
9107 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9108
9109         * rtl.h (mem_expr_equal_p): Function prototype added.
9110         * cfgcleanup.c (merge_memattrs): New function.
9111         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9112         * emit-rtl.c (mem_expr_equal_p): New function.
9113
9114 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9115
9116         * objc/objc-act.c (synth_module_prologue): Const-qualify
9117         objc_selector type if using the GNU runtime; fix generated
9118         signatures for objc_msg_lookup and objc_msg_lookup_super
9119         to match what GNU ObjC headers provide; reformat and clean up.
9120         (synth_self_and_ucmd_args): Use previously constructed (and
9121         hence possibly const-qualified) objc_selector type.
9122
9123 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9124
9125         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9126
9127 2004-03-05  Jason Merrill  <jason@redhat.com>
9128
9129         * tree.h (TYPE_HASH): Use TYPE_UID.
9130         (TREE_HASH): New macro with old definition of TYPE_HASH.
9131         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9132         (build_array_type, build_function_type): Likewise.
9133         (build_method_type_directly): Likewise.
9134         (build_offset_type, build_complex_type): Likewise.
9135         (type_hash_list, attribute_hash_list): Likewise. Now static.
9136         * except.c: s/TYPE_HASH/TREE_HASH/.
9137
9138 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9139
9140         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9141         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
9142         __va_ndx by 2 words when referencing an argument on the stack.
9143         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
9144         words when an arg on the stack is first seen.
9145
9146 2004-03-05  Paul Brook  <paul@codesourcery.com>
9147
9148         * arm.h (ARM_FLAG_VFP): Remove.
9149         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9150         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9151
9152 2004-03-05  Paul Brook  <paul@codesourcery.com>
9153
9154         * function.c (assign_parms): Include pretend alignment offset.
9155
9156 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9157
9158         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9159         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9160
9161 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
9162
9163         * configure.ac: When passing --enable-languages to subdir
9164         configure when host != build, make sure we don't pass an empty
9165         value.
9166         * configure: Regenerate.
9167
9168 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
9169
9170         PR 13577
9171         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9172         options.
9173
9174 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9175
9176         * simplify-rtx.c (simplify_relational_operation): If
9177         flag_wrapv is set, do not move terms between the two
9178         side of a relational operator.
9179
9180 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9181
9182         * rtlanal.c: Include target.h and output.h
9183         (rtx_cost, address_cost, default_address_cost): Move from...
9184         * cse.c (rtx_cost, address_cost, default_address_cost):
9185         ... this file.
9186         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9187         * Makefile.in: Adjust dependencies.
9188
9189 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
9190
9191         * cse.c (cse_end_of_basic_block): Make static.
9192         * local-alloc.c (function_invariant_p): Move to
9193         reload1.c.
9194         * loop.c (libcall_other_reg, record_excess_regs):
9195         Make static.
9196         * reload1.c (function_invariant_p): Moved here
9197         from local-alloc.c, made static.
9198         * rtl.h (cse_end_of_basic_block, function_invariant_p,
9199         libcall_other_reg, record_excess_regs): Remove
9200         declarations.
9201
9202 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9203
9204         * config/m32r/m32r.c (signed_comparison_operator): Add a
9205         missing parenthesis.
9206
9207 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
9208
9209         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9210         going to call mmap again.  Read the file into the right place.
9211         Give a fatal error if we have to relocate.
9212
9213 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
9214
9215         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9216         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9217
9218 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
9219
9220         PR other/14354
9221         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9222         round the same.  When rounding, clear bits that would cause a
9223         second rounding in pack_d.
9224         (_fpmul_parts): Ditto.  Remove #if 0:d code.
9225
9226 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
9227
9228         PR c++/14425, c++/14426
9229         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9230         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9231         Change C++ definitions to accept a 'const int' argument;
9232         the prototypes already do.
9233         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9234         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9235         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9236         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9237         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9238         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9239         end in ..._int; change them to accept an int instead of a char
9240         as the last parameter.
9241
9242 2004-03-04  Phil Edwards  <phil@codesourcery.com>
9243
9244         * genmultilib:  Change '=' to '-' when translating option names
9245         to directory names.
9246
9247 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9248
9249         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9250         stack slot for temp used for result of BLKmode but in integral mode.
9251
9252 2004-03-04  Jan Hubicka  <jh@suse.cz>
9253
9254         * reload.c (find_reloads): Reorganize if seqeunce to switch.
9255
9256         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
9257         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
9258
9259 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
9260
9261         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9262         * testsuite/gcc.dg/20040303-1.c: New test.
9263
9264 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9265
9266         * ppro.md: Rewrite as a DFA pipeline description.
9267         * i386.md: Remove all uses of the ppro_uops attribute.
9268         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9269         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9270         ix86_sched_reorder, ix86_variable_issue,
9271         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9272         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9273         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9274         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9275         * athlon.md (athlon_ssecmp_load): Fix comment
9276
9277 2004-03-04  Stuart Hastings  <stuart@apple.com>
9278
9279         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9280
9281 2004-03-04  Stuart Hastings  <stuart@apple.com>
9282
9283         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9284         686, tell Darwin assembler to allow prefetch insns, non-empty def
9285         of SUBTARGET_OPTION_TRANSLATE_TABLE.
9286
9287 2004-03-04  DJ Delorie  <dj@redhat.com>
9288
9289         PR optimization/14282
9290         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9291         between a call and the assignment of its return value.
9292
9293 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9294
9295         * config/h8300/h8300.c: Put a comment for every function.
9296
9297 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9298
9299         * config/h8300/h8300.md: Add comments about peephole2's.
9300
9301 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9302
9303         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9304
9305 2004-03-04  Jan Hubicka  <jh@suse.cz>
9306
9307         * cfgcleanup.c (thread_jump): Update call of cselib_init.
9308         * cselib.c (cselib_record_memory): New static variable.
9309         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9310         Give up on memories when asked for.
9311         (cselib_init): Accept new argument.
9312         * cselib.h (cselib_init): Update prototype.
9313         * gcse.c (local_cprop_pass): Update call of cselib_init.
9314         * loop.c (load_mems): Update call of cselib_init.
9315         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9316         * sched-deps.c (sched_analyze): Update call of cselib_init.
9317
9318 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9319             GP <gp@qnx.com>
9320
9321         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9322         when compiling PIC.
9323
9324 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
9325
9326         PR/14362
9327         * var-tracking.c (track_expr_p): Do not track variables which
9328         should be ignored for debugging purposes.
9329
9330 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9331
9332         * real.c (encode_ibm_extended): Don't bother rounding low double.
9333         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9334         when fmt->pnan < fmt->p.
9335
9336 2004-03-04  Eric Christopher  <echristo@redhat.com>
9337
9338         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9339         only range of valid arg registers and fixed_regs.
9340
9341 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9342
9343         PR target/14406
9344         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9345         (abstf2, abstf2_internal): New define_expand.
9346
9347 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9348
9349         PR optimization/14235
9350         * expr.c (convert_move): Copy the source to a new pseudo
9351         when converting from a sub-word source to a larger-than-word
9352         register which conflicts with the source.
9353
9354 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
9355
9356         PR 13728
9357         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9358         parameters with the same name, unless one is a forward decl.
9359         Do not issue a redundant-redeclaration warning for forward
9360         decls of parameters.
9361
9362 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9363
9364         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9365         configuration.
9366
9367 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
9368
9369         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9370
9371 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9372
9373         * target-def.h (TARGET_OPTF): Delete.
9374         * c-opts.c (TARGET_OPTF): Define.
9375
9376 2004-03-04  Jan Hubicka  <jh@suse.cz>
9377
9378         * cselib.c (cselib_finish): Fix another miss-application of my previous
9379         patch.
9380
9381 2004-03-03  Mike Stump  <mrs@apple.com>
9382
9383         Add framework support for darwin.
9384
9385         * c-incpath.c: Include target.h and machmode.h.
9386         (add_path): Use a consistent style for cpp_dir.  Initialize
9387         p->construct to 0.
9388         (add_cpp_dir_path): New.
9389         (register_include_chains): Add use of extra_includes callback.
9390         (hook_void_int): Add.
9391         (target_c_incpath): Add.
9392         * c-incpath.h (add_cpp_dir_path): New.
9393         (target_c_incpath_s): Add.
9394         (target_c_incpath): Add.
9395         (C_INCPATH_INIT): Add.
9396         * c-opts.c (c_common_missing_argument,
9397         c_common_handle_option): Add -F argument processing.
9398         * c.opt: Add -F argument processing.
9399         * gcc.c (trad_capable_cpp): Add -F argument processing.
9400         * cppfiles.c (find_file_in_dir): Update to use construct
9401         callback.
9402         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9403         cpp_get_prev): New.
9404         (_cpp_find_file): Use search_path_exhausted.
9405         (make_cpp_dir): Initialize construct to 0.
9406         * cpplib.h (missing_header_cb
9407         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9408         (cpp_callbacks): Add missing_header
9409         (cpp_dir): Add construct.
9410         * target-def.h: (TARGET_OPTF): New.
9411         * hooks.c (hook_void_int, hook_void_charptr): Add.
9412         * hooks.h (hook_void_int, hook_void_charptr): Add.
9413         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9414         $(MACHMODE_H) dependencies.
9415         * doc/invoke.texi (Darwin Options): Document -F.
9416         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9417         (TARGET_OPTF): Add.
9418         * fix-header.c (target_c_incpath): Add.
9419
9420         * config/darwin-c.c: Add c-incpath.h include.
9421         (using_frameworks, find_subframework_file,
9422         find_subframework_header, add_system_framework_path,
9423         frameworks_in_use, num_frameworks, max_frameworks,
9424         add_framework, find_framework, struct framework_header,
9425         framework_header_dirs, framework_construct_pathname,
9426         find_subframework_file, add_system_framework_path,
9427         add_framework_path, framework_defaults,
9428         darwin_register_frameworks, find_subframework_header): Add.
9429         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9430         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9431         (CPP_SPEC): Add __APPLE_CC__ support.
9432         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9433
9434 2004-03-04  Jan Hubicka  <jh@suse.cz>
9435
9436         * cselib.c (cselib_finish): Fix miss-application of my previous
9437         patch.
9438
9439 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9440
9441         * hooks.c (hook_tree_tree_identity): New.
9442         * hooks.h: Add a prototype for hook_tree_tree_identity.
9443         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9444         instead of MD_ASM_CLOBBERS.
9445         * system.h (MD_ASM_CLOBBERS): Poison.
9446         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9447         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9448         * target.h (gcc_target): Add md_asm_clobbers.
9449         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9450         (ix86_md_asm_clobbers): New.
9451         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9452         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9453         TARGET_MD_ASM_CLOBBERS.
9454
9455 2004-03-03  Stuart Hastings  <stuart@apple.com>
9456
9457         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
9458
9459 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9460
9461         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
9462
9463         * config/sparc/sparc.h (ASM_FLOAT): Delete.
9464         (ASM_DOUBLE): Likewise.
9465         (ASM_LONGDOUBLE): Likewise.
9466         * config/sparc/pbd.h (ASM_INT_OP): Delete.
9467
9468 2003-03-03  Richard Henderson  <rth@redhat.com>
9469
9470         PR opt/13862
9471         * cselib.c (cselib_record_sets): Don't record multiple sets in
9472         asm insns.
9473
9474 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
9475
9476         * common.opt: Add description of the new -fgcse-after-reload flag.
9477
9478         * flags.h (flag_gcse_after_reload): Declaration of global variable.
9479
9480         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
9481         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
9482         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9483         get_bb_avail_insn, hash_scan_set_after_reload,
9484         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
9485         gcse_after_reload, get_bb_avail_insn): New functions to implement
9486         gcse-after-reload.
9487         (gcse_after_reload_main): New function, the main entry point to
9488         gcse-after-reload.
9489
9490         * rtl.h (gcse_after_reload_main): Declaration of the new function.
9491
9492         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
9493
9494         * toplev.c (flag_gcse_after_reload): Initialization.
9495
9496         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
9497
9498         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9499         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
9500         the gcse after reload optimization.
9501
9502         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9503         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
9504         parameters.
9505
9506         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
9507
9508 2004-03-03  Nicolas Pitre <nico@cam.org>
9509
9510         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
9511         small negative values.
9512
9513 2004-03-03  Jan Hubicka  <jh@suse.cz>
9514
9515         * cselib.c (hash_table):  Remove GTY marker.
9516         (reg_values): Turn into array.
9517         (used_regs): Likewise.
9518         (n_used_regs): New static variable.
9519         (reg_values_old): Kill.
9520         (clear_table): Update uses of arrays.
9521         (cselib_lookup): Likewise.
9522         (cselib_record_set): Likewise.
9523         (cselib_init): Likewise.
9524         (cselib_finish): Likewise.
9525         (cselib_udpate_varray_sizes): Kill.
9526         * cselib.h (cselib_update_varray_sizes): Kill.
9527
9528 2004-03-03  Paul Brook  <paul@codesourcery.com>
9529
9530         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
9531
9532 2004-03-03  Jan Hubicka  <jh@suse.cz>
9533
9534         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
9535         Rename from ...; make statistics transparent.
9536         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
9537         (loc_descriptor): New structure.
9538         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
9539         add_statistics):
9540         New static function.
9541         (ggc_record_overhead, dump_statistics): New global function.
9542         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9543         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
9544         from ...; accept locations
9545         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9546         ggc_realloc, ggc_alloc_typed):  ... this one.
9547         from ...; accept locations
9548         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
9549         ggc_alloc_stat): Rename from ... ; pass locations
9550         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
9551         ... this one.
9552         (ggc_alloc_stat): Record overehead.
9553         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9554         ggc_realloc, ggc_alloc_typed):  Turn to macros
9555         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9556         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
9557         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
9558         * langhooks.h (lhd_make_node): Declare.
9559         (LANG_HOOKS_MAKE_TYPE): Default to new function,
9560         * langhooks.c (lhd_make_node): New.
9561         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
9562         locations.
9563         (rtx_alloc, swallow_copy_rtx): ... this one.
9564         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
9565         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
9566         * toplpev.c (finalize): Dump stats.
9567         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
9568         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9569         Rename from ... ; pass locators.
9570         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9571         build?,  build_decl): Declare.
9572         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
9573         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9574         Declare.
9575         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9576         build?,  build_decl): New macros.
9577         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
9578         * statistics.h: New file.
9579
9580 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9581             Richard Sandiford  <rsandifo@redhat.com>
9582
9583         * config/mips/mips.h (MASK_FIX_SB1): Bump.
9584         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
9585         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
9586         * config/mips/mips.c (mips_output_division): Fill the branch delay
9587         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
9588         TARGET_FIX_R4400.
9589         (mips_output_division): Adjust accordingly.
9590         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
9591         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
9592
9593 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
9594
9595         * alias.c (rtx_equal_for_memref_p): Use predicates
9596         to test rtx classes and new rtx class codes, possibly
9597         splitting conditionals that tested against '<' and 'o'.
9598         * caller-save.c (save_call_clobbered_regs): Likewise.
9599         * combine.c (contains_muldiv, find_split_point, subst,
9600         combine_simplify_rtx, simplify_if_then_else,
9601         simplify_set, simplify_logical, expand_compound_operation,
9602         make_compound_operation, if_then_else_cond, known_cond,
9603         apply_distributive_law, cached_nonzero_bits,
9604         cached_num_sign_bit_copies, simplify_shift_const,
9605         gen_binary, simplify_comparison, update_table_tick,
9606         record_value_for_reg, get_lsat_value_validate): Likewise.
9607         * cse.c (mention_regs, find_best_addr, find_comparison_args,
9608         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
9609         Likewise.
9610         * emit-rtl.c (copy_insn_1): Likewise.
9611         * expr.c (force_operand): Likewise.
9612         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
9613         * flow.c (notice_stack_pointer_modification_1,
9614         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
9615         and_reg_cond, elim_reg_cond): Likewise.
9616         * function.c (update_epilogue_consts): Likewise.
9617         * genattrtab.c (attr_rtx_1): Likewise.
9618         * genopinit.c (gen_insn): Likewise.
9619         * integrate.c (subst_constants): Likewise.
9620         * jump.c (reversed_comparison_code_parts,
9621         reversed_comparison_code, delete_related_insns,
9622         rtx_renumbered_equal_p): Likewise.
9623         * local-alloc.c (block_alloc): Likewise.
9624         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
9625         canonicalize_condition): Likewise.
9626         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
9627         Likewise.
9628         * optabs.c (add_equal_node, expand_binop): Likewise.
9629         * predict.c (estimate_probability): Likewise.
9630         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
9631         * recog.c (validate_replace_rtx_1, comparison_operator,
9632         offsettable_address_p, constrain_operands): Likewise.
9633         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
9634         Likewise.
9635         * regclass.c (scan_one_insn): Likewise.
9636         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
9637         * regrename.c (kill_autoinc_value): Likewise.
9638         * reload.c (find_reusable_reload, find_reloads,
9639         reg_overlap_mentioned_for_reload_p): Likewise.
9640         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
9641         * rtl.c (copy_rtx): Likewise.
9642         * rtl.h (CONSTANT_P, INSN_P): Likewise.
9643         * rtlanal.c (commutative_operand_precedence): Likewise.
9644         * sched-deps.c (conditions_mutex_p): Likewise.
9645         * sched-rgn.c (is_cfg_nonregular): Likewise.
9646         * simplify-rtx.c (simplify_gen_binary,
9647         simplify_gen_relational, simplify_replace_rtx,
9648         simplify_unary_operation, simplify_binary_operation,
9649         simplify_ternary_operation, simplify_rtx): Likewise.
9650         * unroll.c (reg_dead_after_loop): Likewise.
9651         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
9652         print_operand): Likewise.
9653         * config/arc/arc.c (proper_comparison_operator): Likewise.
9654         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
9655         Likewise.
9656         * config/avr/avr.c (_reg_unused_after): Likewise.
9657         * config/frv/frv.c (frv_ifcvt_modify_tests,
9658         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
9659         * config/i386/i386.c (ix86_comparison_operator,
9660         ix86_carry_flag_operator, fcmov_comparison_operator,
9661         arith_or_logical_operator, print_operand,
9662         ix86_expand_binary_operator, ix86_binary_operator_ok):
9663         Likewise.
9664         * config/i386/i386.md: Likewise.
9665         * config/ia64/ia64.c (not_postinc_memory_operand,
9666         ia64_print_operand, update_set_flags, errata_emit_nops):
9667         Likewise.
9668         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
9669         CONSTRAINT_OK_FOR_S): Likewise.
9670         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
9671         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
9672         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
9673         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
9674         Likewise.
9675         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
9676         eqne_comparison_operator, signed_comparison_operator):
9677         Likewise.
9678         * config/mips/mips.c (cmp_op, symbolic_expression_p):
9679         Likewise.
9680         * config/mmix/mmix (mmix_foldable_comparison_operator,
9681         mmix_comparison_operator): Likewise.
9682         * config/pa/pa.c (hppa_legitimize_address): Likewise.
9683         * config/rs6000/rs6000.c (stmw_operation,
9684         branch_comparison_operator, trap_comparison_operator,
9685         ccr_bit): Likewise.
9686         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
9687         * config/s390/s390.c (s390_alc_comparison,
9688         s390_slb_comparison):L Likewise.
9689         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
9690         Likewise.
9691         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
9692         noov_compare_op, noov_compare64_op, v9_regcmp_op,
9693         emit_hard_tfmode_operation, reg_unused_after)
9694         * doc/md.texi, doc/rtl.texi: Likewise.
9695
9696         * ra-debug.c: Add 2004 to list of copyright years.
9697         * unroll.c: Likewise.
9698
9699         * combine.c (simplify_logical): Remove dummy test,
9700         (apply_distributive_law): Fix typo in comment.
9701         GET_CODE (x) == AND so x is a commutative binary op.
9702         * jump.c (delete_related_insns): simplify loop
9703         condition, move testing of RTX codes inside the loop.
9704         (rtx_renumbered_equal_p): do not use RTX_CODE.
9705         * rtl.c (rtx_class): Declare as enum rtx_class.
9706         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
9707         Move to RTX_COMM_COMPARE class.
9708         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
9709         Move to RTX_CONST_OBJ class.
9710         * rtl.h (enum rtx_class): New declaration,
9711         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
9712         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
9713         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
9714         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
9715         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
9716         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
9717         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
9718         OBJECT_P): New macros.
9719         * config/sparc/sparc.c (noov_compare_op): Remove register
9720         from parameter.
9721
9722 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9723
9724         * target.h: Remove texi jargons in comments.
9725
9726 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9727
9728         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
9729         threshold to 0x4f.
9730
9731         Revert:
9732         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9733         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
9734         as well.
9735         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
9736         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
9737
9738 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9739
9740         * doc/md.texi (cbranchmode4): New.
9741
9742 2004-03-02  Eric Christopher  <echristo@redhat.com>
9743
9744         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
9745         fix_trunc.
9746         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
9747         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
9748         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
9749         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
9750
9751 2004-03-02  Richard Henderson  <rth@redhat.com>
9752
9753         PR middle-end/11767
9754         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
9755         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
9756         before the compare, if flag_non_call_exceptions.
9757
9758 2004-03-02  Richard Henderson  <rth@redhat.com>
9759
9760         PR middle-end/14327
9761         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
9762         emitting the label, not after.
9763
9764 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9765
9766         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
9767         (m68hc11_mov_addr_mode): Likewise.
9768         (m68hc11_override_options): Initialize them based on target.
9769         (register_indirect_p): Allow a MEM for indirect addressing modes and
9770         use flags to control what is allowed.
9771         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
9772         supported addressing modes.
9773         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
9774         (go_if_legitimate_address_internal): Likewise.
9775         (m68hc11_indirect_p): Likewise and check the mode.
9776         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
9777
9778 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9779
9780         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
9781         (expand_builtin_setjmp_setup): Use
9782         targetm.builtin_setjmp_frame_value instead of
9783         BUILTIN_SETJMP_FRAME_VALUE.
9784         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
9785         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
9786         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9787         * target.h (gcc_target): Add builtin_setjmp_frame_value.
9788         * targhooks.c (default_builtin_setjmp_frame_value): New.
9789         * targhooks.h: Add a prototype for
9790         default_builtin_setjmp_frame_value.
9791         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
9792         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9793
9794 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9795
9796         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
9797         sequences of moves.
9798         (add peepholes): New peepholes to optimize sequences adding small
9799         constants.
9800         (bset peepholes): New peepholes to transform an OR in a bset form
9801         (bclr peepholes): Likewise for bclr form.
9802         (cmp peepholes): New peepholes to avoid register copies when comparing.
9803
9804 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9805
9806         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
9807         to separate push from moves.
9808         ("*pushdf_internal"): Likewise.
9809         ("*pushsf_internal"): Likewise.
9810         ("*pushsi_internal"): Likewise.
9811         ("movdi_internal"): Use define_insn_and_split; non push operand.
9812         ("movdf_internal"): Likewise.
9813         ("movsf_internal"): Likewise.
9814         ("movsi_internal"): Likewise.
9815         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
9816         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
9817         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
9818
9819 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9820
9821         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
9822         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
9823         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
9824         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
9825         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
9826         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
9827         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
9828         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
9829         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
9830         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
9831         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
9832
9833 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9834
9835         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
9836         (SOFT_XY_REGNUM): Define.
9837         (cmp split): Use the above instead of hard coded numbers.
9838         (8-bit op split): No need to check the mode; allow Q_REG.
9839         (ashift split): Adjust the first operand if it uses the SP and we
9840         are pushing the shifted value.
9841         (plus shift split): Fix when a source is in register D+X.
9842         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
9843
9844 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9845
9846         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
9847         comparing with Z register.
9848
9849 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9850
9851         * cfgloop.h (struct loop_desc): Removed.
9852         (struct loop): Fields simple, desc and has_desc removed.
9853         (simple_loop_p, count_loop_iterations): Declaration removed.
9854         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
9855         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
9856         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
9857         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
9858         simple_loop_exit_p, variable_initial_value, variable_initial_values,
9859         simple_condition_p, simple_increment, count_strange_loop_iterations,
9860         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
9861         Removed.
9862         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
9863
9864 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9865
9866         * genattrtab.c: Don't handle MATCH_INSN.
9867         * genrecog.c: Likewise.
9868         * gensupport.c: Likewise.
9869         * rtl.def (match_insn): Remove.
9870         * doc/md.texi (match_insn, match_insn2): Remove.
9871
9872 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
9873
9874         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
9875         macro results in memory allocation.
9876
9877 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
9878
9879         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
9880         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
9881         %(fbsd_dynamic_linker),
9882         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
9883         config/i386/freebsd.h
9884         * config/arm/freebsd.h: Ditto.
9885         * config/i386/freebsd.h: Ditto.
9886         * config/i386/freebsd64.h: Ditto.
9887         * config/ia64/freebsd.h: Ditto.
9888         * config/rs6000/sysv4.h: Ditto.
9889         * config/sparc/freebsd.h: Ditto.
9890
9891 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
9892
9893         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
9894
9895 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9896
9897         * rtl.def (define_combine): Remove.
9898
9899 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9900
9901         * config/h8300/h8300.md: Tweak formatting.
9902
9903 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9904
9905         * config/h8300/h8300.md (*cmphi_h8300): Rename to
9906         *cmphi_h8300_znvc.
9907         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
9908
9909 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
9910
9911         PR bootstrap/14356
9912         * gcc.c (process_command): Remove const-qualification from argv.
9913         (main): Likewise.
9914
9915 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9916
9917         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
9918         pushqi1_h8300hs_advanced.  Adjust its caller.
9919         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
9920         Adjust its caller.
9921
9922 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
9923
9924         * Makefile.in (install-libgcc, install-multilib): Pass
9925         mkinstalldirs var to libgcc.mk.
9926
9927 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9928
9929         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
9930         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
9931
9932 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9933
9934         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
9935         * config/h8300/h8300.md: Split several peephole2's, each into
9936         two.
9937
9938 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9939
9940         * dominance.c (recount_dominator): Handle postdominators.
9941
9942 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9943
9944         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
9945         (NUM_SYMBOL_TYPES): Likewise.
9946         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
9947         (mips_unspec_address): Declare.
9948         (mips_gotoff_page, mips_gotoff_global): Delete.
9949         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
9950         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
9951         (mips_symbolic_constant_p, mips_symbolic_address_p)
9952         (mips_symbol_insns): Handle new symbol types.
9953         (general_symbolic_operand): New predicate.
9954         (mips_unspec_address): Make extern.
9955         (mips_gotoff_page, mips_gotoff_global): Delete.
9956         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
9957         Handle new symbol types.
9958         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
9959         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
9960         mips_unspec_address directly.
9961         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
9962         the documentation of -mexplicit-relocs.
9963
9964 2004-03-01  Jeff Law  <law@redhat.com>
9965
9966         * fold-const.c (fold): An equality comparison of a non-weak object
9967         against zero has a known result.  Similarly an equality comparison
9968         of the address of two non-weak, unaliased symbols has a known result.
9969
9970         * ggc-page.c (struct page_entry): New field PREV.
9971         (ggc_alloc): Update PREV field appropriately.
9972         (sweep_pages): Likewise.
9973         (ggc_free): Likewise.  Use PREV field rather than loop to
9974         improve ggc_free performance.
9975
9976 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9977
9978         * config/mips/mips.c (mips_output_division): Use the division
9979         instruction to fill the delay slot of a zero check.
9980         (mips_idiv_insns): Adjust accordingly.
9981
9982 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
9983
9984         * config.gcc: Create a default tmake_file for linux, and use
9985         it in all but two linux clauses.  Comment those two.
9986
9987 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
9988
9989         * combine.c (try_combine):  Do not refer to is_replaced.
9990         (gen_lowpart_for_combine):  Perverse subregs now have a
9991         more politically correct name.
9992         * cse.c (cse_insn): Likewise.
9993         * jump.c: Fix bogus reference to delete_insn.
9994
9995 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
9996
9997         PR debug/14328
9998         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
9999         constants as signed values.
10000
10001         PR middle-end/13448
10002         * c-tree.h (readonly_warning): Rename to ...
10003         (readonly_error): ... this.
10004         * c-typeck.c (build_unary_op): Adjust accordingly.
10005         (readonly_warning): Rename to ...
10006         (readonly_error): ... this and issue errors, not warnings.
10007         (build_modify_expr): Call readonly_error, not readonly_warning.
10008         (c_expand_asm_operands): Likewise.
10009         * tree-inline.c (optimize_inline_calls): Do not inline functions
10010         after errors have occurred.
10011
10012 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10013
10014         * configure.ac: Rearrange some threading code for clarity;
10015         add section comment.
10016         * configure: Regenerate.
10017
10018 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10019
10020         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10021         typos.
10022         * doc/cppopts.texi: Fix a typo.
10023
10024 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10025
10026         * config/i386/i386.md: Fix formatting.
10027
10028 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10029
10030         * configure.ac: Add some comments delineating sections of code.
10031
10032         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10033
10034         * doc/install.texi: Fix idiot typo in previous commit.
10035
10036         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10037
10038 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10039
10040         * config/h8300/h8300.md: Add comments about peephole2's.
10041
10042 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10043
10044         * config/h8300/h8300.md: Tweak operand numbers of some
10045         peephole2's.
10046
10047 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10048
10049         * config/h8300/h8300.md: Tweak comments about peephole2's.
10050
10051 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10052
10053         PR middle-end/14203
10054         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10055         instead of testing whether DECL_RTL is not NULL.
10056
10057 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10058
10059         * config/sh/sh.c: Fix formatting.
10060
10061 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10062
10063         * config/sh/sh.c: Convert to ISO-C.
10064
10065 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10066
10067         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10068         my previous patch.
10069
10070         * config/darwin.h (machopic_finish): Output stub even if the
10071         symbol is already defined.
10072
10073 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10074
10075         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10076
10077 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10078
10079         * genattr.c (main): Don't define
10080         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10081         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10082         (DFA_PIPELINE_INTERFACE): Likewise.
10083         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10084         (DFA_PIPELINE_INTERFACE): Likewise.
10085
10086 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
10087
10088         * config/mips/mips.md (tstsi, tstdi): Delete.
10089
10090 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10091
10092         * config/mips/mips.c (override_options): Remove an obsolete
10093         duplicate definition of the "e" constraint.
10094         * config/mips/mips.h: Update a comment accordingly.
10095
10096 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10097
10098         * config/mips/mips.md: Complete the unfinished R4000
10099         multiply/shift errata workaround.  Improve documentation.
10100         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10101         has a hilo hazard.
10102         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10103         (muldi3, muldi3_internal): Likewise.
10104         (muldi3_internal2): Remove, replacing with...
10105         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10106         (mulsidi3): Take the errata into account.
10107         (mulsidi3_32bit): Remove, replacing with...
10108         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10109         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10110         (umulsidi3): Take the errata into account.
10111         (umulsidi3_32bit): Remove, replacing with..
10112         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10113         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10114         TARGET_FIX_R4000.
10115         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10116         (smuldi3_highpart, umuldi3_highpart): Likewise.
10117         * doc/invoke.texi: Document the errata workaround.
10118
10119 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10120
10121         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10122         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10123         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10124         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10125         * config/mips/mips.c (mips_idiv_insns): New function.
10126         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10127         (mips_output_division): Add a workaround for the R4000 divide/shift
10128         errata.
10129         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10130         the length of an "idiv" instruction.
10131         * doc/invoke.texi: Document the new switches.
10132
10133 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10134
10135         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10136         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10137
10138 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10139
10140         PR optimization/14229
10141         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10142
10143 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10144
10145         * fold-const.c (fold): Strip NOPs that change the signedness
10146         for RSHIFT too.  Expand comment.
10147
10148 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
10149
10150         PR optimization/7871
10151         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10152         from or to call insns.
10153
10154 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10155
10156         PR optimization/7871
10157         * flow.c (propagate_one_insn): Interpret calls as setting global
10158         registers, not merely clobbering them.
10159
10160 2004-02-27  Dale Johannesen  <dalej@apple.com>
10161
10162         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
10163         config/darwin-protos.h:  Ditto.
10164         config/darwin.h:  Remove call to it.
10165         * combine.c (distribute_notes): Do not place a REG_DEAD note
10166         when value is both set and used.
10167
10168 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10169
10170         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10171         as well.
10172         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10173         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10174
10175 2004-02-27  Andrew Pinski  <apinski@apple.com>
10176
10177         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10178         Speedup common case of the type values being in the same order.
10179
10180 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
10181
10182         * config/ia64/ia64.h (no-inline-float-divide): New option.
10183         * config/ia64/ia64.h (no-inline-int-divide): New option.
10184         * config/ia64/ia64.h (no-inline-sqrt): New option.
10185         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10186         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10187         * config/ia64/ia64.c (ia64_override_options): Modify error
10188         checking for inlined division/sqrt.
10189
10190 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10191
10192         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10193         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10194         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10195         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10196         copyright.
10197
10198 2004-02-27  Paul Brook  <paul@codesourcery.com>
10199
10200         * function.c (assign_parms): Don't count pretend args for alignment.
10201
10202 2004-02-27  Richard Henderson  <rth@redhat.com>
10203
10204         * passes.c: New file.
10205         * Makefile.in (OBJS-common): Add it.
10206         * diagnostic.c (rtl_dump_and_exit): Move decl ...
10207         * flags.h (rtl_dump_and_exit): ... here.
10208         * output.h (size_directive_output, last_assemble_variable_decl):
10209         Move from toplev.c.
10210         * rtl.h (reg_alloc): Move from toplev.c.
10211         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10212         struct dump_file_info, enum dump_file_index, dump_file_tbl,
10213         open_dump_file, close_dump_file, rest_of_decl_compilation,
10214         rest_of_type_compilation, rest_of_handle_final,
10215         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10216         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10217         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10218         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10219         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10220         rest_of_handle_tracer, rest_of_handle_if_conversion,
10221         rest_of_handle_if_after_combine, rest_of_handle_web,
10222         rest_of_handle_branch_prob,
10223         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10224         rest_of_handle_addressof, rest_of_handle_sibling_calls,
10225         rest_of_handle_jump_bypass, rest_of_handle_inlining,
10226         rest_of_handle_null_pointer, rest_of_handle_combine,
10227         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10228         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10229         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10230         (decode_d_option): Use enable_rtl_dump_file.
10231         (compile_file, finalize, do_compile): Move profile+combine+graph
10232         cleanup to finish_optimization_passes.
10233         * toplev.h (init_optimization_passes, finish_optimization_passes,
10234         enable_rtl_dump_file): Declare.
10235
10236 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
10237             Roger Sayle  <roger@eyesopen.com>
10238
10239         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
10240         operands to build a tree with swapped operands.
10241         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10242         'unsignedp' predicate to specify the signedness.
10243
10244 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10245
10246         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10247         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10248         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10249         comment typos and formatting.  Follow spelling conventions.
10250
10251 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
10252
10253         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10254         fix_truncsfsi2.
10255
10256         * config/rs6000/spe.md: Delete spe_efsctuiz.
10257         Add spe_fixuns_truncsfsi2.
10258         Add spe_fix_truncsfsi2.
10259
10260 2004-02-26  Eric Christopher  <echristo@redhat.com>
10261
10262         * c-lex.c (c_lex_string_translate): New variable.
10263         (lex_string): Use to determine string translation.
10264         * c-pragma.h: Prototype.
10265         * c-parse.in (start_string_translation): New. Set above.
10266         (stop_string_translation): Ditto.
10267         (attribute, attribute_list, asm_def, asm_stmt,
10268         asm_operand): Use above functions.
10269         * cp/parser.c (cp_parser_declaration): Translate strings
10270         unless token is RID_EXTERN. Set c_lex_string_translate
10271         for recursive use.
10272         (cp_parser_asm_definition): Only translate argument strings
10273         to asms.
10274         (cp_parser_asm_operand_list): Ditto.
10275         (cp_parser_attribute_list): Do not translate attribute strings.
10276
10277 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10278
10279         * stmt.c (expand_start_case_dummy): Remove.
10280         * tree.h: Remove the corresponding prototype.
10281
10282 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10283
10284         * builtins.c (apply_args_register_offset): Remove.
10285         * tree.h: Remove the corresponding prototype.
10286
10287 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10288
10289         * stor-layout.c (is_pending_size): Remove.
10290         * tree.h: Remove the corresponding prototype.
10291
10292 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10293
10294         * recog.c (validate_replace_src): Remove.
10295         * recog.h: Remove the corresponding prototype.
10296
10297 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10298
10299         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10300         MAYBE_REG_PARM_STACK_SPACE.
10301         * function.c: Likewise.
10302         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10303         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10304         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10305         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10306
10307 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10308
10309         * c-decl.c (c_expand_deferred_function): Remove.
10310         * c-tree.h: Remove the corresponding prototype.
10311
10312 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10313
10314         * postreload.c (reload_cse_move2add): Generate just a PLUS
10315         instead of an entire SET.
10316
10317 2004-02-26  Jan Hubicka  <jh@suse.cz>
10318
10319         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10320         /pentium4m.
10321         * i386.c (override_options): Add support for new CPUs.
10322         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10323         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10324         constants.
10325         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10326
10327 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
10328
10329         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10330
10331 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10332
10333         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10334         (sparc_emit_fixunsdi): New prototype.
10335         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10336         (sparc_emit_fixunsdi): New function.
10337         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10338         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
10339         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
10340         to sparc_emit_floatunsdi.
10341         (fixuns_truncsfdi2): New expander.
10342         (fixuns_truncdfdi2): Likewise.
10343
10344 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
10345
10346         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10347         unless HAVE_cc0.
10348
10349 2004-02-25  Richard Henderson  <rth@redhat.com>
10350
10351         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10352         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10353         use (op0-op1) == 0 if op0 is a pointer.
10354         * config/alpha/alpha.md (cmpdi): Use some_operand.
10355         (three comparison combine splits): Remove.
10356
10357 2004-02-25  Richard Henderson  <rth@redhat.com>
10358
10359         PR c/12794
10360         * c-common.c (handle_alias_attribute): Reject the attribute if
10361         current_function_decl is set.
10362
10363 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10364
10365         * config.gcc: Add comment describing extra_gcc_objs.
10366         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10367         * configure.ac (extra_gcc_objs): New substitution variable.
10368         (host_extra_gcc_objs): Don't substitute.
10369         * configure: Regenerate.
10370         * Makefile.in: Use extra_gcc_objs.
10371
10372 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10373
10374         * doc/contrib.texi: Add an entry for myself.
10375
10376 2004-02-25  Jan Hubicka  <jh@suse.cz>
10377
10378         * basic-block.h (make_eh_edge, break_superblocks): Declare.
10379         * cfgbuild.c (make_eh_edge):  Make global.
10380         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10381         * except.c (build_post_landing_pads, connect_post_landing_pads,
10382         dw2_build_landing_pads, sjlj_emit_function_enter,
10383         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10384         sjlj_build_landing_pads): Update CFG.
10385         (emit_to_new_bb_before): New function.
10386         (finish_eh_generation): Do not rebuild the CFG.
10387
10388 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10389
10390         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10391         target_cpu_default defines.
10392         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10393         * pa.h (TARGET_DEFAULT): Likewise.
10394
10395 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10396
10397         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10398         comparisons with regard to signedness.
10399
10400 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10401
10402         * arm.c (thumb_legitimize_address): New function.
10403         * arm-protos.h: Prototype it.
10404         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10405         (LEGITIMIZE_ADDRESS): Use it.
10406
10407 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
10408
10409         * reload1.c (reload): Only spill eliminable register with multiple
10410         adjacent elimination alternatives if all alternatives fail.
10411
10412 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10413
10414         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10415         is -4095...+4095 inclusive.
10416
10417 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
10418
10419         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10420         the bootstrap failure with Sun CC 5.4 and 5.5.
10421
10422 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10423
10424         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10425         which modifies NEWREG.
10426         (cse_condition_code_reg): Update the mode of CC_REG in
10427         CC_SRC_INSN on our own.
10428
10429 2004-02-24  Michael Matz  <matz@suse.de>
10430
10431         * config/i386/i386.c (ix86_comp_type_attributes): Check for
10432         regparm attributes.
10433
10434 2004-02-24  Richard Henderson  <rth@redhat.com>
10435
10436         * toplev.c (dump_file_tbl): Rename from dump_file.
10437         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
10438         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
10439         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10440         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10441         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10442         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10443         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10444         s/rtl_dump_file/dump_file/g.
10445
10446 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
10447
10448         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10449         (spe_fixuns_truncsfsi2): Delete.
10450
10451         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10452         (fixuns_truncsfsi2): Delete.
10453
10454 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
10455
10456         PR/14240
10457         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
10458
10459 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
10460
10461         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
10462
10463 2004-02-24  Jason Merrill  <jason@redhat.com>
10464
10465         * tree.c (check_qualified_type): New fn.
10466         (get_qualified_type): Use it.  If type already has the desired
10467         quals, just return it.
10468         * tree.h: Declare it.
10469
10470 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
10471
10472         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
10473         TARGET_SCHED_FINISH_GLOBAL): New macros.
10474
10475         * target.h (md_init_global, md_finish_global): Function
10476         declarations corresponding to new target macros.
10477
10478         * haifa-sched.c (sched_init, sched_finish): Allow target to
10479         call the new schedular hooks.
10480
10481         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
10482         call to update_life_info.
10483
10484         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
10485         flag_schedule_insns for SH4.
10486
10487         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
10488         find_set_regmode_weight, find_insn_regmode_weight,
10489         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
10490         sh_variable_issue, high_pressure, ready_reorder,
10491         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
10492         functions used to throttle the insn movement in first
10493         scheduling pass for SH.
10494
10495         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
10496         TARGET_SCHED_FINISH_GLOBAL.
10497
10498 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
10499
10500         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
10501         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
10502         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
10503         symbols in sections named by the user.
10504         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
10505         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
10506         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
10507         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
10508         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
10509         the above.
10510         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
10511         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
10512         one more pseudo to further improve code generation.
10513         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
10514         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
10515         inside UNSPEC.
10516         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
10517         * config/frv/frv.c (frv_legitimate_address_p): Added
10518         allow_double_reg_p argument.  Adjust all callers.  Use it to
10519         decide whether to enable double-register indirect addressing.
10520         (frv_funcdesc_alias_set): Remove.
10521         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
10522         register.  Emit movdi_ldd.
10523         (ldd_address_operand): New.
10524         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
10525         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10526         (PREDICATE_CODES): Add ldd_address_operand.
10527         * config/frv/frv.md (movdi_ldd): New.
10528         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
10529         intermediate computations if possible.
10530         (symGOTOFF2reg_i): Fix harmless typo.
10531         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
10532         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
10533         relocated p_vaddr to vaddr type.
10534         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
10535         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
10536         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
10537         MEM, or use a funcdesc alias set.  Use regular move instead of
10538         ldd.
10539         (dbl_memory_one_insn_operand): Recognize function descriptors by
10540         type or by alias set, and don't split them.
10541         * config/frv/frv.md (call, call_value): Never use call_internal
10542         for fdpic.
10543         (call_internal, call_value_internal): Never match for FDPIC.
10544         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
10545         call_value_fdpicsi): Require FDPIC.
10546         (ldd): Removed.
10547         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
10548         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
10549         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
10550         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
10551         FDPIC.  Compute data base address.
10552         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
10553         before the other self-specs are processed.
10554         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
10555         Build with -fPIC.
10556         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
10557         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
10558         inhibit_libc is defined.
10559         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
10560         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
10561         __FRV_FDPIC__.
10562         (__RELOC_POINTER): Define.
10563         (_Unwind_IteratePhdrCallback): Use it.
10564         * config/frv/frv.h (Twrite): Define.
10565         (TRANSFER_FROM_TRAMPOLINE): Use it.
10566         * config/frv/linux.h (INVOKE__main): Undefine.
10567         (Twrite): Override.
10568         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
10569         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
10570         (-mlibrary-pic): Emphasize that this option generates EABI code.
10571         (-mcpu): Add fr550.
10572         (-mpack): Remove.
10573         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
10574         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
10575         and CONSTs in FDPIC mode.
10576         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
10577         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10578         * config/frv/frv.c (move_source_operand): Don't accept symbolic
10579         constants.
10580         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
10581         rather than 'i' constraint for the 2-instruction alternative.
10582         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
10583         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10584         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
10585         EXTRA_CONSTRAINT_FOR_Y.
10586         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
10587         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
10588         (addsi3): Change 'Y' constraint to 'Q'.
10589         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
10590         * reload.c (CONST_POOL_OK_P): New macro.
10591         (find_reloads): Use it to decide whether a constant can be forced
10592         into memory.
10593         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
10594         constant satisfies got12_operand.
10595         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
10596         (frv_legitimate_address_p): Check for valid unspec offsets using
10597         got12_operand rather than frv_legitimate_fdpic_operand_p.
10598         (frv_legitimate_fdpic_operand_p): Delete.
10599         (frv_emit_movsi): Abort if we try to use the FDPIC register during
10600         or after reload.
10601         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
10602         TARGET_FDPIC.
10603         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
10604         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
10605         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
10606         (frv_fdpic_fptr_operand): Don't declare here.
10607         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
10608         rather than fdpic_got12_operand.
10609         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
10610         got12_operand and const_unspec_operand.
10611         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
10612         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
10613         (symbolic_operand): Remove.
10614         (const_unspec_operand): New predicate.
10615         * config/frv/frv.md (*movsi_got): Use got12_operand.
10616         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
10617         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
10618         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
10619         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
10620         * config/frv/frv.c (frv_unspec): New structure.
10621         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
10622         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
10623         validate CONST indices.  Use frv_output_const_unspec to print them.
10624         (frv_print_operand): Update call to unspec_got_name.  Use
10625         frv_output_const_unspec to print constant unspecs.
10626         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
10627         Reject UNSPECs otherwise.
10628         (unspec_got_name): Take the relocation number as argument, not an
10629         rtx containing it.
10630         (frv_output_addr_const_extra): Remove, replacing with...
10631         (frv_output_const_unspec): ...this new function.
10632         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
10633         (gpr_or_int12_operand): Use fdpic_got12_operand.
10634         (dbl_memory_one_insn_operand): Likewise.
10635         (fdpic_got12_operand): Use frv_const_unspec_p.
10636         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
10637         are already legitimate.  Use frv_small_data_reloc_p when deciding
10638         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
10639         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
10640         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
10641         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
10642         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10643         label, for real this time.
10644         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
10645         representation of visibility.
10646         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
10647         such.
10648         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
10649         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
10650         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
10651         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
10652         it was explicitly disabled.
10653         (frv_stack_info): There is no need to save the link register in every
10654         frame unless TARGET_LINKED_FP is true.
10655         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
10656         frame pointer if the stack pointer might change value.
10657         (frv_return_addr_rtx): Check and process "count" argument.
10658         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
10659         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
10660         (frv_find_base_term): Declare.
10661         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
10662         (FIND_BASE_TERM): Define.
10663         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
10664         small_data_register_operand, small_data_symbolic_operand.  Add
10665         symbolic_operand.
10666         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
10667         (frv_print_operand_memory_reference, output_move_single): Remove
10668         special handling for unlegitimized sdata addresses.
10669         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
10670         and symbolic addresses.
10671         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
10672         (frv_find_base_term): New function.
10673         (int_2word_operand): Check specifically for symbolic address constants.
10674         (pic_register_operand, pic_symbolic_operand): Delete.
10675         (small_data_register_operand, small_data_symbolic_operand): Delete.
10676         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
10677         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
10678         (move_source_operand): Only accept CONSTs if they're a two-insn
10679         symbolic constant.
10680         (fdpic_got12_operand): Don't require TARGET_FDPIC.
10681         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
10682         using gen_symGOTOFF2reg*.
10683         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
10684         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
10685         themselves a cost of 3 insns.
10686         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
10687         Change predicate to symbolic_operand.
10688         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
10689         (*movsi_lda_sdata): Delete.
10690         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
10691         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
10692         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
10693         frv-*-*linux*.
10694         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10695         label.
10696         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
10697         -multilib-library-pic.
10698         (LINK_SPEC): Add -z text for -mfdpic.
10699         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
10700         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
10701         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
10702         Override.
10703         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
10704         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
10705         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
10706         crtstuff-generated files.
10707         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
10708         * config.gcc: Add frv-*-*linux*.
10709         * config/frv/linux.h, config/frv/t-linux: New.
10710         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
10711         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
10712         when -mfdpic even if a linker script is explicitly listed.
10713         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10714         * config/frv/frv.c (frv_override_options): Clear asm_out
10715         unaligned_op for SImode on FDPIC.
10716         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
10717         argument passed to decl_readonly_section.
10718         (frv_assemble_integer): Revert 2003-09-30's change, but make the
10719         whole block run with FDPIC even with -fno-PIC.
10720         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10721         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
10722         symbol or label plus offset to memory.
10723         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
10724         GOTOFF and GPREL for LABEL_REF.
10725         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
10726         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
10727         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
10728         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
10729         * doc/invoke.texi: Document them.
10730         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
10731         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
10732         (frv_splittable_got_operand): Removed.
10733         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
10734         LO_SUM.  Add comments.
10735         (frv_override_options): Moved enabling of FDPIC to
10736         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
10737         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
10738         (frv_legitimize_fdpic_address): Don't duplicate logic in
10739         frv_emit_movsi.
10740         (frv_gen_GPsym2reg): New.
10741         (unspec_got_name): Added gprel.
10742         (frv_expand_fdpic_call): Add support for inlining PLTs.
10743         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
10744         (gpr_or_int12_operand): Added GPREL12.
10745         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
10746         (small_data_symbolic_operand): Fail if FDPIC.
10747         (fdpic_splittable_got_operand): Removed.
10748         (fdpic_got12_operand): Added GPREL12.
10749         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
10750         when appropriate.  Fix sdata GOTOFF.
10751         (frv_legitimate_constant_p): Require legitimate PIC operand for
10752         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
10753         (frv_assemble_integer): Move FDPIC funcdesc handling out of
10754         flag_pic case.
10755         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
10756         frv_assemble_integer fails.
10757         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
10758         (SUBTARGET_DRIVER_SELF_SPECS): New.
10759         (ASM_SPEC): Don't pass -mno-fdpic.
10760         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
10761         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
10762         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
10763         -multilib-library-pic.
10764         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
10765         condexec_si_media_operator, condexec_sf_add_operator and
10766         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
10767         and condexec_sf_unary_operator.
10768         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
10769         New.
10770         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
10771         movsi_internal.  Give them internal names.  movsi_got has type
10772         int.
10773         (fdpic got splitters): Remove.
10774         (symGPREL2reg, symGPREL2reg_hilo): New.
10775         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
10776         to -mlibrary-pic.  Map -multilib-library-pic to it.
10777         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
10778         Document.
10779         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
10780         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
10781         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
10782         (frv_cannot_force_const_mem): New function.
10783         (const_small_data_p, plus_small_data_p): Update comments on sdata
10784         on FDPIC.
10785         (frv_override_options): Set flag_pie for FDPIC too.
10786         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
10787         call-saved registers on FDPIC.
10788         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
10789         don't force LR to be preserved.
10790         (frv_expand_prologue): Likewise.
10791         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
10792         (frv_frame_pointer_required): Don't force it just because the
10793         FDPIC register is used.
10794         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
10795         operand only if !condexec_p.
10796         (frv_legitimize_address): Return the FDPIC-legitimized address.
10797         Don't match small data here on FDPIC.
10798         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
10799         symbols.  Use TRUE/FALSE instead of 1/0.
10800         (frv_local_funcdesc_p): New.
10801         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
10802         immediates when possible.
10803         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
10804         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
10805         an UNSPEC_GOT.
10806         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
10807         12-bit immediates when possible.
10808         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
10809         are not legitimate pic operands.
10810         (frv_in_small_data_p): Re-enable for FDPIC.
10811         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
10812         (FRV_GLOBAL_P): Removed.
10813         * config/frv/frv.md: Add modes to CONSTs.
10814         (movsi_got): New.
10815         (movsi_lo_sum_got): Use separate matches instead of match_dup.
10816         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
10817         (fdpic splittable operations): Match on flag_pic != 1.
10818         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
10819         * config/frv/frv.c (frv_asm_out_constructor,
10820         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
10821         bytes, not bits.
10822         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
10823         * config/frv/frv.c (frv_assemble_integer): Reject complex
10824         expressions referencing function SYMBOL_REFs.
10825         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
10826         (move_source_operand): Reject CONSTs that reference function
10827         SYMBOL_REFs on FDPIC.
10828         (frv_emit_movsi): If we get such a CONST, break it up.
10829         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
10830         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
10831         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
10832         MEM.
10833         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
10834         (frv_trampoline_size): Increase for FDPIC.
10835         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
10836         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
10837         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
10838         Disable use of GOTOFF for now.
10839         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
10840         Disable use of small data in FDPIC for now.
10841         (frv_asm_output_mi_thunk): Implement for FDPIC.
10842         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
10843         * config/frv/frv.c (frv_asm_out_constructor): Use
10844         frv_assemble_integer for FDPIC pointers.
10845         (frv_asm_out_destructor): Likewise.
10846         * config/frv/frv.md (ldd): Fix order of operands.  Use
10847         address_operand for input.
10848         2003-09-18  DJ Delorie  <dj@redhat.com>
10849         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
10850         (unspec_got_name): Correct typo.
10851         (frv_emit_movsi): Pre-expand splittable GOTs.
10852         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
10853         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
10854         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
10855         * config/frv/t-frv: Add -mfdpic multilibs.
10856         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
10857         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
10858         * config/frv/frv.c (frv_override_options): -mfdpic assumes
10859         flag_pic, default to 32-bit pics, require DWORD ops.
10860         (frv_override_options): Add W and Z constraints.
10861         (frv_expand_prologue): No pic prologue for -mfdpic.
10862         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
10863         (frv_print_operand_memory_reference): Handle GOT constants.
10864         (frv_legitimate_address_p): Allow GOT constants.
10865         (frv_legitimize_address): Handle GOT addresses too.
10866         (frv_legitimate_fdpic_operand_p): New.
10867         (frv_legitimize_fdpic_address): New.
10868         (unspec_got_name): New.
10869         (frv_output_addr_const_extra): New.
10870         (frv_expand_fdpic_call): New.
10871         (frv_fdpic_fptr_operand): New.
10872         (gpr_or_int12_operand): Handle GOT operands.
10873         (int_2word_operand): Handle GOT operands.
10874         (fdpic_operand): New.
10875         (fdpic_splittable_got_operand): New.
10876         (fdpic_got12_operand): New.
10877         (frv_emit_movsi): Handle GOT operands.
10878         (frv_assemble_integer): -mfdpic doesn't use rofixups.
10879         (frv_print_operand): Support 'g' code for GOT operands.
10880         * config/frv/frv-protos.h: Add prototypes as needed.
10881         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
10882         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
10883         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
10884         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
10885         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
10886         R_FRV_GOTOFFLO): New.
10887         (movsi_high_got, movsi_lo_sum_got): New.
10888         (*movsi_pic): Don't use this splitter for -mfdpic.
10889         (addsi3): Allow GOT references also.
10890         (call, call_value): Handle -mfdpic separately.
10891         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
10892         call_value_fdpicsi): New.
10893         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
10894         symGOTOFF2reg_i): New.
10895         * config/frv/frv.h (MASK_FDPIC): New.
10896         (TARGET_FDPIC): New.
10897         (TARGET_SWITCHES): Add -mfdpic.
10898         (FDPIC_FPTR_REGNO): New.
10899         (FDPIC_REGNO): New.
10900         (OUR_FDPIC_REG): New.
10901         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
10902         FDPIC_CALL_REGS.
10903         (REG_CLASS_NAMES): Likewise.
10904         (REG_CLASS_CONTENTS): Likewise.
10905         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
10906         (EXTRA_CONSTRAINT): Add it here.
10907         (FRV_GLOBAL_P): New.
10908         (OUTPUT_ADDR_CONST_EXTRA): New.
10909
10910 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10911
10912         * config/sparc/sparc.h: Remove commented-out definitions of
10913         TARGET_EDOM and GEN_ERRNO_RTX.
10914
10915 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10916
10917         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
10918         df_analyse with df_analyze.
10919
10920 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
10921
10922         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
10923         beginning of block.
10924
10925 2004-02-23  James E Wilson  <wilson@specifixinc.com>
10926
10927         * calls.c (precompute_arguments): Update comment.
10928
10929 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10930
10931         * et-forest.c: Replace et_occurences with et_occurrences.
10932
10933 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10934
10935         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
10936         with iv_analyze.
10937
10938 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
10939
10940         * config/i386/i386.c: Rename pni to sse3.
10941         * config/i386/i386.h: Likewise.
10942         * config/i386/i386.md: Likewise.
10943         * config/i386/pmmintrin.h: Likewise.
10944         * doc/extend.texi: Likewise.
10945         * doc/invoke.texi: Likewise.
10946
10947 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
10948             Kazu Hirata  <kazu@cs.umass.edu>
10949
10950         Remove -fwritable-strings.
10951         * c-common.c (fix_string_type): Don't check
10952         flag_writable_strings.
10953         (fix_string_type): Likewise.
10954         * c-opts.c (set_std_c89): Don't initialize
10955         flag_writable_strings.
10956         (set_std_c99): Likewise.
10957         * common.opt (fwritable-strings): Remove.
10958         * flags.h: Remove the external declaration of
10959         flag_writable_strings.
10960         * opts.c (common_handle_option) <OPT_fwritable_strings>:
10961         Remove.
10962         * toplev.c (flag_writable_strings): Remove.
10963         (f_options): Remove an entry for writable-strings.
10964         * varasm.c (const_hash_1) <STRING_CST>: Don't check
10965         flag_writable_strings.
10966         (compare_constant) <STRING_CST>: Likewise.
10967         (build_constant_desc): Likewise.
10968         * config/darwin.c (machopic_select_section): Likewise.
10969         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
10970         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
10971         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
10972         * config/mips/mips.c (mips_select_section): Likewise.
10973         (mips_encode_section_info): Likewise.
10974         * config/pa/pa.c (pa_select_section): Likewise.
10975         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
10976         * config/v850/v850.c (v850_select_section): Likewise.
10977         * doc/invoke.texi (-fwritable-strings): Remove.
10978         (-fno-const-strings): Don't mention -fwritable-strings.
10979         * doc/trouble.texi: Don't mention -fwritable-strings.
10980
10981 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
10982
10983         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
10984
10985 2004-02-23  Dale Johannesen  <dalej@apple.com>
10986
10987         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
10988         (movdf_hardfloat64):  Ditto.
10989         (movdf_softfloat64):  Ditto.
10990
10991 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
10992         * config/rs6000/rs6000.c (function_arg): call to
10993         rs6000_mixed_function_arg for DFmode moved to allow
10994         normal DFmode incoming register assignment.
10995
10996 2004-02-23  Dale Johannesen  <dalej@apple.com>
10997
10998         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
10999         (movdf_hardfloat64):  Ditto.
11000
11001 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11002
11003         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11004         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11005         copyright.
11006
11007 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11008
11009         PR c/14156
11010         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11011         to use DECL_P instead.
11012
11013         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11014         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11015
11016 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11017
11018         * Makefile.in (opts.o): Depend on target.h.
11019         * opts.c (decode_options): Use targetm.default_short_enums
11020         instead of DEFAULT_SHORT_ENUMS.
11021         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11022         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11023         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11024         * target.h (gcc_target): Add default_short_enums.
11025         * config/cris/cris.h: Remove a comment about
11026         DEFAULT_SHORT_ENUMS.
11027         * config/ip2k/ip2k.h: Likewise.
11028         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11029         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11030
11031 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11032             Falk Hueffner  <falk@debian.org>
11033
11034         PR c/14188
11035         * builtins.c (expand_builtin_va_arg): Emit an informative message
11036         if a trap is generated.
11037         * c-typeck.c (build_function_call): Likewise.
11038
11039 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11040
11041         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11042         fopen.
11043         * libgcov.c: Include sys/stat.h.
11044         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11045         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11046         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11047         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11048
11049 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11050
11051         * reorg.c: Remove comments about dead ports.
11052
11053 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11054
11055         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11056         extra host object file when targetting cygwin rather than generic
11057         object files.
11058
11059 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11060
11061         Merge from tree-ssa:
11062         2003-11-20  Richard Henderson  <rth@redhat.com>
11063
11064                 * tree-inline.c (insert_decl_map): New.
11065                 (remap_decl, remap_type, remap_block, copy_body_r,
11066                 initialize_inlined_parameters, declare_return_variable,
11067                 remap_save_expr): Use it.
11068
11069         * function.c (copy_body_r): Add mapping from id->ret_label to
11070         id->ret_label.  Revert test for ret_label.
11071
11072 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11073
11074         * genoutput.c (process_template): Strip trailing whitespace in @
11075         templates and issue a warning if there was any.
11076
11077 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11078
11079         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11080         object file when targetting cygwin.
11081         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11082         overridden by top-level Makefile.
11083
11084 2004-02-21  Roger Sayle  <roger@eyesopen.com>
11085
11086         * config/i386/i386.c (standard_80387_constant_p): Also prefer
11087         the x87's load constant instructions when optimizing for size.
11088
11089 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11090
11091         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11092         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11093         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11094         * fold-const.c: Likewise.
11095         * simplify-rtx.c: Likewise.
11096
11097 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11098
11099         * combine.c (can_combine_p): Don't ignore SETs marked with
11100         REG_EH_REGION notes.
11101         (try_combine): When attemting to fix unrecognized insns, don't
11102         split a PARALLEL that contains the original i2.
11103
11104 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11105
11106         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11107         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11108         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11109         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11110         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11111         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11112         portion of header.
11113         (__altivec_link_error_invalid_argument): Remove prototype; will use
11114         __builtin_altivec_compiletime_error("vec_*") instead.
11115         (vec_*): Fix/complete set of available operation overloads given the
11116         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11117         cv-correctness of pointer arguments; in C, always check for correct
11118         argument types before macro expansion.
11119         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11120         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11121         '-W[no-]altivec-long-deprecated' switches.
11122         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11123         '__vector', '__pixel' and '__bool' macros using
11124         '__attribute__((altivec(...)))' types.
11125         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11126         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11127         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11128         New type nodes.
11129         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11130         handling '-W[no-]altivec-long-deprecated'.
11131         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11132         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11133         altivec_expand_dst_builtin): Remove casts from integer literals.
11134         (altivec_expand_builtin): Likewise; handle expansion of new
11135         '__builtin_altivec_compiletime_error' function.
11136         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11137         types, and make them distinct from other vector types; register
11138         '__builtin_altivec_compiletime_error' function.
11139         (print_operand): For 'P', print a full target register name instead of
11140         merely its number.
11141         (rs6000_attribute_table): Add "altivec" attribute.
11142         (rs6000_handle_altivec_attribute): New function.
11143         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11144         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11145         maps to).
11146         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11147         declare.
11148         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11149
11150 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11151
11152         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11153         check.
11154         (shift_mix4left+2): Delete redundant pattern.
11155
11156 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11157
11158         * alias.c (OUTGOING_REGNO): Don't define the default.
11159         * builtins.c (OUTGOING_REGNO): Likewise.
11160         (INCOMING_REGNO): Likewise.
11161         (apply_args_register_offset): Always use OUTGOING_REGNO.
11162         * combine.c (OUTGOING_REGNO): Likewise.
11163         * sibcall.c (OUTGOING_REGNO): Likewise.
11164         * defaults.h (INCOMING_REGNO): Provide the default.
11165         (OUTGOING_REGNO): Likewise.
11166
11167 2004-02-21  Jan Hubicka  <jh@suse.cz>
11168
11169         * params.def (max-peeled-insns, max-completely-peeled-insns,
11170         max-once-peeled-insns): Set to 400.
11171
11172 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11173
11174         PR c++/12007
11175         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11176         are set for parameters before outputing debugging information.
11177
11178 2004-02-20  Falk Hueffner  <falk@debian.org>
11179
11180         PR target/14201
11181         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11182         numbers.
11183
11184 2004-02-20  Per Bothner  <per@bothner.com>
11185
11186         * input.h:  Don't #include line-map.h.  It may cause link problems
11187         with undefined linemap_line_start when line-map.h is included but
11188         line-map.o is not linked, as currently happens with gengtype on
11189         compilers that don't support inline.
11190         * toplev.c:  So we do have to explicitly #include line-map.h here.
11191
11192 2004-02-20  Richard Henderson  <rth@redhat.com>
11193
11194         * doc/invoke.texi: Add -Wvariadic-macros.
11195
11196 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11197
11198         * haifa-sched.c (sched_emit_insn): Remove.
11199         * sched-int.h: Remove the corresponding prototype.
11200
11201 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11202
11203         Revert:
11204         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
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-20  Mohan Embar  <gnustuff@thisiscool.com>
11213             Tom Tromey  <tromey@redhat.com>
11214
11215         * doc/install.texi: Moved --disable-libgcj and
11216         --with-system-zlib documentation to new section for
11217         Java-specific options.
11218         Added explicit Cross-Compiler-Specific Options subheading.
11219         Added section for Java-specific options.
11220
11221 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
11222
11223         * doc/install.texi (Building the Ada compiler): Remove
11224         example.
11225
11226 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11227
11228         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11229
11230 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11231
11232         * gcc.c (process_command): Allow translation of the copyright
11233         symbol but not the rest of the copyright message.
11234         * gcov.c (print_version): Likewise.  Allow translation of the
11235         message about warranty.
11236
11237 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
11238
11239         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11240         predicate.
11241         ("*andsi_clear"): Tweak constraints to not match postincrement.
11242         Adjust the predicate to exclude a volatile memory reference.
11243         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
11244         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11245
11246 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
11247
11248         * move-if-change: Remove.
11249         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11250         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11251         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11252         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11253         (s-gtyp-gen, s-iov): Use the top level move-if-change.
11254         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11255
11256 2004-02-19  James E Wilson  <wilson@specifixinc.com>
11257
11258         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11259         for operand2.  Add condition that requires register_operand operand2
11260         before reload.
11261
11262 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
11263             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11264
11265         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11266         * config/mips/mips.md: Expand comment above unaligned loads and stores.
11267
11268 2004-02-19  Richard Henderson  <rth@redhat.com>
11269
11270         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11271         * tree.c (build0, build1, build2, build3, build4): Split out from...
11272         (build): ... here.  Call them.
11273         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11274
11275         * convert.c (convert_to_integer): Remove extra build argument.
11276         * tree-inline.c (expand_call_inline): Likewise.
11277
11278 2004-02-19  Richard Henderson  <rth@redhat.com>
11279
11280         * c-opts.c (warn_variadic_macros): New.
11281         (c_common_handle_option): Set it.
11282         (sanitize_cpp_opts): Copy it to cpp_opts.
11283         * c.opt (Wvariadic-macros): New.
11284         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11285         * cppinit.c (cpp_create_reader): Initialize it.
11286         * cppmacro.c (parse_params): Check it.
11287
11288 2004-02-19  David Daney <ddaney@avtrex.com>
11289
11290         PR preprocessor/14198
11291         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11292         builtin_assert ("machine=mips")
11293
11294 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11295
11296         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11297         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11298         * config/cris/cris.h: Remove a comment about
11299         DEFAULT_SHORT_ENUMS.
11300         * config/ip2k/ip2k.h: Likewise.
11301         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11302
11303 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11304
11305         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11306         when passing single SFmode quantities in general registers,
11307         put them in the high half.
11308
11309 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11310
11311         * doc/md.texi (Standard Names): Document additional dependency on
11312         fix pattern.
11313
11314         * optabs.c (ftruncify): Remove.
11315         (expand_fix): Manually inline ftruncify above.
11316         (can_fix_p): Add FIXME note.
11317
11318 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11319
11320         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11321         spe_fixuns_truncsfsi2.
11322
11323         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11324         fixuns_truncsfsi2.
11325
11326 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
11327
11328         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11329         * testsuite/gcc.dg/20040219-1.c: New test.
11330
11331 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
11332
11333         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11334         "*subsf3_cconly"): Subtraction is not commutative.
11335
11336 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11337
11338         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11339         (sdbout_symbol): If called before sdbout_init, queue DECL for
11340         later and return.
11341         (sdbout_init): Set sdbout_initialized true, process decls
11342         queued earlier by sdbout_symbol.
11343         (sdbout_finish): Use size_t for index variable.
11344
11345 2004-02-19  Jeff Law  <law@redhat.com>
11346
11347         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11348         for unordered comparison codes.
11349
11350 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
11351
11352         * reload1.c (reload): Correct comment.
11353         (scan_paradoxical_subregs): Remove #if 0 and old comment.
11354         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11355         register variables are not used by reload.
11356
11357 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
11358
11359         PR target/14209
11360         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11361         constraints to not match postincrement.  Adjust the predicate to
11362         exclude a volatile memory reference.
11363
11364 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11365
11366         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11367
11368 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11369
11370         * hooks.c (hook_void_tree_int): Remove.
11371         (hook_void_constcharptr): Likewise.
11372         (hook_int_void_0): Likewise.
11373         * hooks.h: Remove the prototypes for the above three
11374         functions.
11375         * targhooks.c (hook_bool_machine_mode_true): Remove.
11376         * targhooks.h: Remove the prototype for
11377         hook_bool_machine_mode_true.
11378
11379 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11380
11381         * emit-rtl.c (subreg_realpart_p): Remove.
11382         (reorder_insns_with_line_notes): Likewise.
11383         (end_full_sequence): Likewise.
11384         * rtl.h: Remove the prototype for the above functions.
11385
11386 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11387
11388         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11389         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11390         config/iq2000/iq2000.h, config/m32r/m32r.h,
11391         config/pdp11/pdp11.h, config/sparc/sparc.h,
11392         config/xtensa/xtensa.h: Remove commented-out or useless
11393         definitions of CASE_VECTOR_PC_RELATIVE.
11394
11395 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11396
11397         * loop.c (all_sets_invariant_p): Remove.
11398
11399 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11400
11401         PR target/12916
11402         * config/sparc/sparc.h (NPARM_REGS): Delete.
11403         (BASE_RETURN_VALUE_REG): Likewise.
11404         (BASE_OUTGOING_VALUE_REG): Likewise.
11405         (BASE_PASSING_ARG_REG): Likewise.
11406         (BASE_INCOMING_ARG_REG): Likewise.
11407         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11408         TARGET_ARCH64, not TARGET_V9.
11409         (function_arg_slotno): Dispatch based on the mode class.
11410         Handle vector modes like floating-point modes.
11411         (function_arg_record_value_1): Handle vector types like
11412         floating-point types.
11413         (function_arg_record_value_2): Likewise.
11414         Calculate regno after mode transformation.
11415         (function_arg): Handle vector modes like floating-point modes.
11416         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11417         If ARCH64, do not recheck alignment.
11418         (function_arg_pass_by_reference): Reorder the conditions.
11419         (sparc_return_in_memory): Move after function_arg_padding.
11420         Implement calling conventions for vector modes.
11421         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11422         (function_value): Move scope of 'regbase'.
11423         Implement calling conventions for vector modes.
11424         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11425         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11426         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11427         the argument is passed by reference.
11428         (sparc_type_code): Handle vector types.
11429
11430 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
11431
11432         * function.c (assign_parms): When building decl_rtl for
11433         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11434
11435 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
11436
11437         * expr.c (is_aligning_offset): Check if we are aligning the
11438         expressions's address over BIGGEST_ALIGNMENT in bytes, not
11439         in bits.
11440
11441 2003-02-18  Matt Austern  <austern@apple.com>
11442
11443         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11444         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11445         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11446         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11447         spec string.
11448         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
11449
11450 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
11451
11452         * dwarf2out.c (loclabel_num): Move outside #ifdef
11453         DWARF2_DEBUGGING_INFO and mark with GTY(()).
11454         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11455         Mark with GTY(()).
11456         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
11457         Allocate memory with ggc_alloc.  No need to copy anything.
11458         (ia64_hpux_file_end): Update to match.
11459
11460 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11461
11462         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
11463         by default.
11464
11465 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11466
11467         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
11468         ("divmodtisi3"): Likewise.
11469         ("udivmoddi4", "udivmodtidi3"): Likewise.
11470         ("divmodsi4", "divmoddisi3"): Likewise.
11471         ("udivmodsi4", "udivmoddisi3"): Likewise.
11472         ("udivsi3", "umodsi3"): Likewise.
11473
11474 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11475
11476         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
11477         placeholder insn when chunkifying the pool.
11478
11479 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11480
11481         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
11482         generating PIC code.
11483
11484 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11485
11486         * config/h8300/h8300-protos.h: Add a prototype for
11487         h8300_expand_branch.
11488         * config/h8300/h8300.c (h8300_expand_branch): New.
11489         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
11490         bgtu, beq, bne): Call h8300_expand_branch().
11491
11492 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11493
11494         * config/h8300/h8300-protos.h: Add prototypes for
11495         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
11496         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
11497         (h8300_hard_regno_mode_ok): Likewise.
11498         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
11499         h8300_hard_regno_nregs().
11500         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
11501
11502 2004-02-18  Per Bothner  <per@bothner.com>
11503
11504         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
11505         partly reverts my 2003-10-01 change, because we're back to logically
11506         including <command line> inside the main line.
11507         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
11508         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
11509         Fixes PR preprocessor/14103.
11510
11511         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
11512         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
11513         (cpp_push_include):  Don't need to increment pfile's line field.
11514         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
11515
11516         * c-ppoutput.c (print struct):  New first_time field.
11517         (init_pp_output):  Set print.first_time.
11518         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
11519         which is set also for (say) <command line>.  Clear print.first_time.
11520
11521         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
11522         does not match the code, so fix both.
11523         (should_stack_file):  Inline include_pch_p function.
11524         (include_pch_p):  Remove pointless function.
11525
11526         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
11527
11528 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11529
11530         * config/h8300/h8300.md (four define_peephole2's): Use
11531         h8300_regs_ok_for_stm().
11532
11533 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11534
11535         * config/h8300/h8300-protos.h: Update the prototype for
11536         expand_a_rotate().
11537         * config/h8300/h8300.c (expand_a_rotate): Remove the first
11538         argument.
11539         * config/h8300/h8300.md: Update all callers.
11540
11541 2004-02-18  Jan Hubicka  <jh@suse.cz>
11542
11543         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
11544         floats.
11545         (simplify_binary_operation): Deal with logicals on floats.
11546
11547         * i386.md (SSE fabs splitters): Emit new patterns.
11548         (SSE cmov splitters): Likewise.
11549         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
11550         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
11551         subregs.
11552         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
11553         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
11554
11555 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11556
11557         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
11558         by hand.
11559         (output_a_rotate): Tweak a comment.
11560         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
11561         (*rotlhi3_1): Change to rotlhi3_1.
11562         (*rotlsi3_1): Change to rotlsi3_1.
11563
11564 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
11565
11566         PR target/13866
11567         * arm.c (load_multiple_operation): Don't insist that the source reg
11568         of a post-increment component is the same as the destination.
11569         (store_multiple_operation): Likewise.
11570
11571 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11572
11573         * config/h8300/h8300.md: Move movsf patterns into one section
11574         of the file.
11575
11576 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11577
11578         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
11579         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
11580         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
11581         config/mips/linux64.h, config/pa/pa-64.h,
11582         config/rs6000/aix51.h, config/rs6000/aix52.h,
11583         config/rs6000/spe.md, config/sparc/linux.h,
11584         config/sparc/linux64.h: Update copyright.
11585
11586 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11587
11588         * config/h8300/h8300.md: Move push patterns into one
11589         section of the file.
11590
11591 2004-02-18  Mark Mitchell <mark@codesourcery.com>
11592
11593         PR c++/11326
11594         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
11595         fntype.
11596
11597 2004-02-18  Paul Brook  <paul@codesourcery.com>
11598
11599         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
11600
11601 2004-02-18  Paul Brook  <paul@codesourcery.com>
11602
11603         PR debug/12934
11604         * dwarf2out.c (loc_descriptor_from_tree): Handle
11605         EXPR_WITH_FILE_LOCATION.
11606
11607 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11608
11609         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
11610         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
11611         trailing whitespace from instructions.
11612
11613 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
11614
11615         * configure.ac: When generating auto-build.h, pass
11616         --enable-languages to the sub-configure.
11617         Put quotes around ${program_transform_name} when generating
11618         name of as, ld, nm, objdump.
11619         * configure: Regenerate.
11620
11621 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
11622
11623         * Makefile.in (s-check, s-config, s-conditions, s-flags)
11624         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
11625         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
11626         (s-preds, s-iov): Do not depend on move-if-change.
11627
11628 2004-02-17  James E Wilson  <wilson@specifixinc.com>
11629
11630         * caller-save.c (insert_restore): Pass mem through copy_rtx.
11631         (insert_save): Likewise.
11632
11633 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11634
11635         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
11636         warning.
11637
11638 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11639
11640         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
11641         *one_cmplsi2_h8300.
11642         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
11643
11644 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11645
11646         * config/h8300/h8300-protos.h: Update the prototype of
11647         fix_bit_operand().
11648         * config/h8300/h8300.c (fix_bit_operand): Remove the second
11649         argument "what".
11650         * config/h8300/h8300.md: Update all callers.
11651
11652 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11653
11654         * config/h8300/h8300.c (fix_bit_operand): Change the name of
11655         the last argument to "code" from "type".
11656
11657 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11658
11659         * config/h8300/h8300.c: Remove an extern declaration of
11660         rtx_equal_function_value_matters.
11661
11662 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11663
11664         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
11665         by hand.
11666         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
11667         (*iorqi3_1): Change to iorqi3_1.
11668         (*xorqi3_1): Change to xorqi3_1.
11669
11670 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11671
11672         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
11673         typos.
11674
11675 2004-02-17  Jan Hubicka  <jh@suse.cz>
11676
11677         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
11678
11679 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
11680
11681         PR optimization/14119
11682         * combine.c (try_combine): When attemting to fix unrecognized insns,
11683         don't delete SETs marked with REG_EH_REGION notes.
11684
11685 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
11686
11687         * combine.c (simplify_if_then_else): Do not replace
11688         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
11689         modes differ.
11690
11691 2004-02017  Steven Bosscher  <stevenb@suse.de>
11692
11693         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
11694         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
11695         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
11696         * ada/utils.c: Likewise.
11697         * cp/decl.c: Likewise.
11698         * f/com.c: Likewise.
11699         * java/class.c: Likewise.
11700
11701 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11702
11703         * config/h8300/h8300.md: Fix comment typos.
11704
11705 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11706
11707         * config/mips/t-iris6gld: Renamed to ...
11708         * config/mips/t-irix-gld: ... this.
11709         * config.gcc (mips-sgi-irix6*): Reflect this
11710         (mips-sgi-irix5*): Use it with GNU ld.
11711
11712         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
11713         to ...
11714         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
11715         * config/mips/t-irix-gld: Reflect this.
11716         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11717
11718         * config/mips/iris5gld.h: New file.
11719         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
11720         Only use collect2 without gas.
11721
11722         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
11723         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11724         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
11725         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11726
11727         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
11728         * config/mips/iris5.h: ... here.
11729
11730         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
11731         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11732         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
11733
11734         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
11735         using irix_startfile_spec, irix_endfile_spec.
11736
11737 2004-02-16  Gunther Nikl  <gni@gecko.de>
11738
11739         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
11740
11741 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11742
11743         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
11744         insns by hand.
11745
11746 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11747
11748         * cfghooks.c (split_edge): Speed up updating of dominators.
11749
11750 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
11751
11752         PR c++/11326
11753         * c-common.c (flag_abi_version): Remove.
11754         * c-common.h (flag_abi_version): Likewise.
11755         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
11756         * c.opt (fabi-version): Remove.
11757         * calls.c (expand_call): Always pass a function type to
11758         struct_value_rtx.  Use convert_memory_address.
11759         * common.opt (fabi-version): Add it.
11760         * flags.h (flag_abi_version): Likewise.
11761         (abi_version_at_least): New macro.
11762         * opts.c (common_handle_option): Add OPT_fabi_version.
11763         * toplev.c (flag_abi_version): Define it.
11764         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
11765         New function.
11766         (ia64_output_mi_thunk): Use it.
11767         (ia64_struct_value_rtx): Likewise.
11768
11769 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11770
11771         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
11772         Don't generate insns by hand.
11773
11774 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
11775
11776         PR c++/14178
11777         * doc/invoke.texi (fabi-version): The default is 2 now.
11778
11779 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11780
11781         * loop-iv.c: New file.
11782         * Makefile.in (loop-iv.o): New.
11783         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
11784         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
11785         num_loop_branches): New functions.
11786         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
11787         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
11788         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
11789         get_simple_loop_desc, free_simple_loop_desc): Declare.
11790         (simple_loop_desc): New inline function.
11791         (struct rtx_iv, struct niter_desc): New.
11792         * cfgloopmanip.c (loopify): Specify semantics more precisely.
11793         * expr.c (force_operand): Handle subregs of expressions created by
11794         loop unroller.
11795         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
11796         parts of the initialization to toplev.c
11797         * loop-unroll.c (loop_exit_at_end_p): New.
11798         (unroll_and_peel_loops): Call iv_analysis_done.
11799         (decide_peel_once_rolling, decide_peel_completely,
11800         decide_unroll_stupid, decide_unroll_constant_iterations,
11801         decide_unroll_runtime_iterations, decide_peel_simple,
11802         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
11803         unroll_loop_runtime_iterations): Use new simple loop analysis.
11804         * loop-unswitch.c (compare_and_jump_seq): New.
11805         (may_unswitch_on_p): Renamed to ...
11806         (may_unswitch_on): Use new iv analysis.
11807         (reversed_condition): Export.
11808         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
11809         * predict.c (estimate_probability): Use new simple loop analysis.
11810         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
11811         canon_condition, simplify_using_condition): Declare.
11812         * stor-layout.c (get_mode_bounds): New.
11813         * toplev.c (rest_of_handle_loop2): Some parts of
11814         initialization/finalization moved here from loop-init.c.
11815
11816 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11817
11818         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
11819         pointer.
11820         (CALL_USED_REGISTERS): Likewise.
11821         (REG_ALLOC_ORDER): Likewise.
11822         (REG_CLASS) <GENERAL_REGS>: Likewise.
11823
11824 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
11825
11826         * doc/md.texi (Insn Canonicalizations): Document left-chaining
11827         in associative operators.
11828         * rtlanal.c (commutative_operand_precedence): Create some new
11829         variables.  Prefer a commutative operand on the left, then
11830         binary expressions, then NEG and NOT.
11831
11832 2004-02-16  Matthias Klose  <doko@debian.org>
11833
11834         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
11835         in terms of SHLIB_SOVERSION.
11836         * config/m68k/t-slibgcc-elf-ver: New file.
11837         * config/pa/t-slibgcc-elf-ver: New file.
11838         * config.gcc (m68k-linux, parisc-linux): Use them when not
11839         sjlj exceptions are not configured.
11840
11841 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
11842
11843         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
11844
11845 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
11846
11847         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
11848
11849 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
11850
11851         * doc/sourcebuild.texi: Mention backends.html.
11852
11853 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
11854
11855         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
11856         line-map.c, line-map.h, var-tracking.c: Fix comment
11857         formatting.
11858
11859 2004-02-16  Richard Henderson  <rth@redhat.com>
11860
11861         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
11862
11863         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
11864
11865 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11866
11867         * config/h8300/h8300.md: Remove unnecessary parallels from
11868         all define_insn and define_split patterns.
11869
11870 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11871
11872         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
11873         "clobber").
11874
11875 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
11876
11877         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
11878         '%#'.
11879
11880 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11881
11882         * config/ia64/ia64.c, config/mips/mips.c,
11883         config/mmix/mmix-modes.def: Fix comment typos.
11884
11885 2004-02-15  Roger Sayle  <roger@eyesopen.com>
11886
11887         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
11888         (get_directive_line): Remove unused function prototype.
11889
11890 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11891
11892         * tree-inline.c (copy_body_r): Do not replace ret_label.
11893
11894 2004-02-14  Jan Hubicka  <jh@suse.cz>
11895
11896         * i386.c (x86_four_jump_limit): New variable.
11897         (k8_avoid_jump_misspredicts): Rename to ...
11898         (ix86_avoid_jump_misspredicts): .. this one.
11899         (ix86_pad_returns): Break out from ...
11900         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
11901         to.
11902         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
11903
11904 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11905
11906         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
11907         PARALLEL is NULL.
11908
11909 2004-02-14  Per Bothner  <per@bothner.com>
11910
11911         * fix-header.c (line_table):  Move local variable in main to global.
11912         * scan.h (line_table):  Use it.
11913         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
11914         line (recently renamed to src_loc) before calling recognized_function.
11915
11916 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
11917
11918         * Makefile.in: Fix comment typos.
11919
11920 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
11921
11922         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
11923         for start_value when it is directly moved into reg, and factorize
11924         the retrieval of GET_MODE (reg).
11925
11926 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11927
11928         * config/mips/mips-protos.h (mips_load_got_page): Delete.
11929         (mips_load_got_global): Delete.
11930         (mips_gotoff_page): Declare.
11931         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
11932         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
11933         UNSPEC_LOAD_GOT pattern rather than a MEM.
11934         (*load_got[sd]i): New patterns.
11935         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
11936         (mips_load_got_page, mips_load_got_global): Delete.
11937         (mips_gotoff_page): New function.
11938         (override_options): Don't initialize mips_got_alias_set.
11939
11940 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11941
11942         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
11943         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
11944         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
11945         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
11946         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
11947         * config/mips/mips.c: Fix some overly-long lines.
11948         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
11949         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
11950
11951 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11952
11953         * configure.ac: Search for as, ld below libexec/gcc.
11954         * configure: Regenerate.
11955
11956 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
11957
11958         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
11959         __builtin_arm_setwcx ().
11960         * config/arm/arm.c (arm_expand_builtin): Generate operands
11961         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
11962
11963 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
11964
11965         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
11966         and "wmuluh" to "wmulsm" and "wmulum", respectively.
11967         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
11968         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
11969         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
11970         (_mm_mulhi_pu16): Likewise.
11971
11972 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
11973
11974         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
11975         DECL_NAME != 0 before dereferencing.
11976
11977 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
11978
11979         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
11980         (s390_output_addr_const_extra): Declare.
11981         (s390_output_pool_entry): Remove FILE * argument.
11982         * config/s390/s390.c (s390_output_symbolic_const): Remove.
11983         (s390_output_addr_const_extra): New function.
11984         (print_operand_address): Call output_addr_const instead of
11985         s390_output_symbolic_const.
11986         (print_operand): Likewise.
11987         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
11988         Remove FILE * argument.
11989         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
11990         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
11991         call.
11992
11993 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11994
11995         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
11996         (struct edge, struct vertex, struct graph): New.
11997         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
11998         free_graph): New functions.
11999
12000 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12001
12002         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12003         Use ".set macro" to avoid warnings about multi-instruction
12004         macros, since they're intentional.
12005
12006 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12007
12008         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12009         comment about STANDARD_EXEC_PREFIX.
12010
12011         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12012         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12013         for installing .1 manpages.  Add rules for installing cpp
12014         and gcov manpages under their installed names.
12015
12016 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12017
12018         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12019         host, but try LD_FOR_TARGET first.
12020         * configure: Rebuilt.
12021
12022 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12023
12024         * dbxout.c: Move declaration of dbxout_type_decl outside
12025         #ifdef DBX_DEBUGGING_INFO.
12026         * c-parse.in: Don't give the asmdef production a type.
12027
12028 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12029
12030         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12031         (debug_nothing_tree_int): Prototype.
12032         (dwarf_debug_hooks): Delete, unused.
12033         * debug.c (do_nothing_debug_hooks): Update.
12034         (debug_nothing_tree_int): New function.
12035         * langhooks.h (struct lang_hooks_for_decls):
12036         Remove builtin_type_decls field.
12037         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12038         (LANG_HOOKS_DECLS): Update.
12039         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12040         Use debug_hooks->type_decl.
12041         * dbxout.c (preinit_symbols): New static.
12042         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12043         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12044         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12045         for symbols to output.
12046         (dbxout_type_decl): New function.
12047         (dbxout_symbol): If called before dbxout_init has run, queue
12048         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12049         to TYPE_DECLs before emitting them.
12050         * xcoffout.c (assign_type_number): Delete.
12051         (xcoff_type_numbers): New static table.
12052         (xcoff_assign_fundamental_type_number): New function.
12053         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12054         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12055         * sdbout.c: Include varray.h.
12056         (deferred_global_decls): New static.
12057         (sdb_debug_hooks): Update.
12058         (sdbout_global_decl): If we can't emit something right now,
12059         remember it in deferred_global_decls.
12060         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12061         (sdbout_init): Initialize deferred_global_decls.
12062         * Makefile.in: Update dependencies of sdbout.o.
12063         * dwarf2out.c (dwarf2out_type_decl): New function.
12064         (dwarf2_debug_hooks): Update.
12065         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12066         * c-decl.c (getdecls): Just return 0.
12067         (check_for_loop_decls): Don't use getdecls.
12068         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12069         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12070
12071 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12072
12073         * config/s390/s390.c (s390_sched_reorder2): Remove.
12074         (TARGET_SCHED_REORDER2): Do not redefine.
12075
12076 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12077
12078         * c-parse.in (maybe_type_qual): Delete.
12079         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12080         (asm_argument): New grammar rules.
12081         (extdef_1): Use asmdef.
12082         (maybeasm): Move down with other asm rules; use simple_asm_expr.
12083         (xexpr): Move up with other expression rules.
12084         (stmt): Use asm_stmt.
12085
12086         * c-typeck.c (build_asm_expr): New function - body mostly
12087         pulled from build_asm_stmt.
12088         (build_asm_stmt): Just handle tacking on the volatile qualifier.
12089         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12090
12091 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12092
12093         PR bootstrap/13617
12094         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12095         (mips_declare_object): Make variadic.
12096         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12097         mips_output_aligned_decl_common.
12098         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12099         (mips_declare_object): Make variadic.
12100
12101 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12102
12103         * function.c (update_epilogue_consts): Teach about binary operations.
12104
12105         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12106         previous MEM_VOLATILE in REF.
12107         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12108         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12109
12110 2004-02-12  Gunther Nikl  <gni@gecko.de>
12111
12112         * config.gcc: Restore support for m68k-openbsd.
12113
12114 2004-02-12  Jan Hubicka  <jh@suse.cz>
12115
12116         * tree-optimize.c (tree_rest_of_compilation): Do not release
12117         DECL_ARGUMENTS.
12118
12119 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12120
12121         * doc/install.texi: Fix the spelling of "explicitly".
12122
12123 2004-02-11  Eric Christopher  <echristo@redhat.com>
12124
12125         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12126         duplicate argument structure of cpp_interpret_string.
12127         * cpphash.h: Move prototype...
12128         * cpplib.h: Here.
12129         * cpplib.c: Fix calls to match new function signature.
12130
12131 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12132
12133         PR c/456
12134         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12135         constant expressions at all outside C99 mode if pedantic.
12136
12137 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12138
12139         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12140         (log10_optab, log2_optab): Define corresponding macros.
12141         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12142         * genopinit.c (optabs): Implement log10_optab and log2_optab
12143         using log10?f2 and log2?f2 patterns.
12144         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12145         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12146         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12147         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12148
12149         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12150         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12151         log2, log2f and log2l built-ins as inline x87 intrinsics.
12152
12153 2004-02-11  Richard Henderson  <rth@redhat.com>
12154
12155         PR target/1532
12156         * flow.c (insn_dead_p): A clobber of a dead hard register is a
12157         dead insn after reload.
12158
12159 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12160
12161         * tree.h (frame_base_decl): Add GTY marker.
12162         * var-tracking.c (frame_base_decl): Likewise.
12163
12164 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
12165
12166         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12167         incorrect, hunk.
12168         (add_location_or_const_value_attribute): Use text_section_label,
12169         not TEXT_SECTION_NAME.
12170
12171 2004-02-11  Per Bothner  <per@bothner.com>
12172
12173         Represent column numbers using line-map's source_location.
12174         The "next available source_location" is now managed internally by
12175         line-maps.c rather than by clients.
12176         * line-map.h (struct line_map):  New field column_bits.
12177         <from_line>:  Rename field to start_location.
12178         (struct line_maps):  New fields highest_location and max_column_hint.
12179         (linemap_check_files_exited):  New declaration.
12180         (linemap_line_start):  New declaration.
12181         (linemap_add):  Remove from_line parameter; use highest_location field.
12182         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
12183         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
12184         (CURRENT_LINE_MAP):  Remove macro.
12185         (linemap_position_for_column):  New inline function.
12186         * line-map.c (linemap_init):  Clear new fields.
12187         (linemap_check_files_exited):  New function, extracted from ...
12188         (linemap_free):  Use linemap_check_files_exited.
12189         (linemap_add):  Remove from_line parameter.  Various updates.
12190         (linemap_line_start):  New function.
12191         (linemap_lookeup):  Update for new field names.
12192         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
12193         linemap_position_for_column may unpredictably change the current map,
12194         it is cleaner and simpler for us to not cache it in cpp_reader.
12195         (struct cpp_buffer):  New sysp field.
12196         Changed warned_cplusplus_comments and from_stage3 to bitfields.
12197         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
12198         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
12199         current map using linemap_lookup.
12200         (do_linemarker):  Also set buffer's sysp field.
12201         (destringize_and_run):  No longer need to decrement current line.
12202         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
12203         (search_path_head, open_file_failed):  Use buffer's sysp.
12204         (cpp_make_system_header):  Get current map using linemap_lookup.
12205         Also set buffer's sysp flag.
12206         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
12207         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
12208         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
12209         (struct cpp_reader):  ... and adding saved_line_base field.
12210         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12211         Update accordingly.  Don't adjust line.
12212         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
12213         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
12214         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
12215         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
12216         * cpplex.c (_cpp_lex_direct):  Likewise.
12217         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
12218         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
12219         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
12220         Remove col field as it is now subsumed by src_loc.
12221         * cpperror.c:  Update various field, parameter, and macro names.
12222         (print_location):  If col==0, try SOURCE_COLUMN of line.
12223         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
12224         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
12225         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12226         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
12227         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
12228         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
12229         (_cpp_lex_direct):  Use linemap_position_for_column.
12230         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
12231         parameter.  Instead get it from the line_table global.  Adjust callers.
12232         (print):  Remove map field.  Replace line field to src_line.
12233         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
12234         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
12235         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
12236         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12237         * cpptrad.c (copy_comment):  Rename variable.
12238         * c-lex.c (map):  Remove static variable, for same reason we removed
12239         cpp_reader's map field.
12240         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
12241         to call linemap_lookup.
12242         (cb_line_change):  Token's line field replaced by src_loc.
12243         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
12244         Don't save new_map.
12245
12246         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
12247         source_location.
12248
12249 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12250
12251         * config/rs6000/altivec.md (*movv4si_internal): At least one
12252         operand must be register_operand.
12253         (*movv8hi_internal1): Likewise.
12254         (*movv16qi_internal1): Likewise.
12255         (*movv4sf_internal1): Likewise.
12256
12257 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
12258
12259         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12260         operand.
12261         (movv4hi_internal): Same.
12262         (movv2sf_internal): Same.
12263         (movv1di_internal): Same.
12264
12265 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
12266
12267         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
12268         TARGET_OLDABI consistently.
12269         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12270         mips_va_arg,override_options,compute_frame_size,
12271         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12272         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
12273         and TARGET_OLDABI consistently.
12274         * config/mips/mips.md (exception_receiver): Likewise.
12275         * config/mips/linux64.h: Likewise.
12276
12277 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12278
12279         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12280         Set AltiVec ABI and vrsave as default for ppc64 linux.
12281         (init_cumulative_args): Post error, if try to return
12282         value in AltiVec register without enable AltiVec.
12283         (function_arg_advance): Ditto for passing arguments.
12284
12285 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
12286
12287         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12288         a label before updating its usage count.
12289
12290 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
12291
12292         * doc/install.texi: Remove extra cd.
12293
12294 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
12295
12296         * c-common.c (vector_size_helper): Remove; call
12297         reconstruct_complex_type() instead.
12298         * tree.c (reconstruct_complex_type): New function
12299         (formerly vector_size_helper() in c-common.c).
12300         (make_vector): Make externally visible.
12301         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12302
12303 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12304
12305         * config/h8300/h8300-protos.h: Add a prototype for
12306         h8300_regs_ok_for_stm.
12307         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12308         * config/h8300/h8300.md (stm_h8300s_2_advanced,
12309         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12310         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12311         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12312         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12313         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12314         ldm_h8300s_4_normal, ldm_h8300s_4): Use
12315         h8300_regs_ok_for_stm().
12316
12317 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12318
12319         PR c/14088
12320         * real.c (real_from_string): Look for 'X' as well as 'x' in
12321         hexfloat strings.
12322
12323 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12324
12325         * config/h8300/h8300.md: Remove an incorrect comment about
12326         peephole2.  Add comments.
12327
12328 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
12329
12330         PR/14058
12331         * emit-rtl.c (set_decl_incoming_rtl): New.
12332         * tree.h (set_decl_incoming_rtl): New.
12333         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12334         DECL_INCOMING_RTL.
12335         * ada/misc.c (adjust_decl_rtl): Likewise.
12336
12337 2004-02-10  Per Bothner  <per@bothner.com>
12338
12339         * c-opts.c (c_common_post_options):   Don't emit working directory
12340         in cpp output if -P was specified.
12341
12342 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12343
12344         PR c/14092
12345         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12346         negate_expr back to the original type.
12347
12348 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
12349
12350         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12351         bump retaddr here.
12352
12353 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12354
12355         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12356         gen_lowpart_SUBREG): Move under the file in which they
12357         are actually declared.
12358
12359 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
12360
12361         * doc/sourcebuild.texi: Add libada documentation.
12362
12363         * doc/install.texi: Update documentation on Ada build, now
12364         that the GNAT lib and tools are built automatically.
12365
12366 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
12367
12368         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12369         && TARGET_IRIX.
12370
12371 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
12372
12373         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12374         boundaries outside build_component_ref() call (a macro in ObjC++).
12375
12376 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
12377
12378         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12379         (init_cumulative_args): Likewise.
12380         (a7_overlap_mentioned_p): Delete prototype.
12381         * config/xtensa/xtensa.c (struct machine_function): Replace
12382         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12383         Add set_frame_ptr_insn field.
12384         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12385         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12386         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
12387         at the function entry and replace the operand with the pseudo.
12388         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
12389         argument and record this flag in CUMULATIVE_ARGS.
12390         (function_arg): Remove result_mode and special-case code to handle
12391         arguments in a7.  Instead, set need_a7_copy flag when there is an
12392         incoming argument in a7.
12393         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12394         and use the value recorded in cfun->machine->set_frame_ptr_insn.
12395         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
12396         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
12397         special-case code.
12398         (a7_overlap_mentioned_p): Delete.
12399         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12400         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12401         arguments to init_cumulative_args and pass "incoming" flag instead.
12402         (BLOCK_REG_PADDING): Delete.
12403         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12404         checks for reload_in_progress and reload_completed.  Update calls to
12405         xtensa_copy_incoming_a7.
12406         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
12407         to call xtensa_copy_incoming_a7.
12408
12409 2004-02-09  DJ Delorie  <dj@redhat.com>
12410
12411         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12412         longer modify standard_exec_prefix, standard_bindir_prefix, or
12413         standard_startfile_prefix.
12414
12415 2004-02-09  James E Wilson  <wilson@specifixinc.com>
12416
12417         PR c++/11295
12418         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12419         to expand_expr_real call, and pass in alt_rtl as last argument.
12420
12421         PR libstdc++/5625
12422         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12423         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12424         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12425         * except.c (expand_builtin_extend_pointer): New.
12426         * except.h (expand_builtin_extend_pointer): Declare.
12427
12428 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
12429
12430         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12431         unaligned loads and stores.
12432
12433 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12434
12435         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12436         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12437
12438         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12439         * config/mips/iris5.h: ... here.
12440         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12441
12442         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12443         * config/mips/iris5.h: ... here.
12444
12445 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12446
12447         * configure.ac: Remove default executable files before AC_PROG_CC.
12448         * configure: Regenerate.
12449
12450 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
12451
12452         PR target/13721
12453         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12454         print a operand other than a register.
12455
12456 2004-02-09  Roger Sayle  <roger@eyesopen.com>
12457
12458         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
12459         tree code rather than call fold_convert, which doesn't specify a
12460         default floating point to integer conversion.
12461
12462 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
12463
12464         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
12465         code to support SGS assembler.  Reformat adjacent code where possible.
12466         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
12467         definition.
12468         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
12469         for '%#'.
12470         * config/m68k/linux.h, config/m68k/m68k.c,
12471         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
12472         macros and asm_printf() format strings.
12473         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
12474         * config/m68k/linux.h: Update copyright.
12475         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
12476
12477 2004-02-08  Andreas Schwab  <schwab@suse.de>
12478             Bernardo Innocenti  <bernie@develer.com>
12479
12480         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
12481         REGISTER_PREFIX.
12482         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
12483         frame pointer register, overridable by OS targets.
12484         * (M68K_REGNAME): Macro to obtain register name for asm output,
12485         eventually replacing %a6 with M68K_FP_REG_NAME.
12486         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
12487         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
12488         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
12489         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
12490         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
12491
12492 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12493
12494         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
12495         hook_rtx_tree_int_null.
12496         * targhooks.c (default_struct_value_rtx): Remove.
12497         * targhooks.h: Remove the prototype for
12498         default_struct_value_rtx.
12499         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12500         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
12501         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12502         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
12503         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
12504         config/rs6000/rs6000.c, config/s390/s390.c,
12505         config/stormy16/stormy16.c, config/v850/v850.c,
12506         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
12507         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
12508
12509 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
12510
12511         * README.Portability: Change "ISO C89" to "ISO C90".
12512         * c-parse.in (primary, initelt): Likewise.
12513
12514 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
12515
12516         * real.c (encode_ibm_extended): Normalize the input value before
12517         converting it to a double.  Handle the case where a normal value
12518         rounds to infinity.
12519
12520 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12521
12522         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
12523         warning.
12524         * cse.c (preferrable): Change to preferable. Update all of its
12525         callers.
12526         * genautomata.c (ainsn): Change
12527         first_ainsn_with_given_equialence_num to
12528         first_ainsn_with_given_equivalence_num.  Update all of its
12529         references.
12530
12531 2004-02-08  Jan Hubicka  <jh@suse.cz>
12532
12533         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
12534
12535 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
12536
12537         * function.c (assign_parms): Fix formatting.
12538
12539 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12540
12541         * default.h (PROMOTE_PROTOTYPES): Remove.
12542         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
12543         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
12544         EXPAND_BUILTIN_SAVEREGS): Poison.
12545         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
12546         hook_bool_tree_false.
12547         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12548         * target.h: Replace SETUP_INCOMING_VARARGS with
12549         targetm.calls.setup_incoming_varargs().
12550         * targhooks.c (default_promote_function_return): Remove.
12551         (default_promote_prototypes): Likewise.
12552         (default_struct_value_rtx): Always abort().
12553         (default_expand_builtin_saveregs): Always print an error
12554         message.
12555         (default_setup_incoming_varargs): Do nothing.
12556         (default_pretend_outgoing_varargs_named): Don't depend on
12557         SETUP_INCOMING_VARARGS.
12558         * targhooks.h: Remove the prototype for
12559         default_promote_function_return and
12560         default_promote_prototypes.
12561
12562 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12563
12564         * system.h (SHARED_SECTION_ASM_OP): Poison.
12565         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
12566         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
12567
12568 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12569
12570         Bug 13856
12571         * c-decl.c (diagnose_mismatched_decls): Only give special
12572         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
12573         is also true.
12574         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
12575         DECL_FUNCTION_CODE when defining a built-in function.
12576         Don't update DECL_ESTIMATED_INSNS.
12577         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
12578         FUNCTION_DECLs.
12579         * tree.h: Delete DECL_ESTIMATED_INSNS.
12580         * tree-inline.c (struct inline_data): Delete inlined_insns field.
12581         (expand_call_inline, optimize_inline_calls): Don't update
12582         DECL_ESTIMATED_INSNS nor inlined_insns.
12583         * cgraphunit.c (cgraph_analyze_function): Don't update
12584         DECL_ESTIMATED_INSNS.
12585
12586 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12587
12588         * c-common.c (shadow_warning): Delete.
12589         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
12590         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
12591         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
12592         * c-parse.in (free_parser_stacks): Delete.
12593
12594 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
12595
12596         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
12597         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
12598         Use the top level mkinstalldirs, not the one in the gcc subdir.
12599         * mkinstalldirs: Remove (from the gcc subdir).
12600
12601 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12602
12603         PR middle-end/13696
12604         * fold-const.c (fold_convert): New function to provide type
12605         conversion to the middle-end without using convert.
12606         (negate_expr, associate_trees, size_diffop, omit_one_operand,
12607         operand_equal_for_comparison_p, pedantic_omit_one_operand,
12608         invert_truthvalue, optimize_bit_field_compare, range_binop,
12609         decode_field_reference, make_range, build_range_check, unextend,
12610         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
12611         fold_binary_op_with_conditional_arg, fold_inf_compare,
12612         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
12613         convert with calls to fold_convert.
12614
12615 2004-02-07  Jan Hubicka  <jh@suse.cz>
12616
12617         * genrecog.c (find_operand): add extra argument stop.
12618         (validate_pattern): Verify that mach_dup is duplicating operand
12619         defined lexically earlier.
12620
12621 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12622
12623         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
12624         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12625         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
12626         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
12627         config/ia64/ia64.h, config/ip2k/ip2k.h,
12628         config/iq2000/iq2000.h, config/mips/iris5.h,
12629         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
12630         config/rs6000/aix51.h, config/rs6000/aix52.h,
12631         config/rs6000/darwin.h, config/rs6000/rs6000.h,
12632         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
12633         config/sparc/linux.h, config/sparc/linux64.h,
12634         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
12635         config/xtensa/xtensa.h: Remove the definitions of
12636         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
12637         MAX_WCHAR_TYPE_SIZE.
12638         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12639         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
12640
12641 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
12642
12643         PR bootstrap/13990
12644         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
12645         gen_rtx_NE.
12646
12647 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
12648
12649         * var-tracking.c (vt_add_function_parameters): Surround checkings by
12650         #ifdef ENABLE_CHECKING and #endif.
12651
12652 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12653
12654         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
12655         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
12656         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
12657         integer types and floating point with unsafe_math_optimizations.
12658         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
12659         Optimize A - B as A + (-B), if B is easily negated.
12660
12661 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12662
12663         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
12664         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
12665         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
12666         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
12667         Update copyright.
12668
12669 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12670
12671         * c-ppoutput.c, var-tracking.c: Fix comment typos.
12672
12673 2004-02-06  James E Wilson  <wilson@specifixinc.com>
12674
12675         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
12676         glibc 2.3 or better.
12677
12678 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12679
12680         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
12681         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
12682
12683 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
12684
12685         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
12686         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
12687         (SHLIB_MKMAP_OPTS): Delete.
12688         (TARGET_LIBGCC2_CFLAGS): Add -specs.
12689         (bispecs): Add rule.
12690         * config/rs6000/libgcc-ppc64.ver: New file.
12691         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
12692         (__floatdidf, __floatdisf): Optimize multiply.
12693         (__fixunstfdi): New function.
12694         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
12695         real and imag parts larger than one register.
12696         (function_arg): Correct type of reg used when fp arg split partially
12697         to stack.
12698         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
12699         and __MACH__ or __powerpc64__.
12700
12701 2004-02-06  Roger Sayle  <roger@eyesopen.com>
12702             Ulrich Weigand  <uweigand@de.ibm.com>
12703
12704         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
12705         of gen_highpart or gen_lowpart when the floating point format is
12706         wider than the result mode.
12707
12708 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
12709
12710         * dwarf2out.c (loclabel_num): Move into #ifdef
12711         DWARF2_DEBUGGING_INFO.
12712
12713 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
12714
12715         * objc/objc-act.c (build_super_template) the 'class' field of
12716         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
12717         (get_super_receiver): Likewise.
12718
12719 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12720
12721         * reload1.c (check_eliminable_occurrences): Optimize the reset
12722         of can_eliminate.
12723         (eliminate_regs_in_insn): Likewise.
12724
12725 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
12726             Josef Zlomek  <zlomekj@suse.cz>
12727
12728         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
12729         at the beginning of function, call dwarf2out_var_location for
12730         NOTE_INSN_VAR_LOCATION note.
12731         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
12732         decl_loc_table): New.
12733         (lookup_decl_loc): New function.
12734         (add_var_loc_to_decl): New function.
12735         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
12736         only if can_use_fbreg.
12737         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
12738         functions.
12739         (loc_descriptor): Likewise. Process VAR_LOCATION.
12740         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
12741         (loc_descriptor_from_tree): Call mem_loc_descriptor with
12742         can_use_fbreg == true.
12743         (add_location_or_const_value_attribute): Added parameter enum
12744         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
12745         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
12746         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
12747         with attr == DW_AT_location.
12748         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
12749         if frame_base_decl is defined and has a location list.
12750         (gen_variable_die): Call add_location_or_const_value_attribute with
12751         attr == DW_AT_location.
12752         (dwarf2out_var_location): New function.
12753         (dwarf2out_begin_function): New function.
12754         (dwarf2out_init): Create decl_loc_table.
12755
12756 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12757
12758         * loop.c (force_movables): Transitively increase the priorities of
12759         all insns forces by an insn, not just the first one.
12760
12761 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
12762             Daniel Berlin <dberlin@dberlin.org>
12763
12764         Josef Zlomek  <zlomekj@suse.cz>
12765         * Makefile.in (var-tracking.o): New.
12766         * common.opt (fvar-tracking): New.
12767         * flags.h (flag_var_tracking): New.
12768         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
12769         * opts.c (common_handle_option): Add OPT_fvar_tracking.
12770         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
12771         * rtl.c (note_insn_name): Likewise.
12772         * rtl.def (VAR_LOCATION): New.
12773         * rtl.h (NOTE_VAR_LOCATION): New.
12774         (NOTE_VAR_LOCATION_DECL): New.
12775         (NOTE_VAR_LOCATION_LOC): New.
12776         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
12777         (variable_tracking_main): New exported function.
12778         * timevar.def (TV_VAR_TRACKING): New.
12779         * toplev.c (enum dump_file_index): Added DFI_vartrack.
12780         (dump_file): "vartrack" was added (-dV).
12781         (flag_var_tracking): New.
12782         (f_options): "var-tracking" was added.
12783         (rest_of_handle_variable_tracking): New function.
12784         (rest_of_compilation): Run variable tracking.
12785         (process_options): If user has not specified flag_var_tracking set it
12786         according to optimize, debug_info_level and debug_hooks.
12787         * tree.h (frame_base_decl): New.
12788         * var-tracking.c: New file.
12789         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
12790         (ia64_override_options): Set flags to run variable tracking in machine
12791         dependent reorg instead of toplev.c.
12792         (ia64_reorg): Run variable tracking if wanted.
12793         * doc/invoke.texi: Mention variable tracking in -dV,
12794         add and -fvar-tracking.
12795         * doc/passes.texi: Added variable tracking pass.
12796
12797         Daniel Berlin <dberlin@dberlin.org>
12798         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
12799         * dbxout.c (dbx_debug_hooks): Likewise.
12800         (xcoff_debug): Likewise.
12801         * debug.c (do_nothing_debug_hooks): Likewise.
12802         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
12803         * dwarfout.c (dwarf_debug_hooks): Likewise.
12804         * sdbout.c (sdb_debug_hooks): Likewise.
12805         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12806         * final.c (final_scan_insn): Call var_location debug hook for each
12807         NOTE_INSN_VAR_LOCATION.
12808
12809 2004-02-06  Jan Hubicka  <jh@suse.cz>
12810
12811         * flow.c (update_life_info): Allocate reg_deaths when called from
12812         scheudler.
12813         (attempt_auto_inc):  Update life ranges accordingly.
12814
12815 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12816
12817         PR debug/11816
12818         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
12819
12820 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12821
12822         * cfganal.c (flow_call_edges_add): Never split a libcall block.
12823
12824 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
12825
12826         * dwarf2out.c (output_loc_list): Don't use deltas if we have
12827         a separate line info table in use.
12828         Use the correct size for terminators.
12829         (output_die): Use offset, not delta.
12830
12831 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
12832
12833         * doc/invoke.texi: Remove the pni option from -mfpmath=.
12834
12835 2004-02-06  Jan Hubicka  <jh@suse.cz>
12836
12837         * recog.c (split_all_insns): Do not update reg info.
12838         * regrename.c (regrename_optimize): Likewise.
12839         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
12840         * flow.c (struct propagate_block_info): Add insn_num field.
12841         (reg_deaths): New array.
12842         (life_analysis): Free reg_deaths info.
12843         (allocate_reg_life_data): Allocate reg_deaths array.
12844         (propagate_one_insn): Use new array.
12845         (init_propagate_block): Initialize it.
12846         (free_propagate_block_info): Finish compuation of
12847         REG_LIVE_LENGTH
12848         (attempt_auto_inc): Sanity check that REG_INFO is not
12849         computed at same time.
12850         (mark_used_regs): Update new array.
12851
12852         * reg-stack.c (subst_stack_regs): Unshare clobbers before
12853         substitution.
12854
12855 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12856
12857         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
12858         *extendqisi2_short_displ.
12859
12860 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
12861
12862         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
12863         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
12864         (emit_library_call_value_1): Likewise pass nargs.
12865         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
12866         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
12867         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
12868         parameter instead of scanning TYPE_ARGS_TYPES to count args.
12869         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
12870         prototype.
12871         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
12872         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
12873         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
12874         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
12875         INIT_CUMULATIVE_ARGS.
12876         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
12877         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
12878         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
12879         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
12880         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12881         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
12882         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
12883         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
12884         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
12885         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
12886         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
12887         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
12888
12889 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12890
12891         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
12892         possible.
12893
12894 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12895
12896         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
12897         note containing (plus (reg) (const_int)), where reg is an
12898         eliminable reg, then perform the register elimination without
12899         depending on eliminate_regs().
12900
12901 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12902
12903         * config/arc/arc.c (arc_return_in_memory): Check the return
12904         value of int_size_in_bytes against -1.  Don't check
12905         TREE_ADDRESSABLE.
12906         * config/avr/avr.c (avr_return_in_memory): Check the return
12907         value of int_size_in_bytes against -1.
12908         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
12909         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
12910         Likewise.
12911         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
12912         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
12913         Likewise.
12914
12915 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12916
12917         * config/frv/frv-protos.h: Remove the prototype for
12918         frv_setup_incoming_varargs.
12919         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
12920         (frv_setup_incoming_varargs): Make it static.
12921         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
12922
12923 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12924
12925         * config/fr30/fr30-protos.h: Remove the prototype for
12926         fr30_setup_incoming_varargs.
12927         Update the prototypes for fr30_num_arg_regs and
12928         fr30_function_arg_partial_nregs.
12929         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
12930         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12931         (fr30_setup_incoming_varargs): Make it static.
12932         Add argument second_time.  Don't do anything when second_time
12933         is nonzero.
12934         (fr30_num_arg_regs): Change the type of the first argument to
12935         enum machine_mode.
12936         (fr30_function_arg_partial_nregs): Change the type of the
12937         second argument to enum machine_mode.
12938         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
12939         (SETUP_INCOMING_VARARGS): Remove.
12940
12941 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12942
12943         * config/arc/arc-protos.h: Remove the prototype for
12944         arc_setup_incoming_varargs.
12945         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12946         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12947         (arc_setup_incoming_varargs): Make it static.
12948         (arc_external_libcall): Likewise.
12949         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
12950         Remove the commented-out definition of
12951         ASM_OUTPUT_EXTERNAL_LIBCALL.
12952
12953 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
12954
12955         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
12956         to $$(slibdir) in the installation commands.
12957
12958 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
12959
12960         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
12961         with inner_regno, not regno.
12962         * rtlanal.c (refers_to_regno_p): Same.
12963
12964 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12965
12966         * config.gcc: Remove i370 support.
12967
12968 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12969
12970         * doc/install.texi:  Update automake and autoconf version
12971         requirements.  Note where to find gcj automake version.
12972
12973 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12974
12975         * Makefile.in (generate-manpages): Move dependencies to ...
12976         (man): here.
12977         * doc/makefile.texi: Document new targets.
12978         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
12979
12980 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12981
12982         PR/13485
12983         Makefile.in (srcextra):  Add a level of indirection to ...
12984         (gcc.srcextra): ... here.
12985         (po-generated): Delete.
12986         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
12987         options.c.
12988         (start.encap): Remove superfluous lang.srcextra dependency.
12989         objc/Make-lang.in (po-generated):  Delete.
12990
12991 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12992
12993         * config/ia64/ia64.c (REG_GP): Remove.
12994
12995 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12996
12997         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
12998
12999 2004-02-05  Devang Patel  <dpatel@apple.com>
13000
13001         * dwarf2out.c (force_type_die): Look up input type itself
13002         instead of root_type() of type.
13003
13004 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13005
13006         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13007         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13008         pre-reload splitters are transformed to post-reload
13009         define_insn_and_split patterns.
13010         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13011
13012 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13013
13014         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13015         TARGET_PROMOTE_PROTOTYPES.
13016
13017 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13018
13019         PR middle-end/13750
13020         Revert:
13021         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13022         PR pch/13361
13023         * c-typeck.c (constructor_asmspec): Delete.
13024         (struct initializer_stack): Delete field 'asmspec'.
13025         (start_init): Delete saving of asmspec.
13026         (finish_init): Don't update constructor_asmspec.
13027         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13028         * stmt.c (expand_asm): Duplicate strings from tree.
13029         (expand_asm_operands): Likewise.
13030         * tree.c (tree_size): Update computation of size of STRING_CST.
13031         (make_node): Don't make STRING_CST nodes.
13032         (build_string): Allocate string with tree node.
13033         * tree.def (STRING_CST): Update comment.
13034         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13035         (tree_string): Place contents of string in tree node.
13036         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13037         from tree.
13038
13039 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13040
13041         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13042         msgid.
13043
13044 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13045
13046         * config/rs6000/altivec.md (*movv4si_internal): At least one
13047         operand must be altivec_register_operand.
13048         (*movv8hi_internal1): Likewise.
13049         (*movv16qi_internal1): Likewise.
13050         (*movv4sf_internal1): Likewise.
13051
13052 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13053
13054         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13055         * configure: Regenerate.
13056
13057 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13058
13059         * doc/install.texi: Update description of --gxx-include-dir to
13060         give correct default value.
13061
13062 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13063
13064         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13065         8 with MAC_REG.
13066
13067 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13068
13069         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13070         gen_rtx_PARALLEL.
13071
13072 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13073
13074         * emit-rtl.c: Update the comment about the file.
13075
13076 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13077
13078         * sourcebuild.texi (Test Idioms): Update testcase naming
13079         conventions.
13080
13081 2004-02-04  Per Bothner  <per@bothner.com>
13082
13083         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13084         * c-ppoutput.c (pp_dir_change):  New function.
13085         * c-common.h (pp_dir_change):  New declaration.
13086         * cpplib.h (struct cpp_options):  Remove working_directory field.
13087         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
13088         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
13089         Don't handle -fworking_directory here, but in c_common_post_options.
13090         (read_original_directory): Don't back up when done.
13091         Don't clear no-longer used working_directory flag.
13092         * cpplib.h:  Update declarations to match.
13093         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13094         (init_c_lex):  Don't set dir_change callback here, since we want
13095         to set it even if flag_preprocess_only.
13096         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13097         (c_common_post_options):  Set dir_change callback.
13098         Call pp_dir_change if approporiate.
13099         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13100         unneeded parameter and result. Do LC_RENAME for <built-in>.
13101         (c_common_post_options):  Call cpp_read_main_file here instead.
13102         (c_common_init):  Update accordingly.
13103         (push_command_line_include):  Don't cpp_push_main_file.
13104         Do LC_RENAME rather than LC_LEASE to get back to main file.
13105         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13106         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13107         files, but call finish_options for all files.
13108         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13109         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13110         cpp_find_main_file + cpp_push_main_file.
13111         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13112         * opts.c (handle_options):  Only set main_input_filename first time.
13113
13114 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13115
13116         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13117
13118 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13119
13120         * reload.c (find_equiv_reg): When checking for register overlap,
13121         don't index hard_regno_nregs with a pseudo-reg.
13122
13123 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13124
13125         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13126
13127 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13128
13129         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13130         against FIRST_PSEUDO_REGISTER.
13131
13132 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13133
13134         * Makefile.in: Move target, host overrides after per-language
13135         fragments.
13136
13137         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13138         (GNATLIBCFLAGS): Remove -g.
13139
13140 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13141
13142         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13143         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13144         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13145         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13146         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13147         config/sparc/sparc.c, config/vax/vax.c: Revert the
13148         replacements of "FALLTHRU" with "Fall through" done in the
13149         previous patch.
13150
13151 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13152
13153         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13154         config/arm/arm.c, config/arm/arm.md,
13155         config/cris/cris-protos.h, config/fr30/fr30.c,
13156         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13157         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13158         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13159         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13160         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13161         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13162         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13163         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13164         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13165         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13166         config/s390/s390.md, config/sparc/netbsd-elf.h,
13167         config/sparc/openbsd.h, config/sparc/sparc.c,
13168         config/xtensa/lib2funcs.S: Fix comment formatting.
13169
13170 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13171
13172         * config/alpha/alpha.c, config/arc/arc.c,
13173         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13174         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13175         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13176         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13177         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13178         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13179         config/iq2000/iq2000.c, config/m32r/m32r.c,
13180         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13181         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13182         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13183         config/rs6000/rs6000.h, config/sparc/sparc.c,
13184         config/vax/vax.c: Fix comment typos.  Follow spelling
13185         conventions.
13186
13187 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13188
13189         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13190         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13191         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13192         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13193         config/arm/fpa.md, config/arm/iwmmxt.md,
13194         config/arm/netbsd-elf.h, config/arm/netbsd.h,
13195         config/m68hc11/m68hc11.md, config/mips/iris5.h,
13196         config/mn10300/mn10300.md, config/rs6000/altivec.md,
13197         config/sparc/netbsd-elf.h: Update copyright.
13198
13199 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13200
13201         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13202         for all modes whose size is greater than 8 bytes if ARCH32.
13203         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13204         by reference if ARCH32.
13205
13206 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
13207
13208         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13209
13210 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13211
13212         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13213         to before adddi3 insn patterns.
13214         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13215         "reload_insi"): Move to before addsi3 insn patterns.
13216
13217 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
13218
13219         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13220         parameter.  Use it instead of current_function_is_thunk.
13221         * function.h (struct function): Update documentation for is_thunk.
13222         * tree.h (CALL_FROM_THUNK_P): New macro.
13223         * config/alpha/alpha.c (alpha_sa_mask): Do not check
13224         no_new_pseudos when testing current_function_is_thunk.
13225         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13226
13227 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13228
13229         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13230         TARGET_SETUP_INCOMING_VARARGS.
13231
13232 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13233
13234         * emit-rtl.c (gen_rtx): Remove.
13235         * genattrtab.c: Don't mention gen_rtx in a comment.
13236         * rtl.h: Remove the prototype for gen_rtx.
13237         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13238
13239 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13240
13241         * config/arc/arc.h, config/fr30/fr30.h
13242         (SETUP_INCOMING_VARARGS): Remove the target-independent
13243         comments.
13244         * doc/tm.texi: Don't mention deprecated target macros.
13245
13246 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13247
13248         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13249         target-independent comment.
13250
13251 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13252
13253         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13254         mention deprecated target macros.
13255
13256 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13257
13258         * config.gcc: Remove obsolete ports and configurations.
13259         * config/linux-aout.h, config/netware.h,
13260         config/t-linux-gnulibc1, config/d30v/abi,
13261         config/d30v/d30v-protos.h, config/d30v/d30v.c,
13262         config/d30v/d30v.h, config/d30v/d30v.md,
13263         config/d30v/libgcc1.asm, config/d30v/t-d30v,
13264         config/dsp16xx/dsp16xx-modes.def,
13265         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13266         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13267         config/i370/README, config/i370/i370-c.c,
13268         config/i370/i370-protos.h, config/i370/i370.c,
13269         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13270         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13271         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13272         config/i386/moss.h, config/i386/netware.h,
13273         config/i386/svr3.ifile, config/i386/svr3dbx.h,
13274         config/i386/svr3gas.h, config/i386/svr3z.ifile,
13275         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13276         config/i960/i960-c.c, config/i960/i960-coff.h,
13277         config/i960/i960-modes.def, config/i960/i960-protos.h,
13278         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13279         config/i960/rtems.h, config/i960/t-960bare,
13280         config/m68k/hp310.h, config/m68k/hp320.h,
13281         config/m68k/hp320base.h, config/m68k/m68kv4.h,
13282         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13283         Remove.
13284         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13285         doc/md.texi: Remove mentions of obsolete ports.
13286
13287 2004-02-04  Jan Hubicka  <jh@suse.cz>
13288
13289         * alias.c (find_base_term, get_addr):  Do not dereference NULL
13290         pointer when all VALUE's locations has been invalidated.
13291         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13292
13293 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
13294
13295         * doc/invoke.texi (x86 options): Fix spelling/wording.
13296
13297 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
13298
13299         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13300         put the original string in a comment.
13301         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13302         * config/mips/mips.c (mips_output_ascii): Likewise.
13303         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13304
13305 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13306
13307         * system.h (GIV_SORT_CRITERION): Poison.
13308         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13309         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13310
13311 2004-02-03  Roger Sayle  <roger@eyesopen.com>
13312
13313         PR target/9348
13314         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
13315         multiplies with a multiplication of the wrong signedness, its the
13316         signedness of the multiplication that we've performed that needs to
13317         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
13318         if expand_mult_highpart_adjust places the result in target.
13319
13320 2004-02-03  Richard Henderson  <rth@redhat.com>
13321
13322         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13323
13324 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
13325
13326         * config.gcc (sh[234]l): Use little endian fragments.
13327
13328 2004-02-03  Paul Koning  <pkoning@equallogic.com>
13329
13330         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13331         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13332         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13333         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13334         floating point format.
13335         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13336         the above functions.
13337         (output_move_quad): Output float values in correct target format.
13338         (legitimate_const_double_p): New function.
13339         * config/pdp11/pdp11.h: Fix typos.
13340         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13341         (TARGET_FLOAT_FORMAT): Ditto.
13342         (pdp11_f_format, pdp11_d_format): Add external declarations.
13343         (MAX_REGS_PER_ADDRESS): Corrected.
13344         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13345         (PRINT_OPERAND): Output float literals in target format.
13346
13347 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
13348
13349         PR c++/13975
13350         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13351         TI_PRIVATE.
13352         (access_public_node): Redefine.
13353         (access_protected_node): Likewise.
13354         (access_private_node): Likewise.
13355         * tree.c (build_common_tree_nodes): Create access_public_node,
13356         access_protected_node, and access_private_node.
13357
13358 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
13359
13360         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13361         (MASK_INLINE_INT_DIV_THR): Ditto.
13362         (MASK_INLINE_SQRT_LAT): Ditto.
13363         (MASK_INLINE_SQRT_THR): Ditto.
13364         (MASK_DWARF2_ASM): Ditto.
13365         (MASK_EARLY_STOP_BITS): Ditto.
13366
13367 2004-02-02  Paul Brook  <paul@codesourcery.com>
13368
13369         Merge from csl-arm-branch.
13370
13371         2004-01-30  Paul Brook  <paul@codesourcery.com>
13372
13373         * aof.h (REGISTER_NAMES): Add vfp reg names
13374         (ADDITIONAL_REGISTER_NAMES): Ditto.
13375         * aout.h (REGISTER_NAMES): Ditto.
13376         (ADDITIONAL_REGISTER_NAMES): Ditto.
13377         * arm-protos.h: Update/Add Prototypes.
13378         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13379         Only allow 0.0 for VFP.
13380         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
13381         (values_fp): Rename from values_fpa.  Update Users.
13382         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13383         Update users.  Only check valid constants for this hardware.
13384         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
13385         Only allow consts for FPA.
13386         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
13387         Only allow consts for FPA.
13388         (use_return_insn): Check for saved VFP regs.
13389         (arm_legitimate_address_p): Handle VFP DFmode addressing.
13390         (arm_legitimize_address): Ditto.
13391         (arm_general_register_operand): New function.
13392         (vfp_mem_operand): New function.
13393         (vfp_compare_operand): New function.
13394         (vfp_secondary_reload_class): New function.
13395         (arm_float_compare_operand): New function.
13396         (vfp_print_multi): New function.
13397         (vfp_output_fstmx): New function.
13398         (vfp_emit_fstm): New function.
13399         (arm_output_epilogue): Output VPF reg restore code.
13400         (arm_expand_prologue): Output VFP reg save code.
13401         (arm_print_operand): Add 'P'.
13402         (arm_hard_regno_mode_ok): Return modes for VFP regs.
13403         (arm_regno_class): Return classes for VFP regs.
13404         (arm_compute_initial_elimination_offset): Include space for VFP regs.
13405         (arm_get_frame_size): Ditto.
13406         * arm.h (FIXED_REGISTERS): Add VFP regs.
13407         (CALL_USED_REGISTERS): Ditto.
13408         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13409         (FIRST_VFP_REGNUM): Define.
13410         (LAST_VFP_REGNUM): Define.
13411         (IS_VFP_REGNUM): Define.
13412         (FIRST_PSEUDO_REGISTER): Include VFP regs.
13413         (HARD_REGNO_NREGS): Handle VFP regs.
13414         (REG_ALLOC_ORDER): Add VFP regs.
13415         (enum reg_class): Add VFP_REGS.
13416         (REG_CLASS_NAMES): Ditto.
13417         (REG_CLASS_CONTENTS): Ditto.
13418         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13419         (REG_CLASS_FROM_LETTER): Add 'w'.
13420         (EXTRA_CONSTRAINT_ARM): Add 'U'.
13421         (EXTRA_MEMORY_CONSTRAINT): Define.
13422         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13423         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13424         (REGISTER_MOVE_COST): Ditto.
13425         (PREDICATE_CODES): Add arm_general_register_operand,
13426         arm_float_compare_operand and vfp_compare_operand.
13427         * arm.md (various): Rename as above.
13428         (divsf3): Enable when TARGET_VFP.
13429         (divdf3): Ditto.
13430         (movdfcc): Ditto.
13431         (sqrtsf2): Ditto.
13432         (sqrtdf2): Ditto.
13433         (arm_movdi): Disable when TARGET_VFP.
13434         (arm_movsi_insn): Ditto.
13435         (movsi): Only split with general regs.
13436         (cmpsf): Use arm_float_compare_operand.
13437         (push_fp_multi): Restrict to TARGET_FPA.
13438         (vfp.md): Include.
13439         * vfp.md: New file.
13440         * fpa.md (various): Rename as above.
13441         * doc/md.texi: Document ARM w and U constraints.
13442
13443         2004-01-15  Paul Brook  <paul@codesourcery.com>
13444
13445         * config.gcc: Add with_fpu.  Allow with-float=softfp.
13446         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13447         Break out of loop when we find a float-abi.  Fix typo.
13448         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13449         Set -mfloat-abi=.
13450         * doc/install.texi: Document --with-fpu.
13451
13452         2003-01-14  Paul Brook  <paul@codesourcery.com>
13453
13454         * config.gcc (with_arch): Add armv6.
13455         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13456         * config/arm/arm.c (arm_overrride_options): Ditto.
13457
13458         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
13459
13460         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
13461         (FL_ARCH6): Renamed from FL_ARCH6J.
13462         (arm_arch3m): Renamed from arm_fast_multiply.
13463         (arm_arch6): Renamed from arm_arch6j.
13464         * arm.h: Update all uses of above.
13465         * arm-cores.def: Likewise.
13466         * arm.md: Likewise.
13467
13468         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
13469         not arm6j.  Add entry for arch armv6.
13470
13471         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
13472
13473         * arm.c (arm_emit_extendsi): Delete.
13474         * arm-protos.h (arm_emit_extendsi): Delete.
13475         * arm.md (zero_extendhisi2): Also handle zero-extension of
13476         non-subregs.
13477         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
13478         (thumb_zero_extendhisi2): Only match if not v6.
13479         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
13480         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
13481         (thumb_extendqisi2): Likewise.
13482         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
13483         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
13484         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
13485         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
13486         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
13487         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
13488         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
13489         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
13490         (arm_extendqisi2addsi): Likewise.
13491
13492         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
13493
13494         Revert this change:
13495         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13496         + REG addressing modes.
13497
13498         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13499         + REG addressing modes.
13500
13501         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
13502
13503         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
13504         CONSTANT_P_RTX.
13505
13506         2003-30-12  Paul Brook  <paul@codesourcery.com>
13507
13508         * longlong.h: protect arm inlines with !defined (__thumb__)
13509
13510         2003-30-12  Paul Brook  <paul@codesourcery.com>
13511
13512         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
13513
13514         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
13515
13516         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
13517         change.
13518
13519         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13520
13521         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
13522         to the virtual incoming args pointer for downward stacks.
13523
13524         2003-12-29  Paul Brook  <paul@codesourcery.com>
13525
13526         * config/arm/arm-cores.def: Add cost function.
13527         * config/arm/arm.c (arm_*_rtx_costs): New functions.
13528         (arm_rtx_costs): Remove
13529         (struct processors): Add rtx_costs field.
13530         (all_cores, all_architectures): Ditto.
13531         (arm_override_options): Set targetm.rtx_costs.
13532         (thumb_rtx_costs): New function.
13533         (arm_rtx_costs_1): Remove cases handled elsewhere.
13534         * config/arm/arm.h (processor_type): Add COSTS parameter.
13535
13536         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13537
13538         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
13539         (arm926ejs.md): Include it.
13540         * config/arm/arm926ejs.md: New pipeline description.
13541
13542         2003-12-24  Paul Brook  <paul@codesourcery.com>
13543
13544         * config/arm/arm.c (arm_arch6j): New variable.
13545         (arm_override_options): Set it.
13546         (arm_emit_extendsi): New function.
13547         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
13548         * config/arm/arm.h (arm_arch6j): Declare.
13549         * config/arm/arm.md: Add sign/zero extend insns.
13550
13551         2003-12-23  Paul Brook  <paul@codesourcery.com>
13552
13553         * config/arm/arm.c (all_architectures): Add armv6.
13554         * doc/invoke.texi: Document it.
13555
13556         2003-12-19  Paul Brook  <paul@codesourcery.com>
13557
13558         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
13559         insn patterns to match.
13560         * config/arm/arm-generic.md: Ditto.
13561         * config/arm/cirrus.md: Ditto.
13562         * config/arm/fpa.md: Ditto.
13563         * config/amm/iwmmxt.md: Ditto.
13564         * config/arm/arm1026ejs.md: Ditto.
13565         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
13566         for 11_loadb.
13567
13568         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
13569
13570         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
13571         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
13572         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
13573         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
13574         arm_no_early_mul_dep): Correctly deal with conditional execution,
13575         parallels and single shift operations.
13576         (arm_no_early_alu_shift_value_dep): Define.
13577         * arm.md (attr type): Replace 'normal' with 'alu',
13578         'alu_shift' and 'alu_shift_reg'.
13579         (attr core_cycles): Adjust.
13580         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
13581         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
13582         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
13583         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
13584         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
13585         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
13586         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
13587         attribute appropriately.
13588         * config/arm/arm1026ejs.md (alu_op): Adjust.
13589         (alu_shift_op, alu_shift_reg_op): New.
13590         * config/arm/arm1136.md: Add better bypasses for early
13591         registers. Remove load[234] and store[234] bypasses.
13592         (11_alu_op): Adjust.
13593         (11_alu_shift_op, 11_alu_shift_reg_op): New.
13594
13595         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
13596
13597         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
13598         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
13599         * config/arm/arm.c (arm_no_early_store_addr_dep,
13600         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
13601         * config/arm/arm1026ejs.md: Add load-store bypass.
13602         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
13603         Add bypasses between instructions.
13604
13605         2003-12-10  Paul Brook  <paul@codesourcery.com>
13606
13607         * config/arm/arm.c (arm_fpu_model): New variable.
13608         (arm_fload_abi): New variable.
13609         (target_fpe_name): Rename from target_fp_name.
13610         (target_fpu_name): New variable.
13611         (arm_is_cirrus): Remove.
13612         (fpu_desc): New struct.
13613         (all_fpus): Define.
13614         (pf_model_for_fpu): Define.
13615         (all_loat_abis): Define.
13616         (arm_override_options): Set fp arch flags based on -mfpu=
13617         and -float-abi=.
13618         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13619         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13620         (*): Use new TARGET_* flags.
13621         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
13622         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
13623         (TARGET_SOFT_FLOAT): Ditto.
13624         (TARGET_SOFT_FLOAT_ABI): New.
13625         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
13626         TARGET_HARD_FLOAT.
13627         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
13628         (TARGET_OPTIONS): Add -mfpu=.
13629         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13630         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13631         (arm_pf_model): Define.
13632         (arm_float_abi_type): Define.
13633         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
13634         * config/arm/arm.md: Use new TARGET_* flags.
13635         * config/arm/cirrus.md: Ditto.
13636         * config/arm/fpa.md: Ditto.
13637         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
13638         * config/arm/semi.h (ASM_SPEC): Ditto.
13639         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
13640         (FPUTYPE_DEFAULT): Set to VFP.
13641         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
13642
13643         2003-11-22  Phil Edwards  <phil@codesourcery.com>
13644
13645         PR target/12476
13646         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
13647         'bx' instead of 'b' to avoid branch range restrictions.  Output
13648         the thunk immediately before the thunked-to function.
13649         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
13650         .thumb_func if a thunk is being generated.  Emit .code 16 along
13651         with .thumb_func if a thunk is not being generated.
13652
13653         2003-11-15  Nicolas Pitre <nico@cam.org>
13654
13655         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
13656         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
13657         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
13658         (lshrdi3_iwmmxt): Renamed from lshrdi3.
13659         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
13660
13661         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
13662             Ian Lance Taylor  <ian@wasabisystems.com>
13663
13664         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
13665         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
13666
13667         2003-11-05  Phil Edwards  <phil@codesourcery.com>
13668
13669         * config/arm/arm.md (insn):  Add new V6 instruction names.
13670         (generic_sched):  New attr.
13671         * config/arm/arm-generic.md:  Use generic_sched here.
13672         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
13673         stages of pipeline.  Adjust latency counts accordingly.
13674         * config/arm/arm1136jfs.md:  New file.
13675
13676         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
13677
13678         * config/arm/arm.h (processor_type): New enumeration type.
13679         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
13680         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
13681         (CPP_CPU_ARCH_SPEC): Likewise.
13682         * config/arm/arm.c (arm_tune): New variable.
13683         (all_cores): Use cores.def.
13684         (all_architectures): Add representative processor.
13685         (arm_override_options): Restructure way in which tuning
13686         information is deduced.
13687         * arm.md: Update "insn" and "type" attributes throughout.
13688         (insn): New attribute.
13689         (type): Compute "mult" from "insn" attribute.  Add load2,
13690         load3, load4 alternatives.
13691         (arm automaton): Move to arm-generic.md.
13692         * config/arm/arm-cores.def: New file.
13693         * config/arm/arm-generic.md: Likewise.
13694         * config/arm/arm1026ejs.md: Likewise.
13695
13696 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
13697
13698         * doc/invoke.texi (SPARC options): Remove -mflat and
13699         all -mxxx (xxx:chip) options.
13700         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
13701         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
13702         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
13703         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
13704         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
13705         * config/sparc/sparc.c: Likewise.
13706         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
13707         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
13708         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
13709         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
13710         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
13711         (sparc_flat_must_save_register_p): Likewise.
13712         (sparc_flat_compute_frame_size): Likewise.
13713         (sparc_flat_save_restore): Likewise.
13714         (sparc_flat_function_prologue): Likewise.
13715         (sparc_flat_function_epilogue): Likewise.
13716         (sparc_flat_epilogue_delay_slots): Likewise.
13717         (sparc_flat_eligible_for_epilogue_delay): Likewise.
13718         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
13719         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
13720         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
13721         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
13722         (CONDITIONAL_REGISTER_USAGE): Likewise.
13723         (FRAME_POINTER_REQUIRED): Likewise.
13724         (INITIAL_ELIMINATION_OFFSET): Likewise.
13725         (BASE_RETURN_VALUE_REG): Likewise.
13726         (BASE_OUTGOING_VALUE_REG): Likewise.
13727         (BASE_PASSING_ARG_REG): Likewise.
13728         (BASE_INCOMING_ARG_REG): Likewise.
13729         (INCOMING_REGNO): Likewise.
13730         (OUTGOING_REGNO): Likewise.
13731         (LOCAL_REGNO): Likewise.
13732         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
13733         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
13734         (EPILOGUE_USES): Likewise.
13735         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
13736         ("flat" attribute): Delete.
13737         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
13738         handling.
13739         (call followed by jump define_peephole's): Delete.
13740         (exception_receiver): Likewise.
13741         (builtin_setjmp_receiver): Likewise.
13742         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
13743
13744 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
13745
13746         PR c/11658
13747         PR c/13994
13748         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
13749         on langhooks.h.
13750         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
13751         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
13752         Include langhooks.h.  Replace c_common_truthvalue_conversion
13753         with the truthvalue_conversion language hook throughout.
13754         (expr_no_commas): Call default_conversion before save_expr
13755         for the first term of the production 'x ? : y'.
13756         * c-common.c (c_common_truthvalue_conversion): Remove
13757         obsolete block.  Invoke recursively the hook instead
13758         of this function.
13759         * c-convert.c (convert): handle ERROR_MARK_NODE.
13760         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
13761         returned by the truthvalue_conversion language hook.
13762         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13763         c_objc_common_truthvalue_conversion.
13764         * c-objc-common.c (c_objc_common_truthvalue_conversion):
13765         New function.
13766         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
13767         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13768         c_objc_common_truthvalue_conversion.
13769
13770 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13771
13772         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
13773         of gen_rtx.
13774         (LIBCALL_VALUE): Likewise.
13775         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
13776         gen_rtx_CC0 instead of gen_rtx.
13777         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
13778         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
13779         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
13780         gen_rtx.
13781         (m68hc11_emit_logical): Likewise.
13782
13783 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13784
13785         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
13786         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
13787         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
13788         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
13789         config/mips/mips.md, config/mmix/mmix.c,
13790         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
13791         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
13792         config/rs6000/altivec.md, config/s390/s390.c,
13793         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
13794         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
13795         Use const0_rtx instead of GEN_INT (0).  Do the same for other
13796         constants that are readily available.
13797
13798 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13799
13800         * doloop.c, optabs.c, regmove.c, sched-deps.c,
13801         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
13802         instead of GEN_INT (0).  Do the same for other constants that
13803         are readily available.
13804
13805 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13806
13807         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
13808         gen_rtx.
13809         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
13810         instead of gen_rtx.
13811         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
13812         gen_rtx.
13813         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
13814         gen_rtx_ASHIFT instead of gen_rtx.
13815         (udivmodqi4): Likewise.
13816
13817 2004-02-02  Richard Henderson  <rth@redhat.com>
13818
13819         PR target/13789
13820         * expr.c (store_expr): Use force_operand before emit_move_insn.
13821
13822 2004-02-02  Jeff Law  <law@redhat.com>
13823             Roger Sayle  <roger@eyesopen.com>
13824
13825         * tree.c (commutative_tree_code, associative_tree_code): New
13826         functions.
13827         (iterative_hash_expr): Use commutative_tree_code.
13828         * tree.h (commutative_tree_code, associative_tree_code): Declare.
13829         * fold-const.c (operand_equal_p): Use commutative_tree_code
13830         rather than inlining the commutativity check.
13831         (fold): Likewise.
13832
13833 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13834
13835         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
13836         * config/frv/frv-protos.h: Remove the prototype for
13837         frv_function_arg_keep_as_reference.
13838         * config/frv/frv.c (frv_function_arg_keep_as_reference):
13839         Remove.
13840         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
13841         * config/stormy16/stormy16.h: Remove the commented-out
13842         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
13843
13844 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
13845
13846         PR target/13914
13847         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
13848         for retaddr_column.
13849
13850 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13851
13852         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
13853         gen_rtx.
13854
13855 2004-02-02  Eric Christopher  <echristo@redhat.com>
13856             Zack Weinberg  <zack@codesourcery.com>
13857
13858         * c-opts.c (c_common_handle_option): Add -finput-charset.
13859         * c.opt: Ditto.
13860         * cppcharset.c (one_iso88591_to_utf8): Remove.
13861         (convert_iso88591_utf8): Ditto.
13862         (conversion_tab): Remove 8859-1 converter.
13863         (_cpp_input_to_utf8): Remove.
13864         (_cpp_init_iconv_buffer): Ditto.
13865         (_cpp_close_iconv_buffer): Ditto.
13866         (_cpp_convert_input): New function.
13867         (_cpp_default_encoding): Ditto.
13868         * cpphash.h: Add/remove prototypes for above.
13869         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
13870         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
13871         for narrow execution and input character sets.
13872         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
13873         * doc/cppopts.texi: Document -finput-charset.
13874
13875 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
13876
13877         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
13878         against FIRST_PSEUDO_REGISTER.
13879
13880 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13881
13882         * doc/invoke.texi (SPARC options): Further improve.
13883
13884 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13885
13886         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
13887         config/h8300/h8300.c, config/ip2k/ip2k.md,
13888         config/iq2000/iq2000.c, config/mips/mips.c,
13889         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
13890         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
13891         config/v850/v850.md: Fix indentation.
13892
13893 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13894
13895         * config/sparc/sparc.c (function_arg_slotno): Align TImode
13896         arguments on a 16-byte boundary in the parameter array if ARCH64.
13897         Split handling of TFmode.
13898
13899 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
13900
13901         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
13902         Don't test CONSTANT_P (x).
13903         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
13904         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
13905         Fix misindentation.
13906
13907 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13908
13909         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
13910
13911 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13912
13913         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
13914         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
13915         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
13916         config/iq2000/iq2000.c, config/m32r/m32r.c,
13917         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
13918         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
13919         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
13920         config/stormy16/stormy16.c, config/v850/v850.md,
13921         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
13922
13923 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13924
13925         * config/mcore/mcore.c (block_move_sequence): Replace
13926         gen_rtx_CONST_INT with GEN_INT.
13927
13928 2004-02-02  Jan Hubicka  <jh@suse.cz>
13929
13930         * alias.c (record_set): Use hard_regno_nregs.
13931         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
13932         * builtins.c (apply_args_size): Likewise.
13933         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
13934         mark_set_regs, add_stored_regs, mark_referenced_regs,
13935         insert_restore, insert_save, insert_one_insn): Likewise.
13936         * cfgcleanup.c: Include regs.h
13937         (mark_effect, mentions_nonequal_regs): Likewise.
13938         * cfgrtl.c (mark_killed_regs): Likewise
13939         * combine.c (update_table_tick, record_value_for_reg,
13940         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
13941         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
13942         reg_bitfield_target_p, distribute_notes): Likewise.
13943         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
13944         exp_equiv_p, cse_insn): Likewise.
13945         * cselib.c (cselib_lookup): Likewise.
13946         (cselib_invalidate_regno, cselib_record_set): Likewise.
13947         * df.c (df_ref_record): Likewise.
13948         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
13949         Likewise.
13950         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
13951         count_or_remove_death_notes_bb): Likewise.
13952         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
13953         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
13954         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
13955         * integrate.c (mark_stores): Likewise.
13956         * jump.c (delete_prior_computation): Likewise.
13957         * lcm.c (reg_dies, reg_becomes_live): Likewise.
13958         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
13959         * loop.c (LOOP_REGNO_NREGS): Likewise.
13960         * postreload.c (reload_combine, reload_combine_note_store,
13961         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
13962         * ra-colorize.c (combine, color_usable_p, get_free_reg,
13963         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
13964         try_recolor_web, insert_coalesced_conflicts, check_colors,
13965         break_precolored_alias): Likewise.
13966         * ra-debug.c: Include regs.h
13967         (ra_print_rtx_object): Likewise.
13968         * ra-rewrite (choose_spill_colors): Likewise.
13969         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
13970         * ra.c (init_ra): Likewise.
13971         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
13972         peep2_find_free_register): Likewise.
13973         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
13974         * regclass.c (hard_regno_nregs): New array.
13975         (init_reg_modes_once): Initialize it.
13976         (choose_hard_reg_mode): Use it.
13977         (record_reg_classes): Likewise.
13978         * regmove.c (mark_flags_life_zones): Likewise.
13979         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
13980         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
13981         copy_value, maybe_mode_change, find_oldest_value_reg,
13982         copyprop_hardreg_forward_1):
13983         * regs.h (hard_regno_nregs): Declare.
13984         * realod.c (reload_inner_reg_of_subreg): Use it.
13985         (push_reload, combine_reloads, find_dummy_reload,
13986         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
13987         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
13988         reload_adjust_reg_for_mode): Likewise.
13989         * reload1.c (compute_use_by_pseudos, count_pseudo,
13990         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
13991         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
13992         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
13993         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
13994         delete_output_reload): Likewise.
13995         * resource.c (update_live_status, mark_referenced_resources,
13996         mark_set_resources, mark_target_live_regs): Likewise.
13997         * rtlanal.c:  Include regs.h
13998         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
13999         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14000         subreg_regno_offset, subreg_offset_representable_p,
14001         hoist_test_store): Likewise.
14002         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14003         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14004         * stmt.c: Include regs.h
14005         (decl_conflicts_with_clobbers_p): Likewise.
14006         * varasm.c (make_decl_rtl): Likewise.
14007         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14008
14009 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14010
14011         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14012         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14013         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14014         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14015         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14016         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14017         config/iq2000/iq2000.h, config/m32r/m32r.c,
14018         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14019         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14020         config/mcore/mcore.c, config/mcore/mcore.h,
14021         config/mcore/mcore.md, config/mips/mips.c,
14022         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14023         config/rs6000/rs6000.c, config/s390/s390.c,
14024         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14025         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14026         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14027
14028 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14029
14030         * config/h8300/h8300.md (two peephole2's): New.
14031
14032 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14033
14034         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14035         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14036         (ASM_CPU_SPEC): Likewise
14037         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14038         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14039
14040 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14041
14042         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14043         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14044         (expand_builtin): Always call expand_builtin_pow.
14045
14046 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14047
14048         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14049         BUILT_IN_SIGNBITL): New GCC builtins.
14050         * builtins.c (expand_builtin_signbit): New function to RTL expand
14051         calls to signbit, signbitf and signbitl as inline intrinsics.
14052         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14053         (fold_builtin_signbit): New function to perform constant folding
14054         of signbit, signbitf and signbitl.
14055         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14056
14057         * doc/extend.texi: Document new signbit{,f,l} builtins.
14058
14059 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14060
14061         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14062
14063 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14064
14065         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14066         "mips_const_double_ok" and "simple_memory_operand", which were
14067         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14068         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14069         for removal of simple_memory_operand.
14070
14071 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14072
14073         * config/c4x/c4x.md: Use GEN_INT instead of
14074         gen_rtx (CONST_INT, ...).
14075
14076 2004-01-31  Richard Henderson  <rth@redhat.com>
14077
14078         * varasm.c (output_constant_pool): Don't zap the pool.
14079
14080 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14081
14082         * genrecog.c (decision_type): Add DT_const_int.
14083         (write_cond) [DT_const_int]: Print a comparison against small
14084         constant.
14085         (write_node): Simplify comparisons against small constants
14086         before printing tests.
14087
14088 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14089
14090         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14091         instead of gen_rtx_CONST_INT.
14092
14093 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14094
14095         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14096         instead of gen_rtx_CONST_INT.
14097
14098 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14099
14100         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14101         hook_bool_CUMULATIVE_ARGS_false.
14102         * targhooks.c (default_strict_argument_naming): Rename to
14103         hook_bool_CUMULATIVE_ARGS_false.
14104         * targhooks.h: Update the prototype for
14105         default_strict_argument_naming.
14106
14107 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14108
14109         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14110         * config/sh/sh.h: Likewise.
14111         * config/sh/sh.md: Likewise.
14112
14113 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14114
14115         * doc/invoke.texi (SPARC options): Restructure and update.
14116
14117 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14118
14119         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14120         STRICT_ARGUMENT_NAMING): Poison.
14121         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14122         hook_bool_tree_false.
14123         * targhooks.c (default_promote_function_args): Remove.
14124         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14125         Don't check incoming.
14126         (default_strict_argument_naming): Don't use
14127         STRICT_ARGUMENT_NAMING.
14128         * targhooks.h: Remove the prototype for
14129         default_promote_function_args.
14130
14131 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14132
14133         * config/i386/i386-protos.h: Remove the prototype for
14134         ix86_setup_incoming_varargs.
14135         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14136         (ix86_setup_incoming_varargs): Make it static.
14137         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14138
14139 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14140
14141         * alloc-pool.c: Fix comment typos.
14142         * builtin-types.def: Likewise.
14143         * builtins.def: Likewise.
14144         * c-pretty-print.c: Likewise.
14145         * df.h: Likewise.
14146         * reload1.c: Likewise.
14147
14148 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14149
14150         * doc/invoke.texi: Follow spelling conventions.
14151         * doc/tm.texi: Likewise.
14152
14153 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14154
14155         * doc/install.texi: Fix typos.
14156         * doc/invoke.texi: Likewise.
14157
14158 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14159
14160         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14161         registers as pointers.
14162         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14163
14164 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
14165
14166         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14167         and restore it to gen_lowpart_general on exit.
14168         (gen_lowpart_for_combine): Adjust all callers to go through
14169         gen_lowpart.
14170         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14171         and restore it to gen_lowpart_general on exit.
14172         (gen_lowpart_if_possible): Adjust all callers to go through
14173         gen_lowpart.
14174         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14175         (gen_lowpart): Declare as pointer to function, initialized to
14176         gen_lowpart_general.
14177         * rtl.h (gen_lowpart): Declare as pointer to function.
14178
14179 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14180
14181         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14182         * calls.c: Likewise.
14183         * emit-rtl.c: Likewise.
14184         * function.c: Likewise.
14185         * reload1.c: Likewise.
14186         * config/i386/cygming.h: Likewise.
14187         * config/i386/i386.c: Likewise.
14188         * config/i386/winnt.c: Likewise.
14189
14190 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
14191
14192         PR bootstrap/9249
14193         * doc/install.texi: document --enable-__cxa_atexit option.
14194         * configure.ac: Disable __cxa_atexit if not supported.
14195         * configure: Regenerate.
14196
14197 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
14198
14199         * ggc-zone.c (ggc_free): New function.
14200
14201 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14202
14203         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14204         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14205         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14206         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14207         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14208         config/alpha/alpha.c, config/alpha/alpha.h,
14209         config/alpha/alpha.md, config/alpha/unicosmk.h,
14210         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14211         config/c4x/c4x-protos.h, config/c4x/c4x.md,
14212         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14213         config/frv/frvend.c, config/i386/cygming.h,
14214         config/i386/djgpp.h, config/i386/emmintrin.h,
14215         config/i386/gthr-win32.c, config/i386/i386-interix.h,
14216         config/i386/i386-protos.h, config/i386/openbsd.h,
14217         config/i386/winnt.c, config/i386/xm-mingw32.h,
14218         config/i386/xmmintrin.h, config/ia64/ia64.md,
14219         config/iq2000/iq2000.md, config/m32r/m32r.md,
14220         config/m68k/m68k.md, config/mcore/mcore-elf.h,
14221         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14222         config/mips/iris5gas.h, config/mips/iris6.h,
14223         config/mips/iris6gas.h, config/mips/linux.h,
14224         config/mips/mips.md, config/mips/netbsd.h,
14225         config/mips/openbsd.h, config/mips/windiss.h,
14226         config/pa/fptr.c, config/rs6000/aix.h,
14227         config/rs6000/altivec.h, config/rs6000/darwin.h,
14228         config/rs6000/xcoff.h, config/s390/s390-protos.h,
14229         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14230         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14231         config/sparc/sol2.h: Update copyright.
14232
14233 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
14234
14235         * Makefile.in (abs_docdir, abs_srcdir): Define.
14236         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14237
14238 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14239
14240         * genconfig.c (main): Have CC0_P check its operand even on a
14241         target without cc0.
14242
14243 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14244
14245         * config/alpha/alpha.c: Remove mentions of deprecates macros
14246         in comments, remove some target-independent comments about target
14247         macros, and/or add minimal function comments for target hook
14248         implementations.
14249         * config/avr/avr.c: Likewise.
14250         * config/ia64/ia64.h: Likewise.
14251         * config/ip2k/ip2k.c: Likewise.
14252         * config/iq2000/iq2000.c: Likewise.
14253         * config/m32r/m32r.h: Likewise.
14254         * config/m68hc11/m68hc11.c: Likewise.
14255         * config/mcore/mcore.c: Likewise.
14256         * config/mmix/mmix.c: Likewise.
14257         * config/mn10300/mn10300.c: Likewise.
14258         * config/pa/pa.c: Likewise.
14259         * config/pdp11/pdp11.c: Likewise.
14260         * config/rs6000/rs6000.h: Likewise.
14261         * config/sh/sh.c: Likewise.
14262         * config/sh/sh.h: Likewise.
14263         * config/sparc/sparc.c: Likewise.
14264         * config/sparc/sparc.h: Likewise.
14265         * config/stormy16/stormy16.c: Likewise.
14266         * config/xtensa/xtensa.c: Likewise.
14267
14268 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14269
14270         PR optimization/12147
14271         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14272         RELOAD_FOR_OPADDR_ADDR.
14273         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14274         might be reused as RELOAD_FOR_OPADDR_ADDR register.
14275
14276 2004-01-30  Jan Hubicka  <jh@suse.cz>
14277
14278         * reload.c (get_secondary_mem): Fix updating of
14279         secondary_memlocs_elim_used.
14280
14281 2004-01-30  Richard Henderson  <rth@redhat.com>
14282
14283         * varasm.c (struct rtx_const, struct pool_constant): Remove.
14284         (MAX_RTX_HASH_TABLE): Remove.
14285         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14286         (first_pool, last_pool, pool_offset): Remove.
14287         (struct rtx_constant_pool): Split out from ...
14288         (struct varasm_status): ... here.  Reference one via pointer.
14289         (struct constant_descriptor_rtx): Merge struct pool_constant.
14290         (SYMHASH): Remove.
14291         (decode_rtx_const): Remove.
14292         (const_hash_rtx, compare_constant_rtx): Remove.
14293         (record_constant_rtx): Remove.
14294         (const_desc_rtx_hash, const_desc_rtx_eq): New.
14295         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14296         (const_rtx_hash_1, const_rtx_hash): New.
14297         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14298         (simplify_subtraction): Use simplify_rtx.
14299         (force_const_mem): Rewrite to use new data structures.
14300         (find_pool_constant): Likewise.
14301         (get_pool_constant, get_pool_constant_mark,
14302         get_pool_constant_for_function, get_pool_mode,
14303         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14304         (output_constant_pool_2): Split out from output_constant_pool.
14305         (output_constant_pool_1): Likewise.  Use new pool datastructures.
14306         (output_constant_pool): Zap entire pool datastructure.
14307         (mark_constant): Use new pool datastructures.
14308         (mark_constants): Use for_each_rtx.
14309         (mark_constant_pool): Use new pool datastructures.
14310
14311 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
14312
14313         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
14314         Copy operands[1] to pseudo for simplify_gen_subreg.
14315
14316 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14317
14318         * gcse.c (bypass_block): Fix a typo in the previous check-in
14319         to the file.
14320
14321 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
14322
14323         * toplev.c: Include alloc-pool.h.
14324         * Makefile.in (toplev.c): Update dependencies.
14325
14326 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14327
14328         * combine.c (simplify_shift_const, case XOR): Be careful when
14329         commuting XOR with ASHIFTRT.
14330
14331 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14332             Eric Botcazou  <ebotcazou@libertysurf.fr>
14333
14334         * config/sparc/sparc-protos.h: Remove the prototype for
14335         sparc_builtin_saveregs.
14336         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14337         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14338         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14339         (TARGET_STRUCT_VALUE_RTX): Likewise.
14340         (TARGET_RETURN_IN_MEMORY): Likewise.
14341         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14342         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14343         (sparc_builtin_saveregs): Make it static.
14344         (sparc_promote_prototypes): New.
14345         (sparc_struct_value_rtx): Likewise.
14346         (sparc_return_in_memory): Likewise.
14347         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14348         (PROMOTE_FUNCTION_RETURN): Likewise.
14349         (RETURN_IN_MEMORY): Likewise.
14350         (STRUCT_VALUE): Likewise.
14351         (STRUCT_VALUE_INCOMING): Likewise.
14352         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14353         (STRICT_ARGUMENT_NAMING): Likewise.
14354         (PROMOTE_PROTOTYPES): Likewise.
14355
14356         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14357
14358 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14359
14360         PR c/12818
14361         * varasm.c (const_hash_1) <STRING_CST>: Use the
14362         address to compute the hash value if flag_writable_strings.
14363         (compare_constant) <STRING_CST>: Compare the addresses
14364         if flag_writable_strings.
14365         (build_constant_desc): Do not copy the expression for a
14366         STRING_CST if flag_writable_strings.
14367
14368 2004-01-30  Jan Hubicka  <jh@suse.cz>
14369
14370         * alloc-pool.c: Include hashtab.h
14371         (alloc_pool_descriptor): New structure
14372         (alloc_pool_hash): New global variable.
14373         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14374         (create_alloc_pool): Update statistics.
14375         (free_alloc_pool): Likewise.
14376         (pool_alloc): Likewise.
14377         (output_info): New structure
14378         (print_statistics, dump_alloc_pool_statistics): New function.
14379         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14380         (dump_alloc_pool_statistics): Declare.
14381         * toplev.c (finalize):  Dump statistics.
14382
14383         * reload.c (secondary_memlocs_elim_used): New static variable.
14384         (get_secondary_mem): Update it.
14385         (find_reloads): Use it.
14386
14387 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
14388
14389         * toplev.c: Fix broken checkin of 2003-12-30, again.
14390
14391 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14392
14393         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14394         s390*-*-* targets by specifying a 'nop' insn.
14395         * configure: Regenerate.
14396
14397 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14398
14399         PR target/11475
14400         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14401
14402 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14403
14404         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14405         of addr when creating MEM copy.
14406
14407 2004-01-29  Devang Patel  <dpatel@apple.com>
14408
14409         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
14410
14411 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14412
14413         PR inline-asm/6162
14414         * reload.c (find_reloads): Only support one pair of commutative
14415         operands.
14416
14417 2004-01-29  Roger Sayle  <roger@eyesopen.com>
14418
14419         PR java/13824
14420         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14421         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14422         recursion.
14423
14424 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14425
14426         * config/frv/frv.c: Don't mention deprecated macros in
14427         comments.  Remove some target-independent comments about
14428         target macros.
14429         * config/frv/frv.h: Likewise.
14430
14431 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14432
14433         * cfghooks.c (split_block): Set probability and count of the
14434         new edge.
14435
14436 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
14437
14438         * dwarf2out.c (struct die_struct): Added field decl_id.
14439         (decl_die_table): Changed to hash table.
14440         (decl_die_table_allocated): Deleted.
14441         (decl_die_table_in_use): Deleted.
14442         (DECL_DIE_TABLE_INCREMENT): Deleted.
14443         (decl_die_table_hash): New function.
14444         (decl_die_table_eq): New function.
14445         (lookup_decl_die): Lookup in a hash table.
14446         (equate_decl_number_to_die): Insert into a hash table.
14447         (dwarf2out_init): Init hash table decl_die_table.
14448
14449 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14450
14451         PR optimization/13424
14452         * expr.c (store_constructor): Revert 2003-12-03 change.
14453
14454         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14455         expected before returning early.  Avoid sharing RTL if they
14456         need to be changed.
14457
14458         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
14459         handling so that memory attributes are preserved.  Don't call
14460         ix86_set_move_mem_attrs.
14461         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
14462         (ix86_expand_clrstr): Rename src argument to
14463         dst.  Rework rep_stos and strset handling so that memory attributes
14464         are preserved.
14465         (ix86_expand_strlen): Pass src argument to
14466         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
14467         memory attributes are preserved.
14468         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
14469         change_address instead of gen_rtx_MEM.
14470         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
14471         expanders.
14472         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
14473         strmovqi, strmovqi_rex64): Remove.
14474         (rep_mov*, strmov*): Prefix insn names with *.
14475         (strset, strset_singleop, rep_stos): New expanders.
14476         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
14477         strsetqi, strsetqi_rex64): Remove.
14478         (rep_stos*, strset*): Prefix insn names with *.
14479         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
14480         to SImode.
14481         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
14482         are preserved.
14483         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
14484         Prefix insn names with *.
14485         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
14486         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
14487         (strlenqi_1): New expander.
14488         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
14489
14490 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14491
14492         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
14493         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
14494         verify_flow_info): Declaration removed.
14495         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
14496         (debug_bb, debug_bb_n): Add argument to dump_bb call.
14497         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
14498         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
14499         instead of delete_block.
14500         * cfghooks.c: Include timevar.h and toplev.h.
14501         (cfg_hooks): Define here.
14502         (verify_flow_info, dump_bb): Moved from cfg.c.
14503         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14504         split_block, split_block_after_labels, move_block_after,
14505         delete_basic_block, split_edge, create_basic_block,
14506         create_empty_bb, can_merge_blocks_p, merge_blocks,
14507         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14508         New functions.
14509         * cfghooks.h (struct cfg_hooks): Added fields name,
14510         make_forwarder_block, tidy_fallthru_edge and
14511         move_block_after. Changed type of verify_flow_info, dump_bb,
14512         split_block fields. Renamed cfgh_split_edge and delete_block
14513         fields.
14514         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14515         split_block, delete_block, split_edge, create_basic_block,
14516         can_merge_blocks_p, merge_blocks): Macros removed.
14517         (cfg_hooks): Do not export.
14518         (verify_flow_info, dump_bb, redirect_edge_and_branch,
14519         redirect_edge_and_branch_force, split_block, split_block_after_labels,
14520         move_block_after, delete_basic_block, split_edge, create_basic_block,
14521         create_empty_bb, can_merge_blocks_p, merge_blocks,
14522         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14523         Declare.
14524         (cfg_layout_rtl_cfg_hooks): Declare.
14525         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
14526         New functions.
14527         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
14528         (redirect_edge_with_latch_update): Removed.
14529         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
14530         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
14531         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
14532         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
14533         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
14534         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
14535         cfghooks.c.
14536         (rtl_create_basic_block): Coding style fix.
14537         (rtl_tidy_fallthru_edge, rtl_move_block_after,
14538         rtl_make_forwarder_block): New functions.
14539         (update_cfg_after_block_merging): Removed.
14540         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
14541         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
14542         to dump_bb.
14543         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
14544         find_if_case_2): Don't update dominators.
14545         * timevar.def (TV_CFG_VERIFY): New.
14546         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
14547         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
14548         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
14549         (remove_bbs): Don't call remove_bbs.
14550         (create_preheader): Use make_forwarder_block.
14551         (mfb_keep_just, mfb_update_loops): New static functions.
14552
14553 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14554
14555         * config/avr/avr.h: Remove target-independent comments about
14556         target macros.
14557
14558 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
14559
14560         * timevar.c (timevar_print): Mention when checking is enabled.
14561
14562 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
14563
14564         * c-lex.c (c_lex): Rename to...
14565         (c_lex_with_flags): Add new parameter to get CPP flags.
14566         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
14567         * c-pragma.h (c_lex_with_flags): Declare.
14568
14569 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14570
14571         * config/mcore/mcore.c (mcore_external_libcall): Add a
14572         comment.
14573         (mcore_return_in_memory): Likewise.
14574
14575 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14576
14577         * config/mcore/mcore-protos.h: Remove the prototype for
14578         mcore_setup_incoming_varargs.
14579         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14580         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14581         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14582         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14583         (TARGET_STRUCT_VALUE_RTX): Likewise.
14584         (TARGET_RETURN_IN_MEMORY): Likewise.
14585         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14586         (mcore_setup_incoming_varargs): Make it static.  Receive the
14587         first argument by reference.  Add argument second_time.
14588         (mcore_external_libcall): New.
14589         (mcore_return_in_memory): Likewise.
14590         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
14591         (PROMOTE_FUNCTION_RETURN): Likewise.
14592         (STRUCT_VALUE): Likewise.
14593         (RETURN_IN_MEMORY): Likewise.
14594         (SETUP_INCOMING_VARARGS): Likewise.
14595         (PROMOTE_PROTOTYPES): Likewise.
14596         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14597
14598 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14599
14600         * config/m32r/m32r-protos.h: Remove the prototype for
14601         m32r_setup_incoming_varargs.
14602         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
14603         (TARGET_STRUCT_VALUE_RTX): Likewise.
14604         (TARGET_RETURN_IN_MEMORY): Likewise.
14605         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14606         (m32r_return_in_memory): New.
14607         (m32r_setup_incoming_varargs): Make it static.
14608         * config/m32r/m32r.h: Remove #undef of
14609         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
14610         definitions of PROMOTE_FUNCTION_ARGS and
14611         PROMOTE_FUNCTION_RETURN.
14612         (PROMOTE_PROTOTYPES): Remove.
14613         (RETURN_IN_MEMORY): Likewise.
14614         (STRUCT_VALUE): Likewise.
14615
14616 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14617
14618         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
14619         (TARGET_STRUCT_VALUE_RTX): Likewise.
14620         (m68k_struct_value_rtx): Likewise.
14621         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
14622         STRUCT_VALUE_REGNUM.
14623         (PROMOTE_PROTOTYPES): Remove.
14624         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
14625         STRUCT_VALUE_REGNUM.
14626         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
14627         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
14628
14629 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14630
14631         * config/stormy16/stormy16.c
14632         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
14633         TARGET_BUILD_BUILTIN_VA_LIST.
14634
14635 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14636
14637         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
14638         (TARGET_STRUCT_VALUE_RTX): Likewise.
14639         (TARGET_RETURN_IN_MEMORY): Likewise.
14640         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14641         (v850_return_in_memory): Likewise.
14642         (v850_setup_incoming_varargs): Likewise.
14643         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
14644         (SETUP_INCOMING_VARARGS): Likewise.
14645         (RETURN_IN_MEMORY): Likewise.
14646         (STRUCT_VALUE): Likewise.
14647
14648 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14649
14650         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
14651         (fr30_setup_incoming_varargs): Don't use
14652         STRICT_ARGUMENT_NAMING.
14653         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
14654         (STRICT_ARGUMENT_NAMING): Likewise.
14655
14656 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14657
14658         * config/frv/frv-protos.h: Remove the prototype for
14659         frv_expand_builtin_saveregs.
14660         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
14661         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14662         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
14663         STRUCT_VALUE_REGNUM.
14664         (frv_expand_builtin_saveregs): Make it static.
14665         (frv_struct_value_rtx): New.
14666         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
14667
14668 2004-01-29  Jan Hubicka  <jh@suse.cz>
14669
14670         PR c++/12850
14671         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
14672         initial pointers.
14673         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
14674         for functions that will be only inlined.
14675         (cgraph_mark_function_to_output): Likewise.
14676         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
14677         do not clear function body.
14678         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
14679         (tree_rest_of_compilation): Reorganize the logic releasing function
14680         body to use callgraph datastructure.
14681
14682 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14683
14684         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
14685         to register_operand.
14686
14687 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14688
14689         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
14690         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
14691         match_operand expressions so that all match_dups appear
14692         lexically after their corresponding match_operands.
14693
14694 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14695
14696         * config/h8300/h8300.c (WORD_REG_USED): Use
14697         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
14698         (compute_saved_regs): Likewise.
14699         (h8300_expand_prologue): Likewise.  Allocate locals after
14700         saving registers.
14701         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
14702         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
14703         registers.
14704         (h8300_initial_elimination_offset): Adjust for the new frame
14705         layout, which swaps flips the order of locals and saved
14706         registers.
14707         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
14708         (HARD_FRAME_POINTER_REGNUM): New.
14709         (ELIMINABLE_REGS): Add an elimination rule from
14710         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
14711         (REGISTER_NAMES): Add fp.
14712         * config/h8300/h8300.md (FP_REG): Change to 11.
14713         (HFP_REG): New.
14714
14715 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14716
14717         * genrecog.c (write_node): Remove a useless local variable.
14718
14719 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14720
14721         * Makefile.in (options.c options.h): Use stamp file s-options to
14722         avoid unnecessary rebuilds.
14723         (options.o): New target listing dependencies.
14724         (gtyp-gen.h): Use stamp file s-gtyp-gen.
14725         (STAGESTUFF): Add s-gtyp-gen.
14726
14727 2004-01-28  Richard Henderson  <rth@redhat.com>
14728
14729         * ggc.h (ggc_free): Declare.
14730         * ggc-common.c (ggc_realloc): Use it.
14731         * ggc-page.c: Remove lots of inline markers.
14732         (globals): Add free_object_list.
14733         (ggc_alloc): Tidy.
14734         (ggc_free, validate_free_objects): New.
14735         (poison_pages): Provide default.
14736         (ggc_collect): Call validate_free_objects; emit markers to
14737         the debug file.
14738
14739 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14740             Jim Wilson  <wilson@specifixinc.com>
14741
14742         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
14743         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
14744         scratch pointer.
14745         (ia64_secondary_reload_class): Delete case GR_REGS.
14746         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
14747         Do not allocate a scratch register.
14748         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
14749
14750 2004-01-28  Jan Hubicka  <jh@suse.cz>
14751
14752         * gcse.c (bypass_block): Prevent edges to be unified when we are
14753         about to emit compenstation code.
14754
14755 2004-01-28  Nick Clifton  <nickc@redhat.com>
14756
14757         * config/arm/arm.c (arm_expand_builtin): Force second argument of
14758         the setcwx insn into a register.
14759
14760 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
14761
14762         * config/fp-bit.c (pack_d): When using paired doubles to implement
14763         a long double, round the high part separately.
14764         (unpack_d): Fix the case in which the high part is a power of two
14765         and the low part is a nonzero value of the opposite sign.
14766
14767 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14768
14769         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14770         (TARGET_STRUCT_VALUE_RTX): Likewise.
14771         (c4x_external_libcall): Likewise.
14772         (c4x_struct_value_rtx): Likewise.
14773         * config/c4x/c4x.h: Remove.
14774         (STRUCT_VALUE_REGNUM): Likewise.
14775         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14776
14777 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14778
14779         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
14780         (TARGET_STRUCT_VALUE_RTX): Likewise.
14781         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
14782         (STRUCT_VALUE): Likewise.
14783         (PROMOTE_PROTOTYPES): Likewise.
14784
14785 2004-01-27  Roger Sayle  <roger@eyesopen.com>
14786
14787         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
14788         CONST_INT before using INTVAL.
14789
14790 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
14791
14792         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
14793         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
14794         frame if !TARGET_BACKCHAIN.
14795         * config/s390/s390.md ("allocate_stack"): Use pattern only if
14796         TARGET_BACKCHAIN.
14797         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
14798
14799 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14800
14801         * ia64.c (ia64_function_arg): When placing HFAs in integer
14802         registers, do not special case the mode used for complex
14803         types.  Do not advance int_regs until the current register
14804         is full.
14805
14806 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
14807
14808         PR target/7297
14809         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
14810
14811 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
14812
14813         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
14814         slow, unaligned loads and stores while debugging.  Fix formatting.
14815
14816 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
14817
14818         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
14819         of computing wmode.
14820         (restore_stack_nonlocal): Same.
14821
14822 2004-01-27  Devang Patel <dpatel@apple.com>
14823
14824         * Makefile.in (dwarf2out.o): Depend on input.h
14825         * dbxout.c (dbx_debug_hooks): Add new empty hook for
14826         imported_module_or_decl.
14827         (xcoff_debug_hooks): Same.
14828         * sdbout.c (sdb_debug_hooks): Same.
14829         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
14830         * debug.c (do_nothing_debug_hooks): Same.
14831         (debug_nothing_tree_tree): New function.
14832         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
14833         * dwarf2out.c: Include input.h.
14834         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
14835         (remove_child_TAG): New function.
14836         (dwarf_tag_name): Handle DW_TAG_imported_module.
14837         (gen_subprogram_die): Equate decl number to declaration die. Do not
14838         remove all children dies while reusing declaration die for definition.
14839         Instead, selectively remove only formal parameters.
14840         (gen_variable_die): Equate variable decl to declaration die.
14841         (gen_field_die): Equate field decl to line number.
14842         (force_namespace_die): Replace it with ...
14843         (force_decl_die): ... this.
14844         (force_type_die): New function.
14845         (setup_namespace_context): Replace use of force_namespace_die() with
14846         force_decl_die().
14847         (gen_namespace_die): Same.
14848         (dwarf2out_imported_module_or_decl): New function.
14849
14850 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
14851
14852         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
14853         on CQImode and CHImode incoming arguments in register a7.
14854         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
14855         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
14856         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
14857         xtensa_copy_incoming_a7 before reload.
14858
14859 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14860
14861         * coverage.c (get_coverage_counts): Give a different message
14862         if flag_guess_branch_prob is set.
14863         * predict.c (counts_to_freqs): Return an int.
14864         (estimate_bb_frequencies): If counts_to_freqs returns zero,
14865         calculate estimates.
14866
14867 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
14868
14869         * config/iq2000/iq2000-protos.h: Remove the prototype for
14870         iq2000_setup_incoming_varargs.
14871         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14872         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14873         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14874         (TARGET_STRUCT_VALUE_RTX): Likewise.
14875         (TARGET_RETURN_IN_MEMORY): Likewise.
14876         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14877         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14878         (iq2000_return_in_memory): Likewise.
14879         (iq2000_setup_incoming_varargs): Make it static.  Receive the
14880         first argument by reference.
14881         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
14882         (PROMOTE_FUNCTION_RETURN): Likewise.
14883         (PROMOTE_PROTOTYPES): Likewise.
14884         (RETURN_IN_MEMORY): Likewise.
14885         (STRUCT_VALUE): Likewise.
14886         (SETUP_INCOMING_VARARGS): Likewise.
14887         (STRICT_ARGUMENT_NAMING): Likewise.
14888
14889 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
14890
14891         * fixinc/fixinc.c (test_test): Initialize res.
14892         (start_flexer): Initialize pz_cmd_save.
14893
14894 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14895
14896         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
14897         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
14898
14899 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14900
14901         PR 7198
14902         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
14903         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
14904         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
14905         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
14906         Possibly rename pattern for consistency.
14907         Remove ??? comments suggesting that this be done.
14908         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
14909         New patterns.
14910         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
14911         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
14912         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
14913         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
14914         Update to match.
14915
14916 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
14917
14918         * config/arm/arm.c (output_return_instruction): Only restore IP
14919         into SP if frame_pointer_needed.
14920
14921 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14922
14923         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14924         for SCmode and DCmode if ARCH32.
14925         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
14926         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
14927         if ARCH32.
14928         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
14929         if ARCH32.
14930         (BASE_OUTGOING_VALUE_REG): Likewise.
14931
14932 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14933
14934         PR target/10904
14935         PR target/13058
14936         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
14937         Forbid mode changes from SImode for lower FP regs if ARCH64.
14938
14939 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14940
14941         * Makefile.in (bt-load.o): Depend on except.h.
14942         * bt-load.c (except.h): #include.
14943         (compute_defs_uses_and_gen): If insn at end of BB can throw
14944         within this function, consider registers used by it unavailable for
14945         btr migration.
14946         (move_btr_def): If insn at end of BB can throw, insert before rather
14947         than after.
14948
14949         * flags.h (flag_btr_bb_exclusive): Declare.
14950         * toplev.c (flag_btr_bb_exclusive): New variable.
14951         (f_options): Add btr-bb-exclusive.
14952         * bt-load.c (augment_live_range): Restore old behaviour if
14953         flag_btr_bb_exclusive is set.
14954         * common.opt: Add entry for -fbtr-bb-exclusive.
14955         * opts.c (common_handle_options): Same.
14956         * doc/invoke.texi: Document -fbtr-bb-exclusive.
14957
14958         * bt-load.c (btrs_live_at_end): New variable.
14959         (compute_defs_uses_and_gen): Compute its pointed-to array.
14960         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
14961         (augment_live_range): When augmenting with a new dominator,
14962         use only its btrs_live_at_end set, but also add in the full set
14963         of the old dominator.
14964         (btr_def_live_range): Use btrs_live_at_end.
14965         (move_btr_def): Set other_btr_uses_before_def, and move new set
14966         to the end of the basic block, if appropriate.
14967         (migrate_btr_defs): Allocate and free btrs_live_at_end.
14968
14969         * bt-load.c (basic_block_freq): Remove outdated comment.
14970
14971 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
14972
14973         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
14974         (PREDICATE_CODES): Remove duplicate.
14975         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
14976         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
14977         (MASK_PROFILE_KERNEL): Adjust define.
14978
14979 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
14980
14981         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
14982         of long string literals from 32 bytes to sizeof (void *) when !-Os
14983         and to 1 with -Os.
14984
14985 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14986
14987         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
14988         constant addresses in the normal mode.
14989
14990 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14991
14992         * system.h (CHAR_BITFIELD): Delete.
14993         (BOOL_BITFIELD): New.
14994         * c-decl.c (c_scope): Use BOOL_BITFIELD.
14995         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
14996
14997 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14998
14999         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15000         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15001         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15002         (TARGET_STRUCT_VALUE_RTX): Likewise.
15003         (TARGET_RETURN_IN_MEMORY): Likewise.
15004         (arc_return_in_memory): Likewise.
15005         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15006         (PROMOTE_FUNCTION_RETURN): Likewise.
15007         (RETURN_IN_MEMORY): Likewise.
15008         (STRUCT_VALUE): Likewise.
15009
15010 2004-01-26  Richard Henderson  <rth@redhat.com>
15011
15012         * c-parse.in (extension): Use itype.
15013         (SAVE_EXT_FLAGS): Don't allocate a tree.
15014         (RESTORE_EXT_FLAGS): Don't read a tree.
15015
15016 2004-01-26  Jan Hubicka  <jh@suse.cz>
15017
15018         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15019         to datastructure to be recycled.
15020
15021 2004-01-25  Jan Hubicka  <jh@suse.cz>
15022
15023         * genextract.c (main): Do not output the memset when not checking.
15024
15025 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15026
15027         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15028         switch statement instead of a chain of if statements.
15029
15030 2004-01-26  Jeff Law  <law@redhat.com>
15031
15032         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15033         acute accents for Petur Runolfsson's entry.
15034
15035 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15036
15037         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15038         (TARGET_RETURN_IN_MEMORY): Likewise.
15039         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15040         (RETURN_IN_MEMORY): Likewise.
15041
15042 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15043
15044          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15045          unaligned load/store into smaller loads and stores.
15046
15047 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15048
15049         * function.c (assign_parms): Do not assign
15050         long long argument to memory in prologue if
15051         is it loaded into register.
15052
15053 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15054
15055          PR middle-end/13779
15056          * expr.c (emit_group_load): split constant
15057          correctly into register components of PARALLEL insn.
15058
15059 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15060
15061         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15062         Use adjust_address_nv directly with appropriate mode.
15063         (restore_stack_nonlocal): Ditto.
15064
15065 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15066
15067         * config/xtensa/xtensa-protos.h: Remove the prototype for
15068         xtensa_builtin_saveregs.
15069         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15070         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15071         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15072         (TARGET_STRUCT_VALUE_RTX): Likewise.
15073         (TARGET_RETURN_IN_MEMORY): Likewise.
15074         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15075         (xtensa_builtin_saveregs): Make it static.
15076         (xtensa_return_in_memory): New.
15077         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15078         (PROMOTE_FUNCTION_RETURN): Likewise.
15079         (PROMOTE_PROTOTYPES): Likewise.
15080         (STRUCT_VALUE): Likewise.
15081         (RETURN_IN_MEMORY): Likewise.
15082         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15083
15084 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15085
15086         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15087         (arm_setup_incoming_varargs): Likewise.
15088         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15089
15090 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15091
15092         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15093         (cris_setup_incoming_varargs): Likewise.
15094         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15095
15096 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15097
15098         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15099         (ns32k_struct_value_rtx): Likewise.
15100         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15101         NS32K_STRUCT_VALUE_REGNUM.
15102
15103 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15104
15105         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15106         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15107         (TARGET_STRUCT_VALUE_RTX): Likewise.
15108         (arm_struct_value_rtx): Likewise.
15109         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15110         (STRUCT_VALUE): Likewise.
15111         (STRUCT_VALUE_REGNUM): Likewise.
15112         (PROMOTE_PROTOTYPES): Likewise.
15113
15114 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15115
15116         * config/ia64/ia64-protos.h: Remove the prototype for
15117         ia64_setup_incoming_varargs and ia64_return_in_memory.
15118         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15119         (TARGET_RETURN_IN_MEMORY): Likewise.
15120         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15121         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15122         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15123         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15124         (ia64_return_in_memory): Make it static.  Change the return
15125         type to bool from int.  Add an argument.
15126         (ia64_struct_value_rtx): New.
15127         * config/ia64/ia64.h: Remove commented-out definitions of
15128         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15129         PROMOTE_PROTOTYPES.
15130         (RETURN_IN_MEMORY): Remove.
15131         (STRUCT_VALUE_REGNUM): Likewise.
15132         (STRICT_ARGUMENT_NAMING): Likewise.
15133
15134 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15135
15136         PR target/13666
15137         * config/sparc/sparc.c (function_arg_union_value): New function.
15138         (function_arg): Use it to deal with unions.
15139         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15140         Replace a conditional statement by a simpler one.
15141
15142 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
15143
15144         * config/mips/mips.c (mips16_optimize_gp): Delete.
15145         (mips_reorg): Don't call it.
15146
15147 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15148
15149         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15150         (floatunsqihf2): Remove operand 6.
15151         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15152         fix patterns.
15153         (ldi_conditional, ldf_conditional): Validate operands.
15154
15155 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15156
15157         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15158         (HAVE_GAS_HIDDEN): Undefine as interim measure.
15159
15160 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15161
15162         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
15163         memory references if TARGET_EXPOSE_LDP nonzero.
15164
15165 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15166
15167         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15168
15169 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15170
15171         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15172         invalid operand combinations.
15173
15174 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15175
15176         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15177         c4x_legitimate_address_p.  Fix post_modify check.
15178
15179         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15180         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15181
15182 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15183
15184         * config/pa/pa-protos.h: Remove the prototype for
15185         hppa_builtin_saveregs.  Add a prototype for
15186         pa_return_in_memory.
15187         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15188         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15189         (TARGET_STRUCT_VALUE_RTX): Likewise.
15190         (TARGET_RETURN_IN_MEMORY): Likewise.
15191         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15192         (pa_struct_value_rtx): Likewise.
15193         (pa_return_in_memory): Likewise.
15194         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15195         PA_STRUCT_VALUE_REGNUM.
15196         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15197         (EXPAND_BUILTIN_SAVEREGS): Remove.
15198         (PROMOTE_PROTOTYPES): Likewise.
15199         (PROMOTE_FUNCTION_RETURN): Likewise.
15200
15201 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15202
15203         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15204         (TARGET_STRUCT_VALUE_RTX): Likewise.
15205         (vax_struct_value_rtx): Likewise.
15206         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15207         VAX_STRUCT_VALUE_REGNUM.
15208         (PROMOTE_PROTOTYPES): Remove.
15209
15210 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15211
15212         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
15213
15214 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
15215
15216         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15217         and MIPS64 have HI/LO interlocks.  Update comment.
15218
15219 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15220
15221         * config/stormy16/stormy16-protos.h: Remove the prototype for
15222         xstormy16_setup_incoming_varargs.
15223         * config/stormy16/stormy16.c
15224         (xstormy16_setup_incoming_varargs): Remove.
15225         (xstormy16_return_in_memory): New.
15226         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15227         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15228         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15229         (TARGET_STRUCT_VALUE_RTX): Likewise.
15230         (TARGET_RETURN_IN_MEMORY): Likewise.
15231         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15232         (PROMOTE_FUNCTION_RETURN): Likewise
15233         (PROMOTE_PROTOTYPES): Likewise
15234         (RETURN_IN_MEMORY): Likewise
15235         (STRUCT_VALUE): Likewise
15236         (SETUP_INCOMING_VARARGS): Likewise
15237
15238 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15239
15240         * config/mips/mips.c (mips_offset_within_object_p): New function.
15241         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15242         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
15243         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15244
15245 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15246
15247         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15248         (PROMOTE_FUNCTION_RETURN): Likewise.
15249
15250 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15251
15252         * config/mn10300/mn10300-protos.h: Remove the prototype for
15253         mn10300_builtin_saveregs.
15254         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15255         (TARGET_STRUCT_VALUE_RTX): Likewise.
15256         (TARGET_RETURN_IN_MEMORY): Likewise.
15257         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15258         (mn10300_return_in_memory): Likewise.
15259         (mn10300_builtin_saveregs): Make it static.
15260         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15261         (RETURN_IN_MEMORY): Likewise.
15262         (STRUCT_VALUE): Likewise.
15263         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15264
15265 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
15266
15267         PR bootstrap/13853
15268         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15269
15270 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15271
15272         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15273         using ccr.
15274
15275 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15276
15277         * config/i860/i860-protos.h: Remove the prototype for
15278         i860_saveregs.
15279         * config/i860/i860.c (i860_saveregs): Make it static.
15280         (i860_struct_value_rtx): New.
15281         (TARGET_STRUCT_VALUE_RTX): Likewise.
15282         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15283         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15284         I860_STRUCT_VALUE_REGNUM.
15285         (EXPAND_BUILTIN_SAVEREGS): Remove.
15286
15287 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15288
15289         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15290         (TARGET_RETURN_IN_MEMORY): Likewise.
15291         (m68hc11_struct_value_rtx): Likewise.
15292         (m68hc11_return_in_memory): Likewise.
15293         * config/m68hc11/m68hc11.h: Remove a commented-out definition
15294         of PROMOTE_PROTOTYPES.
15295         (RETURN_IN_MEMORY): Remove.
15296         (STRUCT_VALUE_REGNUM): Likewise.
15297
15298 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15299
15300         * config/mmix/mmix-protos.h: Remove the prototype for
15301         mmix_setup_incoming_varargs.
15302         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15303         (TARGET_STRUCT_VALUE_RTX): Likewise.
15304         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15305         (mmix_setup_incoming_varargs): Make it static.
15306         (mmix_struct_value_rtx): New.
15307         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15308         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15309         (STRUCT_VALUE_REGNUM): Remove.
15310         (SETUP_INCOMING_VARARGS): Likewise.
15311
15312 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15313
15314         * config/mips/mips-protos.h: Remove the prototypes for
15315         mips_setup_incoming_varargs and mips_return_in_memory.
15316         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15317         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15318         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15319         (TARGET_STRUCT_VALUE_RTX): Likewise.
15320         (TARGET_RETURN_IN_MEMORY): Likewise.
15321         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15322         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15323         (mips_setup_incoming_varargs): Match the prototype for
15324         TARGET_SETUP_INCOMING_VARARGS.
15325         (mips_return_in_memory): Make it static.  Add argument fntype.
15326         (mips_strict_argument_naming): New.
15327         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15328         (PROMOTE_FUNCTION_ARGS): Likewise.
15329         (PROMOTE_FUNCTION_RETURN): Likewise.
15330         (STRUCT_VALUE): Likewise.
15331         (RETURN_IN_MEMORY): Likewise.
15332         (SETUP_INCOMING_VARARGS): Likewise.
15333         (STRICT_ARGUMENT_NAMING): Likewise.
15334
15335 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15336
15337         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15338         (TARGET_RETURN_IN_MEMORY): Likewise.
15339         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15340         (ip2k_return_in_memory): Likewise.
15341         (ip2k_setup_incoming_varargs): Likewise.
15342         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15343         (STRUCT_VALUE): Likewise.
15344         (STRUCT_VALUE_INCOMING): Likewise.
15345         (SETUP_INCOMING_VARARGS): Likewise.
15346
15347 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15348
15349         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15350         (TARGET_RETURN_IN_MEMORY): Likewise.
15351         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15352         (avr_return_in_memory): Remove.
15353         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15354         (STRUCT_VALUE): Likewise.
15355         (STRUCT_VALUE_INCOMING): Likewise.
15356         (STRICT_ARGUMENT_NAMING): Likewise.
15357
15358 2004-01-25  Jan Hubicka  <jh@suse.cz>
15359
15360         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15361
15362 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15363
15364         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15365         (mips_regno_mode_ok_for_base_p): Declare.
15366         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15367         (FRAME_POINTER_REGNUM): Renumber to 78.
15368         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15369         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15370         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15371         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15372         (REG_MODE_OK_FOR_BASE_P): Likewise.
15373         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15374         entry for 77 to "$arg" and entry for 78 to "$frame".
15375         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15376         (mips_reg_mode_ok_for_base_p): Remove.
15377         (mips_regno_mode_ok_for_base_p): New function, derived from old
15378         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
15379         restrictions unless we're being strict.
15380         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15381
15382 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15383
15384         * c-common.h: Fix comment typos.
15385         * c-decl.c: Likewise.
15386         * cgraphunit.c: Likewise.
15387         * combine.c: Likewise.
15388         * et-forest.c: Likewise.
15389         * flow.c: Likewise.
15390         * function.c: Likewise.
15391         * ifcvt.c: Likewise.
15392         * integrate.c: Likewise.
15393         * jump.c: Likewise.
15394         * postreload.c: Likewise.
15395         * varray.c: Likewise.
15396
15397 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15398
15399         * doc/frontends.texi: Update copyright.
15400         * doc/gcov.texi: Likewise.
15401         * doc/gty.texi: Likewise.
15402         * doc/sourcebuild.texi: Likewise.
15403         * doc/standards.texi: Likewise.
15404
15405 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
15406
15407         PR target/12978
15408         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15409         Remove movstrqi_small because it conflicts with movstrqi_large.
15410
15411 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15412
15413         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15414         (TARGET_STRUCT_VALUE_RTX): Likewise.
15415         (cris_struct_value_rtx): Likewise.
15416         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15417         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15418         STRUCT_VALUE_REGNUM.
15419         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15420
15421 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
15422
15423         PR bootstrap/13848
15424         * cse.c (cse_cc_succs): Change the mode of the source expression
15425         as soon as decide we need a new mode.  Don't permit changing modes
15426         if we found a match in a successor block.
15427         (cse_condition_code_reg): Save original mode of source expression
15428         so that we know whether we have to change the mode in other
15429         insns.
15430
15431 2004-01-24  Jan Hubicka  <jh@suse.cz>
15432
15433         * emit-rtl.c (change_address, adjust_address_1, offset_address,
15434         widen_memory_access):  Return early when there is nothing to change.
15435
15436 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
15437
15438         * simplify-rtx.c (simplify_relational_operation): Don't
15439         simplify address == constant into address + -constant == 0.
15440
15441 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15442
15443         * gcc.c (process_command): Don't internationalize the
15444         Copyright message.
15445         * mips-tfile.c (main): Likewise.
15446
15447 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
15448
15449         * cse.c: (cse_cc_succs) Fix comparison warning.
15450
15451 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15452
15453         * config/h8300/h8300.md: Remove extraneous USE in expanders.
15454
15455 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15456
15457         * config/h8300/h8300-protos.h: Provide prototypes for
15458         h8300_legitimate_constant_p and h8300_legitimate_address_p.
15459         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
15460         (h8300_rtx_ok_for_base_p): Likewise.
15461         (h8300_legitimate_address_p): Likewise.
15462         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
15463         h8300_legitimate_constant_p.
15464         (RTX_OK_FOR_BASE_P): Remove.
15465         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
15466
15467 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15468
15469         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
15470         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15471         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
15472         (REG_OK_FOR_BASE_STRICT_P): Likewise.
15473         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
15474         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
15475         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
15476         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
15477
15478 2004-01-24  Jan Hubicka  <jh@suse.cz>
15479
15480         * cselib.c (remove_useless_values):  Do not access discarded values.
15481
15482 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
15483
15484         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
15485         arrays.
15486
15487 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
15488
15489         * recog.c: Fix a typo in copyright.
15490
15491 2004-01-23  Andrew Pinski  <apinski@apple.com>
15492
15493         * config/rs6000/rs6000.md (call): Fix misappiled patch.
15494         (call_value): Likewise.
15495
15496 2004-01-23  Richard Henderson  <rth@redhat.com>
15497
15498         PR opt/12941
15499         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
15500         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
15501         if SHIFT_COUNT_TRUNCATED is set.
15502
15503 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
15504
15505         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
15506         separate real and imaginary parts.
15507         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
15508
15509 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
15510
15511         PR target/13674
15512         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
15513         loading into GPR.
15514
15515 2004-01-23  Jan Hubicka  <jh@suse.cz>
15516
15517         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
15518         change.
15519
15520         * alloc-pool.c (align_four): Kill.
15521         (create_alloc_pool): Align size to eight.
15522         (free_alloc_pool, free_pool): Invalidate deallocated data.
15523
15524 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
15525
15526         PR gcc/1532
15527         * cse.c (cse_change_cc_mode): New static function.
15528         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
15529         (cse_condition_code_reg): New function.
15530         * rtl.h (cse_condition_code_reg): Declare.
15531         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
15532         * target.h (struct gcc_target): Add fixed_condition_code_regs and
15533         cc_modes_compatible.
15534         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15535         (TARGET_CC_MODES_COMPATIBLE): Define.
15536         (TARGET_INITIALIZER): Add new initializers.
15537         * targhooks.c (default_cc_modes_compatible): New function.
15538         * targhooks.c (default_cc_modes_compatible): Declare.
15539         * hooks.c (hook_bool_intp_intp_false): New function.
15540         * hooks.h (hook_bool_intp_intp_false): Declare.
15541         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15542         (TARGET_CC_MODES_COMPATIBLE): Define.
15543         (ix86_fixed_condition_code_regs): New static function.
15544         (ix86_cc_modes_compatible): Likewise.
15545         * doc/tm.texi (Condition Code): Document new hooks.
15546
15547 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15548
15549         * fixinc/inclhack.def (bad_lval): Renamed to ...
15550         (alpha_bad_lval): ... this.
15551         Removed file list.
15552         Restrict to alpha*-dec-osf*.
15553         * fixinc/fixincl.x: Regenerate.
15554         * fixinc/tests/base/dirent.h: Remove, moving test ...
15555         * fixinc/tests/base/testing.h: ... here, reflecting new name.
15556
15557 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
15558
15559         PR c/13814
15560         * c-decl.c (diagnose_mismatched_decls): Also discard a
15561         built-in if we encounter an old-style definition with the
15562         same name.
15563
15564 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
15565
15566         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
15567         set to default{32,64}.
15568
15569 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15570
15571         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
15572         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
15573
15574 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
15575             Olivier Hainque  <hainque@act-europe.fr>
15576
15577         * fold-const.c (fold_binary_op_with_conditional_arg): Only
15578         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
15579
15580 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
15581
15582         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
15583         size for minipool references.
15584
15585 2004-01-23  Roger Sayle  <roger@eyesopen.com>
15586
15587         * real.c (real_floor, real_ceil): Tweak to allow input and output
15588         arguments to overlap.
15589         (real_round): New function to implement round(3m) semantics.
15590         * real.h (real_round): Prototype here.
15591         * builtins.c (fold_builtin_round): New function to constant fold
15592         round, roundf and roundl.
15593         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
15594
15595 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
15596
15597         PR optimization/13819
15598         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
15599         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
15600         (sh_handle_sp_switch_attribute): Remove warning.
15601
15602 2003-11-30  Jan Hubicka  <jh@suse.cz>
15603
15604         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
15605
15606 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
15607
15608         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
15609         may or may not return non-NIL.
15610         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
15611         check CANNOT_CHANGE_MODE_CLASS
15612
15613 2004-01-23  Jan Hubicka  <jh@suse.cz>
15614
15615         * basic-block.h (PROP_POSTRELOAD): New macro.
15616         (CLEANUP_LOG_LINKS): New.
15617         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
15618         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
15619
15620         * cselib.c (value_pool): New.
15621         (new_cselib_val): Use pool.
15622         (cselib_init): Initialize value_pool
15623         (cselib_finish): Free pool.
15624
15625 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
15626
15627         * config/sparc/sparc.c (scan_record_type): New function.
15628         (function_arg_slotno): Use it to determine which kinds of
15629         registers the record can be passed in.
15630
15631 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
15632
15633         * config/pa/fptr.c: Fix old-style definition.
15634
15635 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
15636
15637         PR optimization/13724
15638         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
15639         represents the zero bits produced by a ZERO_EXTEND operation.
15640
15641 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15642
15643         PR optimization/13821
15644         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
15645         correctly calculate the lowpart offset of the contracted subreg.
15646
15647 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
15648
15649         * doc/invoke.texi (Optimize Options): Note that --param arguments
15650         are subject to change without notice.
15651
15652 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15653
15654         * config.gcc (mips-sgi-irix6*o32): Removed.
15655         * config/mips/iris6-o32-as.h: Likewise.
15656         * config/mips/iris6-o32-gas.h: Likewise.
15657         * config/mips/iris6-o32.h: Likewise.
15658
15659 2004-01-22  Jan Hubicka  <jh@suse.cz>
15660
15661         * cfgcleanup.c (first_pass): New static variable.
15662         (try_forward_edges):  Add work limiting check for threading.
15663         (try_crossjump_bb):  Add work limiting check for crossjumping.
15664         (try_optimize_cfg):  Maintain first pass variable.
15665
15666 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
15667
15668         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
15669         handles complex and vector modes.
15670
15671 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15672
15673         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
15674         (REG_OK_FOR_BASE_P_STRICT): Likewise.
15675         (STRICT): Likewise.
15676
15677 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15678
15679         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
15680         (genrtl_for_stmt): Remove emit_nop calls.
15681
15682 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15683
15684         PR target/13713
15685         PR target/13324
15686         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
15687         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
15688         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
15689
15690 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15691
15692         * config/arm/arm.c: Include "debug.h".
15693         (thumb_pushpop): Take two new arguments.  Add some commentary.
15694         Output frame information when pushing.
15695         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
15696         thumb_pushpop.
15697         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
15698         offset, and pass it to thumb_pushpop.  Output CFI information.
15699         (thumb_expand_prologue): Add some frame-related markers and notes.
15700
15701 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
15702
15703         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
15704         for TARGET_64BIT.
15705         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
15706         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
15707
15708 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15709             Paolo Bonzini  <bonzini@gnu.org>
15710
15711         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
15712         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
15713         * rtl.h (subreg_lsb_1): Prototype here.
15714         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
15715         sign extensions.
15716
15717 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15718
15719         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
15720         macro need not be defined if jump-tables should contain
15721         relative addresses only when -fPIC or -fPIC is in effect.
15722
15723 2004-01-22  Jan Hubicka  <jh@suse.cz>
15724
15725         * alias.c (reg_base_value): Turn into varray.
15726         (reg_base_value_size): Kill.
15727         (old_reg_base_value): New deletable varray.
15728         (alias_invariant_size): New variable.
15729         (REG_BASE_VALUE): Update to use varray.
15730         (find_base_value): Likewise.
15731         (record_set): Likewise.
15732         (record_base_value): Likewise.
15733         (memrefs_conflict_p): Likewise.
15734         (record_set): Likewise
15735         (record_base_value): Likewise.
15736         (memrefs_conflict_p): Use alias_invariant_size.
15737         (init_alias_analysis): Use varray; set alias_invariant_size;
15738         rescale other arrays to be sized by maxreg.
15739         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
15740
15741 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
15742
15743         * config/sparc/sparc.c (function_arg_slotno): Use
15744         FLOAT_TYPE_P to detect FP fields in structures.
15745         (function_arg_record_value_1): Likewise.
15746         (function_arg_record_value_2): Likewise.
15747
15748 2004-01-22  Jan Hubicka  <jh@suse.cz>
15749
15750         * function.c (allocate_struct_function): Do not initialize expr, emit
15751         and varasm.
15752         (prepare_function_start): Do it here.
15753         * c-parse.in (maybe_type_qual): Do not produce line number notes.
15754
15755 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
15756
15757         PR target/13559
15758         * config/sparc/sparc.c (function_arg_record_value_3): Revert
15759         to 'word_mode' once the first slot has been filled.
15760
15761 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
15762
15763         * config/sparc/sparc.c (function_arg_record_value_1): Fix
15764         computation of the number of integer registers required.
15765
15766 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15767
15768         * config/i386/i386.md: Simplify certain comparisons of
15769         const_int.
15770
15771 2004-01-21  Andrew Pinski  <apinski@apple.com>
15772
15773         PR target/13785
15774         * config/rs6000/rs6000.md (call_value): Force operand
15775         1 not operand 0 into a register.
15776
15777 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15778
15779         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
15780         unwind-dw2-fde.h: Update copyright.
15781
15782 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15783
15784         * pa-protos.h: Update copyright.
15785         * pa.h: Likewise.
15786         * pa.md: Likewise.
15787
15788 2004-01-21  Caroline Tice  <ctice@apple.com>
15789
15790         PR target/12308
15791         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
15792         flags register.
15793         (fix_truncdfdi2): Likewise.
15794         (fix_truncsfdi2): Likewise.
15795         (*fix_truncdi_1): Likewise.
15796         (fix_truncxfsi2): Likewise.
15797         (fix_truncdfsi2): Likewise.
15798         (fix_truncsfsi2): Likewise.
15799         (*fix_truncsi_1): Likewise.
15800         (fix_truncxfhi2): Likewise.
15801         (fix_truncdfhi2): Likewise.
15802         (fix_truncsfhi2): Likewise.
15803         (*fix_trunchi_1): Likewise.
15804
15805 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15806
15807         * alias.c, basic-block.h, c-common.c, c-common.h,
15808         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
15809         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
15810         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
15811         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
15812         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
15813         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
15814         genautomata.c, genconditions.c, genemit.c, genflags.c,
15815         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
15816         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
15817         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
15818         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
15819         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
15820         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
15821         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
15822         unwind.h, varray.c, varray.h: Update copyright.
15823
15824 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15825
15826         * config/h8300/coff.h: Update copyright.
15827         * config/h8300/elf.h: Likewise.
15828         * config/h8300/h8300-protos.h: Likewise.
15829         * config/h8300/h8300.c: Likewise.
15830         * config/h8300/h8300.h: Likewise.
15831         * config/h8300/h8300.md: Likewise.
15832
15833 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15834
15835         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
15836         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
15837         ultrix_unistd): New hacks.
15838         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
15839         ULTRIX_CONST2_CHECK): Add checks.
15840         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
15841         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
15842         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
15843         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
15844         * fixinc/tests/base/locale.h: New file.
15845         * fixinc/fixincl.x: Rebuilt.
15846
15847 2004-01-21  Andreas Jaeger  <aj@suse.de>
15848             Michael Matz  <matz@suse.de>
15849
15850         * doc/extend.texi (Extended Asm): Clarify memory clobber.
15851
15852 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15853
15854         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
15855         _Jv_RegisterClasses through a function pointer.
15856
15857 2004-01-21  Falk Hueffner  <falk@debian.org>
15858
15859         PR target/12898
15860         * config/alpha/alpha.c (alpha_emit_set_const_1): If
15861         no_new_pseudos, use gen_rtx_SET directly for SImode constants
15862         which need multiple instructions to emit.
15863
15864 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
15865
15866         * config/m32r/m32r.h (CPP_SPEC): Define.
15867
15868 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
15869
15870         * c-decl.c (merge_decls): Kill different_binding_level and
15871         different_tu arguments; simplify throughout.
15872         (duplicate_decls): Likewise.
15873         (pushdecl, merge_translation_unit_decls): Update calls to
15874         duplicate_decls.
15875
15876 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15877
15878         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
15879         $(SYSTEM_H).
15880         (print-rtl1.o): Depend on $(SYSTEM_H).
15881
15882 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
15883
15884         PR bootstrap/12730
15885         * configure.ac: Delete definition and subsitution of docdir.
15886         Add info, man, srcman and srcinfo to target hooks. Create doc/
15887         directory.
15888         * configure: Regenerate.
15889         * Makefile.in: Don't substitute docdir and delete all references
15890         throughout.
15891         (MAKEINFOFLAGS): Define.
15892         (stmp-docobjdir): Delete.
15893         (INFOFILES, MANFILES): Define.
15894         (info): Call lang.info, srcinfo and lang.srcinfo.
15895         (generated-manpages): Call lang.man, srcman and lang.srcman.
15896         (srcinfo, srcman): New rules to copy back files to source directory.
15897         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
15898         (install-man): Revamp rule.
15899         (clean): Update dvi directory.
15900         (distclean): Delete TAGS from front end directorys.
15901         (maintainer-clean): Delete all document files in source directory.
15902
15903         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
15904         (objc.srcman, objc.srcinfo): Likewise.
15905
15906 2004-01-20  Bruce Korb  <bkorb@gnu.org>
15907
15908         * fixinc/inclhack.def(math_exception): bypass only for glibc.
15909         (matherr_decl): rename & relocate as exception_structure.
15910         This fix must precede the math_exception fix.
15911
15912 2004-01-20  Roger Sayle  <roger@eyesopen.com>
15913
15914         * fold-const.c (fold_convert): Rename to fold_convert_const.
15915         (fold_convert_const): Change arguments to take a tree_code,
15916         a type and the operand/expression to be converted.  Return
15917         NULL_TREE if no simplification is possible.  Add support for
15918         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
15919         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
15920         Adjust call to fold_convert to match new fold_convert_const.
15921         Avoid modifying the tree passed to fold in-place.
15922
15923 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
15924
15925         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
15926         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
15927         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
15928
15929 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15930
15931         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
15932         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
15933         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
15934         (emit_move_sequence): Check scratch_reg first in various if statements.
15935         Extend source simplification to handle all 64-bit CONST_INTs.
15936         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
15937         frame size.
15938         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
15939         frame offset calculations.
15940         * pa.h (NEW_HP_ASSEMBLER): Add comment.
15941         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
15942         LEGITIMATE_64BIT_CONST_INT_P): Define.
15943         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
15944         any CONST_INT as legitimate during and after reload.
15945         (VAL_32_BITS_P, INT_32_BITS): Define.
15946         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
15947
15948 2004-01-20  Jan Hubicka  <jh@suse.cz>
15949
15950         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
15951         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
15952         containing hard regs are shared.
15953         (gen_hard_reg_clobber): New function.
15954         (hard_reg_clobbers): New array.
15955         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
15956         (copy_rtx): Do not copy clobbers containing hard regs.
15957         * rtl.h (gen_hard_reg_clobber): Declare.
15958
15959 2004-01-20  Jan Hubicka  <jh@suse.cz>
15960
15961         * varray.c:  Include hashtab.h
15962         (varray_descriptor): New structure.
15963         (hash_descriptor, eq_descriptor, varray_descriptor,
15964         print_statistics): New static functions
15965         (varray_init, varray_grow): Update statistics
15966         (dump_varray_statistics): New function.
15967         * varray.h (dump_varray_statistics): Declare.
15968         * toplev.c (finalize): Call it.
15969         * Makefile.in (varray.o): Add dependency.
15970
15971 2004-01-20  Jan Hubicka  <jh@suse.cz>
15972
15973         * cselib.c: Include alloc-pool.h
15974         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
15975         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
15976         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
15977         unchain_one_elt_loc_list_pool, unchain_one_value,
15978         new_cselib_val): Simplify using allocpool.
15979         (cselib_init): Initialize allocpools.
15980         (cselib_finish): Finish allocpools.
15981         * Makefile.in (cselib.o): Depend on alloc-pool.h
15982
15983 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
15984
15985         * config/mips/mips.c (mips_load_call_address): Make the call insn
15986         use $gp if it could be calling a lazy binding stub.
15987
15988 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15989
15990         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
15991         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15992         (TARGET_STRUCT_VALUE_RTX): Likewise.
15993         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
15994         (PROMOTE_FUNCTION_RETURN): Remove.
15995         (STRUCT_VALUE): Remove.
15996
15997 2004-01-20  Denis Chertykov  <denisc@overta.ru>
15998
15999         PR bootstrap/13735
16000         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16001         register as pointer after reload.
16002
16003 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16004
16005         PR optimization/12440
16006         * loop.c: Include ggc.h.
16007         (loop_optimize): Run garbage collector between optimization of loops.
16008         * Makefile.in (loop.o): Add GGC_H dependency.
16009
16010 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16011
16012         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16013         vector register special in function without prototype.
16014         (function_arg_advance): Vector parameters get always
16015         GPRs allocated for the linux64 target.
16016
16017 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16018
16019         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16020         not TARGET_M32RX_MASK.
16021
16022 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16023
16024         PR target/13557
16025         * config/sparc/sparc.c (function_arg): Reorder the cases.
16026
16027 2004-01-19  Per Bothner  <per@bothner.com>
16028
16029         Move cpp_reader's line_maps field to a shared global.
16030         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16031         and change the type to a pointer rather than a struct.
16032         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16033         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16034         Likewise.
16035         * cppfiles.c (validate_pch):  Likewise.
16036         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16037         Likewise.
16038         * cpperror.c (print_location):  Likewise.
16039         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16040         * cppinit.c (cpp_create_reader):  Handle new parameter.
16041         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16042         * input.h (line_table):  New variable.
16043         * toplev.c (line_table):  Declare variable.
16044         (general_init):  Initialize line_table.
16045         * c-opts.c (c_common_init_options):  Pass line_table to
16046         cpp_create_reader.
16047         * fix-header.c (read_scan_file):  New local variable line_table.
16048         Initialize, and pass it to cpp_create_reader.
16049         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16050         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16051
16052 2004-01-19  Per Bothner  <per@bothner.com>
16053
16054         Implement a cache for linemap_lookup.
16055         * line-map.h (struct_line_maps):  Add cache field.
16056         * line-map.c (linemap_init):  Zero cache field.
16057         (linemap_add):  Set cache field to offset of newly allocated map.
16058         (linemap_lookup):  Use and set cache field.
16059
16060 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16061
16062         PR optimization/13567
16063         * cse.c (cse_basic_block): Call cse_insn with a non-null
16064         libcall_insn for the last SET insn of a no-confilict block.
16065
16066 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16067
16068         * Makefile.in (target_noncanonical, program_transform_name): Use
16069         immediate define instead of deferred.
16070         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16071         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16072         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16073         deferred backquote.
16074
16075 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16076
16077         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16078         true unconditionally.
16079         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16080         Remove.
16081         (build_unary_op, build_modify_expr): Don't handle extended
16082         lvalues.
16083         (build_component_ref, build_conditional_expr): Call non_lvalue
16084         instead of pedantic_non_lvalue.
16085         (build_c_cast): Don't condition use of non_lvalue on pedantic.
16086         * fold-const.c (fold): Don't check pedantic directly for
16087         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
16088         passed to pedantic_non_lvalue.
16089         * doc/extend.texi: Remove documentation of extended lvalues.
16090
16091 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16092
16093         PR optimization/5263
16094         * simplify-rtx.c (associative_constant_p): Delete.
16095         (simplify_associative_operation): Rewrite to linearize terms, and
16096         attempt to simplify new term against both left and right subterms.
16097         (simplify_binary_operation): Call swap_commutative_operands_p on
16098         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16099         trueop0 and trueop1 down to where first needed.
16100         (simplify_relational_operation): Likewise.
16101         * rtlanal.c (commutative_operand_precedence): Also order constant
16102         operands using avoid_constant_pool_reference.
16103
16104 2004-01-19  Richard Henderson  <rth@redhat.com>
16105
16106         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16107         don't check memory mode.
16108         (unaligned_memory_operand): Likewise.
16109         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16110         abort for op0 not MEM.
16111
16112         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16113         is not a reg, copy to a scratch first.
16114         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16115         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16116         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16117         (reload_inqi, reload_inhi): Fix mode of op0.
16118         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16119         reload_outhi_help): Likewise.  Use define_insn_and_split.
16120
16121         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16122         as well as $29 dead.
16123
16124 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16125
16126         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16127         "tls_object" for thread-local objects.
16128         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16129         "#tls" for thread-local sections.
16130         * configure.ac (thread-local checks): Specify --fatal-warnings in
16131         every binutils-specific checks.  For sparc*-*-*, test whether the
16132         OS is Solaris and the tools are native and act accordingly.
16133         * configure: Rebuild.
16134
16135 2004-01-19  Jeff Law  <law@redhat.com>
16136
16137         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16138         Jerry Quinn and Petur Runolfsson.
16139
16140 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16141
16142         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16143         size, don't use the larger zero-extending loads.
16144
16145 2004-01-19  Richard Henderson  <rth@redhat.com>
16146
16147         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16148         * alpha.md (UNSPEC_NT_LDA): Remove.
16149         (UNSPEC_CVTLQ, cvtlq): New.
16150         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16151         (extendsidi2_fix): Remove.
16152         (extendsidi2 splitter): Use cvtlq.
16153         (extendsidi2 fp peepholes): Remove.
16154         (cvtql): Use SFmode instead of SImode.
16155         (fix_trunc?fsi): Update to match.
16156         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16157         (movsi): Rename from movsi_nofix, remove f alternatives.
16158         (movsi_nt_vms): Similarly.
16159         (movsi_fix, movsi_nt_vms_fix): Remove.
16160         (nt_lda): Remove.
16161         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16162
16163 2004-01-19  Jan Hubicka  <jh@suse.cz>
16164
16165         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16166         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16167         list.
16168         (cgraph_remove_unreachable_nodes): New function
16169         (cgraph_decide_inlining_of_small_function): Fix pasto.
16170         (cgraph_decide_inlining_incrementally): Fix pasto.
16171         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16172
16173 2004-01-19  Steven Bosscher  <stevenb@suse.de>
16174
16175         * gengtype.c (header_file): Make it static.
16176         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16177         * gengtype.h (header_file): No longer extern.
16178
16179 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16180
16181         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16182         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16183         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16184
16185 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16186
16187         * stmt.c (HAVE_casesi): Define it not already defined.
16188         (HAVE_tablejump): Likewise.
16189         (expand_end_case_type): Resort to the binary tree method if
16190         neither casesi or tablejump is available.
16191
16192 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
16193
16194         * final.c (final_scan_insn): Make non-static again.
16195         * output.h (final_scan_insn): Re-add prototype.
16196         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16197         to final_scan_insn call.
16198         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16199         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16200         * config/pa/pa.c (output_lbranch, output_call): Likewise.
16201         * config/sh/sh.c (print_slot): Likewise.
16202         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16203         (output_sibcall, sparc_flat_function_epilogue): Likewise.
16204
16205 2004-01-18  Jan Hubicka  <jh@suse.cz>
16206
16207         * basic-block.h (try_redirect_by_replacing_jump): Declare.
16208         * cfgcleanup.c (try_optimize_cfg): Use it.
16209         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16210         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16211         Kill hack.
16212         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16213
16214         Revert:
16215         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16216
16217                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16218                 even after reload, just don't remove the actual jump tables.
16219
16220 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16221
16222         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16223
16224 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16225
16226         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16227         the size of a pointer in bytes.
16228
16229 2004-01-18  Roger Sayle  <roger@eyesopen.com>
16230
16231         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16232         live "next" variable, which could lead to an infinite loop.
16233
16234 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16235
16236         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16237         block.
16238
16239         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16240         Check for NULL in the chain and remove repeated code.
16241
16242 2004-01-18  Jan Hubicka  <jh@suse.cz>
16243
16244         * coverage.c (checksum_string): Rename to ...
16245         (coverage_checksum_string): ... this one, Use crc32_string; recognize
16246         names containing random number and zero the number out in order to get
16247         match.
16248
16249 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16250
16251         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16252
16253 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16254
16255         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16256         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16257         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16258         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16259         doc/trouble.texi: Remove trailing whitespace.
16260
16261 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16262
16263         PR target/7618
16264         * config/mips/mips.c: Include cfglayout.h.
16265         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16266         (mips_unspec_offset_high): Add temporary register argument.
16267         (mips_load_call_address): New function, split out from...
16268         (mips_expand_call): ...here.
16269         (mips_output_cplocal): New function.
16270         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16271         (mips_emit_loadgp): New function, split out from...
16272         (mips_expand_prologue): ...here.
16273         (mips_output_mi_thunk): New function.
16274
16275 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
16276
16277         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16278         mcpu32): Remove redundant checks for implied target predefines.
16279
16280 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
16281
16282         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16283         Return type is unsigned int not int.
16284         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16285         Likewise.
16286
16287 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16288
16289         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16290         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16291         "GNU/Linux" and "Microsoft Windows" terminology.
16292
16293 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16294
16295         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16296         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16297         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16298         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16299         @smallexample instead of @example.
16300
16301 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
16302
16303         * objc/objc-act.c (build_objc_method_call): Use target
16304         hooks instead of macros to determine if ..._stret
16305         dispatchers should be used (NeXT runtime only).
16306
16307 2004-01-17  Roger Sayle  <roger@eyesopen.com>
16308
16309         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16310         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16311
16312 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16313
16314         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16315         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16316         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16317         macros.
16318         * reload1.c (emit_reload_insns): Use them.
16319         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16320         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16321         for NULL PATTERN.
16322
16323 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16324
16325         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16326         (final_scan_insn): Update to take an additional SEEN argument.  Emit
16327         a line note after the prologue.  Make static.
16328         (line_note_exists): Remove.
16329         (final): Don't initialize line_note_exists.  Update call to
16330         final_scan_insn.
16331         * output.h (final_scan_insn): Remove prologue.
16332         * function.c (set_insn_locators): Update comment.
16333         (thread_prologue_and_epilogue_insns): Add a comment.
16334
16335 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
16336
16337         PR target/10781
16338         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16339         Prototype.
16340         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16341         New function.
16342         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16343         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16344         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16345
16346 2004-01-17  Jan Hubicka  <jh@suse.cz>
16347
16348         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16349         commit.
16350
16351         * toplev.c (HAVE_conditional_execution): Provide default.
16352         (rest_of_handle_reorder_blocks): For conditional_execution target
16353         update liveness once after all transformations
16354         (rest_of_compilation): Do crossjumping before ce3.
16355
16356 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
16357
16358         * alias.c (new_alias_set): Mark last_alias_set for PCH.
16359         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16360         for PCH.
16361         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16362         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16363         (get_TOC_alias_set): Mark 'set' for PCH.
16364
16365 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16366
16367         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16368         even after reload, just don't remove the actual jump tables.
16369
16370 2004-01-17  J. Brobecker  <brobecker@gnat.com>
16371
16372         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16373         Remove checks for is_ada() and TREE_UNSIGNED.
16374         (subrange_type_die): Emit a byte_size attribute if the subrange
16375         type size is different from the base type size.
16376         (modified_type_die): Replace call to is_ada_subrange_type() by
16377         call to is_subrange_type().
16378
16379 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
16380
16381         * config/sh/sh.c: Include ggc.h.
16382
16383 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16384
16385         * Makefile.in (MD5_H): New.
16386         (fold-const.o): Depend on md5.h.
16387         (dwarf2out.o): Likewise.
16388         (cppfiles.o): Likewise.
16389         * cppfiles.c: Include md5.h.
16390         (should_stack_file): Check against list read from PCH file.
16391         (struct pchf_data): New.
16392         (pchf): New variable.
16393         (struct pchf_adder_info): New.
16394         (pchf_adder): New.
16395         (pchf_save_compare): New.
16396         (_cpp_save_file_entries): New.
16397         (_cpp_read_file_entries): New.
16398         (struct pchf_compare_data): New.
16399         (pchf_compare): New.
16400         (check_file_against_entries): New.
16401         * cpphash.h (_cpp_save_file_entries): Prototype.
16402         (_cpp_read_file_entries): Prototype.
16403         * cpppch.c (cpp_write_pch_state): Write the list of headers.
16404         (cpp_read_state): Read the list of headers.
16405
16406 2004-01-17  Jan Hubicka  <jh@suse.cz>
16407
16408         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16409         builtin_expect specially.
16410         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16411         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16412         * invoke.texi (max-inline-insns-single): Set to 100.
16413         (large-function-insns): Set to 3000.
16414
16415 2004-01-16  Eric Christopher  <echristo@redhat.com>
16416             Chandrakala Chavva <cchavva@redhat.com>
16417
16418         * cppcharset.c (one_iso88591_to_utf8): New function.
16419         (convert_iso88591_utf8): Ditto. Use.
16420         (conversion_tab): Use.
16421         (_cpp_input_to_utf8): New function.
16422         (_cpp_init_iconv_buffer): Ditto.
16423         (_cpp_close_iconv_buffer): Ditto.
16424         * cpphash.h: Prototype new functions.
16425         (cpp_buffer): Add input_cset_desc.
16426         * cppinit.c: Add input_charset default.
16427         * cpplib.c (cpp_push_buffer): Support init and
16428         close of iconv.
16429         * cpplib.h (cpp_options): Add input_charset.
16430
16431 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16432
16433         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16434         * config/alpha/unicosmk.h: Remove a commented-out definition
16435         of ASM_OUTPUT_SECTION_NAME.
16436         * config/stormy16/stormy16.h: Likewise.
16437
16438 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16439
16440         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16441         (alpha___extern_prefix_sys_stat): ... this.
16442         Apply to <sys/mount.h>, too.
16443         Tweak to match more variations.
16444         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16445
16446         * fixinc/inclhack.def (alpha___extern_prefix,
16447         alpha___extern_prefix_standards): New hacks to obey
16448         __PRAGMA_EXTERN_PREFIX.
16449         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16450         test.
16451         * fixinc/tests/base/standards.h: Likewise.
16452
16453         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16454         variations.
16455         New testcase.
16456         * fixinc/tests/base/pthread.h: Handle it.
16457
16458         * fixincl/inclhack.def (bad_lval): Sort file list.
16459         Add many missing files up to Tru64 UNIX V5.1B.
16460         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
16461         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
16462         order.
16463
16464         * fixinc/fixincl.x: Regenerate.
16465
16466 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
16467
16468         * version.c (version_string): Change to 3.5.0.
16469         * doc/include/gcc-common.texi (version-GCC): Likewise.
16470
16471 2004-01-16  Jan Hubicka  <jh@suse.cz>
16472
16473         * i386.md (load_tp_di): Fix pasto.
16474
16475         PR opt/13608
16476         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
16477
16478         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
16479         pp_c_character_constant, pp_c_floating_constant,
16480         pp_c_additive_expression, pp_c_shift_expression,
16481         pp_c_equality_expression, pp_c_and_expression,
16482         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
16483         pp_c_logical_and_expression): Remove inline modifier.
16484         * dwarf2out.c (get_AT): Likewise.
16485         * et-forest.c (et_splay): Likewise.
16486         * ra.h (ra_alloc, ra_calloc): Likewise
16487
16488 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16489
16490         * config/frv/frv-protos.h: Fix comment formatting.
16491         * config/frv/frv.c: Likewise.
16492         * config/frv/frv.h: Likewise.
16493         * config/frv/frv.md: Likewise.
16494         * config/frv/frvbegin.c: Likewise.
16495         * config/frv/frvend.c: Likewise.
16496
16497 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16498
16499         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
16500         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
16501         LINKER_DOES_NOT_WORK_WITH_DWARF2.
16502         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
16503
16504 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
16505
16506         PR 11864
16507         * postreload.c (reload_cse_simplify_operands): Don't remove
16508         implicit extension from LOAD_EXTEND_OP.
16509
16510 2004-01-16  Jan Hubicka  <jh@suse.cz>
16511
16512         PR opt/11350
16513         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
16514         after reload.
16515         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
16516         rtl_try_redirect_by_replacing_branch): Likewise.
16517
16518 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
16519
16520         PR pch/13689
16521         * alias.c (struct alias_set_entry): Mark for GC.
16522         (alias_sets): Make static, mark for GC.
16523         (record_alias_subset): Use GC to allocate alias structures.
16524         * varray.c (element): Make generic varrays GCed.
16525
16526         PR pch/13361
16527         * c-typeck.c (constructor_asmspec): Delete.
16528         (struct initializer_stack): Delete field 'asmspec'.
16529         (start_init): Delete saving of asmspec.
16530         (finish_init): Don't update constructor_asmspec.
16531         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16532         * stmt.c (expand_asm): Duplicate strings from tree.
16533         (expand_asm_operands): Likewise.
16534         * tree.c (tree_size): Update computation of size of STRING_CST.
16535         (make_node): Don't make STRING_CST nodes.
16536         (build_string): Allocate string with tree node.
16537         * tree.def (STRING_CST): Update comment.
16538         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16539         (tree_string): Place contents of string in tree node.
16540         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16541         from tree.
16542
16543         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
16544         altivec operands.
16545
16546 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16547
16548         * c-common.h: Fix comment formatting.
16549         * c-cppbuiltin.c: Likewise.
16550         * c-pragma.c: Likewise.
16551         * calls.c: Likewise.
16552         * collect2.c: Likewise.
16553         * cppcharset.c: Likewise.
16554         * cpptrad.c: Likewise.
16555         * dbxout.c: Likewise.
16556         * defaults.h: Likewise.
16557         * dwarf2out.c: Likewise.
16558         * fold-const.c: Likewise.
16559         * genautomata.c: Likewise.
16560         * genconditions.c: Likewise.
16561         * genflags.c: Likewise.
16562         * gengtype.c: Likewise.
16563         * integrate.c: Likewise.
16564         * loop.c: Likewise.
16565         * predict.c: Likewise.
16566         * sdbout.c: Likewise.
16567
16568 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
16569
16570         * config/ia64/ia64.md (*movti_internal): C output template
16571         extracted to ia64.c.
16572         (*movti_internal_reg): Delete.
16573         (reload_inti, reload_outti): Use the correct mode on operand 2
16574         in the first place, don't fix it up in the output template.
16575         (movtf, reload_ointf, reload_outtf): New expanders.
16576         (*movtf_internal): New define_insn_and_split.
16577         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
16578         make static; do not hand TFmode CONST_DOUBLEs to split_double.
16579         (ia64_split_tmode_move): New function, body mostly pulled
16580         from ia64.md:*movti_internal.
16581         (ia64_function_arg_words): New function, extracted common
16582         logic from ia64_function_arg et seq.
16583         (ia64_function_arg_offset): Likewise.  Handle correctly the
16584         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
16585         (ia64_function_arg, ia64_function_arg_partial_nregs)
16586         (ia64_function_arg_advance): Use ia64_function_arg_words and
16587         ia64_function_arg_offset.
16588         (ia64_function_value): TCmode does not go in float regs.
16589         (ia64_secondary_reload_class): Also handle TFmode.
16590         * config/ia64/ia64-protos.h: Remove prototype for
16591         ia64_split_timode; add prototype for ia64_split_tmode_move.
16592
16593 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16594
16595         * Makefile.in (MAINT): Make it an immediate assignment.
16596
16597 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16598
16599         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
16600
16601 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16602
16603         * config/h8300/coff.h: Replace Hitachi with Renesas.
16604         * config/h8300/elf.h: Likewise.
16605         * config/h8300/h8300-protos.h: Likewise.
16606         * config/h8300/h8300.c: Likewise.
16607         * config/h8300/h8300.h: Likewise.
16608         * config/h8300/h8300.md: Likewise.
16609         * config/h8300/lib1funcs.asm: Likewise.
16610
16611 2004-01-15  Andrew Pinski  <apinski@apple.com>
16612
16613         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
16614         around it.
16615
16616 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16617
16618         * config/h8300/h8300.c (h8300_return_in_memory): New.
16619         (TARGET_STRUCT_VALUE_RTX): Likewise.
16620         (TARGET_RETURN_IN_MEMORY): Likewise.
16621         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
16622         (RETURN_IN_MEMORY): Likewise.
16623
16624 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16625
16626         PR optimization/13375
16627         * gcse.c (handle_avail_expr): Just return if the source is not a
16628         single set.
16629
16630 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16631             Daniel Jacobowitz  <drow@mvista.com>
16632
16633         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
16634         (EQUIV): Define.
16635         (ARM_FUNC_ALIAS): New macro.
16636         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
16637         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
16638
16639 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16640
16641         PR optimization/12372
16642         * calls.c (expand_call): Add call_fusage data for stack arguments in
16643         constant calls.
16644
16645 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
16646
16647         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
16648         (rs6000_elf_declare_function_name): Formatting.
16649         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
16650
16651 2004-01-15  Jan Hubicka  <jh@suse.cz>
16652
16653         PR bootstrap/13692
16654         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
16655         previous patch.
16656
16657 2004-01-15  Richard Henderson  <rth@redhat.com>
16658
16659         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
16660         integer regs of the same call-savedness.
16661
16662 2004-01-15  Andreas Schwab  <schwab@suse.de>
16663
16664         PR bootstrap/13562
16665         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
16666         status for NOTB/NOTW/NEGW methods.
16667
16668 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16669
16670         * doc/invoke.texi: Update dump file names.  Fix a typo.
16671
16672 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16673
16674         * builtins.c (expand_builtin_va_end): Don't use
16675         EXPAND_BUILTIN_VA_END.
16676         * system.h (EXPAND_BUILTIN_VA_END): Poison.
16677         * config/d30v/d30v.h: Remove a commented-out definition of
16678         EXPAND_BUILTIN_VA_END.
16679         * config/stormy16/stormy16.h: Likewise.
16680
16681 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16682
16683         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
16684         * targhooks.c (default_struct_value_rtx): Don't use
16685         STRUCT_VALUE_INCOMING_REGNUM.
16686
16687 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16688
16689         PR bootstrap/12744
16690         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
16691         GENINSRC and not parsedir.  Define srcextra as a langhook.
16692         * configure: Regenerate.
16693         * Makefile.in: Suppress default .l.c rule.  Don't substitute
16694         parsedir and delete all references throughout.  Conditionally define
16695         rule for srcextra dependent on GENINSRC.
16696         (stmp-docobjdir): Delete.
16697         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
16698         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
16699         and gengtype-yacc.h back to source directory.
16700         (maintainer-clean): Delete all parse files in source directory.
16701         (distclean): Delete generated files.
16702
16703         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
16704         (objc-parse.c, objc-parse.y): Don't use parsedir.
16705         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
16706         directory if requested.
16707         (po-generated): Don't use parsedir.
16708         (objc.maintainer-clean): Delete above files from source directory.
16709
16710 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16711
16712         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
16713
16714 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16715
16716         * doc/tm.texi: Replace RETURN_IN_MEMORY with
16717         TARGET_RETURN_IN_MEMORY.
16718
16719 2004-01-15  Jan Hubicka  <jh@suse.cz>
16720
16721         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
16722         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
16723         functions accepting SSE arguments
16724         (function_arg): Warn only when asked to warn.
16725         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
16726
16727 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
16728
16729         * c-parse.in (stmts_and_decls): Make label at end of compound
16730         statement a hard error.
16731
16732 2004-01-14  Jan Hubicka  <jh@suse.cz>
16733
16734         * cgraph.c (create_edge): Use local.redefined_extern_inline.
16735         * cgraph.h (cgraph_local_info): Sort fields by size; add
16736         redefined_extern_inline
16737         (cgraph_global_info): Sort fields by size.
16738         (cgraph_node): Likewise.
16739         * cgraphunit.c (cgraph_finalize_function): Se
16740         local.redefined_extern_inline on redefinition.
16741         (cgraph_analyze_function): Use it; fix formating.
16742
16743 2004-01-14  Jan Hubicka  <jh@suse.cz>
16744
16745         PR c++/10776
16746         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
16747         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
16748         bitmaps
16749         (cache_size): New variable
16750         (add_dependence): Update use; canonize early memory locations
16751         (sched_analyze_1): Likewise.
16752         (sched_analyze_2): Likewise.
16753         (init_dependency_caches): Initialize bitmaps.
16754         (free_dependency_caches): Free bitmaps
16755
16756 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16757
16758         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
16759         targetm.calls.strict_argument_naming().
16760         * target.h: Likewise.
16761
16762 2004-01-14  Richard Henderson  <rth@redhat.com>
16763
16764         PR debug/13231
16765         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
16766         instructions.
16767
16768 2004-01-14  Richard Henderson  <rth@redhat.com>
16769
16770         PR c++/12491
16771         * except.c (struct eh_region): Add u.fixup.resolved.
16772         (resolve_one_fixup_region): Split out from ...
16773         (resolve_fixup_regions): ... here.
16774
16775 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16776
16777         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
16778
16779 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16780
16781         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
16782         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
16783         (STRUCT_VALUE): Remove.
16784
16785 2004-01-14  Steven Bosscher  <stevenb@suse.de>
16786
16787         * system.h: Poison PROMOTED_MODE
16788         * integrate.c (expand_inline_function): Don't mention the
16789         PROMOTED_MODE.
16790         * loop.c (update_giv_derive): Same.
16791         * tree.h (DECL_RTL): Same.
16792
16793 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
16794
16795         PR target/9365
16796         * sh.c (gen_block_redirect): Add special handling of RETURN.
16797         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
16798         far branch target (i.e. it's a return).
16799
16800 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16801
16802         * regrename.c (find_oldest_value_reg): Fix a warning.
16803
16804 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
16805
16806         PR bootstrap/12527
16807         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
16808         Move linux-gas.h and linux-elf.h before aout.h.
16809         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
16810         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
16811
16812 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16813
16814         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
16815         (CONST_INT, VOIDmode, ...).
16816
16817 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
16818
16819         * regrename.c (find_oldest_value_reg): If the replacement uses
16820         multiple hard registers, check that all of them are in CLASS.
16821
16822 2004-01-14  Jan Hubicka  <jh@suse.cz>
16823
16824         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
16825         impossible.
16826
16827 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
16828
16829         * Makefile.in: Define MAINT from --enable-maintainer-mode.
16830
16831 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
16832
16833         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
16834         Calculate always vrsave_mask if TARGET_ALTIVEC.
16835         (rs6000_emit_prologue): Emit code for vrsave
16836         only if TARGET_ALTIVEC_VRSAVE.
16837         (rs6000_emit_epilogue): Likewise.
16838
16839 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
16840
16841         * config/sparc/sparc.md (tie_add32): Fix pasto.
16842         (tie_add64): Likewise.
16843
16844 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16845
16846         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
16847
16848 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16849
16850         * config/iq2000/iq2000-protos.h: Fix comment formatting.
16851         * config/iq2000/iq2000.c: Likewise.
16852         * config/iq2000/iq2000.md: Likewise.
16853
16854 2004-01-14  J. Brobecker  <brobecker@gnat.com>
16855
16856         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
16857         (subrange_type_die): Add handle for nameless subrange types.
16858
16859 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16860
16861         * config/h8300/h8300-protos.h: Replace do_movsi with
16862         h8300_expand_movsi.
16863         * config/h8300/h8300.c (do_movsi): Change to
16864         h8300_expand_movsi.
16865         * config/h8300/h8300.md (movsi): Replace do_movsi with
16866         h8300_expand_movsi.
16867         (movsf): Likewise.
16868
16869 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16870
16871         * config/h8300/h8300.c (dosize): Change to
16872         h8300_emit_stack_adjustment.  Update callers.
16873
16874 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16875
16876         * config/h8300/h8300.md (movstrictqi): Add an alternative with
16877         the source being post_inc.  Tighten the predicate for the
16878         destination to register_operand.
16879         (movstricthi): Likewise.
16880
16881 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16882
16883         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
16884         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
16885         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
16886
16887 2004-01-14  Jan Hubicka  <jh@suse.cz>
16888
16889         Partial fix PR c++/12850
16890         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
16891         at zero nest level.
16892
16893 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
16894
16895         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
16896         pseudo-register.
16897
16898 2004-01-13  Devang Patel <dpatel@apple.com
16899
16900         PR debug/7078
16901         * dbxout.c (dbxout_symbol_name): Emit mangled names for
16902         NAMESPACE_DECL memebers.
16903
16904 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
16905
16906         PR c++/12709
16907         * c-common.c (finish_fname_decls): Use the chain only if the
16908         tree is an expr_stmt.
16909
16910 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
16911
16912         * rtl.def: Add comment about new option in automata_option.
16913
16914         * genautomata.c (PROGRESS_OPTION): New macro.
16915         (progress_flag): New global variable.
16916         (gen_automata_option): Process `progress'.
16917         (transform_insn_regexps, check_unit_distributions_to_automata,
16918         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
16919         expand_automata, write_automata): Print about the progress only if
16920         progress_flag.  Remove fflush.
16921         (initiate_automaton_gen): Process command line flag `-progress'.
16922
16923         * doc/md.texi: Describe the new option.
16924
16925 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16926
16927         * cfg.c (dump_bb): Dump entry edges.
16928
16929 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
16930
16931         * arm.c (thumb_legitimate_address_p): Only allow constant pool
16932         references from SImode.
16933         * arm.md (thumb_movhi_insn): Don't allow minipool references.
16934
16935 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16936
16937         * system.h (TEXT_SECTION): Poison.
16938         * varasm.c (text_section): Don't use TEXT_SECTION.
16939         * config/sh/sh.c (sh_file_start): Fix a comment typo.
16940         * doc/tm.texi (TEXT_SECTION): Remove.
16941
16942 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
16943
16944         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
16945
16946 2004-01-12  James E Wilson  <wilson@specifixinc.com>
16947
16948         * unwind-libunwind.c: Delete.
16949
16950 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
16951
16952         PR 13656
16953         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
16954         oldtype is set, set *newtypep or *oldtypep too.  Do not set
16955         them at the very end.
16956         (validate_proto_after_old_defn): Restructure for comprehensibility;
16957         make error messages clearer.
16958
16959 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
16960
16961         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
16962         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
16963         * varray.c: No need to prototype error.
16964         (varray_check_failed): Wrap long string onto two lines.
16965         (varray_underflow): New function.
16966
16967 2004-01-13  Steven Bosscher  <stevenb@suse.de>
16968
16969         PR c++/13376
16970         * function.h (struct function): Kill `name' field.
16971         (current_function_name): Make it an extern function.
16972         * function.c (current_function_name): New function.
16973         * graph.c: Update all uses of current_function_name.
16974         * gcse.c: Likewise.
16975         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
16976         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
16977         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
16978         instead of a strcmp with "main".
16979
16980 2004-01-13  Jan Hubicka  <jh@suse.cz>
16981
16982         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
16983
16984         * cgraphunit.c (cgraph_optimize_function):  Always do
16985         optimize_inline_calls when there is always_inline callee.
16986         (cgraph_decide_inlining): Fix formating.
16987         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
16988         functions.
16989         (expand_call_inline): Likewise.
16990         * toplev.h (sorry): Fix prototype.
16991
16992 2004-01-12  Roger Sayle  <roger@eyesopen.com>
16993
16994         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
16995         conditional jumps that drop through to unconditional jumps or the
16996         end of the sequence.
16997
16998 2004-01-13  Jan Hubicka  <jh@suse.cz>
16999
17000         * alias.c (new_alias_set): Construct the alias_set varray.
17001         (init_alias_once): Don't do it here.
17002
17003 2004-01-12  Marc Espie <espie@openbsd.org>
17004
17005         * system.h: handle YYBYACC like YYBISON.
17006
17007 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17008
17009         PR target/10847
17010         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17011         building on sparc64-*-openbsd*.
17012
17013 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17014
17015         PR debug/13539
17016         * dbxout.c (dbxout_type): Protected inheritance is not
17017         private but protected.
17018
17019 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17020
17021         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17022
17023 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17024
17025         PR optimization/12508.
17026         * combine.c (try_combine): Remove a dead set in a parallel
17027         even if its destination is a subreg.
17028
17029         Revert:
17030         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17031         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17032         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17033
17034 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17035
17036         * real.c: Update copyright date.
17037         * emit-rtl.c: Likewise.
17038         * rtl.h: Likewise.
17039         * dwarf2out.c: Likewise.
17040         * config/rs6000/darwin-ldouble.c: Likewise.
17041         * config/rs6000/rs6000.md: Likewise.
17042
17043 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17044
17045         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17046         TFmode to SImode libfuncs.
17047
17048 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17049
17050         PR middle-end/11397
17051         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17052
17053 2004-01-12  Jan Hubicka  <jh@suse.cz>
17054
17055         PR opt/12826
17056         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17057         stored.
17058
17059         PR opt/12863
17060         * cfgcleanup.c (label_is_jump_target_p): Move to...
17061         * rtlanal.c (label_is_jump_target_p): ... here.
17062         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17063         edges unified with branch edges.
17064
17065 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17066
17067         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17068         high word of an integral CONST_DOUBLE.
17069
17070 2004-01-12  Paul Brook  <paul@codesourcery.com>
17071
17072         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17073
17074 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17075
17076         PR target/13585
17077         * sh-protos.h (check_use_sfunc_addr): Declare.
17078         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17079         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17080
17081 2004-01-12  Jan Hubicka  <jh@suse.cz>
17082
17083         * alias.c:  Invlude varray.h
17084         (alias_sets): Turn into varray.
17085         (get_alias_set_entry): Use VARRAY; mark inline.
17086         (mems_in_disjoint_alias_sets_p): Mark inline.
17087         (record_alias_subset): Use varray.
17088         (init_alias_once): Initialize varray.
17089         (new_alias_set): Grow array.
17090         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17091
17092 2004-01-12  Jan Hubicka  <jh@suse.cz>
17093
17094         Partial fix for PR opt/10776 II
17095         * cselib.c: Include params.h
17096         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17097         locations.
17098         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17099         * Makefile.in (cselib.o): Depend on params.h
17100
17101 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17102
17103         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17104         simplify_unary_operation if the operand has a known mode.
17105
17106 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17107
17108         PR target/13534
17109         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17110         predicate to handle 'ld' conform addresses.
17111         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17112         contraint.
17113         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17114         are memory contraints.
17115         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17116         New prototype.
17117         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17118         Change 'o' to 'Y' constraint.
17119         (*movdf_softfloat64): Ditto.
17120
17121 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17122
17123         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17124         brace-enclosed syntax in all C output statements.
17125
17126 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17127
17128         PR target/13401
17129         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17130         Objective-C language type value is 14.
17131
17132 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17133
17134         PR c/12148
17135         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17136         `int' in a number of places to make sure we always have a SImode
17137         and not a HImode.  Add a 'L' suffix to a number of constants.
17138
17139 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17140
17141         * pa.c: Don't include obstack.h.
17142
17143         * pa.md: Correct constraint in pattern for loading PIC label address.
17144
17145 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17146
17147         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17148          before defining.
17149
17150 2004-01-11  Steven Bosscher  <stevenb@suse.de>
17151
17152         PR fortran/9972
17153         * toplev.c (rest_of_handle_inline): Also consider functions
17154         for deferral if the language is GNU F77.
17155
17156 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
17157
17158         * c-decl.c (diagnose_arglist_conflict): Add missing space to
17159         diagnostic messages.
17160
17161 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
17162
17163         PR middle-end/13392
17164         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17165         to drop through label.  Don't fall back to SCC even when conditional
17166         jump has not been found.
17167
17168 2004-01-11  Jan Hubicka  <jh@suse.cz>
17169
17170         * invoke.texi: Fix syntax error in previous patch.
17171
17172         Partial fix for PR opt/10776
17173         * Makefile.in (reload.o): Include param.h
17174         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17175         * reload.c: Include params.h.
17176         (find_equiv_reg): Work limiting check.
17177         * invoke.texi: Document.
17178
17179 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17180
17181         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17182         out-of-bounds accesses to string constants.  Simplify mips16
17183         case accordingly.
17184
17185 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17186
17187         PR optimization/13469
17188         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17189         reload_cse_regs (-fnon-call-exceptions only).
17190
17191 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17192
17193         * config/mcore/lib1.asm: Fix comment formatting.
17194         * config/mcore/mcore-elf.h: Likewise.
17195         * config/mcore/mcore.c: Likewise.
17196         * config/mcore/mcore.h: Likewise.
17197         * config/mcore/mcore.md: Likewise.
17198
17199 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17200
17201         * c-decl.c (duplicate_decls): Break apart into...
17202         (diagnose_arglist_conflict, validate_proto_after_old_defn)
17203         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17204         ... these new functions.  Restructure for comprehensibility.
17205         Remove various archaic special cases.  Always report the
17206         location of the previous declaration when a diagnostic is issued.
17207         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17208         (match_builtin_function_types): Delete unnecessary forward declaration.
17209
17210 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17211
17212         * genautomata.c (make_automaton, NDFA_to_DFA):
17213         Print progress bars with '.' characters instead of '*'.
17214         (build_automaton): Change notes to match.
17215
17216 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17217
17218         * config/m32r/m32r.md: Use define_constants for unspec and
17219         unspec_volatile.
17220
17221 2004-01-10  Jan Hubicka  <jh@suse.cz>
17222
17223         PR opt/11635
17224         * expr.c (expand_expr_real):  More curefully expand union casts.
17225
17226 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17227
17228         * config/m32r/m32r.md (flush_icache): Use 1 for
17229         unspec_volatile.
17230
17231 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
17232             James E Wilson  <wilson@specifixinc.com>
17233
17234         PR debug/12860
17235         * dbxout.c (dbxout_symbol): Remove initialization of
17236         current_sym_code, current_sym_value, and current_sym_addr.
17237         (dbxout_symbol_location): Same.
17238         (dbxout_prepare_symbol): Zero current_sym_code,
17239         current_sym_value, and current_sym_addr.
17240
17241 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
17242
17243         * tree.c (get_unwidened): Reorder conditions so that the null pointer
17244         check is done first.
17245
17246 2004-01-09  Eric Christopher  <echristo@redhat.com>
17247
17248         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17249         if we're running mark_constant_function.
17250
17251 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
17252
17253         PR target/12561
17254         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17255
17256 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
17257
17258         PR debug/11231
17259         * dbxout.c (dbxout_type_fields): Return if any item is
17260         error_mark_node or the type is error_mark_node.
17261
17262 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
17263
17264         * config/rs6000/darwin-ldouble.c: Add big comment explaining
17265         exactly what is expected as a 'long double'.
17266         (_xlqadd): When a value to be returned is representable as a
17267         'double', just return it directly, do not construct it using a union.
17268         Also, correct final fixup.
17269         (_xlqmul): Likewise.
17270         (_xlqdiv): Likewise.
17271         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17272
17273         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17274
17275 2004-01-09  Richard Henderson  <rth@redhat.com>
17276
17277         * recog.c (constrain_operands): Validate mem operands.
17278
17279 2004-01-09   James E Wilson  <wilson@specifixinc.com>
17280
17281         * gcc.c (init_spec): Remove -lunwind from shared case.
17282         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17283
17284 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
17285
17286         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17287         * configure: Regenerate
17288
17289 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
17290
17291         PR c/11234
17292         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17293         between function and object pointers.
17294         (digest_init): When comparing a pointer to function type to the
17295         target type, only apply TREE_TYPE once to the pointer to function
17296         type.
17297         * except.c (for_each_eh_label_1): Treat data as a pointer to a
17298         function pointer rather than casting it to a function pointer.
17299         (for_each_eh_label): Update caller.
17300         * recog.h (struct insn_data): Use a struct or union for output.
17301         * genoutput.c (output_insn_data): Update.
17302         * final.c (get_insn_template): Update.
17303
17304 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17305
17306         * expr.h (expand_expr): Make it a macro, not a function.
17307         (expand_expr_real): New function.
17308         * expr.c (store_expr): Adjust logic for deciding whether or not to
17309         copy the value returned by expand_expr.
17310         (expand_expr): Rename to ...
17311         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
17312         calls to language hooks.
17313         * c-common.h (c_expand_expr): Adjust prototype.
17314         * c-common.c (c_expand_expr): Add alt_rtl parameter.
17315         * langhooks-def.h (lhd_expand_expr): Change prototype.
17316         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17317         * langhooks.h (lang_hooks): Change type of expand_expr.
17318         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17319         (last_expr_alt_rtl): Likewise.
17320         (expand_expr_stmt_value): Set last_expr_alt_rtl.
17321         (clear_last_expr): Clear it.
17322         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17323         (expand_end_bindings): Save and restor last_expr_alt_rtl.
17324         * tree.def (RTL_EXPR): Give it an additional operand.
17325         * tree.h (RTL_EXPR_ALT_RTL): New macro.
17326
17327 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17328
17329         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
17330         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
17331
17332 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17333
17334         PR target/13380.
17335         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17336         or (ne:SI (reg:CC 17) (const_int 0)).
17337         Be specific about modes wherever possible.
17338
17339 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17340
17341         * config/m32r/m32r.c (m32r_expand_block_move): Call
17342         gen_movestrsi_internal with two more arguments.
17343         (m32r_output_block_move): Adjust operand numbers.
17344         Properly update the source and destination pointers.
17345         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17346         'r+'.  Change the set detinations to match_operand.
17347
17348 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17349
17350         * final.c (FIRST_INSN_ADDRESS): Remove.
17351         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17352         * system.h (FIRST_INSN_ADDRESS): Poison.
17353         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17354         * config/m32r/m32r-protos.h: Remove the prototype for
17355         m32r_first_insn_address.
17356         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17357         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17358         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17359
17360 2004-01-09  J. Brobecker  <brobecker@gnat.com>
17361
17362         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17363         we just created.
17364         (is_ada_subrange_type): DIEs for enumeration subtypes should be
17365         emitted as subrange types too.
17366         (subrange_type_die): Add handling of enumeration subtypes.
17367
17368 2004-01-08  Richard Henderson  <rth@redhat.com>
17369
17370         PR opt/12441
17371         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17372         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17373         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17374         (ix86_address_cost): Be prepared for SUBREGed registers.
17375         (legitimate_address_p): Accept SUBREGed registers.
17376
17377 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
17378
17379         * Makefile.in: Rename configure.in to configure.ac
17380         * doc/sourcebuild.texi: Likewise.
17381         * configure: Regenerate.
17382         * config.in: Regenerate.
17383
17384 2004-01-08  Stuart Hastings  <stuart@apple.com>
17385
17386         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17387
17388 2004-01-08  Jan Hubicka  <jh@suse.cz>
17389
17390         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
17391
17392 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
17393
17394         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17395         (UNSPEC_FIX_TRUNC_TF): New constant.
17396         (movtf_internal): Make splitter active only when insn is active.
17397         (extenddftf2): Rewrite to properly load zero into low part.
17398         (extenddftf2_internal): New.
17399         (extendsftf2): Rewrite.
17400         (truncdftf2): Correct length.
17401         (floatditf2): Delete.
17402         (fix_trunc_helper): New.
17403         (fix_trunctfdi2): Use fix_trunc_helper.
17404         (fix_trunctfsi2): Likewise.fix_trunc
17405         (fix_trunctfsi2_internal): New.
17406
17407         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17408         addresses are legitimate on Darwin even when flag_pic.
17409         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17410         non-offsettable addresses for loads of TFmode constants.
17411
17412 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17413
17414         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17415         variables in the appropriate bss section.
17416
17417 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
17418
17419         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17420         target_flags has MASK_POWERPC64 when -m64.
17421         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17422         to 620, 630, power3, power4 and rs64a entries.
17423         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17424
17425 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
17426
17427         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17428         floating-point constants.
17429
17430 2004-01-08  J. Brobecker  <brobecker@gnat.com>
17431
17432         * dwarf2out.c (subrange_type_die): Add context_die parameter.
17433         Create the subrange_type DIE using the given context DIE.
17434         (modified_type_die): Update call to subrange_type_die.
17435
17436 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
17437
17438         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17439         Add multiple-include guard.
17440
17441 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
17442
17443         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17444         all vector constant loadable by vsplt*.
17445         (output_vec_const_move): Likewise.
17446
17447 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17448
17449         PR c/6024
17450         * c-typeck.c (comptypes): Only treat enumerated types in the same
17451         translation unit as compatible with each other when they are the
17452         same type.
17453         * doc/extend.texi: Update.
17454
17455 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17456
17457         PR c/12165
17458         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
17459         array type from the array element type.
17460
17461 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
17462
17463         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
17464         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
17465         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
17466         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
17467         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
17468
17469 2004-01-06  Eric Christopher  <echristo@redhat.com>
17470
17471         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
17472         (DWARF2_DEBUGGING_INFO): Define.
17473         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
17474         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
17475         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
17476         for irix as.
17477         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
17478         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
17479         * config/mips/iris5gas.h: Ditto.
17480         (DBX_DEBUGGING_INFO): Remove.
17481         (DWARF2_DEBUGGING_INFO): Ditto.
17482         (MIPS_DEBUGGING_INFO): Ditto.
17483         (PREFERRED_DEBUGGING_TYPE): Ditto.
17484         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
17485         (PREFERRED_DEBUGGING_TYPE): Ditto.
17486         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
17487         * config/mips/elf64.h: Ditto.
17488
17489 2004-01-06  Jan Hubicka  <jh@suse.cz>
17490
17491         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
17492         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
17493
17494 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
17495
17496         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
17497         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
17498         * config/rs6000/darwin-ldouble.c: New.
17499
17500         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
17501         for constants.
17502         (constant_subword): Delete.
17503         * rtl.h (constant_subword): Delete prototype.
17504         (immed_double_const): Is not in varasm.c.
17505         * simplify-rtx.c (simplify_immed_subreg): New.
17506         (simplify_subreg): Use simplify_immed_subreg.
17507
17508         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
17509         than trying to generate RTL directly.
17510         (fix_trunctfsi2): Use expand_fix rather than trying to generate
17511         RTL directly.
17512
17513         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
17514
17515 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
17516
17517         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
17518         function into a separate macro.
17519         (read_only_data_section): Add void argument.
17520         (private_data_section): Same.
17521         (read_only_private_data_section): Same.
17522         (toc_section): Same.
17523
17524 2004-01-06  Jan Hubicka  <jh@suse.cz>
17525
17526         * invoke.texi:  Remove typo in last change.
17527
17528         PR target/10301
17529         * config.gcc: Accept opteron and athlon-64 as variants
17530         of k8.
17531         * i386.c (override_options): Likewise.
17532         * invoke.texi (i386 -mtune): Expand documentation.
17533
17534 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17535
17536         * alias.c: Fix comment typos.
17537         * builtins.c: Likewise.
17538         * cfg.c: Likewise.
17539         * df.c: Likewise.
17540         * dominance.c: Likewise.
17541         * dwarf2out.c: Likewise.
17542         * emit-rtl.c: Likewise.
17543         * expr.c: Likewise.
17544         * final.c: Likewise.
17545         * fold-const.c: Likewise.
17546         * gcse.c: Likewise.
17547         * genattrtab.c: Likewise.
17548         * genrecog.c: Likewise.
17549         * gensupport.c: Likewise.
17550         * ggc-zone.c: Likewise.
17551         * integrate.c: Likewise.
17552         * local-alloc.c: Likewise.
17553         * loop.c: Likewise.
17554         * recog.c: Likewise.
17555         * regmove.c: Likewise.
17556         * reg-stack.c: Likewise.
17557         * reorg.c: Likewise.
17558         * rtlanal.c: Likewise.
17559         * rtl.h: Likewise.
17560         * sched-ebb.c: Likewise.
17561         * simplify-rtx.c: Likewise.
17562         * toplev.c: Likewise.
17563         * varasm.c: Likewise.
17564
17565 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17566
17567         * doc/install.texi: Fix typos.
17568         * doc/invoke.texi: Likewise.
17569         * doc/md.texi: Likewise.
17570
17571 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17572
17573         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
17574
17575 2004-01-06  Jan Hubicka  <jh@suse.cz>
17576
17577         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
17578         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
17579         of MMX_REGPARM.
17580         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
17581         add MMX_REGPARM.
17582         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
17583         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
17584         (MMX_REGPARM_MAX): Similarly for -mmmx.
17585
17586 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17587
17588         * config/sh/linux.h: Fix comment formatting.
17589         * config/sh/netbsd-elf.h: Likewise.
17590         * config/sh/sh.c: Likewise.
17591         * config/sh/sh.h: Likewise.
17592         * config/sh/vxworks.h: Likewise.
17593
17594 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17595
17596         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
17597         * toplev.c (output_file_directive): Don't use
17598         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
17599
17600 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
17601
17602         * toplev.c: Fix broken checkin of 2003-12-30.
17603
17604 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
17605
17606         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
17607         (USING_MMAP): We don't support non-mmap.
17608         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
17609         large objects.
17610         (struct page_entry): Remove bytes_free.
17611         (struct page_table_chain): Remove.
17612         (struct globals): Remove page_table member.
17613         (loookup_page_table_entry): Function deleted.
17614         (set_page_table_entry): Ditto.
17615         (ggc_allocated_p): No longer need page table lookups.
17616         (ggc_marked_p): Ditto.
17617         (alloc_small_page): Don't care about bytes_free anymore.
17618         (alloc_large_page): Round up size.
17619         (ggc_alloc_zone_1): Mark large objects as such, and calculate
17620         their size the new way.
17621         Remove page table lookups and setting.
17622         (ggc_get_size): Calculate large object size the new way.
17623         (sweep_pages): Redo to account for fact that we no longer have
17624         bytes_free.
17625         (ggc_collect): No longer need to reincrement bytes_free.
17626         (ggc_pch_alloc_object): Handle new large objects properly.
17627         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
17628
17629 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17630
17631         * doc/invoke.texi: Remove a page break.
17632
17633 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17634
17635         * config/avr/avr.c (avr_output_function_prologue): Remove an
17636         extra pair of curly braces.
17637
17638 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17639
17640         * config/mn10300/mn10300.c: Fix comment formatting.
17641         * config/mn10300/mn10300.h: Likewise.
17642
17643 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17644
17645         * tree.h: Update documentation on nothrow_flag.
17646         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
17647         types.
17648
17649 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17650
17651         * doc/invoke.texi: Remove traces of dead ports.
17652
17653 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17654
17655         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
17656         option.
17657
17658 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17659
17660         PR target/12945
17661         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
17662         counter labels.
17663         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
17664         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
17665         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
17666         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
17667         (mips_symbol_insns): Don't trust the local/global classification.
17668         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
17669         (override_options): Make -mabicalls -fno-unit-at-a-time imply
17670         -mno-explicit-relocs.
17671         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
17672         between local and global symbols.
17673
17674 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17675
17676         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
17677         (mips_preferred_reload_class): Declare.
17678         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
17679         (EXTRA_CONSTRAINT): Update accordingly.
17680         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
17681         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
17682         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
17683         mips_dangerous_for_la25_p.
17684         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
17685         if mips_dangerous_for_la25_p.
17686
17687 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
17688
17689         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
17690         warning.
17691
17692 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
17693
17694         * configure.ac: Use AC_PROG_CPP_WERROR.
17695         * configure: Regenerate.
17696
17697 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
17698
17699         * .cvsignore: Add autom4te.cache.
17700
17701 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
17702
17703         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
17704         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
17705         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
17706         then architecture options, then ABI options.  General rewording.
17707
17708 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
17709
17710         PR c/3414
17711         * doc/extend.texi: Clarify definition of malloc attribute.
17712
17713 2004-01-04  Jan Hubicka  <jh@suse.cz>
17714
17715         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
17716         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
17717         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
17718         (cgraph_inline_p): Add extra argument reason.
17719         * cgraphunit.c: Minor formating fixes.
17720         cgraph_first_inlined_callee): New functions.
17721         (record_call_1): Record builtins too.
17722         (cgraph_analyze_function): Update inline_failed messages.
17723         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
17724         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
17725         (cgraph_check_inline_limits): Likewise; Add argument reason.
17726         (cgraph_set_inline_failed): New static function.
17727         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
17728         reasons.
17729         (cgraph_inline_p): Add new argument reason.
17730         * tree-inline.c (expand_call_inline):  Update warning.
17731
17732 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
17733
17734         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
17735         with modern equivalents.
17736         * configure: Regenerate.
17737
17738         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
17739         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
17740         * configure: Regenerate.
17741
17742         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
17743
17744         * configure.in: Rename to configure.ac.
17745         * configure.ac: Renamed from configure.in; make minimum necessary
17746         changes for autoconf 2.5x.
17747         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
17748         * configure: Regenerate with autoconf 2.57.
17749
17750 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
17751
17752         * config/mips/linux.h: Fix comment formatting.
17753         * config/mips/mips.c: Likewise.
17754         * config/mips/mips.h: Likewise.
17755         * config/mips/mips.md: Likewise.
17756         * config/mips/netbsd.h: Likewise.
17757         * config/mips/windiss.h: Likewise.
17758
17759 2004-01-02  Richard Henderson  <rth@redhat.com>
17760
17761         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
17762         for sse and 387; add suppression for mmx.
17763
17764 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
17765
17766         * loop.c (loop_optimize): Free all loops_info's mems.
17767
17768         * c-typeck.c (finish_init): Free spelling_base before
17769         setting it again.
17770
17771         * cfgloop.c (flow_loops_find): Always free the sbitmap
17772         headers.
17773
17774         * predict.c (estimate_probability): Free bbs after being
17775         done with it.
17776
17777 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17778
17779         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
17780         const_8bit_operand and call_address_operand.
17781
17782 2004-01-02  Jan Hubicka  <jh@suse.cz>
17783
17784         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
17785         when there is nothing to inline but warnings are requested.
17786         (cgraph_decide_inlining):  Fix memory leak.
17787
17788 2004-01-02  Jan Hubicka  <jh@suse.cz>
17789
17790         * expr.c (store_constructor):  Fix pasto in previous patch.
17791
17792 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17793
17794         * config/i386/cygming.h: Fix comment formatting.
17795         * config/i386/djgpp.h: Likewise.
17796         * config/i386/gthr-win32.c: Likewise.
17797         * config/i386/i386-interix.h: Likewise.
17798         * config/i386/i386.c: Likewise.
17799         * config/i386/i386.h: Likewise.
17800         * config/i386/openbsd.h: Likewise.
17801         * config/i386/winnt.c: Likewise.
17802         * config/i386/xm-mingw32.h: Likewise.
17803
17804 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
17805
17806         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
17807         copyright and last modification dates.
17808
17809 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
17810
17811         * doc/install.texi (Specific): Mention x86_64.
17812
17813 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
17814
17815         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
17816         Call force_operand on plus_constant result.
17817
17818 2004-01-01  Jan Hubicka  <jh@suse.cz>
17819
17820         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
17821         * expr.c (store_constructor): Use vec_init pattern.
17822         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
17823         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
17824         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
17825         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
17826         New patterns.
17827         (sse2_unpc?pd): Fix pattern.
17828         (sse2_movlpd): Kill.
17829         (sse2_movsd): Deal with movlpd too.
17830         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
17831         (ix86_expand_vector_init): New.
17832         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
17833         * md.texi (vec_set, vec_extract): Document
17834
17835 2003-12-31  Jan Hubicka  <jh@suse.cz>
17836
17837         PR opt/13473
17838         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
17839         ASM input operands
17840
17841         PR opt/12617
17842         * toplev.c (dump_file_index): Reorder ce3 and bbro.
17843         (dump_file): Likewise.
17844         (rest_of_compilation): Likewise.
17845
17846         PR debug/13367
17847         * cgraph.c (cgraph_function_possibly_inlined):  Even with
17848         flag_really_no_inline we inline always_inline functions.
17849         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
17850         for non-always_inline functions when there is flag_really_no_inline.
17851         (cgraph_decide_inlining): Limit work done when not inlining.
17852         (cgraph_decide_inlining_incrementally): Likewise.
17853         (cgraph_optimize_function): Check whether something got inlined.
17854         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
17855         extern inline functions when not inlining.
17856
17857         * opts.c (decode_options):  Disable crossjumping at -O1
17858         * invoke.texi (-O1): Document change.
17859
17860 See ChangeLog.10 for earlier changes.