OSDN Git Service

* longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2
3         * fold-const.c (operand_equal_p): Update comment.
4
5 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
6
7         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
8         (INCOMING_RETURN_ADDR_RTX): Define.
9         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
10         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
11         __builtin_return_address(0).
12         (m32r_return_addr): Added for __builtin_return_address(0).
13         (m32r_reload_lr): Ditto.
14
15         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss. 
16         
17 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
18
19         * doc/install.texi (Prerequisites): Update libbanshee,
20         fastjar, libcpp, libjava/libltdl entries to
21         automake 1.8.5.
22
23 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
24             Olivier Hainque  <hainque@act-europe.fr>
25
26         * function.c (fixup_var_refs): Also adjust the start of sequence
27         after fixing up the insns.
28
29 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
30
31         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
32
33 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
34
35         * doc/install.texi (Prerequisites): Update libstdc++ entry to
36         automake 1.8.5.
37
38 2004-06-14  Eric Christopher  <echristo@redhat.com>
39
40         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
41         to -mtpf-trace (-mno-tpf-trace).
42         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
43         documentation.
44
45 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
46
47         * real.c: Fix bit count in head comment.
48
49 2004-06-14  Jeff Law  <law@redhat.com>
50
51         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
52         PHIs where the destination or an argument is marked with
53         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
54
55 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
56
57         PR middle-end/15945
58         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
59         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
60
61 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
62
63         * opts.sh (var_args): Fix regexp.
64
65 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
66
67         PR target/15178
68         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
69
70 2004-06-14  Paul Brook  <paul@codesourcery.com>
71
72         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
73
74 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
75
76         * Makefile.in (FLAGS_H): New.
77         (flags.h): Replace by FLAGS_H.
78         * c.opt: Document Var, VarExists, Init and Report attributes.
79         * common.opt: Fill the values of the attributes.
80         * diagnostic.c (flag_fatal_errors): Do not define.
81         * except.c (flag_non_call_exceptions): Do not define.
82         * flags.h: Include options.h.  Remove declarations conflicting with
83         the automatically defined ones.
84         * opts.c: Remove automatically defined variables.
85         (handle_option): Perform default initialization.
86         (common_handle_option): Do not handle options covered by the
87         default initialization.
88         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
89         fields.
90         (CL_REPORT): New.
91         * opts.sh: Generate variable declarations, handle CL_REPORT.
92         * toplev.c: Remove automatically defined variables.
93         (f_options): Removed.
94         (print_switch_values): Use cl_options instead of f_options.
95         * toplev.h (version_flag): Declaration removed.
96
97 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
98
99         * config/sparc/sparc.h: Correct comment about availability of
100         little endian option.
101
102         * config.gcc: Remove sparc64-*-aout*.
103         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
104         * config/sparc/sp64-aout.h: Remove.
105         * config/sparc/aout.h: Remove.
106
107 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
108
109         * config/s390/s390.c: Include "tree-gimple.h".
110         (s390_gimplify_va_arg): New function.
111         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
112         (s390_va_arg): Remove.
113         * config/s390/s390-protos.h (s390_va_arg): Remove.
114         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
115
116 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
117
118         * basic-block.h (could_fall_through): Declare.
119         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
120         Fail if the source already has a fallthrough edge to the exit
121         block pointer.
122         (could_fall_through): New function.
123         * cfgbuild.c (make_edges): Check if we already have a fallthrough
124         edge to the exit block pointer.
125         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
126         not called before reload has completed.
127         Handle special case of first block having a fall-through exit edge.
128         (cfg_layout_finalize): Don't call it before reload or if we have
129         rtl epilogues.
130         (fixup_reorder_chain): A fall through to the exit block does not
131         require the block to come last.  Add sanity checks.
132         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
133         edges to the exit block.
134         * function.c (cfglayout.h): #include.
135         (thread_prologue_and_epilogue_insns): If we have neither return nor
136         epilogue, but a fall through to the exit block from mid-function,
137         force a non-fall-through exit.
138         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
139
140 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
141
142         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
143         for power5 and rs64a.  Correct condition for default.  Correct power3,
144         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
145
146 2004-06-13  Steven Bosscher <stevenb@suse.de>
147
148         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
149         Revert previous change, don't use CALL_P.
150
151 2004-06-13  Jason Merrill  <jason@redhat.com>
152
153         * tree.h: Move std_gimplify_va_arg_expr protoype here.
154         * tree-gimple.h: From here.
155
156 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
157
158         Fix PR tree-optimization/15979
159         Fix PR tree-optimization/15981
160         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
161         try to insert values undefined along some path.
162
163 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
164
165         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
166         are available everywhere too.
167
168 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
169
170         * fold-const.c (fold_checksum_tree <case 't'>): Only
171         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
172         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
173         EXPR is an INTEGERAL_TYPE or a scalar float type.
174
175 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
176
177         * tree-sra.c (tree_sra): Update documentation.
178
179 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
180
181         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
182         function_types_compatible_p, type_lists_compatible_p): Remove
183         flags parameter.
184         * c-tree.h (comptypes): Likewise.
185         (COMPARE_STRICT): Remove.
186         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
187         callers changed.
188
189 2004-06-13  Eric Christopher  <echristo@redhat.com>
190
191         * c-decl.c (diagnose_mismatched_decls): Improve error message.
192         Remove unused code.
193         * c-typeck.c (comptypes): Add location in standard we're checking.
194
195 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
196
197         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
198         version 3.3.4.
199
200 2004-06-12  Roger Sayle  <roger@eyesopen.com>
201
202         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
203         index by machine mode.
204         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
205         tables inside the loop over machine modes.
206         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
207         expand_divmod): Index shift*_cost by the appropriate machine mode.
208
209 2004-06-12  Eric Christopher  <echristo@redhat.com>
210
211         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
212         * config/s390/s390.md: Ditto.
213         * config/s390/s390.c: Ditto.
214         (s390_frame_info): Conditionalize frame and setup info on
215         TARGET_TPF_PROFILING.
216         (s390_arg_frame_offset): Ditto.
217
218 2004-06-12  Roger Sayle  <roger@eyesopen.com>
219
220         * fold-const.c (omit_two_operands): New function.
221         * tree.h (omit_two_operands): Prototype here.
222         * builtins.c (fold_builtin_unordered_cmp): New function to lower
223         C99 unordered comparison builtins to the appropriate tree nodes.
224         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
225         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
226         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
227         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
228         (simplify_builtin_memcmp, simplify_builtin_strncmp,
229         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
230         omit_two_operands function to build the required COMPOUND_EXPRs.
231
232 2004-06-12  Steven Bosscher <stevenb@suse.de>,
233             Andreas Jaeger  <aj@suse.de>
234
235         * gcse.c (record_set_info): Use predicates like REG_P.
236         (mems_conflict_for_gcse_p): Likewise.
237         (load_killed_in_block_p): Likewise.
238         (hash_expr_1): Likewise.
239         (insert_set_in_table): Likewise.
240         (gcse_constant_p): Likewise.
241         (hash_scan_set): Likewise.
242         (hash_scan_insn): Likewise.
243         (canon_list_insert): Likewise.
244         (record_last_mem_set_info): Likewise.
245         (record_last_set_info): Likewise.
246         (compute_hash_table_work): Likewise.
247         (mark_set): Likewise.
248         (mark_clobber): Likewise.
249         (mark_oprs_set): Likewise.
250         (compute_transp): Likewise.
251         (find_avail_set): Likewise.
252         (cprop_insn): Likewise.
253         (do_local_cprop): Likewise.
254         (cprop): Likewise.
255         (find_implicit_sets): Likewise.
256         (find_bypass_set): Likewise.
257         (bypass_conditional_jumps): Likewise.
258         (insert_insn_end_bb): Likewise.
259         (pre_insert_copy_insn): Likewise.
260         (compute_transpout): Likewise.
261         (next_ls_expr): Likewise.
262         (invalidate_any_buried_refs): Likewise.
263         (compute_ld_motion_mems): Likewise.
264         (reg_set_info): Likewise.
265         (reg_clear_last_set): Likewise.
266         (find_moveable_store): Likewise.
267         (compute_store_table): Likewise.
268         (find_loads): Likewise.
269         (store_killed_in_insn): Likewise.
270         (insert_insn_start_bb): Likewise.
271         (reg_set_between_after_reload_p): Likewise.
272         (reg_used_between_after_reload_p): Likewise.
273         (is_jump_table_basic_block): Likewise.
274         (gcse_after_reload): Likewise.
275         (hash_scan_set_after_reload): Likewise.
276         (compute_hash_table_after_reload): Likewise.
277
278 2004-06-12  Steven Bosscher  <stevenb@suse.de>
279
280         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
281         (INSN_P): Don't look at the rtx code class, just explicitly
282         check for one of the tree RTX_INSN codes.
283
284 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
285
286         * c-typeck.c (default_function_array_conversion): Use
287         build_pointer_type not TYPE_POINTER_TO.
288
289 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
290
291         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
292         * configure, config.in: Regenerate.
293         * system.h: Unconditionally define bool as unsigned char,
294         BOOL_BITFIELD as unsigned int.
295         * domwalk.h: Use BOOL_BITFIELD.
296
297 2004-06-12  Andreas Jaeger  <aj@suse.de>
298
299         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
300         * libgcc-darwin.ver: Likewise.
301
302 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
303
304         * reload.c (find_reloads): Force reload for pseudo registers on big
305         endian machines.
306
307 2004-06-11  Steven Bosscher <stevenb@suse.de>
308
309         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
310         Don't try to mark anything control dependent on the entry or
311         exit blocks.
312
313 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
314
315         Fix Bug 15899
316         Fix Bug 15460
317         * tree.h (SSA_NAME_VALUE): New macro.
318         (struct tree_ssa_name): Add value_handle member.
319         * tree-ssa-pre.c: Replaced.
320         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
321         (struct cst_ann_d): New.
322         (struct expr_ann_d): New.
323         (union tree_ann_d): Add cst_ann, expr_ann.
324         * tree-dfa.c (create_cst_ann): New function.
325         (create_expr_ann): Ditto.
326         * tree-flow-inline.h (cst_ann): New function.
327         (expr_ann): Ditto.
328         (get_cst_ann): Ditto.
329         (get_expr_ann): Ditto..
330
331 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
332
333         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
334         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
335         _U_Qfcmp library function.
336         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
337         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
338
339         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
340         unspec used for loading address from DLT.
341         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
342         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
343         Don't use short code sequence when loading the address of a nonlocal
344         label.
345         (nonlocal_goto): New expander.
346         (indirect_goto): New jump pattern for nonlocal gotos.
347         (short_jump): Remove extra whitespace.
348         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
349         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
350         pattern.
351
352 2004-06-11  Roger Sayle  <roger@eyesopen.com>
353
354         * expmed.c (synth_mult): Add an additional MODE argument for the
355         machine mode of the multiplication.  Update recursive calls.  Use
356         mode instead of word_mode for determining operation costs.
357         (choose_mult_variant): Update calls to synth_mult with "mode".
358
359 2004-06-11  Richard Henderson  <rth@redhat.com>
360
361         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
362         and makes_aliased_stores.
363
364 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
365
366         * doc/install.text (--enable-shared): Fix typo.
367
368 2004-06-11  Richard Henderson  <rth@redhat.com>
369
370         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
371         argument.  Use internal post for call to gimplify_expr.  Tidy
372         rounded type size computation.
373         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
374         get_initialized_tmp_var.
375
376 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
377
378         * doc/install.texi (--enable-shared): Update libobjc's shared library
379         status.  Remove reference to libf2c.
380
381 2004-06-11  Jason Merrill  <jason@redhat.com>
382
383         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
384         * config/i386/i386.c (ix86_va_arg): Remove.
385         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
386         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
387         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
388         * config/alpha/alpha.c (alpha_va_arg): Remove.
389         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
390         * config/sparc/sparc.c (sparc_va_arg): Remove.
391
392         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
393         assignment might throw.
394         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
395         expressions.
396
397 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
398
399         PR 15886:
400         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
401
402 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
403
404         * doc/install.texi (Prerequisites): Update documentation of
405         required versions of autoconf and automake.  Remove mention of
406         libf2c.
407
408 2004-06-11  Jason Merrill  <jason@redhat.com>
409
410         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
411         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
412
413 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
414
415         * typeclass.h: Add GPL plus exception license.  Add include
416         guard.
417
418 2004-06-10  Jason Merrill  <jason@redhat.com>
419
420         * gimplify.c (gimplify_modify_expr): Don't force a temporary
421         of an aggregate_value_p type.
422
423 2004-06-10  Jeff Law  <law@redhat.com>
424
425         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
426         code when we are in gimple form.
427
428 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
429
430         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
431         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
432         (highest_ssa_version): Remove.
433         * tree-outof-ssa.c (new_temp_expr_table): Replace
434         highest_ssa_version with num_ssa_names.
435         (dump_replaceable_exprs): Likewise.
436         (rewrite_vars_out_of_ssa): Likewise.
437         * tree-ssa-ccp.c (initialize): Likewise
438         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
439         * tree-ssa-dce.c (tree_dce_init): Likewise.
440         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
441         * tree-ssa-live.c (create_ssa_var_map): Likewise.
442         (dump_var_map): Likewise.
443         * tree-ssa.c (verify_ssa): Likewise.
444         (kill_redundant_phi_nodes): Likewise.
445         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
446         * tree-ssanames.c: Include tree-flow.h
447         (ssa_names): New varray.
448         (init_ssa_names): Initialize ssa_names.
449         Reserve the first slot of the ssa_names table.
450         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
451         Assign version numbers using num_ssa_names.
452
453 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
454
455         * doc/sourcebuild.texi (Front End): Add details of more
456         installation documentation required.
457
458 2004-06-10  Brian Booth  <bbooth@redhat.com>
459
460         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
461         of V_MAY_DEF and V_MUST_DEF.
462         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
463         num_vdefs to num_v_may_defs.
464         (compute_immediate_uses_for_stmt): Rename occurences of vdef
465         to v_may_def.
466         (redirect_immediate_uses): Ditto.
467         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
468         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
469         Also add code to sum up the number of v_must_defs.
470         (vdefs_disappeared_p): Replace with...
471         (v_may_defs_disappeared_p): This.
472         (v_must_defs_disappeared_p): New function.
473         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
474         Also add code to mark new variables found in V_MUST_DEFs for
475         renameing.
476         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
477         vdef_ops to v_may_def_ops.
478         (get_vdef_ops): Replace with...
479         (get_v_may_def_ops): This.
480         * tree-flow-inline.h (get_vdef_ops): Replace with...
481         (get_v_may_def_ops): This.
482         (get_v_must_def_ops): New function.
483         (get_vdef_result_ptr): Replace with...
484         (get_v_may_def_result_ptr): This.
485         (get_vdef_op_ptr): Ditto with...
486         (get_v_may_def_op_ptr); This.
487         (get_v_must_def_op_ptr): New function.
488         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
489         to v_may_def. Also add code to mark statements with
490         V_MUST_DEFs as definition sites.
491         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
492         add code to register new V_MUST_DEFs made by the statement.
493         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
494         (check_replaceable): Rename occurences of vdef to v_may_def. Also
495         add check for V_MUST_DEFs.
496         (find_replaceable_in_bb): Ditto.
497         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
498         to v_may_def. Also add code to dump V_MUST_DEFs.
499         * tree-sra.c (mark_all_vdefs): Replace with...
500         (mark_all_v_may_defs): This.
501         (mark_all_v_must_defs): New function.
502         (create_scalar_copies): Replace call to mark_all_vdefs with
503         calls to mark_all_v_may_defs and mark_all_v_must_defs.
504         (scalarize_structures): Rename occurences of vdef to v_may_def.
505         Also add a check for V_MUST_DEFs.
506         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
507         * tree-ssa-alias.c (global_var): Update comment.
508         (compute_may_aliases): Ditto.
509         (compute_points_to_and_addr_escape): Rename occurences of vdef
510         to v_may_def. Also add code to mark variables in V_MUST_DEF
511         operands as being written to.
512         (group_aliases): Update comment.
513         (maybe_create_global_var): Ditto.
514         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
515         Also add a check for V_MUST_DEFs on GIMPLE registers.
516         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
517         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
518         to v_may_def. Also add code to mark all V_MUST_DEF operands
519         VARYING.
520         (initialize): Ditto.
521         (set_rhs): Rename occurences of vdef to v_may_def. Also add
522         code to update SSA_NAMEs in V_MUST_DEFs.
523         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
524         to v_may_def.
525         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
526         occurences of vdef to v_may_def. Also add code to mark statements
527         with V_MUST_DEFs as necessary.
528         (propagate_necessity): Rename occurences of vdef to v_may_def.
529         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
530         occurences of vdef to v_may_def. Also add code to mark operands
531         in V_MUST_DEFs for renaming.
532         (eliminate_redundant_computations): Rename occurences of vdef
533         to v_may_def.
534         (record_equivalences_from_stmt): Rename occurences of vdef
535         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
536         (optimize_stmt): Remove unnesessary variable vdefs. Update
537         comment.
538         (register_definitions_for_stmt): Rename occurences of vdef
539         to v_may_def. Also add code to register definitions made with
540         V_MUST_DEFs.
541         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
542         (fix_stmt_v_may_defs): This.
543         (fix_phi_uses): Rename occurences of vdef to v_may_def.
544         (dse_optimize_stmt): Ditto.
545         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
546         to v_may_def. Also add code to mark V_MUST_DEF operands as being
547         used in virtual operators.
548         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
549         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
550         renaming.
551         * tree-ssa-operands.c (opf_kill_def): New flag for killing
552         definitions.
553         (build_vdefs): Renamed to...
554         (build_v_may_defs): This.
555         (build_v_must_defs): New variable.
556         (voperands_d): Add v_must_def_ops and replace vdef_ops with
557         v_may_def_ops.
558         (append_vdef): Replace with...
559         (append_v_may_def): This.
560         (append_v_must_def): New function.
561         (NUM_FREE): Increment for V_MUST_DEF
562         (optype_freelist): Increment its size for V_MUST_DEF
563         (allocate_vdef_optype): Replace with...
564         (allocate_v_may_def_optype): This.
565         (allocate_v_must_def_optype): New function.
566         (free_vdefs): Replace with...
567         (free_v_may_defs): This.
568         (free_v_must_defs): New function.
569         (remove_vdefs): Replace with...
570         (remove_v_may_defs): This.
571         (remove_v_must_defs): New function.
572         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
573         add code to initialize build_v_must_defs.
574         (finalize_ssa_vdefs): Replace with...
575         (finalize_ssa_v_may_defs): This.
576         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
577         (finalize_ssa_v_must_defs): New function.
578         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
579         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
580         (verify_start_operands): Rename occurences of vdef to v_may_def.
581         Also add check for build_v_must_defs.
582         (get_stmt_operands): Rename occurences of vdef to v_may_def.
583         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
584         killing definitions.
585         (get_expr_operands): Update comment and use opf_kill_def for
586         killing definitions.
587         (add_stmt_operand): Replace code that appends VDEFs with code
588         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
589         otherwise.
590         (add_call_clobber_ops): Update comments.
591         * tree-ssa-operands.h (vdef_optype_d): Replace with...
592         (v_may_def_optype_d): This.
593         (v_must_def_optype_d): New structure.
594         (VDEF_OPS): Replace with...
595         (V_MAY_DEF_OPS): This.
596         (STMT_VDEF_OPS): Same with...
597         (STMT_V_MAY_DEF_OPS): This.
598         (NUM_VDEFS): And...
599         (NUM_V_MAY_DEFS): This.
600         (VDEF_RESULT_PTR): As well as...
601         (V_MAY_DEF_RESULT_PTR): This.
602         (VDEF_RESULT): Same goes for...
603         (V_MAY_DEF_RESULT): This.
604         (VDEF_OP_PTR): And...
605         (V_MAY_DEF_OP_PTR): This.
606         (VDEF_OP): And...
607         (V_MAY_DEF_OP): This.
608         (V_MUST_DEF_OPS): New macro.
609         (STMT_V_MUST_DEF_OPS): Ditto.
610         (NUM_V_MUST_DEFS): Ditto.
611         (V_MUST_DEF_OP_PTR): Ditto.
612         (V_MUST_DEF_OP): Ditto.
613         (remove_vdefs): Replace signature with...
614         (remove_v_may_defs): This.
615         (remove_v_must_defs): New function signature.
616         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
617         with calls to remove_v_may_defs and remove_v_must_defs.
618         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
619         Also add code that marks left occurences of operands in V_MUST_DEFs.
620         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
621         to v_may_def. Also add check for V_MUST_DEFs.
622         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
623
624 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
625
626         PR target/15653
627         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
628         insn.
629
630 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
631
632         PR web/15263
633         * doc/install.texi: Remove superfluous linebreak.
634
635 2004-06-10  Roger Sayle  <roger@eyesopen.com>
636
637         * builtins.c (expand_builtin): Fall back to library function call for
638         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
639         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
640         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
641         IMAGPART_EXPR respectively.
642
643 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
644
645         * sh.c (dump_table): New argument start.  Changed caller.
646         (fixup_mova): New function.
647         (find_barrier): Use it.
648         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
649         If the label a mova refers to is above the mova itself, change
650         the mova into a load.
651         * sh.md (*casesi_worker): Rename to:
652         (casesi_worker_1).
653         (casesi_worker_2): New insn.
654
655 2004-06-10  Jason Merrill  <jason@redhat.com>
656
657         * target.h (struct gcc_target): Change gimplify_va_arg_expr
658         hook signature.
659         * tree-gimple.h: Adjust.
660         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
661         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
662         Use fold_convert.
663         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
664         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
665         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
666         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
667         (gimplify_va_arg_expr): Return GS_ERROR in error case.
668         Gimplify valist rather than calling stabilize_va_list.
669
670 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
671
672         * Makefile.in (df.o): Remove fibheap dependency.
673         * df.h: Do not include sbitmap.h.
674         (struct ref): New field "data".
675         (DF_REF_DATA): New accessor macro.
676         (struct df): Field "dom" removed.
677         (df_analyze_subcfg): New function.
678         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
679         (transfer_function): ... new type.
680         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
681         (iterative_dataflow): ... new function.
682         (enum set_representation, struct dataflow): New.
683         * df.c: Do not include fibheap.h.
684
685         (df_reg_def_chain_clean, df_reg_use_chain_clean,
686         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
687         prune_to_subcfg, df_bb_modify): New functions.
688         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
689         df_refs_update, df_reg_table_realloc, df_ref_create,
690         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
691         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
692         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
693
694         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
695         (df_rd_transfer_function, df_ru_transfer_function,
696         df_lr_transfer_function): Type of bitmaps changed to void *.
697         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
698         (hybrid_search): ... new function.
699         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
700         (iterative_dataflow): ... new function. Avoid use of fibheaps for
701         a worklist.  Do not process basic blocks unnecessarily.
702
703 2004-06-10  Roger Sayle  <roger@eyesopen.com>
704
705         * fold-const.c (fold_abs_const): Make extern.
706         * tree.h (fold_abs_const): Prototype here.
707         * builtins.c (fold_builtin_fabs): New function to transform
708         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
709         (fold_builtin_abs): New function to transform abs, labs, llabs
710         and imaxabs builtins into ABS_EXPR tree nodes.
711         (expand_builtin): Fall back to a function call for abs, labs,
712         llabs and imaxabs builtins that survive constant folding.
713         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
714         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
715
716 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
717
718         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
719         leaf function without unwind info at RP 0.
720
721 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
722
723         PR c++/14791
724         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
725         (fileptr_type_node): Define.
726         * tree.c (build_common_tree_nodes_2): Initialize
727         fileptr_type_node to ptr_type_node.
728         * c-common.c (c_common_nodes_and_builtins): For C++, make
729         fileptr_type_node a distinct type copy.
730         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
731         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
732         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
733         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
734         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
735         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
736         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
737         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
738         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
739         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
740         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
741         the above *FILEPTR* types instead of *PTR*.
742
743 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
744
745         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
746         match.
747
748 2004-06-09  Roger Sayle  <roger@eyesopen.com>
749
750         * fold-const.c (fold_not_const): New function.
751         (fold) <ABS_EXPR>: Don't bother testing wins.
752         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
753         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
754
755 2004-06-09  Richard Henderson  <rth@redhat.com>
756
757         PR middle-end/15228
758         * function.c (assign_parms): Always set_mem_align with the computed
759         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
760
761 2004-06-09  Richard Henderson  <rth@redhat.com>
762
763         PR opt/15108
764         * tree-tailcall.c (find_tail_calls): Don't check early for
765         tail_recursion failure.
766
767 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
768
769         Move SSA_NAME annotations into tree_ssa_name.
770
771         * tree-dfa.c (create_ssa_name_ann): Remove.
772         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
773         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
774         (struct ssa_name_ann_d): Remove.
775         (union tree_ann_d): Update.
776         (ssa_name_ann_t): Remove.
777         * tree-ssa-alias.c: (get_ptr_info): New local function.
778         Replace references to ssa_name_ann_t with struct ptr_info_def.
779         * tree-ssa-operands.c (get_expr_operands): Likewise.
780         * tree.h (SSA_NAME_PTR_INFO): Define.
781         (struct ptr_info_def): Declare.
782         (struct tree_ssa_name): Add field 'ptr_info'.
783
784 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
785
786         * config/i386/winnt.c (i386_pe_output_labelref): Correct
787         misplaced ')'.
788
789 2004-06-09  Steven Bosscher  <stevenb@suse.de>
790
791         * config/i386/k6.md: Rewrite using the DFA model.
792         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
793         cost of load-operation insns for the K6.
794         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
795         (ia32_multipass_dfa_lookahead): Likewise.
796
797 2004-06-09  Richard Henderson  <rth@redhat.com>
798
799         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
800         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
801
802 2004-06-09  Richard Henderson  <rth@redhat.com>
803
804         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
805
806 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
807
808         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
809         (CPP_ID_DATA_H): New.
810         (gtype-desc.o): Update dependencies.
811         (GTFILES): Use CPP_ID_DATA_H.
812
813 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
814
815         Revert:
816         PR c++/15815
817         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
818         * doc/extend.texi: Deprecate #pragma interface and #pragma
819         implementation.
820
821 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
822
823         * config/sparc/sparc.h (MOVE_RATIO): New definition.
824
825 2004-06-09  Richard Henderson  <rth@redhat.com>
826
827         * basic-block.h (struct edge_def): Add goto_locus.
828         * tree-cfg.c (make_goto_expr_edges): Set it.
829         (disband_implicit_edges): Use it.
830         * tree-pretty-print.c (dump_implicit_edges): Print it.
831
832 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
833
834         * h8300.md (ldm_h8300s_4): Fix condition for expander.
835
836 2004-06-08  Jason Merrill  <jason@redhat.com>
837
838         Gimplify VA_ARG_EXPR into simpler forms.
839         * target.h: Add gimplify_va_arg_expr hook.
840         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
841         * fold-const.c (build_fold_addr_expr)
842         (build_fold_addr_expr_with_type): Move from gimplify.c.
843         * tree.h: Declare them.
844         * gimplify.c (gimplify_and_add): New fn.
845         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
846         (gimplify_array_ref_to_plus, gimplify_modify_expr)
847         (gimplify_expr): Use build_fold_*.
848         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
849         don't know how to gimplify it.
850         * builtins.c (std_gimplify_va_arg_expr): New fn.
851         (dummy_object): New static fn.
852         (gimplify_va_arg_expr): New fn.
853         (stabilize_va_list): Use build_fold_*.
854         * tree-gimple.h: Declare new fns.
855         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
856         (ix86_gimplify_va_arg): New fn.
857         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
858         (ia64_gimplify_va_arg): New fn.
859         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
860         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
861         * alias.c (get_varargs_alias_set): Just return 0 for now.
862
863         * c-objc-common.c (c_tree_printer): Improve handling of %T.
864
865 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
866
867         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
868         of convert.
869         * tree-inline.c (setup_one_parameter): Likewise.
870         * tree-sra.c (csc_build_component_ref): Likewise.
871         * tree-ssa-ccp.c (ccp_fold): Likewise.
872         * tree-ssa-copy.c (cprop_operand): Likewise.
873         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
874         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
875
876 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
877
878         PR rtl-optimization/15521:
879         * sched-int.h (in_post_call_group_p): Change type to enum.
880         * sched-deps.c (sched_analyze_insn):
881         (sched_analyze): When in_post_call_group_p is post_call_initial,
882         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
883         and also reset in_post_call_group_p to post_call.
884         (sched_analyze): When the previous basic block ended in a CALL_INSN,
885         initialize in_post_call_group_p as post_call_initial.
886         (init_deps): initialize in_post_call_group_p to not_post_call.
887
888 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
889
890         PR ada/6637
891         * doc/install.texi: List ada, libada as options to --enable-shared
892
893 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
894
895         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
896         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
897         config.in entries.
898         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
899         if hard links are not available.
900         * configure: Regenerate.
901         * config.in: Regenerate.
902
903 2004-06-08  Per Bothner  <per@bothner.com>
904
905         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
906
907 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
908
909         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
910         Correct formatting.
911
912 2004-06-08  James E Wilson  <wilson@specifixinc.com>
913
914         PR target/15790
915         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
916
917 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
918
919         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
920         POINTER_TYPE and INTEGER_TYPE.
921
922 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
923
924         * modulo-sched.c: Compile only when INSN_SCHEDULING is
925         defined.
926
927 2004-06-08  Jeff Law  <law@redhat.com>
928
929         * doc/contrib.texi: Add entries for Stefan Olsson and
930         Ola Ronnerup.
931
932 2004-06-08  DJ Delorie  <dj@redhat.com>
933
934         * toplev.c (floor_log2_wide): Replace loop with faster bit
935         operations.
936         (exact_log2_wide): Define in terms of the above.
937         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
938         available.
939
940 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
941
942         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
943         Make sure that we are in INDIRECT mode when getting the
944         stub name.
945
946 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
947
948         * h8300.md (extendqisi2_h8300): Add constraints.
949         (ldm_h8300s_4_normal): Fix typo.
950
951 2004-06-08  Richard Henderson  <rth@redhat.com>
952
953         * gimple-low.c (struct lower_data): Replace the_return_label and
954         one_return_stmt with return_statements.
955         (lower_function_body): Process the entire list of return_statements.
956         (lower_return_expr): Check source value before unifying return_exprs.
957         * gimplify.c (gimplify_return_expr): Force the use of a temporary
958         for !aggregate_value_p.
959         * tree-gimple.c: Update RETURN_EXPR grammer.
960
961 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
962
963         PR target/15598
964         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
965
966 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
967
968         PR rtl-optimization/15717
969         * config/i386/i386.c (legitimate_constant_p): Do not allow
970         x - symbol_ref.
971
972 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
973
974         * gimplify.c (copy_if_shared_r): Revert:
975         2004-05-21  Richard Henderson  <rth@redhat.com>
976         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
977
978 2004-06-07  Roger Sayle  <roger@eyesopen.com>
979
980         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
981         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
982         (init_expmed): Initialize these cost arrays as appropriate.
983         (store_bit_field, extract_bit_field): Correct whitespace.
984         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
985         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
986         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
987         word_mode or compute_mode as appropriate.
988
989 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
990
991         PR target/15783
992         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
993         parameter.  Enumerate the registers inside the PARALLEL.
994         (function_arg): Adjust call to function_arg_union_value.
995         (function_value): Likewise.
996
997         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
998
999 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1000
1001         * real.c (real_copysign): New function to implement libm's copysign.
1002         * real.h (real_copysign): Prototype here.
1003         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1004         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1005         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1006         fold_builtin_isdigit): Add function prototypes.
1007         (fold_builtin_copysign): New function to fold copysign, copysignf
1008         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1009         constant arguments at compile-time using real_copysign.  Fold
1010         copysign(X,Y) as fabs(X) if Y is always non-negative.
1011         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1012         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1013
1014 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
1015
1016         * tree.c (iterative_hash_expr): Use real_hash.
1017
1018 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1019
1020         PR c/14765
1021         * c-parse.in (compstmt_primary_start): Set last_expr_type to
1022         NULL_TREE.
1023
1024 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1025
1026         PR c++/15815
1027         * doc/extend.texi: Deprecate #pragma interface and #pragma
1028         implementation.
1029
1030 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
1031
1032         PR middle-end/15666
1033         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1034         builtin decl as well.
1035
1036 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1037
1038         PR c/14649
1039         * c-typeck.c (require_constant_value, require_constant_elements):
1040         Move declarations to the top of the file.
1041         (build_function_call): If we require a constant value, fold with
1042         fold_initializer.  If the result is a constant, and the function
1043         wasn't called using __builtin_foo, issue a pedantic warning.
1044         (build_unary_op): If we require a constant value, fold tree with
1045         fold_initializer.
1046         (build_binary_op): Use require_constant_value to determine whether
1047         to call fold or fold_initializer.
1048
1049 2004-06-07  Richard Henderson  <rth@redhat.com>
1050
1051         * gimple-low.c (struct lower_data): Add the_return_label and
1052         one_return_stmt.
1053         (lower_function_body): Initialize and use them.
1054         (lower_return_expr): New.
1055         (lower_stmt): Call it.
1056         * gimplify.c (gimplify_return_expr): Force the argument to be either
1057         null or a result_decl.
1058         * tree-gimple.c: Update gimple grammer to match.
1059         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1060         coalescing of result_decls.
1061
1062 2004-06-07  Richard Henderson  <rth@redhat.com>
1063
1064         PR rtl-opt/15193
1065         * expmed.c (extract_bit_field): Fix vector_extract return.
1066
1067         * config/i386/i386.md (negv4sf2): New pattern.
1068
1069 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1070
1071         PR c++/15337
1072         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1073         message.
1074
1075 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1076
1077         * config.in: Regenerate.
1078
1079 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1080
1081         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1082         SWITCH_LABELS are always sorted.
1083
1084 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1085
1086         * hooks.c (hook_int_void_1): New generic hook.
1087         * hooks.h (hook_int_void_1): Add prototype.
1088         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1089         Define to hook_int_void_1.
1090         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1091         with dummies for the new one.
1092
1093 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1094
1095         * tree.h (lvalue_or_else): Delete function prototype.
1096         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1097
1098 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1099
1100         PR target/14542
1101         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1102         a live change of a register after peephole replacement.
1103
1104 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1105
1106         PR c/13519
1107         * c-typeck.c (composite_type, common_pointer_type): New functions.
1108         (common_type): Split parts into composite_type and
1109         common_pointer_type.  Ensure that arithmetic operations return
1110         unqualified types without attributes.  Don't make composite type
1111         of signed enum and compatible integer be unsigned.
1112         (build_conditional_expr, build_binary_op): Use
1113         common_pointer_type.
1114         * c-decl.c (merge_decls): Use composite_type.
1115         * c-tree.h (composite_type): Declare.
1116
1117 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1118
1119         PR target/14457
1120         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1121         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1122         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1123         (inhibit_libc): Must define.
1124         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1125         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1126         ("xorhi3"): Likewise.
1127
1128 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1129
1130         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1131         always_inline pass.
1132
1133 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1134
1135         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1136         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1137
1138 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1139
1140         * regclass.c (init_reg_sets): Check for missing registers in target
1141         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1142
1143 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1144
1145         * Makefile.in (MKDEPS_H): New shorthand.
1146         (c-opts.o): Update dependencies.
1147         * c-opts.c: Include mkdeps.h.
1148         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1149         not cpp_add_dependency_target.
1150
1151 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1152
1153         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1154         * config/v850/v850.md: Convert to DFA scheduler description.
1155
1156 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1157
1158         PR fortran/15478
1159         * doc/install.texi: Document GMP as prerequisite. Document
1160         --with-gmp and --with-gmp-dir configure options.
1161         * fortran/gfortran.texi: Remove section "Compiling and testing",
1162         remove TOC reference to it.
1163
1164 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1165
1166         * combine.c(simplify_shift_const): Check shift amount is a
1167         CONST_INT.
1168
1169 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1170
1171         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1172         opening asm_out_file.
1173         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1174         reading asm_out_file. Replace fflush after reading asm_out_file
1175         with fseek.
1176         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1177         default and add to HOST_HOOKS_INITIALIZER.
1178         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1179         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1180         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1181         to set mmi.offset padding.
1182          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1183         $(srcdir)/config/i386/winnt.c.
1184         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1185         (i[34567]86-*-uwin*): Likewise.
1186         *i[34567]86-*-interix3*): Likewise.
1187         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1188         * config/i386/host-mingw32.c: New file.
1189         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1190         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1191         (extern_head): Likewise.
1192         (struct export_list) Likewise.
1193         (export_head): Likewise.
1194         (i386_pe_record_external_function): Use ggc_alloc.
1195         (i386_pe_record_exported_symbol): Likewise.
1196         Include "gt-winnt.h" at end.
1197         * doc/hostconfig.texi: Document
1198         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1199
1200 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1201
1202         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1203         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1204         trailing whitespace before EOLs and before TABs.
1205         (MAX_CODE_ALIGN): Remove unused macro.
1206         (CALL_USED_REGISTERS): Reformat and add comments.
1207
1208 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1209
1210         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1211         to enumerate -lmudflap* and dependencies when linking.
1212
1213 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1214
1215         PR target/15822
1216         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1217
1218 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1219
1220         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1221         * genconditions.c (write_header): Back out removal of reload.h.
1222
1223 2004-06-04  Jan Hubicka  <jh@suse.cz>
1224
1225         Re-apply hopefully fixed patch:
1226         * i386.md (UNSPECV_EH_RETURN): Kill.
1227         (eh_return): Use jump_insn.
1228         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1229
1230 2004-06-04  Jeff Law  <law@redhat.com>
1231
1232         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1233
1234 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1235
1236         * except.c (for_each_eh_region): New function.
1237         * except.h (for_each_eh_region): Add a prototype for it.
1238         * tree-cfg.c (update_eh_labels): New function, callback for
1239         for_each_eh_region.
1240         (label_for_bb): Make global static, unfortunately.
1241         (cleanup_dead_labels): Also update label references for
1242         exception regions.
1243
1244 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1245
1246         * config/mips/mips.c (struct irix_section_align_entry): Fix
1247         GTY marker.
1248
1249 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1250
1251         * toplev.c (check_global_declarations): Don't ask for
1252         DECL_ASSEMBLER_NAME unless the function really is declared
1253         static and not defined.
1254
1255 2004-06-03  Matt Austern  <austern@apple.com>
1256
1257         PR c++/15428
1258         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1259         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1260         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1261         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1262         documentation to reflect the new macro name and to clarify its
1263         meaning.
1264
1265 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1266
1267         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1268
1269 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1270
1271         * config/darwin.c (machopic_indirect_data_reference): Copy
1272         the SYMBOL_REF_DECL from the original RTX for the new
1273         non-lazy pointer RTX.
1274
1275 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1276
1277         * tree.h: Remove include of version.h
1278         * c-cppbuiltin.c: Include version.h
1279         * diagnostic.c: Include version.h
1280         * dwarf2out.c: Include version.h
1281         * toplev.c: Include version.h
1282         * vmsdbgout.c: Include version.h
1283         * Makefile.in: Remove dependency on version.h from TREE_H, and
1284         add dependencies to required .o targets
1285
1286 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1287
1288         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1289         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1290         (TARGET_H): Add insn-modes.h.
1291         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1292         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1293         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1294         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1295         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1296         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1297         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1298         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1299         CFGLAYOUT_H.
1300         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1301         Replace ra.h with RA_H.
1302         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1303         insn-recog.o): Replace resource.h with RESOURCE_H.
1304         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1305         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1306         with SCHED_INT_H.
1307         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1308         ra-rewrite.o): Replace df.h with DF_H.
1309         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1310         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1311         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1312         (insn-conditions.o): Remove unused reload.h.
1313         * cfglayout.h: Add include guard.  Include basic-block.h.
1314         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
1315         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1316         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
1317         basic-block.h.
1318         * genconditions.c:  Remove reload.h.
1319         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
1320         hard-reg-set.h, insn-modes.h.
1321         * resource.h: Add include guard.  Include hard-reg-set.h.
1322         * sched-int.h:  Add include guard.  Include insn-attr.h,
1323         basic-block.h, rtl.h.
1324         * target.h: Add include guard.  Include insn-modes.h.
1325         * tree-ssa-live.h: Include partition.h.
1326
1327 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
1328                 Kenneth Zadeck <zadeck@naturalbridge.com>
1329
1330         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1331         (add_var_to_ssa_edges_worklist): Add value argument.
1332         Update callers.
1333         Use new worklist.
1334         (process_ssa_edge_worklist): New function.
1335         (tree_ssa_ccp): Move worklist processing core to
1336         process_ssa_edge_worklist, and just call that for the two worklists.
1337
1338 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1339
1340         * basic-block.c (tail_recursion_label_list): Don't declare.
1341         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
1342         accordingly.
1343         * cfgbuild.c (find_label_refs): Remove.
1344         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1345         * cfgcleanup.c (tail_recursion_label_p): Remove.
1346         (merge_blocks_move): Do not check for tail recursion.
1347         (try_optimize_cfg): Likewise.
1348         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1349         * cfgrtl.c (tail_recursion_label_list): Remove.
1350         * except.c (remove_unreachable_regions): Don't handle
1351         CALL_PLACEHOLDER insns.
1352         (convert_from_eh_region_ranges_1, can_throw_internal,
1353         can_throw_external): Likewise.
1354         * function.c (free_after_compilation): Don't clear
1355         x_tail_recursion_label.
1356         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1357         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1358         (reorder_blocks_1): Likewise.
1359         * function.h (struct function): Remove x_tail_recursion_label
1360         member.  Don't define tail_recursion_label.
1361         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1362         * print-rtl.c (print_rtx): Likewise.
1363         * rtl.def (CALL_PLACEHOLDER): Remove.
1364         * rtl.h (sibcall_use_t): Remove enum.
1365         (optimize_sibling_and_tail_recursive_calls,
1366         replace_call_placeholder): Remove function prototypes.
1367         * stmt.c (tail_recursion_args): Remove.
1368         (optimize_tail_recursion): Remove.
1369         (expand_return): Don't check for possible tail recursion.
1370         * tree.h (optimize_tail_recursion): Remove prototype.
1371
1372 2004-06-02  Jan Hubicka  <jh@suse.cz>
1373
1374         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
1375         return_stmt.
1376
1377 2004-06-02  Jason Merrill  <jason@redhat.com>
1378
1379         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1380         Do include c-parse.in.
1381
1382 2004-06-02  Eric Christopher  <echristo@redhat.com>
1383
1384         * c-typeck.c (common_type): Don't lose type qualifiers
1385         when creating new variants.
1386
1387 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1388
1389         PR tree-optimization/14042
1390         PR tree-optimization/14729
1391         PR tree-optimization/14736
1392         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1393         Check the type which the pointer points to
1394         instead of the pointer types.
1395
1396 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1397
1398         PR tree-optimization/15738.
1399         * builtins.c (fold_builtin_strchr): Transform
1400         strrchr (s, '\0') to strchr (s, '\0').
1401
1402 2004-06-02  Steven Bosscher  <stevenb@suse.de>
1403
1404         * i386.c (ix86_adjust_cost): Don't increase the cost for
1405         load+operation for PROCESSOR_PENTIUMPRO, it is already
1406         modelled in the DFA description
1407
1408 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
1409
1410         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1411         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1412         (ALIAS_H, EMIT_RTL_H): New.
1413         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1414         (cfgcleanup.o): Add EMIT_RTL_H.
1415         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1416         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1417         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1418         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1419         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
1420         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1421         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1422         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1423         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1424         set_mem_size): Move to emit-rtl.h.
1425         * emit-rtl.h: New.
1426         * alias.h: New.
1427
1428 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
1429
1430         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1431         Call fixup_memory_subreg only if the MEM is equal to 'var'.
1432         Adjust recursive calls to self.
1433         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1434
1435 2004-06-01  Richard Henderson  <rth@redhat.com>
1436             Andrew Pinski  <pinskia@physics.uc.edu>
1437
1438         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1439         (primary): Handle offsetof.  Add error productions for faux functions.
1440         Move component_ref objc checking to build_component_ref.
1441         (reswords): Add offsetof.
1442         (rid_to_yy): Add offsetof.
1443         * c-tree.h (build_offsetof): Declare.
1444         * c-common.h (objc_is_public): Declare.
1445         * c-typeck.c (build_component_ref): Check objc_is_public.
1446         (build_offsetof): New.
1447         * stub-objc.c (objc_is_public): New.
1448         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1449         from is_public.
1450         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1451         * doc/extend.texi (Offsetof): Move from C++ section to C section
1452         and rewrite for __builtin_offsetof.
1453
1454 2004-06-01  Peter Barada  <peter@the-baradas.com>
1455             Peter Jakubek  <peter@laseranimation.com>
1456
1457         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
1458         a scratch to perform an add to memory.
1459
1460 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1461
1462         PR target/14018
1463         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1464         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1465         m68k_align_funcs): Remove.
1466         (override_options): Remove code to handle -malign-* options.
1467         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1468         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1469         (m68k_align_loops_string, m68k_align_jumps_string,
1470         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1471         m68k_align_funcs): Remove definitions.
1472
1473 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
1474
1475         PR target/15626
1476         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1477         by the Sun linker in conjunction with the Sun assembler.
1478         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1479
1480 2004-06-01  Jeff Law  <law@redhat.com>
1481
1482         * stmt.c (expand_decl): Be more selective about calling
1483         mark_reg_pointer.
1484
1485 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
1486
1487         PR objc/7993
1488         * objc-act.c (is_private): Do not emit the 'instance variable %s
1489         is declared private' error.
1490         (is_public): Emit the error after calling is_private.
1491         (lookup_objc_ivar): If the instance variable is private, return 0
1492         - the instance variable is invisible here.
1493
1494 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1495
1496         * doc/invoke.texi (-static-libgcc): Explicitly mention
1497         non-GNU linkers.
1498
1499 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1500
1501         PR target/12968
1502         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1503
1504 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1505
1506         PR c/15749
1507         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1508         misuses of structures with flexible array members if
1509         in_system_header.
1510
1511 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1512
1513         PR target/15693
1514         * config/sparc/sparc.c (compare_operand): New predicate.
1515         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1516         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
1517         operand is a ZERO_EXTRACT and the second operand is not zero,
1518         force the former to a register.
1519         (cmpdi expander): Likewise.
1520
1521 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
1522
1523         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1524         looks at.
1525         * alias.c (alias_invariant_size): Make alias_invariant_size
1526         static, fix GTY marker.
1527
1528 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1529
1530         PR tree-optimization/15743.
1531         * builtins.c (fold_builtin_1): Fold index() and rindex().
1532
1533 2004-05-31  Roger Sayle  <roger@eyesopen.com>
1534
1535         PR middle-end/15069
1536         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1537         into "X < 0" (where C is the signbit) if X's type is a full mode.
1538
1539 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1540
1541         * pa.md: Disable the peephole2 patterns that generate indexed
1542         floating-point stores when indexing is disabled.
1543
1544 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1545
1546         * c-pretty-print.c (pp_c_left_bracket): Make a function.
1547         (pp_c_right_bracket): Likewise.
1548         (pp_c_star): Likewise.
1549         (pp_c_ampersand): Define.
1550         * c-pretty-print.h (pp_c_left_bracket): Declare.
1551         (pp_c_right_bracket): Likewise.
1552         (pp_c_star): Likewise.
1553         (pp_c_ampersand): Likewise.
1554
1555 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1556
1557         * config/sol2.h (__enable_execute_stack): ANSIfy function
1558         definition.
1559
1560 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
1561
1562         * c-incpath.c (add_path): Canonicalize paths to use '/' if
1563         HAVE_DOS_BASED_FILESYSTEM.
1564
1565 2004-05-31  Steven Bosscher  <stevenb@suse.de>
1566
1567         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1568         Only look at case labels if the immediate dominator is also
1569         the only predecessor.  Don't look for more case labels if the
1570         first seen is a case range.
1571
1572 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1573
1574         * builtins.c: Add a prototype for fold_builtin_strchr().
1575
1576 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
1577
1578         Revert this patch:
1579         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1580
1581         * combine.c (gen_binary): Remove.
1582         (known_cond, simplify_shift_const
1583         find_split_point, combine_simplify_rtx,
1584         simplify_if_then_else, simplify_set,
1585         simplify_logical, expand_field_assignment,
1586         extract_left_shift, force_to_mode,
1587         if_then_else_cond, apply_distributive_law,
1588         simplify_and_const_int, simplify_shift_const,
1589         gen_lowpart_for_combine, simplify_comparison,
1590         reversed_comparison): Replace with
1591         simplify_gen_binary, simplify_gen_relational or
1592         distribute_and_simplify_rtx.
1593         (distribute_and_simplify_rtx): New function.
1594
1595 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1596
1597         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
1598         when generating PIC code.
1599
1600 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1601
1602         * c-decl.c (c_expand_body_1): Remove and fold back into ...
1603         (c_expand_body): here.
1604         (c_expand_decl): Move to ...
1605         * c-common.c (c_expand_decl): Here and remove check for nested
1606         functions.
1607         * c-common.h (c_expand_decl): Add prototype.
1608         * c-tree.h (c_expand_decl): Remove.
1609
1610 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1611
1612         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
1613         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
1614         fold_mathfn_compare, fold_inf_compare, fold,
1615         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
1616         Use constant_boolean_node where appropriate.  Don't bother using
1617         fold_convert on the second argument to omit_one_operand.
1618
1619 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1620
1621         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
1622         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
1623         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
1624         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
1625         Add missing (but documented) tree nodes to the index.
1626
1627 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1628
1629         PR tree-optimization/14819
1630         * builtins.c (fold_builtin_strchr): New.
1631         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
1632         with fold_builtin_strchr().
1633
1634 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1635
1636         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
1637         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
1638         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
1639         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
1640         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
1641         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
1642         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
1643         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
1644         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
1645         formatting.
1646
1647 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1648
1649         * gimplify.c (sort_case_labels): New.  Split out from...
1650         (gimplify_switch_expr): ...here.  Use it.
1651         * tree-eh.c (lower_try_finally_switch): Sort the labels of
1652         the SWITCH_EXPR created here before leaving the function.
1653         * tree.c (sort_case_labels): Add prototype.
1654
1655 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1656
1657         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
1658         of BOOLEAN_TYPE.
1659
1660 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1661
1662         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
1663         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
1664         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
1665         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
1666         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
1667         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
1668         comment typos.  Follow spelling conventions.
1669
1670 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
1671
1672         * gengtype-yacc.y: Add NESTED_PTR token.
1673         (option): Record `nested_ptr' option.
1674         * gengtype-lex.l: Handle `nested_ptr' keyword.
1675         * gengtype.c (walk_type): Process `nested_ptr' option.
1676         * gengtype.h (struct nested_ptr_data): New.
1677         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
1678         * stringpool.c (struct string_pool_data): Make 'entries' point to
1679         ht_identifier instead of tree.
1680         (gt_pch_save_stringpool): Don't adjust pointers.
1681         (gt_pch_restore_stringpool): Call ht_load.
1682
1683 2004-05-29  Jason Merrill  <jason@redhat.com>
1684
1685         * gimplify.c (gimplify_expr): Don't build a statement list
1686         if no gimplification was necessary.
1687
1688 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1689
1690         * pretty-print.c (pp_base_format_text): Support %< instead of %`
1691         and %> as well as %'.
1692         * c-format.c: Use %< and %>.
1693         (gcc_diag_char_table, gcc_cdiag_char_table,
1694         gcc_cxxdiag_char_table): Update.
1695
1696 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1697
1698         * c-typeck.c (common_type): Correct comment.
1699
1700 2004-05-29  Peter Barada  <peter@the-baradas.com>
1701
1702         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
1703         * config/m68k/m68k.c (const_method): Likewise.
1704         * config/m68k/m68k.c (const_int_cost): Likewise.
1705         * config/m68k/m68k.c (const_int_cost): Likewise.
1706         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
1707
1708 2004-05-29  Peter Barada  <peter@the-baradas.com>
1709
1710         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
1711         addressing.
1712         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
1713         movsi,movhi,movqi insn patterns.
1714
1715 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1716
1717         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
1718
1719         PR target/15720
1720         * config/darwin.c (machopic_indirect_call_target): Copy
1721         the SYMBOL_REF_DECL from the original RTX for the new
1722         stub RTX.
1723
1724 2004-05-28  DJ Delorie  <dj@redhat.com>
1725
1726         * stor-layout.c (place_field): Revert erroneous commit.
1727
1728 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
1729
1730         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
1731         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
1732         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
1733         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
1734         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
1735         vec_ste): Remove type checks for integral parameters and literals
1736         from '..._args_eq' macros.
1737
1738 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1739
1740         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
1741
1742 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1743
1744         * testsuite/g++.dg/charset/function.cc: New.
1745
1746         * testsuite/gcc.dg/charset/function.c: New.
1747
1748         * c-decl.c (c_make_fname_decl): Free return value from
1749         fname_as_string.
1750
1751         * cp/decl.c (cp_make_fname_decl): Free return value from
1752         fname_as_string.
1753
1754         * c-common.c (fname_as_string): Translate if necessary.
1755
1756 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
1757
1758         * stringpool.c: Add comments to PCH saving/restoring routines.
1759
1760 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1761
1762         * c-common.c (c_estimate_num_insns_1): Kill.
1763         (c_estimate_num_insns): Kill.
1764         * c-common.h (c_estimate_num_insns): Kill.
1765
1766         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
1767         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
1768         Remove comment about not checking for
1769         _POSIX_PRIORITY_SCHEDULING.
1770         * gthr-posix.c: Likewise.
1771
1772 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
1773             Roger Sayle  <roger@eyesopen.com>
1774
1775         PR rtl-optimization/15649
1776         Add LTGT_EXPR and improve pretty-printing of unordered
1777         comparisons.
1778         * c-common.c (c_common_truthvalue_conversion):
1779         Handle LTGT_EXPR.
1780         * c-typeck.c (build_binary_op): Likewise.
1781         * dojump.c (do_jump): Likewise.
1782         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
1783         * predict.c (tree_predict_by_opcode): Likewise.
1784         * real.c (real_compare): Likewise.
1785         * tree-cfg.c (verify_expr): Likewise.
1786         * tree-inline.c (estimate_num_insns_1): Likewise.
1787         * tree-pretty-print.c (dump_generic_node): Likewise.
1788         Handle ORDERED_EXPR, UNORDERED_EXPR.
1789         (op_symbol): Print unordered comparisons differently
1790         than ordered ones.
1791         * tree.def (LTGT_EXPR): New '<' tree code.
1792         * doc/c-tree.texi (Expressions): Document floating-point
1793         comparison nodes.
1794
1795         Fold comparisons between floating point values.
1796         * fold-const.c (enum comparison_code): New, from
1797         #define'd constants.  Define compcodes for unordered
1798         comparisons and for invalid transformations.
1799         (invert_tree_comparison): Add "honor_nans" parameter.
1800         (fold_truthop): Revamp to work on floating-point types too.
1801         (comparison_to_compcode): Support unordered comparisons.
1802         Use new enum comparison_code.
1803         (compcode_to_comparison): Likewise.
1804         (combine_compcodes): New function.
1805         (invert_truthvalue): Let invert_tree_comparison decide
1806         whether it is valid to fold the comparison.  Fold ORDERED
1807         and UNORDERED even if flag_unsafe_math_optimizations is off,
1808         and the remaining even if flag_unsafe_math_optimizations
1809         is off but we are under -fno-trapping-math.
1810         (fold_relational_const): Integer modes do not honor NaNs.
1811
1812 2004-05-28  Paul Brook  <paul@codesourcery.com>
1813
1814         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
1815
1816 2004-05-28  Paul Brook  <paul@codesourcery.com>
1817
1818         * config/arm/arm.c (thumb_force_lr_save): New function.
1819         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
1820         thumb_output_function_prologue): Use it.
1821         (thumb_expand_prologue): Set lr_save_eliminated.
1822
1823 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
1824
1825         * config/mips/mips.md (extendsidi2): Tie the source and destination
1826         of the register alternative.  Split it into nothing.
1827
1828 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
1829
1830         * rtl.h (skip_consecutive_labels): Declare.
1831         * emit-rtl.c (skip_consecutive_labels): New function.
1832         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
1833         * jump.c (follow_jumps): Say what null return values mean.
1834
1835 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1836
1837         PR target/13250
1838         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
1839
1840 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1841
1842         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
1843         libgcc-std.ver.
1844         * config/sh/libgcc-std.ver: New file.
1845
1846 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
1847
1848         * except.c: Revert change of 2004-05-26.
1849         * config/i386/i386.md: Revert change of 2004-05-27.
1850
1851 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
1852
1853         * configure.ac: Remove --enable-tree-browser option.
1854         Define TREEBROWSER when ac_tree_checking is defined.
1855         * configure: Rebuilt.
1856
1857 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
1858
1859         * expr.c (store_constructor): Restore sanity check on
1860         the size of the type before clearing.
1861
1862 2004-05-27  Jan Hubicka  <jh@suse.cz>
1863
1864         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
1865
1866 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1867
1868         * combine.c (gen_binary): Remove.
1869         (known_cond, simplify_shift_const
1870         find_split_point, combine_simplify_rtx,
1871         simplify_if_then_else, simplify_set,
1872         simplify_logical, expand_field_assignment,
1873         extract_left_shift, force_to_mode,
1874         if_then_else_cond, apply_distributive_law,
1875         simplify_and_const_int, simplify_shift_const,
1876         gen_lowpart_for_combine, simplify_comparison,
1877         reversed_comparison): Replace with
1878         simplify_gen_binary, simplify_gen_relational or
1879         distribute_and_simplify_rtx.
1880         (distribute_and_simplify_rtx): New function.
1881         * simplify-rtx.c (simplify_binary_operation):
1882         Use nonzero_bits to simplify ANDs where we are
1883         turning off bits already known to be off in OP0.
1884
1885 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
1886
1887         PR target/14478
1888         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
1889
1890 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
1891
1892         PR middle-end/14084
1893         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
1894         to size of decl.
1895
1896 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
1897
1898         PR/14924
1899         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
1900
1901 2004-05-26  Roger Sayle  <roger@eyesopen.com>
1902
1903         * tree.h: Fix comment typo.
1904
1905 2004-05-27  Steven Bosscher  <stevenb@suse.de>
1906
1907         * gimplify.c (compare_case_labels): New function.
1908         (gimplify_switch_expr): Sort case labels, and make sure the
1909         last label in the label vector is the default case.
1910         * tree-cfg.c (group_case_labels): New function.
1911         (build_tree_cfg): Cleanup redundant labels and group case labels
1912         before creating edges.
1913         (cleanup_dead_labels): Handle GOTO_EXPRs.
1914         (find_case_label_for_value): Use a binary search to find the
1915         case label for the given value.
1916         * tree-gimple.c: Mention that labels are sorted, and that the
1917         last label must be the default.
1918
1919 2004-05-27  Jan Hubicka  <jh@suse.cz>
1920
1921         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
1922
1923 2004-05-27  Jan Hubicka  <jh@suse.cz>
1924
1925         * i386.md (UNSPECV_EH_RETURN): Kill.
1926         (eh_return): Use jump_insn.
1927         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1928
1929 2004-05-26  Jan Hubicka  <jh@suse.cz>
1930
1931         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
1932         not loop optimizing.
1933
1934 2004-05-26  Jan Hubicka  <jh@suse.cz>
1935
1936         * except.c (can_throw_internal):  Notice RESX instructions.
1937
1938 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
1939
1940         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
1941         of the two sizes to assemble_integer.
1942
1943 2004-05-25  Paul Brook  <paul@codesourcery.com>
1944
1945         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
1946         pointless #ifdef.
1947
1948 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
1949
1950         * Makefile.in (top_builddir): Define to .
1951
1952 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
1953
1954         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
1955         top-level detects, except when in-tree ld is being cross-built.
1956         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
1957         then AS only if target is host.
1958         * configure: Rebuilt.
1959
1960 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
1961
1962         * global.c (global_alloc): Call make_accurate_live_analysis.
1963         (record_one_conflict): Remove dead code.
1964         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
1965         (bb_info): New structure.
1966         (BB_INFO, BB_INFO_BY_INDEX): New macros.
1967         (allocate_bb_info, free_bb_info, mark_reg_change,
1968         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
1969         modify_bb_reg_pav, calculate_reg_pav,
1970         make_accurate_live_analysis): New functions.
1971
1972 2004-05-25  Devang Patel  <dpatel@apple.com>
1973
1974         * alias.c (init_alias_analysis): Use ggc_calloc instead of
1975         xrealloc.
1976         (end_alias_analysis): Use ggc_free instead fo free.
1977
1978 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
1979
1980         PR target/15546
1981         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
1982         as needed to be outputted.
1983
1984 2004-05-25  Jan Hubicka  <jh@suse.cz>
1985
1986         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
1987
1988 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
1989         Mostafa Hagog  <mustafa@il.ibm.com>
1990
1991         * Makefile.in (modulo-sched.o, ddg.o): New.
1992         * ddg.h, ddg.c, modulo-sched.c: New files.
1993         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
1994         internals to "dupicate_insn".
1995         (duplicate_insn): New function.
1996         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
1997         declarations.
1998         * common.opt (fmodulo-sched): New flag.
1999         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2000         Remove static and forward declaration.
2001         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2002         functions.
2003         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2004         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2005         declarations.
2006         * flags.h (flag_modulo_sched): New flag.
2007         * opts.c (common_handle_option): Handle modulo-sched flag.
2008         * params.def (max-sms-loop-number, sms-max-ii-factor,
2009         sms-dfa-history, sms-loop-average-count-threshold): New
2010         parameters.
2011         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2012         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2013         parameters.
2014         * passes.c ("sms", "sms-vcg"): New dumps.
2015         (rest_of_handle_sched): Call sms_schedule.
2016         * rtl.h (sms_schedule): New declaration.
2017         * timevar.def (TV_SMS): New.
2018         * toplev.c (flag_modulo_sched): Initialize.
2019         (f_options): Handle -fmodulo-sched option.
2020         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2021         * docs/passes.texi: Document new SMS pass.
2022
2023 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2024
2025         * Makefile.in (OBJS): Add rtlhooks.o.
2026         (rtlanal.o): Depend on function.h.
2027         (cse.o): Depend on rtlhooks-def.h.
2028         (combine.o): Depend on rtlhooks-def.h.
2029         (rtlhooks.o): New rule.
2030         * combine.c: Include rtlhooks-def.h.
2031         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2032         num_sign_bit_copies, cached_num_sign_bit_copies,
2033         num_sign_bit_copies1): Move most of the code to rtlanal.c.
2034         (reg_nonzero_bits_for_combine,
2035         reg_num_sign_bit_copies_for_combine): New functions holding
2036         the remnants of the above.
2037         (combine_rtl_hooks): New.
2038         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2039         * cse.c: Include rtlhooks-def.h.
2040         (cse_rtl_hooks): New.
2041         (cse_main): Set rtl_hooks instead of gen_lowpart.
2042         * emit-rtl.c (gen_lowpart): Remove.
2043         (gen_lowpart_general): Move to rtlhooks.c.
2044         * rtl.h (nonzero_bits, num_sign_bit_copies,
2045         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2046         (gen_lowpart_general): Remove.
2047         (gen_lowpart): Temporarily redefine as a macro.
2048         * rtlanal.c: Include function.h.
2049         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2050         num_sign_bit_copies, cached_num_sign_bit_copies,
2051         num_sign_bit_copies1): New, from combine.c.
2052         * rtlhooks.c: New file.
2053         * rtlhooks-def.h: New file.
2054
2055 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2056
2057         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2058         to support 32-bit -mint8 mode.
2059
2060         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2061         option in the AVR architecture.
2062
2063 2004-05-24  Mike Stump  <mrs@apple.com>
2064
2065         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2066
2067 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2068
2069         * intl.h (open_quote, close_quote): New.
2070         * intl.c (open_quote, close_quote): New.
2071         (gcc_init_libintl): Set them.
2072         * pretty-print.c: Include "intl.h".
2073         (pp_base_format_text): Support 'q' format flag and %` and %'
2074         formats.  Use ' instead of ` in comments.
2075         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2076         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2077         foramt_types_orig): Describe these new formats.
2078         (decode_format_attr, check_function_format,
2079         check_format_info_main): Use these new formats.
2080         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2081         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2082         check these formats to 3.5.
2083
2084 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2085
2086         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2087         (BACKEND): Reflect this.
2088         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2089         (LIBS): Likewise.
2090
2091 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2092
2093         PR tree-optimization/14197
2094         * builtins.c: Include "tree-gimple.h"
2095         (readonly_data_expr): Use get_base_address.  Make sure to call
2096         decl_readonly_section only on trees it can handle.
2097         * tree-gimple.c (get_base_address): Accept STRING_CST and
2098         CONSTRUCTOR expressions.
2099         * Makefile.in: Update dependencies.
2100
2101 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2102
2103         Move libcpp to the toplevel.
2104         * Makefile.in: Remove references to libcpp files,
2105         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2106         and change hashtable.h to that.
2107         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2108         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2109         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2110         * configure: Regenerate.
2111         * config.in: Regenerate.
2112         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2113         * cppcharset.c: Removed.
2114         * cpperror.c: Removed.
2115         * cppexp.c: Removed.
2116         * cppfiles.c: Removed.
2117         * cpphash.c: Removed.
2118         * cpphash.h: Removed.
2119         * cppinit.c: Removed.
2120         * cpplex.c: Removed.
2121         * cpplib.c: Removed.
2122         * cpplib.h: Removed.
2123         * cppmacro.c: Removed.
2124         * cpppch.c: Removed.
2125         * cpptrad.c: Removed.
2126         * cppucnid.h: Removed.
2127         * cppucnid.pl: Removed.
2128         * cppucnid.tab: Removed.
2129         * hashtable.c: Removed.
2130         * hashtable.h: Removed.
2131         * line-map.c: Removed.
2132         * line-map.h: Removed.
2133         * mkdeps.c: Removed.
2134         * mkdeps.h: Removed.
2135         * stringpool.h: Include symtab.h instead of hashtable.h.
2136         * tree.h: Include symtab.h instead of hashtable.h.
2137         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2138
2139 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2140
2141         * gcc.c (struct prefix_list): Add forward declaration.
2142         (do_spec_path): New function, extracted from...
2143         (do_spec_1) <'D'>: ... here.  Drop support for
2144         SPACE_AFTER_L_OPTION.
2145         (do_spec_1) <'I'>: Use do_spec_path.
2146         (process_command): Do not store the 'include' suffix
2147         in include_prefixes.
2148         * system.h: Poison SPACE_AFTER_L_OPTION.
2149
2150 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2151
2152         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2153         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2154
2155 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2156
2157         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2158         Update based on printed manual.  Enable setting of offsets for
2159         FSFPRINT and move it to gcc-common.texi.
2160         * doc/gcc.texi: Update FSF printing details.
2161         * doc/gccint.texi: Remove FSF printing details.
2162
2163 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2164
2165         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2166
2167 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2168
2169         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2170         expand_builtin_strrchr, expand_builtin_strpbrk,
2171         expand_builtin_mempcpy, expand_builtin_memcmp,
2172         expand_builtin_strcmp, expand_builtin_strncmp,
2173         expand_builtin_strcat, std_expand_builtin_va_start,
2174         std_expand_builtin_va_arg, expand_builtin_va_copy,
2175         expand_builtin_signbit, fold_builtin_cabs,
2176         fold_builtin_logarithm, fold_builtin_mempcpy,
2177         fold_builtin_signbit, fold_builtin_isascii,
2178         fold_builtin_toascii, fold_builtin_isdigit,
2179         fold_builtin_1, build_function_call_expr,
2180         simplify_builtin_strchr, simplify_builtin_strrchr,
2181         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2182         simplify_builtin_memcmp, simplify_builtin_strcmp,
2183         simplify_builtin_strncmp, simplify_builtin_strncat,
2184         simplify_builtin_strspn, simplify_builtin_strcspn,
2185         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2186         to build with calls to build2, build3 or omit_one_operand.
2187
2188 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2189
2190         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2191         section when generating EABI code.
2192
2193 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2194
2195         PR 15546
2196         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2197         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2198
2199 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2200
2201         * c-common.c (c_common_truthvalue_conversion): Handle
2202         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2203         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2204         i.e. set the type to truthvalue_type_node and return.
2205
2206 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2207
2208        * tree.h (struct tree_decl): Add possibly_inlined bit.
2209         (DECL_POSSIBLY_INLINED): New accessor macro.
2210         * cgraph.h: Remove declaration of cgraph_inline_hash.
2211         * cgraph.c: Remove definition of cgraph_inline_hash.
2212         (hash_node): Revert to hashing DECL_UID.
2213         (eq_node): Take two pointers to cgraph_node structures.
2214         Compare DECL_UIDs.
2215         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2216         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2217         hash on DECL_UID.
2218         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2219         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2220         (cgraph_node): Allocate a temporary node on the stack, fill in
2221         its DECL field, and pass that to htab_find_slot.
2222         (cgraph_varpool_node): Likewise.
2223         (cgraph_function_possibly_inlined_p): If global info is ready,
2224         return the DECL_POSSIBLY_INLINED bit.
2225         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2226         instead of mucking with cgraph_inline_hash.
2227
2228 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2229
2230         * doc/contrib.texi: Add g77 contributors.
2231
2232 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2233
2234         * calls.c (initialize_argument_information): Forbid sibcalls if a
2235         callee-copied argument is stored in the current function's frame.
2236
2237 2004-05-22  Eric Christopher  <echristo@redhat.com>
2238
2239         * fix-header.c (read_scan_file): Update for add_path change.
2240
2241 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2242
2243         * c.opt (Wmissing-include-dirs): New.
2244         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2245         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2246         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2247         * c-incpath.h (add_path): Add fourth (bool) argument.
2248         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2249         (add_standard_paths): Likewise.
2250         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2251         is used and the directory was user-supplied via -I.
2252         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2253         using add_cpp_dir_path ().
2254         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2255         (struct cpp_dir): Add user_supplied_p.
2256         * doc/invoke.texi (Warning Options): Document new option.
2257
2258 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2259
2260         * fold-const.c (fold_read_from_constant_string): Convert result to
2261         requested type.
2262
2263 2004-05-21  Richard Henderson  <rth@redhat.com>
2264
2265         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2266         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2267         Don't mark VA_ARG_EXPRs volatile here.
2268         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2269
2270 2004-05-21  Richard Henderson  <rth@redhat.com>
2271
2272         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2273         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2274
2275 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2276
2277         * fold-const.c (fold, fold_relational_hi_lo,
2278         nondestructive_fold_binary_to_constant,
2279         fold_read_from_constant_string): Use fold_convert instead of convert.
2280         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2281         simplify_builtin_strchr, simplify_builtin_strrchr,
2282         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2283
2284 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2285
2286         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2287         is NULL.
2288
2289 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2290
2291         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2292         override sparc.h definition.
2293
2294 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2295
2296         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2297         get_unwidened, get_narrower): Replace build with build2.
2298         * fold-const.c (negate_expr, associate_trees, size_binop,
2299         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2300         pedantic_omit_one_operand, distribute_bit_expr,
2301         make_bit_field_ref, optimize_bit_field_compare,
2302         decode_field_reference, range_binop, make_range,
2303         build_range_check, fold_range_test, fold_truthop,
2304         optimize_minmax_comparison, extract_muldiv_1,
2305         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2306         fold_inf_compare, fold_single_bit_test, fold,
2307         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2308         Likewise replace build with either build2 or build3.
2309
2310 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
2311
2312         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2313         * calls.c (prepare_call_address): Don't test
2314         NO_RECURSIVE_FUNCTION_CSE.
2315         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2316         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2317         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2318         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2319         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2320         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2321         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2322         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2323         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2324         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2325         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2326         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2327         Likewise.
2328         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2329         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2330         * doc/tm.texi (Costs): Remove documentation for
2331         NO_RECURSIVE_FUNCTION_CSE.
2332
2333 2004-05-20  Paul Brook  <paul@codesourcery.com>
2334
2335         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2336         * unwind-dw2.c (extract_cie_info): Ditto.
2337         (_Unwind_FrameState): Change retaddr_column to word type.
2338
2339 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2340
2341         PR middle-end/3074
2342         * fold-const.c (strip_compound_expr): Delete function.
2343         (count_cond): Delete function.
2344         (fold_binary_op_with_conditional_arg): Only perform transformations
2345         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2346         when a is constant.  This greatly simplifies this routine.
2347
2348         * tree.c (saved_expr_p): Delete function.
2349         * tree.h (saved_expr_p): Delete function prototype.
2350
2351 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2352
2353         * common.opt (ftree-loop-optimize): Remove.
2354
2355 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
2356
2357         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2358         (NM_FOR_TARGET): Use := and $(shell).
2359         (mainversion): Remove unused variable.
2360
2361 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2362
2363         * reorg.c (delete_from_delay_slot): If we have a barrier after the
2364         sequence containing the insn to be deleted, always reemit it.
2365
2366 2004-05-20  Richard Henderson  <rth@redhat.com>
2367
2368         PR 15454
2369         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2370         * function.c (expand_function_start): Expand static_chain_decl by hand.
2371         * gimplify.c (create_tmp_var_name): Export.
2372         * tree-gimple.h (create_tmp_var_name): Declare.
2373
2374 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2375
2376         * rs6000.c (print_operand) <case 'z'>: Call
2377         mark_decl_referenced before assemble_name.
2378
2379 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
2380
2381         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2382         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2383         (cgraph_varpool_node): Hash on the pointer to the decl, not
2384         the DECL_UID.  Fixes 64-bit bootstrap failure.
2385
2386 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
2387
2388         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2389         we don't earlyclobber operands used in the second insn.
2390
2391 2004-05-20  Steven Bosscher  <stevenb@suse.de>
2392
2393         * tree-mudflap.c: Formatting fixes.
2394
2395 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2396
2397         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2398         * gengtype.c (open_base_files): Include reload.h in ifiles.
2399         * reload.h (reg_equiv_memory_loc_varray): Declare.
2400         * reload1.c (reg_equiv_memory_loc_varray): New variable.
2401         (init_reload): Initialize it.
2402         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2403         reg_equiv_memory_loc_varray to size 0.
2404         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2405         growing reg_equiv_memory_loc_varray to the desired size.
2406         * passes.c (rest_of_handle_old_regalloc): Likewise.
2407         * reload.c: Amend comment on calling init_reload.
2408
2409 2004-05-20  Nick Clifton  <nickc@redhat.com>
2410
2411         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2412         with 'TRAMP' in the body of the macro definition.
2413
2414 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2415
2416         PR target/15383
2417         * config/ia64/ia64.c (ia64_expand_compare): Don't check
2418         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2419         cmptf_libfunc isn't set.
2420         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2421         conventions.
2422         (ia64_sysv4_init_libfuncs): New.
2423
2424         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2425         ia64_sysv4_init_libfuncs.
2426
2427 2004-05-20  Falk Hueffner  <falk@debian.org>
2428
2429         PR other/15526
2430         * libgcc2.c (__mulvsi3): Fix overflow test.
2431
2432 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
2433
2434         PR c/14171
2435         * reg-stack.c (nan): Rename to ...
2436         (not_a_num): Here.
2437         (reg_to_stack): Rename nan to not_a_num.
2438         (subst_stack_regs_pat): Likewise.
2439         (convert_regs_entry): Likewise.
2440         (convert_regs_1): Likewise.
2441
2442         * tree-cfg.c (find_case_label_for_value): Replace call to
2443         simple_cst_equal with tree_int_cst_equal.
2444
2445 2004-05-19  Jeff Law <law@redhat.com>
2446
2447         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2448         If the operand is for a use, then strip away the SSA_NAME, do not
2449         strip away the SSA_NAME for a set.  Never call release_ssa_name.
2450         (mark_def_sites): Appropriately pass additional argument to
2451         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
2452         then set the VDEF_RESULT to the VDEF_OP.
2453         (set_def_block): Strip away any SSA_NAME to get to the real
2454         underlying variable.
2455
2456         * tree-ssa-phiopt.c (value_replacement): Handle the case where
2457         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2458         BB directly.
2459
2460 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2461
2462         PR c++/15463
2463         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
2464         result of inverse.
2465
2466         PR rtl-optimization/15274
2467         * loop-iv.c (determine_max_iter, shorten_into_mode,
2468         iv_number_of_iterations): Handle constants correctly.
2469         * rtl.h (get_mode_bounds): Declaration changed.
2470         * stor-layout.c (get_mode_bounds): Return a constant suitable for
2471         the target mode.
2472
2473         PR rtl-optimization/14692
2474         * loop-unswitch.c (may_unswitch_on): Try folding the result.
2475         (unswitch_single_loop): Work correctly when may_unswitch_on
2476         returns a folded constant.
2477
2478         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2479         * simplify-rtx.c (simplify_const_relational_operation): Optimize
2480         comparisons with mode bounds.
2481
2482         * function.c (struct temp_slot): Add new field prev.
2483         (free_after_compilation, init_temp_slots): Free new fields.
2484         (cut_slot_from_list, insert_slot_to_list,
2485         temp_slots_at_level, max_slot_level, move_slot_to_level,
2486         make_slot_available): New functions.
2487         (assign_stack_temp_for_type, combine_temp_slots,
2488         find_temp_slot_from_address, preserve_temp_slots,
2489         preserve_rtl_expr_result, free_temp_slots,
2490         free_temps_for_rtl_expr, pop_temp_slots): Work with
2491         the new structure of lists.
2492         (mark_all_temps_used): Removed.
2493         * function.h (struct function): Field x_temp_slots
2494         replaced by x_used_temp_slots and x_avail_temp_slots.
2495         (temp_slots): Replaced by ...
2496         (used_temp_slots, avail_temp_slots): New.
2497         * tree.h (mark_all_temps_used): Declaration removed.
2498
2499         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2500         simplify_using_assignment): Take the expression out of
2501         the expr_list wrapper.
2502
2503         * loop-iv.c (iv_number_of_iterations): Improve clasification of
2504         infinite loops.
2505
2506 2004-05-19  Roger Sayle  <roger@eyesopen.com>
2507
2508         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2509         costs should be based on code size when optimizing for size.
2510
2511 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
2512
2513         * fold-const.c: Remove non-printable character 160.
2514
2515 2004-05-19  Nick Clifton  <nickc@redhat.com>
2516
2517         * doc/invoke.texi (ARM Options): Fix typo.
2518         Remove descrption of -mshort-load-bytes and
2519         -mno-short-load-bytes.
2520
2521         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2522         missing parenthesis.
2523         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2524         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2525
2526 2004-05-19  Steven Bosscher  <stevenb@suse.de>
2527
2528         * expr.c (store_constructor): Build loop start and end by hand
2529         instead of via loop functions from stmt.c.
2530         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2531         Remove the code to expand them.
2532
2533         * stmt.c (loop_stack): Remove this and everything related.
2534         (struct nesting, enum nesting_desc): Update.
2535         (expand_fixup): Likewise.
2536         (expand_loop_start, expand_start_loop_continue_elsewhere,
2537         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2538         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
2539         expand_exit_loop_if_false, expand_exit_loop_top_cond,
2540         expand_exit_something): Remove.
2541         * tree.h: Remove prototypes.
2542
2543 2004-05-18  Mike Stump  <mrs@apple.com>
2544             Devang Patel  <dpatel@apple.com>
2545
2546         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
2547         if this label is for eh.
2548         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
2549         * config/darwin.c (darwin_emit_unwind_label): Likewise.
2550         * dwarf2out.c (output_call_frame_info): Likewise.
2551         * output.h (default_emit_unwind_label): Likewise.
2552         * target.h (unwind_label): Likewise.
2553         * varasm.c (default_emit_unwind_label): Likewise.
2554
2555         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2556         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
2557         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
2558         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
2559         DEBUG_RANGES_SECTION): Define.
2560
2561 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
2562
2563         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2564         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2565         (cgraph_varpool_node):
2566         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
2567         (cgraph_function_possibly_inlined_p): Use the decl itself for
2568         the key, not DECL_ASSEMBLER_NAME.
2569         (change_decl_assembler_name): No need to muck with the hash tables.
2570         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
2571         Delete.
2572         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
2573         for the key, not DECL_ASSEMBLER_NAME.
2574         * cgraph.h: Remove prototypes of deleted functions.
2575         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
2576         (mark_decl_referenced): New function.
2577         * tree.h: Prototype mark_decl_referenced.
2578         * final.c (output_addr_const) <case SYMBOL_REF>: Call
2579         mark_decl_referenced before assemble_name.
2580         * c-decl.c (finish_decl): Use mark_decl_referenced.
2581
2582 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
2583             Jeff Law <law@redhat.com>
2584
2585         * tree-ssa-phiopt.c (abs_replacement): New function.
2586         (empty_block_p): New function extracted from...
2587         (candidate_bb_for_phi_optimization): Break out empty block test.
2588         (conditional_replacement): Use empty_block_p.
2589         (value_replacement): Similarly.
2590
2591         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
2592         * tree-ssa-phiopt.c: Include flags.h.
2593         (conditional_replacement): Remove argument names from prototype.
2594         Minor formatting and comment fixes.
2595         (tree_ssa_phiopt): If conditional_replacement returns false, then
2596         call value_replacement.
2597         (value_replacement): New function.
2598
2599 2004-05-18  Jeff Law  <law@redhat.com>
2600
2601         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
2602         from conditional_replacement.
2603         (candidate_bb_for_phi_optimization): Similarly.
2604         (conditional_replacement): Use replace_phi_with_stmt and
2605         candidate_bb_for_phi_optimization.
2606
2607         * tree-ssa-phiopt.c: Fix various formatting issues.
2608
2609 2004-05-18  Steven Bosscher  <stevenb@suse.de>
2610
2611         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
2612         s390_expand_cmpmem): Do not use expand_start_loop and
2613         expand_end_loop, instead build the loop manually.
2614
2615 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
2616
2617         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
2618         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
2619
2620 2004-05-17  Jeff Law  <law@redhat.com>
2621
2622         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
2623         * flags.h (flag_delete_null_pointer_checks): Here.
2624         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
2625         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
2626         (add_phi_arg, remove_phi_arg_num): Similarly.
2627         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
2628         property into PHI nodes.
2629         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
2630         (record_equivalences_from_phis): If all PHI arguments are known to be
2631         nonzero, then the result must be nonzero as well.
2632         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
2633         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
2634         appropriately.  Walk the USE-DEF chains and propagate nonzero property
2635         as appropriate.
2636         * tree.h (PHI_ARG_NONZERO): Define.
2637         (phi_arg_d): Add nonzero flag.
2638
2639 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
2640
2641         * f: Entire directory removed
2642
2643         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
2644         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
2645         (g77_integer_type_node, g77_uinteger_type_node)
2646         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
2647         * c-common.c (c_common_nodes_and_builtins): Do not initialize
2648         the above set of variables.
2649
2650         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
2651         * doc/invoke.texi, doc/standards.texi: Remove cross-references
2652         to g77 manual.
2653
2654 2004-05-17  Steven Bosscher  <stevenb@suse.de>
2655
2656         PR tree-optimization/15438
2657         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
2658         attributed functions as pure or const.
2659
2660 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
2661
2662         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
2663         from source code with errors.
2664
2665 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
2666
2667         Enable tree browser for all front ends.
2668         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
2669         (BACKEND): ...to here.
2670
2671 2004-05-17  Jan Hubicka  <jh@suse.cz>
2672
2673         * i386.c (construct_container): Do not produce BLKmode registers.
2674         (classify_argument): Properly compute alignment of complex types.
2675
2676 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
2677
2678         PR target/15084
2679         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
2680         and renamed to movdi_insv_1_rex64.
2681         (insv): Support SImode for 32bit and DImode for 64bit.
2682
2683 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2684
2685         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
2686         (TARGET_SWITCHES): Remove debugg.
2687         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
2688         TARGET_64BIT.
2689         (subdi3): Replace the define_expand with a define_insn, the latter
2690         renamed from subdi3_internal_3.
2691         (negdi2): Likewise negdi2_internal_2.
2692         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
2693         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
2694         and associated define_splits.
2695         (adddi3_internal): Renamed from adddi3_internal_3.
2696         (ashldi3_internal): Likewise ashldi3_internal4.
2697         (ashrdi3_internal): Likewise ashrdi3_internal4.
2698         (lshrdi3_internal): Likewise lshrdi3_internal4.
2699
2700 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2701
2702         * optabs.c (expand_unop): Try implementing negation using subtraction
2703         from zero.
2704
2705 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2706
2707         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
2708         SAR register.
2709
2710 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
2711
2712         PR target/10982
2713         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
2714         (ne_zeroextractsi_shifted): New pattern.
2715         (ite_ne_zeroextractsi): New pattern.
2716         (ite_ne_zeroextractsi_shifted): New pattern.
2717
2718 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2719
2720         * c-gimplify.c (c_genericize):
2721         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
2722         * c-parse.in <expr_no_commas>: Likewise.
2723         <if_prefix>: Likewise.
2724         <select_or_iter_stmt>: Likewise.
2725         * expr.c (expand_var, expand_expr_real_1): Likewise.
2726         * expr.h (expand_expr): Make it a static inline function.
2727         Move prototype for expand_expr_real up before this.
2728         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
2729         Likewise.
2730         * gimplify.c (gimple_boolify, gimplify_addr_expr,
2731         gimplify_asm_expr, gimplify_expr): Likewise.
2732         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
2733         dump_function_to_file): Likewise.
2734         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
2735         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
2736         * tree-into-ssa.c (dump_tree_ssa): Likewise.
2737         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
2738         Likewise.
2739         * tree-optimize.c (execute_one_pass): Likewise.
2740         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
2741         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
2742
2743         * objc/objc-act.c (objc_build_try_enter_fragment,
2744         objc_build_try_epilogue, objc_build_catch_stmt,
2745         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
2746         with lang_hooks.foo ().
2747
2748 2004-05-15  Roger Sayle  <roger@eyesopen.com>
2749
2750         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
2751         that simplify_builtin doesn't destructively modify its argument.
2752
2753 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2754
2755         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
2756         implementations for ARM and Thumb.
2757         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
2758
2759 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
2760
2761         * prefix.c (update_path): Replace PREFIX with KEY only
2762         when it matches a full directory name in PATH.
2763
2764 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2765
2766         * arm.h (TARGET_APCS_32): Delete.
2767         (TARGET_MMU_TRAPS): Delete.
2768         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
2769         define __APCS_26__.
2770         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
2771         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
2772         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
2773         (prog_mode_type): Delete.
2774         (PROMOTE_MODE): Always promote unsigned for HImode.
2775         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
2776         (MASK_RETURN_ADDR): Simplify.
2777         * arm.c (arm_prgmode): Delete.
2778         (arm_override_options, arm_gen_rotated_half_load): Simplify.
2779         (print_multi_reg, output_return_instruction): Simplify.
2780         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
2781         (arm_return_addr): Simplify.
2782         * arm.md (prog_mode): Delete.
2783         (conds): Simplify.
2784         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
2785         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
2786         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
2787         (loadhi_shiftpredec): Delete.
2788         (peephole for post-increment on HImode load): Delete.
2789         * arm/crtn.asm: (FUNC_END): Simplify.
2790         * arm/lib1funcs.asm: Remove APCS-26 return macros.
2791         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
2792         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
2793         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
2794         MULTILIB_DEFAULTS as required.
2795         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
2796         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
2797         variables as required.
2798         * doc/invoke.texi (ARM Options): Remove obsolete flags.
2799
2800 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
2801
2802         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
2803         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
2804         count to 8 to handle n_reg > 2.
2805
2806 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2807
2808         * doc/extend.texi: Update WG14 URL.
2809
2810 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2811
2812         * basic-block.h (life_analysis, delete_noop_moves):
2813         Update prototypes.
2814         * bt-load.c (branch_target_load_optimize): Don't take the
2815         insns stream as an argument.  Update the life_analysis calls.
2816         * combine.c (combine_instructions): Update delete_noop_moves
2817         calls.
2818         * flow.c (notice_stack_pointer_modification): Don't take the
2819         insns stream as an argument.  Work on the flow graph.
2820         (life_analysis): Likewise.
2821         (delete_noop_moves): Likewise.
2822         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
2823         (rest_of_handle_life): Update life_analysis call.
2824         (rest_of_compilation): Likewise, and also update
2825         branch_target_load_optimize call.
2826         * ra.c (reg_alloc): Update life_analysis call.
2827         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
2828         the insns stream as an argument.
2829         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
2830         call.
2831         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
2832         prototypes.
2833         * value-profile.c (branch_prob): Update life_analysis call.
2834         * web.c (web_main): Work on the CFG, not on the insns stream.
2835
2836         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
2837         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
2838         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2839
2840 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2841
2842         PR c/15444
2843         * c-format.c (avoid_dollar_number): New function.
2844         (check_format_info_main): Call avoid_dollar_number when operand
2845         numbers might occur but has_operand_number == 0.
2846
2847 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
2848
2849         * arm.md (all peephole2 patterns): Use predicates that validate
2850         register classes as appropriate.
2851
2852 2004-05-14  Steven Bosscher  <stevenb@suse.de>
2853
2854         PR opt/14472
2855         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
2856         ignore type conversions that do not inhibit tail calling.
2857         (find_tail_calls): Likewise.
2858
2859 2004-05-14  Jeff Law  <law@redhat.com>
2860
2861         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
2862         bother marking bypassed virtuals for out-of-ssa.  Instead merge
2863         bypassed virtuals into vars_to_rename just before into-ssa pass.
2864
2865         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
2866         so that it picks up more opportunities to eliminate ABS expressions
2867         or turn them into negations.
2868
2869 2004-05-14  Steven Bosscher  <stevenb@suse.de>
2870
2871         * passes.c (rest_of_handle_null_pointer): Remove.
2872         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
2873         (rest_of_compilation): Likewise.
2874         * rtl.h (delete_null_pointer_checks): Remove prototype.
2875         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
2876         Remove declarations.
2877         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
2878         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
2879         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
2880         expr_reaches_here_p, computing_insn, def_reaches_here_p,
2881         can_disregard_other_sets, handle_avail_expr, classic_gcse,
2882         one_classic_gcse_pass, invalidate_nonnull_info,
2883         delete_null_pointer_checks_1, delete_null_pointer_checks,
2884         expr_reached_here_p_work): Remove.
2885         (gcse_main): Do not perform classic GCSE when optimizing for size.
2886         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
2887         are never used.
2888
2889 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
2890
2891         PR optimization/14466
2892         * tree-complex.c (make_temp): Remove.
2893         (gimplify_val): Replace make_temp with make_rename_temp
2894         and add NULL as the second argument.
2895         (expand_complex_div_wide): Likewise.
2896         * tree-dfa.c (make_rename_temp): New function.
2897         * tree-flow.h (make_rename_temp): Declare.
2898         * tree-sra.c (make_temp): Remove.
2899         (lookup_scalar): Replace make_temp with make_rename_temp.
2900         (create_scalar_copies): Likewise.
2901         * tree-ssa-phiopt.c (conditional_replacement): When we
2902         get non gimple create a temporary variable to hold the
2903         casted expression.
2904
2905 2004-05-14  Paul Brook  <paul@codesourcery.com>
2906
2907         * stor-layout.c (update_alignment_for_field): Use
2908         targetm.align_anon_bitfield.
2909         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
2910         (TARGET_INITIALIZER): Use it.
2911         * target.h (struct gcc_target): Add align_anon_bitfield.
2912         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
2913         (TARGET_ALIGN_ANON_BITFIELD): Define.
2914         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
2915
2916 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
2917
2918         * tree.def (documentation): Remove mention of class 'b'.
2919         (BLOCK): Now in class 'x'.
2920         * c-common.c (verify_tree): Remove case 'b'.
2921         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
2922         * calls.c (calls_function_1): Control cannot get past the switch
2923         when exp is a BLOCK.
2924         * print-tree.c (print_node): Move code for class 'b' to the class
2925         'c'/'x' switch, as case BLOCK.
2926         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
2927         (unsafe_for_reeval, substitute_placeholder_in_expr)
2928         (stabilize_reference_1): Remove case 'b'.
2929         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
2930         of something being 'b' to tests for TREE_CODE of something being
2931         BLOCK.
2932         * tree-ssa-operands.c (get_expr_operands): Likewise.
2933
2934 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2935
2936         * tree-gimple.c: Rename from tree-simple.c.
2937         * tree-gimple.h: Rename from tree-simple.h.
2938         * c-gimplify.c: Rename from c-simplify.c
2939         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
2940         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
2941         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
2942         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
2943         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
2944         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
2945         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
2946         Update.
2947
2948 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
2949
2950         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
2951
2952 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2953
2954         * tree-ssa.c (delete_tree_ssa): XFREE
2955         bitmaps allocated with BITMAP_XMALLOC.
2956
2957         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
2958         idfs_cache at the end of the function.
2959
2960         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
2961         at the end of the function.
2962
2963         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
2964         el at the end of the function.
2965
2966         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
2967         bitmaps allocated with BITMAP_XMALLOC.
2968
2969         * loop-unswitch.c (unswitch_single_loop): Free bbs at
2970         the end.
2971
2972         * final.c (shorten_branches): Free uid_shuid before
2973         reallocating it.
2974
2975         * bb-reoder.c (connect_traces): Free cold_traces at the end.
2976
2977 2004-05-13  Jeff Law  <law@redhat.com>
2978
2979         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
2980         variables.  Simplify slightly by using USE_OP/DEF_OP instead
2981         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
2982
2983         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
2984         rather than iterating through the blocks testing each bit in
2985         livein to initialize the worklist.
2986         (mark_def_sites): Remove useless checks of KILLS for virtual
2987         operands.
2988
2989         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
2990         new parameters for the statement and variable worklist as well
2991         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
2992         worklist recording interesting variables in the variable worklist
2993         and bitmap.  Handle casts between integral and boolean types.
2994         (substitute_single_use_vars): Accept new parameters for the statement
2995         and variable worklist.  When a substitution is made add a new
2996         entry to the statement worklist.  Handle casts between integral
2997         and boolean types.
2998         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
2999         worklists to children.  Iterate until the statement worklist
3000         is empty.
3001
3002 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3003
3004         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3005         the end of the block.
3006
3007         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3008         with BITMAP_XMALLOC.
3009
3010         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3011         with BITMAP_XMALLOC.
3012
3013         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3014         Free nonzero_vars at the end of the function.
3015
3016         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3017         need to generate code instead of a NOP_EXPR.
3018
3019 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
3020
3021         * gcc.c (default_compilers): Fill out initializers for new Fortran
3022         entries.
3023
3024 2004-05-13  Paul Brook  <paul@codesourcery.com>
3025
3026         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3027
3028 2004-05-13  Paul Brook  <paul@codesourcery.com>
3029
3030         * config/arm/arm.c (arm_default_short_enums): New function.
3031         (TARGET_DEFAULT_SHORT_ENUMS): Define.
3032
3033 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3034
3035         Merge from tree-ssa-20020619-branch.
3036
3037         * Makefile.in (reload1.o-warn): Add.
3038         (tree-alias-ander.o-warn): Add.
3039         (GMPLIBS): Define.
3040         (GMPINC): Define.
3041         (BANSHEELIB): Define.
3042         (BANSHEEINC): Define.
3043         (TREE_DUMP_H): Define.
3044         (TREE_SIMPLE_H): Define.
3045         (TREE_FLOW_H): Define.
3046         (LIBDEPS): Add BANSHEELIB.
3047         (INCLUDES): Add BANSHEEINC and GMPINC.
3048         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3049         c-mudflap.o and c-pretty-print.o.
3050         (C_OBJS): Remove c-pretty-print.o.
3051         (OBJS-common): Remove sibcall.o.
3052         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3053         tree-ssa.o, tree-optimize.o, tree-simple.o,
3054         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3055         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3056         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3057         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3058         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3059         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3060         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3061         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3062         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3063         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3064         tree-profile.o.
3065         (OBJC-archive): Add tree-nomudflap.o.
3066         (cc1): Add dependency on @TREEBROWSER@.
3067         (c-decl.o): Add dependency on TREE_DUMP_H.
3068         (c-dump.o): Likewise.
3069         (c-common.o): Add dependency on tree-iterator.h
3070         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3071         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3072         (tree.o): Add dependency on tree-iterator.h,
3073         BASIC_BLOCK_H and TREE_FLOW_H.
3074         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3075         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3076         (tree-alias-type.o, tree-alias-ander.o,
3077         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3078         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3079         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3080         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3081         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3082         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3083         tree-nested.o, tree-iterator.o, tree-dfa.o,
3084         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3085         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3086         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3087         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3088         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3089         tree-sra.o, tree-complex.o, tree-profile.o,
3090         rtl-profile.o): New rules.
3091         (function.o): Add dependency on basic-block.h
3092         (expr.o): Add dependency on tree-iterator.h.
3093         (sibcall.o): Remove.
3094         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3095         (cfg.o): Add dependency on TIMEVAR_H.
3096         (cfghooks.o): Add dependency on TREE_FLOW_H.
3097         (reg-stack.o): Add dependency on basic-block.h.
3098         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3099         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3100         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3101         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3102         tree-alias-type.h, tree-alias-common.h,
3103         tree-alias-type.c, tree-alias-common.c,
3104         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3105         rtl-profile.c and tree-nested.c.
3106         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3107         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3108         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3109         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3110         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3111         * basic-block.h: Include predict.h
3112         (struct edge_def): Add GTY marker.
3113         Change field 'insns' to be a union of tree and rtx.
3114         (EDGE_TRUE_VALUE): Define.
3115         (EDGE_FALSE_VALUE): Define.
3116         (EDGE_EXECUTABLE): Define.
3117         (struct bb_ann_d): Forward declare.
3118         (struct basic_block_def): Add GTY marker.
3119         Remove fields head_tree and end_tree.
3120         Add fields stmt_list, rbi and tree_annotations.
3121         (struct reorder_block_def): Define.
3122         (basic_block_info): Add GTY marker.
3123         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3124         variables instead of macros.
3125         (flow_call_edges_add): Remove declaration.
3126         (make_eh_edge): Remove declaration.
3127         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3128         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3129         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3130         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3131         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3132         (try_redirect_by_replacing_jump): Modfiy return type to
3133         edge instead of bool.
3134         * bb-reorder.c (copy_bb): Call duplicate_block
3135         instead of cfg_layout_duplicate_bb.
3136         (copy_bb_p): Call can_duplicate_block_p instead of
3137         cfg_layout_can_duplicate_bb_p.
3138         * bitmap.c (bitmap_first_set_bit): Abort if word
3139         wasn't found.
3140         (bitmap_last_set_bit): Likewise.
3141         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3142         (DEF_FUNCTION_TYPE_3): Add.
3143         * builtins.c (c_strlen): Make extern.
3144         (builtin_save_expr): New.
3145         (expand_builtin_nonlocal_goto): New.
3146         (expand_builtin_constant_p): Remove.
3147         (expand_builtin_mathfn): Call builtin_save_expr instead
3148         of save_expr.
3149         (expand_builtin_mathfn_2): Likewise.
3150         (expand_builtin_strcmp): Likewise.
3151         (expand_builtin_strncmp): Likewise.
3152         (expand_builtin_strcat): Likewise.
3153         (fold_builtin_cabs): Likewise.
3154         (expand_builtin_alloca): Don't trigger if -fmudflap is
3155         given.
3156         (build_string_literal): Set TREE_INVARIANT on new node.
3157         (expand_builtin_profile_fun): New.
3158         (round_trampoline_addr): New.
3159         (expand_builtin_init_trampoline): New.
3160         (expand_builtin_adjust_trampoline): New.
3161         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3162         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3163         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3164         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3165         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3166         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3167         Handle.
3168         (fold_builtin_expect): New.
3169         (fold_builtin_isascii): Don't return non-constant results
3170         in GIMPLE form.
3171         (fold_builtin_isdigit): Likewise.
3172         (fold_builtin_1): New.
3173         (fold_builtin): Call it.
3174         (build_function_call_expr): Update call to build a new
3175         CALL_EXPR.
3176         (purge_builtin_constant_p): Remove.
3177         (simplify_builtin, simplify_builtin_memcmp,
3178         simplify_builtin_strcmp, simplify_builtin_strncmp,
3179         simplify_builtin_strpbrk, simplify_builtin_strstr,
3180         simplify_builtin_strchr, simplify_builtin_strrchr,
3181         simplify_builtin_strcat, simplify_builtin_strncat,
3182         simplify_builtin_strspn, simplify_builtin_strcspn,
3183         simplify_builtin_next_arg, simplify_builtin_va_start,
3184         simplify_builtin_sprintf): New.
3185         * builtins.def (BUILT_IN_STACK_ALLOC,
3186         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3187         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3188         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3189         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3190         * c-common.c: Include tree-iterator.h and hashtab.h.
3191         (lang_statement_code_p): Declare.
3192         (lang_gimplify_stmt): Declare.
3193         (fix_string_type): Set TREE_INVARIANT for value.
3194         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3195         (c_type_hash): New.
3196         (c_common_get_alias_set): Handle multiple type nodes
3197         referring to "the same" type, currently for C90 only.
3198         (c_add_case_label): Use create_artificial_label.
3199         (finish_label_address_expr): Don't set TREE_CONSTANT on
3200         result.
3201         (c_expand_expr): Don't handle STMT_EXPR.
3202         (handle_alias_attribute): Marke aliased variables to be
3203         TREE_STATIC.
3204         (handle_nonnull_attribute): Initialize arg_num.
3205         (check_function_nonnull): Likewise.
3206         (c_walk_subtrees): New.
3207         (c_estimate_num_insns_1): Don't handle
3208         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3209         (c_decl_uninit_1): Remove.
3210         (c_decl_uninit): Remove.
3211         (c_warn_unused_result): New.
3212         * c-common.def (ASM_STMT): Change number of operands
3213         to 4.
3214         (FILE_STMT): Remove.
3215         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3216         Remove.
3217         (lang_gimplify_stmt): Add.
3218         (expand_stmt): Remove.
3219         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3220         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3221         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3222         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3223         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3224         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3225         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3226         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3227         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3228         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3229         genrtl_compound_stmt, genrtl_asm_stmt,
3230         genrtl_cleanup_stmt, c_decl_uninit): Remove.
3231         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3232         c_tree_chain_matters_p, c_warn_unused_result,
3233         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3234         Declare.
3235         * c-convert.c (convert): Make convert work when
3236         converting to compatible types across translation unit.
3237         * c-decl.c: Include langhooks.h, tree-mudflap.h,
3238         tree-simple.h, diagnostic.h and tree-dump.h
3239         (merge_decls): Initialize oldtype to NULL.
3240         (finish_decl): Use DECL_HARD_REGISTER instead of
3241         DECL_C_HARD_REGISTER.
3242         (check_bitfield_type_and_width): Check for null
3243         lang_type_specific when check the precision of an enum.
3244         (grokdeclarator): Immediately layout an ARRAY_TYPE used
3245         in a pointer-to-array declarator.
3246         (finish_struct): Clear allocated struct lang_type.
3247         (finish_enum): Set enum_min and enum_max.  Set
3248         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3249         not to the enumerators.
3250         (set_decl_nonlocal): New.
3251         (store_parm_decls): Use it via walk_tree.
3252         (c_finalize): New.
3253         (finish_function): When !targetm.have_ctors_dtors,
3254         record static constructors and destructors here...
3255         (c_expand_body_1): ... not here.
3256         (c_expand_decl): Rename from c_expand_decl_stmt.
3257         Handle all C-specific expansion semantics.
3258         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3259         STMT_LINENO.
3260         * c-format.c (handle_format_arg_attribute): Initialize
3261         format_num.
3262         * c-lang.c: Include tree-inline.h
3263         (LANG_HOOKS_EXPAND_DECL,
3264         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3265         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3266         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3267         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3268         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3269         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3270         (c_types_compatible_p): New.
3271         * c-mudflap.c: New file.
3272         * c-objc-common.c: Include tree-mudflap.h
3273         (start_cdtor, finish_cdtor): Collapse
3274         together into
3275         (build_cdtor): ...here.  Update to construct a complete tree
3276         for the function.  No need to call push_scope, pop_scope, or
3277         clear_last_expr, or set current_function_cannot_inline.
3278         (c_missing_noreturn_ok_p): Change prototype to return
3279         bool.
3280         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3281         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3282         opts.c.
3283         (c_common_post_options): Don't ever use rtl inlining.
3284         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3285         * c-pragma.c (handle_pragma_redefine_extname): Define
3286         always.
3287         (init_pragma): Activate #pragma redefine_extname for mudflap.
3288         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3289         (pp_c_initializer): Accept any type CONSTRUCTOR.
3290         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3291         COMPLEX_TYPE.
3292         (decl_name_str): New local function.
3293         (pp_c_direct_declarator): Call it.
3294         (pp_c_primary_expression): Call it.
3295         (pp_c_id_expression): Call it.
3296         (pp_c_statement): Call it.
3297         (print_c_tree): Create new pp object.
3298         * c-pretty-print.h (pp_c_tree_decl_identifier,
3299         print_c_tree): Declare.
3300         * c-semantics.c: Include langhooks.h
3301         (lang_expand_stmt, lang_expand_decl_stmt,
3302         find_reachable_label_1, find_reachable_label,
3303         expand_unreachable_if_stmt, expand_unreachable_stmt,
3304         genrtl_do_stmt_1): Remove.
3305         (begin_stmt_tree): Don't check for changed filename.
3306         Call annotate_with_locus.
3307         (finish_stmt_tree): Don't set line for end of function.
3308         (build_stmt): Don't check type nodes for
3309         side effects.
3310         (build_stmt): Set TREE_SIDE_EFFECTS.
3311         Set EXPR_LOCUS instead of STMT_LINENO.
3312         (lang_expand_stmt, lang_expand_decl_stmt,
3313         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3314         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3315         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3316         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3317         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3318         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3319         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3320         find_reachable_label_1, expand_unreachable_if_stmt,
3321         expand_unreachable_stmt): Remove.
3322         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3323         * c-simplify.c: New file.
3324         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3325         (struct lang_type): Add fields enum_min and enum_max.
3326         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3327         (c_expand_decl, c_missing_noreturn_ok_p,
3328         c_types_compatible_p): Declare.
3329         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3330         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3331         (default_function_array_conversion): Rely on build to
3332         set TREE_CONSTANT.
3333         (parser_build_binary_op, pointer_diff): Likewise.
3334         (build_unary_op, build_binary_op): Likewise.
3335         (build_array_ref):
3336         (build_external_ref): Set TREE_INVARIANT.
3337         (build_c_cast, pop_init_level): Likewise.
3338         (process_init_element): Use ASM_VOLATILE_P.
3339         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3340         (c_finish_case): Call c_do_switch_warnings.
3341         * c.opt (fdump-): Remove.
3342         * calls.c (try_to_integrate): Remove.
3343         (prepare_call_address): Replace fndecl arg with a
3344         precomputed static chain value.
3345         (emit_call_1): New argument for full call expr.
3346         (flags_from_decl_or_type): Call special_function_p.
3347         (initialize_argument_information): Add argument
3348         may_tailcall.
3349         (purge_reg_equiv_notes): New.
3350         (expand_call): Do not try to expand calls inline.
3351         (fixup_tail_calls): New.
3352         * cfg.c: Include timevar.h and ggc.h.
3353         (bb_pool, edge_pool): Remove.
3354         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3355         (entry_exit_blocks): Remove.
3356         (rbi_pool): Declare.
3357         (init_flow): Do not create pools.
3358         Allocate entry/exit block.
3359         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3360         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3361         (unlink_block): Clear b->prev_bb and b->next_bb.
3362         (compact_blocks): Clear all slots of BASIC_BLOCK array.
3363         (dump_flow_info): Work on trees too.
3364         (dump_cfg_bb_info): New.
3365         (brief_dump_cfg): New.
3366         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3367         (find_edge): New.
3368         * cfgbuild.c (rtl_make_eh_edge): Rename from
3369         make_eh_edge.  Update all users.
3370         (find_basic_blocks): Don't call VARRAY_FREE on
3371         basic_block_info.
3372         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3373         and newpos2.
3374         (delete_unreachable_blocks): Return changed status.
3375         (merge_seq_blocks): New.
3376         * cfghooks.c: Include tree-flow.h
3377         (tree_register_cfg_hooks, ir_type): New.
3378         (redirect_edge_and_branch): Change return type to edge.
3379         (predict_edge, predicted_by_p, can_duplicate_block_p,
3380         duplicate_block, block_ends_with_call_p,
3381         block_ends_with_condjump_p, flow_call_edges_add): New.
3382         * cfghooks.h (redirect_edge_and_branch): Change return
3383         type to edge.
3384         (predict_edge, predicted_by_p, can_duplicate_block_p,
3385         duplicate_block, block_ends_with_call_p,
3386         block_ends_with_condjump_p, flow_call_edges_add): Declare.
3387         (redirect_edge_and_branch): Change return type to edge.
3388         (struct cfg_hooks): Add fields block_ends_with_call_p,
3389         block_ends_with_condjump_p, flow_call_edges_add,
3390         predict_edge, predicted_by_p, can_duplicate_block_p and
3391         duplicate_block.
3392         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3393         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3394         (fixup_reorder_chain): Use initialize_bb_rbi.
3395         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3396         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3397         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3398         (insn_locators_initialize): Use new info about blocks.
3399         * cfglayout.h (typedef struct reorder_block_def): Moved to
3400         basic_block.h.
3401         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3402         removed.
3403         * cfgloop.c: Include tree.h and tree-flow.h.
3404         * cfgloop.h (create_loop_notes): Declare.
3405         * cfgloopmanip.c (create_loop_notes): New.
3406         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3407         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3408         and duplicate_block fields.
3409         (create_basic_block_structure): Don't look at
3410         RTX_INTEGRATED_P.
3411         (rtl_block_ends_with_call_p): New.
3412         (rtl_block_ends_with_condjump_p): New.
3413         (need_fake_edge_p): Moved from cfganal.c.
3414         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3415         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3416         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3417         (cfg_layout_rtl_cfg_hooks): Ditto.
3418         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3419         functions to be reachable.
3420         * cgraphunit.c (decide_is_function_needed):
3421         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3422         inline functions don't need to be output.
3423         (cgraph_assemble_pending_functions): Don't do anything
3424         special for nested functions.
3425         (cgraph_mark_functions_to_output): Likewise.
3426         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3427         (cgraph_analyze_function): Use estimate_num_insns.
3428         (cgraph_mark_functions_to_output): Likewise.
3429         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3430         (cgraph_expand_function): Allow functions to not be
3431         emitted.
3432         (cgraph_remove_unreachable_nodes):
3433         (cgraph_recursive_inlining_p): Simplify.
3434         (lookup_recursive_calls,
3435         cgraph_decide_recursive_inlining): New.
3436         (cgraph_decide_inlining_*): Update calls of
3437         cgraph_mark_inline.
3438         * combine.c (get_pos_from_mask): Always set *plen.
3439         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3440         ftree-based-profiling, ftree-ccp, ftree-ch,
3441         ftree-combine-temps, ftree-copyrename, ftree-dce,
3442         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3443         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3444         ftree-lrs): Add.
3445         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3446         Undefine.
3447         * configure.ac: Add --enable-tree-browser option.
3448         Add --with-libbanshee option.
3449         Add GMPLIBS and GMPINC.
3450         * configure: Regenerate.
3451         * coverage.c (tree_ctr_tables): New.
3452         (coverage_counter_alloc): Use it.
3453         (build_ctr_info_value): Ditto.
3454         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
3455         (tree_coverage_counter_ref): New.
3456         * coverage.h (coverage_counter_ref): Remove declaration.
3457         (rtl_coverage_counter_ref): Declare.
3458         (tree_coverage_counter_ref): Declare.
3459         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3460         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3461         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3462         (struct cse_basic_block_data): Rename enum values to not
3463         conflict with profile.h; update all uses.
3464         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3465         in comments.
3466         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3467         * diagnostic.h (debug_output_buffer, dump_generic_node,
3468         print_generic_stmt, print_generic_stmt_indented,
3469         print_generic_expr, print_generic_decl,
3470         debug_generic_expr, debug_generic_stmt, debug_c_tree):
3471         Declare.
3472         * dominance.c: Cache immediate dominators.
3473         * domwalk.c: New file.
3474         * domwalk.h: New file.
3475         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3476         (gen_subprogram_die): Generate a DIE for a named
3477         return value.
3478         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3479         (add_location_or_const_value_attribute): Likewise.
3480         (add_bound_info): Likewise.
3481         (gen_decl_die): Likewise.
3482         * emit-rtl.c (maybe_set_first_label_num): New.
3483         (copy_most_rtx): Don't copy the integrated flag.
3484         Copy the new return_val flag.
3485         * et-forest.c (MAX_NODES): Define.
3486         (record_path_before_1): Abort if len is greater than
3487         MAX_NODES.
3488         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3489         gen_eh_region_catch, gen_eh_region_allowed,
3490         gen_eh_region_must_not_throw, get_eh_region_number,
3491         get_eh_region_may_contain_throw, get_eh_region_tree_label,
3492         set_eh_region_tree_label, expand_resx_expr): New.
3493         (expand_eh_region_start, expand_start_catch): Use them.
3494         (expand_end_catch): Tidy.
3495         (note_eh_region_may_contain_throw): Take region argument.
3496         (note_current_region_may_contain_throw): New.
3497         (get_exception_filter): Export.
3498         (collect_eh_region_array): Export.
3499         (remove_unreachable_regions): Check ERT_TRY based on reachability
3500         of catches, not reachability of continue_label.  Never remove
3501         ERT_MUST_NOT_THROW regions.
3502         (collect_rtl_labels_from_trees): New.
3503         (convert_from_eh_region_ranges): Use it.
3504         (connect_post_landing_pads): Handle dying cleanups.
3505         (struct reachable_info): Add callback data.
3506         (add_reachable_handler): Invoke the callback.
3507         (foreach_reachable_handler): New.
3508         (reachable_handlers): Use it.
3509         (arh_to_landing_pad, arh_to_label): New.
3510         (can_throw_internal_1): Split out from can_throw_internal.
3511         (can_throw_external_1): Similarly.
3512         * except.h: Update.
3513         * explow.c (emit_stack_save): Remove savearea mode check.
3514         (update_nonlocal_goto_save_area): New.
3515         (allocate_dynamic_stack_space): Use it.
3516         (probe_stack_range): Never emit loop notes.
3517         * expmed.c (extract_fixed_bit_field): Always propagate the
3518         target for the shift if it is a REG.
3519         * expr.c: Include tree-iterator.h
3520         (is_zeros_p): Remove.
3521         (categorize_ctor_elements_1, categorize_ctor_elements): New.
3522         (count_type_elements): New.
3523         (mostly_zeros_p): Use them.
3524         (expr_wfl_stack): Remove.
3525         (convert_move): Do nothing if to and from are the same.
3526         (emit_block_move_via_loop): Don't emit LOOP notes.
3527         (emit_move_insn): Don't handle CONSTANT_P_RTX.
3528         (emit_move_insn_1): Don't generate inline warnings.
3529         (expand_vars, expand_var): Split from ...
3530         (expand_expr_1): ... here.
3531         (expand_expr_real, expand_expr_real_1):  Use new macros
3532         EXPR_LOCATION and EXPR_HAS_LOCATION.
3533         * expr.h (simplify_builtin_fputs,
3534         simplify_builtin_strcpy, simplify_builtin_strncpy,
3535         expand_var, fixup_tail_calls,
3536         update_nonlocal_goto_save_area): Declare.
3537         (lookup_static_chain, expand_inline_function,
3538         mark_seen_cases): Remove.
3539         (prepare_call_address): Change type of 2nd argument to
3540         rtx.
3541         * final.c (profile_function): Update static chain test.
3542         (final): Don't look at RTX_INTEGRATED_P.
3543         * flags.h (flag_mudflap, flag_mudflap_threads,
3544         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
3545         flag_tree_dce, flag_tree_combine_temps,
3546         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
3547         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
3548         flag_tree_points_to): Declare.
3549         (enum pta_type): Declare.
3550         * flow.c (lang_missing_noreturn_ok_p): Remove.
3551         (check_function_return_warnings): Remove.
3552         (update_life_info): Update comments.
3553         (free_basic_block_vars): Don't call VARRAY_FREE for
3554         basic_block_info.
3555         (regno_uninitialized): Remove.
3556         * fold-const.c (int_const_binop): Make extern.
3557         (non_lvalue): Rely on build to set TREE_CONSTANT.
3558         (operand_equal_p): Replace only_const argument with
3559         flags.  Allow pure functions if OEP_PURE_SAME.
3560         (fold): Use OEP_ONLY_CONST.
3561         (invert_truthvalue) <NOP_EXPR> Break if argument is of
3562         boolean type.
3563         (fold_relational_hi_lo,
3564         nondestructive_fold_binary_to_constant,
3565         nondestructive_fold_unary_to_constant,
3566         fold_read_from_constant_string): New.
3567         * function.c (struct function): Remove calls_constant_p.
3568         (current_function_calls_constant_p): Remove.
3569         (inline_function_decl): Remove.
3570         (put_var_into_stack): Don't use it.
3571         (fix_lexical_addr): Likewise.
3572         (inline_function_decl): Remove extern declaration.
3573         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
3574         (trampolines_created): Move to varasm.c.
3575         (free_after_compilation): Update for removed fields.
3576         (allocate_struct_function): Likewise.
3577         (delete_handlers, lookup_static_chain): Remove.
3578         (fix_lexical_addr): Don't consider non-local variable refs.
3579         (trampoline_address): Remove.
3580         (round_trampoline_addr): Move to builtins.c.
3581         (adjust_trampoline_addr): Remove.
3582         (expand_function_start): Update for changes to static chain
3583         and nonlocal goto handling.
3584         (initial_trampoline): Move to varasm.c.
3585         (expand_function_end): Don't build trampolines or kill
3586         unreferenced nonlocal goto labels.
3587         (free_after_compilation): Don't set it.
3588         (expand_function_end): Likewise.
3589         (setjmp_vars_warning): Rename from
3590         uninitialized_vars_warning, remove uninitialized vars warning.
3591         (uninitialized_vars_warning): Remove old comment
3592         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
3593         and do not call the langhook.
3594         (expand_function_start, expand_function_end): Don't do
3595         function instrumentation here.
3596         (clear_block_marks): Rename from reorder_blocks_0, export.
3597         (blocks_nreverse): Export.
3598         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
3599         of rtl.
3600         (reset_block_changes, record_block_change, finalize_block_changes,
3601         check_block_change, free_block_changes): New functions.
3602         (assign_parms): Setting of current_function_stdarg
3603         moved ...
3604         (allocate_struct_function): ... here.
3605         * function.h (struct function): Remove x_nonlocal_labels,
3606         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
3607         x_context_display, x_trampoline_list, needs_context.
3608         Add static_chain_decl, nonlocal_goto_save_area.
3609         (struct function): Remove x_clobber_return_insn.
3610         Add tail_call_emit field, last_label_uid,
3611         unexpanded_var_list, dont_emit_block_notes,
3612         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
3613         (clear_block_marks): Declare.
3614         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
3615         (mfwrap_spec, mflib_spec): Declare.
3616         (cpp_unique_options, cc1_options): Ditto.
3617         (default_compilers): Add .F and .f90.
3618         (static_specs): Add mfwrap and mflib.
3619         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
3620         CONSTANT_RTX_P.
3621         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
3622         Update to match insns field in struct edge_def.
3623         * gdbinit.in (pgs, pge): Define.
3624         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
3625         instead of the integrated flag.
3626         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
3627         * gengtype-yacc.y (bitfieldlen): Add empty action.
3628         (struct_fields): Accept unnamed bitfields.
3629         (bitfieldlen): Split from ...
3630         (bitfieldopt): ... here.
3631         * gengtype.c (ifiles): Add tree-alias-type.h and
3632         tree-flow.h.
3633         * genrecog.c (validate_pattern): Do not handle
3634         CONSTANT_P_RTX.
3635         * gimple-low.c: New file.
3636         * gimplify.c: New file.
3637         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
3638         (restore_line_notes): Do not set RTX_INTEGRATED_P.
3639         * ifcvt.c (dead_or_predicable): Initialize local variable
3640         'earliest'.
3641         * input.h (expr_wfl_stack): Remove.
3642         * integrate.c (INTEGRATE_THRESHOLD): Remove.
3643         (setup_initial_hard_reg_value_integration): Likewise.
3644         (initialize_for_inline): Likewise.
3645         (note_modified_parmregs): Likewise.
3646         (integrate_parm_decls): Likewise.
3647         (process_reg_param): Likewise.
3648         (save_parm_insns): Likewise.
3649         (copy_insn_list): Likewise.
3650         (copy_insn_notes): Likewise.
3651         (compare_blocks): Likewise.
3652         (find_block): Likewise.
3653         (inlining): Likewise.
3654         (function_cannot_inline_p): Likewise.
3655         (parmdecl_map): Likewise.
3656         (in_nonparam_insns): Likewise.
3657         (save_for_inline): Likewise.
3658         (FIXED_BASE_PLUS): Likewise.
3659         (expand_inline_function): Likewise.
3660         (copy_rtx_and_substitute): Don't look at map->integrating,
3661         map->inline_target, and inlining, since we are never copying
3662         for integrating.
3663         Don't abort on RTX_INTEGRATED_P.
3664         (old_fun): Remove.
3665         (output_inline_function): Remove.
3666         * integrate.h (struct inline_map): Remove fields integrating,
3667         block_map, leaf_reg_map, inline_target, and local_return_label.
3668         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
3669         copy_loop_headers, never_reached_warning): Removed.
3670         (any_uncondjump_p): Reject nonlocal goto.
3671         * langhooks-def.h (lhd_types_compatible_p,
3672         lhd_expand_decl, lhd_gimplify_expr): Declare.
3673         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3674         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3675         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3676         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3677         LANG_HOOKS_GIMPLIFY_EXPR,
3678         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
3679         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3680         LANG_HOOKS_GIMPLIFY_EXPR,
3681         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
3682         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
3683         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
3684         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3685         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
3686         LANG_HOOKS_DECL_UNINIT,
3687         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
3688         * langhooks.c: Include tree-simple.h.
3689         (lhd_expand_decl): New.
3690         (lhd_types_compatible_p): New.
3691         (lhd_decl_uninit): Remove.
3692         (lhd_gimplify_expr): New.
3693         * langhooks.h (struct lang_hooks_for_rtl_expansion):
3694         Remove.
3695         (struct lang_hooks_for_functions): Add field
3696         missing_noreturn_ok_p.
3697         (struct lang_hooks): Add field expand_decl,
3698         types_compatible_p, gimplify_expr and
3699         gimple_before_inlining.
3700         Remove fields decl_uninit and rtl_expand
3701         * opts.c (decode_options): Set flag_tree_ccp,
3702         flag_tree_dce, flag_tree_dom, flag_tree_dse,
3703         flag_tree_pre, flag_tree_ter,
3704         flag_tree_live_range_split, flag_tree_sra,
3705         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
3706         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
3707         OPT_fmudflapth, OPT_fmudflapir,
3708         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
3709         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
3710         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
3711         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
3712         OPT_ftree_points_to_ and OPT_ftree_pre.
3713         * output.h (regno_uninitialized, find_basic_blocks,
3714         cleanup_cfg, delete_unreachable_blocks,
3715         check_function_return_warnings): Remove.
3716         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
3717         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
3718         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
3719         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
3720         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
3721         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
3722         Define.
3723         * passes.c (rest_of_decl_compilation):
3724         (rest_of_handle_sibling_calls): Remove.
3725         (rest_of_handle_inlining): Remove.
3726         (rest_of_handle_gcse): Do not run
3727         purge_builtin_constant_p.
3728         (rest_of_compilation): Update.
3729         Do not call copy_loop_headers.
3730         Do rtl-based profiling only when
3731         !flag_tree_based_profiling.  Register rtl-based profiling
3732         hooks.
3733         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
3734         (predicted_by_p): Rename to ...
3735         (rtl_predicted_by_p): .. this one; make global
3736         (tree_predicted_by_p): New.
3737         (dump_prediction): Add FILE argument.
3738         (predict_edge): Rename to ...
3739         (rtl_predict_edge): .. this one.
3740         (tree_predict_edge): New.
3741         (combine_predictions_for_insn): Update calls of predict_edge.
3742         (predict_loops): Break out from ...
3743         (estimate_probability): ... here; update comments; move updating
3744         of unknown probabilities from ...
3745         (estimate_bb_frequencies): ... here.
3746         (combine_predictions_for_bb): New.
3747         (tree_predict_by_opcode): New.
3748         (tree_estimate_probability): New.
3749         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
3750         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
3751         * predict.h: Add include guard.
3752         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
3753         * pretty-print.c (pp_write_text_to_stream): Make extern.
3754         * pretty-print.h (pp_write_text_to_stream): Declare.
3755         * print-rtl.c (print_rtx): Don't print the integrated flag.
3756         Print the return_val flag.
3757         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
3758         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
3759         Remove support for EXPR_WITH_FILE_LOCATION nodes.
3760         (print_node): Print TREE_INVARIANT and TREE_VISITED.
3761         * profile.c: Include cfghooks.h, tree-flow.h.
3762         (profile_hooks): New.
3763         (profile_dump_file): New.
3764         (instrument_edges): Use hooks instead of RTL-specific code.
3765         (instrument_values): Ditto.
3766         (get_exec_counts): Ditto.
3767         (compute_branch_probabilities): Ditto.
3768         (compute_value_histograms): Ditto.
3769         (branch_prob): Ditto.
3770         (find_spanning_tree): Ditto.
3771         (end_branch_prob): Ditto.
3772         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
3773         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
3774         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
3775         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
3776         (tree_register_profile_hooks): New.
3777         (rtl_register_profile_hooks): New.
3778         * ra-rewrite.c (rewrite_program): Clear variable info.
3779         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
3780         * regs.h: Add include guards.
3781         * reload.c (decompose): Clear val using memset.
3782         * rtl.def (CONSTANT_P_RTX): Remove.
3783         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
3784         (copy_loop_headers): Remove.
3785         (struct rtx_def): Replace the integrated flag with the
3786         return_val flag.
3787         (maybe_set_first_label_num): Declare.
3788         (init_branch_prob): Move declaration to value-prof.h.
3789         (end_branch_prob): Ditto.
3790         (branch_prob): Ditto.
3791         (never_reached_warning): Don't declare it.
3792         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
3793         (hoist_insn_to_edge): Update to match field insns in
3794         struct edge_def.
3795         * sbitmap.c (sbitmap_realloc): New.
3796         * sbitmap.h (sbitmap_realloc): Declare.
3797         * sibcall.c: Remove file.
3798         * simplify-rtx.c (simplify_rtx): Do not handle
3799         CONSTANT_P_RTX.
3800         * stmt.c (parse_output_constraint): Don't warn for read-write
3801         memory operand.
3802         (tail_recursion_args): Use types_compatible_p langhook.
3803         (force_label_rtx): Don't look at inline_function_decl.
3804         (label_rtx): Set LABEL_PRESERVE_P appropriately.
3805         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
3806         (declare_nonlocal_label): Remove.
3807         (expand_goto): Don't handle nonlocal gotos.
3808         (expand_nl_handler_label): Remove.
3809         (expand_nl_goto_receivers): Remove.
3810         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
3811         update_nonlocal_goto_save_area.
3812         (expand_expr_stmt_value): Check TREE_NO_WARNING.
3813         (warn_if_unused_value): Likewise.
3814         (expand_start_loop, expand_loop_continue_here,
3815         expand_end_loop): Don't create loop notes.
3816         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
3817         mark_seen_cases, check_for_full_enumeration_handling): Remove.
3818         (expand_end_case_type): Don't do warn_switch handling.
3819         (pushcase, pushcase_range) Update add_case_node calls.
3820         (add_case_node): Add dont_expand_label argument.
3821         (same_case_target_p): Don't search rtl.
3822         (expand_start_bindings_and_block, expand_end_bindings):
3823         Don't emit block notes when dont_emit_block_notes.
3824         (using_eh_for_cleanups_p): Export.
3825         (expand_return): Allow any typed rhs.
3826         (expand_stack_alloc): New.
3827         (expand_stack_save, expand_stack_restore): New.
3828         (containing_blocks_have_cleanups_or_stack_level): New
3829         function.
3830         (asm_op_is_mem_input): New fn.
3831         (expand_asm_expr): New fn.
3832         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
3833         nodes.
3834         * stor-layout.c (layout_type): Just return if type is
3835         error_mark_node.
3836         (update_alignment_for_field): Export.
3837         (variable_size): We don't care about global_bindings_p if
3838         the frontend doesn't want a list of the expressions.
3839         * system.h: Poison INTEGRATE_THRESHOLD.
3840         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
3841         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
3842         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
3843         TV_TREE_SSA_OTHER, TV_TREE_OPS,
3844         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
3845         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
3846         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
3847         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
3848         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
3849         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
3850         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
3851         TV_CONTROL_DEPENDENCES): Define.
3852         * toplev.c: Include tree-alias-common.h
3853         (current_file_decl, flag_mudflap, flag_mudflap_threads,
3854         flag_mudflap_ignore_reads, flag_tree_based_profiling,
3855         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
3856         flag_tree_dce, flag_tree_ch, flag_tree_sra,
3857         flag_tree_combine_temps, flag_tree_ter,
3858         flag_tree_live_range_split, flag_tree_dom,
3859         flag_tree_copyrename, flag_tree_dse): Declare.
3860         (f_options): Add tree-based-profiling, tree-gvn,
3861         tree-pre, tree-ccp, tree-dce,
3862         tree-dominator-opts, tree-copyrename, tree-dse,
3863         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
3864         (wrapup_global_declarations): Don't output nested inlined functions.
3865         (general_init): Call init_tree_optimization_passes.
3866         (process_options): Sorry for -ftree-based-profiling plus
3867         -ftest-coverage or -fprofile-values.
3868         * toplev.h (init_tree_optimization_passes,
3869         flag_tree_based_profiling): Declare.
3870         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
3871         * tree-alias-ander.c: New file.
3872         * tree-alias-ander.h: New file.
3873         * tree-alias-common.c: New file.
3874         * tree-alias-common.h: New file.
3875         * tree-alias-type.c: New file.
3876         * tree-alias-type.h: New file.
3877         * tree-browser.c: New file.
3878         * tree-browser.def: New file.
3879         * tree-cfg.c: New file.
3880         * tree-complex.c: New file.
3881         * tree-dfa.c: New file.
3882         * tree-dump.c (dump_enable_all): New.
3883         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
3884         (dump_node): Remove const from field suffix and swtch.
3885         (dump_files): Add null entry, .generic, .nested, .vcg,
3886         .xml and a match-all entry.
3887         (extra_dump_files, extra_dump_files_in_use,
3888         extra_dump_files_alloced): Declare
3889         (dump_option_value_info): Add raw, details, stats,
3890         blocks, vops, lineno, uid and all.
3891         (dump_register): New.
3892         (get_dump_file_info): New.
3893         (dump_begin): Call it.
3894         Do nothing for TDI_none.
3895         (dump_begin): Include phase number in dump filename.
3896         (dump_enable_all): New.
3897         (dump_switch_p_1): Split out from dump_switch_p.
3898         (dump_switch_p): Handle extra_dump_files.
3899         Start our scan at TDI_none + 1.
3900         If -fdump-tree-all was given, call dump_enable_all.
3901         * tree-dump.h: Include splay-tree.h.
3902         (dump_function, dump_function_to_file, dump_register):
3903         Declare.
3904         * tree-eh.c: New file.
3905         * tree-flow-inline.h: New file.
3906         * tree-flow.h: New file.
3907         * tree-inline.c: Re-write to handle inlining on GIMPLE.
3908         * tree-inline.h (walk_tree,
3909         walk_tree_without_duplicates): Move to tree.h.
3910         (estimate_num_insns): Declare.
3911         * tree-into-ssa.c: New file.
3912         * tree-iterator.c: New file.
3913         * tree-iterator.h: New file.
3914         * tree-mudflap.c: New file.
3915         * tree-mudflap.h: New file.
3916         * tree-nested.c: New file.
3917         * tree-nomudflap.c: New file.
3918         * tree-nrv.c: New file.
3919         * tree-optimize.c (dump_flags, vars_to_rename,
3920         in_gimple_form, all_passes, pass_gimple,
3921         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
3922         (execute_gimple, execute_rebuild_bind,
3923         gate_all_optimizations, execute_del_cfg,
3924         register_one_dump_file, register_dump_files, dup_pass_1,
3925         init_tree_optimization_passes, execute_todo,
3926         execute_one_pass, execute_pass_list): New.
3927         (clear_decl_rtl): Remove.
3928         (tree_rest_of_compilation): Update to use tree
3929         optimizers.
3930         * tree-outof-ssa.c: New file.
3931         * tree-pass.h: New file.
3932         * tree-phinodes.c: New file.
3933         * tree-pretty-print.c: New file.
3934         * tree-profile.c: New file.
3935         * tree-simple.c: New file.
3936         * tree-simple.h: New file.
3937         * tree-sra.c: New file.
3938         * tree-ssa-alias.c: New file.
3939         * tree-ssa-ccp.c: New file.
3940         * tree-ssa-copy.c: New file.
3941         * tree-ssa-copyrename.c: New file.
3942         * tree-ssa-dce.c: New file.
3943         * tree-ssa-dom.c: New file.
3944         * tree-ssa-dse.c: New file.
3945         * tree-ssa-forwprop.c: New file.
3946         * tree-ssa-live.c: New file.
3947         * tree-ssa-live.h: New file.
3948         * tree-ssa-loop.c: New file.
3949         * tree-ssa-operands.c: New file.
3950         * tree-ssa-operands.h: New file.
3951         * tree-ssa-phiopt.c: New file.
3952         * tree-ssa-pre.c: New file.
3953         * tree-ssa.c: New file.
3954         * tree-ssanames.c: New file.
3955         * tree-tailcall.c: New file.
3956         * tree.c: Include tree-iterator.h, basic-block.h and
3957         tree-flow.h.
3958         (tree_node_kind): Add phi_nodes and ssa names.
3959         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
3960         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
3961         (make_node_stat): Handle PHI_NODE and SSA_NAME.
3962         <'c'> Set TREE_INVARIANT.
3963         (copy_node_stat): Abort if trying to copy a
3964         STATEMENT_LIST.
3965         Clear TREE_VISITED.
3966         Clear annotation field.
3967         (build_constructor): Copy TREE_INVARIANT from vals.
3968         Don't clear TREE_CONSTANT.
3969         (expr_first, expr_last, expr_length): Remove.
3970         (staticp): Pass unknown component references to the language.
3971         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
3972         (skip_simple_arithmetic): Likewise.
3973         (stabilize_reference_1): Likewise.
3974         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
3975         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
3976         STATEMENT_LIST.
3977         (lhd_unsave_expr_now): Remove.
3978         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
3979         (recompute_tree_invarant_for_addr_expr): New.
3980         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
3981         Call recompute_tree_invarant_for_addr_expr.
3982         Set TREE_INVARIANT accordingly.
3983         (build2_stat): Don't handle CALL_EXPR.
3984         (build3_stat): Don't call build2_stat for CALL_EXPRs.
3985         (build_expr_wfl): Remove.
3986         (annotate_with_file_line, annotate_with_locus): New.
3987         (simple_cst_equal): Call simple_cst_list_equal to compare
3988         CONSTRUCTOR_ELTS pointers.
3989         (iterative_hash_expr): Don't hash types associated
3990         with conversions.  Instead hash on the signedness of the
3991         toplevel object and the operand of the conversion.
3992         (dump_tree_statistics): Call ssanames_print_statistics
3993         and phinodes_print_statistics.
3994         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
3995         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
3996         needs_to_live_in_memory): New.
3997         (initializer_zerop): Handle VECTOR_CST.  Don't check
3998         AGGREGATE_TYPE_P for CONSTRUCTOR.
3999         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4000         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4001         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4002         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4003         (CALL_EXPR): Add another operand.
4004         (EXPR_WITH_FILE_LOCATION): Remove.
4005         (SWITCH_EXPR): Add another operand.
4006         * tree.h: Update various comments.
4007         (union tree_ann_d): Forward declare.
4008         (struct tree_common): Add fields nowarning_flag,
4009         invariant_flag and visited.
4010         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4011         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4012         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4013         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4014         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4015         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4016         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4017         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4018         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4019         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4020         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4021         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4022         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4023         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4024         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4025         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4026         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4027         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4028         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
4029         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
4030         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
4031         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
4032         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
4033         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
4034         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
4035         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
4036         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
4037         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
4038         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
4039         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
4040         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
4041         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
4042         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
4043         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4044         TDF_UID,): Define.
4045         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4046         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4047         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4048         EXPR_WFL_SET_LINECOL): Remove.
4049         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4050         make_phi_node, init_phinodes, fini_phinodes,
4051         release_phi_node, phinodes_print_statistics,
4052         init_ssanames, fini_ssanames, make_ssa_name,
4053         release_ssa_name, ssanames_print_statistics,
4054         annotate_with_file_line, build_empty_stmt,
4055         annotate_with_locus, expr_only, categorize_ctor_elements,
4056         count_type_elements, add_var_to_bind_expr, is_essa_node,
4057         expand_stack_alloc, expand_stack_save,
4058         expand_stack_restore, add_case_node, operand_equal_p,
4059         nondestructive_fold_unary_to_constant,
4060         nondestructive_fold_binary_to_constant,
4061         fold_read_from_constant_string, int_const_binop,
4062         strip_float_extensions, simplify_builtin, c_strlen,
4063         recompute_tree_invarant_for_addr_expr,
4064         needs_to_live_in_memory, make_vector,
4065         setjmp_vars_warning, update_alignment_for_field,
4066         expand_asm_expr, asm_op_is_mem_input,
4067         containing_blocks_have_cleanups_or_stack_level,
4068         create_artificial_label, gimplify_function_tree,
4069         get_name, unshare_expr, walk_tree,
4070         walk_tree_without_duplicates, in_gimple_form): Declare.
4071         (struct tree_exp): Add fields locus and block.
4072         (struct tree_ssa_name, struct edge_def, struct
4073         tree_phi_node, struct tree_eref_common, struct
4074         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4075         union alias_var_def, struct tree_statement_list_node,
4076         struct tree_statement_list, enum operand_equal_flag): Declare.
4077         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4078         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4079         TS_STATEMENT_LIST.
4080         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4081         euse and stmt_list.
4082         (function_cannot_inline_p, uninitialized_vars_warning,
4083         save_for_inline, output_inline_function, all_cases_count,
4084         check_for_full_enumeration_handling,
4085         declare_nonlocal_label): Remove.
4086         (enum tree_dump_index): Add TDI_none, TDI_tu,
4087         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4088         * unroll.c (unroll_loop): Don't clear map->inline_target.
4089         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4090         function.
4091         * value-prof.c (value_prof_hooks): New.
4092         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4093         Move rtl-specific bits in from branch_prob.
4094         (value_profile_transformations): Rename to
4095         rtl_value_profile_transformations.
4096         (struct value_prof_hooks): New.
4097         (rtl_value_prof_hooks): New.
4098         (rtl_register_value_prof_hooks): New.
4099         (tree_find_values_to_profile): New stub.
4100         (tree_value_profile_transformations): New stub.
4101         (tree_value_prof_hooks): New stub.
4102         (tree_register_value_prof_hooks): New stub.
4103         (find_values_to_profile): New.
4104         (value_profile_transformations): New.
4105         * value-prof.h: Add multiple inclusion guard.
4106         (struct histogram_value): Change rtx fields to void *.
4107         (rtl_register_value_prof_hooks): New declaration.
4108         (tree_register_value_prof_hooks): New declaration.
4109         (find_values_to_profile): New declaration.
4110         (free_profiled_values): New declaration.
4111         (value_profile_transformations): New declaration.
4112         (struct profile_hooks): New declaration.
4113         (init_branch_prob): Declaration moved from rtl.h.
4114         (branch_prob): Declaration moved from rtl.h.
4115         (end_branch_prob): Declaration mooved from rtl.h.
4116         (tree_register_profile_hooks): New declaration.
4117         (rtl_register_profile_hooks): New declaration.
4118         (tree_profile_hooks): New declaration.
4119         (rtl_profile_hooks): New declaration.
4120         * varasm.c: Include tree-mudflap.h.
4121         (TRAMPOLINE_ALIGNMENT): Remove.
4122         (make_decl_rtl): Call mudflap_enqueue_decl.
4123         (assemble_static_space):
4124         (assemble_trampoline_template): Set and return
4125         TRAMPOLINE_ALIGNMENT.
4126         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4127         Add entry for 'tree *'.
4128         Add entry for struct edge_def *.
4129         (varray_copy): New.
4130         * varray.h (enum varray_data_enum): Add
4131         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4132         VARRAY_DATA_TREE_PTR.
4133         (union varray_data_tag): Corresponding changes.
4134         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4135         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4136         VARRAY_EDGE, VARRAY_TREE_PTR,
4137         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4138         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4139         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4140
4141         * config/*/*: Various updates for changed macros, tree
4142         codes, etc.  Check ChangeLog.tree-ssa.
4143
4144         * doc/cfg.texi: New file.
4145         * doc/tree-ssa.texi: New file.
4146         * doc/c-tree.texi: Document new codes.
4147         * doc/gccint.texi: Include new files.
4148         * doc/install.texi: Document new features.
4149         * doc/invoke.texi: Document new switches.
4150         * doc/passes.texi: Document new passes.
4151         * doc/rtl.texi: Update changed RTL codes.
4152         * doc/sourcebuild.texi: Update build instructions.
4153         * doc/standards.texi: Document Fortran changes.
4154         * doc/tm.texi: Update.
4155
4156 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4157
4158         Replace several arrays with a struct of arrays.
4159         * combine.c (struct reg_stat): New.
4160         (init_reg_last_arrays): Renamed to...
4161         (init_reg_last): ...this.  Callers adjusted.
4162         (reg_stat): New.
4163         (combine_instructions): Allocate it and use it.
4164         (reg_last_death, reg_last_set, reg_last_set_value,
4165         reg_last_set_label, reg_last_set_table_tick,
4166         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4167         reg_last_set_mode, reg_last_set_nonzero_bits,
4168         reg_last_set_sign_bit_copies): Replace throughout
4169         with items of reg_stat.
4170
4171 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4172
4173         PR optimization/15100
4174         * combine.c (distribute_notes): Don't create a dangling
4175         REG_LIBCALL/REG_RETVAL note.
4176
4177 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4178
4179         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4180
4181         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4182         negv2si2.
4183
4184 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4185
4186         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4187
4188 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4189
4190         * doc/gty.texi (GTY Options): Clarify example.
4191
4192 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4193
4194         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4195         Add const qualifier to altivec vector type if one is needed.
4196
4197 2004-05-11  Paul Brook  <paul@codesourcery.com>
4198
4199         * flags.h (flag_short_enums): Update comment.
4200         * opts.c (decode_options): Set flag_short_enums to 2.
4201         * toplev.c (flag_short_enums): Update comment.
4202         (process_options): Call default_short_enums target hook.
4203
4204 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
4205
4206         PR target/14063
4207         * config/rs6000/altivec.md (altivec_dssall):
4208         Change to unspec_volatile.
4209         (altivec_dss): Likewise.
4210
4211 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
4212
4213         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4214         vnor.
4215         ("one_cmplv8hi2"): Same.
4216         ("one_cmplv4si2"): Same.
4217
4218 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4219
4220         PR target/15130
4221         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4222         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4223         into account.  Compute the correct number of general registers
4224         for the return value.  Generate a special push/pop sequence when
4225         failing to get a temporary register for non SHmedia epilogue.
4226         (sh_expand_epilogue): Add an argument to show whether it's for
4227         sibcall or not.  Set the 3rd argument of output_stack_adjust to
4228         -1 if needed.
4229         (sh_need_epilogue): Call sh_expand_epilogue with 0.
4230         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4231         with 1.
4232         (epilogue): Call sh_expand_epilogue with 0.
4233
4234 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
4235
4236         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4237         goto a cleanup label.  After the cleanup, free the allocated memory.
4238
4239 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
4240
4241         * config/rs6000/altivec.h (vec_sld): Add overloads for
4242         argument/return types of 'vector bool int', 'vector bool short'
4243         and 'vector bool char'.
4244
4245 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
4246
4247         * c-decl.c (store_parm_decls_newstyle): Correct test for a
4248         nested function.
4249
4250 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
4251
4252         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4253         treating missing ones as "".
4254         * config/mips/mips.md: Remove constraints from match_operands and
4255         match_scratches if they appear in define_expands (except reload*),
4256         define_peephole2s, define_splits or attribute specifications.
4257         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4258         constraint strings.
4259
4260 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4261
4262         * config/rs6000/rs6000.c (function_arg_boundary): Always align
4263         AltiVec vectors.
4264         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4265         vectors by refererence.  Align the same for TARGET_64BIT to a 16
4266         byte boundary.  Remove useless code.  Add function comment.
4267         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
4268         call to where it belongs.
4269         (function_arg_partial_nregs): Return true for all TARGET_32BIT
4270         -mabi=no-altivec AltiVec vectors.  Fix debug output.
4271         (rs6000_va_arg): Adjust for AltiVec change.
4272
4273 2004-05-10  Paul Brook  <paul@codesourcery.com>
4274
4275         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4276         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4277         (TARGET_DOUBLEWORD_ALIGN): Use it.
4278         (WCHAR_TYPE): Define.
4279         (WCHAR_SIZE_TYPE): Define.
4280         (SIZE_TYPE): Define.
4281
4282 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4283
4284         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4285         when size is 8 bytes.
4286         (function_arg_advance): Account for stack space used by AltiVec
4287         args when -mabi=altivec.  Simplify alignment calculations.  For
4288         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4289         (function_arg): Similarly.
4290         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4291         not AltiVec ABI.
4292         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
4293         Correct alignment, and align before testing reg count.  Remove
4294         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
4295         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4296         TARGET_FPRS here..
4297         (rs6000_function_value): .. not here before call.
4298
4299 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4300
4301         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4302
4303 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
4304
4305         PR 15007
4306         * c-decl.c (current_file_decl): Rename to all_translation_units,
4307         adjust comment.
4308         (pop_scope): If popping file_scope, construct a
4309         TRANSLATION_UNIT_DECL and make it the context of all the
4310         symbols in the scope.
4311         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4312         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
4313         anything to current_file_decl.
4314         (pushdecl_top_level): Likewise.
4315         (store_parm_decls_newstyle): Adjust check for nested function.
4316         (c_write_global_declarations): Update for renamed variable.
4317
4318 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4319
4320         * config/rs6000/rs6000-protos.h
4321         (rs6000_conditional_register_usage): Protoize.
4322
4323         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4324
4325         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4326         function.
4327
4328 2004-05-08  Roger Sayle  <roger@eyesopen.com>
4329
4330         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4331         where op is a comparison operator and C1 and C2 are integer constants
4332         into a range check.
4333         (fold): Call fold_div_compare.
4334
4335 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4336
4337         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4338         problems with earlier versions of the GNU compiler.
4339
4340 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
4341
4342         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4343         Declare.
4344
4345         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4346         (rs6000_hard_regno_mode_ok): New.
4347         (rs6000_init_hard_regno_mode_ok): New.
4348         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4349
4350         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4351         result.
4352
4353 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
4354
4355         * config/rs6000/altivec.h (vector, pixel, bool): Do not
4356         define as macros #ifdef __APPLE_ALTIVEC__.
4357
4358 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
4359
4360         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4361         Generate appropriate parallels for vector arguments
4362         passed to vararg functions. (function_arg): make the call
4363         to rs6000_mixed_function_arg for vector args as needed.
4364
4365 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4366
4367         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4368         EABI_FLOAT_VARARGS_P.
4369
4370 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4371
4372         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4373         * config/mips/mips.c (override_options): Disable branch likely
4374         instructions if TUNE_MIPS5500.
4375
4376 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4377
4378         * config/mips/mips.c (override_options): Allow the hi and lo registers
4379         to store any integral mode, not just MODE_INTs.
4380
4381 2004-05-07  Paul Brook  <paul@codesourcery.com>
4382
4383         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4384         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4385         (TARGET_DOUBLEWORD_ALIGN): Use it.
4386         (WCHAR_TYPE): Define.
4387         (WCHAR_SIZE_TYPE): Define.
4388         (SIZE_TYPE): Define.
4389
4390 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4391
4392         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4393         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4394
4395 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
4396
4397         * loop-doloop.c (doloop_valid_p): Make sure that body
4398         gets freed.
4399
4400 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
4401
4402         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4403         declaration.
4404         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4405         (sparc_skip_caller_unimp): New global variable.
4406         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4407         Use it instead of SKIP_CALLERS_UNIMP_P.
4408         * config/sparc/sparc.md (call expander): Add sanity check.
4409         (call_address_struct_value_sp32): Re-sync with expander.
4410         (call_symbolic_struct_value_sp32): Likewise.
4411         (return peepholes): Use 'sparc_skip_caller_unimp' instead
4412         of custom predicate.
4413
4414 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4415
4416         PR c++/14962
4417         * c-pragma.c (handle_pragma_redefine_extname): Only change
4418         the assembler name of FUNCTION_DECLs and VAR_DECLs.
4419
4420 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4421
4422         * optabs.h (enum optab_index): Add new OTI_log1p.
4423         (log1p_optab): Define corresponding macro.
4424         * optabs.c (init_optabs): Initialize log1p_optab.
4425         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4426         patterns.
4427         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4428         using log1p_optab.
4429         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4430         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4431
4432         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4433
4434         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4435         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4436         Prototype here.
4437         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4438         x87's fyl2xp1 instruction.
4439         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4440         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4441         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4442         log1p  and log1pl built-ins as inline x87 intrinsics.
4443
4444 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
4445
4446         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4447         * config/arm/freebsd.h: Likewise.
4448         * config/ia64/freebsd.h: Likewise.
4449         * config/sparc/freebsd.h: Likewise.
4450
4451 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
4452
4453         PR optimization/15296
4454         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4455         getting last consecutive label at a branch.
4456         (relax_delay_slots): Similar, near top of loop.
4457
4458 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4459
4460         PR target/15202
4461         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4462         register to general register.
4463
4464 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
4465
4466         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4467         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4468         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4469         (STACK_BOUNDARY): Delete.
4470
4471 2004-05-06  Stuart Hastings  <stuart@apple.com>
4472
4473         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4474         mistakenly clobbered by 1.423.
4475
4476 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4477
4478         * doc/invoke.texi: Document -mvr4130-align.
4479         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4480         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4481         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4482         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4483         * config/mips/mips.md: Include sched-int.h.
4484         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4485         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4486         (override_options): Enable -mvr4130-align at -O3 and above.
4487         (mips_sim_insn): New variable.
4488         (mips_sim): New structure.
4489         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4490         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4491         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4492         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4493         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4494         (mips_reorg): Call vr4130_align_insns.
4495         (vr4130_last_insn): New variable.
4496         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4497         (vr4130_swap_insns_p, vr4130_reorder): New functions.
4498         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4499         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4500         (mips_use_dfa_pipeline_interface): Return true for the same.
4501         * config/mips/4130.md: New file.
4502         * config/mips/mips.md: Include it.  Add a peephole2 to convert
4503         "mult;mflo" into "mtlo;macc".
4504         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4505         target of maccs.
4506         (*msac_using_macc): New pattern.
4507
4508 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4509
4510         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
4511         (ir_vr55_hilo): Split into...
4512         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
4513         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
4514         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
4515         Add various multiplication bypasses.
4516         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
4517         multiplication.
4518
4519 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
4520
4521         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
4522         attribute to "XF".
4523
4524 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
4525
4526         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
4527         (fmod_optab, drem_optab): Define corresponding macros.
4528         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
4529         * genopinit.c (optabs): Implement fmod_optab and drem_optab
4530         using fmod?f3 and drem?f3 patterns.
4531         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
4532         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
4533         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
4534         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
4535         flag_unsafe_math_optimizations is set.
4536
4537         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
4538         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
4539
4540         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
4541         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
4542         Prototype here.
4543         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
4544         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
4545         fprem and fprem1 instructions.
4546         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
4547         Rename insn definition to x86_fnstsw_1.
4548         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
4549         x87 instructions.
4550         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
4551         and fmodl built-ins as inline x87 intrinsics.
4552         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
4553         and dreml built-ins as inline x87 intrinsics.
4554
4555 2004-05-05  Roger Sayle  <roger@eyesopen.com>
4556
4557         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
4558
4559 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
4560
4561         PR driver/9822
4562         * doc/invoke.texi (Spec Files): Remove documentation of %c.
4563
4564 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
4565
4566         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
4567         representation.
4568
4569 2004-05-06  Paul Brook  <paul@codesourcery.com>
4570
4571         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
4572         (arm_coproc_mem_operand): ... To this.
4573         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
4574         (arm_legitimate_index_p): Ditto.
4575         (vfp_mem_operand): Rename ...
4576         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
4577         (vfp_secondary_reload_class): Use it.
4578         (output_move_double): Use doubleword load/store instructions.
4579         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
4580         * config/arm/arm.h (TARGET_LDRD): Define.
4581         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
4582         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
4583         New splitter for invalid doubleword loads.
4584         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
4585         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
4586         * doc/md.texi: Document Uy constraint.
4587
4588 2004-05-05  Jan Hubicka  <jh@suse.cz>
4589
4590         PR opt/14980
4591         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
4592         inline clones.
4593
4594 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4595
4596         PR target/15290
4597         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
4598         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
4599
4600 2004-05-05  Mike Stump  <mrs@apple.com>
4601
4602         * config/darwin-c.c (add_framework): Copy the directory name as it
4603         can be freed later.  Also, ensure we always allocate enough room
4604         for the cached framework information.
4605         (find_subframework_header): Keep track of the directory where the
4606         subframework header was found.
4607         (framework_construct_pathname): Speed up by not trying to re-add a
4608         framework.
4609         * cppfiles.c (search_path_exhausted): Arrange for the missing
4610         header callback to be able to set the directory where the header
4611         was found.
4612         (cpp_get_dir): Add.
4613         * cpplib.h (missing_header_cb): Add a parameter.
4614         (cpp_get_dir): Add.
4615
4616 2004-05-03  Mike Stump  <mrs@apple.com>
4617
4618         * doc/invoke.texi (Directory Options): Document -iquote.
4619         * doc/cpp.texi: Likewise.
4620         * doc/cppopts.texi: Likewise.
4621         * c-opts.c (c_common_missing_argument): Add -iquote processing.
4622         (c_common_handle_option): Likewise.
4623         * c.opt (iquote): Add.
4624         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
4625         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
4626
4627         * c-opts.c (case OPT_I): Deprecate -I- support.
4628         * doc/invoke.texi: Likewise.
4629         * doc/cpp.texi: Likewise.
4630         * doc/cppopts.texi: Likewise.
4631
4632 2004-05-05  Steven Bosscher  <stevenb@suse.de>
4633
4634         * basic-block.h (free_basic_block_vars): Update prototype.
4635         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
4636         argument.
4637         (life_analysis): Update call.
4638         * ifcvt.c (if_convert): Likewise.
4639         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
4640         * passes.c (rest_of_handle_final): Likewise.
4641         (rest_of_compilation): Likewise.
4642         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4643
4644         * emit-rtl.c (next_real_insn): Use INSN_P.
4645         (prev_real_insn): Likewise.
4646
4647 2004-05-05  Eric Christopher  <echristo@redhat.com>
4648
4649         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
4650         representation.
4651
4652 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
4653
4654         * config/rs6000/rs6000.c (build_opaque_vector_type):
4655         New function.
4656         (rs6000_init_builtins): Use it.
4657
4658 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
4659
4660         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
4661         (func_table): Change type from char ** to vms_func_ref.
4662         (write_rtnbeg):  Update to reflect func_table change.  Use
4663         fde->funcdef_number instead of rtnnum in output.
4664         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
4665
4666 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4667             Richard Henderson  <rth@redhat.com>
4668
4669         PR target/14899
4670
4671         * c-common.c (vector_types_convertible_p): New function.
4672         * c-typeck.c (comptypes): Recurse on vector types.
4673         (convert_for_assignment): Use vector_types_convertible_p.
4674         (digest_init): Use vector_types_convertible_p to check
4675         validness of constant vector initializers; otherwise treat
4676         them as scalars.
4677         * tree.c (make_or_reuse_type): New.
4678         (build_common_tree_nodes): Use it.
4679         * cp/call.c (standard_conversion): Likewise.
4680         * cp/typeck.c (comptypes): Recurse on vector types.
4681         (convert_for_assignment): Use vector_types_convertible_p.
4682
4683 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
4684
4685         * config/mips/mips.c (override_options): Default to no
4686         generation of branch-likely operations when tuning for
4687         CPUs where they tend to have a negative performance impact
4688         (e.g., SB-1).
4689
4690 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4691
4692         * expr.c (store_constructor_field): Don't call store_constructor
4693         if bitsize is not a multiple of a byte.
4694
4695 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
4696
4697         * reload1.c (inherit_piecemeal_p): New function.
4698         (emit_reload_insns): When reloading a group of hard registers, use
4699         inherit_piecemeal_p to decide whether the values of individual hard
4700         registers can be inherited.
4701
4702 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4703
4704         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
4705         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
4706         * config/t-linux (LIB2ADDEHDEP): Likewise.
4707
4708 2004-05-04  Paul Brook  <paul@codesourcery.com>
4709
4710         * config/arm/crti.asm: Push an even number of registers.
4711         * config/arm/crtn.asm: And restore them.  Load via sp.
4712
4713 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4714
4715         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
4716         Collect overhead information.
4717         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
4718         parameter and pass it through.
4719         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
4720         MEM_STAT_DECL parameter and pass it through.
4721         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
4722         MEM_STAT_DECL parameter and pass it through.
4723
4724 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4725
4726         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
4727
4728         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
4729
4730         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
4731         rs6000_hard_regno_nregs.
4732
4733 2004-05-03  Eric Christopher  <echristo@redhat.com>
4734
4735         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
4736         prologue insn instead of setting up call.
4737         (s390_emit_epilogue): Ditto.
4738         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
4739         (define_constants): Add numbers for above patterns.
4740
4741 2004-05-03  Eric Christopher  <echristo@redhat.com>
4742
4743         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
4744         * config/s390/s390.c (s390_conditional_register_usage): ...here.
4745         * config/s390/s390-protos.h: Prototype.
4746
4747 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
4748
4749         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
4750         assignment.
4751
4752 2004-05-03  Eric Christopher  <echristo@redhat.com>
4753
4754         * config/mips/mips.md: Fix branch length attribute definition.
4755
4756 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4757
4758         * config.gcc: Remove --enable-altivec support.
4759
4760         * config/rs6000/altivec-defs.h: Remove.
4761
4762 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4763
4764         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
4765         * fixinc/fixincl.x: Regenerate.
4766
4767 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4768
4769         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
4770         definition.
4771         (log?f2, log10?f2, log2?f2): Reimplement expanders with
4772         float_truncate insn.
4773         (*fxtractsf3, *fxtractdf3): Remove insn definition.
4774         (logb?f2): Reimplement expanders with float_truncate insn.
4775
4776 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
4777
4778         PR 14718
4779         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
4780         force_type_die for CONST_DECL.
4781
4782 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4783             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4784
4785         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
4786         tm-dwarf2.h to tm_file.
4787         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
4788         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
4789         (ASM_DEBUG_SPEC): Delete.
4790
4791 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4792
4793         * optabs.h (enum optab_index): Add new OTI_expm1.
4794         (expm1_optab): Define corresponding macro.
4795         * optabs.c (init_optabs): Initialize expm1_optab.
4796         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
4797         patterns.
4798         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
4799         using expm1_optab.
4800         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
4801         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4802
4803         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
4804         to implement expm1, expm1f and expm1l built-ins as inline x87
4805         intrinsics.
4806
4807 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
4808
4809         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
4810         * config/frv/frv.md (*return_true, *return_false): New patterns.
4811
4812 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
4813
4814         * rtl.h (PHI_NODE_P): Remove.
4815
4816 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
4817
4818         PR middle-end/14988
4819         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
4820         when passed -2 as 'align'.
4821         (put_var_into_stack): Use 'bool' as the type for the three local
4822         predicates.  Adjust calls to put_reg_into_stack.
4823         When passed a CONCAT, instruct put_reg_into_stack to use
4824         a consecutive stack slot for the second part.
4825         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
4826         'consecutive_p' parameter.  Turn the three predicates into 'bool'
4827         parameters.  Retrieve the register mode from 'reg'.
4828         When consecutive_p is true, instruct assign_stack_local_1 to use
4829         BITS_PER_UNIT alignment.
4830         (put_addressof_into_stack): Use 'bool' as the type for the two
4831         local predicates. Adjust call to put_reg_into_stack.
4832
4833 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4834
4835         * fold-const.c (fold_convert_const, fold): Add missing
4836         FIX_ROUND_EXPR case.
4837
4838 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
4839
4840         * configure.ac (FLEX, BISON): Only use tools from the build tree
4841         if build equals host.
4842         * configure: Rebuilt.
4843
4844         * config/frv/frv-protos.h (frv_expand_epilogue,
4845         frv_expand_fdpic_call): Add bool argument.
4846         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
4847         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
4848         (frv_expand_epilogue): Use new argument to decide whether to emit
4849         return instruction or copy the return address to LR.
4850         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
4851         sibcalls.
4852         (sibcall_operand): New.
4853         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
4854         PLUS nor LABEL_REF.  Add sibcall_operand.
4855         * config/frv/frv.md (call, call_value): Pass false to
4856         frv_expand_fdpic_call.
4857         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
4858         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
4859         sibcall_value_internal, sibcall_value_fdpicdi): New.
4860         (return_unsigned_true, return_unsigned_false): New.
4861         (epilogue): Adjust call to frv_expand_epilogue.
4862         (sibcall_epilogue): New.
4863
4864         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
4865         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
4866         before redefining them.
4867
4868 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4869
4870         * builtins.c (fold_fixed_mathfn): New function.
4871         (fold_builtin_lround, fold_builtin): Use it.
4872
4873 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
4874
4875         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
4876         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
4877
4878 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
4879
4880         * config/cris/cris.h: Revert my "fix comment typos" patch.
4881
4882 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
4883
4884         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
4885
4886 2004-05-01  Falk Hueffner  <falk@debian.org>
4887
4888         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
4889         builtin_insll): Disallow 0 as first input operand.
4890
4891 2004-05-01  Falk Hueffner  <falk@debian.org>
4892
4893         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
4894
4895 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
4896
4897         PR middle-end/15054
4898         * expr.c (expand_expr_real): Do not call preserve_temp_slots
4899         on a TARGET_EXPR temp.
4900         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
4901         TARGET_EXPR temp slots.
4902
4903 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
4904
4905         * simplify-rtx.c (simplify_ternary_operation): When
4906         converting an IF_THEN_ELSE to a relational op, return
4907         correct mode.
4908
4909 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4910
4911         * builtins.c (fold_builtin_round): Fix comment typo.
4912         (fold_builtin_lround): New function.
4913         (fold_builtin): Use it.
4914
4915 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
4916
4917         PR target/11608
4918         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
4919         more like the one in config/dbxelf.h.
4920
4921 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
4922
4923         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
4924         and adjust definition accordingly.
4925         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
4926         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
4927         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
4928         VECTOR_TYPE.
4929
4930 2004-04-30  Jason Merrill  <jason@redhat.com>
4931
4932         PR c++/14587
4933         * config/i386/winnt.c (associated_type): Look for attributes on
4934         the TYPE_MAIN_VARIANT of *this.
4935         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
4936         apply the attributes to the variants.
4937
4938 2004-04-30  Paul Brook  <paul@codesourcery.com>
4939
4940         * config.gcc: Simplify arm --with-{cpu,tune} test.
4941         * config/arm/arm-cores.def: Document whitespace restrictions.
4942
4943 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4944
4945         PR other/1963
4946         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
4947
4948 2004-04-30  Brian Ford  <ford@vss.fsi.com>
4949             DJ Delorie  <dj@redhat.com>
4950
4951         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4952         (DWARF2_DEBUGGING_INFO): Define to enable.
4953         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
4954         DWARF2.
4955         * configure.ac (Target-specific assembler checks)
4956         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
4957         relocs.
4958         * configure: Regenerate.
4959         * config.in: Likewise.
4960
4961         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4962         (ASM_OUPUT_DWARF_OFFSET): Define.
4963
4964 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
4965
4966         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
4967         (s390_emit_call): New function prototype added.
4968         (s390_tls_get_offset): Function removed.
4969         * config/s390/s390.c (s390_function_ok_for_sibcall,
4970         s390_call_saved_register_used_p): New functions.
4971         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
4972         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
4973         (s390_emit_tls_call_insn): New function.
4974         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
4975         emit_call_insn.
4976         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
4977         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
4978         added.
4979         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
4980         register number used to hold the target address for sibcalls.
4981         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
4982         New expanders.
4983         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
4984         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
4985         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
4986         Expanders removed.
4987         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
4988         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
4989         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
4990         ("epilogue"): Changed the call to s390_emit_epilogue to use the
4991         new parameter.
4992
4993 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
4994
4995         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
4996         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
4997         reg-stack.c, varasm.c, config/alpha/ev4.md,
4998         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
4999         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5000         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5001         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5002         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5003         config/ia64/itanium2.md, config/ip2k/ip2k.c,
5004         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5005         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5006         comment typos.
5007
5008 2004-04-30  Paul Brook  <paul@codesourcery.com>
5009
5010         * config.gcc: Default ep9312 to hard-float.
5011         * config/arm/arm-cores.def: Add ARCH field.
5012         * config/arm/arm.c (FL_FOR_ARCH*): Define.
5013         (arm_arch_cirrus): New variable.
5014         (all_cores): Set and use arch.
5015         (all_architectures): Ditto.
5016         (arm_arch_name): New variable.
5017         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5018         Set and use arm_arch_cirrus.
5019         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5020         (enum processor_type): Update ARM_CORE define.
5021         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
5022         (CPP_SPEC): Remove %(cpp_cpu_arch).
5023         (CPP_ARCH_DEFAULT_SPEC): Remove.
5024         (CPP_CPU_ARCH_SPEC): Remove.
5025         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5026         (FPUTYPE_DEFAULT): Don't define here.
5027
5028 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
5029
5030         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
5031         updates too.
5032
5033 2004-04-30  Paul Brook  <paul@codesourcery.com>
5034
5035         * arm.c (arm_needs_doubleword_align): Use mode alignment.
5036
5037 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
5038
5039         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
5040         vec_sububs.
5041         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
5042         duplicates.
5043
5044 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5045
5046         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5047         atan2?f3 expanders.
5048
5049 2004-04-29  Nick Clifton  <nickc@redhat.com>
5050
5051         Bug 14093
5052         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5053         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5054         Delete static from definition.
5055         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5056
5057 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5058
5059         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5060         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5061         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5062         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5063
5064 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5065
5066         * commom.opt (Wfatal-errors): Add it.
5067         * diagnostic.c (flag_fatal_errors): Define it.
5068         (diagnostic_action_after_output): Check for flag_fatal_errors.
5069         * flags.h (flag_fatal_errors): Declare it.
5070         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5071         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5072
5073 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5074
5075         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5076         blocks which have kill flag set.
5077
5078 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5079
5080         * configure.ac (--with-as): Abort if user-supplied assembler
5081         cannot be executed.
5082         (--with-ld): Likewise for the linker.
5083         * configure: Regenerate.
5084
5085 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5086
5087         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5088         isn't NULL before using it.
5089
5090 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5091
5092         PR target/15189
5093         * config/mips/mips.md (load_df_low): Use default length.
5094         (load_df_high, store_df_high): Likewise.
5095
5096 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5097
5098         * config/mips/mips.md, config/mips/sb1.md,
5099         config/rs6000/rs6000.c: Fix comment typos.
5100
5101 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5102
5103         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5104         Fix comment typos.
5105
5106 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5107
5108         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5109         (delete_if_ordinary): Use above macro.
5110         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5111         Update copyright.
5112         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5113
5114 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5115
5116         * c-decl.c (get_parm_info): Use the correct tag keywords when
5117         warning about type declarations in prototypes.
5118
5119 2004-04-29  Paul Brook  <paul@codesourcery.com>
5120
5121         * config.gcc: Pull list of cores from arm-cores.def.
5122
5123 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5124
5125         * combine.c (combine_simplify_rtx): Adjust call to use
5126         simplify_relational_operation.  Do not use SELECT_CC_MODE
5127         when a comparison already has a MODE_CC mode.
5128
5129 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5130
5131         (simplify_set): simplify_relational_operation may now
5132         return another relational expression.
5133         * cse.c (fold_rtx): simplify_relational_operation now
5134         takes of computing the comparison mode.
5135         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5136         remove dead code.
5137         (do_compare_rtx_and_jump): Likewise.
5138         * integrate.c (subst_constants): simplify_relational_operation
5139         may now return another relational expression.
5140         * simplify-rtx.c (simplify_gen_relational): Move most code to
5141         the new simplify_relational_operation and
5142         simplify_relational_operation_1 functions.
5143         (simplify_relational_operation): Rewritten.
5144         (simplify_relational_operation_1): New function.
5145         (simplify_ternary_operation): simplify_relational_operation
5146         may now return another relational expression.
5147         (simplify_rtx): Remove unnecessary temp variable.
5148
5149 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5150
5151         * reg-stack.c (swap_to_top): New function.
5152         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5153         swap_to_top().
5154         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5155         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5156         UNSPEC_FSCALE_EXP.
5157
5158         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5159         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5160         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5161         x87's fscale insn.
5162         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5163         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5164         patterns.
5165
5166 2004-04-28  Serge Belyshev  <1319@bot.ru>
5167
5168         PR 14944
5169         * coverage.c (read_counts_file): Fix usage of warning () call.
5170         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5171
5172 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5173
5174         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5175         options with "-" in the option index.
5176         (SPARC Options): Likewise.
5177         (M32R/D Options): Likewise.
5178
5179 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5180
5181         * convert.c (convert_to_integer): Convert (long)round -> lround,
5182         etc.
5183
5184 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5185
5186         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5187         Return false if we do not have fp register.
5188         (addrs_ok_for_quad_peep): Rename to ...
5189         (mems_ok_for_quad_peep): this.
5190         Add check for volatile memory.
5191         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5192         Rename to ...
5193         (mems_ok_for_quad_peep): this.
5194         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5195         to peephole2's.
5196         (lfq_power2): New instruction.
5197         (stfq_power2): Likewise.
5198
5199 2004-04-28  Jan Hubicka  <jh@suse.cz>
5200
5201         PR c/15004
5202         * function.c (do_warn_unused_parameter): Break out form ...
5203         (expand_function_end): ... here; warn only when not using cgraphunit.
5204         * function.h (do_warn_unused_parameter): Declare.
5205         * cgraphunit.c: Include function.h.
5206         (cgraph_finalize_function): Do unused parameter warning.
5207         * Makefile.in (cgraphunit.o): Depend on function.h
5208
5209 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5210
5211         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5212         calling install-info on $(DESTDIR)$(infodir)/dir already being
5213         present.
5214
5215 2004-04-28  Paul Brook  <paul@codesourcery.com>
5216
5217         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5218
5219 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5220
5221         * gcse.c (find_moveable_store): Do not accept store insns with
5222         REG_EH_REGION note.
5223
5224 2004-04-28  Paul Brook  <paul@codesourcery.com>
5225
5226         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5227         * function.c (assign_temp): Ditto.
5228         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5229
5230 2004-04-28  Paul Brook  <paul@codesourcery.com>
5231
5232         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5233
5234 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
5235
5236         * var-tracking.c (variable_different_p): Add a parameter
5237         compare_current_location, compare current location of variable parts
5238         if it is true.
5239         (dataflow_set_different_1): Pass compare_current_location == false.
5240         (dataflow_set_different_2): Pass compare_current_location == false.
5241         (emit_notes_for_differences_1): Pass compare_current_location == true.
5242
5243 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5244
5245         * config/s390/s390.md ("casesi"): Mark jump table access as
5246         non-trapping and unchanging.
5247
5248 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5249
5250         PR debug/14829
5251         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
5252         callers.
5253         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5254         number for indexing hard_regno_nregs array.
5255
5256 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
5257
5258         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5259         * config/darwin-crt2.c: Only have contents on __ppc__.
5260
5261 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
5262
5263         * config/xtensa/xtensa.c (call_insn_operand): Check
5264         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5265         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5266         * config/xtensa/xtensa.md (call, call_value): Likewise.
5267
5268 2004-04-27  Wu Yongwei  <adah@sh163.net>
5269
5270         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5271         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5272         (__gthread_mutex_init_function): Replace CreateMutex with
5273         initialization of custom mutex using CreateSemaphore.
5274         (__gthread_mutex_lock): Use InterlockedIncrement.
5275         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5276         (__gthread_mutex_unlock): Use InterlockedDecrement and
5277         ReleaseSemaphore to unlock
5278         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5279         __gthread_mutex_lock, __gthread_mutex_trylock,
5280         __gthread_mutex_unlock): Adjust to match inline versions in
5281         gthr-win32.h.
5282
5283 2004-04-27  Paul Brook  <paul@codesourcery.com>
5284
5285         * config/arm/arm.c (arm_promote_prototypes): New function.
5286         (TARGET_PROMOTE_PROTOTYPES): Use it.
5287
5288 2004-04-27  Paul Brook  <paul@codesourcery.com>
5289
5290         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5291
5292 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
5293
5294         * config/alpha.c (alpha_end_function): For OpenVMS gas,
5295         correctly output .pdesc directive before .end.
5296
5297 2004-04-26  James E Wilson  <wilson@specifixinc.com>
5298
5299         Bug 14927
5300         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
5301         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
5302
5303 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
5304
5305         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5306         * config/pa/pa-hpux10.h: Likewise.
5307         * config/pa/pa-hpux11.h: Likewise.
5308
5309 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
5310
5311         * doc/invoke.texi (Overall Options): Document default for -o
5312         for PCH files.
5313
5314 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5315
5316         * builtins.c (expand_builtin_update_setjmp_buf): New function.
5317         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5318         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5319
5320 2004-04-26  Paul Brook  <paul@codesourcery.com>
5321
5322         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5323
5324 2004-04-26  Paul Brook  <paul@codesourcery.com>
5325
5326         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5327
5328 2004-04-25  Roger Sayle  <roger@eyesopen.com>
5329
5330         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5331         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
5332         X % -1 as 0.
5333
5334 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
5335
5336         PR bootstrap/15141
5337         * except.c (connect_post_landing_pads): Delete insns after the
5338         barrier when generating a unwind_resume_libfunc call.
5339
5340 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5341
5342         PR/c++ 15119
5343         * tree.c (substitute_placeholder_in_expr, case 4): New case,
5344         for TARGET_EXPR.
5345
5346 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5347
5348         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5349         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5350         inhibit_libc is defined.
5351
5352 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
5353
5354         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5355         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5356         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5357         (TARGET_SCHED_VARIABLE_ISSUE): Define.
5358         (mips_adjust_cost): Move later in file, next to other sched hooks.
5359         (mips_macc_chains_last_hilo): New variable.
5360         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5361         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5362         * config/mips/mips.md (may_clobber_hilo): New attribute.
5363
5364 2004-04-24  Roger Sayle  <roger@eyesopen.com>
5365             Bruce Korb  <bkorb@gnu.org>
5366
5367         * fixinc/inclhack.def (aix_syswait_2): New fix.
5368         * fixinc/fixincl.x: Regenerate.
5369         * fixinc/tests/base/sys/wait.h: Update for new test.
5370
5371 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
5372
5373         PR target/14960
5374         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5375         to non_fixed_size, and leave out fixed_size from the sum.
5376         (generate_set_vrsave): Correct clobbers.
5377         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5378         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5379         (rs6000_libcall_value): Likewise.
5380         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5381         (FUNCTION_ARG_REGNO_P): Likewise.
5382
5383 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5384
5385         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5386         is a CONST_INT.
5387         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5388         with NARROW_OP1 instead of OP1.
5389
5390 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5391
5392         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5393         and __s390x__ hosts.
5394
5395 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5396
5397         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5398         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5399         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5400         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5401         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5402         * builtins.c (expand_builtin_fork_or_exec): New.
5403         (expand_builtin): Call it.
5404         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5405         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5406         * c-common.c (PID_TYPE): New macro.
5407         (c_common_nodes_and_builtins): Initialize pid_type_node.
5408         * calls.c (special_function_p): Do not handle fork and exec.
5409         (expand_call): Do not handle ECF_FORK_OR_EXEC.
5410         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5411         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5412         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5413         __gcov_execv, __gcov_execvp, __gcov_execve): New.
5414         * tree.h (enum tree_index): Add TI_PID_TYPE.
5415         (pid_type_node): New macro.
5416         (ECF_FORK_OR_EXEC): Removed.
5417
5418 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5419
5420         PR optimization/13985
5421         * cfgloopmanip.c (fix_loop_placements): New prototype.
5422         Call fix_bb_placements on the preheader of loops that have
5423         been reparented.
5424         (remove_path): Adjust call to fix_loop_placements.
5425
5426 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
5427
5428         * config/darwin7.h: New file.
5429         * config.gcc (*-*-darwin*): Add darwin7.h if the
5430         version is greater than 6.
5431         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5432         (MATH_LIBRARY): Wrap in ifdefs.
5433
5434 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
5435
5436         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5437         loading iWMMXt registers with a frame pointer.  Use post-increment
5438         without a frame pointer.
5439         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5440
5441 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
5442
5443         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5444         mode" rather than "-funit-at-a-time" since -O2 enables it
5445         without requiring -f* options.  Refer to -fprofile-generate and
5446         -fprofile-use correctly.  Move -funit-at-a-time among options
5447         enabled by -O.  Add information about unit-at-a-time caveats.
5448
5449 2004-04-22  Per Bothner  <per@bothner.com>
5450
5451         * line-map.h (struct line_maps):  New field highest_line.
5452         (linemap_position_for_column):  Make non-inline function.
5453         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
5454         * line-map.c (linemap_init):  Clear highest_line field.
5455         (linemap_add):  Set highest_line field.
5456         (linemap_line_start):  Minor optimization - use highest_line field.
5457         Reduce maximum column hint to 10000.  Update highest_line field.
5458         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
5459         * cpphash.h (struct cpp_reader):  Remove line field - instead use
5460         line_table->highest_line.
5461         (saved_line):  Remove unused field.
5462         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
5463         Use  line_table's highest_line field instead of cpp_reader's line.
5464         * cpplib.c (start_directive):  Likewise use highest_line field.
5465         (do_line, do_linemarker):  Likewise just use newest map.
5466         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
5467         * cpperror.c (cpp_error):  Likewise use highest_line field.
5468         * cppfiles.c (open_file_failed:  Likewise.
5469         (cpp_make_system_header):  Likewise use newest map and highest_line.
5470         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
5471         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5472         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5473         _cpp_lex_direct):  Likewise use highest_line.
5474         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
5475         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
5476         and use newest map.
5477         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
5478         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
5479         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
5480
5481 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
5482
5483         PR bootstrap/14992
5484         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5485         * config/linux.h (USE_LD_AS_NEEDED): Define.
5486         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5487         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5488         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5489         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5490         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5491         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5492         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5493
5494 2004-04-22  Per Bothner  <per@bothner.com>
5495
5496         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
5497         Fixes PR preprocessor/15067.
5498
5499 2004-04-23  Andreas Schwab  <schwab@suse.de>
5500
5501         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5502         avoid aliasing warning.
5503
5504 2004-04-22  Jan Hubicka  <jh@suse.cz>
5505             Mostafa Hagog <mustafa@il.ibm.com>
5506
5507       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5508       * cfgloopanal.c (expected_loop_iterations): Change the return value
5509
5510 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
5511
5512         * cselib.h (struct elt_loc_list): Remove canon_loc field.
5513         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
5514         (cselib_invalidate_mem): Remove all canon_loc and canon_x
5515         traces.
5516
5517 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
5518
5519         Revert
5520         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5521
5522                 * var-tracking.c (variable_part_different_p): Variable parts
5523                 differ when the most recent locations differ.
5524
5525 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
5526
5527         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
5528         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
5529         (embedded_pic_offset): Delete.
5530         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
5531         MASK_* constants.
5532         (TARGET_EMBEDDED_PIC): Delete.
5533         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
5534         (ASM_SPEC): Remove -membedded-pic.
5535         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
5536         (ASM_OUTPUT_CASE_LABEL): Likewise.
5537         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
5538         * config/mips/windiss.h (ASM_SPEC): Likewise.
5539         * config/mips/mips.c (struct machine_function): Remove
5540         embedded_pic_fnaddr_rtx.
5541         (TARGET_ENCODE_SECTION_INFO): Remove override.
5542         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
5543         (override_options): Remove -membedded-pic handling.
5544         (print_operand): Remove handling of '%S'.
5545         (mips_select_section: Remove -membedded-pic handling.
5546         (mips_encode_section_info): Delete.
5547         (mips_output_conditional_branch): Remove mention of -membedded-pic.
5548         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
5549         -membedded-pic handling.
5550         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
5551
5552 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
5553
5554         * var-tracking.c (frame_base_decl): Remove useless GTY.
5555
5556 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
5557
5558         * config/rs6000/rs6000.c (rs6000_override_options): Error when
5559         user wants altivec and e500 instructions.
5560
5561 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
5562
5563         PR target/14813
5564         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
5565         in .init_array section to ...
5566         * config/ia64/crtbegin.asm: Here.
5567
5568         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
5569         and hidden if HAVE_INITFINI_ARRAY is defined.
5570
5571 2004-04-21  James E Wilson  <wilson@specifixinc.com>
5572
5573         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
5574         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
5575         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
5576         (fp_register_operand, lo_operand): New.
5577         (mips_rtx_costs): Add TUNE_SB1 support.
5578         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
5579         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
5580         (mips_multipass_dfa_lookahead): New.
5581         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
5582         TUNE_SB1): New.
5583         (TARGET_SWITCHES): Add -mfp-exceptions support.
5584         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
5585         (BRANCH_COST): Fix whitespace.
5586         * config/mips/mips.md: Include sb1.md.
5587         * config/mips/sb1.md: New file.
5588         * doc/invoke.texi: Document -mfp-exceptions.
5589
5590         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
5591         comment.
5592         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
5593         (fixincl.o-warn): Delete.
5594
5595 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5596
5597         * config/rs6000/rs6000 (print_operand) ['z']:
5598         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
5599
5600 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
5601
5602         * config.gcc: Support --with-arch=iwmmxt for ARM.
5603
5604 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5605
5606         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
5607         in two more places; remove unneeded force_reg
5608
5609 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5610
5611         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
5612         for TARGET_MACHO.
5613         (print_operand): For TARGET_MACHO check to see if we need a stub
5614         and output one if we need it.
5615
5616         PR debug/15033
5617         * dwarf2out.c (rtl_for_decl_location): Check for NULL
5618         rtl.
5619
5620 2004-04-20  James E Wilson  <wilson@specifixinc.com>
5621
5622         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
5623         (vall_value_gp): Likewise.
5624
5625 2004-04-20  DJ Delorie  <dj@redhat.com>
5626
5627         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
5628         variables stored in word registers, then in memory.
5629
5630 2004-04-20  Eric Christopher  <echristo@redhat.com>
5631
5632         * cp/parser.c (cp_parser_declaration): Move translate
5633         up before tokens are lexed.
5634
5635 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
5636
5637         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
5638         (asin_optab, acos_optab): Define corresponding macros.
5639         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
5640         * genopinit.c (optabs): Implement asin_optab and acos_optab
5641         using asin?f2 and acos?f2 patterns.
5642         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
5643         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
5644         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
5645         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5646
5647         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
5648         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
5649         acos, acosf and acosl built-ins as inline x87 intrinsics.
5650
5651 2004-04-20  Paul Brook  <paul@codesourcery.com>
5652
5653         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
5654
5655 2004-04-20  Paul Brook  <paul@codesourcery.com>
5656
5657         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
5658
5659 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
5660
5661         Revert part of 2004-04-17 change that moved -frename-registers
5662         to -O1.  -frename-registers is buggy.
5663
5664         * toplev.c (flag_rename_registers): Initialize to 0.
5665         * doc/invoke.texi (Optimize options): Move -frename-registers
5666         to "Not triggered by any -O level" section.  Adjust commentary
5667         accordingly.
5668
5669 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
5670
5671         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
5672
5673 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
5674
5675         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
5676         for mflo and mfhi instructions.
5677         (mips_output_move): Remove mflo and mfhi handling.
5678         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
5679         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
5680         Likewise various define_peephole2s.
5681         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
5682         alternatives.
5683         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
5684         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
5685         (mfhilo_di, mfhilo_si): New patterns.
5686
5687 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5688
5689         * function.c (assign_parms): Force
5690         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
5691
5692 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5693
5694         * var-tracking.c (variable_part_different_p): Variable parts differ
5695         when the most recent locations differ.
5696
5697 2004-04-19  James E Wilson  <wilson@specifixinc.com>
5698
5699         * rtl.h (reg_set_last): Delete declaration.
5700         * rtlanal.c (reg_set_last): Delete.
5701
5702 2004-04-19  Roger Sayle  <roger@eyesopen.com>
5703
5704         * fold-const.c (fold_convert): Make function extern/public.
5705         * tree.h (fold_convert): Prototype here.
5706         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
5707         expand_builtin_strrchr, expand_builtin_strpbrk,
5708         expand_builtin_mempcpy, expand_builtin_bcopy,
5709         expand_builtin_bzero, expand_builtin_memcmp,
5710         expand_builtin_strcmp, expand_builtin_strncmp,
5711         stabilize_va_list, expand_builtin_sprintf,
5712         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
5713         fold_builtin_exponent, fold_builtin_mempcpy,
5714         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
5715         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
5716         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
5717
5718 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
5719
5720         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
5721         (move_from_CR_gt_bit): New.
5722         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
5723         E500.
5724         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
5725         E500.
5726
5727         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
5728         (tstsfeq_gpr): Same.
5729         (cmpsfgt_gpr): Same.
5730         (tstsfgt_gpr): Same.
5731         (cmpsflt_gpr): Same.
5732         (tstsflt_gpr): Same.
5733         (e500_cceq_ior_compare): New.
5734         (e500_flip_gt_bit): New.
5735
5736         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
5737         (print_operand): Add 'c' and 'D'.
5738         (rs6000_generate_compare): Rewrite to generate correct rtl.
5739         (rs6000_emit_sCOND): Handle E500.
5740         (output_cbranch): Adjust for changes in rs6000_generate_compare.
5741         (output_e500_flip_gt_bit): New.
5742
5743         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
5744         Protoize.
5745
5746 2004-04-19  Eric Christopher  <echristo@redhat.com>
5747
5748         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
5749
5750 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
5751
5752         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
5753         fix information.
5754
5755 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5756
5757         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
5758         download URL.
5759
5760 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
5761
5762         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
5763         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
5764
5765 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
5766
5767         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
5768         (fold_builtin): Update caller to match.
5769
5770         PR bootstrap/15009
5771         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
5772
5773         PR bootstrap/14999
5774         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
5775
5776 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5777
5778         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
5779
5780         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
5781         (expand_mult_highpart_optab): Likewise.
5782         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
5783
5784 2004-04-19  Paul Brook  <paul@codesourcery.com>
5785
5786         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
5787         floatunssisf2, floatunssidf2): New patterns.
5788
5789 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
5790
5791         PR other/14918
5792         * doc/invoke.texi (-fprofile-generate): Document requirement to
5793         use -fprofile-generate when linking.
5794
5795         * doc/extend.texi (Strong Using): Warn users against using this
5796         feature.
5797
5798 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
5799
5800         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
5801         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
5802         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
5803         * config/mips/mips.c (struct mips16_constant): Renamed from struct
5804         constant.  Propogate change throughout file.
5805         (struct machine_function): Remove insns_len.
5806         (mips_string_length, mips16_strings, string_constants): Delete.
5807         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
5808         when generating mips16 code.  Remove special mips16 treatment of
5809         string constants.
5810         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
5811         to have the form LABEL+CONSTANT.
5812         (mips_symbolic_address_p): Fix comment.
5813         (m16_usym8_4, m16_usym5_4): Delete.
5814         (mips_output_function_epilogue): Remove mips16 string handling.
5815         (mips_output_mi_thunk): Call mips16_lay_out_constants.
5816         (mips_select_section, mips_encode_section_info): Remove mips16
5817         string handling.
5818         (struct mips16_constant_pool): New.
5819         (add_constant): Take a mips16_constant_pool structure.  Keep pool
5820         sorted into order of ascending mode size.  Keep track of the highest
5821         possible start address, taking padding and the masking of the base PC
5822         value into account.
5823         (dump_constants_1): New function, split out from dump_constants.
5824         Handle vector constants.  Use gen_consttable_{int,float} rather than
5825         separate functions for each mode.
5826         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
5827         rather than separate functions for each alignment.
5828         (mips_find_symbol): Delete.
5829         (mips16_insn_length): New function, split out from
5830         mips16_lay_out_constants.
5831         (mips16_rewrite_pool_refs): New function.
5832         (mips16_lay_out_constants): Rework. Remove string handling.
5833         Always create an inline constant pool.
5834         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
5835         (UNSPEC_ALIGN): New constants.
5836         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
5837         (UNSPEC_ALIGN_[248]): Delete.
5838         (consttable_int, consttable_float, align): New patterns.
5839         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
5840
5841 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
5842
5843         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
5844         __unn_args_eq.
5845
5846 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
5847
5848         PR target/14715
5849         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
5850         with STARTING_FRAME_OFFSET.
5851
5852 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5853
5854         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
5855         * config/mips/mips.c (macc_msac_operand): New function.
5856         * config/mips/mips.md (*msac): Move after *macc.
5857         (*msac2): New.  Generalize macc-related peepholes so that they apply
5858         to msac too.
5859
5860 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
5861
5862         * opts.c (decode_options): Do not enable flag_rename_registers
5863         and flag_web at -O3.
5864         * toplev.c (flag_rename_registers): Initialize
5865         flag_rename_registers and flag_web to
5866         AUTODETECT_FLAG_VAR_TRACKING.
5867         (default_debug_hooks): New global.
5868         (process_options): Initialize default_debug_hooks.  Warn if
5869         -fvar-tracking specified but not supported by the current
5870         debug format.  Do not run var tracking at -O0 or if not
5871         supported by the current debug format, even if
5872         -fvar-tracking was given.  If -fno-rename-registers
5873         is not specified, always run register renaming if var
5874         tracking is supported by the default debugging information
5875         format for the target, and we are at -O1 or higher; similarly
5876         for -fweb, but only at -O2 or higher.
5877         * doc/invoke.texi (Optimize Options): Document this.
5878
5879 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5880
5881         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
5882         * configure: Regenerate.
5883
5884 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5885
5886         * gcc.c (used_arg): Check whether an option has been removed.
5887
5888 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5889
5890         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
5891         debugging on Solaris 7 and up.
5892
5893 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5894
5895         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
5896         IRIX 5 port.
5897         Remove -save-temps workaround, handled automatically.
5898         Require GNU binutils 2.15 for debugging.
5899         Remove SGI make warnings since GNU make is now required.
5900         (Specific, mips-sgi-irix6): Some markup fixes.
5901         Describe MIPSpro C problems and workarounds.
5902         Mention working O32 ABI support.
5903         Recommend GNU as 2.15 for O32 with debugging.
5904         Remove description of fixed structure pass/return bug.
5905
5906 2004-04-16  DJ Delorie  <dj@redhat.com>
5907
5908         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
5909         TYPE_FIELDS.
5910         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
5911
5912 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5913
5914         * pa.md: Remove unnecessary declarations for asm_out_file.
5915
5916         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
5917         SAR register.  Fix comment.
5918         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
5919         (%cr11).
5920
5921         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
5922
5923 2004-04-16  Nick Clifton  <nickc@redhat.com>
5924
5925         * config/arm/arm.c (arm_override_options): Revert previous patch.
5926         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
5927         be safely built.
5928
5929 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
5930
5931         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
5932         bug.
5933         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
5934         TARGET_DEFAULT): Changed. Ditto.
5935         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
5936         TARGET_ENDIAN_DEFAULT): Added. Ditto.
5937         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
5938         (TARGET_ENDIAN_DEFAULT): Added.
5939
5940 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5941
5942         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
5943         ATTR_CONST_NOTHROW_LIST.
5944
5945 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5946
5947         PR/middle-end 14915
5948         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
5949         BITS_BIG_ENDIAN.
5950
5951 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
5952
5953         * ra-debug.c (ra_print_rtx): Add break's to case legs.
5954
5955 2004-04-14  James E Wilson  <wilson@specifixinc.com>
5956
5957         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
5958
5959 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
5960
5961         * libada-mk.in: New file.
5962         * configure.ac: Create libada-mk from libada-mk.in.
5963         * configure: Regenerate.
5964
5965 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
5966
5967         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
5968         (logb_optab, ilogb_optab): Define corresponding macros.
5969         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
5970         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
5971         using logb?f2 and ilogb?i2 patterns.
5972         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
5973         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
5974         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
5975         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5976
5977         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
5978         and UNSPEC_XTRACT_EXP.
5979
5980         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
5981         patterns to implement fxtract x87 instruction.
5982         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
5983         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
5984         intrinsics.
5985         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
5986         x87's fxtract insn.
5987
5988 2004-04-14  Eric Christopher  <echristo@redhat.com>
5989
5990         * config/mips/t-elf: Enable multilibs by default.
5991
5992 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
5993
5994         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
5995         previous fix to check HAVE_return at runtime too.
5996
5997 2004-04-14  Nick Clifton  <nickc@redhat.com>
5998
5999         * config/arm/arm.c (arm_override_options): If the user has not
6000         specified an ABI, then default to AAPCS for the iWMMXt processor.
6001         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6002         * config/arm/t-xscale-coff: Likewise.
6003
6004 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6005
6006         * builtins.c (fold_builtin_isdigit): New.
6007         (fold_builtin): Handle BUILT_IN_ISDIGIT.
6008         * defaults.h: Add TARGET_DIGIT0 and sort.
6009         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6010
6011 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6012
6013         * builtins.c (fold_builtin_cabs, fold_builtin): Use
6014         `mathfn_built_in' to determine the new builtin.
6015         * fold-const.c (fold): Likewise.
6016
6017 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
6018
6019         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6020         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6021         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6022         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6023         (ASM_SPEC): Update accordingly.
6024         * config/mips/mips.c: Update after above renaming.
6025         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6026         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6027
6028 2004-04-13  James E Wilson  <wilson@specifixinc.com>
6029
6030         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
6031         increment errorcount and return false instead of true.
6032
6033 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
6034
6035         * optabs.c (expand_twoval_unop): Reorder function arguments.
6036         * builtins.c (expand_builtin_mathfn_3): Update calls to
6037         expand_twoval_unop.
6038
6039         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
6040         and UNSPEC_TAN_TAN. Add missing comment.
6041
6042         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
6043         patterns to implement fptan x87 instruction.
6044         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6045         and tanl built-ins as inline x87 intrinsics. Define corresponding
6046         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6047         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6048         x87's fptan insn.
6049
6050 2004-03-13  Richard Henderson  <rth@redhat.com>
6051
6052         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6053         for LABEL_REFs.
6054
6055         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6056         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6057         * doc/invoke.texi: Update to match.
6058
6059         * varasm.c (unlikely_text_section): Use assemble_align instead of
6060         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6061         correct alignment argument.
6062
6063 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6064
6065         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6066         after setting reg_last_reload_reg for optional output reloads.
6067
6068 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6069
6070         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6071         Definition of these two macros are corrected by adding
6072         matchine right paren.
6073
6074 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6075
6076         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6077
6078 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6079
6080         * config/i386/i386.c (output_387_reg_move): New function.
6081         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6082         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6083         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6084         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6085         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6086
6087 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6088
6089         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6090         TYPE_DECL.
6091         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6092         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6093         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6094         Use skip_simple_arithmetic to find SAVE_EXPR.
6095         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6096         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6097         Properly chain multiple pointers.
6098         (copy_tree_r): Copy a TYPE_DECL.
6099         * tree.c (variably_modified_type_p): Add some missing tests and
6100         make some other minor changes.
6101         * tree.h (force_type_save_exprs): New declaration.
6102
6103 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6104
6105         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6106         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6107         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6108         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6109         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6110         x%-1 into 0 (or x&0 if x has side-effects).
6111
6112 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6113
6114         * config/rs6000/rs6000.md: Document why a pattern is not
6115         available.
6116
6117         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6118         of floats on the E500.
6119         (branch_positive_comparison_operator): Do not allow NE even on the
6120         E500.
6121
6122 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6123
6124         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6125         in_text_unlikely_section to in_unlikely_text_section.
6126
6127 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6128
6129         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6130         calling convention to allow a NULL_TREE to be returned.  Factor
6131         sanity checks from callers, return NULL_TREE when appropriate.
6132         (fold): Handle COMPOUND_EXPR operands of binary expressions
6133         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6134         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6135         calls to fold_binary_op_with_conditional_arg.
6136
6137 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6138
6139         * config/mips/iris5.h (current_section_flags):  Add
6140         in_unlikely_executed_text and default case.
6141
6142 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
6143
6144         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6145         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6146         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6147         HAVE_return and place it around the place where it is needed.
6148
6149 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6150
6151         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6152         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6153         and NORMAL_TEXT_SECTION_NAME.
6154         (unlikely_text_section): Check targetm.have_named_sections
6155         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6156         instead of SECTION_FORMAT_STRING.
6157         * config/mips/iris5.h (current_section_name): Add
6158         in_unlikely_executed_text case and move the abort into the switch.
6159         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6160         (NORMAL_TEXT_SECTION_NAME): Remove.
6161         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6162         (SECTION_FORMAT_STRING): Remove.
6163         * defaults.h (SECTION_FORMAT_STRING): Remove.
6164         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6165         (SECTION_FORMAT_STRING): Remove.
6166
6167 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6168
6169         * c-typeck.c (common_type): Prefer long long to long when same
6170         precision.
6171
6172 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6173
6174         PR 14887
6175         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6176         mode argument.
6177         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6178         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6179
6180 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6181
6182         * simplify-rtx.c (mode_signbit_p): New function to check whether
6183         an RTX is an immediate constant that represents the most significant
6184         bit of a given machine mode.
6185         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6186         C is the sign bit.
6187         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6188         when C2 is the sign bit.
6189         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6190         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6191         sign bit.
6192
6193 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6194
6195         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6196         TYPE_MODE.
6197
6198 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
6199
6200         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6201         of TREE_READONLY for types.
6202
6203 2004-04-09  Caroline Tice  <ctice@apple.com>
6204
6205         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
6206         (struct basic_block_def):  Add new field, partition.
6207         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
6208         definitions.
6209         (partition_hot_cold_basic_blocks): Add extern function
6210         declaration.
6211         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
6212         include statements.
6213         (N_ROUNDS): Increase the maximum number of rounds by 1.
6214         (branch_threshold): Add array value for new round.
6215         (exec_threshold): Add array value for new round.
6216         (push_to_next_round_p): New function.
6217         (add_unlikely_executed_notes): New function.
6218         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6219         (mark_bb_for_unlikely_executed_section): New function.
6220         (add_labels_and_missing_jumps): New function.
6221         (add_reg_crossing_jump_notes): New function.
6222         (fix_up_fall_thru_edges): New function.
6223         (find_jump_block): New function.
6224         (fix_crossing_conditional_branches): New function.
6225         (fix_crossing_unconditional_branches): New function.
6226         (fix_edges_for_rarely_executed_code): New function.
6227         (partition_hot_cold_basic_blocks): New function.
6228         (find_traces):  Add an extra round for partitioning hot/cold
6229         basic blocks.
6230         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
6231         and only cold blocks, into the last (extra) round of collecting traces.
6232         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
6233         over crossing edges.
6234         (bb_to_key):  Add code to correctly identify cold blocks when
6235         doing partitioning.
6236         (connect_traces): Modify to connect all the non-cold traces first, then
6237         go back and connect up all the cold traces.
6238         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
6239         * cfg.c (entry_exit_blocks): Add initialization for partition field in
6240         entry and exit blocks.
6241         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6242         if we are doing hot/cold partitioning.
6243         * cfgcleanup.c (cfglayout.h): Add new include statement.
6244         (try_simplify_condjump): Modify to not attempt on blocks with jumps
6245         that cross section boundaries.
6246         (try_forward_edges): Likewise.
6247         (merge_blocks_move_predecessor_nojumps): Likewise.
6248         (merge_blocks_move_successor_nojumps): Likewise.
6249         (merge_blocks_move): Likewise.
6250         (try_crossjump_to_edge): Modify to not attempt after we have done
6251         the block partitioning.
6252         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6253         cross section boundaries.
6254         (try_optimize_cfg): Likewise.
6255         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6256         jumps that cross section boundaries.
6257         * cfglayout.c (flags.h): Add new include statement.
6258         (update_unlikely_executed_notes):  New function.
6259         (fixup_reorder_chain):  Add code so when a new jumping basic block is
6260         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6261         updated appropriately.
6262         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
6263         introduced by this optimization.
6264         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
6265         extern function declaration.
6266         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6267         list of notes that can be deleted.
6268         (create_basic_block_structure):  Add initialization for partition field.
6269         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
6270         section boundaries.
6271         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
6272         cross section boundaries.
6273         (commit_one_edge_insertion): Add code so newly created basic block
6274         ends up in correct (hot or cold) section.  Modify to disallow
6275         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6276         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
6277         crosses section boundaries.
6278         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6279         cross section boundaries.
6280         (force_nonfallthru_and_redirect): Modify to make sure new basic block
6281         ends up in correct section, with correct notes attached.
6282         * common.opt (freorder-blocks-and-partition):  Add new flag for this
6283         optimization.
6284         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
6285         the end of functions are written into the correct (hot or cold)
6286         section.
6287         (dbx_source_file): Add code so writing debug file information
6288         doesn't incorrectly change sections.
6289         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6290         in partitioning hot/cold basic blocks into separate sections.
6291         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6292         section partitioning.
6293         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6294         conditional branches can span all of memory.
6295         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6296         unconditional branches can span all of memory.
6297         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
6298         (final_scan_insn):  Add code to check for NOTE instruction indicating
6299         whether basic block belongs in hot or cold section, and to make sure
6300         the current basic block is being written to the appropriate section.
6301         Also added code to ensure that jump table basic blocks end up in the
6302         correct section.
6303         * flags.h (flag_reorder_blocks_and_partition):  New flag.
6304         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
6305         one of the branches has a jump that crosses between sections.
6306         (find_if_case_2): Likewise.
6307         (ifcvt): Modify to not attempt to mark loop exit edges after
6308         hot/cold partitioning has occurred.
6309         * opts.c (decode_options): Code to handle new flag,
6310         flag_reorder_blocks_and_partition; also to turn it off if
6311         flag_exceptions is on.
6312         (common_handle_option): Code to handle new flag,
6313         flag_reorder_blocks_and_partition.
6314         * output.h (unlikely_text_section): New extern function declaration.
6315         (in_unlikely_text_section): New extern function declaration.
6316         * passes.c (rest_of_handle_stack_regs):  Add
6317         flag_reorder_blocks_and_partition as an 'or' condition for calling
6318         reorder_basic_blocks.
6319         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
6320         as an 'or' condition for calling reorder_basic_blocks.
6321         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
6322         * print-rtl.c (print_rtx): Add code for handling new note,
6323         NOTE_INSN_UNLIKELY_EXECUTED_CODE
6324         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
6325         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6326         cross between section boundaries.
6327         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
6328         indicating the basic block containing it belongs in the cold section.
6329         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6330         between hot and cold sections.
6331         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
6332         initialize this flag, and to tie it to the command-line option
6333         freorder-blocks-and-partition.
6334         * varasm.c (cfglayout.h):  Add new include statement.
6335         (unlikely_section_label_printed):  New global variable, used for
6336         determining when to output section name labels for cold sections.
6337         (in_section):  Add in_unlikely_executed_text to enum data structure.
6338         (text_section):  Modify code to use SECTION_FORMAT_STRING and
6339         NORMAL_TEXT_SECTION_NAME macros.
6340         (unlikely_text_section):  New function.
6341         (in_unlikely_text_section):  New function.
6342         (function_section):  Add code to make sure beginning of function is
6343         written into correct section (hot or cold).
6344         (assemble_start_function):  Add code to make sure stuff is written to
6345         the correct section.
6346         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
6347         to an if statement that was checking 'in_text_section'.
6348         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
6349         condition to an if statement that was checking 'in_text_section'.
6350         (default_section_type_flags_1):  Add check: if in cold section
6351         flags = SECTION_CODE.
6352         * config/darwin.c (darwin_asm_named_section):  Modify to use
6353         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
6354         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
6355         specifically for the i386.
6356         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
6357         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
6358         text string to something more informative.
6359         (NORMAL_TEXT_SECTION_NAME): Add new definition.
6360         (SECTION_FORMAT_STRING):  Add new definition.
6361         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
6362         '!in_unlikely_text_section' as an 'and' condition to an if statement
6363         that was already checking '!in_text_section'.
6364         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6365         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6366         sure these are properly defined for linux on ppc.
6367         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
6368         for this new flag.
6369         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
6370         reg_note.
6371         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6372         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
6373         these new macros.
6374
6375 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6376
6377         * function.c (gen_mem_addressof): When changing the RTX from a REG
6378         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6379
6380 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6381
6382         PR target/14888
6383         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6384         truncxfdf2_noop): Provide dummy "fmov" implementations.
6385
6386 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
6387
6388         * gcc.c (default_compilers): Add missing initializers.
6389
6390         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6391         Return 1 if file was successfully mapped.
6392
6393 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
6394
6395         PR pch/13419
6396         PR pch/14137
6397         Radar #: 3315288
6398         * doc/invoke.texi (Precompiled Headers): Suggest -o
6399         to put an output file in a particular place.  Be more detailed
6400         about which options affect PCH validity and which options
6401         might not work.
6402         * c-pch.c (pch_matching): New.
6403         (MATCH_SIZE): New.
6404         (struct c_pch_validity): New field 'match'.
6405         (pch_init): Handle pch_matching.
6406         (c_common_valid_pch): Check pch_matching.
6407
6408         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6409
6410 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
6411
6412         * doc/invoke.texi (Precompiled Headers): Warn about known
6413         problems.
6414
6415 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6416
6417         PR c++/14808
6418         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6419         to 1 if ASM_OUTPUT_DEF is defined.
6420         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6421         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6422         Set to non-zero iff not a one_only decl.
6423
6424 2004-04-08  Paul Brook  <paul@codesourcery.com>
6425
6426         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6427
6428 2004-04-08  Paul Brook  <paul@codesourcery.com>
6429
6430         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6431         PROMOTE_FOR_CALL_ONLY.
6432         * config/arm/arm-protos.h (arm_function_value): Declare.
6433         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6434         (TARGET_PROMOTE_PROTOTYPES): Return false.
6435         (arm_function_value): New function.
6436         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6437         (FUNCTION_VALUE): Call arm_function_value.
6438         * config/cris/cris.h (PROMOTE_MODE): Rename ...
6439         (PROMOTE_FUNCTION_MODE): ... to this.
6440         (PROMOTE_FOR_CALL_ONLY): Remove.
6441         * config/mmix/mmix.h: Likewise.
6442         * config/s390/s390.h: Likewise.
6443         * config/sparc/sparc.h: Likewise.
6444         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6445         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6446         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6447         (PROMOTE_FOR_CALL_ONLY): Remove.
6448
6449 2004-04-08  Joel Sherrill <joel@oarcorp.com>
6450
6451         PR ada/14538
6452         * ada/5rosinte.adb: Remove fake mprotect() body.
6453         * ada/5rosinte.ads: Add SA_SIGINFO.
6454         * ada/5rtpopsp.adb: Rewrite to use new interface.
6455         * ada/init.c: Reorder so the simple single OS conditional __rtems__
6456         is tested before more complex ones which mix UNIX and embedded
6457         systems in the conditional.
6458
6459 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
6460
6461         PR ada/14665
6462         * ada/osint.adb (Find_Program_Name): Rework to properly handle
6463         filenames which end in .exe or have versioning suffixes like VMS.
6464
6465 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
6466
6467         PR target/10129
6468         * config/darwin.c (darwin_encode_section_info): When the decl has
6469         a DECL_INITIAL, it is only defined also when it is not a common.
6470
6471 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6472
6473         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6474         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6475
6476 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6477
6478         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6479         global register variables.
6480
6481 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
6482
6483         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6484         rpc_xdr_lvalue_cast_b): New fixes.
6485         * fixinc/fixincl.x: Regenerate.
6486         * fixinc/tests/base/rpc/xdr.h: Add new tests.
6487
6488 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
6489
6490         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6491         to power4 and power5 entries.
6492
6493 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
6494
6495         * c-common.h (pending_lang_change): Mark for PCH.
6496
6497 2004-04-07  Caroline Tice  <ctice@apple.com>
6498
6499         * gcc.c (main): Move 'break' in main loops (on an error)
6500         to wait until error processing has occurred.
6501
6502 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
6503
6504         * config.gcc: Stop changing enable_threads midstream.
6505         Replace uses of enable_threads_flag with enable_threads.
6506         * configure.ac: Replace uses of enable_threads_flag with
6507         enable_threads.  Improve autoconf quotation in one place.
6508         * configure: Regenerate.
6509
6510 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
6511
6512         * builtins.c: Implement support for sincos function.
6513         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
6514         BUILT_IN_COS{,F,L}.
6515         (expand_builtin_mathfn_3): New function.
6516         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
6517         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
6518         flag_unsafe_math_optimization is set.
6519
6520         * optabs.h (enum optab_index): Add new OTI_sincos.
6521         (sincos_optab): Define corresponding macro.
6522
6523         * optabs.c (init_optabs): Initialize sincos_optab.
6524         (expand_twoval_unop): New function.
6525
6526         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
6527         patterns.
6528
6529         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
6530         and UNSPEC_SINCOS_SIN.
6531
6532         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
6533         sincosxf3): New patterns to implement sincos, sincosf and sincosl
6534         built-ins as inline x87 intrinsics. Define splits for
6535         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
6536         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
6537         sincos patterns.
6538         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
6539         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
6540
6541         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
6542         x87's fsincos insn.
6543
6544 2004-04-06  Devang Patel  <dpatel@apple.com>
6545
6546         PR 14467
6547         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
6548
6549 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6550
6551         * doc/install.texi: Update HP-UX 11 installation procedure.
6552
6553 2004-04-06  Paul Brook  <paul@codesourcery.com>
6554
6555         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
6556
6557 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6558
6559         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
6560         when the TLS address is generated by a function call.
6561         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
6562         (tls_local_dynamic): Likewise.
6563
6564 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
6565
6566         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
6567         and TYPE_VOLATILE.
6568
6569 2004-04-05  Caroline Tice  <ctice@apple.com>
6570
6571         * gcc.c (combine_flag): New global variable, for new driver option.
6572         (struct compiler): Add two new fields, to be used when
6573         combining multiple input files in a single pass (IMA).
6574         (default_compilers):  Add values for the new fields to all
6575         compiler entries. Modify the "@c" compiler entry for doing IMA
6576         properly with "-save-temps" and the "combine" flag.
6577         (option_map):  Add new driver option, "--combine", to tell driver
6578         to pass multiple input files to compiler at one time.
6579         (have_o_argbuf_index): New global variable.
6580         (store_arg): Modify to assign value to have_o_argbuf_index.
6581         (struct infile):  Add three new fields, to help with IMA.
6582         (display_help): Add help for new "combine" option.
6583         (process_command): Remove local variable have_o; add code to check
6584         for new "combine" option; remove assignment to combine_inputs.
6585         (do_spec_1):  Modify to deal with IMA better.
6586         (main): Make variable 'lang_n_infiles' local to entire function
6587         rather than to a single block.  Use flag combine_flag to
6588         determine whether to do IMA or not; Modify loop initializing
6589         infiles to deal properly with linker files.
6590         Add code for doing preprocessing in presence of
6591         IMA with "-save-temps" flag.  Modify "main" loop to handle
6592         multiple input files, in multiple languages, with or without
6593         preprocessing,  gracefully.
6594         * toplev.c (set_src_pwd): Modify to not complain if attempting to
6595         re-set it to same directory it's previously been set to (avoid
6596         irritating, meaningless warning messages when doing IMA with
6597         save-temps).
6598         * doc/invoke.texi: Add "-combine" to list of Overall Options;
6599         remove documentation about IMA that is no longer accurate; Add
6600         documentation explaining what "-combine" does.
6601         * ada/lang-specs.h: Add initialization values for new fields in
6602         "struct compiler".
6603         * cp/lang-specs.h: Likewise.
6604         * f/lang-specs.h: Likewise.
6605         * java/lang-specs.h: Likewise.
6606         * objc/lang-specs.h: Likewise.
6607         * treelang/lang-specs.h: Likewise.
6608
6609 2004-04-05  David Edelsohn
6610
6611         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
6612         symbol handling.
6613
6614 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
6615             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6616
6617         PR optimization/13424 (hppa), bootstrap/14462, c/14828
6618         * pa.md: Use replace_equiv_address to retain the attributes of the
6619         memory operands used in the split and peephole2 patterns for optimizing
6620         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
6621
6622 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6623
6624         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
6625         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6626         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
6627         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
6628         PARM_DECL.
6629         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
6630         for a type.
6631         * print-tree.c (print_node): Properly handle side-effects, readonly,
6632         and constant flags.
6633         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
6634         and TREE_CONSTANT if not a type.
6635         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
6636         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
6637         (NON_TYPE_CHECK): New macro.
6638         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
6639
6640 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
6641
6642         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
6643         to DWARF2_DEBUG unconditionally.
6644         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
6645
6646 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
6647             Nathanael Nerode  <neroden@gcc.gnu.org>
6648
6649         PR target/14548
6650         * config.host: Set the shell variable host_can_use_collect2.
6651         Set it to yes by default, and to no for alpha*-dec-*vms*,
6652         i[34567]86-*-mingw32*, and powerpc-*-beos*.
6653         * configure.ac: Set and substitute the shell variable collect2.
6654         Give an error if use_collect2 is yes and host_can_use_collect2 is
6655         no.
6656         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
6657         uses.  Initialize to @collect2@.
6658         (STAGESTUFF): Remove $(USE_COLLECT2).
6659         * config/alpha/x-vms (USE_COLLECT2): Don't set.
6660         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
6661         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
6662         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
6663         * configure: Regenerate.
6664
6665 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6666
6667         * simplify-rtx.c (simplify_binary_operation): Constant fold
6668         DIV, MOD, UDIV and UMOD using div_and_round_double.
6669
6670 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6671
6672         PR c++/14804
6673         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
6674         RECORD_TYPEs.
6675
6676 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6677
6678         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
6679         documentation.
6680
6681 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6682
6683         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
6684         updating the REG_EQUAL note on an insn's libcall_insn.
6685
6686 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6687
6688         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
6689
6690 2004-04-03  Roger Sayle  <roger@eyesopen.com>
6691
6692         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
6693         with reorder_operands_p.
6694
6695 2004-04-03  Jan Hubicka  <jh@suse.cz>
6696
6697         * md.texi (vec_set, vec_extract, vec_init): Document.
6698
6699 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
6700
6701        * opts.c (decode_options): Do function inlining with very small
6702        max-inline-insns-* parameters when optimizing for size.
6703
6704 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
6705
6706         * config/i386/i386.h (TARGET_NOCONA): New macro.
6707         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
6708         (processor_type): Add PROCESSOR_NOCONA.
6709
6710         * config/i386/i386.md (cpu): Add nocona to the attribute values.
6711
6712         * config/i386/i386.c (nocona_cost): New variable.
6713         (m_NOCONA): New macro.
6714         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
6715         x86_branch_hints, x86_use_sahf, x86_single_stringop,
6716         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
6717         x86_integer_DFmode_moves, x86_partial_reg_dependency,
6718         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
6719         x86_decompose_lea, x86_arch_always_fancy_math_387,
6720         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
6721         x86_ext_80387_constants, x86_four_jump_limit):
6722         (override_options): Add nocona_cost to processor_target_table.
6723         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
6724         (incdec_operand): Prevent inc/dec generation for Nocona too.
6725         (ix86_issue_rate): Add PROCESSOR_NOCONA.
6726
6727 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
6728
6729         * rtlanal.c (find_reg_note): Manually
6730         unswitch the loop.
6731
6732 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
6733
6734         * genemit.c (gen_split): Change prototype of generated code.
6735         * genrecog.c (write_action): Adjust prototype for and calls to
6736         gen_split_*.
6737         * gensupport.c (struct queue_elem): Add split field.
6738         (queue_pattern): Return a value.  Clear the split field.
6739         (process_rtx): Maintain an association between an insn and the
6740         split generated from it for a define_insn_and_split.
6741         (process_one_cond_exec): Generate a new split for a
6742         define_insn_and_split.
6743         * config/arm/arm-protos.h (arm_split_constant): Add insn
6744         parameter.
6745         (emit_constant_insn): New function.
6746         (arm_gen_constant): Use it.
6747         * config/arm/arm.md: Adjust calls to arm_split_constant.
6748
6749 2004-04-02  Jan Hubicka  <jh@suse.cz>
6750
6751         * cgraph.c: Add overall comment.
6752         (cgraph_inline_hash): New global variable.
6753         (cgraph_create_node): Break out from ...
6754         (cgraph_node): ... here.
6755         (cgraph_edge): New function.
6756         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
6757         (cgraph_remove_edge): Accept edge, intead of source and destination.
6758         (cgraph_redirect_edge_callee): New.
6759         (cgraph_remove_node): Update all new datastructures.
6760         (cgraph_record_call, cgraph_remove_call): Kill.
6761         (dump_cgraph_node): Break out from ... ; dump new datastructures.
6762         (dump_cgraph): ... here.
6763         (cgraph_function_possibly_inlined_p): Use new hashtable.
6764         (cgraph_clone_edge, cgraph_clone_node): New.
6765         * cgraph.h: Include hashtab.h
6766         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
6767         fields, add inlined_to pointer.
6768         (cgraph_node): Add pointer to next_clone.
6769         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
6770         (cgraph_remove_call, cgraph_record_call): Kill.
6771         (cgraph_inline_hash): Declare.
6772         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
6773         cgraph_redirect_edge_callee): Declare.
6774         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
6775         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
6776         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
6777         * cgraphunit.c: Add overall comment.
6778         (cgraph_optimize_function): Kill.
6779         (cgraph_assemble_pending_functions): Do not assemble inline clones.
6780         (cgraph_finalize_function): Update call of cgraph_remove_node
6781         (record_call_1): Record call sites.
6782         (cgraph_create_edges): Accept node instead of decl argument.
6783         (error_found): New static variable.
6784         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
6785         (cgraph_analyze_function): Update for new datastructures.
6786         (cgraph_finalize_compilation_unit): Plug memory leak.
6787         (cgraph_optimize_function): Kill.
6788         (cgraph_expand_function): Do not use cgraph_optimize_function.
6789         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
6790         cgraph_inlined_callees): Kill.
6791         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
6792         clones.
6793         (estimate_growth): Simplify.
6794         (cgraph_clone_inlined_nodes): New function.
6795         (cgraph_mark_inline_edge): Re-implement.
6796         (cgraph_mark_inline): Likewise.
6797         (cgraph_check_inline_limits): Simplify.
6798         (cgraph_recursive_inlining_p): New.
6799         (update_callee_keys): Break out from ...
6800         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
6801         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
6802         Likewise.
6803         (cgraph_expand_all_functions):  Remove inline clones from the ordered
6804         list.
6805         (cgraph_preserve_function_body_p): New predicate.
6806         (cgraph_optimize): Verify cgraph.
6807         * function.h (struct function): Add fields saved_tree/saved_args.
6808         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
6809         * toplev.c (rest_of_compilation): Do not free cfun.
6810         * tree-inline.c: Include function.h
6811         (struct inline_data): Add saving_p field; replace decl/current_decl by
6812         node/current_node.
6813         (insert_decl_map): New function.
6814         (copy_body_r): Handle saving; update cgraph datastructure.
6815         (copy_body): Handle recursive inlining.
6816         (initialize_inlined_parameters): Likewise.
6817         (expand_call_inline): Propagate node attributes; update cgraph.
6818         (optimize_inline_calls): Verify that datastructure still match.
6819         (save_body): New function.
6820         * tree-inline.h (save_body): New.
6821         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
6822         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
6823         * langhooks.c (lang_hooks): Add update_decl_after_saving.
6824
6825 2004-04-01  Serge Belyshev  <1319@bot.ru>
6826
6827         PR target/14702
6828         * config/i386/i386.md: fix source operand constraints in
6829         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
6830
6831 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
6832
6833         * fold-const.c (folda): Preserve types of comparisons.
6834
6835 2004-04-01  Richard Henderson  <rth@redhat.com>
6836
6837         * toplev.c (backend_init): Move init_optimization_passes call ...
6838         (lang_dependent_init): ... here.
6839
6840 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
6841             Jakub Jelinek  <jakub@redhat.com>
6842
6843         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
6844         -lgcc --as-needed -lgcc_s --no-as-needed by default.
6845         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
6846         * configure: Rebuilt.
6847         * config.in: Rebuilt.
6848         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
6849         (stage2-start, stage3-start, stage4-start): Likewise.
6850         (stageprofile-start, stagefeedback-start): Likewise.
6851
6852 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
6853
6854         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
6855         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6856         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6857         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6858         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
6859         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
6860         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
6861         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
6862         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
6863         * config/sparc/t-linux: Removed.
6864
6865 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
6866
6867         PR c++/14755
6868         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
6869         "bitfld++ == const" to "++bitfld == const + incr" transformations.
6870
6871 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6872
6873         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
6874         * stor-layout.c (layout_decl): Likewise.
6875         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
6876         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
6877         * print-tree.c (print_node): Handle various used of unsigned_flag.
6878         * tree.def (BIT_FIELD_REF): Update comment.
6879         * tree.h (TREE_UNSIGNED): Deleted.
6880         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
6881
6882 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6883
6884         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
6885         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
6886         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
6887         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
6888         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
6889         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
6890         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
6891         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
6892         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
6893         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
6894         REAL_TYPE, not INTEGER_TYPE.
6895         (layout_type, case VECTOR_TYPE): Simplify code.
6896         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
6897         * tree.h: Update comments.
6898         (STRIP_NOPS): Use TYPE_UNSIGNED.
6899         (TYPE_UNSIGNED): New macro.
6900         (TYPE_TRAP_SIGNED): Remove now redundant check.
6901         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
6902
6903 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6904
6905         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
6906
6907 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
6908
6909         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
6910         Add darwin-fpsave.asm, darwin-vecsave.asm,
6911         and darwin-world.asm.
6912         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
6913         as the asm files contain altivec instructions.
6914         * config/rs6000/darwin-fpsave.asm: New file.
6915         * config/rs6000/darwin-vecsave.asm: New file.
6916         * config/rs6000/darwin-world.asm: New file.
6917
6918 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
6919
6920         * gengtype-yacc.y (option, stringseq): Add missing
6921         terminating semicolon.
6922
6923 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
6924
6925         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
6926         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
6927         tls_dtprel_ha_32, tls_dtprel_ha_64,
6928         tls_dtprel_lo_32, tls_dtprel_lo_64,
6929         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
6930         tls_tprel_ha_32, tls_tprel_ha_64,
6931         tls_tprel_lo_32, tls_tprel_lo_64,
6932         tls_got_tprel_32, tls_got_tprel_64,
6933         tls_tls_32, tls_tls_64): Replace register_operand with
6934         gpc_reg_operand.
6935
6936 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
6937
6938         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
6939         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
6940         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
6941         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
6942         *ctrdi_internal6): Replace register_operand with
6943         nonimmediate_operand.
6944
6945 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
6946
6947         * fold-const.c (fold): Reassociate multiply expression
6948         with an adjacent non-multiply expression to use
6949         architecture's multiply-add instruction.
6950
6951 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
6952
6953         * gengtype.c (create_option): New function.
6954         * gengtype.h: Prototype it.
6955         * gengtype-yacc.y (stringseq): New rule.
6956         (option): Use create_option.  Add new bare ID production.  Use
6957         stringseq, not STRING directly.
6958
6959         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
6960         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
6961         * varray.h, config/alpha/alpha.c:
6962         Use new shorter form of GTY markers.
6963
6964         * doc/gty.texi: Rewrite.
6965
6966 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
6967
6968         * config/darwin.c (machopic_function_base_name):
6969         Remove current_name and getting the name of the
6970         current function.
6971
6972 2004-03-30  Nick Clifton  <nickc@redhat.com>
6973
6974         * config/arm/arm.md (thumb_jump): Reduce the backward branch
6975         range, and increase the forward branch range, to allow for
6976         the fact that the PC will be off by 4.
6977
6978 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
6979
6980         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
6981
6982 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6983
6984         * config/rs6000/rs6000.c (output_vec_const_move):
6985         Find all cases of EASY_VECTOR_15_ADD_SELF.
6986         (easy_vector_constant_add_self): Accept
6987         all vector constant loadable by vsplt* and vadd*.
6988         (easy_vector_same): Use easy_vector_splat_const.
6989         (easy_vector_const): Use easy_vector_splat_const.
6990         (easy_vector_splat_const): New function.
6991         (gen_easy_vector_constant_add_self): New function.
6992
6993         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
6994         New prototype.
6995
6996         * config/rs6000/altivec.md (movv4si splitter): Change to
6997         emit move insn with halfed vector constant.
6998         (*movv8hi splitter): Likewise.
6999         (*movv16qi splitter): Likewise.
7000
7001 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7002
7003         PR 11591
7004         * config/rs6000/rs6000.c (rs6000_legitimate_address):
7005         Allow any offset to argument pointer in no-strict case.
7006
7007 2004-03-30  Jan Hubicka  <jh@suse.cz>
7008
7009         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7010         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7011         dump file in non-unit-at-a-time mode.
7012
7013 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
7014
7015         * config/cris/cris.h: Correct #ifdef to test for
7016         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7017         HAVE_AS_MUL_BUG_ABORT_OPTION.
7018
7019 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7020
7021         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7022         the address inside the old RTL.
7023
7024 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
7025
7026         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7027         (struct c_binding, struct c_scope): Add chain_next
7028         attributes to GTY markers.
7029         (struct lang_identifier, struct lang_tree_node): Define
7030         here...
7031         * c-tree.h: ... not here.  No longer need to declare struct
7032         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7033         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
7034         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7035
7036         PR 14734, 11944
7037         * c-decl.c (get_parm_info): If error_mark_node is encountered
7038         in the bindings chain, unbind and discard it; don't abort.
7039
7040 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
7041             Dorit Naishlos <dorit@il.ibm.com>
7042
7043         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7044         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
7045
7046 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
7047
7048         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7049
7050         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7051         (m68hc11_attribute_table): New attribute "page0" to mark a global
7052         variable as being allocated from within page0 section.
7053         (m68hc11_encode_label): New function.
7054         (m68hc11_strip_name_encoding): New function.
7055         (m68hc11_page0_symbol_p): New function.
7056         (m68hc11_indirect_p): Accept global variables marked in page0.
7057         (m68hc11_encode_section_info): Lookup "page0" attribute.
7058
7059         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7060         represents access to page0 variables.
7061
7062         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7063         ("*logicalsi3_silshl16_zext"): Likewise.
7064         ("*ashldi3_const32"): Likewise.
7065         (peephole2 ashift): Likewise.
7066
7067 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7068
7069         * c-tree.h (C_DECL_REGISTER): New.
7070         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7071         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7072         (build_array_ref, c_mark_addressable): Set and use it.
7073         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7074         Allow structures with volatile fields to be declared register.
7075         Don't check TREE_ADDRESSABLE before warning about taking address
7076         of register.
7077         * c-decl.c (finish_decl): Don't allow structures with volatile
7078         fields to be placed in named register.
7079         * doc/trouble.texi: Remove reference to structures with volatile
7080         fields in registers.
7081
7082 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7083
7084         * function.c (thread_prologue_and_epilogue): Move
7085         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7086         before the epilogue.
7087
7088 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7089
7090         * expr.c (store_constructor): Use gen_int_mode to correctly
7091         sign-extend CONST_INT value.
7092
7093 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7094
7095         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7096         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7097         * doc/extend.texi: Likewise.
7098
7099 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7100
7101         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7102           with TYPE_ORIG_SIZE_TYPE.
7103
7104 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7105
7106         PR 14219
7107         * c-typeck.c (build_binary_op): Do not allow comparisons of
7108         vectors.
7109
7110 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7111
7112         * config.gcc: Remove sparc-tti-*.
7113         * config/sparc/pbd.h: Delete.
7114
7115         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7116         * config/sparc/aout.h: Likewise.
7117
7118         * config/sparc/sparc.h: Remove if 0'd code.
7119         * config/sparc/sparc.md (call): Remove if 0'd code.
7120         (call_value): Likewise.
7121         (nonlocal_goto): Likewise.
7122         (unimp_insn): Delete.
7123
7124 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7125
7126         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7127         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7128
7129 2004-03-25  Richard Henderson  <rth@redhat.com>
7130
7131         PR 11527
7132         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7133         rather than later.
7134
7135 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7136
7137         * builtins.c (fold_builtin): Fix error in last change.
7138
7139 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
7140
7141         * config/mips/mips.h: Formatting fix.
7142
7143 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7144
7145         * builtins.def: Add ctype builtins.
7146         * doc/extend.texi: Likewise.
7147
7148 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7149
7150         * builtins.c (fold_builtin): Add new builtin optimizations for
7151         sqrt and/or cbrt.
7152         * fold-const.c (fold): Likewise.
7153
7154 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7155
7156         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7157         (rs6000_sched_groups): New variable.
7158         (processor_target_table): Add power5.
7159         (rs6000_override_options): Set rs6000_sched_insert_nops,
7160         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7161         from rs6000_sched_groups.
7162         (output_cbranch): Use rs6000_always_hint.
7163         (rs6000_variable_issue): Use rs6000_sched_groups.
7164         (rs6000_adjust_cost): Add CPU_POWER5.
7165         (is_microcoded_insn): Use rs6000_sched_groups.
7166         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7167         Return 2 for POWER5 cracked instructions.
7168         (is_cracked_insn): Use rs6000_sched_groups.
7169         (is_branch_slot_insn): Use rs6000_sched_groups.
7170         (rs6000_issue_rate): Add CPU_POWER5.
7171         (rs6000_sched_finish): Use rs6000_sched_groups.
7172         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7173         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7174         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7175         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7176         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7177         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7178         * config/rs6000/power5.md: New file.
7179         * doc/invoke.texi: Add power5 option.
7180
7181 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7182
7183         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7184         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7185         * doc/invoke.texi: Fix a typo.
7186
7187 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7188
7189         PR optimization/9707.
7190         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7191         of recursing if both children are single-valued cases with no
7192         children.
7193
7194 2004-03-25  Paul Brook  <paul@codesourcery.com>
7195
7196         * config/arm/arm.c (vfp_print_multi): Remove.
7197         (arm_output_fldmx): New function.
7198         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7199         (arm_expand_prologue): Update to match.
7200         (arm_get_vfp_saved_size): New Function.
7201         (arm_get_frame_offsets): Use it.
7202         (arm_output_epilogue): Use new functions.
7203
7204 2004-03-24  Richard Henderson  <rth@redhat.com>
7205
7206         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7207         (reg_known_value, reg_known_value_size): Likewise; make static.
7208         (reg_known_equiv_p): Make static.
7209         (clear_reg_alias_info): Update for new indexing.
7210         (get_reg_known_value, set_reg_known_value): New.
7211         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7212         (canon_rtx): Use them.
7213         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
7214         Don't play queer offsetting games with reg_known_value and
7215         reg_known_equiv_p.
7216         (end_alias_analysis): Free reg_known_value with gc.
7217         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7218         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7219         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7220         functions instead.
7221
7222 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7223
7224         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7225         config/i386/mmintrin.h: Update copyright.
7226
7227 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7228
7229         * configure.ac: Add --enable-werror-always (for top level bootstrap
7230         support).
7231         * configure: Regenerate.
7232
7233 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
7234
7235         * objc/objc-act.c (objc_comptypes): Treat comparisons
7236         between 'Class' and '<class> *' as explicitly invalid.
7237
7238 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
7239
7240         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7241         (-fprofile-values): Add enabled with profile-{generate,use}.
7242         (-fvpt): Same.
7243         (-ftracer): Add enabled with profile-use.
7244         (-funit-at-a-time): Add enabled at -O2,-O3.
7245         (-funroll-loops): Add enabled with profile-use.
7246         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
7247         (max-gcse-passes): Mention default.
7248         (max-cse-path-length): Mention default.
7249
7250 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7251
7252         * Makefile.in (STRICT2_WARN): Reorder.
7253         * configure.ac: Check for -Wold-style-definition, and use it
7254         in strict1_warn if it's available.
7255         * configure: Regnerate.
7256
7257 2004-03-24  Paul Brook  <paul@nowt.org>
7258
7259         * config.gcc <arm>: Add --with-abi=
7260         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7261         thumb_far_jump_used): Remove prototypes.
7262         (arm_needs_doubleword_align): Add prototype.
7263         (thumb_compute_initial_elimination_offset): Ditto.
7264         * config/arm/arm.c (arm_get_frame_offsets): New function.
7265         (use_return_insn, output_return_instruction, arm_output_epilogue,
7266         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7267         arm_expand_prologue, thumb_expand_epilogue): Use it.
7268         (arm_abi, target_abi_name, all_arm_abis): New variables.
7269         (arm_override_options): Set them.  Set structure padding for AAPCS.
7270         (arm_return_in_memory): Update ABI check.
7271         (arm_init_cumulative_args): Initialize can_split.
7272         (arm_needs_doubleword_align): New function.
7273         (arm_function_arg): Don't split args after pushing to stack. Handle
7274         doubleword/even reg alignment.
7275         (arm_va_arg): Handle all doubleword aligned args.
7276         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7277         on ABI, not CPU.
7278         (arm_compute_save_reg0_reg12_mask): Fix comment.
7279         (thumb_get_frame_size, thumb_get_frame_size): Remove.
7280         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
7281         value for alignment.
7282         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7283         to match.
7284         (thumb_compute_initial_elimination_offset): New function.
7285         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
7286         unneccessary rounding.
7287         * config/arm/arm.h (target_abi_name): Declare.
7288         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7289         arm_abi_type, ARM_DEFAULT_ABI): Define.
7290         (ARM_FLAG_ATPCS): Remove.
7291         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7292         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7293         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7294         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7295         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7296         Contitionalize on ABI, not CPU.
7297         (struct arm_stack_offsets): Define.
7298         (struct machine_function): Add stack_offsets.  Remove frame_size.
7299         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7300         pushed.
7301         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7302         doubleword alignment.
7303         (THUMB_INITIAL_ELIMINATION_OFFSET,
7304         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7305         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7306         * config/arm/arm.md (align_8): Enable for all targets.
7307         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7308         (ARM_DEFAULT_ABI): Define.
7309         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7310         -mstructure-size-boundary.
7311
7312 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7313
7314         * configure.ac: Check for -Wno-variadic-macros; don't use
7315         -pedantic (in stage 1 or a simple 'make all') unless it's available,
7316         and if it's available, use it.  Also, clean up check for
7317         -Wno-long-long.
7318         * configure: Regenerate.
7319
7320 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7321
7322         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7323         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7324         (MULTILIB_DEFAULTS): Use it.
7325         (MIPS_CPU_STRING_DEFAULT): Remove.
7326         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7327         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
7328         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
7329         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7330         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
7331         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7332         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
7333         accordingly.
7334
7335 2004-03-24  DJ Delorie  <dj@redhat.com>
7336             Richard Sandiford  <rsandifo@redhat.com>
7337
7338         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7339         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7340         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7341         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7342         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7343         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7344         if TARGET_FIX_VR4122.
7345         * config/mips/mips.md (define_attr length): Account for nops inserted
7346         after macc and dmult when using -mfix-vr4122-bugs.
7347         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7348         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7349         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
7350         * config/mips/vr4122-div.S: New file.
7351         * doc/invoke.texi: Document -mfix-vr4122-bugs.
7352
7353 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7354
7355         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7356         (TARGET_MIPS4130): New macro.
7357         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7358         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7359         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7360         with PROCESSOR_R4130.
7361         * config/mips/mips.md (define_attr cpu): Add r4130.
7362         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7363
7364 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7365             Richard Sandiford  <rsandifo@redhat.com>
7366
7367         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7368
7369 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
7370
7371         PR preprocessor/14438
7372         * cpplib.c (do_pragma): Remove line_change call after pragma
7373         handler.
7374
7375 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
7376
7377         * doc/extend.texi (ARM Built-in Functions): Replace with correct
7378         declarations.
7379
7380 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7381
7382         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7383         if flag_unsafe_math_optimizations.
7384         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7385         and TARGET_80387 expand using truncdfsf2_noop pattern.
7386         (truncxfsf2): Likewise using truncxfsf2_noop.
7387         (truncxfdf2): Likewise using truncxfdf2_noop.
7388         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7389
7390 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
7391
7392         * hooks.c (hook_constcharptr_tree_null): New hook.
7393         * hooks.h (hook_constcharptr_tree_null): New prototype.
7394         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7395         * target.h (mangle_fundamental_type): New target hook.
7396         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7397         target hook at rs6000_mangle_fundamental_type.
7398         (rs6000_mangle_fundamental_type): New function.
7399         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7400
7401 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
7402
7403         PR 12267, 12391, 12560, 13129, 14114, 14133
7404         * c-tree.h: Forward declare struct c_binding.  Declare
7405         c_override_bindings_to_false.  Update prototypes.
7406         (struct lang_identifier): Update comments.  Change fields to be
7407         struct c_binding *.
7408         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7409         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7410         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7411         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7412         * c-common.h: Update prototypes.
7413         * c-decl.c (struct c_scope): Update commentary.  Remove names,
7414         names_last, parms, parms_last, tags, and shadowed fields.  Add
7415         bindings and depth fields.
7416         (scope_freelist): Move to more appropriate location.
7417         (c_print_identifier): Update for changes to struct lang_identifier.
7418         (objc_mark_locals_volatile): Update for new bindings structures.
7419         (global_bindings_p): Honor c_override_global_bindings_to_false.
7420         (pushlevel): Rename to push_scope; take no arguments; use the
7421         scope_freelist; initialize scope->depth and check for overflow.
7422         (poplevel): Rename to pop_scope; totally rewritten for new bindings
7423         structures.
7424         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7425         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
7426         Improve some commentary.  Adjust handling of forward parm decls.
7427         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7428         Preserve C_DECL_IN_EXTERNAL_SCOPE.
7429         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
7430         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
7431         decls.  Rewrite for new bindings structures.  Improve commentary.
7432         Eliminate the copy_node call.
7433         (implicit_decl_warning): Use the "diag" idiom (as seen in
7434         locate_old_decl) to reduce code duplication; call locate_old_decl
7435         if appropriate.  Relocate to remove need for forward declaration.
7436         (implicitly_declare): Adjust for new bindings structures.  Kludge
7437         around Objective-C not-really-builtin functions.
7438         (undeclared_variable): Improve diagnostics.  If current_function_decl
7439         is nonnull but current_function_scope is null, use current_scope.
7440         Use bind.
7441         (lookup_tag): Adjust for new bindings structures.  Kludge around
7442         Objective-C's tag declarations that wind up in the external scope.
7443         (lookup_name): Adjust for new bindings structures.  Kludge around
7444         c-common.c's pseudo-typedefs that wind up in the external scope.
7445         (lookup_name_current_level): Rename lookup_name_in_scope; take a
7446         second argument indicating the scope to examine; rewrite for
7447         new bindings structures.
7448         (c_init_decl_processing): Adjust for renamed functions.  Do not
7449         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7450         First scope pushed is the external scope, not the global scope.
7451         (builtin_function): Use bind, not pushdecl.  Adjust other bits
7452         for new data structures.  Keep track of builtins that should be
7453         made visible automatically.
7454         (start_decl): Adjust diagnostics.  Remove unnecessary call to
7455         expand_decl.
7456         (grokparms): Return 0 if arg_types is error_mark_node.
7457         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7458         reversed sense.  Rewrite for new bindings structures.  Do not
7459         leave any decls in the scope, to prevent pop_scope from doing
7460         contradictory things with them.
7461         (finish_struct, finish_enum): Remove redundant diagnostics.
7462         (build_enumerator): Don't cascade diagnostics for error_mark_node.
7463         Mark location where -pedantic changes the meaning of the program.
7464         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7465         parameter decls into the function's scope structure using bind.
7466         Warn here about function definitions in the wrong style.
7467         Adjust diagnostics.
7468         (store_parm_decls): Correct the determination of whether a
7469         function was defined with a prototype.
7470         (c_write_global_declarations): Operate on all file decls and on
7471         the external scope.  Split body of the loop to...
7472         (c_write_global_declarations_1): ... this new function, to avoid
7473         code duplication.
7474         (truly_local_externals, first_builtin_decl, last_builtin_decl)
7475         (make_scope, pop_scope, in_parm_level_p, set_block)
7476         (any_external_decl, record_external_decl, bind_label, getdecls)
7477         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7478         (c_reset_state): Delete.
7479         (visible_builtins, c_override_global_bindings_to_false)
7480         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7481         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7482         (external_scope, binding_freelist, bind, free_binding_and_advance)
7483         (push_file_scope, pop_file_scope): New.
7484         (pushtag, pushdecl_top_level, lookup_label, declare_label)
7485         (define_label, c_make_fname_decl, finish_decl)
7486         (mark_forward_parm_decls, build_compound_literal)
7487         (grokdeclarator, start_function, check_for_loop_decls)
7488         (identifier_global_value, record_builtin_type): Minor adjustments
7489         for new bindings structures.  Improve diagnostics and commentary.
7490         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7491         pushlevel/poplevel respectively.
7492         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7493         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7494         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
7495         correct loop over multiple translation units; call fatal_error if
7496         requested to compile more than one file at once.  (This disables
7497         IMA temporarily - an up-front error being preferable to a crash.)
7498         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7499         (all actions): Adjust calls to pushlevel/poplevel.
7500         (parsing_iso_function_signature): Delete.
7501         (extdef_1): Fold into extdef.
7502         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
7503         warn here about function definitions in the wrong style.
7504         (after_tyle_declarator, parm_declarator_starttypename)
7505         (parm_declarator_nostarttypename, notype_declarator): Remove
7506         commented-out productions.
7507         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7508         an empty TREE_LIST node.  Adjust calls to get_parm_info.
7509         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7510         to suppress -Wold-style-definition after this error.
7511         (c_parse_file): Don't clear the binding stack or call
7512         finish_fname_decls here.  Correct comment.
7513         * c-typeck.c (same_translation_unit_p): Export.
7514         (common_type): Use c_override_global_bindings_to_false, not
7515         pushlevel/poplevel/declare_parm_level.
7516         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
7517         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
7518         and LANG_HOOKS_GETDECLS with do-nothing stubs.
7519         * objc/objc-lang.c: Likewise.
7520         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
7521         get_parm_info.
7522         (OBJC_VOID_AT_END): Delete; replace all uses
7523         with void_list_node.
7524         (generate_forward_declaration_to_string_table): Delete.
7525         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
7526
7527         * coverage.c (create_coverage): Don't pushdecl anything.
7528         * langhooks.c (lhd_clear_binding_stack): Call
7529         lang_hooks.decls.poplevel, not poplevel.
7530         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
7531         circular list rather than going into an infinite loop.
7532
7533 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
7534
7535         * optabs.c (expand_binop): When synthesizing double word rotates
7536         from single word shifts, use a new register target if the provided
7537         target is not a REG already.
7538
7539 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7540
7541         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
7542         * c-common.c (handle_mode_attribute): Add extra arg to
7543         build_pointer_type_for_mode and build_reference_type_for_mode.
7544         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
7545         for INTEGER_CST.
7546         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
7547         Chain pointers via TYPE_NEXT_PTR_TO.
7548         (build_reference_type_for_mode): Similarly.
7549         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
7550         and build_reference_type_for_mode.
7551         (tree_check4_failed): New function.
7552         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
7553         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
7554         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
7555         Add check.
7556
7557 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7558
7559         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
7560         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
7561         when both A and B are nonnegative.
7562         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
7563         nonzero.
7564
7565 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7566
7567         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
7568         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
7569
7570 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7571
7572         PR optimization/14669
7573         * fold-const.c (fold): Only unwiden integer comparisons for equality
7574         and inequality operators, or when the signedness doesn't change.
7575
7576 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
7577
7578         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
7579         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
7580         * config/sparc/t-linux: New file.
7581
7582 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
7583
7584         * gcse.c (can_assign_to_reg_p): New function, split out from...
7585         (want_to_gcse_p): ...here.
7586         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
7587         the rhs of a store.
7588
7589 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
7590
7591         * c-typeck.c (same_translation_unit_p): Fix pasto.
7592
7593 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
7594
7595         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
7596         (PARAM_MAX_SCHED_REGION_INSNS): New.
7597         * sched-rgn.c: Include params.h
7598         (MAX_RGN_BLOCKS): Delete.
7599         (MAX_RGN_INSNS): Delete.
7600         (too_large): Return bool.  Convert to PARAM_VALUE.
7601         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
7602         * doc/invoke.texi (param): Document max-sched-region-blocks and
7603         max-sched-region-insns.
7604
7605 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7606
7607         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
7608         for base types.
7609
7610 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7611
7612         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
7613         change.
7614
7615 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
7616
7617         PR c/14069
7618         * c-decl.c (finish_struct): Change type of incorrect flexible array
7619         field into error_mark_node.
7620
7621 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
7622
7623         PR target/14580
7624         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
7625         who are not local for Darwin PIC.
7626
7627 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
7628
7629         * regrename.c (regrename_optimize): Set regs_ever_live for all
7630         registers introduced as replacement.
7631
7632 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
7633
7634         PR middle-end/14470
7635         * expr.c (mark_queue): New function.
7636         (emit_insns_enqueued_after_mark): New function replacing
7637         emit_queue.  Clear the body of emitted queued insns.
7638         (emit_queue): Call emit_insns_enqueued_after_mark.
7639         (store_expr): Mark the increment queue on entry.  Emit
7640         only the incrementations queued when expanding the source.
7641
7642 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
7643
7644         * configure.ac: Allow --disable-coverage-flags (for the future benefit
7645         of top level bootstrap, and consistency).  Reindent.
7646         * configure: Regenerate.
7647
7648 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
7649
7650         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
7651         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
7652         unnecessary casts.
7653
7654 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
7655
7656         PR target/14291
7657         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
7658         __MINGW32__.
7659
7660 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7661
7662         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
7663         to nonimmediate_operand.
7664         ("*doloop_di"): Likewise.
7665
7666 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
7667
7668         * real.h (struct real_value): Use the same type for all
7669         bitfields.  Rename exp to uexp.
7670         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
7671         Adjust all uses of exp...
7672         * builtins.c: ... here, ...
7673         * emit-rtl.c: ... here, and ...
7674         * real.c: ... and here.
7675
7676 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7677
7678         * pretty-print.c (pp_base_maybe_space): New function.
7679         * pretty-print.h (pp_base_maybe_space): Declare.
7680         (pp_maybe_space): New macro.
7681
7682 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7683
7684         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
7685
7686 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7687
7688         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
7689         of using register multiplication cost.
7690         (expand_mult): Adapt choose_mult_variant call.
7691         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
7692         of MODE; pass appropriate cost bound.  Adjust result when
7693         performing signed multiplication by a negative constant.
7694         Don't use intermediate modes larger than word_mode.
7695
7696 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7697
7698         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
7699         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
7700         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
7701         * explow.c (expr_size): Likewise.
7702         * expr.h (placeholder_list, find_placeholder): Deleted.
7703         * expr.c (store_constructor): Likewise.
7704         (get_inner_reference): Likewise.  Also don't call find_placeholder.
7705         (placeholder_list, find_placeholder): Deleted.
7706         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
7707         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
7708         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
7709         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
7710         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
7711         Likewise.
7712         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
7713         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
7714         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
7715         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
7716         Clean up by using first_rtl_op.
7717         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
7718         (substitute_placeholder_in_expr): New function.
7719         * tree.def (WITH_RECORD_EXPR): Deleted.
7720         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
7721         (substitute_placeholder_in_expr): New.
7722
7723 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
7724
7725         * dojump.c (prefer_and_bit_test): Fix which part of
7726         the and_test is replaced.
7727
7728 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
7729
7730         * frontends.texi: Add missing line.
7731
7732 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
7733             Chris Devers  <cdevers@pobox.com>
7734             Joseph S. Myers  <jsm@polyomino.org.uk>
7735
7736         * doc/frontends.texi: Rewrite.
7737         * doc/gcc.texi: Update last modification date.
7738
7739 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
7740
7741         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
7742         message before redirecting the edge.
7743
7744 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7745
7746         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
7747         flag.
7748         * explow.c (force_not_mem): Set REG_POINTER flag according to
7749         MEM_POINTER one.
7750         * rtl.h (MEM_POINTER): New macro.
7751         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
7752         for MEM_POINTER.
7753
7754 2004-03-20  Roger Sayle  <roger@eyesopen.com>
7755
7756         PR target/13889
7757         * cse.c (fold_rtx): Avoid substituting constants into unary
7758         conversion operations.
7759
7760 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7761
7762         * fold-const.c (fold): Replace "expr" with "t".
7763
7764 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
7765
7766         PR c/12373
7767         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
7768         DECL_ORIGINAL_TYPE if there isn't one.
7769
7770 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7771
7772         * fold-const.c (fold): Replace "final_type" with "type".
7773         Remove variable "final_type".
7774
7775 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7776
7777         * fold-const.c (fold): Constify "type".
7778         Replace "TREE_TYPE (t)" with "type".
7779
7780 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7781
7782         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
7783         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
7784         via (*targetm.foo) () with targetm.foo ().
7785
7786 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
7787
7788         PR other/14630
7789         * doc/install.texi: Add info directory category and entry.
7790
7791 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7792
7793         * fold-const.c (fold): Replace "t" with "tem" where it is used
7794         as a temporary variable.  Remove "orig_t" and all of its uses.
7795
7796 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7797
7798         * fold-const.c (fold): Remove variable "invert".
7799         Move the handling of relational expressions that can be folded
7800         to a constant ...
7801         (fold_relational_const): ... here.
7802         (tree_expr_nonzero_p): New.
7803
7804 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
7805
7806         PR c/14635
7807         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
7808         DEF_GCC_BUILTIN.
7809
7810 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
7811
7812         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
7813         (GTFILES): Add $(srcdir)/dojump.h.
7814         (gt-dojump.h): New dependency.
7815         * dojump.c (and_reg, and_test, shift_test): New static variables.
7816         (prefer_and_bit_test): New function.
7817         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
7818
7819 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7820
7821         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
7822         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
7823         reorg.c, tree.h: Fix comment typos.
7824
7825 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7826
7827         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
7828         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
7829         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
7830         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
7831         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
7832         vmsdbgout.c: Replace calls via (*targetm.foo) () with
7833         targetm.foo ().
7834
7835 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
7836
7837         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
7838         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
7839         always_inline attribute.
7840         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
7841         Treat expansion as completed even if literal argument is
7842         invalid (so that other expansions are not tried in vain).
7843
7844 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7845
7846         * loop-doloop.c (add_test): Replace GEN_INT (0) with
7847         const0_rtx.
7848
7849 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7850
7851         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
7852         ...
7853         (fold_abs_const): ... here.
7854
7855 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7856
7857         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
7858
7859 2004-03-19  Denis Chertykov  <denisc@overta.ru>
7860
7861         PR target/11520
7862         * config/avr/avr.md ("call_insn"): Handle explicit integer
7863         specially.
7864         (call_value_insn): Likewise.
7865
7866 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7867
7868         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
7869
7870 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7871
7872         * fold-const.c (negate_expr): Move the handling of constants
7873         ...
7874         (fold_negate_const): ... here.
7875
7876 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7877
7878         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
7879         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
7880         * tree.c (debug_no_type_hash): Deleted.
7881         (type_hash_canon): Abort if passed a variant.
7882         Check lang_hooks.types.hash_types.
7883         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
7884         (build_array_type): Remove unnecessary allocation of pointer type.
7885         (build_complex_type): Properly qualify resulting type.
7886
7887 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
7888
7889         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
7890
7891 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
7892
7893         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
7894         (expand_mult): ...here.
7895         (extract_high_half): New, split out from expand_mult_highpart.
7896         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
7897         (expand_highpart): Evaluate the cost of a shift/add sequence,
7898         then see if any of the specialized optabs are cheaper.
7899
7900 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
7901
7902         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
7903
7904 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7905
7906         * convert.c (convert_to_real): Add more math builtins.
7907
7908 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7909
7910         * convert.c (convert_to_real): Reformat using switch stmt.
7911
7912 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7913
7914         * c-common.c (pointer_int_sum): Do not complain about using
7915         pointers to pointers-to-members.
7916
7917 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
7918
7919         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
7920         have moved to the target hooks structure".
7921
7922 2004-03-18  James E Wilson  <wilson@specifixinc.com>
7923
7924         * config/mips/mips.md (type): Split move into arith and fmove.  Split
7925         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
7926         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
7927         Likewise.
7928         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
7929         Likewise.
7930         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
7931         rm7_fp_quick): Likewise.
7932         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
7933         rm9k_fquick): Likewise.
7934         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
7935         Likewise.
7936         (ir_sr70_icmp): Delete.
7937
7938 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7939
7940         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
7941         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
7942         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
7943         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
7944         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
7945         Protect with proper check.
7946         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
7947         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
7948         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
7949         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
7950         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
7951         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
7952         not TYPE_FIELDS.
7953         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
7954
7955 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
7956
7957         * gcse.c (eliminate_partially_redundant_loads): Reject change if
7958         dest is set between beginning and current insn.
7959
7960 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7961
7962         * c-decl.c (grokdeclarator): Do not complain about redeclaring
7963         visible "static" identifiers "extern" in a local scope.
7964         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
7965         post-increments/decrements.
7966
7967 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
7968
7969         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
7970         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
7971         (xtensa_va_start): Remove assignment to current_function_arg_words.
7972
7973 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
7974
7975         * alias.c (record_set): Detect the case where a register is assigned
7976         a new value that has the same base term as the old one.
7977
7978 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7979
7980         * doloop.c: Removed.
7981         * loop-doloop.c: New file.
7982         * Makefile.in (doloop.o): Remove.
7983         (loop-doloop.o): New.
7984         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
7985         * cfgloopanal.c (get_loop_level): New function.
7986         * loop-iv.c (iv_number_of_iterations): Handle case when loop
7987         is leaved immediatelly.
7988         * loop.c (strength_reduce): Do not call doloop optimization.
7989         * loop.h (LOOP_BCT): Removed.
7990         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
7991         (rest_of_handle_loop2): Call doloop_optimize_loops.
7992         (rest_of_compilation): Test for optimizations moved to
7993         rest_of_handle_loop2.
7994
7995 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
7996
7997         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
7998         for mixed mode.
7999         (rs6000_emit_prologue): Ditto.
8000         (rs6000_emit_epilogue): Ditto.
8001         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8002         macro for mixed mode.
8003
8004 2004-03-18  Jan Hubicka  <jh@suse.cz>
8005
8006         * predict.c (propagate_freq): Compute correctly frequency of
8007         EXIT_BLOCK.
8008
8009 2004-03-17  Eric Christopher  <echristo@redhat.com>
8010
8011         * builtins.c (apply_args_size): Use reg_raw_mode.
8012         (apply_result_size): Ditto.
8013
8014 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8015
8016         PR target/14620
8017         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8018
8019 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
8020
8021         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8022         32-bit builds when defaulting to 32-bit.
8023
8024 2004-03-17  Jan Hubicka  <jh@suse.cz>
8025
8026         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8027         array.
8028
8029 2004-03-17  James E Wilson  <wilson@specifixinc.com>
8030
8031         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
8032         (hazard_nop): Change type to nop.
8033         (type): Split arith into arith, shift, slt, clz.  Delete darith.
8034         Fix all uses.  Change arith to multi if more than one insn emitted.
8035         * config/mips/5400.md (ir_vr54_arith): Likewise.
8036         * config/mips/5500.md (ir_vr55_arith): Likewise.
8037         * config/mips/7000.md (rm7_int_other): Likewise.
8038         * config/mips/9000.md (rm9k_int): Likewise.
8039         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
8040
8041 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
8042
8043         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8044         to hold the subtype tree instead of recomputing it several times.
8045
8046 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8047
8048         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8049         CC_INVERT.
8050         * config/mn10300/mn10300.md (cc): Remove "invert".
8051
8052 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8053
8054         * builtins.c (integer_valued_real_p): Add builtin rint.
8055         (fold_builtin): Likewise.
8056         * convert.c (convert_to_real): Likewise.
8057
8058         * convert.c (convert_to_real): Fix typos in `long double'
8059         builtins.
8060
8061 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8062
8063         PR c++/14481
8064         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8065         generated COMPOUND_EXPRs.
8066
8067 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8068
8069         * config/h8300/t-rtems (h8300-*-rtems*): New.
8070
8071 2004-03-16  Eric Christopher  <echristo@redhat.com>
8072
8073         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8074
8075 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8076
8077         * config/i386/i386-protos.h: Add a prototype for
8078         ix86_reverse_condition.
8079         * config/i386/i386.c (ix86_reverse_condition): New.
8080         * config/i386/i386.h (REVERSE_CONDITION): Use
8081         ix86_reverse_condition.
8082         * config/i386/i386.md: Use ix86_reverse_condition instead of
8083         REVERSE_CONDITION.
8084
8085 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8086
8087         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8088
8089 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8090
8091         PR bootstrap/12974
8092         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8093
8094 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8095
8096         * c-common.c (c_common_type_for_mode): Build vector types on
8097         demand.
8098         (handle_mode_attribute): Deprecate using the mode attribute
8099         to create vector types.  Fix indentation.
8100         (vector_type_node_list): Remove.
8101         (handle_vector_size_attribute): Create vector types on demand.
8102         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8103         * c-typeck.c (comptypes): Make vector types compatible if they
8104         have the same underlying mode.
8105         (convert_for_assignment): Use comptypes to convert between
8106         vector types.
8107         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8108         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8109         vector types.
8110         * tree.h: Remove vector types.
8111         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8112         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8113         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8114         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8115         * doc/extend.texi (Vector Types): Document how to use the
8116         vector_size attribute to create vectors, rather than mode.
8117
8118         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8119         * config/i386/emmintrin.h: Likewise.
8120         * config/i386/mmintrin.h: Likewise.
8121         * config/i386/xmmintrin.h: Likewise.
8122         * config/sh/ushmedia.h: Likewise.
8123
8124 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8125
8126         * config/freebsd-spec.h, config/arc/arc-protos.h,
8127         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8128         config/arm/linux-gas.h, config/arm/semi.h,
8129         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8130         config/ia64/freebsd.h, config/mips/7000.md,
8131         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8132         config/sparc/pbd.h: Update copyright.
8133
8134 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8135
8136         PR target/14577
8137         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
8138
8139 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8140
8141         * combine.c (combine_simplify_rtx): Remove the "last"
8142         parameter and its documentation.  Adjust recursive calls.
8143         (simplify_logical): Always perform the only simplification
8144         controlled by "last", if the simplified expression is
8145         actually different.
8146         (try_combine): Do not pass the "last" parameter to
8147         combine_simplify_rtx.
8148
8149 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8150
8151         PR target/14599
8152         * config/mips/mips.md (UNSPEC_GP): New constant.
8153         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8154         an UNSPEC instead of (reg $gp).
8155         (mips16_gp_pseudo_reg): Change accordingly.
8156         (print_operand): Print $gp directly when handling CONST_GP_P.
8157
8158 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8159
8160         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8161         * longlong.h: Make code 68060 clean when compiling for m68060.
8162
8163 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8164
8165         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8166         * doc/md.texi: Clarify description of "i" constraint.
8167
8168 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8169
8170         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8171         Split store into store, fpstore, fpidxstore.  Fix all uses.
8172         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8173         Likewise.
8174         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8175         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8176         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8177         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8178         ir_sr70_fstore): Likewise.
8179
8180 2004-03-15  Richard Henderson  <rth@redhat.com>
8181
8182         PR middle-end/14535
8183         * except.c (collect_one_action_chain): Record action for cleanup
8184         outer of exception spec.
8185
8186 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8187
8188         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8189         Fix the check for abort and only do the mmap if we can.
8190
8191 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8192
8193         * config/sparc/sparc.h: Rework comments about the code model
8194         in 64-bit environment and the mode 'Pmode'.
8195         * doc/invoke.texi (SPARC options): Rework description of the
8196         different code models supported in 64-bit environment.
8197
8198 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8199
8200         * defaults.h (REVERSIBLE_CC_MODE): Define.
8201         * jump.c (reversed_comparison_code_parts): Don't check if
8202         REVERSIBLE_CC_MODE is defined.
8203
8204 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8205
8206         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8207         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8208         hosthooks.h, params.h, ra-colorize.c, web.c,
8209         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8210         config/avr/avr-protos.h, config/avr/avr.md,
8211         config/fr30/fr30-protos.h, config/fr30/fr30.md,
8212         config/h8300/fixunssfsi.c, config/i386/darwin.h,
8213         config/i386/freebsd.h, config/i386/freebsd64.h,
8214         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8215         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8216         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8217         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8218         config/pa/pa64-regs.h, config/rs6000/aix41.h,
8219         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8220         config/sparc/aout.h, config/sparc/freebsd.h,
8221         config/sparc/litecoff.h, config/vax/vax-protos.h,
8222         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8223         copyright.
8224
8225 2004-03-15  Paul Brook  <paul@codesourcery.com>
8226
8227         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8228
8229 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8230
8231         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8232         (pp_c_cv_qualifier): Document.
8233         (pp_c_space_for_pointer_operator): Likewise.
8234         (pp_c_integer_constant): Likewise.
8235         (pp_c_identifier): Likewise.
8236         (pp_c_init_declarator): Don't print function body.
8237
8238 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8239
8240         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8241         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8242         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8243         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
8244         wording and grammar.
8245
8246 2004-03-14  Roger Sayle  <roger@eyesopen.com>
8247
8248         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8249         with lang_hooks.foo ().
8250         * builtins.c (expand_builtin_va_arg): Likewise.
8251         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8252         c_common_type_for_mode, c_common_nodes_and_builtins,
8253         handle_mode_attribute, handle_vector_size_attribute): Likewise.
8254         * c-convert.c (convert): Likewise.
8255         * c-format.c (check_format_types): Likewise.
8256         * c-objc-common.c (c_tree_printer): Likewise.
8257         * c-typeck.c (build_unary_op, build_conditional_expr,
8258         build_binary_op): Likewise.
8259         * calls.c (try_to_integrate, expand_call,
8260         emit_library_call_value_1): Likewise.
8261         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8262         Likewise.
8263         * cgraphunit.c (record_call_1, cgraph_analyze_function,
8264         cgraph_expand_function): Likewise.
8265         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8266         * coverage.c (build_fn_info_type, build_ctr_info_type,
8267         build_gcov_info, create_coverage): Likewise.
8268         * dbxout.c (dbxout_init): Likewise.
8269         * diagnostic.c (diagnostic_report_current_function): Likewise.
8270         * dojump.c (do_jump): Likewise.
8271         * dwarf2out.c (dwarf2_name): Likewise.
8272         * except.c (init_eh): Likewise.
8273         * explow.c (expr_size, int_expr_size): Likewise.
8274         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8275         Likewise.
8276         * expr.c (store_expr, store_constructor, safe_from_p,
8277         expand_expr_real, do_store_flag, try_casesi): Likewise.
8278         * function.c (push_function_context_to, pop_function_context_from,
8279         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8280         put_var_into_stack, allocate_struct_function, current_function_name):
8281         Likewise.
8282         * integrate.c (copy_decl_for_inlining, expand_inline_function):
8283         Likewise.
8284         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8285         lhd_print_error_function): Likewise.
8286         * opts.c (handle_option, decode_options): Likewise.
8287         * passes.c (open_dump_file): Likewise.
8288         * print-tree.c (print_node): Likewise.
8289         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8290         expand_decl_cleanup, emit_case_nodes): Likewise.
8291         * stor-layout.c (variable_size): Likewise.
8292         * toplev.c (announce_function, wrapup_global_declarations,
8293         check_global_declarations, compile_file, default_tree_printer,
8294         process_options, lang_dependent_init, finalize): Likewise.
8295         * tree-dump.c (dequeue_and_dump): Likewise.
8296         * tree-inline.c (remap_decl, remap_block, copy_body_r,
8297         initialize_inlined_parameters, declare_return_variable,
8298         inlinable_function_p, expand_call_inline, optimize_inline_calls,
8299         walk_tree, copy_tree_r): Likewise.
8300         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8301         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8302         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8303         variably_modified_type_p, dump_tree_statistics): Likewise.
8304         * varasm.c (assemble_variable, compare_constant, copy_constant,
8305         force_const_mem, compute_reloc_for_constant, output_constant,
8306         output_addressed_constants, initializer_constant_valid_p): Likewise.
8307
8308 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
8309
8310         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8311
8312 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
8313
8314         * doc/install.texi: Reflect autoconf and automake version for
8315         libffi. Update autoconf version to 2.59.
8316
8317 2004-03-13  Roger Sayle  <roger@eyesopen.com>
8318
8319         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8320         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8321         make_range, build_range_check, fold_range_test, unextend,
8322         constant_boolean_node, fold_binary_op_with_conditional_arg,
8323         fold_truthop, fold_mathfn_compare, fold_inf_compare,
8324         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8325         with lang_hooks.foo ().
8326
8327 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
8328
8329         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8330
8331 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
8332
8333         * doc/install.texi: Note status of -fnew-ra.
8334
8335 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8336
8337         PR middle-end/14470
8338         * expr.c (store_expr): Call emit_queue before generating the move
8339         from the temporary to the original target.  Protect the temporary
8340         from emit_queue.
8341
8342 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
8343
8344         PR target/14533
8345         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8346         other than UNSPEC_GOTOFF.
8347
8348 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
8349
8350         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
8351         to arm_legitimate_index_p.  Update all callers with SET as default
8352         value.
8353         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
8354         range if OUTER is a sign-extend operation on QImode.  Correctly
8355         reject shift operations on sign-extended QImode addresses.
8356         (bad_signed_byte_operand): Delete.
8357         (arm_extendqisi_mem_op): New function.
8358         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
8359         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
8360         constraints.
8361         (CONSTRAINT_LEN): New.
8362         (EXTRA_CONSTRAINT): Delete.  Replace with...
8363         (EXTRA_CONSTRAINT_STR): ... this.
8364         (PREDICATE_CODES): Remove bad_signed_byte_operand.
8365         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
8366         is now always default.
8367         (define_splits for bad sign-extend loads): Delete.
8368         (arm_extendqisi, arm_extendqisi_v5): Likewise.
8369         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8370         Rework 'U' constraint to 'Uv'.
8371         * arm-protos.h: Remove bad_signed_byte_operand.  Add
8372         arm_extendqisi_mem_op.
8373         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8374         Add Uq constraint.
8375
8376 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
8377
8378         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8379         with targetm version.
8380
8381         PR target/14567
8382         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8383         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8384         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8385         Update all users of RS6000_ARG_SIZE.
8386         (function_arg_advance): Count fregno using mode size.
8387         (function_arg): Handle long double split over regs and memory.
8388         (function_arg_partial_nregs): Likewise.
8389         (rs6000_va_arg): Repackage complex args.
8390
8391 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
8392
8393         PR target/14047
8394         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8395         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8396         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8397
8398 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
8399
8400         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8401         prototype.
8402         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8403         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8404
8405 2003-03-12  Andrew Pinski  <apinski@apple.com>
8406
8407         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8408         Use ret instead of result. Use addr instead of base.
8409
8410 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
8411
8412         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8413         fixes required by libstdc++ and update installation instructions
8414         for libstdc++.a.
8415
8416 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
8417
8418         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8419         leading '@' on fastcall symbols before stripping suffix.
8420
8421 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8422
8423         * combine.c (unmentioned_reg_p): New function to check whether an
8424         expression is a "specialization" of another, i.e. that there are
8425         no registers or memory references mentioned in the first that don't
8426         appear in the second.
8427         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8428         (combine_instructions): Also try combining instructions using the
8429         REG_EQUAL note from a preceding log-linked instruction.
8430
8431 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8432
8433         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8434
8435 2004-03-12  Matt Austern  <austern@apple.com>
8436
8437         * target.h (struct gcc_target): New target hook, unwind_label.
8438         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8439         * output.h (default_emit_unwind_label): New function.
8440         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8441         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8442         (TARGET_SUPPORTS_HIDDEN): New target macro.
8443         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8444         that corresponds to this FDE.
8445         (FRAME_BEGIN_LABEL): Allow target to override default label.
8446         (output_call_frame_info): If FDEs are linknonce, then use extra
8447         indirection for FDE encoding, output a label for each FDE, and
8448         output an empty label for each function without an FDE.
8449         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8450         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8451         decls with DECL_ONE_ONLY set, if that macro is defined.
8452         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8453         for a SUPPORTS_ONE_ONLY target.
8454         * config/darwin-protos.h (darwin_unique_section): Declare.
8455         (darwin_asm_named_section): Likewise.
8456         (darwin_section_type_flags): Likewise.
8457         (darwin_non_lazy_pcrel): Likewise.
8458         (darwin_emit_unwind_label): Likewise.
8459         (darwin_make_decl_one_only): Likewise.
8460         * config/darwin.c (machopic_finish): Get rid of tweak that
8461         eliminate stubs for symbols that are defined.
8462         (darwin_encode_section_info): Don't treat weak functions as defined.
8463         (darwin_make_decl_one_only): Define.
8464         (darwin_asm_named_section): Likewise.
8465         (darwin_section_type_flags): Likewise.
8466         (darwin_unique_section): Likewise.
8467         (darwin_emit_unwind_label): Likewise.
8468         (darwin_non_lazy_pcrel): Likewise.
8469         (darwin_asm_output_dwarf_delta): Difference between two labels is
8470         local only if both labels are local.
8471         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8472         (ASM_MAKE_LABEL_LINKONCE): Likewise.
8473         (TARGET_SUPPORTS_HIDDEN): Likewise.
8474         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8475         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8476         (FRAME_BEGIN_LABEL): Likewise.
8477         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8478         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8479         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8480         (TARGET_ASM_UNIQUE_SECTION): Define.
8481         (EH_FRAME_SECTION_NAME): Define.
8482         (EH_FRAME_SECTION_ATTR): Likewise.
8483         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8484         (TARGET_ASM_NAMED_SECTION): Likewise.
8485         (TARGET_SECTION_TYPE_FLAGS): Likewise.
8486         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8487         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8488         TARGET_ASM_EMIT_UNWIND_LABEL.
8489
8490 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8491
8492         * builtins.c (expand_builtin_mathfn): Add pow10* to the
8493         existing exp10* case.
8494         (expand_builtin): Likewise.
8495
8496 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
8497
8498         * doc/tm.texi (registers) <Values in Registers>: Add
8499         entry for REGMODE_NATURAL_SIZE.
8500
8501 2004-03-12  Richard Henderson  <rth@redhat.com>
8502
8503         PR target/14547
8504         * target.h (struct gcc_target): Move calls substructure before
8505         booleans.  Add split_complex_arg.
8506         * function.c (assign_parms, split_complex_args): Use it.
8507         * calls.c (expand_call): Likewise.
8508         (split_complex_values): Likewise.  Check for splittable types
8509         before allocating memory.
8510         (split_complex_types): Likewise.
8511         * system.h (SPLIT_COMPLEX_ARGS): Poison.
8512         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
8513         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
8514         * config/alpha/alpha.c (alpha_split_complex_arg): New.
8515         (TARGET_SPLIT_COMPLEX_ARG): New.
8516         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
8517         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
8518         (rs6000_override_options): Zap it for non-AIX.
8519         (rs6000_function_value): Use targetm.calls.split_complex_arg.
8520         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
8521         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
8522         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
8523         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
8524         SPLIT_COMPLEX_ARGS entry.
8525
8526 2004-03-11  Richard Henderson  <rth@redhat.com>
8527
8528         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
8529         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
8530         (alpha_emit_xfloating_arith): Update to match.
8531         (alpha_emit_xfloating_compare): Likewise.
8532         (alpha_emit_xfloating_cvt): Likewise.
8533         (alpha_emit_xfloating_libcall): Take already built symbol,
8534         mark call const.
8535         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
8536         op1 in a register.
8537
8538 2004-03-11  Richard Henderson  <rth@redhat.com>
8539
8540         PR target/14539
8541         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
8542
8543         * simplify-rtx.c (simplify_relational_operation): Fix typo.
8544
8545 2004-03-11  Richard Henderson  <rth@redhat.com>
8546
8547         PR middle-end/14477
8548         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
8549
8550 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8551
8552         PR target/14262
8553         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
8554         defined, pass small BLKmode values in registers in the low-order part.
8555
8556 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8557
8558         * combine.c (if_then_else_cond): Check for NULL return value of
8559         simplify_gen_subreg.
8560
8561 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8562
8563         PR target/14496
8564         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
8565         TARGET_SINGLE_FLOAT.
8566
8567 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
8568
8569         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
8570         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
8571         * config/ia64/ia64.c (ia64_init_libfuncs): New.
8572         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
8573
8574 2004-03-11  Roger Sayle  <roger@eyesopen.com>
8575
8576         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
8577         -((int)X>>C) where C is an integer constant one bit less than the
8578         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
8579         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
8580
8581         * simplify-rtx.c (simplify_unary_operation): Also implement the
8582         above transformations at the RTL level.
8583
8584 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
8585
8586         * real.c (encode_ibm_extended): Do round low word.
8587
8588 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
8589
8590         * config/arm/arm.md (is_xscale): Comment this attribute and move
8591         it a bit further up in the file, closer to related attributes.
8592
8593 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
8594
8595         * config/host-solaris.c (sol_gt_pch_use_address): Add
8596         missing terminating marker to comment.
8597
8598 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8599
8600         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
8601         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
8602         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
8603         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
8604         move_operand as source predicate in all cases.
8605         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
8606         Test reg_or_0_operand.  Use move_operand as source predicate.
8607         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
8608         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
8609         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
8610         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
8611         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
8612         Use move_operand as source predicate.  Remove 'K' constraint.
8613         (*movqi_internal): Likewise movqi_internal.
8614         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
8615         reg_or_0_operand.  Use move_operand as source predicate.
8616         (*movsf_softfloat): Likewise movsf_internal2.
8617         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
8618         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
8619         (*movdf_softfloat): Likewise movdf_internal2.
8620         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
8621         for DImode if !TARGET_64BIT.
8622         (mips_legitimize_move): Simplify accordingly.
8623
8624 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8625
8626         PR/14362
8627         * var-tracking.c (struct variable_def): Added field refcount.
8628         (variable_htab_free): Decrease the refcount and delete variable
8629         only if there are no more references.
8630         (unshare_variable): New function.
8631         (vars_copy_1): Increase refcount instead of copying the variable.
8632         (variable_union): Share the variables where possible, unshare
8633         the variables if needed.
8634         (variable_different_p): Return false if var1 and var2 are
8635         the same structure.
8636         (variable_was_changed): Init the refcount of new variable.
8637         (set_frame_base_location): Unshare variable if needed.
8638         (set_variable_part): Init the refcount of new variable.
8639         Unshare the variables if needed.
8640         (delete_variable_part): Unshare the variables if needed.
8641         (emit_notes_for_differences_1): Init the refcount of new variable.
8642         (vt_add_function_parameters): Do not add function parameters to
8643         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
8644         (vt_initialize): Do not add frame_base_decl to IN set of
8645         ENTRY_BLOCK_PTR because it is unused anyway.
8646
8647 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8648
8649         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
8650         (vars_copy): Likewise.
8651         (variable_union): Likewise.
8652         (set_variable_part): Likewise.
8653         (delete_variable_part): Likewise.
8654
8655 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
8656
8657         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
8658         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
8659         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
8660         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
8661         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
8662         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
8663         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
8664         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
8665         config/stormy16/stormy16.c: Fix comment typos and formatting.
8666
8667 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
8668
8669         * configure: Regenerate, since I forgot to while committing Paolo's
8670         changes.
8671
8672 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
8673
8674         PR ada/14131
8675         Move language detection to the top level.
8676         * configure.ac: Remove code to detect languages,
8677         it now lives exclusively in the top level.
8678         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
8679         top level, renamed to ACX_PROG_GNAT.
8680
8681 2004-03-10  Richard Henderson  <rth@redhat.com>
8682
8683         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
8684         extra arguments.
8685         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
8686         and host_xmake_file fragments.
8687         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
8688         (gt_pch_restore): Similarly for gt_pch_use_address.
8689         (default_gt_pch_get_address): New.
8690         (mmap_gt_pch_get_address): Split out of gt_pch_save.
8691         (default_gt_pch_use_address): Split out of gt_pch_restore.
8692         (mmap_gt_pch_use_address): Likewise.
8693         * hooks.c (hook_voidp_size_t_null): Remove.
8694         (hook_bool_voidp_size_t_false): Remove.
8695         * hooks.h: Likewise.
8696         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
8697         default_ or mmap_ definitions.
8698         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
8699         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
8700         and gt_pch_use_address.
8701         * config/host-linux.c, config/host-solaris.c: New files.
8702         * config/x-linux, config/x-solaris: New files.
8703         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
8704         Update for changed definition.
8705         (darwin_rs6000_gt_pch_use_address): Likewise.
8706         * doc/hostconfig.texi: Update docs.
8707
8708 2004-03-10  Richard Henderson  <rth@redhat.com>
8709
8710         PR c/14517
8711         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
8712         except for pedantic c90 mode.
8713
8714 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
8715
8716         * configure.ac: Bump AC_PREREQ to 2.59.
8717         * configure: Regenerate.
8718
8719 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
8720
8721         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
8722         (exp10_optab, exp2_optab): Define corresponding macros.
8723         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
8724         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
8725         using exp10?f2 and exp2?f2 patterns.
8726         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
8727         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
8728         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
8729         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8730
8731         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
8732         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
8733         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
8734
8735 2004-03-10  Anthony Green  <green@redhat.com>
8736
8737         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
8738
8739 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8740
8741         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
8742         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
8743         __LONGDOUBLE128.
8744         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
8745         TARGET_OS_AIX_CPP_BUILTINS.
8746         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
8747         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
8748         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
8749         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
8750         previous change.
8751
8752 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8753
8754         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
8755
8756 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8757
8758         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8759         __LONGDOUBLE128 on AIX.
8760
8761 2004-03-10  Andrew Haley  <aph@redhat.com>
8762
8763         PR optimization/14381
8764         * function.c (expand_function_end): Emit a blockage insn before
8765         the epilogue when -fnon-call-exceptions is used.
8766
8767         * except.c (expand_start_all_catch): Make comment more accurate.
8768
8769 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8770
8771         PR target/14480
8772         * config/rs6000/t-rtems: Add missing file on branch.
8773
8774 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
8775
8776         * dbxout.c (dbxout_symbol_location): Do not output references
8777         to optimized-out constant pool symbols.
8778
8779 2004-03-10  Andreas Schwab  <schwab@suse.de>
8780
8781         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
8782         twon34_r.
8783
8784 2004-03-09  James E Wilson  <wilson@specifixinc.com>
8785
8786         * alias.c (alias_sets_might_conflict_p): New.
8787         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
8788         * common.opt (Wstrict-aliasing=): New.
8789         * flags.h (warn_strict_aliasing): Change type to int.
8790         * opts.c (warn_strict_aliasing): Change type to int.
8791         (common_handle_option): Handle OPT_Wstrict_aliasing_.
8792         * tree.h (alias_sets_might_conflict_p): Declare it.
8793         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
8794
8795 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
8796
8797         PR bootstrap/12371
8798         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
8799         (CALL_USED_REGISTERS): Likewise.
8800         (REG_CLASS_CONTENTS): Likewise.
8801         (REG_ALLOC_ORDER): New.
8802         (REGNO_REG_CLASS): Use regno_reg_class.
8803         * config/m68k/m68k.c: Add regno_reg_class array.
8804
8805 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
8806
8807         * config/ia64/ia64.md (divsi3): Fix algorithm.
8808           (udivsi3): Ditto.
8809           (setf_exp_xf): Remove '*' from name.
8810         * testsuite/gcc.dg/20040309-1.c: New test.
8811
8812 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
8813
8814         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
8815         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
8816         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
8817         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
8818         (sparc_aout_select_rtx_section): Don't check
8819         SUNOS4_SHARED_LIBRARIES.
8820         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
8821
8822 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
8823
8824         PR other/14474
8825         * doc/md.texi (Pattern Ordering, Dependent Patterns)
8826         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
8827         INTERNALS".
8828
8829 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
8830
8831         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
8832         (LIBGCC_SPEC): Update to match.
8833
8834 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
8835
8836         * c-decl.c (last_function_parms, last_function_parm_tags)
8837         (last_function_parm_others, current_function_parms)
8838         (current_function_parm_tags, current_function_parm_others):
8839         Delete.
8840         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
8841         New macros.
8842         (grokdeclarator): For function definitions, save the arg-info
8843         block from the declarator in DECL_ARGUMENTS.
8844         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
8845         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
8846         contains only PARM_DECLs.  Improve diagnostics.
8847         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
8848         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
8849         (store_parm_decls_newstyle): Take the function to operate on,
8850         and an arg-info block, as arguments; don't get anything from
8851         current_function_* globals.
8852         (store_parm_decls_oldstyle): Likewise.
8853         (store_parm_decls): Pass fndecl and its arg-info block down to
8854         store_parm_decls_newstyle/oldstyle.  Send functions with empty
8855         argument lists through store_parm_decls_newstyle to reduce
8856         overhead.
8857         (pushdecl): Comment on the problems with the call to copy_node.
8858         Clear DECL_ARGUMENTS of the old node after copying it, if it
8859         is an arg-info block instead of a chain of decls.
8860         (start_function): Do not manipulate current_function_parm* or
8861         last_function_parm*.
8862
8863 2004-03-09  Roger Sayle  <roger@eyesopen.com>
8864             Andrew Pinski  <pinskia@physics.uc.edu>
8865
8866         * ifcvt.c (noce_try_sign_mask): New function to transform
8867         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
8868         (noce_process_if_block): Call noce_try_sign_mask.
8869
8870 2004-03-09  Andrew Pinski  <apinski@apple.com>
8871
8872         * c-typeck.c (tagged_types_tu_compatible_p):
8873         Fix typo.
8874
8875 2004-03-09  Roger Sayle  <roger@eyesopen.com>
8876
8877         * simplify-rtx.c (simplify_const_relational_operation): New function
8878         renamed from simplify_relational_operation.
8879         (simplify_relational_operation): Change prototype to accept an
8880         additional mode argument.  Call simplify_const_relational_operation.
8881         (simplify_gen_relational): Update simplify_relational_operation call.
8882         (simplify_ternary_operation): Update simplify_relational_operation
8883         subroutine call to use simplify_const_relational_operation instead.
8884
8885         * rtl.h (simplify_const_relational_operation): Prototype here.
8886         (simplify_relational_operation): Add addtional mode argument.
8887
8888         * combine.c (combine_simplify_rtx): Update calls to
8889         simplify_relational_operation.
8890         (simplify_set): Likewise.
8891         (gen_binary): Likewise.
8892         * cse.c (fold_rtx): Likewise.
8893         * dojump.c (compare_from_rtx): Likewise.
8894         (do_compare_rtx_and_jump): Likewise.
8895         * integrate.c (subst_constants): Likewise.
8896         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
8897
8898 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
8899
8900         * config/m32r/m32r.md: Remove all define_peephole's.
8901
8902 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
8903
8904         * config/rs6000/rs6000.md: Remove trailing whitespace.
8905
8906 2004-03-08  Eric Christopher  <echristo@redhat.com>
8907
8908         * Makefile.in (site.exp): Add libiconv variable definition.
8909
8910 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
8911
8912         * configure: Regenerate for config/accross.m4 correction.
8913
8914 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8915
8916         PR target/14480
8917         * config/rs6000/t-rtems: Add missing file on branch.
8918
8919 2004-03-08  Roger Sayle  <roger@eyesopen.com>
8920
8921         PR middle-end/14289
8922         * c-typeck.c (c_mark_addressable): A register variable should
8923         be considered global if its not automatic, i.e. TREE_PUBLIC,
8924         TREE_STATIC or DECL_EXTERNAL.
8925         * function.c (put_var_into_stack): Call abort when placing a
8926         hard register into the stack, if x_parm_reg_stack_loc is NULL.
8927
8928 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
8929
8930         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
8931         ("*extendqisi2_short_displ"): Likewise.
8932
8933 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
8934
8935         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
8936         (comp_operator): Likewise.
8937         * config/pdp11/pdp11-protos.h: Remove corresponding
8938         prototypes.
8939
8940 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
8941
8942         * expr.c (highest_pow2_factor_for_type): Rename into
8943         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
8944         TYPE_ALIGN when the target is a COMPONENT_REF.
8945         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
8946
8947 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8948
8949         * config/rs6000/rs6000.c: Formatting fix.
8950         (legitimate_offset_address_p): Correct offset range check.
8951
8952         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
8953         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
8954         and MASK_STRING.
8955
8956 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8957
8958         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
8959         for little endian.
8960         ("ashrdi3_no_power"): Disable for little endian.
8961         (ashrdi3): Same.
8962
8963 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8964
8965         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
8966         builtins.
8967
8968 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
8969
8970         PR target/14471
8971         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
8972         case, checking for -no-mul-bug-abort option.
8973         * configure, config.in: Regenerate.
8974         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
8975         and -mno-mul-bug-workaround.
8976         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
8977         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
8978         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
8979         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
8980         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
8981         sure mulu.d is not last on cache-line.
8982         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
8983         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
8984         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
8985         (TARGET_SWITCHES): New options -mmul-bug-workaround and
8986         -mno-mul-bug-workaround.
8987         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
8988         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
8989         * config/cris/cris.c (cris_operand_extend_operator): Clarify
8990         relation to MULT in head comment.
8991         (cris_op_str): Abort for MULT.
8992         (cris_print_operand) <case '!'>: New case.
8993
8994 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8995
8996         PR debug/11983
8997         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
8998         dw_val_class_vec.  Replace use throughout file.
8999         (dw_float_const): Delete.
9000         (dw_vec_const): New.
9001         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
9002         throughout file.
9003         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
9004         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
9005         (size_of_die): Adjust dw_val_class_vec sizing.
9006         (output_die): Output dw_val_class_vec.
9007         (insert_int, extract_int, insert_float): New functions.
9008         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9009         Handle CONST_VECTOR.
9010         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9011
9012 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9013
9014         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9015         AltiVec abi cannot co-exist.
9016
9017         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9018
9019 2004-03-07  Jan Hubicka  <jh@suse.cz>
9020
9021         * except.c (emit_to_new_bb_before):  Break fallthru edges.
9022
9023 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
9024
9025         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9026         ("*lshrsi3"): Also accept an immediate for 68HC12.
9027         ("*ashrsi3_const"): Likewise.
9028         ("*ashrsi3"): Likewise.
9029         ("*ashlsi3_const"): Likewise.
9030         ("*ashlsi3"): Likewise.
9031         ("cmphi_1_hc12"): Compare two hard register by pushing them and
9032         comparing with a pop; don't use a split for that.
9033         ("cmphi split"): Disable compare split for 68HC12.
9034
9035         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
9036         the status operands if they have side effects.
9037
9038 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
9039
9040         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
9041         definition.
9042         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
9043         config/h8300/h8300.h, config/ia64/ia64.h,
9044         config/mcore/mcore.h, config/mmix/mmix.h,
9045         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9046         config/stormy16/stormy16.h, config/v850/v850.h,
9047         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9048         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9049         definition.
9050
9051 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9052
9053         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9054         <XOR_EXPR>: Fold x ^ x as zero.
9055         <AND_EXPR>: Fold x & x as x.
9056
9057 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9058
9059         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9060         "foo++ == const" into "++foo == const+incr".
9061
9062 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9063
9064         * config/mips/mips.c (mips_in_small_data_p): Return false if
9065         TARGET_ABICALLS.
9066
9067 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9068
9069         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9070         the stack register.
9071         (expand_prologue): Don't make an interrupt or a trap handler a far
9072         symbol.
9073         (m68hc11_initial_elimination_offset): Likewise.
9074
9075 2004-03-06  Richard Henderson  <rth@redhat.com>
9076
9077         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9078
9079 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9080
9081         * config/ns32k/ns32k-protos.h: Add a prototype for
9082         ns32k_notice_update_cc.
9083         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9084         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9085         ns32k_notice_update_cc.
9086
9087 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9088
9089         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9090         "*load_multiple_si"): Allow only if reload_completed.
9091         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9092         Likewise.
9093
9094 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9095
9096         * config/vax/vax-protos.h: Add a prototype for
9097         vax_notice_update_cc.
9098         * config/vax/vax.c (vax_notice_update_cc): New.
9099         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9100         vax_notice_update_cc.
9101
9102 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9103
9104         * collect2.c (main): Only export initfunc and finifunc if
9105         LD_INIT_SWITCH not defined.
9106         (scan_prog_file): Only export constructors and destructors if
9107         LD_INIT_SWITCH not defined.  Only export symbols not found in
9108         shared objects.
9109
9110 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9111
9112         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9113         last.
9114         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9115         from calls to gen_icacheflush.
9116
9117 2004-03-06  Richard Henderson  <rth@redhat.com>
9118
9119         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9120         (TARGET_LONG_DOUBLE_128): New.
9121         (TARGET_SWITCHES): Add long-double-{128,64}.
9122         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9123         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9124         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9125         (WIDEST_HARDWARE_FP_SIZE): New.
9126         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9127         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9128         if TARGET_VAX_FLOAT.
9129         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9130         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9131
9132 2004-03-06  Richard Henderson  <rth@redhat.com>
9133
9134         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9135         botched rtx class conversion.
9136
9137 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9138
9139         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9140         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9141
9142         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9143         macros.
9144         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9145
9146 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9147
9148         PR target/14343
9149         * config/i386/i386.md (movv2di_internal): Conditionalize on
9150         TARGET_SSE, not TARGET_SSE2.
9151
9152 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9153
9154         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9155         duplicated line.
9156
9157 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9158
9159         * builtins.c: Consistently use logN not log* in comments.
9160
9161 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9162
9163         * rtl.h (mem_expr_equal_p): Function prototype added.
9164         * cfgcleanup.c (merge_memattrs): New function.
9165         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9166         * emit-rtl.c (mem_expr_equal_p): New function.
9167
9168 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9169
9170         * objc/objc-act.c (synth_module_prologue): Const-qualify
9171         objc_selector type if using the GNU runtime; fix generated
9172         signatures for objc_msg_lookup and objc_msg_lookup_super
9173         to match what GNU ObjC headers provide; reformat and clean up.
9174         (synth_self_and_ucmd_args): Use previously constructed (and
9175         hence possibly const-qualified) objc_selector type.
9176
9177 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9178
9179         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9180
9181 2004-03-05  Jason Merrill  <jason@redhat.com>
9182
9183         * tree.h (TYPE_HASH): Use TYPE_UID.
9184         (TREE_HASH): New macro with old definition of TYPE_HASH.
9185         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9186         (build_array_type, build_function_type): Likewise.
9187         (build_method_type_directly): Likewise.
9188         (build_offset_type, build_complex_type): Likewise.
9189         (type_hash_list, attribute_hash_list): Likewise. Now static.
9190         * except.c: s/TYPE_HASH/TREE_HASH/.
9191
9192 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9193
9194         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9195         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
9196         __va_ndx by 2 words when referencing an argument on the stack.
9197         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
9198         words when an arg on the stack is first seen.
9199
9200 2004-03-05  Paul Brook  <paul@codesourcery.com>
9201
9202         * arm.h (ARM_FLAG_VFP): Remove.
9203         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9204         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9205
9206 2004-03-05  Paul Brook  <paul@codesourcery.com>
9207
9208         * function.c (assign_parms): Include pretend alignment offset.
9209
9210 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9211
9212         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9213         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9214
9215 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
9216
9217         * configure.ac: When passing --enable-languages to subdir
9218         configure when host != build, make sure we don't pass an empty
9219         value.
9220         * configure: Regenerate.
9221
9222 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
9223
9224         PR 13577
9225         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9226         options.
9227
9228 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9229
9230         * simplify-rtx.c (simplify_relational_operation): If
9231         flag_wrapv is set, do not move terms between the two
9232         side of a relational operator.
9233
9234 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9235
9236         * rtlanal.c: Include target.h and output.h
9237         (rtx_cost, address_cost, default_address_cost): Move from...
9238         * cse.c (rtx_cost, address_cost, default_address_cost):
9239         ... this file.
9240         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9241         * Makefile.in: Adjust dependencies.
9242
9243 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
9244
9245         * cse.c (cse_end_of_basic_block): Make static.
9246         * local-alloc.c (function_invariant_p): Move to
9247         reload1.c.
9248         * loop.c (libcall_other_reg, record_excess_regs):
9249         Make static.
9250         * reload1.c (function_invariant_p): Moved here
9251         from local-alloc.c, made static.
9252         * rtl.h (cse_end_of_basic_block, function_invariant_p,
9253         libcall_other_reg, record_excess_regs): Remove
9254         declarations.
9255
9256 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9257
9258         * config/m32r/m32r.c (signed_comparison_operator): Add a
9259         missing parenthesis.
9260
9261 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
9262
9263         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9264         going to call mmap again.  Read the file into the right place.
9265         Give a fatal error if we have to relocate.
9266
9267 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
9268
9269         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9270         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9271
9272 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
9273
9274         PR other/14354
9275         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9276         round the same.  When rounding, clear bits that would cause a
9277         second rounding in pack_d.
9278         (_fpmul_parts): Ditto.  Remove #if 0:d code.
9279
9280 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
9281
9282         PR c++/14425, c++/14426
9283         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9284         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9285         Change C++ definitions to accept a 'const int' argument;
9286         the prototypes already do.
9287         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9288         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9289         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9290         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9291         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9292         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9293         end in ..._int; change them to accept an int instead of a char
9294         as the last parameter.
9295
9296 2004-03-04  Phil Edwards  <phil@codesourcery.com>
9297
9298         * genmultilib:  Change '=' to '-' when translating option names
9299         to directory names.
9300
9301 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9302
9303         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9304         stack slot for temp used for result of BLKmode but in integral mode.
9305
9306 2004-03-04  Jan Hubicka  <jh@suse.cz>
9307
9308         * reload.c (find_reloads): Reorganize if seqeunce to switch.
9309
9310         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
9311         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
9312
9313 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
9314
9315         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9316         * testsuite/gcc.dg/20040303-1.c: New test.
9317
9318 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9319
9320         * ppro.md: Rewrite as a DFA pipeline description.
9321         * i386.md: Remove all uses of the ppro_uops attribute.
9322         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9323         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9324         ix86_sched_reorder, ix86_variable_issue,
9325         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9326         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9327         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9328         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9329         * athlon.md (athlon_ssecmp_load): Fix comment
9330
9331 2004-03-04  Stuart Hastings  <stuart@apple.com>
9332
9333         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9334
9335 2004-03-04  Stuart Hastings  <stuart@apple.com>
9336
9337         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9338         686, tell Darwin assembler to allow prefetch insns, non-empty def
9339         of SUBTARGET_OPTION_TRANSLATE_TABLE.
9340
9341 2004-03-04  DJ Delorie  <dj@redhat.com>
9342
9343         PR optimization/14282
9344         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9345         between a call and the assignment of its return value.
9346
9347 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9348
9349         * config/h8300/h8300.c: Put a comment for every function.
9350
9351 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9352
9353         * config/h8300/h8300.md: Add comments about peephole2's.
9354
9355 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9356
9357         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9358
9359 2004-03-04  Jan Hubicka  <jh@suse.cz>
9360
9361         * cfgcleanup.c (thread_jump): Update call of cselib_init.
9362         * cselib.c (cselib_record_memory): New static variable.
9363         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9364         Give up on memories when asked for.
9365         (cselib_init): Accept new argument.
9366         * cselib.h (cselib_init): Update prototype.
9367         * gcse.c (local_cprop_pass): Update call of cselib_init.
9368         * loop.c (load_mems): Update call of cselib_init.
9369         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9370         * sched-deps.c (sched_analyze): Update call of cselib_init.
9371
9372 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9373             GP <gp@qnx.com>
9374
9375         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9376         when compiling PIC.
9377
9378 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
9379
9380         PR/14362
9381         * var-tracking.c (track_expr_p): Do not track variables which
9382         should be ignored for debugging purposes.
9383
9384 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9385
9386         * real.c (encode_ibm_extended): Don't bother rounding low double.
9387         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9388         when fmt->pnan < fmt->p.
9389
9390 2004-03-04  Eric Christopher  <echristo@redhat.com>
9391
9392         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9393         only range of valid arg registers and fixed_regs.
9394
9395 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9396
9397         PR target/14406
9398         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9399         (abstf2, abstf2_internal): New define_expand.
9400
9401 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9402
9403         PR optimization/14235
9404         * expr.c (convert_move): Copy the source to a new pseudo
9405         when converting from a sub-word source to a larger-than-word
9406         register which conflicts with the source.
9407
9408 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
9409
9410         PR 13728
9411         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9412         parameters with the same name, unless one is a forward decl.
9413         Do not issue a redundant-redeclaration warning for forward
9414         decls of parameters.
9415
9416 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9417
9418         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9419         configuration.
9420
9421 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
9422
9423         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9424
9425 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9426
9427         * target-def.h (TARGET_OPTF): Delete.
9428         * c-opts.c (TARGET_OPTF): Define.
9429
9430 2004-03-04  Jan Hubicka  <jh@suse.cz>
9431
9432         * cselib.c (cselib_finish): Fix another miss-application of my previous
9433         patch.
9434
9435 2004-03-03  Mike Stump  <mrs@apple.com>
9436
9437         Add framework support for darwin.
9438
9439         * c-incpath.c: Include target.h and machmode.h.
9440         (add_path): Use a consistent style for cpp_dir.  Initialize
9441         p->construct to 0.
9442         (add_cpp_dir_path): New.
9443         (register_include_chains): Add use of extra_includes callback.
9444         (hook_void_int): Add.
9445         (target_c_incpath): Add.
9446         * c-incpath.h (add_cpp_dir_path): New.
9447         (target_c_incpath_s): Add.
9448         (target_c_incpath): Add.
9449         (C_INCPATH_INIT): Add.
9450         * c-opts.c (c_common_missing_argument,
9451         c_common_handle_option): Add -F argument processing.
9452         * c.opt: Add -F argument processing.
9453         * gcc.c (trad_capable_cpp): Add -F argument processing.
9454         * cppfiles.c (find_file_in_dir): Update to use construct
9455         callback.
9456         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9457         cpp_get_prev): New.
9458         (_cpp_find_file): Use search_path_exhausted.
9459         (make_cpp_dir): Initialize construct to 0.
9460         * cpplib.h (missing_header_cb
9461         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9462         (cpp_callbacks): Add missing_header
9463         (cpp_dir): Add construct.
9464         * target-def.h: (TARGET_OPTF): New.
9465         * hooks.c (hook_void_int, hook_void_charptr): Add.
9466         * hooks.h (hook_void_int, hook_void_charptr): Add.
9467         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9468         $(MACHMODE_H) dependencies.
9469         * doc/invoke.texi (Darwin Options): Document -F.
9470         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9471         (TARGET_OPTF): Add.
9472         * fix-header.c (target_c_incpath): Add.
9473
9474         * config/darwin-c.c: Add c-incpath.h include.
9475         (using_frameworks, find_subframework_file,
9476         find_subframework_header, add_system_framework_path,
9477         frameworks_in_use, num_frameworks, max_frameworks,
9478         add_framework, find_framework, struct framework_header,
9479         framework_header_dirs, framework_construct_pathname,
9480         find_subframework_file, add_system_framework_path,
9481         add_framework_path, framework_defaults,
9482         darwin_register_frameworks, find_subframework_header): Add.
9483         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9484         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9485         (CPP_SPEC): Add __APPLE_CC__ support.
9486         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9487
9488 2004-03-04  Jan Hubicka  <jh@suse.cz>
9489
9490         * cselib.c (cselib_finish): Fix miss-application of my previous
9491         patch.
9492
9493 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9494
9495         * hooks.c (hook_tree_tree_identity): New.
9496         * hooks.h: Add a prototype for hook_tree_tree_identity.
9497         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9498         instead of MD_ASM_CLOBBERS.
9499         * system.h (MD_ASM_CLOBBERS): Poison.
9500         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9501         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9502         * target.h (gcc_target): Add md_asm_clobbers.
9503         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9504         (ix86_md_asm_clobbers): New.
9505         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9506         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9507         TARGET_MD_ASM_CLOBBERS.
9508
9509 2004-03-03  Stuart Hastings  <stuart@apple.com>
9510
9511         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
9512
9513 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9514
9515         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
9516
9517         * config/sparc/sparc.h (ASM_FLOAT): Delete.
9518         (ASM_DOUBLE): Likewise.
9519         (ASM_LONGDOUBLE): Likewise.
9520         * config/sparc/pbd.h (ASM_INT_OP): Delete.
9521
9522 2003-03-03  Richard Henderson  <rth@redhat.com>
9523
9524         PR opt/13862
9525         * cselib.c (cselib_record_sets): Don't record multiple sets in
9526         asm insns.
9527
9528 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
9529
9530         * common.opt: Add description of the new -fgcse-after-reload flag.
9531
9532         * flags.h (flag_gcse_after_reload): Declaration of global variable.
9533
9534         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
9535         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
9536         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9537         get_bb_avail_insn, hash_scan_set_after_reload,
9538         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
9539         gcse_after_reload, get_bb_avail_insn): New functions to implement
9540         gcse-after-reload.
9541         (gcse_after_reload_main): New function, the main entry point to
9542         gcse-after-reload.
9543
9544         * rtl.h (gcse_after_reload_main): Declaration of the new function.
9545
9546         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
9547
9548         * toplev.c (flag_gcse_after_reload): Initialization.
9549
9550         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
9551
9552         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9553         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
9554         the gcse after reload optimization.
9555
9556         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9557         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
9558         parameters.
9559
9560         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
9561
9562 2004-03-03  Nicolas Pitre <nico@cam.org>
9563
9564         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
9565         small negative values.
9566
9567 2004-03-03  Jan Hubicka  <jh@suse.cz>
9568
9569         * cselib.c (hash_table):  Remove GTY marker.
9570         (reg_values): Turn into array.
9571         (used_regs): Likewise.
9572         (n_used_regs): New static variable.
9573         (reg_values_old): Kill.
9574         (clear_table): Update uses of arrays.
9575         (cselib_lookup): Likewise.
9576         (cselib_record_set): Likewise.
9577         (cselib_init): Likewise.
9578         (cselib_finish): Likewise.
9579         (cselib_udpate_varray_sizes): Kill.
9580         * cselib.h (cselib_update_varray_sizes): Kill.
9581
9582 2004-03-03  Paul Brook  <paul@codesourcery.com>
9583
9584         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
9585
9586 2004-03-03  Jan Hubicka  <jh@suse.cz>
9587
9588         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
9589         Rename from ...; make statistics transparent.
9590         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
9591         (loc_descriptor): New structure.
9592         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
9593         add_statistics):
9594         New static function.
9595         (ggc_record_overhead, dump_statistics): New global function.
9596         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9597         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
9598         from ...; accept locations
9599         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9600         ggc_realloc, ggc_alloc_typed):  ... this one.
9601         from ...; accept locations
9602         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
9603         ggc_alloc_stat): Rename from ... ; pass locations
9604         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
9605         ... this one.
9606         (ggc_alloc_stat): Record overehead.
9607         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9608         ggc_realloc, ggc_alloc_typed):  Turn to macros
9609         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9610         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
9611         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
9612         * langhooks.h (lhd_make_node): Declare.
9613         (LANG_HOOKS_MAKE_TYPE): Default to new function,
9614         * langhooks.c (lhd_make_node): New.
9615         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
9616         locations.
9617         (rtx_alloc, swallow_copy_rtx): ... this one.
9618         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
9619         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
9620         * toplpev.c (finalize): Dump stats.
9621         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
9622         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9623         Rename from ... ; pass locators.
9624         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9625         build?,  build_decl): Declare.
9626         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
9627         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9628         Declare.
9629         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9630         build?,  build_decl): New macros.
9631         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
9632         * statistics.h: New file.
9633
9634 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9635             Richard Sandiford  <rsandifo@redhat.com>
9636
9637         * config/mips/mips.h (MASK_FIX_SB1): Bump.
9638         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
9639         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
9640         * config/mips/mips.c (mips_output_division): Fill the branch delay
9641         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
9642         TARGET_FIX_R4400.
9643         (mips_output_division): Adjust accordingly.
9644         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
9645         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
9646
9647 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
9648
9649         * alias.c (rtx_equal_for_memref_p): Use predicates
9650         to test rtx classes and new rtx class codes, possibly
9651         splitting conditionals that tested against '<' and 'o'.
9652         * caller-save.c (save_call_clobbered_regs): Likewise.
9653         * combine.c (contains_muldiv, find_split_point, subst,
9654         combine_simplify_rtx, simplify_if_then_else,
9655         simplify_set, simplify_logical, expand_compound_operation,
9656         make_compound_operation, if_then_else_cond, known_cond,
9657         apply_distributive_law, cached_nonzero_bits,
9658         cached_num_sign_bit_copies, simplify_shift_const,
9659         gen_binary, simplify_comparison, update_table_tick,
9660         record_value_for_reg, get_lsat_value_validate): Likewise.
9661         * cse.c (mention_regs, find_best_addr, find_comparison_args,
9662         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
9663         Likewise.
9664         * emit-rtl.c (copy_insn_1): Likewise.
9665         * expr.c (force_operand): Likewise.
9666         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
9667         * flow.c (notice_stack_pointer_modification_1,
9668         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
9669         and_reg_cond, elim_reg_cond): Likewise.
9670         * function.c (update_epilogue_consts): Likewise.
9671         * genattrtab.c (attr_rtx_1): Likewise.
9672         * genopinit.c (gen_insn): Likewise.
9673         * integrate.c (subst_constants): Likewise.
9674         * jump.c (reversed_comparison_code_parts,
9675         reversed_comparison_code, delete_related_insns,
9676         rtx_renumbered_equal_p): Likewise.
9677         * local-alloc.c (block_alloc): Likewise.
9678         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
9679         canonicalize_condition): Likewise.
9680         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
9681         Likewise.
9682         * optabs.c (add_equal_node, expand_binop): Likewise.
9683         * predict.c (estimate_probability): Likewise.
9684         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
9685         * recog.c (validate_replace_rtx_1, comparison_operator,
9686         offsettable_address_p, constrain_operands): Likewise.
9687         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
9688         Likewise.
9689         * regclass.c (scan_one_insn): Likewise.
9690         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
9691         * regrename.c (kill_autoinc_value): Likewise.
9692         * reload.c (find_reusable_reload, find_reloads,
9693         reg_overlap_mentioned_for_reload_p): Likewise.
9694         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
9695         * rtl.c (copy_rtx): Likewise.
9696         * rtl.h (CONSTANT_P, INSN_P): Likewise.
9697         * rtlanal.c (commutative_operand_precedence): Likewise.
9698         * sched-deps.c (conditions_mutex_p): Likewise.
9699         * sched-rgn.c (is_cfg_nonregular): Likewise.
9700         * simplify-rtx.c (simplify_gen_binary,
9701         simplify_gen_relational, simplify_replace_rtx,
9702         simplify_unary_operation, simplify_binary_operation,
9703         simplify_ternary_operation, simplify_rtx): Likewise.
9704         * unroll.c (reg_dead_after_loop): Likewise.
9705         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
9706         print_operand): Likewise.
9707         * config/arc/arc.c (proper_comparison_operator): Likewise.
9708         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
9709         Likewise.
9710         * config/avr/avr.c (_reg_unused_after): Likewise.
9711         * config/frv/frv.c (frv_ifcvt_modify_tests,
9712         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
9713         * config/i386/i386.c (ix86_comparison_operator,
9714         ix86_carry_flag_operator, fcmov_comparison_operator,
9715         arith_or_logical_operator, print_operand,
9716         ix86_expand_binary_operator, ix86_binary_operator_ok):
9717         Likewise.
9718         * config/i386/i386.md: Likewise.
9719         * config/ia64/ia64.c (not_postinc_memory_operand,
9720         ia64_print_operand, update_set_flags, errata_emit_nops):
9721         Likewise.
9722         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
9723         CONSTRAINT_OK_FOR_S): Likewise.
9724         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
9725         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
9726         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
9727         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
9728         Likewise.
9729         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
9730         eqne_comparison_operator, signed_comparison_operator):
9731         Likewise.
9732         * config/mips/mips.c (cmp_op, symbolic_expression_p):
9733         Likewise.
9734         * config/mmix/mmix (mmix_foldable_comparison_operator,
9735         mmix_comparison_operator): Likewise.
9736         * config/pa/pa.c (hppa_legitimize_address): Likewise.
9737         * config/rs6000/rs6000.c (stmw_operation,
9738         branch_comparison_operator, trap_comparison_operator,
9739         ccr_bit): Likewise.
9740         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
9741         * config/s390/s390.c (s390_alc_comparison,
9742         s390_slb_comparison):L Likewise.
9743         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
9744         Likewise.
9745         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
9746         noov_compare_op, noov_compare64_op, v9_regcmp_op,
9747         emit_hard_tfmode_operation, reg_unused_after)
9748         * doc/md.texi, doc/rtl.texi: Likewise.
9749
9750         * ra-debug.c: Add 2004 to list of copyright years.
9751         * unroll.c: Likewise.
9752
9753         * combine.c (simplify_logical): Remove dummy test,
9754         (apply_distributive_law): Fix typo in comment.
9755         GET_CODE (x) == AND so x is a commutative binary op.
9756         * jump.c (delete_related_insns): simplify loop
9757         condition, move testing of RTX codes inside the loop.
9758         (rtx_renumbered_equal_p): do not use RTX_CODE.
9759         * rtl.c (rtx_class): Declare as enum rtx_class.
9760         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
9761         Move to RTX_COMM_COMPARE class.
9762         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
9763         Move to RTX_CONST_OBJ class.
9764         * rtl.h (enum rtx_class): New declaration,
9765         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
9766         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
9767         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
9768         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
9769         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
9770         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
9771         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
9772         OBJECT_P): New macros.
9773         * config/sparc/sparc.c (noov_compare_op): Remove register
9774         from parameter.
9775
9776 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9777
9778         * target.h: Remove texi jargons in comments.
9779
9780 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9781
9782         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
9783         threshold to 0x4f.
9784
9785         Revert:
9786         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9787         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
9788         as well.
9789         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
9790         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
9791
9792 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9793
9794         * doc/md.texi (cbranchmode4): New.
9795
9796 2004-03-02  Eric Christopher  <echristo@redhat.com>
9797
9798         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
9799         fix_trunc.
9800         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
9801         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
9802         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
9803         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
9804
9805 2004-03-02  Richard Henderson  <rth@redhat.com>
9806
9807         PR middle-end/11767
9808         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
9809         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
9810         before the compare, if flag_non_call_exceptions.
9811
9812 2004-03-02  Richard Henderson  <rth@redhat.com>
9813
9814         PR middle-end/14327
9815         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
9816         emitting the label, not after.
9817
9818 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9819
9820         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
9821         (m68hc11_mov_addr_mode): Likewise.
9822         (m68hc11_override_options): Initialize them based on target.
9823         (register_indirect_p): Allow a MEM for indirect addressing modes and
9824         use flags to control what is allowed.
9825         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
9826         supported addressing modes.
9827         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
9828         (go_if_legitimate_address_internal): Likewise.
9829         (m68hc11_indirect_p): Likewise and check the mode.
9830         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
9831
9832 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9833
9834         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
9835         (expand_builtin_setjmp_setup): Use
9836         targetm.builtin_setjmp_frame_value instead of
9837         BUILTIN_SETJMP_FRAME_VALUE.
9838         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
9839         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
9840         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9841         * target.h (gcc_target): Add builtin_setjmp_frame_value.
9842         * targhooks.c (default_builtin_setjmp_frame_value): New.
9843         * targhooks.h: Add a prototype for
9844         default_builtin_setjmp_frame_value.
9845         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
9846         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9847
9848 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9849
9850         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
9851         sequences of moves.
9852         (add peepholes): New peepholes to optimize sequences adding small
9853         constants.
9854         (bset peepholes): New peepholes to transform an OR in a bset form
9855         (bclr peepholes): Likewise for bclr form.
9856         (cmp peepholes): New peepholes to avoid register copies when comparing.
9857
9858 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9859
9860         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
9861         to separate push from moves.
9862         ("*pushdf_internal"): Likewise.
9863         ("*pushsf_internal"): Likewise.
9864         ("*pushsi_internal"): Likewise.
9865         ("movdi_internal"): Use define_insn_and_split; non push operand.
9866         ("movdf_internal"): Likewise.
9867         ("movsf_internal"): Likewise.
9868         ("movsi_internal"): Likewise.
9869         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
9870         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
9871         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
9872
9873 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9874
9875         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
9876         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
9877         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
9878         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
9879         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
9880         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
9881         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
9882         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
9883         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
9884         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
9885         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
9886
9887 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9888
9889         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
9890         (SOFT_XY_REGNUM): Define.
9891         (cmp split): Use the above instead of hard coded numbers.
9892         (8-bit op split): No need to check the mode; allow Q_REG.
9893         (ashift split): Adjust the first operand if it uses the SP and we
9894         are pushing the shifted value.
9895         (plus shift split): Fix when a source is in register D+X.
9896         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
9897
9898 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9899
9900         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
9901         comparing with Z register.
9902
9903 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9904
9905         * cfgloop.h (struct loop_desc): Removed.
9906         (struct loop): Fields simple, desc and has_desc removed.
9907         (simple_loop_p, count_loop_iterations): Declaration removed.
9908         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
9909         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
9910         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
9911         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
9912         simple_loop_exit_p, variable_initial_value, variable_initial_values,
9913         simple_condition_p, simple_increment, count_strange_loop_iterations,
9914         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
9915         Removed.
9916         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
9917
9918 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9919
9920         * genattrtab.c: Don't handle MATCH_INSN.
9921         * genrecog.c: Likewise.
9922         * gensupport.c: Likewise.
9923         * rtl.def (match_insn): Remove.
9924         * doc/md.texi (match_insn, match_insn2): Remove.
9925
9926 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
9927
9928         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
9929         macro results in memory allocation.
9930
9931 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
9932
9933         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
9934         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
9935         %(fbsd_dynamic_linker),
9936         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
9937         config/i386/freebsd.h
9938         * config/arm/freebsd.h: Ditto.
9939         * config/i386/freebsd.h: Ditto.
9940         * config/i386/freebsd64.h: Ditto.
9941         * config/ia64/freebsd.h: Ditto.
9942         * config/rs6000/sysv4.h: Ditto.
9943         * config/sparc/freebsd.h: Ditto.
9944
9945 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
9946
9947         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
9948
9949 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9950
9951         * rtl.def (define_combine): Remove.
9952
9953 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9954
9955         * config/h8300/h8300.md: Tweak formatting.
9956
9957 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9958
9959         * config/h8300/h8300.md (*cmphi_h8300): Rename to
9960         *cmphi_h8300_znvc.
9961         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
9962
9963 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
9964
9965         PR bootstrap/14356
9966         * gcc.c (process_command): Remove const-qualification from argv.
9967         (main): Likewise.
9968
9969 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9970
9971         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
9972         pushqi1_h8300hs_advanced.  Adjust its caller.
9973         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
9974         Adjust its caller.
9975
9976 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
9977
9978         * Makefile.in (install-libgcc, install-multilib): Pass
9979         mkinstalldirs var to libgcc.mk.
9980
9981 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9982
9983         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
9984         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
9985
9986 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9987
9988         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
9989         * config/h8300/h8300.md: Split several peephole2's, each into
9990         two.
9991
9992 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9993
9994         * dominance.c (recount_dominator): Handle postdominators.
9995
9996 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9997
9998         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
9999         (NUM_SYMBOL_TYPES): Likewise.
10000         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10001         (mips_unspec_address): Declare.
10002         (mips_gotoff_page, mips_gotoff_global): Delete.
10003         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10004         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10005         (mips_symbolic_constant_p, mips_symbolic_address_p)
10006         (mips_symbol_insns): Handle new symbol types.
10007         (general_symbolic_operand): New predicate.
10008         (mips_unspec_address): Make extern.
10009         (mips_gotoff_page, mips_gotoff_global): Delete.
10010         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10011         Handle new symbol types.
10012         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10013         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10014         mips_unspec_address directly.
10015         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10016         the documentation of -mexplicit-relocs.
10017
10018 2004-03-01  Jeff Law  <law@redhat.com>
10019
10020         * fold-const.c (fold): An equality comparison of a non-weak object
10021         against zero has a known result.  Similarly an equality comparison
10022         of the address of two non-weak, unaliased symbols has a known result.
10023
10024         * ggc-page.c (struct page_entry): New field PREV.
10025         (ggc_alloc): Update PREV field appropriately.
10026         (sweep_pages): Likewise.
10027         (ggc_free): Likewise.  Use PREV field rather than loop to
10028         improve ggc_free performance.
10029
10030 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10031
10032         * config/mips/mips.c (mips_output_division): Use the division
10033         instruction to fill the delay slot of a zero check.
10034         (mips_idiv_insns): Adjust accordingly.
10035
10036 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
10037
10038         * config.gcc: Create a default tmake_file for linux, and use
10039         it in all but two linux clauses.  Comment those two.
10040
10041 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
10042
10043         * combine.c (try_combine):  Do not refer to is_replaced.
10044         (gen_lowpart_for_combine):  Perverse subregs now have a
10045         more politically correct name.
10046         * cse.c (cse_insn): Likewise.
10047         * jump.c: Fix bogus reference to delete_insn.
10048
10049 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
10050
10051         PR debug/14328
10052         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10053         constants as signed values.
10054
10055         PR middle-end/13448
10056         * c-tree.h (readonly_warning): Rename to ...
10057         (readonly_error): ... this.
10058         * c-typeck.c (build_unary_op): Adjust accordingly.
10059         (readonly_warning): Rename to ...
10060         (readonly_error): ... this and issue errors, not warnings.
10061         (build_modify_expr): Call readonly_error, not readonly_warning.
10062         (c_expand_asm_operands): Likewise.
10063         * tree-inline.c (optimize_inline_calls): Do not inline functions
10064         after errors have occurred.
10065
10066 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10067
10068         * configure.ac: Rearrange some threading code for clarity;
10069         add section comment.
10070         * configure: Regenerate.
10071
10072 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10073
10074         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10075         typos.
10076         * doc/cppopts.texi: Fix a typo.
10077
10078 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10079
10080         * config/i386/i386.md: Fix formatting.
10081
10082 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10083
10084         * configure.ac: Add some comments delineating sections of code.
10085
10086         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10087
10088         * doc/install.texi: Fix idiot typo in previous commit.
10089
10090         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10091
10092 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10093
10094         * config/h8300/h8300.md: Add comments about peephole2's.
10095
10096 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10097
10098         * config/h8300/h8300.md: Tweak operand numbers of some
10099         peephole2's.
10100
10101 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10102
10103         * config/h8300/h8300.md: Tweak comments about peephole2's.
10104
10105 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10106
10107         PR middle-end/14203
10108         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10109         instead of testing whether DECL_RTL is not NULL.
10110
10111 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10112
10113         * config/sh/sh.c: Fix formatting.
10114
10115 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10116
10117         * config/sh/sh.c: Convert to ISO-C.
10118
10119 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10120
10121         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10122         my previous patch.
10123
10124         * config/darwin.h (machopic_finish): Output stub even if the
10125         symbol is already defined.
10126
10127 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10128
10129         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10130
10131 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10132
10133         * genattr.c (main): Don't define
10134         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10135         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10136         (DFA_PIPELINE_INTERFACE): Likewise.
10137         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10138         (DFA_PIPELINE_INTERFACE): Likewise.
10139
10140 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
10141
10142         * config/mips/mips.md (tstsi, tstdi): Delete.
10143
10144 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10145
10146         * config/mips/mips.c (override_options): Remove an obsolete
10147         duplicate definition of the "e" constraint.
10148         * config/mips/mips.h: Update a comment accordingly.
10149
10150 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10151
10152         * config/mips/mips.md: Complete the unfinished R4000
10153         multiply/shift errata workaround.  Improve documentation.
10154         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10155         has a hilo hazard.
10156         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10157         (muldi3, muldi3_internal): Likewise.
10158         (muldi3_internal2): Remove, replacing with...
10159         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10160         (mulsidi3): Take the errata into account.
10161         (mulsidi3_32bit): Remove, replacing with...
10162         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10163         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10164         (umulsidi3): Take the errata into account.
10165         (umulsidi3_32bit): Remove, replacing with..
10166         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10167         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10168         TARGET_FIX_R4000.
10169         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10170         (smuldi3_highpart, umuldi3_highpart): Likewise.
10171         * doc/invoke.texi: Document the errata workaround.
10172
10173 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10174
10175         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10176         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10177         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10178         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10179         * config/mips/mips.c (mips_idiv_insns): New function.
10180         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10181         (mips_output_division): Add a workaround for the R4000 divide/shift
10182         errata.
10183         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10184         the length of an "idiv" instruction.
10185         * doc/invoke.texi: Document the new switches.
10186
10187 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10188
10189         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10190         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10191
10192 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10193
10194         PR optimization/14229
10195         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10196
10197 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10198
10199         * fold-const.c (fold): Strip NOPs that change the signedness
10200         for RSHIFT too.  Expand comment.
10201
10202 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
10203
10204         PR optimization/7871
10205         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10206         from or to call insns.
10207
10208 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10209
10210         PR optimization/7871
10211         * flow.c (propagate_one_insn): Interpret calls as setting global
10212         registers, not merely clobbering them.
10213
10214 2004-02-27  Dale Johannesen  <dalej@apple.com>
10215
10216         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
10217         config/darwin-protos.h:  Ditto.
10218         config/darwin.h:  Remove call to it.
10219         * combine.c (distribute_notes): Do not place a REG_DEAD note
10220         when value is both set and used.
10221
10222 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10223
10224         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10225         as well.
10226         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10227         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10228
10229 2004-02-27  Andrew Pinski  <apinski@apple.com>
10230
10231         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10232         Speedup common case of the type values being in the same order.
10233
10234 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
10235
10236         * config/ia64/ia64.h (no-inline-float-divide): New option.
10237         * config/ia64/ia64.h (no-inline-int-divide): New option.
10238         * config/ia64/ia64.h (no-inline-sqrt): New option.
10239         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10240         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10241         * config/ia64/ia64.c (ia64_override_options): Modify error
10242         checking for inlined division/sqrt.
10243
10244 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10245
10246         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10247         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10248         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10249         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10250         copyright.
10251
10252 2004-02-27  Paul Brook  <paul@codesourcery.com>
10253
10254         * function.c (assign_parms): Don't count pretend args for alignment.
10255
10256 2004-02-27  Richard Henderson  <rth@redhat.com>
10257
10258         * passes.c: New file.
10259         * Makefile.in (OBJS-common): Add it.
10260         * diagnostic.c (rtl_dump_and_exit): Move decl ...
10261         * flags.h (rtl_dump_and_exit): ... here.
10262         * output.h (size_directive_output, last_assemble_variable_decl):
10263         Move from toplev.c.
10264         * rtl.h (reg_alloc): Move from toplev.c.
10265         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10266         struct dump_file_info, enum dump_file_index, dump_file_tbl,
10267         open_dump_file, close_dump_file, rest_of_decl_compilation,
10268         rest_of_type_compilation, rest_of_handle_final,
10269         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10270         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10271         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10272         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10273         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10274         rest_of_handle_tracer, rest_of_handle_if_conversion,
10275         rest_of_handle_if_after_combine, rest_of_handle_web,
10276         rest_of_handle_branch_prob,
10277         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10278         rest_of_handle_addressof, rest_of_handle_sibling_calls,
10279         rest_of_handle_jump_bypass, rest_of_handle_inlining,
10280         rest_of_handle_null_pointer, rest_of_handle_combine,
10281         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10282         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10283         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10284         (decode_d_option): Use enable_rtl_dump_file.
10285         (compile_file, finalize, do_compile): Move profile+combine+graph
10286         cleanup to finish_optimization_passes.
10287         * toplev.h (init_optimization_passes, finish_optimization_passes,
10288         enable_rtl_dump_file): Declare.
10289
10290 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
10291             Roger Sayle  <roger@eyesopen.com>
10292
10293         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
10294         operands to build a tree with swapped operands.
10295         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10296         'unsignedp' predicate to specify the signedness.
10297
10298 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10299
10300         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10301         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10302         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10303         comment typos and formatting.  Follow spelling conventions.
10304
10305 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
10306
10307         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10308         fix_truncsfsi2.
10309
10310         * config/rs6000/spe.md: Delete spe_efsctuiz.
10311         Add spe_fixuns_truncsfsi2.
10312         Add spe_fix_truncsfsi2.
10313
10314 2004-02-26  Eric Christopher  <echristo@redhat.com>
10315
10316         * c-lex.c (c_lex_string_translate): New variable.
10317         (lex_string): Use to determine string translation.
10318         * c-pragma.h: Prototype.
10319         * c-parse.in (start_string_translation): New. Set above.
10320         (stop_string_translation): Ditto.
10321         (attribute, attribute_list, asm_def, asm_stmt,
10322         asm_operand): Use above functions.
10323         * cp/parser.c (cp_parser_declaration): Translate strings
10324         unless token is RID_EXTERN. Set c_lex_string_translate
10325         for recursive use.
10326         (cp_parser_asm_definition): Only translate argument strings
10327         to asms.
10328         (cp_parser_asm_operand_list): Ditto.
10329         (cp_parser_attribute_list): Do not translate attribute strings.
10330
10331 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10332
10333         * stmt.c (expand_start_case_dummy): Remove.
10334         * tree.h: Remove the corresponding prototype.
10335
10336 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10337
10338         * builtins.c (apply_args_register_offset): Remove.
10339         * tree.h: Remove the corresponding prototype.
10340
10341 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10342
10343         * stor-layout.c (is_pending_size): Remove.
10344         * tree.h: Remove the corresponding prototype.
10345
10346 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10347
10348         * recog.c (validate_replace_src): Remove.
10349         * recog.h: Remove the corresponding prototype.
10350
10351 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10352
10353         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10354         MAYBE_REG_PARM_STACK_SPACE.
10355         * function.c: Likewise.
10356         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10357         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10358         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10359         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10360
10361 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10362
10363         * c-decl.c (c_expand_deferred_function): Remove.
10364         * c-tree.h: Remove the corresponding prototype.
10365
10366 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10367
10368         * postreload.c (reload_cse_move2add): Generate just a PLUS
10369         instead of an entire SET.
10370
10371 2004-02-26  Jan Hubicka  <jh@suse.cz>
10372
10373         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10374         /pentium4m.
10375         * i386.c (override_options): Add support for new CPUs.
10376         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10377         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10378         constants.
10379         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10380
10381 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
10382
10383         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10384
10385 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10386
10387         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10388         (sparc_emit_fixunsdi): New prototype.
10389         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10390         (sparc_emit_fixunsdi): New function.
10391         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10392         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
10393         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
10394         to sparc_emit_floatunsdi.
10395         (fixuns_truncsfdi2): New expander.
10396         (fixuns_truncdfdi2): Likewise.
10397
10398 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
10399
10400         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10401         unless HAVE_cc0.
10402
10403 2004-02-25  Richard Henderson  <rth@redhat.com>
10404
10405         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10406         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10407         use (op0-op1) == 0 if op0 is a pointer.
10408         * config/alpha/alpha.md (cmpdi): Use some_operand.
10409         (three comparison combine splits): Remove.
10410
10411 2004-02-25  Richard Henderson  <rth@redhat.com>
10412
10413         PR c/12794
10414         * c-common.c (handle_alias_attribute): Reject the attribute if
10415         current_function_decl is set.
10416
10417 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10418
10419         * config.gcc: Add comment describing extra_gcc_objs.
10420         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10421         * configure.ac (extra_gcc_objs): New substitution variable.
10422         (host_extra_gcc_objs): Don't substitute.
10423         * configure: Regenerate.
10424         * Makefile.in: Use extra_gcc_objs.
10425
10426 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10427
10428         * doc/contrib.texi: Add an entry for myself.
10429
10430 2004-02-25  Jan Hubicka  <jh@suse.cz>
10431
10432         * basic-block.h (make_eh_edge, break_superblocks): Declare.
10433         * cfgbuild.c (make_eh_edge):  Make global.
10434         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10435         * except.c (build_post_landing_pads, connect_post_landing_pads,
10436         dw2_build_landing_pads, sjlj_emit_function_enter,
10437         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10438         sjlj_build_landing_pads): Update CFG.
10439         (emit_to_new_bb_before): New function.
10440         (finish_eh_generation): Do not rebuild the CFG.
10441
10442 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10443
10444         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10445         target_cpu_default defines.
10446         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10447         * pa.h (TARGET_DEFAULT): Likewise.
10448
10449 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10450
10451         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10452         comparisons with regard to signedness.
10453
10454 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10455
10456         * arm.c (thumb_legitimize_address): New function.
10457         * arm-protos.h: Prototype it.
10458         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10459         (LEGITIMIZE_ADDRESS): Use it.
10460
10461 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
10462
10463         * reload1.c (reload): Only spill eliminable register with multiple
10464         adjacent elimination alternatives if all alternatives fail.
10465
10466 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10467
10468         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10469         is -4095...+4095 inclusive.
10470
10471 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
10472
10473         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10474         the bootstrap failure with Sun CC 5.4 and 5.5.
10475
10476 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10477
10478         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10479         which modifies NEWREG.
10480         (cse_condition_code_reg): Update the mode of CC_REG in
10481         CC_SRC_INSN on our own.
10482
10483 2004-02-24  Michael Matz  <matz@suse.de>
10484
10485         * config/i386/i386.c (ix86_comp_type_attributes): Check for
10486         regparm attributes.
10487
10488 2004-02-24  Richard Henderson  <rth@redhat.com>
10489
10490         * toplev.c (dump_file_tbl): Rename from dump_file.
10491         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
10492         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
10493         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10494         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10495         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10496         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10497         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10498         s/rtl_dump_file/dump_file/g.
10499
10500 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
10501
10502         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10503         (spe_fixuns_truncsfsi2): Delete.
10504
10505         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10506         (fixuns_truncsfsi2): Delete.
10507
10508 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
10509
10510         PR/14240
10511         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
10512
10513 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
10514
10515         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
10516
10517 2004-02-24  Jason Merrill  <jason@redhat.com>
10518
10519         * tree.c (check_qualified_type): New fn.
10520         (get_qualified_type): Use it.  If type already has the desired
10521         quals, just return it.
10522         * tree.h: Declare it.
10523
10524 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
10525
10526         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
10527         TARGET_SCHED_FINISH_GLOBAL): New macros.
10528
10529         * target.h (md_init_global, md_finish_global): Function
10530         declarations corresponding to new target macros.
10531
10532         * haifa-sched.c (sched_init, sched_finish): Allow target to
10533         call the new schedular hooks.
10534
10535         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
10536         call to update_life_info.
10537
10538         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
10539         flag_schedule_insns for SH4.
10540
10541         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
10542         find_set_regmode_weight, find_insn_regmode_weight,
10543         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
10544         sh_variable_issue, high_pressure, ready_reorder,
10545         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
10546         functions used to throttle the insn movement in first
10547         scheduling pass for SH.
10548
10549         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
10550         TARGET_SCHED_FINISH_GLOBAL.
10551
10552 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
10553
10554         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
10555         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
10556         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
10557         symbols in sections named by the user.
10558         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
10559         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
10560         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
10561         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
10562         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
10563         the above.
10564         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
10565         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
10566         one more pseudo to further improve code generation.
10567         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
10568         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
10569         inside UNSPEC.
10570         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
10571         * config/frv/frv.c (frv_legitimate_address_p): Added
10572         allow_double_reg_p argument.  Adjust all callers.  Use it to
10573         decide whether to enable double-register indirect addressing.
10574         (frv_funcdesc_alias_set): Remove.
10575         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
10576         register.  Emit movdi_ldd.
10577         (ldd_address_operand): New.
10578         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
10579         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10580         (PREDICATE_CODES): Add ldd_address_operand.
10581         * config/frv/frv.md (movdi_ldd): New.
10582         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
10583         intermediate computations if possible.
10584         (symGOTOFF2reg_i): Fix harmless typo.
10585         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
10586         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
10587         relocated p_vaddr to vaddr type.
10588         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
10589         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
10590         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
10591         MEM, or use a funcdesc alias set.  Use regular move instead of
10592         ldd.
10593         (dbl_memory_one_insn_operand): Recognize function descriptors by
10594         type or by alias set, and don't split them.
10595         * config/frv/frv.md (call, call_value): Never use call_internal
10596         for fdpic.
10597         (call_internal, call_value_internal): Never match for FDPIC.
10598         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
10599         call_value_fdpicsi): Require FDPIC.
10600         (ldd): Removed.
10601         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
10602         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
10603         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
10604         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
10605         FDPIC.  Compute data base address.
10606         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
10607         before the other self-specs are processed.
10608         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
10609         Build with -fPIC.
10610         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
10611         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
10612         inhibit_libc is defined.
10613         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
10614         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
10615         __FRV_FDPIC__.
10616         (__RELOC_POINTER): Define.
10617         (_Unwind_IteratePhdrCallback): Use it.
10618         * config/frv/frv.h (Twrite): Define.
10619         (TRANSFER_FROM_TRAMPOLINE): Use it.
10620         * config/frv/linux.h (INVOKE__main): Undefine.
10621         (Twrite): Override.
10622         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
10623         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
10624         (-mlibrary-pic): Emphasize that this option generates EABI code.
10625         (-mcpu): Add fr550.
10626         (-mpack): Remove.
10627         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
10628         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
10629         and CONSTs in FDPIC mode.
10630         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
10631         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10632         * config/frv/frv.c (move_source_operand): Don't accept symbolic
10633         constants.
10634         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
10635         rather than 'i' constraint for the 2-instruction alternative.
10636         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
10637         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10638         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
10639         EXTRA_CONSTRAINT_FOR_Y.
10640         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
10641         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
10642         (addsi3): Change 'Y' constraint to 'Q'.
10643         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
10644         * reload.c (CONST_POOL_OK_P): New macro.
10645         (find_reloads): Use it to decide whether a constant can be forced
10646         into memory.
10647         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
10648         constant satisfies got12_operand.
10649         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
10650         (frv_legitimate_address_p): Check for valid unspec offsets using
10651         got12_operand rather than frv_legitimate_fdpic_operand_p.
10652         (frv_legitimate_fdpic_operand_p): Delete.
10653         (frv_emit_movsi): Abort if we try to use the FDPIC register during
10654         or after reload.
10655         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
10656         TARGET_FDPIC.
10657         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
10658         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
10659         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
10660         (frv_fdpic_fptr_operand): Don't declare here.
10661         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
10662         rather than fdpic_got12_operand.
10663         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
10664         got12_operand and const_unspec_operand.
10665         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
10666         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
10667         (symbolic_operand): Remove.
10668         (const_unspec_operand): New predicate.
10669         * config/frv/frv.md (*movsi_got): Use got12_operand.
10670         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
10671         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
10672         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
10673         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
10674         * config/frv/frv.c (frv_unspec): New structure.
10675         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
10676         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
10677         validate CONST indices.  Use frv_output_const_unspec to print them.
10678         (frv_print_operand): Update call to unspec_got_name.  Use
10679         frv_output_const_unspec to print constant unspecs.
10680         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
10681         Reject UNSPECs otherwise.
10682         (unspec_got_name): Take the relocation number as argument, not an
10683         rtx containing it.
10684         (frv_output_addr_const_extra): Remove, replacing with...
10685         (frv_output_const_unspec): ...this new function.
10686         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
10687         (gpr_or_int12_operand): Use fdpic_got12_operand.
10688         (dbl_memory_one_insn_operand): Likewise.
10689         (fdpic_got12_operand): Use frv_const_unspec_p.
10690         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
10691         are already legitimate.  Use frv_small_data_reloc_p when deciding
10692         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
10693         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
10694         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
10695         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
10696         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10697         label, for real this time.
10698         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
10699         representation of visibility.
10700         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
10701         such.
10702         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
10703         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
10704         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
10705         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
10706         it was explicitly disabled.
10707         (frv_stack_info): There is no need to save the link register in every
10708         frame unless TARGET_LINKED_FP is true.
10709         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
10710         frame pointer if the stack pointer might change value.
10711         (frv_return_addr_rtx): Check and process "count" argument.
10712         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
10713         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
10714         (frv_find_base_term): Declare.
10715         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
10716         (FIND_BASE_TERM): Define.
10717         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
10718         small_data_register_operand, small_data_symbolic_operand.  Add
10719         symbolic_operand.
10720         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
10721         (frv_print_operand_memory_reference, output_move_single): Remove
10722         special handling for unlegitimized sdata addresses.
10723         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
10724         and symbolic addresses.
10725         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
10726         (frv_find_base_term): New function.
10727         (int_2word_operand): Check specifically for symbolic address constants.
10728         (pic_register_operand, pic_symbolic_operand): Delete.
10729         (small_data_register_operand, small_data_symbolic_operand): Delete.
10730         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
10731         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
10732         (move_source_operand): Only accept CONSTs if they're a two-insn
10733         symbolic constant.
10734         (fdpic_got12_operand): Don't require TARGET_FDPIC.
10735         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
10736         using gen_symGOTOFF2reg*.
10737         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
10738         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
10739         themselves a cost of 3 insns.
10740         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
10741         Change predicate to symbolic_operand.
10742         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
10743         (*movsi_lda_sdata): Delete.
10744         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
10745         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
10746         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
10747         frv-*-*linux*.
10748         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10749         label.
10750         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
10751         -multilib-library-pic.
10752         (LINK_SPEC): Add -z text for -mfdpic.
10753         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
10754         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
10755         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
10756         Override.
10757         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
10758         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
10759         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
10760         crtstuff-generated files.
10761         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
10762         * config.gcc: Add frv-*-*linux*.
10763         * config/frv/linux.h, config/frv/t-linux: New.
10764         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
10765         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
10766         when -mfdpic even if a linker script is explicitly listed.
10767         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10768         * config/frv/frv.c (frv_override_options): Clear asm_out
10769         unaligned_op for SImode on FDPIC.
10770         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
10771         argument passed to decl_readonly_section.
10772         (frv_assemble_integer): Revert 2003-09-30's change, but make the
10773         whole block run with FDPIC even with -fno-PIC.
10774         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10775         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
10776         symbol or label plus offset to memory.
10777         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
10778         GOTOFF and GPREL for LABEL_REF.
10779         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
10780         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
10781         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
10782         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
10783         * doc/invoke.texi: Document them.
10784         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
10785         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
10786         (frv_splittable_got_operand): Removed.
10787         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
10788         LO_SUM.  Add comments.
10789         (frv_override_options): Moved enabling of FDPIC to
10790         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
10791         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
10792         (frv_legitimize_fdpic_address): Don't duplicate logic in
10793         frv_emit_movsi.
10794         (frv_gen_GPsym2reg): New.
10795         (unspec_got_name): Added gprel.
10796         (frv_expand_fdpic_call): Add support for inlining PLTs.
10797         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
10798         (gpr_or_int12_operand): Added GPREL12.
10799         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
10800         (small_data_symbolic_operand): Fail if FDPIC.
10801         (fdpic_splittable_got_operand): Removed.
10802         (fdpic_got12_operand): Added GPREL12.
10803         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
10804         when appropriate.  Fix sdata GOTOFF.
10805         (frv_legitimate_constant_p): Require legitimate PIC operand for
10806         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
10807         (frv_assemble_integer): Move FDPIC funcdesc handling out of
10808         flag_pic case.
10809         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
10810         frv_assemble_integer fails.
10811         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
10812         (SUBTARGET_DRIVER_SELF_SPECS): New.
10813         (ASM_SPEC): Don't pass -mno-fdpic.
10814         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
10815         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
10816         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
10817         -multilib-library-pic.
10818         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
10819         condexec_si_media_operator, condexec_sf_add_operator and
10820         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
10821         and condexec_sf_unary_operator.
10822         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
10823         New.
10824         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
10825         movsi_internal.  Give them internal names.  movsi_got has type
10826         int.
10827         (fdpic got splitters): Remove.
10828         (symGPREL2reg, symGPREL2reg_hilo): New.
10829         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
10830         to -mlibrary-pic.  Map -multilib-library-pic to it.
10831         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
10832         Document.
10833         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
10834         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
10835         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
10836         (frv_cannot_force_const_mem): New function.
10837         (const_small_data_p, plus_small_data_p): Update comments on sdata
10838         on FDPIC.
10839         (frv_override_options): Set flag_pie for FDPIC too.
10840         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
10841         call-saved registers on FDPIC.
10842         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
10843         don't force LR to be preserved.
10844         (frv_expand_prologue): Likewise.
10845         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
10846         (frv_frame_pointer_required): Don't force it just because the
10847         FDPIC register is used.
10848         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
10849         operand only if !condexec_p.
10850         (frv_legitimize_address): Return the FDPIC-legitimized address.
10851         Don't match small data here on FDPIC.
10852         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
10853         symbols.  Use TRUE/FALSE instead of 1/0.
10854         (frv_local_funcdesc_p): New.
10855         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
10856         immediates when possible.
10857         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
10858         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
10859         an UNSPEC_GOT.
10860         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
10861         12-bit immediates when possible.
10862         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
10863         are not legitimate pic operands.
10864         (frv_in_small_data_p): Re-enable for FDPIC.
10865         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
10866         (FRV_GLOBAL_P): Removed.
10867         * config/frv/frv.md: Add modes to CONSTs.
10868         (movsi_got): New.
10869         (movsi_lo_sum_got): Use separate matches instead of match_dup.
10870         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
10871         (fdpic splittable operations): Match on flag_pic != 1.
10872         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
10873         * config/frv/frv.c (frv_asm_out_constructor,
10874         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
10875         bytes, not bits.
10876         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
10877         * config/frv/frv.c (frv_assemble_integer): Reject complex
10878         expressions referencing function SYMBOL_REFs.
10879         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
10880         (move_source_operand): Reject CONSTs that reference function
10881         SYMBOL_REFs on FDPIC.
10882         (frv_emit_movsi): If we get such a CONST, break it up.
10883         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
10884         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
10885         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
10886         MEM.
10887         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
10888         (frv_trampoline_size): Increase for FDPIC.
10889         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
10890         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
10891         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
10892         Disable use of GOTOFF for now.
10893         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
10894         Disable use of small data in FDPIC for now.
10895         (frv_asm_output_mi_thunk): Implement for FDPIC.
10896         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
10897         * config/frv/frv.c (frv_asm_out_constructor): Use
10898         frv_assemble_integer for FDPIC pointers.
10899         (frv_asm_out_destructor): Likewise.
10900         * config/frv/frv.md (ldd): Fix order of operands.  Use
10901         address_operand for input.
10902         2003-09-18  DJ Delorie  <dj@redhat.com>
10903         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
10904         (unspec_got_name): Correct typo.
10905         (frv_emit_movsi): Pre-expand splittable GOTs.
10906         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
10907         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
10908         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
10909         * config/frv/t-frv: Add -mfdpic multilibs.
10910         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
10911         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
10912         * config/frv/frv.c (frv_override_options): -mfdpic assumes
10913         flag_pic, default to 32-bit pics, require DWORD ops.
10914         (frv_override_options): Add W and Z constraints.
10915         (frv_expand_prologue): No pic prologue for -mfdpic.
10916         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
10917         (frv_print_operand_memory_reference): Handle GOT constants.
10918         (frv_legitimate_address_p): Allow GOT constants.
10919         (frv_legitimize_address): Handle GOT addresses too.
10920         (frv_legitimate_fdpic_operand_p): New.
10921         (frv_legitimize_fdpic_address): New.
10922         (unspec_got_name): New.
10923         (frv_output_addr_const_extra): New.
10924         (frv_expand_fdpic_call): New.
10925         (frv_fdpic_fptr_operand): New.
10926         (gpr_or_int12_operand): Handle GOT operands.
10927         (int_2word_operand): Handle GOT operands.
10928         (fdpic_operand): New.
10929         (fdpic_splittable_got_operand): New.
10930         (fdpic_got12_operand): New.
10931         (frv_emit_movsi): Handle GOT operands.
10932         (frv_assemble_integer): -mfdpic doesn't use rofixups.
10933         (frv_print_operand): Support 'g' code for GOT operands.
10934         * config/frv/frv-protos.h: Add prototypes as needed.
10935         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
10936         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
10937         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
10938         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
10939         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
10940         R_FRV_GOTOFFLO): New.
10941         (movsi_high_got, movsi_lo_sum_got): New.
10942         (*movsi_pic): Don't use this splitter for -mfdpic.
10943         (addsi3): Allow GOT references also.
10944         (call, call_value): Handle -mfdpic separately.
10945         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
10946         call_value_fdpicsi): New.
10947         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
10948         symGOTOFF2reg_i): New.
10949         * config/frv/frv.h (MASK_FDPIC): New.
10950         (TARGET_FDPIC): New.
10951         (TARGET_SWITCHES): Add -mfdpic.
10952         (FDPIC_FPTR_REGNO): New.
10953         (FDPIC_REGNO): New.
10954         (OUR_FDPIC_REG): New.
10955         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
10956         FDPIC_CALL_REGS.
10957         (REG_CLASS_NAMES): Likewise.
10958         (REG_CLASS_CONTENTS): Likewise.
10959         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
10960         (EXTRA_CONSTRAINT): Add it here.
10961         (FRV_GLOBAL_P): New.
10962         (OUTPUT_ADDR_CONST_EXTRA): New.
10963
10964 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10965
10966         * config/sparc/sparc.h: Remove commented-out definitions of
10967         TARGET_EDOM and GEN_ERRNO_RTX.
10968
10969 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10970
10971         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
10972         df_analyse with df_analyze.
10973
10974 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
10975
10976         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
10977         beginning of block.
10978
10979 2004-02-23  James E Wilson  <wilson@specifixinc.com>
10980
10981         * calls.c (precompute_arguments): Update comment.
10982
10983 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10984
10985         * et-forest.c: Replace et_occurences with et_occurrences.
10986
10987 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10988
10989         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
10990         with iv_analyze.
10991
10992 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
10993
10994         * config/i386/i386.c: Rename pni to sse3.
10995         * config/i386/i386.h: Likewise.
10996         * config/i386/i386.md: Likewise.
10997         * config/i386/pmmintrin.h: Likewise.
10998         * doc/extend.texi: Likewise.
10999         * doc/invoke.texi: Likewise.
11000
11001 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
11002             Kazu Hirata  <kazu@cs.umass.edu>
11003
11004         Remove -fwritable-strings.
11005         * c-common.c (fix_string_type): Don't check
11006         flag_writable_strings.
11007         (fix_string_type): Likewise.
11008         * c-opts.c (set_std_c89): Don't initialize
11009         flag_writable_strings.
11010         (set_std_c99): Likewise.
11011         * common.opt (fwritable-strings): Remove.
11012         * flags.h: Remove the external declaration of
11013         flag_writable_strings.
11014         * opts.c (common_handle_option) <OPT_fwritable_strings>:
11015         Remove.
11016         * toplev.c (flag_writable_strings): Remove.
11017         (f_options): Remove an entry for writable-strings.
11018         * varasm.c (const_hash_1) <STRING_CST>: Don't check
11019         flag_writable_strings.
11020         (compare_constant) <STRING_CST>: Likewise.
11021         (build_constant_desc): Likewise.
11022         * config/darwin.c (machopic_select_section): Likewise.
11023         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11024         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11025         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11026         * config/mips/mips.c (mips_select_section): Likewise.
11027         (mips_encode_section_info): Likewise.
11028         * config/pa/pa.c (pa_select_section): Likewise.
11029         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
11030         * config/v850/v850.c (v850_select_section): Likewise.
11031         * doc/invoke.texi (-fwritable-strings): Remove.
11032         (-fno-const-strings): Don't mention -fwritable-strings.
11033         * doc/trouble.texi: Don't mention -fwritable-strings.
11034
11035 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
11036
11037         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
11038
11039 2004-02-23  Dale Johannesen  <dalej@apple.com>
11040
11041         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
11042         (movdf_hardfloat64):  Ditto.
11043         (movdf_softfloat64):  Ditto.
11044
11045 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
11046         * config/rs6000/rs6000.c (function_arg): call to
11047         rs6000_mixed_function_arg for DFmode moved to allow
11048         normal DFmode incoming register assignment.
11049
11050 2004-02-23  Dale Johannesen  <dalej@apple.com>
11051
11052         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11053         (movdf_hardfloat64):  Ditto.
11054
11055 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11056
11057         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11058         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11059         copyright.
11060
11061 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11062
11063         PR c/14156
11064         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11065         to use DECL_P instead.
11066
11067         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11068         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11069
11070 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11071
11072         * Makefile.in (opts.o): Depend on target.h.
11073         * opts.c (decode_options): Use targetm.default_short_enums
11074         instead of DEFAULT_SHORT_ENUMS.
11075         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11076         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11077         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11078         * target.h (gcc_target): Add default_short_enums.
11079         * config/cris/cris.h: Remove a comment about
11080         DEFAULT_SHORT_ENUMS.
11081         * config/ip2k/ip2k.h: Likewise.
11082         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11083         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11084
11085 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11086             Falk Hueffner  <falk@debian.org>
11087
11088         PR c/14188
11089         * builtins.c (expand_builtin_va_arg): Emit an informative message
11090         if a trap is generated.
11091         * c-typeck.c (build_function_call): Likewise.
11092
11093 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11094
11095         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11096         fopen.
11097         * libgcov.c: Include sys/stat.h.
11098         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11099         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11100         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11101         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11102
11103 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11104
11105         * reorg.c: Remove comments about dead ports.
11106
11107 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11108
11109         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11110         extra host object file when targetting cygwin rather than generic
11111         object files.
11112
11113 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11114
11115         Merge from tree-ssa:
11116         2003-11-20  Richard Henderson  <rth@redhat.com>
11117
11118                 * tree-inline.c (insert_decl_map): New.
11119                 (remap_decl, remap_type, remap_block, copy_body_r,
11120                 initialize_inlined_parameters, declare_return_variable,
11121                 remap_save_expr): Use it.
11122
11123         * function.c (copy_body_r): Add mapping from id->ret_label to
11124         id->ret_label.  Revert test for ret_label.
11125
11126 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11127
11128         * genoutput.c (process_template): Strip trailing whitespace in @
11129         templates and issue a warning if there was any.
11130
11131 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11132
11133         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11134         object file when targetting cygwin.
11135         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11136         overridden by top-level Makefile.
11137
11138 2004-02-21  Roger Sayle  <roger@eyesopen.com>
11139
11140         * config/i386/i386.c (standard_80387_constant_p): Also prefer
11141         the x87's load constant instructions when optimizing for size.
11142
11143 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11144
11145         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11146         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11147         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11148         * fold-const.c: Likewise.
11149         * simplify-rtx.c: Likewise.
11150
11151 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11152
11153         * combine.c (can_combine_p): Don't ignore SETs marked with
11154         REG_EH_REGION notes.
11155         (try_combine): When attemting to fix unrecognized insns, don't
11156         split a PARALLEL that contains the original i2.
11157
11158 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11159
11160         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11161         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11162         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11163         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11164         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11165         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11166         portion of header.
11167         (__altivec_link_error_invalid_argument): Remove prototype; will use
11168         __builtin_altivec_compiletime_error("vec_*") instead.
11169         (vec_*): Fix/complete set of available operation overloads given the
11170         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11171         cv-correctness of pointer arguments; in C, always check for correct
11172         argument types before macro expansion.
11173         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11174         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11175         '-W[no-]altivec-long-deprecated' switches.
11176         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11177         '__vector', '__pixel' and '__bool' macros using
11178         '__attribute__((altivec(...)))' types.
11179         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11180         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11181         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11182         New type nodes.
11183         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11184         handling '-W[no-]altivec-long-deprecated'.
11185         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11186         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11187         altivec_expand_dst_builtin): Remove casts from integer literals.
11188         (altivec_expand_builtin): Likewise; handle expansion of new
11189         '__builtin_altivec_compiletime_error' function.
11190         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11191         types, and make them distinct from other vector types; register
11192         '__builtin_altivec_compiletime_error' function.
11193         (print_operand): For 'P', print a full target register name instead of
11194         merely its number.
11195         (rs6000_attribute_table): Add "altivec" attribute.
11196         (rs6000_handle_altivec_attribute): New function.
11197         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11198         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11199         maps to).
11200         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11201         declare.
11202         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11203
11204 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11205
11206         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11207         check.
11208         (shift_mix4left+2): Delete redundant pattern.
11209
11210 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11211
11212         * alias.c (OUTGOING_REGNO): Don't define the default.
11213         * builtins.c (OUTGOING_REGNO): Likewise.
11214         (INCOMING_REGNO): Likewise.
11215         (apply_args_register_offset): Always use OUTGOING_REGNO.
11216         * combine.c (OUTGOING_REGNO): Likewise.
11217         * sibcall.c (OUTGOING_REGNO): Likewise.
11218         * defaults.h (INCOMING_REGNO): Provide the default.
11219         (OUTGOING_REGNO): Likewise.
11220
11221 2004-02-21  Jan Hubicka  <jh@suse.cz>
11222
11223         * params.def (max-peeled-insns, max-completely-peeled-insns,
11224         max-once-peeled-insns): Set to 400.
11225
11226 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11227
11228         PR c++/12007
11229         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11230         are set for parameters before outputing debugging information.
11231
11232 2004-02-20  Falk Hueffner  <falk@debian.org>
11233
11234         PR target/14201
11235         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11236         numbers.
11237
11238 2004-02-20  Per Bothner  <per@bothner.com>
11239
11240         * input.h:  Don't #include line-map.h.  It may cause link problems
11241         with undefined linemap_line_start when line-map.h is included but
11242         line-map.o is not linked, as currently happens with gengtype on
11243         compilers that don't support inline.
11244         * toplev.c:  So we do have to explicitly #include line-map.h here.
11245
11246 2004-02-20  Richard Henderson  <rth@redhat.com>
11247
11248         * doc/invoke.texi: Add -Wvariadic-macros.
11249
11250 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11251
11252         * haifa-sched.c (sched_emit_insn): Remove.
11253         * sched-int.h: Remove the corresponding prototype.
11254
11255 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11256
11257         Revert:
11258         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11259         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11260         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11261         * config/cris/cris.h: Remove a comment about
11262         DEFAULT_SHORT_ENUMS.
11263         * config/ip2k/ip2k.h: Likewise.
11264         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11265
11266 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
11267             Tom Tromey  <tromey@redhat.com>
11268
11269         * doc/install.texi: Moved --disable-libgcj and
11270         --with-system-zlib documentation to new section for
11271         Java-specific options.
11272         Added explicit Cross-Compiler-Specific Options subheading.
11273         Added section for Java-specific options.
11274
11275 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
11276
11277         * doc/install.texi (Building the Ada compiler): Remove
11278         example.
11279
11280 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11281
11282         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11283
11284 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11285
11286         * gcc.c (process_command): Allow translation of the copyright
11287         symbol but not the rest of the copyright message.
11288         * gcov.c (print_version): Likewise.  Allow translation of the
11289         message about warranty.
11290
11291 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
11292
11293         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11294         predicate.
11295         ("*andsi_clear"): Tweak constraints to not match postincrement.
11296         Adjust the predicate to exclude a volatile memory reference.
11297         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
11298         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11299
11300 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
11301
11302         * move-if-change: Remove.
11303         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11304         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11305         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11306         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11307         (s-gtyp-gen, s-iov): Use the top level move-if-change.
11308         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11309
11310 2004-02-19  James E Wilson  <wilson@specifixinc.com>
11311
11312         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11313         for operand2.  Add condition that requires register_operand operand2
11314         before reload.
11315
11316 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
11317             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11318
11319         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11320         * config/mips/mips.md: Expand comment above unaligned loads and stores.
11321
11322 2004-02-19  Richard Henderson  <rth@redhat.com>
11323
11324         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11325         * tree.c (build0, build1, build2, build3, build4): Split out from...
11326         (build): ... here.  Call them.
11327         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11328
11329         * convert.c (convert_to_integer): Remove extra build argument.
11330         * tree-inline.c (expand_call_inline): Likewise.
11331
11332 2004-02-19  Richard Henderson  <rth@redhat.com>
11333
11334         * c-opts.c (warn_variadic_macros): New.
11335         (c_common_handle_option): Set it.
11336         (sanitize_cpp_opts): Copy it to cpp_opts.
11337         * c.opt (Wvariadic-macros): New.
11338         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11339         * cppinit.c (cpp_create_reader): Initialize it.
11340         * cppmacro.c (parse_params): Check it.
11341
11342 2004-02-19  David Daney <ddaney@avtrex.com>
11343
11344         PR preprocessor/14198
11345         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11346         builtin_assert ("machine=mips")
11347
11348 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11349
11350         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11351         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11352         * config/cris/cris.h: Remove a comment about
11353         DEFAULT_SHORT_ENUMS.
11354         * config/ip2k/ip2k.h: Likewise.
11355         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11356
11357 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11358
11359         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11360         when passing single SFmode quantities in general registers,
11361         put them in the high half.
11362
11363 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11364
11365         * doc/md.texi (Standard Names): Document additional dependency on
11366         fix pattern.
11367
11368         * optabs.c (ftruncify): Remove.
11369         (expand_fix): Manually inline ftruncify above.
11370         (can_fix_p): Add FIXME note.
11371
11372 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11373
11374         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11375         spe_fixuns_truncsfsi2.
11376
11377         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11378         fixuns_truncsfsi2.
11379
11380 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
11381
11382         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11383         * testsuite/gcc.dg/20040219-1.c: New test.
11384
11385 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
11386
11387         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11388         "*subsf3_cconly"): Subtraction is not commutative.
11389
11390 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11391
11392         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11393         (sdbout_symbol): If called before sdbout_init, queue DECL for
11394         later and return.
11395         (sdbout_init): Set sdbout_initialized true, process decls
11396         queued earlier by sdbout_symbol.
11397         (sdbout_finish): Use size_t for index variable.
11398
11399 2004-02-19  Jeff Law  <law@redhat.com>
11400
11401         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11402         for unordered comparison codes.
11403
11404 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
11405
11406         * reload1.c (reload): Correct comment.
11407         (scan_paradoxical_subregs): Remove #if 0 and old comment.
11408         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11409         register variables are not used by reload.
11410
11411 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
11412
11413         PR target/14209
11414         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11415         constraints to not match postincrement.  Adjust the predicate to
11416         exclude a volatile memory reference.
11417
11418 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11419
11420         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11421
11422 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11423
11424         * hooks.c (hook_void_tree_int): Remove.
11425         (hook_void_constcharptr): Likewise.
11426         (hook_int_void_0): Likewise.
11427         * hooks.h: Remove the prototypes for the above three
11428         functions.
11429         * targhooks.c (hook_bool_machine_mode_true): Remove.
11430         * targhooks.h: Remove the prototype for
11431         hook_bool_machine_mode_true.
11432
11433 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11434
11435         * emit-rtl.c (subreg_realpart_p): Remove.
11436         (reorder_insns_with_line_notes): Likewise.
11437         (end_full_sequence): Likewise.
11438         * rtl.h: Remove the prototype for the above functions.
11439
11440 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11441
11442         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11443         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11444         config/iq2000/iq2000.h, config/m32r/m32r.h,
11445         config/pdp11/pdp11.h, config/sparc/sparc.h,
11446         config/xtensa/xtensa.h: Remove commented-out or useless
11447         definitions of CASE_VECTOR_PC_RELATIVE.
11448
11449 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11450
11451         * loop.c (all_sets_invariant_p): Remove.
11452
11453 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11454
11455         PR target/12916
11456         * config/sparc/sparc.h (NPARM_REGS): Delete.
11457         (BASE_RETURN_VALUE_REG): Likewise.
11458         (BASE_OUTGOING_VALUE_REG): Likewise.
11459         (BASE_PASSING_ARG_REG): Likewise.
11460         (BASE_INCOMING_ARG_REG): Likewise.
11461         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11462         TARGET_ARCH64, not TARGET_V9.
11463         (function_arg_slotno): Dispatch based on the mode class.
11464         Handle vector modes like floating-point modes.
11465         (function_arg_record_value_1): Handle vector types like
11466         floating-point types.
11467         (function_arg_record_value_2): Likewise.
11468         Calculate regno after mode transformation.
11469         (function_arg): Handle vector modes like floating-point modes.
11470         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11471         If ARCH64, do not recheck alignment.
11472         (function_arg_pass_by_reference): Reorder the conditions.
11473         (sparc_return_in_memory): Move after function_arg_padding.
11474         Implement calling conventions for vector modes.
11475         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11476         (function_value): Move scope of 'regbase'.
11477         Implement calling conventions for vector modes.
11478         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11479         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11480         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11481         the argument is passed by reference.
11482         (sparc_type_code): Handle vector types.
11483
11484 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
11485
11486         * function.c (assign_parms): When building decl_rtl for
11487         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11488
11489 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
11490
11491         * expr.c (is_aligning_offset): Check if we are aligning the
11492         expressions's address over BIGGEST_ALIGNMENT in bytes, not
11493         in bits.
11494
11495 2003-02-18  Matt Austern  <austern@apple.com>
11496
11497         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11498         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11499         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11500         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11501         spec string.
11502         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
11503
11504 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
11505
11506         * dwarf2out.c (loclabel_num): Move outside #ifdef
11507         DWARF2_DEBUGGING_INFO and mark with GTY(()).
11508         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11509         Mark with GTY(()).
11510         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
11511         Allocate memory with ggc_alloc.  No need to copy anything.
11512         (ia64_hpux_file_end): Update to match.
11513
11514 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11515
11516         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
11517         by default.
11518
11519 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11520
11521         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
11522         ("divmodtisi3"): Likewise.
11523         ("udivmoddi4", "udivmodtidi3"): Likewise.
11524         ("divmodsi4", "divmoddisi3"): Likewise.
11525         ("udivmodsi4", "udivmoddisi3"): Likewise.
11526         ("udivsi3", "umodsi3"): Likewise.
11527
11528 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11529
11530         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
11531         placeholder insn when chunkifying the pool.
11532
11533 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11534
11535         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
11536         generating PIC code.
11537
11538 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11539
11540         * config/h8300/h8300-protos.h: Add a prototype for
11541         h8300_expand_branch.
11542         * config/h8300/h8300.c (h8300_expand_branch): New.
11543         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
11544         bgtu, beq, bne): Call h8300_expand_branch().
11545
11546 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11547
11548         * config/h8300/h8300-protos.h: Add prototypes for
11549         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
11550         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
11551         (h8300_hard_regno_mode_ok): Likewise.
11552         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
11553         h8300_hard_regno_nregs().
11554         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
11555
11556 2004-02-18  Per Bothner  <per@bothner.com>
11557
11558         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
11559         partly reverts my 2003-10-01 change, because we're back to logically
11560         including <command line> inside the main line.
11561         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
11562         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
11563         Fixes PR preprocessor/14103.
11564
11565         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
11566         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
11567         (cpp_push_include):  Don't need to increment pfile's line field.
11568         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
11569
11570         * c-ppoutput.c (print struct):  New first_time field.
11571         (init_pp_output):  Set print.first_time.
11572         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
11573         which is set also for (say) <command line>.  Clear print.first_time.
11574
11575         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
11576         does not match the code, so fix both.
11577         (should_stack_file):  Inline include_pch_p function.
11578         (include_pch_p):  Remove pointless function.
11579
11580         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
11581
11582 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11583
11584         * config/h8300/h8300.md (four define_peephole2's): Use
11585         h8300_regs_ok_for_stm().
11586
11587 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11588
11589         * config/h8300/h8300-protos.h: Update the prototype for
11590         expand_a_rotate().
11591         * config/h8300/h8300.c (expand_a_rotate): Remove the first
11592         argument.
11593         * config/h8300/h8300.md: Update all callers.
11594
11595 2004-02-18  Jan Hubicka  <jh@suse.cz>
11596
11597         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
11598         floats.
11599         (simplify_binary_operation): Deal with logicals on floats.
11600
11601         * i386.md (SSE fabs splitters): Emit new patterns.
11602         (SSE cmov splitters): Likewise.
11603         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
11604         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
11605         subregs.
11606         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
11607         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
11608
11609 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11610
11611         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
11612         by hand.
11613         (output_a_rotate): Tweak a comment.
11614         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
11615         (*rotlhi3_1): Change to rotlhi3_1.
11616         (*rotlsi3_1): Change to rotlsi3_1.
11617
11618 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
11619
11620         PR target/13866
11621         * arm.c (load_multiple_operation): Don't insist that the source reg
11622         of a post-increment component is the same as the destination.
11623         (store_multiple_operation): Likewise.
11624
11625 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11626
11627         * config/h8300/h8300.md: Move movsf patterns into one section
11628         of the file.
11629
11630 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11631
11632         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
11633         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
11634         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
11635         config/mips/linux64.h, config/pa/pa-64.h,
11636         config/rs6000/aix51.h, config/rs6000/aix52.h,
11637         config/rs6000/spe.md, config/sparc/linux.h,
11638         config/sparc/linux64.h: Update copyright.
11639
11640 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11641
11642         * config/h8300/h8300.md: Move push patterns into one
11643         section of the file.
11644
11645 2004-02-18  Mark Mitchell <mark@codesourcery.com>
11646
11647         PR c++/11326
11648         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
11649         fntype.
11650
11651 2004-02-18  Paul Brook  <paul@codesourcery.com>
11652
11653         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
11654
11655 2004-02-18  Paul Brook  <paul@codesourcery.com>
11656
11657         PR debug/12934
11658         * dwarf2out.c (loc_descriptor_from_tree): Handle
11659         EXPR_WITH_FILE_LOCATION.
11660
11661 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11662
11663         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
11664         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
11665         trailing whitespace from instructions.
11666
11667 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
11668
11669         * configure.ac: When generating auto-build.h, pass
11670         --enable-languages to the sub-configure.
11671         Put quotes around ${program_transform_name} when generating
11672         name of as, ld, nm, objdump.
11673         * configure: Regenerate.
11674
11675 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
11676
11677         * Makefile.in (s-check, s-config, s-conditions, s-flags)
11678         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
11679         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
11680         (s-preds, s-iov): Do not depend on move-if-change.
11681
11682 2004-02-17  James E Wilson  <wilson@specifixinc.com>
11683
11684         * caller-save.c (insert_restore): Pass mem through copy_rtx.
11685         (insert_save): Likewise.
11686
11687 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11688
11689         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
11690         warning.
11691
11692 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11693
11694         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
11695         *one_cmplsi2_h8300.
11696         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
11697
11698 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11699
11700         * config/h8300/h8300-protos.h: Update the prototype of
11701         fix_bit_operand().
11702         * config/h8300/h8300.c (fix_bit_operand): Remove the second
11703         argument "what".
11704         * config/h8300/h8300.md: Update all callers.
11705
11706 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11707
11708         * config/h8300/h8300.c (fix_bit_operand): Change the name of
11709         the last argument to "code" from "type".
11710
11711 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11712
11713         * config/h8300/h8300.c: Remove an extern declaration of
11714         rtx_equal_function_value_matters.
11715
11716 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11717
11718         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
11719         by hand.
11720         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
11721         (*iorqi3_1): Change to iorqi3_1.
11722         (*xorqi3_1): Change to xorqi3_1.
11723
11724 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11725
11726         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
11727         typos.
11728
11729 2004-02-17  Jan Hubicka  <jh@suse.cz>
11730
11731         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
11732
11733 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
11734
11735         PR optimization/14119
11736         * combine.c (try_combine): When attemting to fix unrecognized insns,
11737         don't delete SETs marked with REG_EH_REGION notes.
11738
11739 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
11740
11741         * combine.c (simplify_if_then_else): Do not replace
11742         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
11743         modes differ.
11744
11745 2004-02017  Steven Bosscher  <stevenb@suse.de>
11746
11747         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
11748         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
11749         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
11750         * ada/utils.c: Likewise.
11751         * cp/decl.c: Likewise.
11752         * f/com.c: Likewise.
11753         * java/class.c: Likewise.
11754
11755 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11756
11757         * config/h8300/h8300.md: Fix comment typos.
11758
11759 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11760
11761         * config/mips/t-iris6gld: Renamed to ...
11762         * config/mips/t-irix-gld: ... this.
11763         * config.gcc (mips-sgi-irix6*): Reflect this
11764         (mips-sgi-irix5*): Use it with GNU ld.
11765
11766         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
11767         to ...
11768         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
11769         * config/mips/t-irix-gld: Reflect this.
11770         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11771
11772         * config/mips/iris5gld.h: New file.
11773         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
11774         Only use collect2 without gas.
11775
11776         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
11777         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11778         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
11779         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11780
11781         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
11782         * config/mips/iris5.h: ... here.
11783
11784         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
11785         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11786         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
11787
11788         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
11789         using irix_startfile_spec, irix_endfile_spec.
11790
11791 2004-02-16  Gunther Nikl  <gni@gecko.de>
11792
11793         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
11794
11795 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11796
11797         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
11798         insns by hand.
11799
11800 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11801
11802         * cfghooks.c (split_edge): Speed up updating of dominators.
11803
11804 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
11805
11806         PR c++/11326
11807         * c-common.c (flag_abi_version): Remove.
11808         * c-common.h (flag_abi_version): Likewise.
11809         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
11810         * c.opt (fabi-version): Remove.
11811         * calls.c (expand_call): Always pass a function type to
11812         struct_value_rtx.  Use convert_memory_address.
11813         * common.opt (fabi-version): Add it.
11814         * flags.h (flag_abi_version): Likewise.
11815         (abi_version_at_least): New macro.
11816         * opts.c (common_handle_option): Add OPT_fabi_version.
11817         * toplev.c (flag_abi_version): Define it.
11818         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
11819         New function.
11820         (ia64_output_mi_thunk): Use it.
11821         (ia64_struct_value_rtx): Likewise.
11822
11823 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11824
11825         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
11826         Don't generate insns by hand.
11827
11828 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
11829
11830         PR c++/14178
11831         * doc/invoke.texi (fabi-version): The default is 2 now.
11832
11833 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11834
11835         * loop-iv.c: New file.
11836         * Makefile.in (loop-iv.o): New.
11837         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
11838         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
11839         num_loop_branches): New functions.
11840         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
11841         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
11842         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
11843         get_simple_loop_desc, free_simple_loop_desc): Declare.
11844         (simple_loop_desc): New inline function.
11845         (struct rtx_iv, struct niter_desc): New.
11846         * cfgloopmanip.c (loopify): Specify semantics more precisely.
11847         * expr.c (force_operand): Handle subregs of expressions created by
11848         loop unroller.
11849         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
11850         parts of the initialization to toplev.c
11851         * loop-unroll.c (loop_exit_at_end_p): New.
11852         (unroll_and_peel_loops): Call iv_analysis_done.
11853         (decide_peel_once_rolling, decide_peel_completely,
11854         decide_unroll_stupid, decide_unroll_constant_iterations,
11855         decide_unroll_runtime_iterations, decide_peel_simple,
11856         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
11857         unroll_loop_runtime_iterations): Use new simple loop analysis.
11858         * loop-unswitch.c (compare_and_jump_seq): New.
11859         (may_unswitch_on_p): Renamed to ...
11860         (may_unswitch_on): Use new iv analysis.
11861         (reversed_condition): Export.
11862         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
11863         * predict.c (estimate_probability): Use new simple loop analysis.
11864         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
11865         canon_condition, simplify_using_condition): Declare.
11866         * stor-layout.c (get_mode_bounds): New.
11867         * toplev.c (rest_of_handle_loop2): Some parts of
11868         initialization/finalization moved here from loop-init.c.
11869
11870 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11871
11872         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
11873         pointer.
11874         (CALL_USED_REGISTERS): Likewise.
11875         (REG_ALLOC_ORDER): Likewise.
11876         (REG_CLASS) <GENERAL_REGS>: Likewise.
11877
11878 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
11879
11880         * doc/md.texi (Insn Canonicalizations): Document left-chaining
11881         in associative operators.
11882         * rtlanal.c (commutative_operand_precedence): Create some new
11883         variables.  Prefer a commutative operand on the left, then
11884         binary expressions, then NEG and NOT.
11885
11886 2004-02-16  Matthias Klose  <doko@debian.org>
11887
11888         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
11889         in terms of SHLIB_SOVERSION.
11890         * config/m68k/t-slibgcc-elf-ver: New file.
11891         * config/pa/t-slibgcc-elf-ver: New file.
11892         * config.gcc (m68k-linux, parisc-linux): Use them when not
11893         sjlj exceptions are not configured.
11894
11895 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
11896
11897         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
11898
11899 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
11900
11901         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
11902
11903 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
11904
11905         * doc/sourcebuild.texi: Mention backends.html.
11906
11907 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
11908
11909         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
11910         line-map.c, line-map.h, var-tracking.c: Fix comment
11911         formatting.
11912
11913 2004-02-16  Richard Henderson  <rth@redhat.com>
11914
11915         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
11916
11917         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
11918
11919 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11920
11921         * config/h8300/h8300.md: Remove unnecessary parallels from
11922         all define_insn and define_split patterns.
11923
11924 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11925
11926         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
11927         "clobber").
11928
11929 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
11930
11931         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
11932         '%#'.
11933
11934 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11935
11936         * config/ia64/ia64.c, config/mips/mips.c,
11937         config/mmix/mmix-modes.def: Fix comment typos.
11938
11939 2004-02-15  Roger Sayle  <roger@eyesopen.com>
11940
11941         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
11942         (get_directive_line): Remove unused function prototype.
11943
11944 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11945
11946         * tree-inline.c (copy_body_r): Do not replace ret_label.
11947
11948 2004-02-14  Jan Hubicka  <jh@suse.cz>
11949
11950         * i386.c (x86_four_jump_limit): New variable.
11951         (k8_avoid_jump_misspredicts): Rename to ...
11952         (ix86_avoid_jump_misspredicts): .. this one.
11953         (ix86_pad_returns): Break out from ...
11954         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
11955         to.
11956         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
11957
11958 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11959
11960         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
11961         PARALLEL is NULL.
11962
11963 2004-02-14  Per Bothner  <per@bothner.com>
11964
11965         * fix-header.c (line_table):  Move local variable in main to global.
11966         * scan.h (line_table):  Use it.
11967         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
11968         line (recently renamed to src_loc) before calling recognized_function.
11969
11970 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
11971
11972         * Makefile.in: Fix comment typos.
11973
11974 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
11975
11976         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
11977         for start_value when it is directly moved into reg, and factorize
11978         the retrieval of GET_MODE (reg).
11979
11980 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11981
11982         * config/mips/mips-protos.h (mips_load_got_page): Delete.
11983         (mips_load_got_global): Delete.
11984         (mips_gotoff_page): Declare.
11985         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
11986         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
11987         UNSPEC_LOAD_GOT pattern rather than a MEM.
11988         (*load_got[sd]i): New patterns.
11989         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
11990         (mips_load_got_page, mips_load_got_global): Delete.
11991         (mips_gotoff_page): New function.
11992         (override_options): Don't initialize mips_got_alias_set.
11993
11994 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11995
11996         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
11997         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
11998         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
11999         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12000         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12001         * config/mips/mips.c: Fix some overly-long lines.
12002         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12003         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12004
12005 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12006
12007         * configure.ac: Search for as, ld below libexec/gcc.
12008         * configure: Regenerate.
12009
12010 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12011
12012         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12013         __builtin_arm_setwcx ().
12014         * config/arm/arm.c (arm_expand_builtin): Generate operands
12015         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12016
12017 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12018
12019         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12020         and "wmuluh" to "wmulsm" and "wmulum", respectively.
12021         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12022         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12023         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12024         (_mm_mulhi_pu16): Likewise.
12025
12026 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
12027
12028         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
12029         DECL_NAME != 0 before dereferencing.
12030
12031 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
12032
12033         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
12034         (s390_output_addr_const_extra): Declare.
12035         (s390_output_pool_entry): Remove FILE * argument.
12036         * config/s390/s390.c (s390_output_symbolic_const): Remove.
12037         (s390_output_addr_const_extra): New function.
12038         (print_operand_address): Call output_addr_const instead of
12039         s390_output_symbolic_const.
12040         (print_operand): Likewise.
12041         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
12042         Remove FILE * argument.
12043         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12044         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12045         call.
12046
12047 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12048
12049         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12050         (struct edge, struct vertex, struct graph): New.
12051         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12052         free_graph): New functions.
12053
12054 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12055
12056         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12057         Use ".set macro" to avoid warnings about multi-instruction
12058         macros, since they're intentional.
12059
12060 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12061
12062         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12063         comment about STANDARD_EXEC_PREFIX.
12064
12065         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12066         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12067         for installing .1 manpages.  Add rules for installing cpp
12068         and gcov manpages under their installed names.
12069
12070 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12071
12072         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12073         host, but try LD_FOR_TARGET first.
12074         * configure: Rebuilt.
12075
12076 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12077
12078         * dbxout.c: Move declaration of dbxout_type_decl outside
12079         #ifdef DBX_DEBUGGING_INFO.
12080         * c-parse.in: Don't give the asmdef production a type.
12081
12082 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12083
12084         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12085         (debug_nothing_tree_int): Prototype.
12086         (dwarf_debug_hooks): Delete, unused.
12087         * debug.c (do_nothing_debug_hooks): Update.
12088         (debug_nothing_tree_int): New function.
12089         * langhooks.h (struct lang_hooks_for_decls):
12090         Remove builtin_type_decls field.
12091         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12092         (LANG_HOOKS_DECLS): Update.
12093         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12094         Use debug_hooks->type_decl.
12095         * dbxout.c (preinit_symbols): New static.
12096         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12097         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12098         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12099         for symbols to output.
12100         (dbxout_type_decl): New function.
12101         (dbxout_symbol): If called before dbxout_init has run, queue
12102         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12103         to TYPE_DECLs before emitting them.
12104         * xcoffout.c (assign_type_number): Delete.
12105         (xcoff_type_numbers): New static table.
12106         (xcoff_assign_fundamental_type_number): New function.
12107         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12108         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12109         * sdbout.c: Include varray.h.
12110         (deferred_global_decls): New static.
12111         (sdb_debug_hooks): Update.
12112         (sdbout_global_decl): If we can't emit something right now,
12113         remember it in deferred_global_decls.
12114         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12115         (sdbout_init): Initialize deferred_global_decls.
12116         * Makefile.in: Update dependencies of sdbout.o.
12117         * dwarf2out.c (dwarf2out_type_decl): New function.
12118         (dwarf2_debug_hooks): Update.
12119         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12120         * c-decl.c (getdecls): Just return 0.
12121         (check_for_loop_decls): Don't use getdecls.
12122         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12123         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12124
12125 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12126
12127         * config/s390/s390.c (s390_sched_reorder2): Remove.
12128         (TARGET_SCHED_REORDER2): Do not redefine.
12129
12130 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12131
12132         * c-parse.in (maybe_type_qual): Delete.
12133         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12134         (asm_argument): New grammar rules.
12135         (extdef_1): Use asmdef.
12136         (maybeasm): Move down with other asm rules; use simple_asm_expr.
12137         (xexpr): Move up with other expression rules.
12138         (stmt): Use asm_stmt.
12139
12140         * c-typeck.c (build_asm_expr): New function - body mostly
12141         pulled from build_asm_stmt.
12142         (build_asm_stmt): Just handle tacking on the volatile qualifier.
12143         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12144
12145 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12146
12147         PR bootstrap/13617
12148         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12149         (mips_declare_object): Make variadic.
12150         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12151         mips_output_aligned_decl_common.
12152         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12153         (mips_declare_object): Make variadic.
12154
12155 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12156
12157         * function.c (update_epilogue_consts): Teach about binary operations.
12158
12159         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12160         previous MEM_VOLATILE in REF.
12161         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12162         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12163
12164 2004-02-12  Gunther Nikl  <gni@gecko.de>
12165
12166         * config.gcc: Restore support for m68k-openbsd.
12167
12168 2004-02-12  Jan Hubicka  <jh@suse.cz>
12169
12170         * tree-optimize.c (tree_rest_of_compilation): Do not release
12171         DECL_ARGUMENTS.
12172
12173 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12174
12175         * doc/install.texi: Fix the spelling of "explicitly".
12176
12177 2004-02-11  Eric Christopher  <echristo@redhat.com>
12178
12179         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12180         duplicate argument structure of cpp_interpret_string.
12181         * cpphash.h: Move prototype...
12182         * cpplib.h: Here.
12183         * cpplib.c: Fix calls to match new function signature.
12184
12185 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12186
12187         PR c/456
12188         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12189         constant expressions at all outside C99 mode if pedantic.
12190
12191 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12192
12193         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12194         (log10_optab, log2_optab): Define corresponding macros.
12195         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12196         * genopinit.c (optabs): Implement log10_optab and log2_optab
12197         using log10?f2 and log2?f2 patterns.
12198         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12199         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12200         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12201         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12202
12203         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12204         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12205         log2, log2f and log2l built-ins as inline x87 intrinsics.
12206
12207 2004-02-11  Richard Henderson  <rth@redhat.com>
12208
12209         PR target/1532
12210         * flow.c (insn_dead_p): A clobber of a dead hard register is a
12211         dead insn after reload.
12212
12213 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12214
12215         * tree.h (frame_base_decl): Add GTY marker.
12216         * var-tracking.c (frame_base_decl): Likewise.
12217
12218 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
12219
12220         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12221         incorrect, hunk.
12222         (add_location_or_const_value_attribute): Use text_section_label,
12223         not TEXT_SECTION_NAME.
12224
12225 2004-02-11  Per Bothner  <per@bothner.com>
12226
12227         Represent column numbers using line-map's source_location.
12228         The "next available source_location" is now managed internally by
12229         line-maps.c rather than by clients.
12230         * line-map.h (struct line_map):  New field column_bits.
12231         <from_line>:  Rename field to start_location.
12232         (struct line_maps):  New fields highest_location and max_column_hint.
12233         (linemap_check_files_exited):  New declaration.
12234         (linemap_line_start):  New declaration.
12235         (linemap_add):  Remove from_line parameter; use highest_location field.
12236         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
12237         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
12238         (CURRENT_LINE_MAP):  Remove macro.
12239         (linemap_position_for_column):  New inline function.
12240         * line-map.c (linemap_init):  Clear new fields.
12241         (linemap_check_files_exited):  New function, extracted from ...
12242         (linemap_free):  Use linemap_check_files_exited.
12243         (linemap_add):  Remove from_line parameter.  Various updates.
12244         (linemap_line_start):  New function.
12245         (linemap_lookeup):  Update for new field names.
12246         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
12247         linemap_position_for_column may unpredictably change the current map,
12248         it is cleaner and simpler for us to not cache it in cpp_reader.
12249         (struct cpp_buffer):  New sysp field.
12250         Changed warned_cplusplus_comments and from_stage3 to bitfields.
12251         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
12252         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
12253         current map using linemap_lookup.
12254         (do_linemarker):  Also set buffer's sysp field.
12255         (destringize_and_run):  No longer need to decrement current line.
12256         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
12257         (search_path_head, open_file_failed):  Use buffer's sysp.
12258         (cpp_make_system_header):  Get current map using linemap_lookup.
12259         Also set buffer's sysp flag.
12260         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
12261         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
12262         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
12263         (struct cpp_reader):  ... and adding saved_line_base field.
12264         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12265         Update accordingly.  Don't adjust line.
12266         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
12267         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
12268         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
12269         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
12270         * cpplex.c (_cpp_lex_direct):  Likewise.
12271         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
12272         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
12273         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
12274         Remove col field as it is now subsumed by src_loc.
12275         * cpperror.c:  Update various field, parameter, and macro names.
12276         (print_location):  If col==0, try SOURCE_COLUMN of line.
12277         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
12278         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
12279         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12280         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
12281         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
12282         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
12283         (_cpp_lex_direct):  Use linemap_position_for_column.
12284         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
12285         parameter.  Instead get it from the line_table global.  Adjust callers.
12286         (print):  Remove map field.  Replace line field to src_line.
12287         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
12288         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
12289         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
12290         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12291         * cpptrad.c (copy_comment):  Rename variable.
12292         * c-lex.c (map):  Remove static variable, for same reason we removed
12293         cpp_reader's map field.
12294         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
12295         to call linemap_lookup.
12296         (cb_line_change):  Token's line field replaced by src_loc.
12297         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
12298         Don't save new_map.
12299
12300         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
12301         source_location.
12302
12303 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12304
12305         * config/rs6000/altivec.md (*movv4si_internal): At least one
12306         operand must be register_operand.
12307         (*movv8hi_internal1): Likewise.
12308         (*movv16qi_internal1): Likewise.
12309         (*movv4sf_internal1): Likewise.
12310
12311 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
12312
12313         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12314         operand.
12315         (movv4hi_internal): Same.
12316         (movv2sf_internal): Same.
12317         (movv1di_internal): Same.
12318
12319 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
12320
12321         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
12322         TARGET_OLDABI consistently.
12323         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12324         mips_va_arg,override_options,compute_frame_size,
12325         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12326         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
12327         and TARGET_OLDABI consistently.
12328         * config/mips/mips.md (exception_receiver): Likewise.
12329         * config/mips/linux64.h: Likewise.
12330
12331 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12332
12333         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12334         Set AltiVec ABI and vrsave as default for ppc64 linux.
12335         (init_cumulative_args): Post error, if try to return
12336         value in AltiVec register without enable AltiVec.
12337         (function_arg_advance): Ditto for passing arguments.
12338
12339 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
12340
12341         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12342         a label before updating its usage count.
12343
12344 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
12345
12346         * doc/install.texi: Remove extra cd.
12347
12348 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
12349
12350         * c-common.c (vector_size_helper): Remove; call
12351         reconstruct_complex_type() instead.
12352         * tree.c (reconstruct_complex_type): New function
12353         (formerly vector_size_helper() in c-common.c).
12354         (make_vector): Make externally visible.
12355         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12356
12357 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12358
12359         * config/h8300/h8300-protos.h: Add a prototype for
12360         h8300_regs_ok_for_stm.
12361         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12362         * config/h8300/h8300.md (stm_h8300s_2_advanced,
12363         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12364         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12365         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12366         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12367         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12368         ldm_h8300s_4_normal, ldm_h8300s_4): Use
12369         h8300_regs_ok_for_stm().
12370
12371 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12372
12373         PR c/14088
12374         * real.c (real_from_string): Look for 'X' as well as 'x' in
12375         hexfloat strings.
12376
12377 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12378
12379         * config/h8300/h8300.md: Remove an incorrect comment about
12380         peephole2.  Add comments.
12381
12382 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
12383
12384         PR/14058
12385         * emit-rtl.c (set_decl_incoming_rtl): New.
12386         * tree.h (set_decl_incoming_rtl): New.
12387         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12388         DECL_INCOMING_RTL.
12389         * ada/misc.c (adjust_decl_rtl): Likewise.
12390
12391 2004-02-10  Per Bothner  <per@bothner.com>
12392
12393         * c-opts.c (c_common_post_options):   Don't emit working directory
12394         in cpp output if -P was specified.
12395
12396 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12397
12398         PR c/14092
12399         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12400         negate_expr back to the original type.
12401
12402 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
12403
12404         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12405         bump retaddr here.
12406
12407 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12408
12409         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12410         gen_lowpart_SUBREG): Move under the file in which they
12411         are actually declared.
12412
12413 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
12414
12415         * doc/sourcebuild.texi: Add libada documentation.
12416
12417         * doc/install.texi: Update documentation on Ada build, now
12418         that the GNAT lib and tools are built automatically.
12419
12420 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
12421
12422         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12423         && TARGET_IRIX.
12424
12425 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
12426
12427         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12428         boundaries outside build_component_ref() call (a macro in ObjC++).
12429
12430 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
12431
12432         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12433         (init_cumulative_args): Likewise.
12434         (a7_overlap_mentioned_p): Delete prototype.
12435         * config/xtensa/xtensa.c (struct machine_function): Replace
12436         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12437         Add set_frame_ptr_insn field.
12438         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12439         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12440         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
12441         at the function entry and replace the operand with the pseudo.
12442         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
12443         argument and record this flag in CUMULATIVE_ARGS.
12444         (function_arg): Remove result_mode and special-case code to handle
12445         arguments in a7.  Instead, set need_a7_copy flag when there is an
12446         incoming argument in a7.
12447         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12448         and use the value recorded in cfun->machine->set_frame_ptr_insn.
12449         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
12450         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
12451         special-case code.
12452         (a7_overlap_mentioned_p): Delete.
12453         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12454         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12455         arguments to init_cumulative_args and pass "incoming" flag instead.
12456         (BLOCK_REG_PADDING): Delete.
12457         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12458         checks for reload_in_progress and reload_completed.  Update calls to
12459         xtensa_copy_incoming_a7.
12460         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
12461         to call xtensa_copy_incoming_a7.
12462
12463 2004-02-09  DJ Delorie  <dj@redhat.com>
12464
12465         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12466         longer modify standard_exec_prefix, standard_bindir_prefix, or
12467         standard_startfile_prefix.
12468
12469 2004-02-09  James E Wilson  <wilson@specifixinc.com>
12470
12471         PR c++/11295
12472         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12473         to expand_expr_real call, and pass in alt_rtl as last argument.
12474
12475         PR libstdc++/5625
12476         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12477         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12478         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12479         * except.c (expand_builtin_extend_pointer): New.
12480         * except.h (expand_builtin_extend_pointer): Declare.
12481
12482 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
12483
12484         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12485         unaligned loads and stores.
12486
12487 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12488
12489         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12490         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12491
12492         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12493         * config/mips/iris5.h: ... here.
12494         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12495
12496         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12497         * config/mips/iris5.h: ... here.
12498
12499 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12500
12501         * configure.ac: Remove default executable files before AC_PROG_CC.
12502         * configure: Regenerate.
12503
12504 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
12505
12506         PR target/13721
12507         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12508         print a operand other than a register.
12509
12510 2004-02-09  Roger Sayle  <roger@eyesopen.com>
12511
12512         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
12513         tree code rather than call fold_convert, which doesn't specify a
12514         default floating point to integer conversion.
12515
12516 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
12517
12518         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
12519         code to support SGS assembler.  Reformat adjacent code where possible.
12520         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
12521         definition.
12522         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
12523         for '%#'.
12524         * config/m68k/linux.h, config/m68k/m68k.c,
12525         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
12526         macros and asm_printf() format strings.
12527         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
12528         * config/m68k/linux.h: Update copyright.
12529         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
12530
12531 2004-02-08  Andreas Schwab  <schwab@suse.de>
12532             Bernardo Innocenti  <bernie@develer.com>
12533
12534         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
12535         REGISTER_PREFIX.
12536         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
12537         frame pointer register, overridable by OS targets.
12538         * (M68K_REGNAME): Macro to obtain register name for asm output,
12539         eventually replacing %a6 with M68K_FP_REG_NAME.
12540         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
12541         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
12542         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
12543         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
12544         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
12545
12546 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12547
12548         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
12549         hook_rtx_tree_int_null.
12550         * targhooks.c (default_struct_value_rtx): Remove.
12551         * targhooks.h: Remove the prototype for
12552         default_struct_value_rtx.
12553         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12554         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
12555         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12556         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
12557         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
12558         config/rs6000/rs6000.c, config/s390/s390.c,
12559         config/stormy16/stormy16.c, config/v850/v850.c,
12560         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
12561         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
12562
12563 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
12564
12565         * README.Portability: Change "ISO C89" to "ISO C90".
12566         * c-parse.in (primary, initelt): Likewise.
12567
12568 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
12569
12570         * real.c (encode_ibm_extended): Normalize the input value before
12571         converting it to a double.  Handle the case where a normal value
12572         rounds to infinity.
12573
12574 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12575
12576         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
12577         warning.
12578         * cse.c (preferrable): Change to preferable. Update all of its
12579         callers.
12580         * genautomata.c (ainsn): Change
12581         first_ainsn_with_given_equialence_num to
12582         first_ainsn_with_given_equivalence_num.  Update all of its
12583         references.
12584
12585 2004-02-08  Jan Hubicka  <jh@suse.cz>
12586
12587         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
12588
12589 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
12590
12591         * function.c (assign_parms): Fix formatting.
12592
12593 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12594
12595         * default.h (PROMOTE_PROTOTYPES): Remove.
12596         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
12597         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
12598         EXPAND_BUILTIN_SAVEREGS): Poison.
12599         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
12600         hook_bool_tree_false.
12601         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12602         * target.h: Replace SETUP_INCOMING_VARARGS with
12603         targetm.calls.setup_incoming_varargs().
12604         * targhooks.c (default_promote_function_return): Remove.
12605         (default_promote_prototypes): Likewise.
12606         (default_struct_value_rtx): Always abort().
12607         (default_expand_builtin_saveregs): Always print an error
12608         message.
12609         (default_setup_incoming_varargs): Do nothing.
12610         (default_pretend_outgoing_varargs_named): Don't depend on
12611         SETUP_INCOMING_VARARGS.
12612         * targhooks.h: Remove the prototype for
12613         default_promote_function_return and
12614         default_promote_prototypes.
12615
12616 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12617
12618         * system.h (SHARED_SECTION_ASM_OP): Poison.
12619         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
12620         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
12621
12622 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12623
12624         Bug 13856
12625         * c-decl.c (diagnose_mismatched_decls): Only give special
12626         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
12627         is also true.
12628         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
12629         DECL_FUNCTION_CODE when defining a built-in function.
12630         Don't update DECL_ESTIMATED_INSNS.
12631         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
12632         FUNCTION_DECLs.
12633         * tree.h: Delete DECL_ESTIMATED_INSNS.
12634         * tree-inline.c (struct inline_data): Delete inlined_insns field.
12635         (expand_call_inline, optimize_inline_calls): Don't update
12636         DECL_ESTIMATED_INSNS nor inlined_insns.
12637         * cgraphunit.c (cgraph_analyze_function): Don't update
12638         DECL_ESTIMATED_INSNS.
12639
12640 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12641
12642         * c-common.c (shadow_warning): Delete.
12643         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
12644         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
12645         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
12646         * c-parse.in (free_parser_stacks): Delete.
12647
12648 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
12649
12650         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
12651         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
12652         Use the top level mkinstalldirs, not the one in the gcc subdir.
12653         * mkinstalldirs: Remove (from the gcc subdir).
12654
12655 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12656
12657         PR middle-end/13696
12658         * fold-const.c (fold_convert): New function to provide type
12659         conversion to the middle-end without using convert.
12660         (negate_expr, associate_trees, size_diffop, omit_one_operand,
12661         operand_equal_for_comparison_p, pedantic_omit_one_operand,
12662         invert_truthvalue, optimize_bit_field_compare, range_binop,
12663         decode_field_reference, make_range, build_range_check, unextend,
12664         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
12665         fold_binary_op_with_conditional_arg, fold_inf_compare,
12666         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
12667         convert with calls to fold_convert.
12668
12669 2004-02-07  Jan Hubicka  <jh@suse.cz>
12670
12671         * genrecog.c (find_operand): add extra argument stop.
12672         (validate_pattern): Verify that mach_dup is duplicating operand
12673         defined lexically earlier.
12674
12675 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12676
12677         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
12678         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12679         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
12680         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
12681         config/ia64/ia64.h, config/ip2k/ip2k.h,
12682         config/iq2000/iq2000.h, config/mips/iris5.h,
12683         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
12684         config/rs6000/aix51.h, config/rs6000/aix52.h,
12685         config/rs6000/darwin.h, config/rs6000/rs6000.h,
12686         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
12687         config/sparc/linux.h, config/sparc/linux64.h,
12688         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
12689         config/xtensa/xtensa.h: Remove the definitions of
12690         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
12691         MAX_WCHAR_TYPE_SIZE.
12692         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12693         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
12694
12695 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
12696
12697         PR bootstrap/13990
12698         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
12699         gen_rtx_NE.
12700
12701 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
12702
12703         * var-tracking.c (vt_add_function_parameters): Surround checkings by
12704         #ifdef ENABLE_CHECKING and #endif.
12705
12706 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12707
12708         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
12709         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
12710         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
12711         integer types and floating point with unsafe_math_optimizations.
12712         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
12713         Optimize A - B as A + (-B), if B is easily negated.
12714
12715 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12716
12717         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
12718         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
12719         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
12720         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
12721         Update copyright.
12722
12723 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12724
12725         * c-ppoutput.c, var-tracking.c: Fix comment typos.
12726
12727 2004-02-06  James E Wilson  <wilson@specifixinc.com>
12728
12729         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
12730         glibc 2.3 or better.
12731
12732 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12733
12734         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
12735         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
12736
12737 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
12738
12739         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
12740         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
12741         (SHLIB_MKMAP_OPTS): Delete.
12742         (TARGET_LIBGCC2_CFLAGS): Add -specs.
12743         (bispecs): Add rule.
12744         * config/rs6000/libgcc-ppc64.ver: New file.
12745         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
12746         (__floatdidf, __floatdisf): Optimize multiply.
12747         (__fixunstfdi): New function.
12748         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
12749         real and imag parts larger than one register.
12750         (function_arg): Correct type of reg used when fp arg split partially
12751         to stack.
12752         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
12753         and __MACH__ or __powerpc64__.
12754
12755 2004-02-06  Roger Sayle  <roger@eyesopen.com>
12756             Ulrich Weigand  <uweigand@de.ibm.com>
12757
12758         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
12759         of gen_highpart or gen_lowpart when the floating point format is
12760         wider than the result mode.
12761
12762 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
12763
12764         * dwarf2out.c (loclabel_num): Move into #ifdef
12765         DWARF2_DEBUGGING_INFO.
12766
12767 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
12768
12769         * objc/objc-act.c (build_super_template) the 'class' field of
12770         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
12771         (get_super_receiver): Likewise.
12772
12773 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12774
12775         * reload1.c (check_eliminable_occurrences): Optimize the reset
12776         of can_eliminate.
12777         (eliminate_regs_in_insn): Likewise.
12778
12779 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
12780             Josef Zlomek  <zlomekj@suse.cz>
12781
12782         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
12783         at the beginning of function, call dwarf2out_var_location for
12784         NOTE_INSN_VAR_LOCATION note.
12785         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
12786         decl_loc_table): New.
12787         (lookup_decl_loc): New function.
12788         (add_var_loc_to_decl): New function.
12789         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
12790         only if can_use_fbreg.
12791         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
12792         functions.
12793         (loc_descriptor): Likewise. Process VAR_LOCATION.
12794         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
12795         (loc_descriptor_from_tree): Call mem_loc_descriptor with
12796         can_use_fbreg == true.
12797         (add_location_or_const_value_attribute): Added parameter enum
12798         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
12799         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
12800         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
12801         with attr == DW_AT_location.
12802         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
12803         if frame_base_decl is defined and has a location list.
12804         (gen_variable_die): Call add_location_or_const_value_attribute with
12805         attr == DW_AT_location.
12806         (dwarf2out_var_location): New function.
12807         (dwarf2out_begin_function): New function.
12808         (dwarf2out_init): Create decl_loc_table.
12809
12810 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12811
12812         * loop.c (force_movables): Transitively increase the priorities of
12813         all insns forces by an insn, not just the first one.
12814
12815 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
12816             Daniel Berlin <dberlin@dberlin.org>
12817
12818         Josef Zlomek  <zlomekj@suse.cz>
12819         * Makefile.in (var-tracking.o): New.
12820         * common.opt (fvar-tracking): New.
12821         * flags.h (flag_var_tracking): New.
12822         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
12823         * opts.c (common_handle_option): Add OPT_fvar_tracking.
12824         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
12825         * rtl.c (note_insn_name): Likewise.
12826         * rtl.def (VAR_LOCATION): New.
12827         * rtl.h (NOTE_VAR_LOCATION): New.
12828         (NOTE_VAR_LOCATION_DECL): New.
12829         (NOTE_VAR_LOCATION_LOC): New.
12830         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
12831         (variable_tracking_main): New exported function.
12832         * timevar.def (TV_VAR_TRACKING): New.
12833         * toplev.c (enum dump_file_index): Added DFI_vartrack.
12834         (dump_file): "vartrack" was added (-dV).
12835         (flag_var_tracking): New.
12836         (f_options): "var-tracking" was added.
12837         (rest_of_handle_variable_tracking): New function.
12838         (rest_of_compilation): Run variable tracking.
12839         (process_options): If user has not specified flag_var_tracking set it
12840         according to optimize, debug_info_level and debug_hooks.
12841         * tree.h (frame_base_decl): New.
12842         * var-tracking.c: New file.
12843         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
12844         (ia64_override_options): Set flags to run variable tracking in machine
12845         dependent reorg instead of toplev.c.
12846         (ia64_reorg): Run variable tracking if wanted.
12847         * doc/invoke.texi: Mention variable tracking in -dV,
12848         add and -fvar-tracking.
12849         * doc/passes.texi: Added variable tracking pass.
12850
12851         Daniel Berlin <dberlin@dberlin.org>
12852         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
12853         * dbxout.c (dbx_debug_hooks): Likewise.
12854         (xcoff_debug): Likewise.
12855         * debug.c (do_nothing_debug_hooks): Likewise.
12856         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
12857         * dwarfout.c (dwarf_debug_hooks): Likewise.
12858         * sdbout.c (sdb_debug_hooks): Likewise.
12859         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12860         * final.c (final_scan_insn): Call var_location debug hook for each
12861         NOTE_INSN_VAR_LOCATION.
12862
12863 2004-02-06  Jan Hubicka  <jh@suse.cz>
12864
12865         * flow.c (update_life_info): Allocate reg_deaths when called from
12866         scheudler.
12867         (attempt_auto_inc):  Update life ranges accordingly.
12868
12869 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12870
12871         PR debug/11816
12872         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
12873
12874 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12875
12876         * cfganal.c (flow_call_edges_add): Never split a libcall block.
12877
12878 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
12879
12880         * dwarf2out.c (output_loc_list): Don't use deltas if we have
12881         a separate line info table in use.
12882         Use the correct size for terminators.
12883         (output_die): Use offset, not delta.
12884
12885 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
12886
12887         * doc/invoke.texi: Remove the pni option from -mfpmath=.
12888
12889 2004-02-06  Jan Hubicka  <jh@suse.cz>
12890
12891         * recog.c (split_all_insns): Do not update reg info.
12892         * regrename.c (regrename_optimize): Likewise.
12893         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
12894         * flow.c (struct propagate_block_info): Add insn_num field.
12895         (reg_deaths): New array.
12896         (life_analysis): Free reg_deaths info.
12897         (allocate_reg_life_data): Allocate reg_deaths array.
12898         (propagate_one_insn): Use new array.
12899         (init_propagate_block): Initialize it.
12900         (free_propagate_block_info): Finish compuation of
12901         REG_LIVE_LENGTH
12902         (attempt_auto_inc): Sanity check that REG_INFO is not
12903         computed at same time.
12904         (mark_used_regs): Update new array.
12905
12906         * reg-stack.c (subst_stack_regs): Unshare clobbers before
12907         substitution.
12908
12909 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12910
12911         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
12912         *extendqisi2_short_displ.
12913
12914 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
12915
12916         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
12917         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
12918         (emit_library_call_value_1): Likewise pass nargs.
12919         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
12920         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
12921         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
12922         parameter instead of scanning TYPE_ARGS_TYPES to count args.
12923         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
12924         prototype.
12925         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
12926         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
12927         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
12928         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
12929         INIT_CUMULATIVE_ARGS.
12930         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
12931         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
12932         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
12933         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
12934         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12935         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
12936         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
12937         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
12938         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
12939         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
12940         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
12941         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
12942
12943 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12944
12945         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
12946         possible.
12947
12948 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12949
12950         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
12951         note containing (plus (reg) (const_int)), where reg is an
12952         eliminable reg, then perform the register elimination without
12953         depending on eliminate_regs().
12954
12955 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12956
12957         * config/arc/arc.c (arc_return_in_memory): Check the return
12958         value of int_size_in_bytes against -1.  Don't check
12959         TREE_ADDRESSABLE.
12960         * config/avr/avr.c (avr_return_in_memory): Check the return
12961         value of int_size_in_bytes against -1.
12962         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
12963         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
12964         Likewise.
12965         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
12966         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
12967         Likewise.
12968
12969 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12970
12971         * config/frv/frv-protos.h: Remove the prototype for
12972         frv_setup_incoming_varargs.
12973         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
12974         (frv_setup_incoming_varargs): Make it static.
12975         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
12976
12977 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12978
12979         * config/fr30/fr30-protos.h: Remove the prototype for
12980         fr30_setup_incoming_varargs.
12981         Update the prototypes for fr30_num_arg_regs and
12982         fr30_function_arg_partial_nregs.
12983         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
12984         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12985         (fr30_setup_incoming_varargs): Make it static.
12986         Add argument second_time.  Don't do anything when second_time
12987         is nonzero.
12988         (fr30_num_arg_regs): Change the type of the first argument to
12989         enum machine_mode.
12990         (fr30_function_arg_partial_nregs): Change the type of the
12991         second argument to enum machine_mode.
12992         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
12993         (SETUP_INCOMING_VARARGS): Remove.
12994
12995 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12996
12997         * config/arc/arc-protos.h: Remove the prototype for
12998         arc_setup_incoming_varargs.
12999         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13000         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13001         (arc_setup_incoming_varargs): Make it static.
13002         (arc_external_libcall): Likewise.
13003         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13004         Remove the commented-out definition of
13005         ASM_OUTPUT_EXTERNAL_LIBCALL.
13006
13007 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13008
13009         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13010         to $$(slibdir) in the installation commands.
13011
13012 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13013
13014         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13015         with inner_regno, not regno.
13016         * rtlanal.c (refers_to_regno_p): Same.
13017
13018 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13019
13020         * config.gcc: Remove i370 support.
13021
13022 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13023
13024         * doc/install.texi:  Update automake and autoconf version
13025         requirements.  Note where to find gcj automake version.
13026
13027 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13028
13029         * Makefile.in (generate-manpages): Move dependencies to ...
13030         (man): here.
13031         * doc/makefile.texi: Document new targets.
13032         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
13033
13034 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13035
13036         PR/13485
13037         Makefile.in (srcextra):  Add a level of indirection to ...
13038         (gcc.srcextra): ... here.
13039         (po-generated): Delete.
13040         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
13041         options.c.
13042         (start.encap): Remove superfluous lang.srcextra dependency.
13043         objc/Make-lang.in (po-generated):  Delete.
13044
13045 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13046
13047         * config/ia64/ia64.c (REG_GP): Remove.
13048
13049 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13050
13051         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13052
13053 2004-02-05  Devang Patel  <dpatel@apple.com>
13054
13055         * dwarf2out.c (force_type_die): Look up input type itself
13056         instead of root_type() of type.
13057
13058 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13059
13060         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13061         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13062         pre-reload splitters are transformed to post-reload
13063         define_insn_and_split patterns.
13064         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13065
13066 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13067
13068         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13069         TARGET_PROMOTE_PROTOTYPES.
13070
13071 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13072
13073         PR middle-end/13750
13074         Revert:
13075         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13076         PR pch/13361
13077         * c-typeck.c (constructor_asmspec): Delete.
13078         (struct initializer_stack): Delete field 'asmspec'.
13079         (start_init): Delete saving of asmspec.
13080         (finish_init): Don't update constructor_asmspec.
13081         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13082         * stmt.c (expand_asm): Duplicate strings from tree.
13083         (expand_asm_operands): Likewise.
13084         * tree.c (tree_size): Update computation of size of STRING_CST.
13085         (make_node): Don't make STRING_CST nodes.
13086         (build_string): Allocate string with tree node.
13087         * tree.def (STRING_CST): Update comment.
13088         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13089         (tree_string): Place contents of string in tree node.
13090         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13091         from tree.
13092
13093 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13094
13095         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13096         msgid.
13097
13098 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13099
13100         * config/rs6000/altivec.md (*movv4si_internal): At least one
13101         operand must be altivec_register_operand.
13102         (*movv8hi_internal1): Likewise.
13103         (*movv16qi_internal1): Likewise.
13104         (*movv4sf_internal1): Likewise.
13105
13106 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13107
13108         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13109         * configure: Regenerate.
13110
13111 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13112
13113         * doc/install.texi: Update description of --gxx-include-dir to
13114         give correct default value.
13115
13116 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13117
13118         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13119         8 with MAC_REG.
13120
13121 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13122
13123         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13124         gen_rtx_PARALLEL.
13125
13126 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13127
13128         * emit-rtl.c: Update the comment about the file.
13129
13130 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13131
13132         * sourcebuild.texi (Test Idioms): Update testcase naming
13133         conventions.
13134
13135 2004-02-04  Per Bothner  <per@bothner.com>
13136
13137         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13138         * c-ppoutput.c (pp_dir_change):  New function.
13139         * c-common.h (pp_dir_change):  New declaration.
13140         * cpplib.h (struct cpp_options):  Remove working_directory field.
13141         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
13142         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
13143         Don't handle -fworking_directory here, but in c_common_post_options.
13144         (read_original_directory): Don't back up when done.
13145         Don't clear no-longer used working_directory flag.
13146         * cpplib.h:  Update declarations to match.
13147         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13148         (init_c_lex):  Don't set dir_change callback here, since we want
13149         to set it even if flag_preprocess_only.
13150         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13151         (c_common_post_options):  Set dir_change callback.
13152         Call pp_dir_change if approporiate.
13153         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13154         unneeded parameter and result. Do LC_RENAME for <built-in>.
13155         (c_common_post_options):  Call cpp_read_main_file here instead.
13156         (c_common_init):  Update accordingly.
13157         (push_command_line_include):  Don't cpp_push_main_file.
13158         Do LC_RENAME rather than LC_LEASE to get back to main file.
13159         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13160         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13161         files, but call finish_options for all files.
13162         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13163         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13164         cpp_find_main_file + cpp_push_main_file.
13165         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13166         * opts.c (handle_options):  Only set main_input_filename first time.
13167
13168 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13169
13170         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13171
13172 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13173
13174         * reload.c (find_equiv_reg): When checking for register overlap,
13175         don't index hard_regno_nregs with a pseudo-reg.
13176
13177 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13178
13179         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13180
13181 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13182
13183         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13184         against FIRST_PSEUDO_REGISTER.
13185
13186 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13187
13188         * Makefile.in: Move target, host overrides after per-language
13189         fragments.
13190
13191         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13192         (GNATLIBCFLAGS): Remove -g.
13193
13194 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13195
13196         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13197         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13198         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13199         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13200         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13201         config/sparc/sparc.c, config/vax/vax.c: Revert the
13202         replacements of "FALLTHRU" with "Fall through" done in the
13203         previous patch.
13204
13205 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13206
13207         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13208         config/arm/arm.c, config/arm/arm.md,
13209         config/cris/cris-protos.h, config/fr30/fr30.c,
13210         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13211         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13212         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13213         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13214         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13215         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13216         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13217         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13218         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13219         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13220         config/s390/s390.md, config/sparc/netbsd-elf.h,
13221         config/sparc/openbsd.h, config/sparc/sparc.c,
13222         config/xtensa/lib2funcs.S: Fix comment formatting.
13223
13224 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13225
13226         * config/alpha/alpha.c, config/arc/arc.c,
13227         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13228         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13229         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13230         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13231         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13232         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13233         config/iq2000/iq2000.c, config/m32r/m32r.c,
13234         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13235         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13236         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13237         config/rs6000/rs6000.h, config/sparc/sparc.c,
13238         config/vax/vax.c: Fix comment typos.  Follow spelling
13239         conventions.
13240
13241 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13242
13243         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13244         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13245         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13246         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13247         config/arm/fpa.md, config/arm/iwmmxt.md,
13248         config/arm/netbsd-elf.h, config/arm/netbsd.h,
13249         config/m68hc11/m68hc11.md, config/mips/iris5.h,
13250         config/mn10300/mn10300.md, config/rs6000/altivec.md,
13251         config/sparc/netbsd-elf.h: Update copyright.
13252
13253 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13254
13255         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13256         for all modes whose size is greater than 8 bytes if ARCH32.
13257         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13258         by reference if ARCH32.
13259
13260 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
13261
13262         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13263
13264 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13265
13266         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13267         to before adddi3 insn patterns.
13268         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13269         "reload_insi"): Move to before addsi3 insn patterns.
13270
13271 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
13272
13273         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13274         parameter.  Use it instead of current_function_is_thunk.
13275         * function.h (struct function): Update documentation for is_thunk.
13276         * tree.h (CALL_FROM_THUNK_P): New macro.
13277         * config/alpha/alpha.c (alpha_sa_mask): Do not check
13278         no_new_pseudos when testing current_function_is_thunk.
13279         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13280
13281 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13282
13283         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13284         TARGET_SETUP_INCOMING_VARARGS.
13285
13286 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13287
13288         * emit-rtl.c (gen_rtx): Remove.
13289         * genattrtab.c: Don't mention gen_rtx in a comment.
13290         * rtl.h: Remove the prototype for gen_rtx.
13291         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13292
13293 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13294
13295         * config/arc/arc.h, config/fr30/fr30.h
13296         (SETUP_INCOMING_VARARGS): Remove the target-independent
13297         comments.
13298         * doc/tm.texi: Don't mention deprecated target macros.
13299
13300 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13301
13302         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13303         target-independent comment.
13304
13305 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13306
13307         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13308         mention deprecated target macros.
13309
13310 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13311
13312         * config.gcc: Remove obsolete ports and configurations.
13313         * config/linux-aout.h, config/netware.h,
13314         config/t-linux-gnulibc1, config/d30v/abi,
13315         config/d30v/d30v-protos.h, config/d30v/d30v.c,
13316         config/d30v/d30v.h, config/d30v/d30v.md,
13317         config/d30v/libgcc1.asm, config/d30v/t-d30v,
13318         config/dsp16xx/dsp16xx-modes.def,
13319         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13320         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13321         config/i370/README, config/i370/i370-c.c,
13322         config/i370/i370-protos.h, config/i370/i370.c,
13323         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13324         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13325         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13326         config/i386/moss.h, config/i386/netware.h,
13327         config/i386/svr3.ifile, config/i386/svr3dbx.h,
13328         config/i386/svr3gas.h, config/i386/svr3z.ifile,
13329         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13330         config/i960/i960-c.c, config/i960/i960-coff.h,
13331         config/i960/i960-modes.def, config/i960/i960-protos.h,
13332         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13333         config/i960/rtems.h, config/i960/t-960bare,
13334         config/m68k/hp310.h, config/m68k/hp320.h,
13335         config/m68k/hp320base.h, config/m68k/m68kv4.h,
13336         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13337         Remove.
13338         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13339         doc/md.texi: Remove mentions of obsolete ports.
13340
13341 2004-02-04  Jan Hubicka  <jh@suse.cz>
13342
13343         * alias.c (find_base_term, get_addr):  Do not dereference NULL
13344         pointer when all VALUE's locations has been invalidated.
13345         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13346
13347 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
13348
13349         * doc/invoke.texi (x86 options): Fix spelling/wording.
13350
13351 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
13352
13353         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13354         put the original string in a comment.
13355         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13356         * config/mips/mips.c (mips_output_ascii): Likewise.
13357         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13358
13359 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13360
13361         * system.h (GIV_SORT_CRITERION): Poison.
13362         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13363         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13364
13365 2004-02-03  Roger Sayle  <roger@eyesopen.com>
13366
13367         PR target/9348
13368         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
13369         multiplies with a multiplication of the wrong signedness, its the
13370         signedness of the multiplication that we've performed that needs to
13371         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
13372         if expand_mult_highpart_adjust places the result in target.
13373
13374 2004-02-03  Richard Henderson  <rth@redhat.com>
13375
13376         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13377
13378 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
13379
13380         * config.gcc (sh[234]l): Use little endian fragments.
13381
13382 2004-02-03  Paul Koning  <pkoning@equallogic.com>
13383
13384         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13385         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13386         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13387         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13388         floating point format.
13389         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13390         the above functions.
13391         (output_move_quad): Output float values in correct target format.
13392         (legitimate_const_double_p): New function.
13393         * config/pdp11/pdp11.h: Fix typos.
13394         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13395         (TARGET_FLOAT_FORMAT): Ditto.
13396         (pdp11_f_format, pdp11_d_format): Add external declarations.
13397         (MAX_REGS_PER_ADDRESS): Corrected.
13398         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13399         (PRINT_OPERAND): Output float literals in target format.
13400
13401 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
13402
13403         PR c++/13975
13404         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13405         TI_PRIVATE.
13406         (access_public_node): Redefine.
13407         (access_protected_node): Likewise.
13408         (access_private_node): Likewise.
13409         * tree.c (build_common_tree_nodes): Create access_public_node,
13410         access_protected_node, and access_private_node.
13411
13412 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
13413
13414         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13415         (MASK_INLINE_INT_DIV_THR): Ditto.
13416         (MASK_INLINE_SQRT_LAT): Ditto.
13417         (MASK_INLINE_SQRT_THR): Ditto.
13418         (MASK_DWARF2_ASM): Ditto.
13419         (MASK_EARLY_STOP_BITS): Ditto.
13420
13421 2004-02-02  Paul Brook  <paul@codesourcery.com>
13422
13423         Merge from csl-arm-branch.
13424
13425         2004-01-30  Paul Brook  <paul@codesourcery.com>
13426
13427         * aof.h (REGISTER_NAMES): Add vfp reg names
13428         (ADDITIONAL_REGISTER_NAMES): Ditto.
13429         * aout.h (REGISTER_NAMES): Ditto.
13430         (ADDITIONAL_REGISTER_NAMES): Ditto.
13431         * arm-protos.h: Update/Add Prototypes.
13432         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13433         Only allow 0.0 for VFP.
13434         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
13435         (values_fp): Rename from values_fpa.  Update Users.
13436         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13437         Update users.  Only check valid constants for this hardware.
13438         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
13439         Only allow consts for FPA.
13440         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
13441         Only allow consts for FPA.
13442         (use_return_insn): Check for saved VFP regs.
13443         (arm_legitimate_address_p): Handle VFP DFmode addressing.
13444         (arm_legitimize_address): Ditto.
13445         (arm_general_register_operand): New function.
13446         (vfp_mem_operand): New function.
13447         (vfp_compare_operand): New function.
13448         (vfp_secondary_reload_class): New function.
13449         (arm_float_compare_operand): New function.
13450         (vfp_print_multi): New function.
13451         (vfp_output_fstmx): New function.
13452         (vfp_emit_fstm): New function.
13453         (arm_output_epilogue): Output VPF reg restore code.
13454         (arm_expand_prologue): Output VFP reg save code.
13455         (arm_print_operand): Add 'P'.
13456         (arm_hard_regno_mode_ok): Return modes for VFP regs.
13457         (arm_regno_class): Return classes for VFP regs.
13458         (arm_compute_initial_elimination_offset): Include space for VFP regs.
13459         (arm_get_frame_size): Ditto.
13460         * arm.h (FIXED_REGISTERS): Add VFP regs.
13461         (CALL_USED_REGISTERS): Ditto.
13462         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13463         (FIRST_VFP_REGNUM): Define.
13464         (LAST_VFP_REGNUM): Define.
13465         (IS_VFP_REGNUM): Define.
13466         (FIRST_PSEUDO_REGISTER): Include VFP regs.
13467         (HARD_REGNO_NREGS): Handle VFP regs.
13468         (REG_ALLOC_ORDER): Add VFP regs.
13469         (enum reg_class): Add VFP_REGS.
13470         (REG_CLASS_NAMES): Ditto.
13471         (REG_CLASS_CONTENTS): Ditto.
13472         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13473         (REG_CLASS_FROM_LETTER): Add 'w'.
13474         (EXTRA_CONSTRAINT_ARM): Add 'U'.
13475         (EXTRA_MEMORY_CONSTRAINT): Define.
13476         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13477         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13478         (REGISTER_MOVE_COST): Ditto.
13479         (PREDICATE_CODES): Add arm_general_register_operand,
13480         arm_float_compare_operand and vfp_compare_operand.
13481         * arm.md (various): Rename as above.
13482         (divsf3): Enable when TARGET_VFP.
13483         (divdf3): Ditto.
13484         (movdfcc): Ditto.
13485         (sqrtsf2): Ditto.
13486         (sqrtdf2): Ditto.
13487         (arm_movdi): Disable when TARGET_VFP.
13488         (arm_movsi_insn): Ditto.
13489         (movsi): Only split with general regs.
13490         (cmpsf): Use arm_float_compare_operand.
13491         (push_fp_multi): Restrict to TARGET_FPA.
13492         (vfp.md): Include.
13493         * vfp.md: New file.
13494         * fpa.md (various): Rename as above.
13495         * doc/md.texi: Document ARM w and U constraints.
13496
13497         2004-01-15  Paul Brook  <paul@codesourcery.com>
13498
13499         * config.gcc: Add with_fpu.  Allow with-float=softfp.
13500         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13501         Break out of loop when we find a float-abi.  Fix typo.
13502         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13503         Set -mfloat-abi=.
13504         * doc/install.texi: Document --with-fpu.
13505
13506         2003-01-14  Paul Brook  <paul@codesourcery.com>
13507
13508         * config.gcc (with_arch): Add armv6.
13509         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13510         * config/arm/arm.c (arm_overrride_options): Ditto.
13511
13512         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
13513
13514         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
13515         (FL_ARCH6): Renamed from FL_ARCH6J.
13516         (arm_arch3m): Renamed from arm_fast_multiply.
13517         (arm_arch6): Renamed from arm_arch6j.
13518         * arm.h: Update all uses of above.
13519         * arm-cores.def: Likewise.
13520         * arm.md: Likewise.
13521
13522         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
13523         not arm6j.  Add entry for arch armv6.
13524
13525         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
13526
13527         * arm.c (arm_emit_extendsi): Delete.
13528         * arm-protos.h (arm_emit_extendsi): Delete.
13529         * arm.md (zero_extendhisi2): Also handle zero-extension of
13530         non-subregs.
13531         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
13532         (thumb_zero_extendhisi2): Only match if not v6.
13533         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
13534         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
13535         (thumb_extendqisi2): Likewise.
13536         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
13537         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
13538         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
13539         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
13540         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
13541         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
13542         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
13543         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
13544         (arm_extendqisi2addsi): Likewise.
13545
13546         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
13547
13548         Revert this change:
13549         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13550         + REG addressing modes.
13551
13552         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13553         + REG addressing modes.
13554
13555         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
13556
13557         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
13558         CONSTANT_P_RTX.
13559
13560         2003-30-12  Paul Brook  <paul@codesourcery.com>
13561
13562         * longlong.h: protect arm inlines with !defined (__thumb__)
13563
13564         2003-30-12  Paul Brook  <paul@codesourcery.com>
13565
13566         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
13567
13568         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
13569
13570         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
13571         change.
13572
13573         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13574
13575         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
13576         to the virtual incoming args pointer for downward stacks.
13577
13578         2003-12-29  Paul Brook  <paul@codesourcery.com>
13579
13580         * config/arm/arm-cores.def: Add cost function.
13581         * config/arm/arm.c (arm_*_rtx_costs): New functions.
13582         (arm_rtx_costs): Remove
13583         (struct processors): Add rtx_costs field.
13584         (all_cores, all_architectures): Ditto.
13585         (arm_override_options): Set targetm.rtx_costs.
13586         (thumb_rtx_costs): New function.
13587         (arm_rtx_costs_1): Remove cases handled elsewhere.
13588         * config/arm/arm.h (processor_type): Add COSTS parameter.
13589
13590         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13591
13592         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
13593         (arm926ejs.md): Include it.
13594         * config/arm/arm926ejs.md: New pipeline description.
13595
13596         2003-12-24  Paul Brook  <paul@codesourcery.com>
13597
13598         * config/arm/arm.c (arm_arch6j): New variable.
13599         (arm_override_options): Set it.
13600         (arm_emit_extendsi): New function.
13601         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
13602         * config/arm/arm.h (arm_arch6j): Declare.
13603         * config/arm/arm.md: Add sign/zero extend insns.
13604
13605         2003-12-23  Paul Brook  <paul@codesourcery.com>
13606
13607         * config/arm/arm.c (all_architectures): Add armv6.
13608         * doc/invoke.texi: Document it.
13609
13610         2003-12-19  Paul Brook  <paul@codesourcery.com>
13611
13612         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
13613         insn patterns to match.
13614         * config/arm/arm-generic.md: Ditto.
13615         * config/arm/cirrus.md: Ditto.
13616         * config/arm/fpa.md: Ditto.
13617         * config/amm/iwmmxt.md: Ditto.
13618         * config/arm/arm1026ejs.md: Ditto.
13619         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
13620         for 11_loadb.
13621
13622         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
13623
13624         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
13625         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
13626         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
13627         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
13628         arm_no_early_mul_dep): Correctly deal with conditional execution,
13629         parallels and single shift operations.
13630         (arm_no_early_alu_shift_value_dep): Define.
13631         * arm.md (attr type): Replace 'normal' with 'alu',
13632         'alu_shift' and 'alu_shift_reg'.
13633         (attr core_cycles): Adjust.
13634         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
13635         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
13636         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
13637         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
13638         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
13639         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
13640         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
13641         attribute appropriately.
13642         * config/arm/arm1026ejs.md (alu_op): Adjust.
13643         (alu_shift_op, alu_shift_reg_op): New.
13644         * config/arm/arm1136.md: Add better bypasses for early
13645         registers. Remove load[234] and store[234] bypasses.
13646         (11_alu_op): Adjust.
13647         (11_alu_shift_op, 11_alu_shift_reg_op): New.
13648
13649         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
13650
13651         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
13652         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
13653         * config/arm/arm.c (arm_no_early_store_addr_dep,
13654         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
13655         * config/arm/arm1026ejs.md: Add load-store bypass.
13656         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
13657         Add bypasses between instructions.
13658
13659         2003-12-10  Paul Brook  <paul@codesourcery.com>
13660
13661         * config/arm/arm.c (arm_fpu_model): New variable.
13662         (arm_fload_abi): New variable.
13663         (target_fpe_name): Rename from target_fp_name.
13664         (target_fpu_name): New variable.
13665         (arm_is_cirrus): Remove.
13666         (fpu_desc): New struct.
13667         (all_fpus): Define.
13668         (pf_model_for_fpu): Define.
13669         (all_loat_abis): Define.
13670         (arm_override_options): Set fp arch flags based on -mfpu=
13671         and -float-abi=.
13672         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13673         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13674         (*): Use new TARGET_* flags.
13675         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
13676         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
13677         (TARGET_SOFT_FLOAT): Ditto.
13678         (TARGET_SOFT_FLOAT_ABI): New.
13679         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
13680         TARGET_HARD_FLOAT.
13681         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
13682         (TARGET_OPTIONS): Add -mfpu=.
13683         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13684         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13685         (arm_pf_model): Define.
13686         (arm_float_abi_type): Define.
13687         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
13688         * config/arm/arm.md: Use new TARGET_* flags.
13689         * config/arm/cirrus.md: Ditto.
13690         * config/arm/fpa.md: Ditto.
13691         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
13692         * config/arm/semi.h (ASM_SPEC): Ditto.
13693         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
13694         (FPUTYPE_DEFAULT): Set to VFP.
13695         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
13696
13697         2003-11-22  Phil Edwards  <phil@codesourcery.com>
13698
13699         PR target/12476
13700         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
13701         'bx' instead of 'b' to avoid branch range restrictions.  Output
13702         the thunk immediately before the thunked-to function.
13703         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
13704         .thumb_func if a thunk is being generated.  Emit .code 16 along
13705         with .thumb_func if a thunk is not being generated.
13706
13707         2003-11-15  Nicolas Pitre <nico@cam.org>
13708
13709         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
13710         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
13711         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
13712         (lshrdi3_iwmmxt): Renamed from lshrdi3.
13713         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
13714
13715         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
13716             Ian Lance Taylor  <ian@wasabisystems.com>
13717
13718         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
13719         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
13720
13721         2003-11-05  Phil Edwards  <phil@codesourcery.com>
13722
13723         * config/arm/arm.md (insn):  Add new V6 instruction names.
13724         (generic_sched):  New attr.
13725         * config/arm/arm-generic.md:  Use generic_sched here.
13726         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
13727         stages of pipeline.  Adjust latency counts accordingly.
13728         * config/arm/arm1136jfs.md:  New file.
13729
13730         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
13731
13732         * config/arm/arm.h (processor_type): New enumeration type.
13733         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
13734         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
13735         (CPP_CPU_ARCH_SPEC): Likewise.
13736         * config/arm/arm.c (arm_tune): New variable.
13737         (all_cores): Use cores.def.
13738         (all_architectures): Add representative processor.
13739         (arm_override_options): Restructure way in which tuning
13740         information is deduced.
13741         * arm.md: Update "insn" and "type" attributes throughout.
13742         (insn): New attribute.
13743         (type): Compute "mult" from "insn" attribute.  Add load2,
13744         load3, load4 alternatives.
13745         (arm automaton): Move to arm-generic.md.
13746         * config/arm/arm-cores.def: New file.
13747         * config/arm/arm-generic.md: Likewise.
13748         * config/arm/arm1026ejs.md: Likewise.
13749
13750 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
13751
13752         * doc/invoke.texi (SPARC options): Remove -mflat and
13753         all -mxxx (xxx:chip) options.
13754         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
13755         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
13756         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
13757         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
13758         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
13759         * config/sparc/sparc.c: Likewise.
13760         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
13761         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
13762         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
13763         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
13764         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
13765         (sparc_flat_must_save_register_p): Likewise.
13766         (sparc_flat_compute_frame_size): Likewise.
13767         (sparc_flat_save_restore): Likewise.
13768         (sparc_flat_function_prologue): Likewise.
13769         (sparc_flat_function_epilogue): Likewise.
13770         (sparc_flat_epilogue_delay_slots): Likewise.
13771         (sparc_flat_eligible_for_epilogue_delay): Likewise.
13772         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
13773         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
13774         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
13775         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
13776         (CONDITIONAL_REGISTER_USAGE): Likewise.
13777         (FRAME_POINTER_REQUIRED): Likewise.
13778         (INITIAL_ELIMINATION_OFFSET): Likewise.
13779         (BASE_RETURN_VALUE_REG): Likewise.
13780         (BASE_OUTGOING_VALUE_REG): Likewise.
13781         (BASE_PASSING_ARG_REG): Likewise.
13782         (BASE_INCOMING_ARG_REG): Likewise.
13783         (INCOMING_REGNO): Likewise.
13784         (OUTGOING_REGNO): Likewise.
13785         (LOCAL_REGNO): Likewise.
13786         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
13787         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
13788         (EPILOGUE_USES): Likewise.
13789         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
13790         ("flat" attribute): Delete.
13791         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
13792         handling.
13793         (call followed by jump define_peephole's): Delete.
13794         (exception_receiver): Likewise.
13795         (builtin_setjmp_receiver): Likewise.
13796         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
13797
13798 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
13799
13800         PR c/11658
13801         PR c/13994
13802         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
13803         on langhooks.h.
13804         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
13805         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
13806         Include langhooks.h.  Replace c_common_truthvalue_conversion
13807         with the truthvalue_conversion language hook throughout.
13808         (expr_no_commas): Call default_conversion before save_expr
13809         for the first term of the production 'x ? : y'.
13810         * c-common.c (c_common_truthvalue_conversion): Remove
13811         obsolete block.  Invoke recursively the hook instead
13812         of this function.
13813         * c-convert.c (convert): handle ERROR_MARK_NODE.
13814         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
13815         returned by the truthvalue_conversion language hook.
13816         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13817         c_objc_common_truthvalue_conversion.
13818         * c-objc-common.c (c_objc_common_truthvalue_conversion):
13819         New function.
13820         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
13821         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13822         c_objc_common_truthvalue_conversion.
13823
13824 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13825
13826         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
13827         of gen_rtx.
13828         (LIBCALL_VALUE): Likewise.
13829         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
13830         gen_rtx_CC0 instead of gen_rtx.
13831         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
13832         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
13833         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
13834         gen_rtx.
13835         (m68hc11_emit_logical): Likewise.
13836
13837 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13838
13839         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
13840         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
13841         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
13842         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
13843         config/mips/mips.md, config/mmix/mmix.c,
13844         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
13845         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
13846         config/rs6000/altivec.md, config/s390/s390.c,
13847         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
13848         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
13849         Use const0_rtx instead of GEN_INT (0).  Do the same for other
13850         constants that are readily available.
13851
13852 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13853
13854         * doloop.c, optabs.c, regmove.c, sched-deps.c,
13855         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
13856         instead of GEN_INT (0).  Do the same for other constants that
13857         are readily available.
13858
13859 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13860
13861         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
13862         gen_rtx.
13863         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
13864         instead of gen_rtx.
13865         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
13866         gen_rtx.
13867         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
13868         gen_rtx_ASHIFT instead of gen_rtx.
13869         (udivmodqi4): Likewise.
13870
13871 2004-02-02  Richard Henderson  <rth@redhat.com>
13872
13873         PR target/13789
13874         * expr.c (store_expr): Use force_operand before emit_move_insn.
13875
13876 2004-02-02  Jeff Law  <law@redhat.com>
13877             Roger Sayle  <roger@eyesopen.com>
13878
13879         * tree.c (commutative_tree_code, associative_tree_code): New
13880         functions.
13881         (iterative_hash_expr): Use commutative_tree_code.
13882         * tree.h (commutative_tree_code, associative_tree_code): Declare.
13883         * fold-const.c (operand_equal_p): Use commutative_tree_code
13884         rather than inlining the commutativity check.
13885         (fold): Likewise.
13886
13887 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13888
13889         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
13890         * config/frv/frv-protos.h: Remove the prototype for
13891         frv_function_arg_keep_as_reference.
13892         * config/frv/frv.c (frv_function_arg_keep_as_reference):
13893         Remove.
13894         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
13895         * config/stormy16/stormy16.h: Remove the commented-out
13896         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
13897
13898 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
13899
13900         PR target/13914
13901         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
13902         for retaddr_column.
13903
13904 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13905
13906         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
13907         gen_rtx.
13908
13909 2004-02-02  Eric Christopher  <echristo@redhat.com>
13910             Zack Weinberg  <zack@codesourcery.com>
13911
13912         * c-opts.c (c_common_handle_option): Add -finput-charset.
13913         * c.opt: Ditto.
13914         * cppcharset.c (one_iso88591_to_utf8): Remove.
13915         (convert_iso88591_utf8): Ditto.
13916         (conversion_tab): Remove 8859-1 converter.
13917         (_cpp_input_to_utf8): Remove.
13918         (_cpp_init_iconv_buffer): Ditto.
13919         (_cpp_close_iconv_buffer): Ditto.
13920         (_cpp_convert_input): New function.
13921         (_cpp_default_encoding): Ditto.
13922         * cpphash.h: Add/remove prototypes for above.
13923         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
13924         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
13925         for narrow execution and input character sets.
13926         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
13927         * doc/cppopts.texi: Document -finput-charset.
13928
13929 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
13930
13931         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
13932         against FIRST_PSEUDO_REGISTER.
13933
13934 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13935
13936         * doc/invoke.texi (SPARC options): Further improve.
13937
13938 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13939
13940         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
13941         config/h8300/h8300.c, config/ip2k/ip2k.md,
13942         config/iq2000/iq2000.c, config/mips/mips.c,
13943         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
13944         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
13945         config/v850/v850.md: Fix indentation.
13946
13947 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13948
13949         * config/sparc/sparc.c (function_arg_slotno): Align TImode
13950         arguments on a 16-byte boundary in the parameter array if ARCH64.
13951         Split handling of TFmode.
13952
13953 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
13954
13955         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
13956         Don't test CONSTANT_P (x).
13957         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
13958         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
13959         Fix misindentation.
13960
13961 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13962
13963         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
13964
13965 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13966
13967         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
13968         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
13969         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
13970         config/iq2000/iq2000.c, config/m32r/m32r.c,
13971         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
13972         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
13973         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
13974         config/stormy16/stormy16.c, config/v850/v850.md,
13975         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
13976
13977 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13978
13979         * config/mcore/mcore.c (block_move_sequence): Replace
13980         gen_rtx_CONST_INT with GEN_INT.
13981
13982 2004-02-02  Jan Hubicka  <jh@suse.cz>
13983
13984         * alias.c (record_set): Use hard_regno_nregs.
13985         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
13986         * builtins.c (apply_args_size): Likewise.
13987         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
13988         mark_set_regs, add_stored_regs, mark_referenced_regs,
13989         insert_restore, insert_save, insert_one_insn): Likewise.
13990         * cfgcleanup.c: Include regs.h
13991         (mark_effect, mentions_nonequal_regs): Likewise.
13992         * cfgrtl.c (mark_killed_regs): Likewise
13993         * combine.c (update_table_tick, record_value_for_reg,
13994         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
13995         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
13996         reg_bitfield_target_p, distribute_notes): Likewise.
13997         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
13998         exp_equiv_p, cse_insn): Likewise.
13999         * cselib.c (cselib_lookup): Likewise.
14000         (cselib_invalidate_regno, cselib_record_set): Likewise.
14001         * df.c (df_ref_record): Likewise.
14002         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14003         Likewise.
14004         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14005         count_or_remove_death_notes_bb): Likewise.
14006         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14007         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14008         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14009         * integrate.c (mark_stores): Likewise.
14010         * jump.c (delete_prior_computation): Likewise.
14011         * lcm.c (reg_dies, reg_becomes_live): Likewise.
14012         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14013         * loop.c (LOOP_REGNO_NREGS): Likewise.
14014         * postreload.c (reload_combine, reload_combine_note_store,
14015         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14016         * ra-colorize.c (combine, color_usable_p, get_free_reg,
14017         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
14018         try_recolor_web, insert_coalesced_conflicts, check_colors,
14019         break_precolored_alias): Likewise.
14020         * ra-debug.c: Include regs.h
14021         (ra_print_rtx_object): Likewise.
14022         * ra-rewrite (choose_spill_colors): Likewise.
14023         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14024         * ra.c (init_ra): Likewise.
14025         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14026         peep2_find_free_register): Likewise.
14027         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14028         * regclass.c (hard_regno_nregs): New array.
14029         (init_reg_modes_once): Initialize it.
14030         (choose_hard_reg_mode): Use it.
14031         (record_reg_classes): Likewise.
14032         * regmove.c (mark_flags_life_zones): Likewise.
14033         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
14034         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
14035         copy_value, maybe_mode_change, find_oldest_value_reg,
14036         copyprop_hardreg_forward_1):
14037         * regs.h (hard_regno_nregs): Declare.
14038         * realod.c (reload_inner_reg_of_subreg): Use it.
14039         (push_reload, combine_reloads, find_dummy_reload,
14040         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
14041         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
14042         reload_adjust_reg_for_mode): Likewise.
14043         * reload1.c (compute_use_by_pseudos, count_pseudo,
14044         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14045         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14046         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14047         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14048         delete_output_reload): Likewise.
14049         * resource.c (update_live_status, mark_referenced_resources,
14050         mark_set_resources, mark_target_live_regs): Likewise.
14051         * rtlanal.c:  Include regs.h
14052         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14053         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14054         subreg_regno_offset, subreg_offset_representable_p,
14055         hoist_test_store): Likewise.
14056         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14057         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14058         * stmt.c: Include regs.h
14059         (decl_conflicts_with_clobbers_p): Likewise.
14060         * varasm.c (make_decl_rtl): Likewise.
14061         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14062
14063 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14064
14065         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14066         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14067         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14068         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14069         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14070         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14071         config/iq2000/iq2000.h, config/m32r/m32r.c,
14072         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14073         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14074         config/mcore/mcore.c, config/mcore/mcore.h,
14075         config/mcore/mcore.md, config/mips/mips.c,
14076         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14077         config/rs6000/rs6000.c, config/s390/s390.c,
14078         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14079         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14080         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14081
14082 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14083
14084         * config/h8300/h8300.md (two peephole2's): New.
14085
14086 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14087
14088         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14089         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14090         (ASM_CPU_SPEC): Likewise
14091         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14092         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14093
14094 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14095
14096         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14097         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14098         (expand_builtin): Always call expand_builtin_pow.
14099
14100 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14101
14102         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14103         BUILT_IN_SIGNBITL): New GCC builtins.
14104         * builtins.c (expand_builtin_signbit): New function to RTL expand
14105         calls to signbit, signbitf and signbitl as inline intrinsics.
14106         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14107         (fold_builtin_signbit): New function to perform constant folding
14108         of signbit, signbitf and signbitl.
14109         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14110
14111         * doc/extend.texi: Document new signbit{,f,l} builtins.
14112
14113 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14114
14115         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14116
14117 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14118
14119         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14120         "mips_const_double_ok" and "simple_memory_operand", which were
14121         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14122         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14123         for removal of simple_memory_operand.
14124
14125 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14126
14127         * config/c4x/c4x.md: Use GEN_INT instead of
14128         gen_rtx (CONST_INT, ...).
14129
14130 2004-01-31  Richard Henderson  <rth@redhat.com>
14131
14132         * varasm.c (output_constant_pool): Don't zap the pool.
14133
14134 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14135
14136         * genrecog.c (decision_type): Add DT_const_int.
14137         (write_cond) [DT_const_int]: Print a comparison against small
14138         constant.
14139         (write_node): Simplify comparisons against small constants
14140         before printing tests.
14141
14142 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14143
14144         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14145         instead of gen_rtx_CONST_INT.
14146
14147 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14148
14149         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14150         instead of gen_rtx_CONST_INT.
14151
14152 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14153
14154         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14155         hook_bool_CUMULATIVE_ARGS_false.
14156         * targhooks.c (default_strict_argument_naming): Rename to
14157         hook_bool_CUMULATIVE_ARGS_false.
14158         * targhooks.h: Update the prototype for
14159         default_strict_argument_naming.
14160
14161 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14162
14163         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14164         * config/sh/sh.h: Likewise.
14165         * config/sh/sh.md: Likewise.
14166
14167 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14168
14169         * doc/invoke.texi (SPARC options): Restructure and update.
14170
14171 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14172
14173         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14174         STRICT_ARGUMENT_NAMING): Poison.
14175         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14176         hook_bool_tree_false.
14177         * targhooks.c (default_promote_function_args): Remove.
14178         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14179         Don't check incoming.
14180         (default_strict_argument_naming): Don't use
14181         STRICT_ARGUMENT_NAMING.
14182         * targhooks.h: Remove the prototype for
14183         default_promote_function_args.
14184
14185 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14186
14187         * config/i386/i386-protos.h: Remove the prototype for
14188         ix86_setup_incoming_varargs.
14189         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14190         (ix86_setup_incoming_varargs): Make it static.
14191         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14192
14193 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14194
14195         * alloc-pool.c: Fix comment typos.
14196         * builtin-types.def: Likewise.
14197         * builtins.def: Likewise.
14198         * c-pretty-print.c: Likewise.
14199         * df.h: Likewise.
14200         * reload1.c: Likewise.
14201
14202 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14203
14204         * doc/invoke.texi: Follow spelling conventions.
14205         * doc/tm.texi: Likewise.
14206
14207 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14208
14209         * doc/install.texi: Fix typos.
14210         * doc/invoke.texi: Likewise.
14211
14212 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14213
14214         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14215         registers as pointers.
14216         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14217
14218 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
14219
14220         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14221         and restore it to gen_lowpart_general on exit.
14222         (gen_lowpart_for_combine): Adjust all callers to go through
14223         gen_lowpart.
14224         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14225         and restore it to gen_lowpart_general on exit.
14226         (gen_lowpart_if_possible): Adjust all callers to go through
14227         gen_lowpart.
14228         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14229         (gen_lowpart): Declare as pointer to function, initialized to
14230         gen_lowpart_general.
14231         * rtl.h (gen_lowpart): Declare as pointer to function.
14232
14233 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14234
14235         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14236         * calls.c: Likewise.
14237         * emit-rtl.c: Likewise.
14238         * function.c: Likewise.
14239         * reload1.c: Likewise.
14240         * config/i386/cygming.h: Likewise.
14241         * config/i386/i386.c: Likewise.
14242         * config/i386/winnt.c: Likewise.
14243
14244 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
14245
14246         PR bootstrap/9249
14247         * doc/install.texi: document --enable-__cxa_atexit option.
14248         * configure.ac: Disable __cxa_atexit if not supported.
14249         * configure: Regenerate.
14250
14251 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
14252
14253         * ggc-zone.c (ggc_free): New function.
14254
14255 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14256
14257         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14258         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14259         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14260         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14261         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14262         config/alpha/alpha.c, config/alpha/alpha.h,
14263         config/alpha/alpha.md, config/alpha/unicosmk.h,
14264         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14265         config/c4x/c4x-protos.h, config/c4x/c4x.md,
14266         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14267         config/frv/frvend.c, config/i386/cygming.h,
14268         config/i386/djgpp.h, config/i386/emmintrin.h,
14269         config/i386/gthr-win32.c, config/i386/i386-interix.h,
14270         config/i386/i386-protos.h, config/i386/openbsd.h,
14271         config/i386/winnt.c, config/i386/xm-mingw32.h,
14272         config/i386/xmmintrin.h, config/ia64/ia64.md,
14273         config/iq2000/iq2000.md, config/m32r/m32r.md,
14274         config/m68k/m68k.md, config/mcore/mcore-elf.h,
14275         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14276         config/mips/iris5gas.h, config/mips/iris6.h,
14277         config/mips/iris6gas.h, config/mips/linux.h,
14278         config/mips/mips.md, config/mips/netbsd.h,
14279         config/mips/openbsd.h, config/mips/windiss.h,
14280         config/pa/fptr.c, config/rs6000/aix.h,
14281         config/rs6000/altivec.h, config/rs6000/darwin.h,
14282         config/rs6000/xcoff.h, config/s390/s390-protos.h,
14283         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14284         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14285         config/sparc/sol2.h: Update copyright.
14286
14287 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
14288
14289         * Makefile.in (abs_docdir, abs_srcdir): Define.
14290         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14291
14292 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14293
14294         * genconfig.c (main): Have CC0_P check its operand even on a
14295         target without cc0.
14296
14297 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14298
14299         * config/alpha/alpha.c: Remove mentions of deprecates macros
14300         in comments, remove some target-independent comments about target
14301         macros, and/or add minimal function comments for target hook
14302         implementations.
14303         * config/avr/avr.c: Likewise.
14304         * config/ia64/ia64.h: Likewise.
14305         * config/ip2k/ip2k.c: Likewise.
14306         * config/iq2000/iq2000.c: Likewise.
14307         * config/m32r/m32r.h: Likewise.
14308         * config/m68hc11/m68hc11.c: Likewise.
14309         * config/mcore/mcore.c: Likewise.
14310         * config/mmix/mmix.c: Likewise.
14311         * config/mn10300/mn10300.c: Likewise.
14312         * config/pa/pa.c: Likewise.
14313         * config/pdp11/pdp11.c: Likewise.
14314         * config/rs6000/rs6000.h: Likewise.
14315         * config/sh/sh.c: Likewise.
14316         * config/sh/sh.h: Likewise.
14317         * config/sparc/sparc.c: Likewise.
14318         * config/sparc/sparc.h: Likewise.
14319         * config/stormy16/stormy16.c: Likewise.
14320         * config/xtensa/xtensa.c: Likewise.
14321
14322 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14323
14324         PR optimization/12147
14325         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14326         RELOAD_FOR_OPADDR_ADDR.
14327         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14328         might be reused as RELOAD_FOR_OPADDR_ADDR register.
14329
14330 2004-01-30  Jan Hubicka  <jh@suse.cz>
14331
14332         * reload.c (get_secondary_mem): Fix updating of
14333         secondary_memlocs_elim_used.
14334
14335 2004-01-30  Richard Henderson  <rth@redhat.com>
14336
14337         * varasm.c (struct rtx_const, struct pool_constant): Remove.
14338         (MAX_RTX_HASH_TABLE): Remove.
14339         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14340         (first_pool, last_pool, pool_offset): Remove.
14341         (struct rtx_constant_pool): Split out from ...
14342         (struct varasm_status): ... here.  Reference one via pointer.
14343         (struct constant_descriptor_rtx): Merge struct pool_constant.
14344         (SYMHASH): Remove.
14345         (decode_rtx_const): Remove.
14346         (const_hash_rtx, compare_constant_rtx): Remove.
14347         (record_constant_rtx): Remove.
14348         (const_desc_rtx_hash, const_desc_rtx_eq): New.
14349         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14350         (const_rtx_hash_1, const_rtx_hash): New.
14351         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14352         (simplify_subtraction): Use simplify_rtx.
14353         (force_const_mem): Rewrite to use new data structures.
14354         (find_pool_constant): Likewise.
14355         (get_pool_constant, get_pool_constant_mark,
14356         get_pool_constant_for_function, get_pool_mode,
14357         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14358         (output_constant_pool_2): Split out from output_constant_pool.
14359         (output_constant_pool_1): Likewise.  Use new pool datastructures.
14360         (output_constant_pool): Zap entire pool datastructure.
14361         (mark_constant): Use new pool datastructures.
14362         (mark_constants): Use for_each_rtx.
14363         (mark_constant_pool): Use new pool datastructures.
14364
14365 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
14366
14367         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
14368         Copy operands[1] to pseudo for simplify_gen_subreg.
14369
14370 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14371
14372         * gcse.c (bypass_block): Fix a typo in the previous check-in
14373         to the file.
14374
14375 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
14376
14377         * toplev.c: Include alloc-pool.h.
14378         * Makefile.in (toplev.c): Update dependencies.
14379
14380 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14381
14382         * combine.c (simplify_shift_const, case XOR): Be careful when
14383         commuting XOR with ASHIFTRT.
14384
14385 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14386             Eric Botcazou  <ebotcazou@libertysurf.fr>
14387
14388         * config/sparc/sparc-protos.h: Remove the prototype for
14389         sparc_builtin_saveregs.
14390         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14391         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14392         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14393         (TARGET_STRUCT_VALUE_RTX): Likewise.
14394         (TARGET_RETURN_IN_MEMORY): Likewise.
14395         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14396         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14397         (sparc_builtin_saveregs): Make it static.
14398         (sparc_promote_prototypes): New.
14399         (sparc_struct_value_rtx): Likewise.
14400         (sparc_return_in_memory): Likewise.
14401         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14402         (PROMOTE_FUNCTION_RETURN): Likewise.
14403         (RETURN_IN_MEMORY): Likewise.
14404         (STRUCT_VALUE): Likewise.
14405         (STRUCT_VALUE_INCOMING): Likewise.
14406         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14407         (STRICT_ARGUMENT_NAMING): Likewise.
14408         (PROMOTE_PROTOTYPES): Likewise.
14409
14410         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14411
14412 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14413
14414         PR c/12818
14415         * varasm.c (const_hash_1) <STRING_CST>: Use the
14416         address to compute the hash value if flag_writable_strings.
14417         (compare_constant) <STRING_CST>: Compare the addresses
14418         if flag_writable_strings.
14419         (build_constant_desc): Do not copy the expression for a
14420         STRING_CST if flag_writable_strings.
14421
14422 2004-01-30  Jan Hubicka  <jh@suse.cz>
14423
14424         * alloc-pool.c: Include hashtab.h
14425         (alloc_pool_descriptor): New structure
14426         (alloc_pool_hash): New global variable.
14427         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14428         (create_alloc_pool): Update statistics.
14429         (free_alloc_pool): Likewise.
14430         (pool_alloc): Likewise.
14431         (output_info): New structure
14432         (print_statistics, dump_alloc_pool_statistics): New function.
14433         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14434         (dump_alloc_pool_statistics): Declare.
14435         * toplev.c (finalize):  Dump statistics.
14436
14437         * reload.c (secondary_memlocs_elim_used): New static variable.
14438         (get_secondary_mem): Update it.
14439         (find_reloads): Use it.
14440
14441 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
14442
14443         * toplev.c: Fix broken checkin of 2003-12-30, again.
14444
14445 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14446
14447         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14448         s390*-*-* targets by specifying a 'nop' insn.
14449         * configure: Regenerate.
14450
14451 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14452
14453         PR target/11475
14454         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14455
14456 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14457
14458         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14459         of addr when creating MEM copy.
14460
14461 2004-01-29  Devang Patel  <dpatel@apple.com>
14462
14463         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
14464
14465 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14466
14467         PR inline-asm/6162
14468         * reload.c (find_reloads): Only support one pair of commutative
14469         operands.
14470
14471 2004-01-29  Roger Sayle  <roger@eyesopen.com>
14472
14473         PR java/13824
14474         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14475         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14476         recursion.
14477
14478 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14479
14480         * config/frv/frv.c: Don't mention deprecated macros in
14481         comments.  Remove some target-independent comments about
14482         target macros.
14483         * config/frv/frv.h: Likewise.
14484
14485 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14486
14487         * cfghooks.c (split_block): Set probability and count of the
14488         new edge.
14489
14490 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
14491
14492         * dwarf2out.c (struct die_struct): Added field decl_id.
14493         (decl_die_table): Changed to hash table.
14494         (decl_die_table_allocated): Deleted.
14495         (decl_die_table_in_use): Deleted.
14496         (DECL_DIE_TABLE_INCREMENT): Deleted.
14497         (decl_die_table_hash): New function.
14498         (decl_die_table_eq): New function.
14499         (lookup_decl_die): Lookup in a hash table.
14500         (equate_decl_number_to_die): Insert into a hash table.
14501         (dwarf2out_init): Init hash table decl_die_table.
14502
14503 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14504
14505         PR optimization/13424
14506         * expr.c (store_constructor): Revert 2003-12-03 change.
14507
14508         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14509         expected before returning early.  Avoid sharing RTL if they
14510         need to be changed.
14511
14512         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
14513         handling so that memory attributes are preserved.  Don't call
14514         ix86_set_move_mem_attrs.
14515         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
14516         (ix86_expand_clrstr): Rename src argument to
14517         dst.  Rework rep_stos and strset handling so that memory attributes
14518         are preserved.
14519         (ix86_expand_strlen): Pass src argument to
14520         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
14521         memory attributes are preserved.
14522         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
14523         change_address instead of gen_rtx_MEM.
14524         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
14525         expanders.
14526         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
14527         strmovqi, strmovqi_rex64): Remove.
14528         (rep_mov*, strmov*): Prefix insn names with *.
14529         (strset, strset_singleop, rep_stos): New expanders.
14530         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
14531         strsetqi, strsetqi_rex64): Remove.
14532         (rep_stos*, strset*): Prefix insn names with *.
14533         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
14534         to SImode.
14535         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
14536         are preserved.
14537         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
14538         Prefix insn names with *.
14539         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
14540         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
14541         (strlenqi_1): New expander.
14542         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
14543
14544 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14545
14546         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
14547         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
14548         verify_flow_info): Declaration removed.
14549         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
14550         (debug_bb, debug_bb_n): Add argument to dump_bb call.
14551         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
14552         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
14553         instead of delete_block.
14554         * cfghooks.c: Include timevar.h and toplev.h.
14555         (cfg_hooks): Define here.
14556         (verify_flow_info, dump_bb): Moved from cfg.c.
14557         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14558         split_block, split_block_after_labels, move_block_after,
14559         delete_basic_block, split_edge, create_basic_block,
14560         create_empty_bb, can_merge_blocks_p, merge_blocks,
14561         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14562         New functions.
14563         * cfghooks.h (struct cfg_hooks): Added fields name,
14564         make_forwarder_block, tidy_fallthru_edge and
14565         move_block_after. Changed type of verify_flow_info, dump_bb,
14566         split_block fields. Renamed cfgh_split_edge and delete_block
14567         fields.
14568         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14569         split_block, delete_block, split_edge, create_basic_block,
14570         can_merge_blocks_p, merge_blocks): Macros removed.
14571         (cfg_hooks): Do not export.
14572         (verify_flow_info, dump_bb, redirect_edge_and_branch,
14573         redirect_edge_and_branch_force, split_block, split_block_after_labels,
14574         move_block_after, delete_basic_block, split_edge, create_basic_block,
14575         create_empty_bb, can_merge_blocks_p, merge_blocks,
14576         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14577         Declare.
14578         (cfg_layout_rtl_cfg_hooks): Declare.
14579         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
14580         New functions.
14581         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
14582         (redirect_edge_with_latch_update): Removed.
14583         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
14584         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
14585         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
14586         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
14587         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
14588         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
14589         cfghooks.c.
14590         (rtl_create_basic_block): Coding style fix.
14591         (rtl_tidy_fallthru_edge, rtl_move_block_after,
14592         rtl_make_forwarder_block): New functions.
14593         (update_cfg_after_block_merging): Removed.
14594         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
14595         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
14596         to dump_bb.
14597         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
14598         find_if_case_2): Don't update dominators.
14599         * timevar.def (TV_CFG_VERIFY): New.
14600         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
14601         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
14602         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
14603         (remove_bbs): Don't call remove_bbs.
14604         (create_preheader): Use make_forwarder_block.
14605         (mfb_keep_just, mfb_update_loops): New static functions.
14606
14607 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14608
14609         * config/avr/avr.h: Remove target-independent comments about
14610         target macros.
14611
14612 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
14613
14614         * timevar.c (timevar_print): Mention when checking is enabled.
14615
14616 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
14617
14618         * c-lex.c (c_lex): Rename to...
14619         (c_lex_with_flags): Add new parameter to get CPP flags.
14620         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
14621         * c-pragma.h (c_lex_with_flags): Declare.
14622
14623 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14624
14625         * config/mcore/mcore.c (mcore_external_libcall): Add a
14626         comment.
14627         (mcore_return_in_memory): Likewise.
14628
14629 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14630
14631         * config/mcore/mcore-protos.h: Remove the prototype for
14632         mcore_setup_incoming_varargs.
14633         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14634         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14635         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14636         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14637         (TARGET_STRUCT_VALUE_RTX): Likewise.
14638         (TARGET_RETURN_IN_MEMORY): Likewise.
14639         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14640         (mcore_setup_incoming_varargs): Make it static.  Receive the
14641         first argument by reference.  Add argument second_time.
14642         (mcore_external_libcall): New.
14643         (mcore_return_in_memory): Likewise.
14644         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
14645         (PROMOTE_FUNCTION_RETURN): Likewise.
14646         (STRUCT_VALUE): Likewise.
14647         (RETURN_IN_MEMORY): Likewise.
14648         (SETUP_INCOMING_VARARGS): Likewise.
14649         (PROMOTE_PROTOTYPES): Likewise.
14650         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14651
14652 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14653
14654         * config/m32r/m32r-protos.h: Remove the prototype for
14655         m32r_setup_incoming_varargs.
14656         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
14657         (TARGET_STRUCT_VALUE_RTX): Likewise.
14658         (TARGET_RETURN_IN_MEMORY): Likewise.
14659         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14660         (m32r_return_in_memory): New.
14661         (m32r_setup_incoming_varargs): Make it static.
14662         * config/m32r/m32r.h: Remove #undef of
14663         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
14664         definitions of PROMOTE_FUNCTION_ARGS and
14665         PROMOTE_FUNCTION_RETURN.
14666         (PROMOTE_PROTOTYPES): Remove.
14667         (RETURN_IN_MEMORY): Likewise.
14668         (STRUCT_VALUE): Likewise.
14669
14670 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14671
14672         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
14673         (TARGET_STRUCT_VALUE_RTX): Likewise.
14674         (m68k_struct_value_rtx): Likewise.
14675         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
14676         STRUCT_VALUE_REGNUM.
14677         (PROMOTE_PROTOTYPES): Remove.
14678         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
14679         STRUCT_VALUE_REGNUM.
14680         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
14681         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
14682
14683 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14684
14685         * config/stormy16/stormy16.c
14686         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
14687         TARGET_BUILD_BUILTIN_VA_LIST.
14688
14689 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14690
14691         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
14692         (TARGET_STRUCT_VALUE_RTX): Likewise.
14693         (TARGET_RETURN_IN_MEMORY): Likewise.
14694         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14695         (v850_return_in_memory): Likewise.
14696         (v850_setup_incoming_varargs): Likewise.
14697         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
14698         (SETUP_INCOMING_VARARGS): Likewise.
14699         (RETURN_IN_MEMORY): Likewise.
14700         (STRUCT_VALUE): Likewise.
14701
14702 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14703
14704         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
14705         (fr30_setup_incoming_varargs): Don't use
14706         STRICT_ARGUMENT_NAMING.
14707         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
14708         (STRICT_ARGUMENT_NAMING): Likewise.
14709
14710 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14711
14712         * config/frv/frv-protos.h: Remove the prototype for
14713         frv_expand_builtin_saveregs.
14714         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
14715         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14716         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
14717         STRUCT_VALUE_REGNUM.
14718         (frv_expand_builtin_saveregs): Make it static.
14719         (frv_struct_value_rtx): New.
14720         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
14721
14722 2004-01-29  Jan Hubicka  <jh@suse.cz>
14723
14724         PR c++/12850
14725         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
14726         initial pointers.
14727         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
14728         for functions that will be only inlined.
14729         (cgraph_mark_function_to_output): Likewise.
14730         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
14731         do not clear function body.
14732         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
14733         (tree_rest_of_compilation): Reorganize the logic releasing function
14734         body to use callgraph datastructure.
14735
14736 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14737
14738         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
14739         to register_operand.
14740
14741 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14742
14743         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
14744         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
14745         match_operand expressions so that all match_dups appear
14746         lexically after their corresponding match_operands.
14747
14748 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14749
14750         * config/h8300/h8300.c (WORD_REG_USED): Use
14751         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
14752         (compute_saved_regs): Likewise.
14753         (h8300_expand_prologue): Likewise.  Allocate locals after
14754         saving registers.
14755         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
14756         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
14757         registers.
14758         (h8300_initial_elimination_offset): Adjust for the new frame
14759         layout, which swaps flips the order of locals and saved
14760         registers.
14761         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
14762         (HARD_FRAME_POINTER_REGNUM): New.
14763         (ELIMINABLE_REGS): Add an elimination rule from
14764         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
14765         (REGISTER_NAMES): Add fp.
14766         * config/h8300/h8300.md (FP_REG): Change to 11.
14767         (HFP_REG): New.
14768
14769 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14770
14771         * genrecog.c (write_node): Remove a useless local variable.
14772
14773 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14774
14775         * Makefile.in (options.c options.h): Use stamp file s-options to
14776         avoid unnecessary rebuilds.
14777         (options.o): New target listing dependencies.
14778         (gtyp-gen.h): Use stamp file s-gtyp-gen.
14779         (STAGESTUFF): Add s-gtyp-gen.
14780
14781 2004-01-28  Richard Henderson  <rth@redhat.com>
14782
14783         * ggc.h (ggc_free): Declare.
14784         * ggc-common.c (ggc_realloc): Use it.
14785         * ggc-page.c: Remove lots of inline markers.
14786         (globals): Add free_object_list.
14787         (ggc_alloc): Tidy.
14788         (ggc_free, validate_free_objects): New.
14789         (poison_pages): Provide default.
14790         (ggc_collect): Call validate_free_objects; emit markers to
14791         the debug file.
14792
14793 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14794             Jim Wilson  <wilson@specifixinc.com>
14795
14796         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
14797         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
14798         scratch pointer.
14799         (ia64_secondary_reload_class): Delete case GR_REGS.
14800         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
14801         Do not allocate a scratch register.
14802         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
14803
14804 2004-01-28  Jan Hubicka  <jh@suse.cz>
14805
14806         * gcse.c (bypass_block): Prevent edges to be unified when we are
14807         about to emit compenstation code.
14808
14809 2004-01-28  Nick Clifton  <nickc@redhat.com>
14810
14811         * config/arm/arm.c (arm_expand_builtin): Force second argument of
14812         the setcwx insn into a register.
14813
14814 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
14815
14816         * config/fp-bit.c (pack_d): When using paired doubles to implement
14817         a long double, round the high part separately.
14818         (unpack_d): Fix the case in which the high part is a power of two
14819         and the low part is a nonzero value of the opposite sign.
14820
14821 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14822
14823         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14824         (TARGET_STRUCT_VALUE_RTX): Likewise.
14825         (c4x_external_libcall): Likewise.
14826         (c4x_struct_value_rtx): Likewise.
14827         * config/c4x/c4x.h: Remove.
14828         (STRUCT_VALUE_REGNUM): Likewise.
14829         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14830
14831 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14832
14833         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
14834         (TARGET_STRUCT_VALUE_RTX): Likewise.
14835         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
14836         (STRUCT_VALUE): Likewise.
14837         (PROMOTE_PROTOTYPES): Likewise.
14838
14839 2004-01-27  Roger Sayle  <roger@eyesopen.com>
14840
14841         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
14842         CONST_INT before using INTVAL.
14843
14844 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
14845
14846         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
14847         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
14848         frame if !TARGET_BACKCHAIN.
14849         * config/s390/s390.md ("allocate_stack"): Use pattern only if
14850         TARGET_BACKCHAIN.
14851         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
14852
14853 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14854
14855         * ia64.c (ia64_function_arg): When placing HFAs in integer
14856         registers, do not special case the mode used for complex
14857         types.  Do not advance int_regs until the current register
14858         is full.
14859
14860 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
14861
14862         PR target/7297
14863         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
14864
14865 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
14866
14867         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
14868         slow, unaligned loads and stores while debugging.  Fix formatting.
14869
14870 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
14871
14872         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
14873         of computing wmode.
14874         (restore_stack_nonlocal): Same.
14875
14876 2004-01-27  Devang Patel <dpatel@apple.com>
14877
14878         * Makefile.in (dwarf2out.o): Depend on input.h
14879         * dbxout.c (dbx_debug_hooks): Add new empty hook for
14880         imported_module_or_decl.
14881         (xcoff_debug_hooks): Same.
14882         * sdbout.c (sdb_debug_hooks): Same.
14883         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
14884         * debug.c (do_nothing_debug_hooks): Same.
14885         (debug_nothing_tree_tree): New function.
14886         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
14887         * dwarf2out.c: Include input.h.
14888         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
14889         (remove_child_TAG): New function.
14890         (dwarf_tag_name): Handle DW_TAG_imported_module.
14891         (gen_subprogram_die): Equate decl number to declaration die. Do not
14892         remove all children dies while reusing declaration die for definition.
14893         Instead, selectively remove only formal parameters.
14894         (gen_variable_die): Equate variable decl to declaration die.
14895         (gen_field_die): Equate field decl to line number.
14896         (force_namespace_die): Replace it with ...
14897         (force_decl_die): ... this.
14898         (force_type_die): New function.
14899         (setup_namespace_context): Replace use of force_namespace_die() with
14900         force_decl_die().
14901         (gen_namespace_die): Same.
14902         (dwarf2out_imported_module_or_decl): New function.
14903
14904 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
14905
14906         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
14907         on CQImode and CHImode incoming arguments in register a7.
14908         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
14909         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
14910         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
14911         xtensa_copy_incoming_a7 before reload.
14912
14913 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14914
14915         * coverage.c (get_coverage_counts): Give a different message
14916         if flag_guess_branch_prob is set.
14917         * predict.c (counts_to_freqs): Return an int.
14918         (estimate_bb_frequencies): If counts_to_freqs returns zero,
14919         calculate estimates.
14920
14921 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
14922
14923         * config/iq2000/iq2000-protos.h: Remove the prototype for
14924         iq2000_setup_incoming_varargs.
14925         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14926         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14927         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14928         (TARGET_STRUCT_VALUE_RTX): Likewise.
14929         (TARGET_RETURN_IN_MEMORY): Likewise.
14930         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14931         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14932         (iq2000_return_in_memory): Likewise.
14933         (iq2000_setup_incoming_varargs): Make it static.  Receive the
14934         first argument by reference.
14935         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
14936         (PROMOTE_FUNCTION_RETURN): Likewise.
14937         (PROMOTE_PROTOTYPES): Likewise.
14938         (RETURN_IN_MEMORY): Likewise.
14939         (STRUCT_VALUE): Likewise.
14940         (SETUP_INCOMING_VARARGS): Likewise.
14941         (STRICT_ARGUMENT_NAMING): Likewise.
14942
14943 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
14944
14945         * fixinc/fixinc.c (test_test): Initialize res.
14946         (start_flexer): Initialize pz_cmd_save.
14947
14948 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14949
14950         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
14951         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
14952
14953 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14954
14955         PR 7198
14956         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
14957         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
14958         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
14959         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
14960         Possibly rename pattern for consistency.
14961         Remove ??? comments suggesting that this be done.
14962         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
14963         New patterns.
14964         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
14965         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
14966         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
14967         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
14968         Update to match.
14969
14970 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
14971
14972         * config/arm/arm.c (output_return_instruction): Only restore IP
14973         into SP if frame_pointer_needed.
14974
14975 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14976
14977         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14978         for SCmode and DCmode if ARCH32.
14979         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
14980         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
14981         if ARCH32.
14982         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
14983         if ARCH32.
14984         (BASE_OUTGOING_VALUE_REG): Likewise.
14985
14986 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14987
14988         PR target/10904
14989         PR target/13058
14990         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
14991         Forbid mode changes from SImode for lower FP regs if ARCH64.
14992
14993 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14994
14995         * Makefile.in (bt-load.o): Depend on except.h.
14996         * bt-load.c (except.h): #include.
14997         (compute_defs_uses_and_gen): If insn at end of BB can throw
14998         within this function, consider registers used by it unavailable for
14999         btr migration.
15000         (move_btr_def): If insn at end of BB can throw, insert before rather
15001         than after.
15002
15003         * flags.h (flag_btr_bb_exclusive): Declare.
15004         * toplev.c (flag_btr_bb_exclusive): New variable.
15005         (f_options): Add btr-bb-exclusive.
15006         * bt-load.c (augment_live_range): Restore old behaviour if
15007         flag_btr_bb_exclusive is set.
15008         * common.opt: Add entry for -fbtr-bb-exclusive.
15009         * opts.c (common_handle_options): Same.
15010         * doc/invoke.texi: Document -fbtr-bb-exclusive.
15011
15012         * bt-load.c (btrs_live_at_end): New variable.
15013         (compute_defs_uses_and_gen): Compute its pointed-to array.
15014         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15015         (augment_live_range): When augmenting with a new dominator,
15016         use only its btrs_live_at_end set, but also add in the full set
15017         of the old dominator.
15018         (btr_def_live_range): Use btrs_live_at_end.
15019         (move_btr_def): Set other_btr_uses_before_def, and move new set
15020         to the end of the basic block, if appropriate.
15021         (migrate_btr_defs): Allocate and free btrs_live_at_end.
15022
15023         * bt-load.c (basic_block_freq): Remove outdated comment.
15024
15025 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
15026
15027         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15028         (PREDICATE_CODES): Remove duplicate.
15029         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
15030         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
15031         (MASK_PROFILE_KERNEL): Adjust define.
15032
15033 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
15034
15035         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
15036         of long string literals from 32 bytes to sizeof (void *) when !-Os
15037         and to 1 with -Os.
15038
15039 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15040
15041         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
15042         constant addresses in the normal mode.
15043
15044 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15045
15046         * system.h (CHAR_BITFIELD): Delete.
15047         (BOOL_BITFIELD): New.
15048         * c-decl.c (c_scope): Use BOOL_BITFIELD.
15049         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15050
15051 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15052
15053         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15054         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15055         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15056         (TARGET_STRUCT_VALUE_RTX): Likewise.
15057         (TARGET_RETURN_IN_MEMORY): Likewise.
15058         (arc_return_in_memory): Likewise.
15059         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15060         (PROMOTE_FUNCTION_RETURN): Likewise.
15061         (RETURN_IN_MEMORY): Likewise.
15062         (STRUCT_VALUE): Likewise.
15063
15064 2004-01-26  Richard Henderson  <rth@redhat.com>
15065
15066         * c-parse.in (extension): Use itype.
15067         (SAVE_EXT_FLAGS): Don't allocate a tree.
15068         (RESTORE_EXT_FLAGS): Don't read a tree.
15069
15070 2004-01-26  Jan Hubicka  <jh@suse.cz>
15071
15072         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15073         to datastructure to be recycled.
15074
15075 2004-01-25  Jan Hubicka  <jh@suse.cz>
15076
15077         * genextract.c (main): Do not output the memset when not checking.
15078
15079 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15080
15081         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15082         switch statement instead of a chain of if statements.
15083
15084 2004-01-26  Jeff Law  <law@redhat.com>
15085
15086         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15087         acute accents for Petur Runolfsson's entry.
15088
15089 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15090
15091         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15092         (TARGET_RETURN_IN_MEMORY): Likewise.
15093         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15094         (RETURN_IN_MEMORY): Likewise.
15095
15096 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15097
15098          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15099          unaligned load/store into smaller loads and stores.
15100
15101 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15102
15103         * function.c (assign_parms): Do not assign
15104         long long argument to memory in prologue if
15105         is it loaded into register.
15106
15107 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15108
15109          PR middle-end/13779
15110          * expr.c (emit_group_load): split constant
15111          correctly into register components of PARALLEL insn.
15112
15113 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15114
15115         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15116         Use adjust_address_nv directly with appropriate mode.
15117         (restore_stack_nonlocal): Ditto.
15118
15119 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15120
15121         * config/xtensa/xtensa-protos.h: Remove the prototype for
15122         xtensa_builtin_saveregs.
15123         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15124         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15125         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15126         (TARGET_STRUCT_VALUE_RTX): Likewise.
15127         (TARGET_RETURN_IN_MEMORY): Likewise.
15128         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15129         (xtensa_builtin_saveregs): Make it static.
15130         (xtensa_return_in_memory): New.
15131         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15132         (PROMOTE_FUNCTION_RETURN): Likewise.
15133         (PROMOTE_PROTOTYPES): Likewise.
15134         (STRUCT_VALUE): Likewise.
15135         (RETURN_IN_MEMORY): Likewise.
15136         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15137
15138 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15139
15140         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15141         (arm_setup_incoming_varargs): Likewise.
15142         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15143
15144 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15145
15146         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15147         (cris_setup_incoming_varargs): Likewise.
15148         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15149
15150 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15151
15152         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15153         (ns32k_struct_value_rtx): Likewise.
15154         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15155         NS32K_STRUCT_VALUE_REGNUM.
15156
15157 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15158
15159         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15160         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15161         (TARGET_STRUCT_VALUE_RTX): Likewise.
15162         (arm_struct_value_rtx): Likewise.
15163         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15164         (STRUCT_VALUE): Likewise.
15165         (STRUCT_VALUE_REGNUM): Likewise.
15166         (PROMOTE_PROTOTYPES): Likewise.
15167
15168 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15169
15170         * config/ia64/ia64-protos.h: Remove the prototype for
15171         ia64_setup_incoming_varargs and ia64_return_in_memory.
15172         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15173         (TARGET_RETURN_IN_MEMORY): Likewise.
15174         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15175         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15176         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15177         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15178         (ia64_return_in_memory): Make it static.  Change the return
15179         type to bool from int.  Add an argument.
15180         (ia64_struct_value_rtx): New.
15181         * config/ia64/ia64.h: Remove commented-out definitions of
15182         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15183         PROMOTE_PROTOTYPES.
15184         (RETURN_IN_MEMORY): Remove.
15185         (STRUCT_VALUE_REGNUM): Likewise.
15186         (STRICT_ARGUMENT_NAMING): Likewise.
15187
15188 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15189
15190         PR target/13666
15191         * config/sparc/sparc.c (function_arg_union_value): New function.
15192         (function_arg): Use it to deal with unions.
15193         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15194         Replace a conditional statement by a simpler one.
15195
15196 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
15197
15198         * config/mips/mips.c (mips16_optimize_gp): Delete.
15199         (mips_reorg): Don't call it.
15200
15201 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15202
15203         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15204         (floatunsqihf2): Remove operand 6.
15205         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15206         fix patterns.
15207         (ldi_conditional, ldf_conditional): Validate operands.
15208
15209 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15210
15211         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15212         (HAVE_GAS_HIDDEN): Undefine as interim measure.
15213
15214 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15215
15216         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
15217         memory references if TARGET_EXPOSE_LDP nonzero.
15218
15219 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15220
15221         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15222
15223 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15224
15225         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15226         invalid operand combinations.
15227
15228 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15229
15230         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15231         c4x_legitimate_address_p.  Fix post_modify check.
15232
15233         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15234         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15235
15236 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15237
15238         * config/pa/pa-protos.h: Remove the prototype for
15239         hppa_builtin_saveregs.  Add a prototype for
15240         pa_return_in_memory.
15241         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15242         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15243         (TARGET_STRUCT_VALUE_RTX): Likewise.
15244         (TARGET_RETURN_IN_MEMORY): Likewise.
15245         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15246         (pa_struct_value_rtx): Likewise.
15247         (pa_return_in_memory): Likewise.
15248         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15249         PA_STRUCT_VALUE_REGNUM.
15250         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15251         (EXPAND_BUILTIN_SAVEREGS): Remove.
15252         (PROMOTE_PROTOTYPES): Likewise.
15253         (PROMOTE_FUNCTION_RETURN): Likewise.
15254
15255 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15256
15257         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15258         (TARGET_STRUCT_VALUE_RTX): Likewise.
15259         (vax_struct_value_rtx): Likewise.
15260         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15261         VAX_STRUCT_VALUE_REGNUM.
15262         (PROMOTE_PROTOTYPES): Remove.
15263
15264 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15265
15266         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
15267
15268 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
15269
15270         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15271         and MIPS64 have HI/LO interlocks.  Update comment.
15272
15273 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15274
15275         * config/stormy16/stormy16-protos.h: Remove the prototype for
15276         xstormy16_setup_incoming_varargs.
15277         * config/stormy16/stormy16.c
15278         (xstormy16_setup_incoming_varargs): Remove.
15279         (xstormy16_return_in_memory): New.
15280         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15281         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15282         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15283         (TARGET_STRUCT_VALUE_RTX): Likewise.
15284         (TARGET_RETURN_IN_MEMORY): Likewise.
15285         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15286         (PROMOTE_FUNCTION_RETURN): Likewise
15287         (PROMOTE_PROTOTYPES): Likewise
15288         (RETURN_IN_MEMORY): Likewise
15289         (STRUCT_VALUE): Likewise
15290         (SETUP_INCOMING_VARARGS): Likewise
15291
15292 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15293
15294         * config/mips/mips.c (mips_offset_within_object_p): New function.
15295         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15296         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
15297         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15298
15299 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15300
15301         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15302         (PROMOTE_FUNCTION_RETURN): Likewise.
15303
15304 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15305
15306         * config/mn10300/mn10300-protos.h: Remove the prototype for
15307         mn10300_builtin_saveregs.
15308         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15309         (TARGET_STRUCT_VALUE_RTX): Likewise.
15310         (TARGET_RETURN_IN_MEMORY): Likewise.
15311         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15312         (mn10300_return_in_memory): Likewise.
15313         (mn10300_builtin_saveregs): Make it static.
15314         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15315         (RETURN_IN_MEMORY): Likewise.
15316         (STRUCT_VALUE): Likewise.
15317         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15318
15319 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
15320
15321         PR bootstrap/13853
15322         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15323
15324 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15325
15326         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15327         using ccr.
15328
15329 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15330
15331         * config/i860/i860-protos.h: Remove the prototype for
15332         i860_saveregs.
15333         * config/i860/i860.c (i860_saveregs): Make it static.
15334         (i860_struct_value_rtx): New.
15335         (TARGET_STRUCT_VALUE_RTX): Likewise.
15336         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15337         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15338         I860_STRUCT_VALUE_REGNUM.
15339         (EXPAND_BUILTIN_SAVEREGS): Remove.
15340
15341 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15342
15343         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15344         (TARGET_RETURN_IN_MEMORY): Likewise.
15345         (m68hc11_struct_value_rtx): Likewise.
15346         (m68hc11_return_in_memory): Likewise.
15347         * config/m68hc11/m68hc11.h: Remove a commented-out definition
15348         of PROMOTE_PROTOTYPES.
15349         (RETURN_IN_MEMORY): Remove.
15350         (STRUCT_VALUE_REGNUM): Likewise.
15351
15352 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15353
15354         * config/mmix/mmix-protos.h: Remove the prototype for
15355         mmix_setup_incoming_varargs.
15356         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15357         (TARGET_STRUCT_VALUE_RTX): Likewise.
15358         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15359         (mmix_setup_incoming_varargs): Make it static.
15360         (mmix_struct_value_rtx): New.
15361         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15362         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15363         (STRUCT_VALUE_REGNUM): Remove.
15364         (SETUP_INCOMING_VARARGS): Likewise.
15365
15366 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15367
15368         * config/mips/mips-protos.h: Remove the prototypes for
15369         mips_setup_incoming_varargs and mips_return_in_memory.
15370         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15371         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15372         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15373         (TARGET_STRUCT_VALUE_RTX): Likewise.
15374         (TARGET_RETURN_IN_MEMORY): Likewise.
15375         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15376         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15377         (mips_setup_incoming_varargs): Match the prototype for
15378         TARGET_SETUP_INCOMING_VARARGS.
15379         (mips_return_in_memory): Make it static.  Add argument fntype.
15380         (mips_strict_argument_naming): New.
15381         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15382         (PROMOTE_FUNCTION_ARGS): Likewise.
15383         (PROMOTE_FUNCTION_RETURN): Likewise.
15384         (STRUCT_VALUE): Likewise.
15385         (RETURN_IN_MEMORY): Likewise.
15386         (SETUP_INCOMING_VARARGS): Likewise.
15387         (STRICT_ARGUMENT_NAMING): Likewise.
15388
15389 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15390
15391         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15392         (TARGET_RETURN_IN_MEMORY): Likewise.
15393         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15394         (ip2k_return_in_memory): Likewise.
15395         (ip2k_setup_incoming_varargs): Likewise.
15396         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15397         (STRUCT_VALUE): Likewise.
15398         (STRUCT_VALUE_INCOMING): Likewise.
15399         (SETUP_INCOMING_VARARGS): Likewise.
15400
15401 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15402
15403         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15404         (TARGET_RETURN_IN_MEMORY): Likewise.
15405         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15406         (avr_return_in_memory): Remove.
15407         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15408         (STRUCT_VALUE): Likewise.
15409         (STRUCT_VALUE_INCOMING): Likewise.
15410         (STRICT_ARGUMENT_NAMING): Likewise.
15411
15412 2004-01-25  Jan Hubicka  <jh@suse.cz>
15413
15414         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15415
15416 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15417
15418         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15419         (mips_regno_mode_ok_for_base_p): Declare.
15420         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15421         (FRAME_POINTER_REGNUM): Renumber to 78.
15422         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15423         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15424         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15425         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15426         (REG_MODE_OK_FOR_BASE_P): Likewise.
15427         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15428         entry for 77 to "$arg" and entry for 78 to "$frame".
15429         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15430         (mips_reg_mode_ok_for_base_p): Remove.
15431         (mips_regno_mode_ok_for_base_p): New function, derived from old
15432         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
15433         restrictions unless we're being strict.
15434         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15435
15436 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15437
15438         * c-common.h: Fix comment typos.
15439         * c-decl.c: Likewise.
15440         * cgraphunit.c: Likewise.
15441         * combine.c: Likewise.
15442         * et-forest.c: Likewise.
15443         * flow.c: Likewise.
15444         * function.c: Likewise.
15445         * ifcvt.c: Likewise.
15446         * integrate.c: Likewise.
15447         * jump.c: Likewise.
15448         * postreload.c: Likewise.
15449         * varray.c: Likewise.
15450
15451 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15452
15453         * doc/frontends.texi: Update copyright.
15454         * doc/gcov.texi: Likewise.
15455         * doc/gty.texi: Likewise.
15456         * doc/sourcebuild.texi: Likewise.
15457         * doc/standards.texi: Likewise.
15458
15459 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
15460
15461         PR target/12978
15462         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15463         Remove movstrqi_small because it conflicts with movstrqi_large.
15464
15465 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15466
15467         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15468         (TARGET_STRUCT_VALUE_RTX): Likewise.
15469         (cris_struct_value_rtx): Likewise.
15470         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15471         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15472         STRUCT_VALUE_REGNUM.
15473         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15474
15475 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
15476
15477         PR bootstrap/13848
15478         * cse.c (cse_cc_succs): Change the mode of the source expression
15479         as soon as decide we need a new mode.  Don't permit changing modes
15480         if we found a match in a successor block.
15481         (cse_condition_code_reg): Save original mode of source expression
15482         so that we know whether we have to change the mode in other
15483         insns.
15484
15485 2004-01-24  Jan Hubicka  <jh@suse.cz>
15486
15487         * emit-rtl.c (change_address, adjust_address_1, offset_address,
15488         widen_memory_access):  Return early when there is nothing to change.
15489
15490 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
15491
15492         * simplify-rtx.c (simplify_relational_operation): Don't
15493         simplify address == constant into address + -constant == 0.
15494
15495 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15496
15497         * gcc.c (process_command): Don't internationalize the
15498         Copyright message.
15499         * mips-tfile.c (main): Likewise.
15500
15501 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
15502
15503         * cse.c: (cse_cc_succs) Fix comparison warning.
15504
15505 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15506
15507         * config/h8300/h8300.md: Remove extraneous USE in expanders.
15508
15509 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15510
15511         * config/h8300/h8300-protos.h: Provide prototypes for
15512         h8300_legitimate_constant_p and h8300_legitimate_address_p.
15513         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
15514         (h8300_rtx_ok_for_base_p): Likewise.
15515         (h8300_legitimate_address_p): Likewise.
15516         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
15517         h8300_legitimate_constant_p.
15518         (RTX_OK_FOR_BASE_P): Remove.
15519         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
15520
15521 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15522
15523         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
15524         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15525         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
15526         (REG_OK_FOR_BASE_STRICT_P): Likewise.
15527         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
15528         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
15529         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
15530         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
15531
15532 2004-01-24  Jan Hubicka  <jh@suse.cz>
15533
15534         * cselib.c (remove_useless_values):  Do not access discarded values.
15535
15536 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
15537
15538         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
15539         arrays.
15540
15541 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
15542
15543         * recog.c: Fix a typo in copyright.
15544
15545 2004-01-23  Andrew Pinski  <apinski@apple.com>
15546
15547         * config/rs6000/rs6000.md (call): Fix misappiled patch.
15548         (call_value): Likewise.
15549
15550 2004-01-23  Richard Henderson  <rth@redhat.com>
15551
15552         PR opt/12941
15553         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
15554         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
15555         if SHIFT_COUNT_TRUNCATED is set.
15556
15557 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
15558
15559         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
15560         separate real and imaginary parts.
15561         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
15562
15563 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
15564
15565         PR target/13674
15566         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
15567         loading into GPR.
15568
15569 2004-01-23  Jan Hubicka  <jh@suse.cz>
15570
15571         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
15572         change.
15573
15574         * alloc-pool.c (align_four): Kill.
15575         (create_alloc_pool): Align size to eight.
15576         (free_alloc_pool, free_pool): Invalidate deallocated data.
15577
15578 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
15579
15580         PR gcc/1532
15581         * cse.c (cse_change_cc_mode): New static function.
15582         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
15583         (cse_condition_code_reg): New function.
15584         * rtl.h (cse_condition_code_reg): Declare.
15585         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
15586         * target.h (struct gcc_target): Add fixed_condition_code_regs and
15587         cc_modes_compatible.
15588         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15589         (TARGET_CC_MODES_COMPATIBLE): Define.
15590         (TARGET_INITIALIZER): Add new initializers.
15591         * targhooks.c (default_cc_modes_compatible): New function.
15592         * targhooks.c (default_cc_modes_compatible): Declare.
15593         * hooks.c (hook_bool_intp_intp_false): New function.
15594         * hooks.h (hook_bool_intp_intp_false): Declare.
15595         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15596         (TARGET_CC_MODES_COMPATIBLE): Define.
15597         (ix86_fixed_condition_code_regs): New static function.
15598         (ix86_cc_modes_compatible): Likewise.
15599         * doc/tm.texi (Condition Code): Document new hooks.
15600
15601 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15602
15603         * fixinc/inclhack.def (bad_lval): Renamed to ...
15604         (alpha_bad_lval): ... this.
15605         Removed file list.
15606         Restrict to alpha*-dec-osf*.
15607         * fixinc/fixincl.x: Regenerate.
15608         * fixinc/tests/base/dirent.h: Remove, moving test ...
15609         * fixinc/tests/base/testing.h: ... here, reflecting new name.
15610
15611 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
15612
15613         PR c/13814
15614         * c-decl.c (diagnose_mismatched_decls): Also discard a
15615         built-in if we encounter an old-style definition with the
15616         same name.
15617
15618 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
15619
15620         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
15621         set to default{32,64}.
15622
15623 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15624
15625         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
15626         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
15627
15628 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
15629             Olivier Hainque  <hainque@act-europe.fr>
15630
15631         * fold-const.c (fold_binary_op_with_conditional_arg): Only
15632         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
15633
15634 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
15635
15636         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
15637         size for minipool references.
15638
15639 2004-01-23  Roger Sayle  <roger@eyesopen.com>
15640
15641         * real.c (real_floor, real_ceil): Tweak to allow input and output
15642         arguments to overlap.
15643         (real_round): New function to implement round(3m) semantics.
15644         * real.h (real_round): Prototype here.
15645         * builtins.c (fold_builtin_round): New function to constant fold
15646         round, roundf and roundl.
15647         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
15648
15649 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
15650
15651         PR optimization/13819
15652         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
15653         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
15654         (sh_handle_sp_switch_attribute): Remove warning.
15655
15656 2003-11-30  Jan Hubicka  <jh@suse.cz>
15657
15658         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
15659
15660 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
15661
15662         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
15663         may or may not return non-NIL.
15664         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
15665         check CANNOT_CHANGE_MODE_CLASS
15666
15667 2004-01-23  Jan Hubicka  <jh@suse.cz>
15668
15669         * basic-block.h (PROP_POSTRELOAD): New macro.
15670         (CLEANUP_LOG_LINKS): New.
15671         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
15672         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
15673
15674         * cselib.c (value_pool): New.
15675         (new_cselib_val): Use pool.
15676         (cselib_init): Initialize value_pool
15677         (cselib_finish): Free pool.
15678
15679 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
15680
15681         * config/sparc/sparc.c (scan_record_type): New function.
15682         (function_arg_slotno): Use it to determine which kinds of
15683         registers the record can be passed in.
15684
15685 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
15686
15687         * config/pa/fptr.c: Fix old-style definition.
15688
15689 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
15690
15691         PR optimization/13724
15692         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
15693         represents the zero bits produced by a ZERO_EXTEND operation.
15694
15695 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15696
15697         PR optimization/13821
15698         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
15699         correctly calculate the lowpart offset of the contracted subreg.
15700
15701 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
15702
15703         * doc/invoke.texi (Optimize Options): Note that --param arguments
15704         are subject to change without notice.
15705
15706 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15707
15708         * config.gcc (mips-sgi-irix6*o32): Removed.
15709         * config/mips/iris6-o32-as.h: Likewise.
15710         * config/mips/iris6-o32-gas.h: Likewise.
15711         * config/mips/iris6-o32.h: Likewise.
15712
15713 2004-01-22  Jan Hubicka  <jh@suse.cz>
15714
15715         * cfgcleanup.c (first_pass): New static variable.
15716         (try_forward_edges):  Add work limiting check for threading.
15717         (try_crossjump_bb):  Add work limiting check for crossjumping.
15718         (try_optimize_cfg):  Maintain first pass variable.
15719
15720 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
15721
15722         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
15723         handles complex and vector modes.
15724
15725 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15726
15727         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
15728         (REG_OK_FOR_BASE_P_STRICT): Likewise.
15729         (STRICT): Likewise.
15730
15731 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15732
15733         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
15734         (genrtl_for_stmt): Remove emit_nop calls.
15735
15736 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15737
15738         PR target/13713
15739         PR target/13324
15740         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
15741         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
15742         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
15743
15744 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15745
15746         * config/arm/arm.c: Include "debug.h".
15747         (thumb_pushpop): Take two new arguments.  Add some commentary.
15748         Output frame information when pushing.
15749         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
15750         thumb_pushpop.
15751         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
15752         offset, and pass it to thumb_pushpop.  Output CFI information.
15753         (thumb_expand_prologue): Add some frame-related markers and notes.
15754
15755 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
15756
15757         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
15758         for TARGET_64BIT.
15759         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
15760         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
15761
15762 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15763             Paolo Bonzini  <bonzini@gnu.org>
15764
15765         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
15766         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
15767         * rtl.h (subreg_lsb_1): Prototype here.
15768         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
15769         sign extensions.
15770
15771 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15772
15773         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
15774         macro need not be defined if jump-tables should contain
15775         relative addresses only when -fPIC or -fPIC is in effect.
15776
15777 2004-01-22  Jan Hubicka  <jh@suse.cz>
15778
15779         * alias.c (reg_base_value): Turn into varray.
15780         (reg_base_value_size): Kill.
15781         (old_reg_base_value): New deletable varray.
15782         (alias_invariant_size): New variable.
15783         (REG_BASE_VALUE): Update to use varray.
15784         (find_base_value): Likewise.
15785         (record_set): Likewise.
15786         (record_base_value): Likewise.
15787         (memrefs_conflict_p): Likewise.
15788         (record_set): Likewise
15789         (record_base_value): Likewise.
15790         (memrefs_conflict_p): Use alias_invariant_size.
15791         (init_alias_analysis): Use varray; set alias_invariant_size;
15792         rescale other arrays to be sized by maxreg.
15793         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
15794
15795 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
15796
15797         * config/sparc/sparc.c (function_arg_slotno): Use
15798         FLOAT_TYPE_P to detect FP fields in structures.
15799         (function_arg_record_value_1): Likewise.
15800         (function_arg_record_value_2): Likewise.
15801
15802 2004-01-22  Jan Hubicka  <jh@suse.cz>
15803
15804         * function.c (allocate_struct_function): Do not initialize expr, emit
15805         and varasm.
15806         (prepare_function_start): Do it here.
15807         * c-parse.in (maybe_type_qual): Do not produce line number notes.
15808
15809 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
15810
15811         PR target/13559
15812         * config/sparc/sparc.c (function_arg_record_value_3): Revert
15813         to 'word_mode' once the first slot has been filled.
15814
15815 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
15816
15817         * config/sparc/sparc.c (function_arg_record_value_1): Fix
15818         computation of the number of integer registers required.
15819
15820 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15821
15822         * config/i386/i386.md: Simplify certain comparisons of
15823         const_int.
15824
15825 2004-01-21  Andrew Pinski  <apinski@apple.com>
15826
15827         PR target/13785
15828         * config/rs6000/rs6000.md (call_value): Force operand
15829         1 not operand 0 into a register.
15830
15831 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15832
15833         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
15834         unwind-dw2-fde.h: Update copyright.
15835
15836 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15837
15838         * pa-protos.h: Update copyright.
15839         * pa.h: Likewise.
15840         * pa.md: Likewise.
15841
15842 2004-01-21  Caroline Tice  <ctice@apple.com>
15843
15844         PR target/12308
15845         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
15846         flags register.
15847         (fix_truncdfdi2): Likewise.
15848         (fix_truncsfdi2): Likewise.
15849         (*fix_truncdi_1): Likewise.
15850         (fix_truncxfsi2): Likewise.
15851         (fix_truncdfsi2): Likewise.
15852         (fix_truncsfsi2): Likewise.
15853         (*fix_truncsi_1): Likewise.
15854         (fix_truncxfhi2): Likewise.
15855         (fix_truncdfhi2): Likewise.
15856         (fix_truncsfhi2): Likewise.
15857         (*fix_trunchi_1): Likewise.
15858
15859 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15860
15861         * alias.c, basic-block.h, c-common.c, c-common.h,
15862         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
15863         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
15864         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
15865         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
15866         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
15867         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
15868         genautomata.c, genconditions.c, genemit.c, genflags.c,
15869         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
15870         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
15871         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
15872         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
15873         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
15874         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
15875         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
15876         unwind.h, varray.c, varray.h: Update copyright.
15877
15878 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15879
15880         * config/h8300/coff.h: Update copyright.
15881         * config/h8300/elf.h: Likewise.
15882         * config/h8300/h8300-protos.h: Likewise.
15883         * config/h8300/h8300.c: Likewise.
15884         * config/h8300/h8300.h: Likewise.
15885         * config/h8300/h8300.md: Likewise.
15886
15887 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15888
15889         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
15890         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
15891         ultrix_unistd): New hacks.
15892         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
15893         ULTRIX_CONST2_CHECK): Add checks.
15894         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
15895         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
15896         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
15897         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
15898         * fixinc/tests/base/locale.h: New file.
15899         * fixinc/fixincl.x: Rebuilt.
15900
15901 2004-01-21  Andreas Jaeger  <aj@suse.de>
15902             Michael Matz  <matz@suse.de>
15903
15904         * doc/extend.texi (Extended Asm): Clarify memory clobber.
15905
15906 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15907
15908         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
15909         _Jv_RegisterClasses through a function pointer.
15910
15911 2004-01-21  Falk Hueffner  <falk@debian.org>
15912
15913         PR target/12898
15914         * config/alpha/alpha.c (alpha_emit_set_const_1): If
15915         no_new_pseudos, use gen_rtx_SET directly for SImode constants
15916         which need multiple instructions to emit.
15917
15918 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
15919
15920         * config/m32r/m32r.h (CPP_SPEC): Define.
15921
15922 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
15923
15924         * c-decl.c (merge_decls): Kill different_binding_level and
15925         different_tu arguments; simplify throughout.
15926         (duplicate_decls): Likewise.
15927         (pushdecl, merge_translation_unit_decls): Update calls to
15928         duplicate_decls.
15929
15930 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15931
15932         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
15933         $(SYSTEM_H).
15934         (print-rtl1.o): Depend on $(SYSTEM_H).
15935
15936 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
15937
15938         PR bootstrap/12730
15939         * configure.ac: Delete definition and subsitution of docdir.
15940         Add info, man, srcman and srcinfo to target hooks. Create doc/
15941         directory.
15942         * configure: Regenerate.
15943         * Makefile.in: Don't substitute docdir and delete all references
15944         throughout.
15945         (MAKEINFOFLAGS): Define.
15946         (stmp-docobjdir): Delete.
15947         (INFOFILES, MANFILES): Define.
15948         (info): Call lang.info, srcinfo and lang.srcinfo.
15949         (generated-manpages): Call lang.man, srcman and lang.srcman.
15950         (srcinfo, srcman): New rules to copy back files to source directory.
15951         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
15952         (install-man): Revamp rule.
15953         (clean): Update dvi directory.
15954         (distclean): Delete TAGS from front end directorys.
15955         (maintainer-clean): Delete all document files in source directory.
15956
15957         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
15958         (objc.srcman, objc.srcinfo): Likewise.
15959
15960 2004-01-20  Bruce Korb  <bkorb@gnu.org>
15961
15962         * fixinc/inclhack.def(math_exception): bypass only for glibc.
15963         (matherr_decl): rename & relocate as exception_structure.
15964         This fix must precede the math_exception fix.
15965
15966 2004-01-20  Roger Sayle  <roger@eyesopen.com>
15967
15968         * fold-const.c (fold_convert): Rename to fold_convert_const.
15969         (fold_convert_const): Change arguments to take a tree_code,
15970         a type and the operand/expression to be converted.  Return
15971         NULL_TREE if no simplification is possible.  Add support for
15972         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
15973         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
15974         Adjust call to fold_convert to match new fold_convert_const.
15975         Avoid modifying the tree passed to fold in-place.
15976
15977 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
15978
15979         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
15980         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
15981         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
15982
15983 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15984
15985         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
15986         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
15987         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
15988         (emit_move_sequence): Check scratch_reg first in various if statements.
15989         Extend source simplification to handle all 64-bit CONST_INTs.
15990         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
15991         frame size.
15992         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
15993         frame offset calculations.
15994         * pa.h (NEW_HP_ASSEMBLER): Add comment.
15995         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
15996         LEGITIMATE_64BIT_CONST_INT_P): Define.
15997         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
15998         any CONST_INT as legitimate during and after reload.
15999         (VAL_32_BITS_P, INT_32_BITS): Define.
16000         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16001
16002 2004-01-20  Jan Hubicka  <jh@suse.cz>
16003
16004         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16005         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16006         containing hard regs are shared.
16007         (gen_hard_reg_clobber): New function.
16008         (hard_reg_clobbers): New array.
16009         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16010         (copy_rtx): Do not copy clobbers containing hard regs.
16011         * rtl.h (gen_hard_reg_clobber): Declare.
16012
16013 2004-01-20  Jan Hubicka  <jh@suse.cz>
16014
16015         * varray.c:  Include hashtab.h
16016         (varray_descriptor): New structure.
16017         (hash_descriptor, eq_descriptor, varray_descriptor,
16018         print_statistics): New static functions
16019         (varray_init, varray_grow): Update statistics
16020         (dump_varray_statistics): New function.
16021         * varray.h (dump_varray_statistics): Declare.
16022         * toplev.c (finalize): Call it.
16023         * Makefile.in (varray.o): Add dependency.
16024
16025 2004-01-20  Jan Hubicka  <jh@suse.cz>
16026
16027         * cselib.c: Include alloc-pool.h
16028         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
16029         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
16030         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
16031         unchain_one_elt_loc_list_pool, unchain_one_value,
16032         new_cselib_val): Simplify using allocpool.
16033         (cselib_init): Initialize allocpools.
16034         (cselib_finish): Finish allocpools.
16035         * Makefile.in (cselib.o): Depend on alloc-pool.h
16036
16037 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
16038
16039         * config/mips/mips.c (mips_load_call_address): Make the call insn
16040         use $gp if it could be calling a lazy binding stub.
16041
16042 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16043
16044         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16045         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16046         (TARGET_STRUCT_VALUE_RTX): Likewise.
16047         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16048         (PROMOTE_FUNCTION_RETURN): Remove.
16049         (STRUCT_VALUE): Remove.
16050
16051 2004-01-20  Denis Chertykov  <denisc@overta.ru>
16052
16053         PR bootstrap/13735
16054         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16055         register as pointer after reload.
16056
16057 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16058
16059         PR optimization/12440
16060         * loop.c: Include ggc.h.
16061         (loop_optimize): Run garbage collector between optimization of loops.
16062         * Makefile.in (loop.o): Add GGC_H dependency.
16063
16064 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16065
16066         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16067         vector register special in function without prototype.
16068         (function_arg_advance): Vector parameters get always
16069         GPRs allocated for the linux64 target.
16070
16071 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16072
16073         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16074         not TARGET_M32RX_MASK.
16075
16076 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16077
16078         PR target/13557
16079         * config/sparc/sparc.c (function_arg): Reorder the cases.
16080
16081 2004-01-19  Per Bothner  <per@bothner.com>
16082
16083         Move cpp_reader's line_maps field to a shared global.
16084         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16085         and change the type to a pointer rather than a struct.
16086         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16087         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16088         Likewise.
16089         * cppfiles.c (validate_pch):  Likewise.
16090         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16091         Likewise.
16092         * cpperror.c (print_location):  Likewise.
16093         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16094         * cppinit.c (cpp_create_reader):  Handle new parameter.
16095         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16096         * input.h (line_table):  New variable.
16097         * toplev.c (line_table):  Declare variable.
16098         (general_init):  Initialize line_table.
16099         * c-opts.c (c_common_init_options):  Pass line_table to
16100         cpp_create_reader.
16101         * fix-header.c (read_scan_file):  New local variable line_table.
16102         Initialize, and pass it to cpp_create_reader.
16103         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16104         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16105
16106 2004-01-19  Per Bothner  <per@bothner.com>
16107
16108         Implement a cache for linemap_lookup.
16109         * line-map.h (struct_line_maps):  Add cache field.
16110         * line-map.c (linemap_init):  Zero cache field.
16111         (linemap_add):  Set cache field to offset of newly allocated map.
16112         (linemap_lookup):  Use and set cache field.
16113
16114 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16115
16116         PR optimization/13567
16117         * cse.c (cse_basic_block): Call cse_insn with a non-null
16118         libcall_insn for the last SET insn of a no-confilict block.
16119
16120 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16121
16122         * Makefile.in (target_noncanonical, program_transform_name): Use
16123         immediate define instead of deferred.
16124         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16125         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16126         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16127         deferred backquote.
16128
16129 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16130
16131         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16132         true unconditionally.
16133         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16134         Remove.
16135         (build_unary_op, build_modify_expr): Don't handle extended
16136         lvalues.
16137         (build_component_ref, build_conditional_expr): Call non_lvalue
16138         instead of pedantic_non_lvalue.
16139         (build_c_cast): Don't condition use of non_lvalue on pedantic.
16140         * fold-const.c (fold): Don't check pedantic directly for
16141         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
16142         passed to pedantic_non_lvalue.
16143         * doc/extend.texi: Remove documentation of extended lvalues.
16144
16145 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16146
16147         PR optimization/5263
16148         * simplify-rtx.c (associative_constant_p): Delete.
16149         (simplify_associative_operation): Rewrite to linearize terms, and
16150         attempt to simplify new term against both left and right subterms.
16151         (simplify_binary_operation): Call swap_commutative_operands_p on
16152         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16153         trueop0 and trueop1 down to where first needed.
16154         (simplify_relational_operation): Likewise.
16155         * rtlanal.c (commutative_operand_precedence): Also order constant
16156         operands using avoid_constant_pool_reference.
16157
16158 2004-01-19  Richard Henderson  <rth@redhat.com>
16159
16160         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16161         don't check memory mode.
16162         (unaligned_memory_operand): Likewise.
16163         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16164         abort for op0 not MEM.
16165
16166         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16167         is not a reg, copy to a scratch first.
16168         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16169         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16170         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16171         (reload_inqi, reload_inhi): Fix mode of op0.
16172         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16173         reload_outhi_help): Likewise.  Use define_insn_and_split.
16174
16175         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16176         as well as $29 dead.
16177
16178 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16179
16180         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16181         "tls_object" for thread-local objects.
16182         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16183         "#tls" for thread-local sections.
16184         * configure.ac (thread-local checks): Specify --fatal-warnings in
16185         every binutils-specific checks.  For sparc*-*-*, test whether the
16186         OS is Solaris and the tools are native and act accordingly.
16187         * configure: Rebuild.
16188
16189 2004-01-19  Jeff Law  <law@redhat.com>
16190
16191         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16192         Jerry Quinn and Petur Runolfsson.
16193
16194 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16195
16196         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16197         size, don't use the larger zero-extending loads.
16198
16199 2004-01-19  Richard Henderson  <rth@redhat.com>
16200
16201         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16202         * alpha.md (UNSPEC_NT_LDA): Remove.
16203         (UNSPEC_CVTLQ, cvtlq): New.
16204         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16205         (extendsidi2_fix): Remove.
16206         (extendsidi2 splitter): Use cvtlq.
16207         (extendsidi2 fp peepholes): Remove.
16208         (cvtql): Use SFmode instead of SImode.
16209         (fix_trunc?fsi): Update to match.
16210         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16211         (movsi): Rename from movsi_nofix, remove f alternatives.
16212         (movsi_nt_vms): Similarly.
16213         (movsi_fix, movsi_nt_vms_fix): Remove.
16214         (nt_lda): Remove.
16215         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16216
16217 2004-01-19  Jan Hubicka  <jh@suse.cz>
16218
16219         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16220         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16221         list.
16222         (cgraph_remove_unreachable_nodes): New function
16223         (cgraph_decide_inlining_of_small_function): Fix pasto.
16224         (cgraph_decide_inlining_incrementally): Fix pasto.
16225         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16226
16227 2004-01-19  Steven Bosscher  <stevenb@suse.de>
16228
16229         * gengtype.c (header_file): Make it static.
16230         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16231         * gengtype.h (header_file): No longer extern.
16232
16233 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16234
16235         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16236         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16237         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16238
16239 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16240
16241         * stmt.c (HAVE_casesi): Define it not already defined.
16242         (HAVE_tablejump): Likewise.
16243         (expand_end_case_type): Resort to the binary tree method if
16244         neither casesi or tablejump is available.
16245
16246 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
16247
16248         * final.c (final_scan_insn): Make non-static again.
16249         * output.h (final_scan_insn): Re-add prototype.
16250         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16251         to final_scan_insn call.
16252         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16253         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16254         * config/pa/pa.c (output_lbranch, output_call): Likewise.
16255         * config/sh/sh.c (print_slot): Likewise.
16256         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16257         (output_sibcall, sparc_flat_function_epilogue): Likewise.
16258
16259 2004-01-18  Jan Hubicka  <jh@suse.cz>
16260
16261         * basic-block.h (try_redirect_by_replacing_jump): Declare.
16262         * cfgcleanup.c (try_optimize_cfg): Use it.
16263         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16264         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16265         Kill hack.
16266         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16267
16268         Revert:
16269         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16270
16271                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16272                 even after reload, just don't remove the actual jump tables.
16273
16274 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16275
16276         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16277
16278 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16279
16280         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16281         the size of a pointer in bytes.
16282
16283 2004-01-18  Roger Sayle  <roger@eyesopen.com>
16284
16285         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16286         live "next" variable, which could lead to an infinite loop.
16287
16288 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16289
16290         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16291         block.
16292
16293         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16294         Check for NULL in the chain and remove repeated code.
16295
16296 2004-01-18  Jan Hubicka  <jh@suse.cz>
16297
16298         * coverage.c (checksum_string): Rename to ...
16299         (coverage_checksum_string): ... this one, Use crc32_string; recognize
16300         names containing random number and zero the number out in order to get
16301         match.
16302
16303 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16304
16305         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16306
16307 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16308
16309         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16310         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16311         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16312         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16313         doc/trouble.texi: Remove trailing whitespace.
16314
16315 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16316
16317         PR target/7618
16318         * config/mips/mips.c: Include cfglayout.h.
16319         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16320         (mips_unspec_offset_high): Add temporary register argument.
16321         (mips_load_call_address): New function, split out from...
16322         (mips_expand_call): ...here.
16323         (mips_output_cplocal): New function.
16324         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16325         (mips_emit_loadgp): New function, split out from...
16326         (mips_expand_prologue): ...here.
16327         (mips_output_mi_thunk): New function.
16328
16329 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
16330
16331         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16332         mcpu32): Remove redundant checks for implied target predefines.
16333
16334 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
16335
16336         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16337         Return type is unsigned int not int.
16338         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16339         Likewise.
16340
16341 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16342
16343         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16344         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16345         "GNU/Linux" and "Microsoft Windows" terminology.
16346
16347 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16348
16349         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16350         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16351         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16352         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16353         @smallexample instead of @example.
16354
16355 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
16356
16357         * objc/objc-act.c (build_objc_method_call): Use target
16358         hooks instead of macros to determine if ..._stret
16359         dispatchers should be used (NeXT runtime only).
16360
16361 2004-01-17  Roger Sayle  <roger@eyesopen.com>
16362
16363         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16364         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16365
16366 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16367
16368         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16369         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16370         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16371         macros.
16372         * reload1.c (emit_reload_insns): Use them.
16373         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16374         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16375         for NULL PATTERN.
16376
16377 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16378
16379         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16380         (final_scan_insn): Update to take an additional SEEN argument.  Emit
16381         a line note after the prologue.  Make static.
16382         (line_note_exists): Remove.
16383         (final): Don't initialize line_note_exists.  Update call to
16384         final_scan_insn.
16385         * output.h (final_scan_insn): Remove prologue.
16386         * function.c (set_insn_locators): Update comment.
16387         (thread_prologue_and_epilogue_insns): Add a comment.
16388
16389 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
16390
16391         PR target/10781
16392         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16393         Prototype.
16394         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16395         New function.
16396         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16397         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16398         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16399
16400 2004-01-17  Jan Hubicka  <jh@suse.cz>
16401
16402         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16403         commit.
16404
16405         * toplev.c (HAVE_conditional_execution): Provide default.
16406         (rest_of_handle_reorder_blocks): For conditional_execution target
16407         update liveness once after all transformations
16408         (rest_of_compilation): Do crossjumping before ce3.
16409
16410 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
16411
16412         * alias.c (new_alias_set): Mark last_alias_set for PCH.
16413         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16414         for PCH.
16415         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16416         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16417         (get_TOC_alias_set): Mark 'set' for PCH.
16418
16419 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16420
16421         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16422         even after reload, just don't remove the actual jump tables.
16423
16424 2004-01-17  J. Brobecker  <brobecker@gnat.com>
16425
16426         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16427         Remove checks for is_ada() and TREE_UNSIGNED.
16428         (subrange_type_die): Emit a byte_size attribute if the subrange
16429         type size is different from the base type size.
16430         (modified_type_die): Replace call to is_ada_subrange_type() by
16431         call to is_subrange_type().
16432
16433 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
16434
16435         * config/sh/sh.c: Include ggc.h.
16436
16437 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16438
16439         * Makefile.in (MD5_H): New.
16440         (fold-const.o): Depend on md5.h.
16441         (dwarf2out.o): Likewise.
16442         (cppfiles.o): Likewise.
16443         * cppfiles.c: Include md5.h.
16444         (should_stack_file): Check against list read from PCH file.
16445         (struct pchf_data): New.
16446         (pchf): New variable.
16447         (struct pchf_adder_info): New.
16448         (pchf_adder): New.
16449         (pchf_save_compare): New.
16450         (_cpp_save_file_entries): New.
16451         (_cpp_read_file_entries): New.
16452         (struct pchf_compare_data): New.
16453         (pchf_compare): New.
16454         (check_file_against_entries): New.
16455         * cpphash.h (_cpp_save_file_entries): Prototype.
16456         (_cpp_read_file_entries): Prototype.
16457         * cpppch.c (cpp_write_pch_state): Write the list of headers.
16458         (cpp_read_state): Read the list of headers.
16459
16460 2004-01-17  Jan Hubicka  <jh@suse.cz>
16461
16462         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16463         builtin_expect specially.
16464         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16465         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16466         * invoke.texi (max-inline-insns-single): Set to 100.
16467         (large-function-insns): Set to 3000.
16468
16469 2004-01-16  Eric Christopher  <echristo@redhat.com>
16470             Chandrakala Chavva <cchavva@redhat.com>
16471
16472         * cppcharset.c (one_iso88591_to_utf8): New function.
16473         (convert_iso88591_utf8): Ditto. Use.
16474         (conversion_tab): Use.
16475         (_cpp_input_to_utf8): New function.
16476         (_cpp_init_iconv_buffer): Ditto.
16477         (_cpp_close_iconv_buffer): Ditto.
16478         * cpphash.h: Prototype new functions.
16479         (cpp_buffer): Add input_cset_desc.
16480         * cppinit.c: Add input_charset default.
16481         * cpplib.c (cpp_push_buffer): Support init and
16482         close of iconv.
16483         * cpplib.h (cpp_options): Add input_charset.
16484
16485 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16486
16487         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16488         * config/alpha/unicosmk.h: Remove a commented-out definition
16489         of ASM_OUTPUT_SECTION_NAME.
16490         * config/stormy16/stormy16.h: Likewise.
16491
16492 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16493
16494         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16495         (alpha___extern_prefix_sys_stat): ... this.
16496         Apply to <sys/mount.h>, too.
16497         Tweak to match more variations.
16498         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16499
16500         * fixinc/inclhack.def (alpha___extern_prefix,
16501         alpha___extern_prefix_standards): New hacks to obey
16502         __PRAGMA_EXTERN_PREFIX.
16503         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16504         test.
16505         * fixinc/tests/base/standards.h: Likewise.
16506
16507         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16508         variations.
16509         New testcase.
16510         * fixinc/tests/base/pthread.h: Handle it.
16511
16512         * fixincl/inclhack.def (bad_lval): Sort file list.
16513         Add many missing files up to Tru64 UNIX V5.1B.
16514         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
16515         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
16516         order.
16517
16518         * fixinc/fixincl.x: Regenerate.
16519
16520 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
16521
16522         * version.c (version_string): Change to 3.5.0.
16523         * doc/include/gcc-common.texi (version-GCC): Likewise.
16524
16525 2004-01-16  Jan Hubicka  <jh@suse.cz>
16526
16527         * i386.md (load_tp_di): Fix pasto.
16528
16529         PR opt/13608
16530         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
16531
16532         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
16533         pp_c_character_constant, pp_c_floating_constant,
16534         pp_c_additive_expression, pp_c_shift_expression,
16535         pp_c_equality_expression, pp_c_and_expression,
16536         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
16537         pp_c_logical_and_expression): Remove inline modifier.
16538         * dwarf2out.c (get_AT): Likewise.
16539         * et-forest.c (et_splay): Likewise.
16540         * ra.h (ra_alloc, ra_calloc): Likewise
16541
16542 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16543
16544         * config/frv/frv-protos.h: Fix comment formatting.
16545         * config/frv/frv.c: Likewise.
16546         * config/frv/frv.h: Likewise.
16547         * config/frv/frv.md: Likewise.
16548         * config/frv/frvbegin.c: Likewise.
16549         * config/frv/frvend.c: Likewise.
16550
16551 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16552
16553         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
16554         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
16555         LINKER_DOES_NOT_WORK_WITH_DWARF2.
16556         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
16557
16558 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
16559
16560         PR 11864
16561         * postreload.c (reload_cse_simplify_operands): Don't remove
16562         implicit extension from LOAD_EXTEND_OP.
16563
16564 2004-01-16  Jan Hubicka  <jh@suse.cz>
16565
16566         PR opt/11350
16567         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
16568         after reload.
16569         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
16570         rtl_try_redirect_by_replacing_branch): Likewise.
16571
16572 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
16573
16574         PR pch/13689
16575         * alias.c (struct alias_set_entry): Mark for GC.
16576         (alias_sets): Make static, mark for GC.
16577         (record_alias_subset): Use GC to allocate alias structures.
16578         * varray.c (element): Make generic varrays GCed.
16579
16580         PR pch/13361
16581         * c-typeck.c (constructor_asmspec): Delete.
16582         (struct initializer_stack): Delete field 'asmspec'.
16583         (start_init): Delete saving of asmspec.
16584         (finish_init): Don't update constructor_asmspec.
16585         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16586         * stmt.c (expand_asm): Duplicate strings from tree.
16587         (expand_asm_operands): Likewise.
16588         * tree.c (tree_size): Update computation of size of STRING_CST.
16589         (make_node): Don't make STRING_CST nodes.
16590         (build_string): Allocate string with tree node.
16591         * tree.def (STRING_CST): Update comment.
16592         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16593         (tree_string): Place contents of string in tree node.
16594         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16595         from tree.
16596
16597         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
16598         altivec operands.
16599
16600 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16601
16602         * c-common.h: Fix comment formatting.
16603         * c-cppbuiltin.c: Likewise.
16604         * c-pragma.c: Likewise.
16605         * calls.c: Likewise.
16606         * collect2.c: Likewise.
16607         * cppcharset.c: Likewise.
16608         * cpptrad.c: Likewise.
16609         * dbxout.c: Likewise.
16610         * defaults.h: Likewise.
16611         * dwarf2out.c: Likewise.
16612         * fold-const.c: Likewise.
16613         * genautomata.c: Likewise.
16614         * genconditions.c: Likewise.
16615         * genflags.c: Likewise.
16616         * gengtype.c: Likewise.
16617         * integrate.c: Likewise.
16618         * loop.c: Likewise.
16619         * predict.c: Likewise.
16620         * sdbout.c: Likewise.
16621
16622 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
16623
16624         * config/ia64/ia64.md (*movti_internal): C output template
16625         extracted to ia64.c.
16626         (*movti_internal_reg): Delete.
16627         (reload_inti, reload_outti): Use the correct mode on operand 2
16628         in the first place, don't fix it up in the output template.
16629         (movtf, reload_ointf, reload_outtf): New expanders.
16630         (*movtf_internal): New define_insn_and_split.
16631         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
16632         make static; do not hand TFmode CONST_DOUBLEs to split_double.
16633         (ia64_split_tmode_move): New function, body mostly pulled
16634         from ia64.md:*movti_internal.
16635         (ia64_function_arg_words): New function, extracted common
16636         logic from ia64_function_arg et seq.
16637         (ia64_function_arg_offset): Likewise.  Handle correctly the
16638         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
16639         (ia64_function_arg, ia64_function_arg_partial_nregs)
16640         (ia64_function_arg_advance): Use ia64_function_arg_words and
16641         ia64_function_arg_offset.
16642         (ia64_function_value): TCmode does not go in float regs.
16643         (ia64_secondary_reload_class): Also handle TFmode.
16644         * config/ia64/ia64-protos.h: Remove prototype for
16645         ia64_split_timode; add prototype for ia64_split_tmode_move.
16646
16647 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16648
16649         * Makefile.in (MAINT): Make it an immediate assignment.
16650
16651 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16652
16653         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
16654
16655 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16656
16657         * config/h8300/coff.h: Replace Hitachi with Renesas.
16658         * config/h8300/elf.h: Likewise.
16659         * config/h8300/h8300-protos.h: Likewise.
16660         * config/h8300/h8300.c: Likewise.
16661         * config/h8300/h8300.h: Likewise.
16662         * config/h8300/h8300.md: Likewise.
16663         * config/h8300/lib1funcs.asm: Likewise.
16664
16665 2004-01-15  Andrew Pinski  <apinski@apple.com>
16666
16667         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
16668         around it.
16669
16670 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16671
16672         * config/h8300/h8300.c (h8300_return_in_memory): New.
16673         (TARGET_STRUCT_VALUE_RTX): Likewise.
16674         (TARGET_RETURN_IN_MEMORY): Likewise.
16675         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
16676         (RETURN_IN_MEMORY): Likewise.
16677
16678 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16679
16680         PR optimization/13375
16681         * gcse.c (handle_avail_expr): Just return if the source is not a
16682         single set.
16683
16684 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16685             Daniel Jacobowitz  <drow@mvista.com>
16686
16687         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
16688         (EQUIV): Define.
16689         (ARM_FUNC_ALIAS): New macro.
16690         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
16691         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
16692
16693 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16694
16695         PR optimization/12372
16696         * calls.c (expand_call): Add call_fusage data for stack arguments in
16697         constant calls.
16698
16699 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
16700
16701         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
16702         (rs6000_elf_declare_function_name): Formatting.
16703         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
16704
16705 2004-01-15  Jan Hubicka  <jh@suse.cz>
16706
16707         PR bootstrap/13692
16708         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
16709         previous patch.
16710
16711 2004-01-15  Richard Henderson  <rth@redhat.com>
16712
16713         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
16714         integer regs of the same call-savedness.
16715
16716 2004-01-15  Andreas Schwab  <schwab@suse.de>
16717
16718         PR bootstrap/13562
16719         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
16720         status for NOTB/NOTW/NEGW methods.
16721
16722 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16723
16724         * doc/invoke.texi: Update dump file names.  Fix a typo.
16725
16726 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16727
16728         * builtins.c (expand_builtin_va_end): Don't use
16729         EXPAND_BUILTIN_VA_END.
16730         * system.h (EXPAND_BUILTIN_VA_END): Poison.
16731         * config/d30v/d30v.h: Remove a commented-out definition of
16732         EXPAND_BUILTIN_VA_END.
16733         * config/stormy16/stormy16.h: Likewise.
16734
16735 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16736
16737         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
16738         * targhooks.c (default_struct_value_rtx): Don't use
16739         STRUCT_VALUE_INCOMING_REGNUM.
16740
16741 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16742
16743         PR bootstrap/12744
16744         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
16745         GENINSRC and not parsedir.  Define srcextra as a langhook.
16746         * configure: Regenerate.
16747         * Makefile.in: Suppress default .l.c rule.  Don't substitute
16748         parsedir and delete all references throughout.  Conditionally define
16749         rule for srcextra dependent on GENINSRC.
16750         (stmp-docobjdir): Delete.
16751         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
16752         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
16753         and gengtype-yacc.h back to source directory.
16754         (maintainer-clean): Delete all parse files in source directory.
16755         (distclean): Delete generated files.
16756
16757         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
16758         (objc-parse.c, objc-parse.y): Don't use parsedir.
16759         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
16760         directory if requested.
16761         (po-generated): Don't use parsedir.
16762         (objc.maintainer-clean): Delete above files from source directory.
16763
16764 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16765
16766         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
16767
16768 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16769
16770         * doc/tm.texi: Replace RETURN_IN_MEMORY with
16771         TARGET_RETURN_IN_MEMORY.
16772
16773 2004-01-15  Jan Hubicka  <jh@suse.cz>
16774
16775         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
16776         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
16777         functions accepting SSE arguments
16778         (function_arg): Warn only when asked to warn.
16779         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
16780
16781 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
16782
16783         * c-parse.in (stmts_and_decls): Make label at end of compound
16784         statement a hard error.
16785
16786 2004-01-14  Jan Hubicka  <jh@suse.cz>
16787
16788         * cgraph.c (create_edge): Use local.redefined_extern_inline.
16789         * cgraph.h (cgraph_local_info): Sort fields by size; add
16790         redefined_extern_inline
16791         (cgraph_global_info): Sort fields by size.
16792         (cgraph_node): Likewise.
16793         * cgraphunit.c (cgraph_finalize_function): Se
16794         local.redefined_extern_inline on redefinition.
16795         (cgraph_analyze_function): Use it; fix formating.
16796
16797 2004-01-14  Jan Hubicka  <jh@suse.cz>
16798
16799         PR c++/10776
16800         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
16801         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
16802         bitmaps
16803         (cache_size): New variable
16804         (add_dependence): Update use; canonize early memory locations
16805         (sched_analyze_1): Likewise.
16806         (sched_analyze_2): Likewise.
16807         (init_dependency_caches): Initialize bitmaps.
16808         (free_dependency_caches): Free bitmaps
16809
16810 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16811
16812         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
16813         targetm.calls.strict_argument_naming().
16814         * target.h: Likewise.
16815
16816 2004-01-14  Richard Henderson  <rth@redhat.com>
16817
16818         PR debug/13231
16819         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
16820         instructions.
16821
16822 2004-01-14  Richard Henderson  <rth@redhat.com>
16823
16824         PR c++/12491
16825         * except.c (struct eh_region): Add u.fixup.resolved.
16826         (resolve_one_fixup_region): Split out from ...
16827         (resolve_fixup_regions): ... here.
16828
16829 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16830
16831         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
16832
16833 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16834
16835         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
16836         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
16837         (STRUCT_VALUE): Remove.
16838
16839 2004-01-14  Steven Bosscher  <stevenb@suse.de>
16840
16841         * system.h: Poison PROMOTED_MODE
16842         * integrate.c (expand_inline_function): Don't mention the
16843         PROMOTED_MODE.
16844         * loop.c (update_giv_derive): Same.
16845         * tree.h (DECL_RTL): Same.
16846
16847 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
16848
16849         PR target/9365
16850         * sh.c (gen_block_redirect): Add special handling of RETURN.
16851         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
16852         far branch target (i.e. it's a return).
16853
16854 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16855
16856         * regrename.c (find_oldest_value_reg): Fix a warning.
16857
16858 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
16859
16860         PR bootstrap/12527
16861         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
16862         Move linux-gas.h and linux-elf.h before aout.h.
16863         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
16864         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
16865
16866 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16867
16868         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
16869         (CONST_INT, VOIDmode, ...).
16870
16871 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
16872
16873         * regrename.c (find_oldest_value_reg): If the replacement uses
16874         multiple hard registers, check that all of them are in CLASS.
16875
16876 2004-01-14  Jan Hubicka  <jh@suse.cz>
16877
16878         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
16879         impossible.
16880
16881 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
16882
16883         * Makefile.in: Define MAINT from --enable-maintainer-mode.
16884
16885 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
16886
16887         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
16888         Calculate always vrsave_mask if TARGET_ALTIVEC.
16889         (rs6000_emit_prologue): Emit code for vrsave
16890         only if TARGET_ALTIVEC_VRSAVE.
16891         (rs6000_emit_epilogue): Likewise.
16892
16893 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
16894
16895         * config/sparc/sparc.md (tie_add32): Fix pasto.
16896         (tie_add64): Likewise.
16897
16898 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16899
16900         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
16901
16902 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16903
16904         * config/iq2000/iq2000-protos.h: Fix comment formatting.
16905         * config/iq2000/iq2000.c: Likewise.
16906         * config/iq2000/iq2000.md: Likewise.
16907
16908 2004-01-14  J. Brobecker  <brobecker@gnat.com>
16909
16910         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
16911         (subrange_type_die): Add handle for nameless subrange types.
16912
16913 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16914
16915         * config/h8300/h8300-protos.h: Replace do_movsi with
16916         h8300_expand_movsi.
16917         * config/h8300/h8300.c (do_movsi): Change to
16918         h8300_expand_movsi.
16919         * config/h8300/h8300.md (movsi): Replace do_movsi with
16920         h8300_expand_movsi.
16921         (movsf): Likewise.
16922
16923 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16924
16925         * config/h8300/h8300.c (dosize): Change to
16926         h8300_emit_stack_adjustment.  Update callers.
16927
16928 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16929
16930         * config/h8300/h8300.md (movstrictqi): Add an alternative with
16931         the source being post_inc.  Tighten the predicate for the
16932         destination to register_operand.
16933         (movstricthi): Likewise.
16934
16935 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16936
16937         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
16938         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
16939         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
16940
16941 2004-01-14  Jan Hubicka  <jh@suse.cz>
16942
16943         Partial fix PR c++/12850
16944         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
16945         at zero nest level.
16946
16947 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
16948
16949         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
16950         pseudo-register.
16951
16952 2004-01-13  Devang Patel <dpatel@apple.com
16953
16954         PR debug/7078
16955         * dbxout.c (dbxout_symbol_name): Emit mangled names for
16956         NAMESPACE_DECL memebers.
16957
16958 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
16959
16960         PR c++/12709
16961         * c-common.c (finish_fname_decls): Use the chain only if the
16962         tree is an expr_stmt.
16963
16964 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
16965
16966         * rtl.def: Add comment about new option in automata_option.
16967
16968         * genautomata.c (PROGRESS_OPTION): New macro.
16969         (progress_flag): New global variable.
16970         (gen_automata_option): Process `progress'.
16971         (transform_insn_regexps, check_unit_distributions_to_automata,
16972         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
16973         expand_automata, write_automata): Print about the progress only if
16974         progress_flag.  Remove fflush.
16975         (initiate_automaton_gen): Process command line flag `-progress'.
16976
16977         * doc/md.texi: Describe the new option.
16978
16979 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16980
16981         * cfg.c (dump_bb): Dump entry edges.
16982
16983 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
16984
16985         * arm.c (thumb_legitimate_address_p): Only allow constant pool
16986         references from SImode.
16987         * arm.md (thumb_movhi_insn): Don't allow minipool references.
16988
16989 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16990
16991         * system.h (TEXT_SECTION): Poison.
16992         * varasm.c (text_section): Don't use TEXT_SECTION.
16993         * config/sh/sh.c (sh_file_start): Fix a comment typo.
16994         * doc/tm.texi (TEXT_SECTION): Remove.
16995
16996 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
16997
16998         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
16999
17000 2004-01-12  James E Wilson  <wilson@specifixinc.com>
17001
17002         * unwind-libunwind.c: Delete.
17003
17004 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17005
17006         PR 13656
17007         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17008         oldtype is set, set *newtypep or *oldtypep too.  Do not set
17009         them at the very end.
17010         (validate_proto_after_old_defn): Restructure for comprehensibility;
17011         make error messages clearer.
17012
17013 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17014
17015         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17016         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17017         * varray.c: No need to prototype error.
17018         (varray_check_failed): Wrap long string onto two lines.
17019         (varray_underflow): New function.
17020
17021 2004-01-13  Steven Bosscher  <stevenb@suse.de>
17022
17023         PR c++/13376
17024         * function.h (struct function): Kill `name' field.
17025         (current_function_name): Make it an extern function.
17026         * function.c (current_function_name): New function.
17027         * graph.c: Update all uses of current_function_name.
17028         * gcse.c: Likewise.
17029         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
17030         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
17031         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
17032         instead of a strcmp with "main".
17033
17034 2004-01-13  Jan Hubicka  <jh@suse.cz>
17035
17036         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
17037
17038         * cgraphunit.c (cgraph_optimize_function):  Always do
17039         optimize_inline_calls when there is always_inline callee.
17040         (cgraph_decide_inlining): Fix formating.
17041         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
17042         functions.
17043         (expand_call_inline): Likewise.
17044         * toplev.h (sorry): Fix prototype.
17045
17046 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17047
17048         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17049         conditional jumps that drop through to unconditional jumps or the
17050         end of the sequence.
17051
17052 2004-01-13  Jan Hubicka  <jh@suse.cz>
17053
17054         * alias.c (new_alias_set): Construct the alias_set varray.
17055         (init_alias_once): Don't do it here.
17056
17057 2004-01-12  Marc Espie <espie@openbsd.org>
17058
17059         * system.h: handle YYBYACC like YYBISON.
17060
17061 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17062
17063         PR target/10847
17064         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17065         building on sparc64-*-openbsd*.
17066
17067 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17068
17069         PR debug/13539
17070         * dbxout.c (dbxout_type): Protected inheritance is not
17071         private but protected.
17072
17073 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17074
17075         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17076
17077 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17078
17079         PR optimization/12508.
17080         * combine.c (try_combine): Remove a dead set in a parallel
17081         even if its destination is a subreg.
17082
17083         Revert:
17084         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17085         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17086         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17087
17088 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17089
17090         * real.c: Update copyright date.
17091         * emit-rtl.c: Likewise.
17092         * rtl.h: Likewise.
17093         * dwarf2out.c: Likewise.
17094         * config/rs6000/darwin-ldouble.c: Likewise.
17095         * config/rs6000/rs6000.md: Likewise.
17096
17097 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17098
17099         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17100         TFmode to SImode libfuncs.
17101
17102 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17103
17104         PR middle-end/11397
17105         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17106
17107 2004-01-12  Jan Hubicka  <jh@suse.cz>
17108
17109         PR opt/12826
17110         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17111         stored.
17112
17113         PR opt/12863
17114         * cfgcleanup.c (label_is_jump_target_p): Move to...
17115         * rtlanal.c (label_is_jump_target_p): ... here.
17116         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17117         edges unified with branch edges.
17118
17119 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17120
17121         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17122         high word of an integral CONST_DOUBLE.
17123
17124 2004-01-12  Paul Brook  <paul@codesourcery.com>
17125
17126         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17127
17128 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17129
17130         PR target/13585
17131         * sh-protos.h (check_use_sfunc_addr): Declare.
17132         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17133         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17134
17135 2004-01-12  Jan Hubicka  <jh@suse.cz>
17136
17137         * alias.c:  Invlude varray.h
17138         (alias_sets): Turn into varray.
17139         (get_alias_set_entry): Use VARRAY; mark inline.
17140         (mems_in_disjoint_alias_sets_p): Mark inline.
17141         (record_alias_subset): Use varray.
17142         (init_alias_once): Initialize varray.
17143         (new_alias_set): Grow array.
17144         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17145
17146 2004-01-12  Jan Hubicka  <jh@suse.cz>
17147
17148         Partial fix for PR opt/10776 II
17149         * cselib.c: Include params.h
17150         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17151         locations.
17152         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17153         * Makefile.in (cselib.o): Depend on params.h
17154
17155 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17156
17157         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17158         simplify_unary_operation if the operand has a known mode.
17159
17160 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17161
17162         PR target/13534
17163         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17164         predicate to handle 'ld' conform addresses.
17165         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17166         contraint.
17167         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17168         are memory contraints.
17169         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17170         New prototype.
17171         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17172         Change 'o' to 'Y' constraint.
17173         (*movdf_softfloat64): Ditto.
17174
17175 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17176
17177         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17178         brace-enclosed syntax in all C output statements.
17179
17180 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17181
17182         PR target/13401
17183         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17184         Objective-C language type value is 14.
17185
17186 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17187
17188         PR c/12148
17189         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17190         `int' in a number of places to make sure we always have a SImode
17191         and not a HImode.  Add a 'L' suffix to a number of constants.
17192
17193 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17194
17195         * pa.c: Don't include obstack.h.
17196
17197         * pa.md: Correct constraint in pattern for loading PIC label address.
17198
17199 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17200
17201         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17202          before defining.
17203
17204 2004-01-11  Steven Bosscher  <stevenb@suse.de>
17205
17206         PR fortran/9972
17207         * toplev.c (rest_of_handle_inline): Also consider functions
17208         for deferral if the language is GNU F77.
17209
17210 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
17211
17212         * c-decl.c (diagnose_arglist_conflict): Add missing space to
17213         diagnostic messages.
17214
17215 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
17216
17217         PR middle-end/13392
17218         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17219         to drop through label.  Don't fall back to SCC even when conditional
17220         jump has not been found.
17221
17222 2004-01-11  Jan Hubicka  <jh@suse.cz>
17223
17224         * invoke.texi: Fix syntax error in previous patch.
17225
17226         Partial fix for PR opt/10776
17227         * Makefile.in (reload.o): Include param.h
17228         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17229         * reload.c: Include params.h.
17230         (find_equiv_reg): Work limiting check.
17231         * invoke.texi: Document.
17232
17233 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17234
17235         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17236         out-of-bounds accesses to string constants.  Simplify mips16
17237         case accordingly.
17238
17239 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17240
17241         PR optimization/13469
17242         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17243         reload_cse_regs (-fnon-call-exceptions only).
17244
17245 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17246
17247         * config/mcore/lib1.asm: Fix comment formatting.
17248         * config/mcore/mcore-elf.h: Likewise.
17249         * config/mcore/mcore.c: Likewise.
17250         * config/mcore/mcore.h: Likewise.
17251         * config/mcore/mcore.md: Likewise.
17252
17253 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17254
17255         * c-decl.c (duplicate_decls): Break apart into...
17256         (diagnose_arglist_conflict, validate_proto_after_old_defn)
17257         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17258         ... these new functions.  Restructure for comprehensibility.
17259         Remove various archaic special cases.  Always report the
17260         location of the previous declaration when a diagnostic is issued.
17261         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17262         (match_builtin_function_types): Delete unnecessary forward declaration.
17263
17264 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17265
17266         * genautomata.c (make_automaton, NDFA_to_DFA):
17267         Print progress bars with '.' characters instead of '*'.
17268         (build_automaton): Change notes to match.
17269
17270 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17271
17272         * config/m32r/m32r.md: Use define_constants for unspec and
17273         unspec_volatile.
17274
17275 2004-01-10  Jan Hubicka  <jh@suse.cz>
17276
17277         PR opt/11635
17278         * expr.c (expand_expr_real):  More curefully expand union casts.
17279
17280 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17281
17282         * config/m32r/m32r.md (flush_icache): Use 1 for
17283         unspec_volatile.
17284
17285 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
17286             James E Wilson  <wilson@specifixinc.com>
17287
17288         PR debug/12860
17289         * dbxout.c (dbxout_symbol): Remove initialization of
17290         current_sym_code, current_sym_value, and current_sym_addr.
17291         (dbxout_symbol_location): Same.
17292         (dbxout_prepare_symbol): Zero current_sym_code,
17293         current_sym_value, and current_sym_addr.
17294
17295 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
17296
17297         * tree.c (get_unwidened): Reorder conditions so that the null pointer
17298         check is done first.
17299
17300 2004-01-09  Eric Christopher  <echristo@redhat.com>
17301
17302         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17303         if we're running mark_constant_function.
17304
17305 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
17306
17307         PR target/12561
17308         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17309
17310 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
17311
17312         PR debug/11231
17313         * dbxout.c (dbxout_type_fields): Return if any item is
17314         error_mark_node or the type is error_mark_node.
17315
17316 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
17317
17318         * config/rs6000/darwin-ldouble.c: Add big comment explaining
17319         exactly what is expected as a 'long double'.
17320         (_xlqadd): When a value to be returned is representable as a
17321         'double', just return it directly, do not construct it using a union.
17322         Also, correct final fixup.
17323         (_xlqmul): Likewise.
17324         (_xlqdiv): Likewise.
17325         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17326
17327         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17328
17329 2004-01-09  Richard Henderson  <rth@redhat.com>
17330
17331         * recog.c (constrain_operands): Validate mem operands.
17332
17333 2004-01-09   James E Wilson  <wilson@specifixinc.com>
17334
17335         * gcc.c (init_spec): Remove -lunwind from shared case.
17336         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17337
17338 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
17339
17340         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17341         * configure: Regenerate
17342
17343 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
17344
17345         PR c/11234
17346         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17347         between function and object pointers.
17348         (digest_init): When comparing a pointer to function type to the
17349         target type, only apply TREE_TYPE once to the pointer to function
17350         type.
17351         * except.c (for_each_eh_label_1): Treat data as a pointer to a
17352         function pointer rather than casting it to a function pointer.
17353         (for_each_eh_label): Update caller.
17354         * recog.h (struct insn_data): Use a struct or union for output.
17355         * genoutput.c (output_insn_data): Update.
17356         * final.c (get_insn_template): Update.
17357
17358 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17359
17360         * expr.h (expand_expr): Make it a macro, not a function.
17361         (expand_expr_real): New function.
17362         * expr.c (store_expr): Adjust logic for deciding whether or not to
17363         copy the value returned by expand_expr.
17364         (expand_expr): Rename to ...
17365         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
17366         calls to language hooks.
17367         * c-common.h (c_expand_expr): Adjust prototype.
17368         * c-common.c (c_expand_expr): Add alt_rtl parameter.
17369         * langhooks-def.h (lhd_expand_expr): Change prototype.
17370         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17371         * langhooks.h (lang_hooks): Change type of expand_expr.
17372         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17373         (last_expr_alt_rtl): Likewise.
17374         (expand_expr_stmt_value): Set last_expr_alt_rtl.
17375         (clear_last_expr): Clear it.
17376         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17377         (expand_end_bindings): Save and restor last_expr_alt_rtl.
17378         * tree.def (RTL_EXPR): Give it an additional operand.
17379         * tree.h (RTL_EXPR_ALT_RTL): New macro.
17380
17381 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17382
17383         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
17384         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
17385
17386 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17387
17388         PR target/13380.
17389         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17390         or (ne:SI (reg:CC 17) (const_int 0)).
17391         Be specific about modes wherever possible.
17392
17393 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17394
17395         * config/m32r/m32r.c (m32r_expand_block_move): Call
17396         gen_movestrsi_internal with two more arguments.
17397         (m32r_output_block_move): Adjust operand numbers.
17398         Properly update the source and destination pointers.
17399         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17400         'r+'.  Change the set detinations to match_operand.
17401
17402 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17403
17404         * final.c (FIRST_INSN_ADDRESS): Remove.
17405         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17406         * system.h (FIRST_INSN_ADDRESS): Poison.
17407         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17408         * config/m32r/m32r-protos.h: Remove the prototype for
17409         m32r_first_insn_address.
17410         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17411         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17412         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17413
17414 2004-01-09  J. Brobecker  <brobecker@gnat.com>
17415
17416         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17417         we just created.
17418         (is_ada_subrange_type): DIEs for enumeration subtypes should be
17419         emitted as subrange types too.
17420         (subrange_type_die): Add handling of enumeration subtypes.
17421
17422 2004-01-08  Richard Henderson  <rth@redhat.com>
17423
17424         PR opt/12441
17425         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17426         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17427         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17428         (ix86_address_cost): Be prepared for SUBREGed registers.
17429         (legitimate_address_p): Accept SUBREGed registers.
17430
17431 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
17432
17433         * Makefile.in: Rename configure.in to configure.ac
17434         * doc/sourcebuild.texi: Likewise.
17435         * configure: Regenerate.
17436         * config.in: Regenerate.
17437
17438 2004-01-08  Stuart Hastings  <stuart@apple.com>
17439
17440         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17441
17442 2004-01-08  Jan Hubicka  <jh@suse.cz>
17443
17444         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
17445
17446 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
17447
17448         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17449         (UNSPEC_FIX_TRUNC_TF): New constant.
17450         (movtf_internal): Make splitter active only when insn is active.
17451         (extenddftf2): Rewrite to properly load zero into low part.
17452         (extenddftf2_internal): New.
17453         (extendsftf2): Rewrite.
17454         (truncdftf2): Correct length.
17455         (floatditf2): Delete.
17456         (fix_trunc_helper): New.
17457         (fix_trunctfdi2): Use fix_trunc_helper.
17458         (fix_trunctfsi2): Likewise.fix_trunc
17459         (fix_trunctfsi2_internal): New.
17460
17461         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17462         addresses are legitimate on Darwin even when flag_pic.
17463         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17464         non-offsettable addresses for loads of TFmode constants.
17465
17466 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17467
17468         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17469         variables in the appropriate bss section.
17470
17471 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
17472
17473         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17474         target_flags has MASK_POWERPC64 when -m64.
17475         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17476         to 620, 630, power3, power4 and rs64a entries.
17477         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17478
17479 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
17480
17481         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17482         floating-point constants.
17483
17484 2004-01-08  J. Brobecker  <brobecker@gnat.com>
17485
17486         * dwarf2out.c (subrange_type_die): Add context_die parameter.
17487         Create the subrange_type DIE using the given context DIE.
17488         (modified_type_die): Update call to subrange_type_die.
17489
17490 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
17491
17492         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17493         Add multiple-include guard.
17494
17495 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
17496
17497         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17498         all vector constant loadable by vsplt*.
17499         (output_vec_const_move): Likewise.
17500
17501 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17502
17503         PR c/6024
17504         * c-typeck.c (comptypes): Only treat enumerated types in the same
17505         translation unit as compatible with each other when they are the
17506         same type.
17507         * doc/extend.texi: Update.
17508
17509 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17510
17511         PR c/12165
17512         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
17513         array type from the array element type.
17514
17515 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
17516
17517         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
17518         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
17519         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
17520         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
17521         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
17522
17523 2004-01-06  Eric Christopher  <echristo@redhat.com>
17524
17525         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
17526         (DWARF2_DEBUGGING_INFO): Define.
17527         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
17528         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
17529         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
17530         for irix as.
17531         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
17532         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
17533         * config/mips/iris5gas.h: Ditto.
17534         (DBX_DEBUGGING_INFO): Remove.
17535         (DWARF2_DEBUGGING_INFO): Ditto.
17536         (MIPS_DEBUGGING_INFO): Ditto.
17537         (PREFERRED_DEBUGGING_TYPE): Ditto.
17538         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
17539         (PREFERRED_DEBUGGING_TYPE): Ditto.
17540         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
17541         * config/mips/elf64.h: Ditto.
17542
17543 2004-01-06  Jan Hubicka  <jh@suse.cz>
17544
17545         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
17546         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
17547
17548 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
17549
17550         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
17551         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
17552         * config/rs6000/darwin-ldouble.c: New.
17553
17554         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
17555         for constants.
17556         (constant_subword): Delete.
17557         * rtl.h (constant_subword): Delete prototype.
17558         (immed_double_const): Is not in varasm.c.
17559         * simplify-rtx.c (simplify_immed_subreg): New.
17560         (simplify_subreg): Use simplify_immed_subreg.
17561
17562         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
17563         than trying to generate RTL directly.
17564         (fix_trunctfsi2): Use expand_fix rather than trying to generate
17565         RTL directly.
17566
17567         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
17568
17569 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
17570
17571         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
17572         function into a separate macro.
17573         (read_only_data_section): Add void argument.
17574         (private_data_section): Same.
17575         (read_only_private_data_section): Same.
17576         (toc_section): Same.
17577
17578 2004-01-06  Jan Hubicka  <jh@suse.cz>
17579
17580         * invoke.texi:  Remove typo in last change.
17581
17582         PR target/10301
17583         * config.gcc: Accept opteron and athlon-64 as variants
17584         of k8.
17585         * i386.c (override_options): Likewise.
17586         * invoke.texi (i386 -mtune): Expand documentation.
17587
17588 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17589
17590         * alias.c: Fix comment typos.
17591         * builtins.c: Likewise.
17592         * cfg.c: Likewise.
17593         * df.c: Likewise.
17594         * dominance.c: Likewise.
17595         * dwarf2out.c: Likewise.
17596         * emit-rtl.c: Likewise.
17597         * expr.c: Likewise.
17598         * final.c: Likewise.
17599         * fold-const.c: Likewise.
17600         * gcse.c: Likewise.
17601         * genattrtab.c: Likewise.
17602         * genrecog.c: Likewise.
17603         * gensupport.c: Likewise.
17604         * ggc-zone.c: Likewise.
17605         * integrate.c: Likewise.
17606         * local-alloc.c: Likewise.
17607         * loop.c: Likewise.
17608         * recog.c: Likewise.
17609         * regmove.c: Likewise.
17610         * reg-stack.c: Likewise.
17611         * reorg.c: Likewise.
17612         * rtlanal.c: Likewise.
17613         * rtl.h: Likewise.
17614         * sched-ebb.c: Likewise.
17615         * simplify-rtx.c: Likewise.
17616         * toplev.c: Likewise.
17617         * varasm.c: Likewise.
17618
17619 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17620
17621         * doc/install.texi: Fix typos.
17622         * doc/invoke.texi: Likewise.
17623         * doc/md.texi: Likewise.
17624
17625 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17626
17627         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
17628
17629 2004-01-06  Jan Hubicka  <jh@suse.cz>
17630
17631         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
17632         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
17633         of MMX_REGPARM.
17634         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
17635         add MMX_REGPARM.
17636         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
17637         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
17638         (MMX_REGPARM_MAX): Similarly for -mmmx.
17639
17640 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17641
17642         * config/sh/linux.h: Fix comment formatting.
17643         * config/sh/netbsd-elf.h: Likewise.
17644         * config/sh/sh.c: Likewise.
17645         * config/sh/sh.h: Likewise.
17646         * config/sh/vxworks.h: Likewise.
17647
17648 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17649
17650         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
17651         * toplev.c (output_file_directive): Don't use
17652         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
17653
17654 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
17655
17656         * toplev.c: Fix broken checkin of 2003-12-30.
17657
17658 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
17659
17660         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
17661         (USING_MMAP): We don't support non-mmap.
17662         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
17663         large objects.
17664         (struct page_entry): Remove bytes_free.
17665         (struct page_table_chain): Remove.
17666         (struct globals): Remove page_table member.
17667         (loookup_page_table_entry): Function deleted.
17668         (set_page_table_entry): Ditto.
17669         (ggc_allocated_p): No longer need page table lookups.
17670         (ggc_marked_p): Ditto.
17671         (alloc_small_page): Don't care about bytes_free anymore.
17672         (alloc_large_page): Round up size.
17673         (ggc_alloc_zone_1): Mark large objects as such, and calculate
17674         their size the new way.
17675         Remove page table lookups and setting.
17676         (ggc_get_size): Calculate large object size the new way.
17677         (sweep_pages): Redo to account for fact that we no longer have
17678         bytes_free.
17679         (ggc_collect): No longer need to reincrement bytes_free.
17680         (ggc_pch_alloc_object): Handle new large objects properly.
17681         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
17682
17683 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17684
17685         * doc/invoke.texi: Remove a page break.
17686
17687 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17688
17689         * config/avr/avr.c (avr_output_function_prologue): Remove an
17690         extra pair of curly braces.
17691
17692 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17693
17694         * config/mn10300/mn10300.c: Fix comment formatting.
17695         * config/mn10300/mn10300.h: Likewise.
17696
17697 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17698
17699         * tree.h: Update documentation on nothrow_flag.
17700         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
17701         types.
17702
17703 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17704
17705         * doc/invoke.texi: Remove traces of dead ports.
17706
17707 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17708
17709         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
17710         option.
17711
17712 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17713
17714         PR target/12945
17715         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
17716         counter labels.
17717         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
17718         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
17719         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
17720         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
17721         (mips_symbol_insns): Don't trust the local/global classification.
17722         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
17723         (override_options): Make -mabicalls -fno-unit-at-a-time imply
17724         -mno-explicit-relocs.
17725         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
17726         between local and global symbols.
17727
17728 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17729
17730         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
17731         (mips_preferred_reload_class): Declare.
17732         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
17733         (EXTRA_CONSTRAINT): Update accordingly.
17734         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
17735         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
17736         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
17737         mips_dangerous_for_la25_p.
17738         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
17739         if mips_dangerous_for_la25_p.
17740
17741 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
17742
17743         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
17744         warning.
17745
17746 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
17747
17748         * configure.ac: Use AC_PROG_CPP_WERROR.
17749         * configure: Regenerate.
17750
17751 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
17752
17753         * .cvsignore: Add autom4te.cache.
17754
17755 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
17756
17757         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
17758         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
17759         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
17760         then architecture options, then ABI options.  General rewording.
17761
17762 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
17763
17764         PR c/3414
17765         * doc/extend.texi: Clarify definition of malloc attribute.
17766
17767 2004-01-04  Jan Hubicka  <jh@suse.cz>
17768
17769         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
17770         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
17771         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
17772         (cgraph_inline_p): Add extra argument reason.
17773         * cgraphunit.c: Minor formating fixes.
17774         cgraph_first_inlined_callee): New functions.
17775         (record_call_1): Record builtins too.
17776         (cgraph_analyze_function): Update inline_failed messages.
17777         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
17778         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
17779         (cgraph_check_inline_limits): Likewise; Add argument reason.
17780         (cgraph_set_inline_failed): New static function.
17781         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
17782         reasons.
17783         (cgraph_inline_p): Add new argument reason.
17784         * tree-inline.c (expand_call_inline):  Update warning.
17785
17786 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
17787
17788         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
17789         with modern equivalents.
17790         * configure: Regenerate.
17791
17792         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
17793         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
17794         * configure: Regenerate.
17795
17796         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
17797
17798         * configure.in: Rename to configure.ac.
17799         * configure.ac: Renamed from configure.in; make minimum necessary
17800         changes for autoconf 2.5x.
17801         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
17802         * configure: Regenerate with autoconf 2.57.
17803
17804 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
17805
17806         * config/mips/linux.h: Fix comment formatting.
17807         * config/mips/mips.c: Likewise.
17808         * config/mips/mips.h: Likewise.
17809         * config/mips/mips.md: Likewise.
17810         * config/mips/netbsd.h: Likewise.
17811         * config/mips/windiss.h: Likewise.
17812
17813 2004-01-02  Richard Henderson  <rth@redhat.com>
17814
17815         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
17816         for sse and 387; add suppression for mmx.
17817
17818 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
17819
17820         * loop.c (loop_optimize): Free all loops_info's mems.
17821
17822         * c-typeck.c (finish_init): Free spelling_base before
17823         setting it again.
17824
17825         * cfgloop.c (flow_loops_find): Always free the sbitmap
17826         headers.
17827
17828         * predict.c (estimate_probability): Free bbs after being
17829         done with it.
17830
17831 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17832
17833         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
17834         const_8bit_operand and call_address_operand.
17835
17836 2004-01-02  Jan Hubicka  <jh@suse.cz>
17837
17838         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
17839         when there is nothing to inline but warnings are requested.
17840         (cgraph_decide_inlining):  Fix memory leak.
17841
17842 2004-01-02  Jan Hubicka  <jh@suse.cz>
17843
17844         * expr.c (store_constructor):  Fix pasto in previous patch.
17845
17846 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17847
17848         * config/i386/cygming.h: Fix comment formatting.
17849         * config/i386/djgpp.h: Likewise.
17850         * config/i386/gthr-win32.c: Likewise.
17851         * config/i386/i386-interix.h: Likewise.
17852         * config/i386/i386.c: Likewise.
17853         * config/i386/i386.h: Likewise.
17854         * config/i386/openbsd.h: Likewise.
17855         * config/i386/winnt.c: Likewise.
17856         * config/i386/xm-mingw32.h: Likewise.
17857
17858 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
17859
17860         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
17861         copyright and last modification dates.
17862
17863 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
17864
17865         * doc/install.texi (Specific): Mention x86_64.
17866
17867 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
17868
17869         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
17870         Call force_operand on plus_constant result.
17871
17872 2004-01-01  Jan Hubicka  <jh@suse.cz>
17873
17874         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
17875         * expr.c (store_constructor): Use vec_init pattern.
17876         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
17877         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
17878         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
17879         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
17880         New patterns.
17881         (sse2_unpc?pd): Fix pattern.
17882         (sse2_movlpd): Kill.
17883         (sse2_movsd): Deal with movlpd too.
17884         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
17885         (ix86_expand_vector_init): New.
17886         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
17887         * md.texi (vec_set, vec_extract): Document
17888
17889 2003-12-31  Jan Hubicka  <jh@suse.cz>
17890
17891         PR opt/13473
17892         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
17893         ASM input operands
17894
17895         PR opt/12617
17896         * toplev.c (dump_file_index): Reorder ce3 and bbro.
17897         (dump_file): Likewise.
17898         (rest_of_compilation): Likewise.
17899
17900         PR debug/13367
17901         * cgraph.c (cgraph_function_possibly_inlined):  Even with
17902         flag_really_no_inline we inline always_inline functions.
17903         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
17904         for non-always_inline functions when there is flag_really_no_inline.
17905         (cgraph_decide_inlining): Limit work done when not inlining.
17906         (cgraph_decide_inlining_incrementally): Likewise.
17907         (cgraph_optimize_function): Check whether something got inlined.
17908         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
17909         extern inline functions when not inlining.
17910
17911         * opts.c (decode_options):  Disable crossjumping at -O1
17912         * invoke.texi (-O1): Document change.
17913
17914 See ChangeLog.10 for earlier changes.