OSDN Git Service

* cfglayout.c (fixup_reorder_chain): Handle case where the
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2
3         * cfglayout.c (fixup_reorder_chain): Handle case where the
4         destination of E_TAKEN is EXIT_BLOCK_PTR.
5
6 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
7
8         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
9
10 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
11
12         * fold-const.c (operand_equal_p): Update comment.
13
14 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15
16         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
17         (INCOMING_RETURN_ADDR_RTX): Define.
18         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
19         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
20         __builtin_return_address(0).
21         (m32r_return_addr): Added for __builtin_return_address(0).
22         (m32r_reload_lr): Ditto.
23
24         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss. 
25         
26 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
27
28         * doc/install.texi (Prerequisites): Update libbanshee,
29         fastjar, libcpp, libjava/libltdl entries to
30         automake 1.8.5.
31
32 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
33             Olivier Hainque  <hainque@act-europe.fr>
34
35         * function.c (fixup_var_refs): Also adjust the start of sequence
36         after fixing up the insns.
37
38 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
39
40         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
41
42 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
43
44         * doc/install.texi (Prerequisites): Update libstdc++ entry to
45         automake 1.8.5.
46
47 2004-06-14  Eric Christopher  <echristo@redhat.com>
48
49         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
50         to -mtpf-trace (-mno-tpf-trace).
51         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
52         documentation.
53
54 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
55
56         * real.c: Fix bit count in head comment.
57
58 2004-06-14  Jeff Law  <law@redhat.com>
59
60         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
61         PHIs where the destination or an argument is marked with
62         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
63
64 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
65
66         PR middle-end/15945
67         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
68         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
69
70 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
71
72         * opts.sh (var_args): Fix regexp.
73
74 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
75
76         PR target/15178
77         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
78
79 2004-06-14  Paul Brook  <paul@codesourcery.com>
80
81         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
82
83 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
84
85         * Makefile.in (FLAGS_H): New.
86         (flags.h): Replace by FLAGS_H.
87         * c.opt: Document Var, VarExists, Init and Report attributes.
88         * common.opt: Fill the values of the attributes.
89         * diagnostic.c (flag_fatal_errors): Do not define.
90         * except.c (flag_non_call_exceptions): Do not define.
91         * flags.h: Include options.h.  Remove declarations conflicting with
92         the automatically defined ones.
93         * opts.c: Remove automatically defined variables.
94         (handle_option): Perform default initialization.
95         (common_handle_option): Do not handle options covered by the
96         default initialization.
97         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
98         fields.
99         (CL_REPORT): New.
100         * opts.sh: Generate variable declarations, handle CL_REPORT.
101         * toplev.c: Remove automatically defined variables.
102         (f_options): Removed.
103         (print_switch_values): Use cl_options instead of f_options.
104         * toplev.h (version_flag): Declaration removed.
105
106 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
107
108         * config/sparc/sparc.h: Correct comment about availability of
109         little endian option.
110
111         * config.gcc: Remove sparc64-*-aout*.
112         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
113         * config/sparc/sp64-aout.h: Remove.
114         * config/sparc/aout.h: Remove.
115
116 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
117
118         * config/s390/s390.c: Include "tree-gimple.h".
119         (s390_gimplify_va_arg): New function.
120         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
121         (s390_va_arg): Remove.
122         * config/s390/s390-protos.h (s390_va_arg): Remove.
123         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
124
125 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
126
127         * basic-block.h (could_fall_through): Declare.
128         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
129         Fail if the source already has a fallthrough edge to the exit
130         block pointer.
131         (could_fall_through): New function.
132         * cfgbuild.c (make_edges): Check if we already have a fallthrough
133         edge to the exit block pointer.
134         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
135         not called before reload has completed.
136         Handle special case of first block having a fall-through exit edge.
137         (cfg_layout_finalize): Don't call it before reload or if we have
138         rtl epilogues.
139         (fixup_reorder_chain): A fall through to the exit block does not
140         require the block to come last.  Add sanity checks.
141         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
142         edges to the exit block.
143         * function.c (cfglayout.h): #include.
144         (thread_prologue_and_epilogue_insns): If we have neither return nor
145         epilogue, but a fall through to the exit block from mid-function,
146         force a non-fall-through exit.
147         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
148
149 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
150
151         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
152         for power5 and rs64a.  Correct condition for default.  Correct power3,
153         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
154
155 2004-06-13  Steven Bosscher <stevenb@suse.de>
156
157         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
158         Revert previous change, don't use CALL_P.
159
160 2004-06-13  Jason Merrill  <jason@redhat.com>
161
162         * tree.h: Move std_gimplify_va_arg_expr protoype here.
163         * tree-gimple.h: From here.
164
165 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
166
167         Fix PR tree-optimization/15979
168         Fix PR tree-optimization/15981
169         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
170         try to insert values undefined along some path.
171
172 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
173
174         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
175         are available everywhere too.
176
177 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
178
179         * fold-const.c (fold_checksum_tree <case 't'>): Only
180         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
181         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
182         EXPR is an INTEGERAL_TYPE or a scalar float type.
183
184 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
185
186         * tree-sra.c (tree_sra): Update documentation.
187
188 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
189
190         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
191         function_types_compatible_p, type_lists_compatible_p): Remove
192         flags parameter.
193         * c-tree.h (comptypes): Likewise.
194         (COMPARE_STRICT): Remove.
195         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
196         callers changed.
197
198 2004-06-13  Eric Christopher  <echristo@redhat.com>
199
200         * c-decl.c (diagnose_mismatched_decls): Improve error message.
201         Remove unused code.
202         * c-typeck.c (comptypes): Add location in standard we're checking.
203
204 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
205
206         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
207         version 3.3.4.
208
209 2004-06-12  Roger Sayle  <roger@eyesopen.com>
210
211         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
212         index by machine mode.
213         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
214         tables inside the loop over machine modes.
215         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
216         expand_divmod): Index shift*_cost by the appropriate machine mode.
217
218 2004-06-12  Eric Christopher  <echristo@redhat.com>
219
220         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
221         * config/s390/s390.md: Ditto.
222         * config/s390/s390.c: Ditto.
223         (s390_frame_info): Conditionalize frame and setup info on
224         TARGET_TPF_PROFILING.
225         (s390_arg_frame_offset): Ditto.
226
227 2004-06-12  Roger Sayle  <roger@eyesopen.com>
228
229         * fold-const.c (omit_two_operands): New function.
230         * tree.h (omit_two_operands): Prototype here.
231         * builtins.c (fold_builtin_unordered_cmp): New function to lower
232         C99 unordered comparison builtins to the appropriate tree nodes.
233         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
234         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
235         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
236         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
237         (simplify_builtin_memcmp, simplify_builtin_strncmp,
238         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
239         omit_two_operands function to build the required COMPOUND_EXPRs.
240
241 2004-06-12  Steven Bosscher <stevenb@suse.de>,
242             Andreas Jaeger  <aj@suse.de>
243
244         * gcse.c (record_set_info): Use predicates like REG_P.
245         (mems_conflict_for_gcse_p): Likewise.
246         (load_killed_in_block_p): Likewise.
247         (hash_expr_1): Likewise.
248         (insert_set_in_table): Likewise.
249         (gcse_constant_p): Likewise.
250         (hash_scan_set): Likewise.
251         (hash_scan_insn): Likewise.
252         (canon_list_insert): Likewise.
253         (record_last_mem_set_info): Likewise.
254         (record_last_set_info): Likewise.
255         (compute_hash_table_work): Likewise.
256         (mark_set): Likewise.
257         (mark_clobber): Likewise.
258         (mark_oprs_set): Likewise.
259         (compute_transp): Likewise.
260         (find_avail_set): Likewise.
261         (cprop_insn): Likewise.
262         (do_local_cprop): Likewise.
263         (cprop): Likewise.
264         (find_implicit_sets): Likewise.
265         (find_bypass_set): Likewise.
266         (bypass_conditional_jumps): Likewise.
267         (insert_insn_end_bb): Likewise.
268         (pre_insert_copy_insn): Likewise.
269         (compute_transpout): Likewise.
270         (next_ls_expr): Likewise.
271         (invalidate_any_buried_refs): Likewise.
272         (compute_ld_motion_mems): Likewise.
273         (reg_set_info): Likewise.
274         (reg_clear_last_set): Likewise.
275         (find_moveable_store): Likewise.
276         (compute_store_table): Likewise.
277         (find_loads): Likewise.
278         (store_killed_in_insn): Likewise.
279         (insert_insn_start_bb): Likewise.
280         (reg_set_between_after_reload_p): Likewise.
281         (reg_used_between_after_reload_p): Likewise.
282         (is_jump_table_basic_block): Likewise.
283         (gcse_after_reload): Likewise.
284         (hash_scan_set_after_reload): Likewise.
285         (compute_hash_table_after_reload): Likewise.
286
287 2004-06-12  Steven Bosscher  <stevenb@suse.de>
288
289         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
290         (INSN_P): Don't look at the rtx code class, just explicitly
291         check for one of the tree RTX_INSN codes.
292
293 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
294
295         * c-typeck.c (default_function_array_conversion): Use
296         build_pointer_type not TYPE_POINTER_TO.
297
298 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
299
300         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
301         * configure, config.in: Regenerate.
302         * system.h: Unconditionally define bool as unsigned char,
303         BOOL_BITFIELD as unsigned int.
304         * domwalk.h: Use BOOL_BITFIELD.
305
306 2004-06-12  Andreas Jaeger  <aj@suse.de>
307
308         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
309         * libgcc-darwin.ver: Likewise.
310
311 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
312
313         * reload.c (find_reloads): Force reload for pseudo registers on big
314         endian machines.
315
316 2004-06-11  Steven Bosscher <stevenb@suse.de>
317
318         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
319         Don't try to mark anything control dependent on the entry or
320         exit blocks.
321
322 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
323
324         Fix Bug 15899
325         Fix Bug 15460
326         * tree.h (SSA_NAME_VALUE): New macro.
327         (struct tree_ssa_name): Add value_handle member.
328         * tree-ssa-pre.c: Replaced.
329         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
330         (struct cst_ann_d): New.
331         (struct expr_ann_d): New.
332         (union tree_ann_d): Add cst_ann, expr_ann.
333         * tree-dfa.c (create_cst_ann): New function.
334         (create_expr_ann): Ditto.
335         * tree-flow-inline.h (cst_ann): New function.
336         (expr_ann): Ditto.
337         (get_cst_ann): Ditto.
338         (get_expr_ann): Ditto..
339
340 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
341
342         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
343         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
344         _U_Qfcmp library function.
345         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
346         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
347
348         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
349         unspec used for loading address from DLT.
350         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
351         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
352         Don't use short code sequence when loading the address of a nonlocal
353         label.
354         (nonlocal_goto): New expander.
355         (indirect_goto): New jump pattern for nonlocal gotos.
356         (short_jump): Remove extra whitespace.
357         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
358         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
359         pattern.
360
361 2004-06-11  Roger Sayle  <roger@eyesopen.com>
362
363         * expmed.c (synth_mult): Add an additional MODE argument for the
364         machine mode of the multiplication.  Update recursive calls.  Use
365         mode instead of word_mode for determining operation costs.
366         (choose_mult_variant): Update calls to synth_mult with "mode".
367
368 2004-06-11  Richard Henderson  <rth@redhat.com>
369
370         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
371         and makes_aliased_stores.
372
373 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
374
375         * doc/install.text (--enable-shared): Fix typo.
376
377 2004-06-11  Richard Henderson  <rth@redhat.com>
378
379         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
380         argument.  Use internal post for call to gimplify_expr.  Tidy
381         rounded type size computation.
382         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
383         get_initialized_tmp_var.
384
385 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
386
387         * doc/install.texi (--enable-shared): Update libobjc's shared library
388         status.  Remove reference to libf2c.
389
390 2004-06-11  Jason Merrill  <jason@redhat.com>
391
392         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
393         * config/i386/i386.c (ix86_va_arg): Remove.
394         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
395         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
396         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
397         * config/alpha/alpha.c (alpha_va_arg): Remove.
398         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
399         * config/sparc/sparc.c (sparc_va_arg): Remove.
400
401         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
402         assignment might throw.
403         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
404         expressions.
405
406 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
407
408         PR 15886:
409         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
410
411 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
412
413         * doc/install.texi (Prerequisites): Update documentation of
414         required versions of autoconf and automake.  Remove mention of
415         libf2c.
416
417 2004-06-11  Jason Merrill  <jason@redhat.com>
418
419         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
420         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
421
422 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
423
424         * typeclass.h: Add GPL plus exception license.  Add include
425         guard.
426
427 2004-06-10  Jason Merrill  <jason@redhat.com>
428
429         * gimplify.c (gimplify_modify_expr): Don't force a temporary
430         of an aggregate_value_p type.
431
432 2004-06-10  Jeff Law  <law@redhat.com>
433
434         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
435         code when we are in gimple form.
436
437 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
438
439         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
440         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
441         (highest_ssa_version): Remove.
442         * tree-outof-ssa.c (new_temp_expr_table): Replace
443         highest_ssa_version with num_ssa_names.
444         (dump_replaceable_exprs): Likewise.
445         (rewrite_vars_out_of_ssa): Likewise.
446         * tree-ssa-ccp.c (initialize): Likewise
447         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
448         * tree-ssa-dce.c (tree_dce_init): Likewise.
449         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
450         * tree-ssa-live.c (create_ssa_var_map): Likewise.
451         (dump_var_map): Likewise.
452         * tree-ssa.c (verify_ssa): Likewise.
453         (kill_redundant_phi_nodes): Likewise.
454         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
455         * tree-ssanames.c: Include tree-flow.h
456         (ssa_names): New varray.
457         (init_ssa_names): Initialize ssa_names.
458         Reserve the first slot of the ssa_names table.
459         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
460         Assign version numbers using num_ssa_names.
461
462 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
463
464         * doc/sourcebuild.texi (Front End): Add details of more
465         installation documentation required.
466
467 2004-06-10  Brian Booth  <bbooth@redhat.com>
468
469         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
470         of V_MAY_DEF and V_MUST_DEF.
471         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
472         num_vdefs to num_v_may_defs.
473         (compute_immediate_uses_for_stmt): Rename occurences of vdef
474         to v_may_def.
475         (redirect_immediate_uses): Ditto.
476         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
477         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
478         Also add code to sum up the number of v_must_defs.
479         (vdefs_disappeared_p): Replace with...
480         (v_may_defs_disappeared_p): This.
481         (v_must_defs_disappeared_p): New function.
482         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
483         Also add code to mark new variables found in V_MUST_DEFs for
484         renameing.
485         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
486         vdef_ops to v_may_def_ops.
487         (get_vdef_ops): Replace with...
488         (get_v_may_def_ops): This.
489         * tree-flow-inline.h (get_vdef_ops): Replace with...
490         (get_v_may_def_ops): This.
491         (get_v_must_def_ops): New function.
492         (get_vdef_result_ptr): Replace with...
493         (get_v_may_def_result_ptr): This.
494         (get_vdef_op_ptr): Ditto with...
495         (get_v_may_def_op_ptr); This.
496         (get_v_must_def_op_ptr): New function.
497         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
498         to v_may_def. Also add code to mark statements with
499         V_MUST_DEFs as definition sites.
500         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
501         add code to register new V_MUST_DEFs made by the statement.
502         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
503         (check_replaceable): Rename occurences of vdef to v_may_def. Also
504         add check for V_MUST_DEFs.
505         (find_replaceable_in_bb): Ditto.
506         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
507         to v_may_def. Also add code to dump V_MUST_DEFs.
508         * tree-sra.c (mark_all_vdefs): Replace with...
509         (mark_all_v_may_defs): This.
510         (mark_all_v_must_defs): New function.
511         (create_scalar_copies): Replace call to mark_all_vdefs with
512         calls to mark_all_v_may_defs and mark_all_v_must_defs.
513         (scalarize_structures): Rename occurences of vdef to v_may_def.
514         Also add a check for V_MUST_DEFs.
515         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
516         * tree-ssa-alias.c (global_var): Update comment.
517         (compute_may_aliases): Ditto.
518         (compute_points_to_and_addr_escape): Rename occurences of vdef
519         to v_may_def. Also add code to mark variables in V_MUST_DEF
520         operands as being written to.
521         (group_aliases): Update comment.
522         (maybe_create_global_var): Ditto.
523         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
524         Also add a check for V_MUST_DEFs on GIMPLE registers.
525         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
526         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
527         to v_may_def. Also add code to mark all V_MUST_DEF operands
528         VARYING.
529         (initialize): Ditto.
530         (set_rhs): Rename occurences of vdef to v_may_def. Also add
531         code to update SSA_NAMEs in V_MUST_DEFs.
532         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
533         to v_may_def.
534         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
535         occurences of vdef to v_may_def. Also add code to mark statements
536         with V_MUST_DEFs as necessary.
537         (propagate_necessity): Rename occurences of vdef to v_may_def.
538         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
539         occurences of vdef to v_may_def. Also add code to mark operands
540         in V_MUST_DEFs for renaming.
541         (eliminate_redundant_computations): Rename occurences of vdef
542         to v_may_def.
543         (record_equivalences_from_stmt): Rename occurences of vdef
544         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
545         (optimize_stmt): Remove unnesessary variable vdefs. Update
546         comment.
547         (register_definitions_for_stmt): Rename occurences of vdef
548         to v_may_def. Also add code to register definitions made with
549         V_MUST_DEFs.
550         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
551         (fix_stmt_v_may_defs): This.
552         (fix_phi_uses): Rename occurences of vdef to v_may_def.
553         (dse_optimize_stmt): Ditto.
554         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
555         to v_may_def. Also add code to mark V_MUST_DEF operands as being
556         used in virtual operators.
557         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
558         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
559         renaming.
560         * tree-ssa-operands.c (opf_kill_def): New flag for killing
561         definitions.
562         (build_vdefs): Renamed to...
563         (build_v_may_defs): This.
564         (build_v_must_defs): New variable.
565         (voperands_d): Add v_must_def_ops and replace vdef_ops with
566         v_may_def_ops.
567         (append_vdef): Replace with...
568         (append_v_may_def): This.
569         (append_v_must_def): New function.
570         (NUM_FREE): Increment for V_MUST_DEF
571         (optype_freelist): Increment its size for V_MUST_DEF
572         (allocate_vdef_optype): Replace with...
573         (allocate_v_may_def_optype): This.
574         (allocate_v_must_def_optype): New function.
575         (free_vdefs): Replace with...
576         (free_v_may_defs): This.
577         (free_v_must_defs): New function.
578         (remove_vdefs): Replace with...
579         (remove_v_may_defs): This.
580         (remove_v_must_defs): New function.
581         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
582         add code to initialize build_v_must_defs.
583         (finalize_ssa_vdefs): Replace with...
584         (finalize_ssa_v_may_defs): This.
585         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
586         (finalize_ssa_v_must_defs): New function.
587         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
588         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
589         (verify_start_operands): Rename occurences of vdef to v_may_def.
590         Also add check for build_v_must_defs.
591         (get_stmt_operands): Rename occurences of vdef to v_may_def.
592         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
593         killing definitions.
594         (get_expr_operands): Update comment and use opf_kill_def for
595         killing definitions.
596         (add_stmt_operand): Replace code that appends VDEFs with code
597         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
598         otherwise.
599         (add_call_clobber_ops): Update comments.
600         * tree-ssa-operands.h (vdef_optype_d): Replace with...
601         (v_may_def_optype_d): This.
602         (v_must_def_optype_d): New structure.
603         (VDEF_OPS): Replace with...
604         (V_MAY_DEF_OPS): This.
605         (STMT_VDEF_OPS): Same with...
606         (STMT_V_MAY_DEF_OPS): This.
607         (NUM_VDEFS): And...
608         (NUM_V_MAY_DEFS): This.
609         (VDEF_RESULT_PTR): As well as...
610         (V_MAY_DEF_RESULT_PTR): This.
611         (VDEF_RESULT): Same goes for...
612         (V_MAY_DEF_RESULT): This.
613         (VDEF_OP_PTR): And...
614         (V_MAY_DEF_OP_PTR): This.
615         (VDEF_OP): And...
616         (V_MAY_DEF_OP): This.
617         (V_MUST_DEF_OPS): New macro.
618         (STMT_V_MUST_DEF_OPS): Ditto.
619         (NUM_V_MUST_DEFS): Ditto.
620         (V_MUST_DEF_OP_PTR): Ditto.
621         (V_MUST_DEF_OP): Ditto.
622         (remove_vdefs): Replace signature with...
623         (remove_v_may_defs): This.
624         (remove_v_must_defs): New function signature.
625         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
626         with calls to remove_v_may_defs and remove_v_must_defs.
627         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
628         Also add code that marks left occurences of operands in V_MUST_DEFs.
629         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
630         to v_may_def. Also add check for V_MUST_DEFs.
631         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
632
633 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
634
635         PR target/15653
636         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
637         insn.
638
639 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
640
641         PR web/15263
642         * doc/install.texi: Remove superfluous linebreak.
643
644 2004-06-10  Roger Sayle  <roger@eyesopen.com>
645
646         * builtins.c (expand_builtin): Fall back to library function call for
647         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
648         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
649         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
650         IMAGPART_EXPR respectively.
651
652 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
653
654         * sh.c (dump_table): New argument start.  Changed caller.
655         (fixup_mova): New function.
656         (find_barrier): Use it.
657         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
658         If the label a mova refers to is above the mova itself, change
659         the mova into a load.
660         * sh.md (*casesi_worker): Rename to:
661         (casesi_worker_1).
662         (casesi_worker_2): New insn.
663
664 2004-06-10  Jason Merrill  <jason@redhat.com>
665
666         * target.h (struct gcc_target): Change gimplify_va_arg_expr
667         hook signature.
668         * tree-gimple.h: Adjust.
669         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
670         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
671         Use fold_convert.
672         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
673         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
674         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
675         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
676         (gimplify_va_arg_expr): Return GS_ERROR in error case.
677         Gimplify valist rather than calling stabilize_va_list.
678
679 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
680
681         * Makefile.in (df.o): Remove fibheap dependency.
682         * df.h: Do not include sbitmap.h.
683         (struct ref): New field "data".
684         (DF_REF_DATA): New accessor macro.
685         (struct df): Field "dom" removed.
686         (df_analyze_subcfg): New function.
687         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
688         (transfer_function): ... new type.
689         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
690         (iterative_dataflow): ... new function.
691         (enum set_representation, struct dataflow): New.
692         * df.c: Do not include fibheap.h.
693
694         (df_reg_def_chain_clean, df_reg_use_chain_clean,
695         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
696         prune_to_subcfg, df_bb_modify): New functions.
697         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
698         df_refs_update, df_reg_table_realloc, df_ref_create,
699         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
700         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
701         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
702
703         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
704         (df_rd_transfer_function, df_ru_transfer_function,
705         df_lr_transfer_function): Type of bitmaps changed to void *.
706         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
707         (hybrid_search): ... new function.
708         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
709         (iterative_dataflow): ... new function. Avoid use of fibheaps for
710         a worklist.  Do not process basic blocks unnecessarily.
711
712 2004-06-10  Roger Sayle  <roger@eyesopen.com>
713
714         * fold-const.c (fold_abs_const): Make extern.
715         * tree.h (fold_abs_const): Prototype here.
716         * builtins.c (fold_builtin_fabs): New function to transform
717         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
718         (fold_builtin_abs): New function to transform abs, labs, llabs
719         and imaxabs builtins into ABS_EXPR tree nodes.
720         (expand_builtin): Fall back to a function call for abs, labs,
721         llabs and imaxabs builtins that survive constant folding.
722         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
723         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
724
725 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
726
727         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
728         leaf function without unwind info at RP 0.
729
730 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
731
732         PR c++/14791
733         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
734         (fileptr_type_node): Define.
735         * tree.c (build_common_tree_nodes_2): Initialize
736         fileptr_type_node to ptr_type_node.
737         * c-common.c (c_common_nodes_and_builtins): For C++, make
738         fileptr_type_node a distinct type copy.
739         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
740         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
741         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
742         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
743         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
744         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
745         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
746         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
747         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
748         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
749         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
750         the above *FILEPTR* types instead of *PTR*.
751
752 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
753
754         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
755         match.
756
757 2004-06-09  Roger Sayle  <roger@eyesopen.com>
758
759         * fold-const.c (fold_not_const): New function.
760         (fold) <ABS_EXPR>: Don't bother testing wins.
761         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
762         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
763
764 2004-06-09  Richard Henderson  <rth@redhat.com>
765
766         PR middle-end/15228
767         * function.c (assign_parms): Always set_mem_align with the computed
768         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
769
770 2004-06-09  Richard Henderson  <rth@redhat.com>
771
772         PR opt/15108
773         * tree-tailcall.c (find_tail_calls): Don't check early for
774         tail_recursion failure.
775
776 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
777
778         Move SSA_NAME annotations into tree_ssa_name.
779
780         * tree-dfa.c (create_ssa_name_ann): Remove.
781         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
782         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
783         (struct ssa_name_ann_d): Remove.
784         (union tree_ann_d): Update.
785         (ssa_name_ann_t): Remove.
786         * tree-ssa-alias.c: (get_ptr_info): New local function.
787         Replace references to ssa_name_ann_t with struct ptr_info_def.
788         * tree-ssa-operands.c (get_expr_operands): Likewise.
789         * tree.h (SSA_NAME_PTR_INFO): Define.
790         (struct ptr_info_def): Declare.
791         (struct tree_ssa_name): Add field 'ptr_info'.
792
793 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
794
795         * config/i386/winnt.c (i386_pe_output_labelref): Correct
796         misplaced ')'.
797
798 2004-06-09  Steven Bosscher  <stevenb@suse.de>
799
800         * config/i386/k6.md: Rewrite using the DFA model.
801         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
802         cost of load-operation insns for the K6.
803         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
804         (ia32_multipass_dfa_lookahead): Likewise.
805
806 2004-06-09  Richard Henderson  <rth@redhat.com>
807
808         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
809         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
810
811 2004-06-09  Richard Henderson  <rth@redhat.com>
812
813         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
814
815 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
816
817         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
818         (CPP_ID_DATA_H): New.
819         (gtype-desc.o): Update dependencies.
820         (GTFILES): Use CPP_ID_DATA_H.
821
822 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
823
824         Revert:
825         PR c++/15815
826         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
827         * doc/extend.texi: Deprecate #pragma interface and #pragma
828         implementation.
829
830 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
831
832         * config/sparc/sparc.h (MOVE_RATIO): New definition.
833
834 2004-06-09  Richard Henderson  <rth@redhat.com>
835
836         * basic-block.h (struct edge_def): Add goto_locus.
837         * tree-cfg.c (make_goto_expr_edges): Set it.
838         (disband_implicit_edges): Use it.
839         * tree-pretty-print.c (dump_implicit_edges): Print it.
840
841 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
842
843         * h8300.md (ldm_h8300s_4): Fix condition for expander.
844
845 2004-06-08  Jason Merrill  <jason@redhat.com>
846
847         Gimplify VA_ARG_EXPR into simpler forms.
848         * target.h: Add gimplify_va_arg_expr hook.
849         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
850         * fold-const.c (build_fold_addr_expr)
851         (build_fold_addr_expr_with_type): Move from gimplify.c.
852         * tree.h: Declare them.
853         * gimplify.c (gimplify_and_add): New fn.
854         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
855         (gimplify_array_ref_to_plus, gimplify_modify_expr)
856         (gimplify_expr): Use build_fold_*.
857         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
858         don't know how to gimplify it.
859         * builtins.c (std_gimplify_va_arg_expr): New fn.
860         (dummy_object): New static fn.
861         (gimplify_va_arg_expr): New fn.
862         (stabilize_va_list): Use build_fold_*.
863         * tree-gimple.h: Declare new fns.
864         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
865         (ix86_gimplify_va_arg): New fn.
866         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
867         (ia64_gimplify_va_arg): New fn.
868         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
869         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
870         * alias.c (get_varargs_alias_set): Just return 0 for now.
871
872         * c-objc-common.c (c_tree_printer): Improve handling of %T.
873
874 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
875
876         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
877         of convert.
878         * tree-inline.c (setup_one_parameter): Likewise.
879         * tree-sra.c (csc_build_component_ref): Likewise.
880         * tree-ssa-ccp.c (ccp_fold): Likewise.
881         * tree-ssa-copy.c (cprop_operand): Likewise.
882         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
883         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
884
885 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
886
887         PR rtl-optimization/15521:
888         * sched-int.h (in_post_call_group_p): Change type to enum.
889         * sched-deps.c (sched_analyze_insn):
890         (sched_analyze): When in_post_call_group_p is post_call_initial,
891         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
892         and also reset in_post_call_group_p to post_call.
893         (sched_analyze): When the previous basic block ended in a CALL_INSN,
894         initialize in_post_call_group_p as post_call_initial.
895         (init_deps): initialize in_post_call_group_p to not_post_call.
896
897 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
898
899         PR ada/6637
900         * doc/install.texi: List ada, libada as options to --enable-shared
901
902 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
903
904         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
905         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
906         config.in entries.
907         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
908         if hard links are not available.
909         * configure: Regenerate.
910         * config.in: Regenerate.
911
912 2004-06-08  Per Bothner  <per@bothner.com>
913
914         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
915
916 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
917
918         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
919         Correct formatting.
920
921 2004-06-08  James E Wilson  <wilson@specifixinc.com>
922
923         PR target/15790
924         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
925
926 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
927
928         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
929         POINTER_TYPE and INTEGER_TYPE.
930
931 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
932
933         * modulo-sched.c: Compile only when INSN_SCHEDULING is
934         defined.
935
936 2004-06-08  Jeff Law  <law@redhat.com>
937
938         * doc/contrib.texi: Add entries for Stefan Olsson and
939         Ola Ronnerup.
940
941 2004-06-08  DJ Delorie  <dj@redhat.com>
942
943         * toplev.c (floor_log2_wide): Replace loop with faster bit
944         operations.
945         (exact_log2_wide): Define in terms of the above.
946         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
947         available.
948
949 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
950
951         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
952         Make sure that we are in INDIRECT mode when getting the
953         stub name.
954
955 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
956
957         * h8300.md (extendqisi2_h8300): Add constraints.
958         (ldm_h8300s_4_normal): Fix typo.
959
960 2004-06-08  Richard Henderson  <rth@redhat.com>
961
962         * gimple-low.c (struct lower_data): Replace the_return_label and
963         one_return_stmt with return_statements.
964         (lower_function_body): Process the entire list of return_statements.
965         (lower_return_expr): Check source value before unifying return_exprs.
966         * gimplify.c (gimplify_return_expr): Force the use of a temporary
967         for !aggregate_value_p.
968         * tree-gimple.c: Update RETURN_EXPR grammer.
969
970 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
971
972         PR target/15598
973         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
974
975 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
976
977         PR rtl-optimization/15717
978         * config/i386/i386.c (legitimate_constant_p): Do not allow
979         x - symbol_ref.
980
981 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
982
983         * gimplify.c (copy_if_shared_r): Revert:
984         2004-05-21  Richard Henderson  <rth@redhat.com>
985         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
986
987 2004-06-07  Roger Sayle  <roger@eyesopen.com>
988
989         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
990         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
991         (init_expmed): Initialize these cost arrays as appropriate.
992         (store_bit_field, extract_bit_field): Correct whitespace.
993         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
994         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
995         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
996         word_mode or compute_mode as appropriate.
997
998 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
999
1000         PR target/15783
1001         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1002         parameter.  Enumerate the registers inside the PARALLEL.
1003         (function_arg): Adjust call to function_arg_union_value.
1004         (function_value): Likewise.
1005
1006         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1007
1008 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1009
1010         * real.c (real_copysign): New function to implement libm's copysign.
1011         * real.h (real_copysign): Prototype here.
1012         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1013         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1014         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1015         fold_builtin_isdigit): Add function prototypes.
1016         (fold_builtin_copysign): New function to fold copysign, copysignf
1017         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1018         constant arguments at compile-time using real_copysign.  Fold
1019         copysign(X,Y) as fabs(X) if Y is always non-negative.
1020         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1021         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1022
1023 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
1024
1025         * tree.c (iterative_hash_expr): Use real_hash.
1026
1027 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1028
1029         PR c/14765
1030         * c-parse.in (compstmt_primary_start): Set last_expr_type to
1031         NULL_TREE.
1032
1033 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1034
1035         PR c++/15815
1036         * doc/extend.texi: Deprecate #pragma interface and #pragma
1037         implementation.
1038
1039 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
1040
1041         PR middle-end/15666
1042         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1043         builtin decl as well.
1044
1045 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1046
1047         PR c/14649
1048         * c-typeck.c (require_constant_value, require_constant_elements):
1049         Move declarations to the top of the file.
1050         (build_function_call): If we require a constant value, fold with
1051         fold_initializer.  If the result is a constant, and the function
1052         wasn't called using __builtin_foo, issue a pedantic warning.
1053         (build_unary_op): If we require a constant value, fold tree with
1054         fold_initializer.
1055         (build_binary_op): Use require_constant_value to determine whether
1056         to call fold or fold_initializer.
1057
1058 2004-06-07  Richard Henderson  <rth@redhat.com>
1059
1060         * gimple-low.c (struct lower_data): Add the_return_label and
1061         one_return_stmt.
1062         (lower_function_body): Initialize and use them.
1063         (lower_return_expr): New.
1064         (lower_stmt): Call it.
1065         * gimplify.c (gimplify_return_expr): Force the argument to be either
1066         null or a result_decl.
1067         * tree-gimple.c: Update gimple grammer to match.
1068         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1069         coalescing of result_decls.
1070
1071 2004-06-07  Richard Henderson  <rth@redhat.com>
1072
1073         PR rtl-opt/15193
1074         * expmed.c (extract_bit_field): Fix vector_extract return.
1075
1076         * config/i386/i386.md (negv4sf2): New pattern.
1077
1078 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1079
1080         PR c++/15337
1081         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1082         message.
1083
1084 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1085
1086         * config.in: Regenerate.
1087
1088 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1089
1090         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1091         SWITCH_LABELS are always sorted.
1092
1093 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1094
1095         * hooks.c (hook_int_void_1): New generic hook.
1096         * hooks.h (hook_int_void_1): Add prototype.
1097         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1098         Define to hook_int_void_1.
1099         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1100         with dummies for the new one.
1101
1102 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1103
1104         * tree.h (lvalue_or_else): Delete function prototype.
1105         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1106
1107 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1108
1109         PR target/14542
1110         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1111         a live change of a register after peephole replacement.
1112
1113 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1114
1115         PR c/13519
1116         * c-typeck.c (composite_type, common_pointer_type): New functions.
1117         (common_type): Split parts into composite_type and
1118         common_pointer_type.  Ensure that arithmetic operations return
1119         unqualified types without attributes.  Don't make composite type
1120         of signed enum and compatible integer be unsigned.
1121         (build_conditional_expr, build_binary_op): Use
1122         common_pointer_type.
1123         * c-decl.c (merge_decls): Use composite_type.
1124         * c-tree.h (composite_type): Declare.
1125
1126 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1127
1128         PR target/14457
1129         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1130         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1131         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1132         (inhibit_libc): Must define.
1133         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1134         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1135         ("xorhi3"): Likewise.
1136
1137 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1138
1139         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1140         always_inline pass.
1141
1142 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1143
1144         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1145         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1146
1147 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1148
1149         * regclass.c (init_reg_sets): Check for missing registers in target
1150         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1151
1152 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1153
1154         * Makefile.in (MKDEPS_H): New shorthand.
1155         (c-opts.o): Update dependencies.
1156         * c-opts.c: Include mkdeps.h.
1157         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1158         not cpp_add_dependency_target.
1159
1160 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1161
1162         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1163         * config/v850/v850.md: Convert to DFA scheduler description.
1164
1165 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1166
1167         PR fortran/15478
1168         * doc/install.texi: Document GMP as prerequisite. Document
1169         --with-gmp and --with-gmp-dir configure options.
1170         * fortran/gfortran.texi: Remove section "Compiling and testing",
1171         remove TOC reference to it.
1172
1173 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1174
1175         * combine.c(simplify_shift_const): Check shift amount is a
1176         CONST_INT.
1177
1178 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1179
1180         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1181         opening asm_out_file.
1182         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1183         reading asm_out_file. Replace fflush after reading asm_out_file
1184         with fseek.
1185         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1186         default and add to HOST_HOOKS_INITIALIZER.
1187         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1188         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1189         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1190         to set mmi.offset padding.
1191          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1192         $(srcdir)/config/i386/winnt.c.
1193         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1194         (i[34567]86-*-uwin*): Likewise.
1195         *i[34567]86-*-interix3*): Likewise.
1196         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1197         * config/i386/host-mingw32.c: New file.
1198         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1199         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1200         (extern_head): Likewise.
1201         (struct export_list) Likewise.
1202         (export_head): Likewise.
1203         (i386_pe_record_external_function): Use ggc_alloc.
1204         (i386_pe_record_exported_symbol): Likewise.
1205         Include "gt-winnt.h" at end.
1206         * doc/hostconfig.texi: Document
1207         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1208
1209 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1210
1211         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1212         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1213         trailing whitespace before EOLs and before TABs.
1214         (MAX_CODE_ALIGN): Remove unused macro.
1215         (CALL_USED_REGISTERS): Reformat and add comments.
1216
1217 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1218
1219         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1220         to enumerate -lmudflap* and dependencies when linking.
1221
1222 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1223
1224         PR target/15822
1225         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1226
1227 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1228
1229         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1230         * genconditions.c (write_header): Back out removal of reload.h.
1231
1232 2004-06-04  Jan Hubicka  <jh@suse.cz>
1233
1234         Re-apply hopefully fixed patch:
1235         * i386.md (UNSPECV_EH_RETURN): Kill.
1236         (eh_return): Use jump_insn.
1237         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1238
1239 2004-06-04  Jeff Law  <law@redhat.com>
1240
1241         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1242
1243 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1244
1245         * except.c (for_each_eh_region): New function.
1246         * except.h (for_each_eh_region): Add a prototype for it.
1247         * tree-cfg.c (update_eh_labels): New function, callback for
1248         for_each_eh_region.
1249         (label_for_bb): Make global static, unfortunately.
1250         (cleanup_dead_labels): Also update label references for
1251         exception regions.
1252
1253 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1254
1255         * config/mips/mips.c (struct irix_section_align_entry): Fix
1256         GTY marker.
1257
1258 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1259
1260         * toplev.c (check_global_declarations): Don't ask for
1261         DECL_ASSEMBLER_NAME unless the function really is declared
1262         static and not defined.
1263
1264 2004-06-03  Matt Austern  <austern@apple.com>
1265
1266         PR c++/15428
1267         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1268         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1269         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1270         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1271         documentation to reflect the new macro name and to clarify its
1272         meaning.
1273
1274 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1275
1276         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1277
1278 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1279
1280         * config/darwin.c (machopic_indirect_data_reference): Copy
1281         the SYMBOL_REF_DECL from the original RTX for the new
1282         non-lazy pointer RTX.
1283
1284 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1285
1286         * tree.h: Remove include of version.h
1287         * c-cppbuiltin.c: Include version.h
1288         * diagnostic.c: Include version.h
1289         * dwarf2out.c: Include version.h
1290         * toplev.c: Include version.h
1291         * vmsdbgout.c: Include version.h
1292         * Makefile.in: Remove dependency on version.h from TREE_H, and
1293         add dependencies to required .o targets
1294
1295 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1296
1297         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1298         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1299         (TARGET_H): Add insn-modes.h.
1300         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1301         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1302         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1303         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1304         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1305         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1306         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1307         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1308         CFGLAYOUT_H.
1309         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1310         Replace ra.h with RA_H.
1311         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1312         insn-recog.o): Replace resource.h with RESOURCE_H.
1313         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1314         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1315         with SCHED_INT_H.
1316         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1317         ra-rewrite.o): Replace df.h with DF_H.
1318         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1319         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1320         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1321         (insn-conditions.o): Remove unused reload.h.
1322         * cfglayout.h: Add include guard.  Include basic-block.h.
1323         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
1324         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1325         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
1326         basic-block.h.
1327         * genconditions.c:  Remove reload.h.
1328         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
1329         hard-reg-set.h, insn-modes.h.
1330         * resource.h: Add include guard.  Include hard-reg-set.h.
1331         * sched-int.h:  Add include guard.  Include insn-attr.h,
1332         basic-block.h, rtl.h.
1333         * target.h: Add include guard.  Include insn-modes.h.
1334         * tree-ssa-live.h: Include partition.h.
1335
1336 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
1337                 Kenneth Zadeck <zadeck@naturalbridge.com>
1338
1339         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1340         (add_var_to_ssa_edges_worklist): Add value argument.
1341         Update callers.
1342         Use new worklist.
1343         (process_ssa_edge_worklist): New function.
1344         (tree_ssa_ccp): Move worklist processing core to
1345         process_ssa_edge_worklist, and just call that for the two worklists.
1346
1347 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1348
1349         * basic-block.c (tail_recursion_label_list): Don't declare.
1350         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
1351         accordingly.
1352         * cfgbuild.c (find_label_refs): Remove.
1353         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1354         * cfgcleanup.c (tail_recursion_label_p): Remove.
1355         (merge_blocks_move): Do not check for tail recursion.
1356         (try_optimize_cfg): Likewise.
1357         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1358         * cfgrtl.c (tail_recursion_label_list): Remove.
1359         * except.c (remove_unreachable_regions): Don't handle
1360         CALL_PLACEHOLDER insns.
1361         (convert_from_eh_region_ranges_1, can_throw_internal,
1362         can_throw_external): Likewise.
1363         * function.c (free_after_compilation): Don't clear
1364         x_tail_recursion_label.
1365         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1366         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1367         (reorder_blocks_1): Likewise.
1368         * function.h (struct function): Remove x_tail_recursion_label
1369         member.  Don't define tail_recursion_label.
1370         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1371         * print-rtl.c (print_rtx): Likewise.
1372         * rtl.def (CALL_PLACEHOLDER): Remove.
1373         * rtl.h (sibcall_use_t): Remove enum.
1374         (optimize_sibling_and_tail_recursive_calls,
1375         replace_call_placeholder): Remove function prototypes.
1376         * stmt.c (tail_recursion_args): Remove.
1377         (optimize_tail_recursion): Remove.
1378         (expand_return): Don't check for possible tail recursion.
1379         * tree.h (optimize_tail_recursion): Remove prototype.
1380
1381 2004-06-02  Jan Hubicka  <jh@suse.cz>
1382
1383         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
1384         return_stmt.
1385
1386 2004-06-02  Jason Merrill  <jason@redhat.com>
1387
1388         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1389         Do include c-parse.in.
1390
1391 2004-06-02  Eric Christopher  <echristo@redhat.com>
1392
1393         * c-typeck.c (common_type): Don't lose type qualifiers
1394         when creating new variants.
1395
1396 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1397
1398         PR tree-optimization/14042
1399         PR tree-optimization/14729
1400         PR tree-optimization/14736
1401         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1402         Check the type which the pointer points to
1403         instead of the pointer types.
1404
1405 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1406
1407         PR tree-optimization/15738.
1408         * builtins.c (fold_builtin_strchr): Transform
1409         strrchr (s, '\0') to strchr (s, '\0').
1410
1411 2004-06-02  Steven Bosscher  <stevenb@suse.de>
1412
1413         * i386.c (ix86_adjust_cost): Don't increase the cost for
1414         load+operation for PROCESSOR_PENTIUMPRO, it is already
1415         modelled in the DFA description
1416
1417 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
1418
1419         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1420         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1421         (ALIAS_H, EMIT_RTL_H): New.
1422         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1423         (cfgcleanup.o): Add EMIT_RTL_H.
1424         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1425         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1426         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1427         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1428         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
1429         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1430         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1431         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1432         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1433         set_mem_size): Move to emit-rtl.h.
1434         * emit-rtl.h: New.
1435         * alias.h: New.
1436
1437 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
1438
1439         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1440         Call fixup_memory_subreg only if the MEM is equal to 'var'.
1441         Adjust recursive calls to self.
1442         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1443
1444 2004-06-01  Richard Henderson  <rth@redhat.com>
1445             Andrew Pinski  <pinskia@physics.uc.edu>
1446
1447         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1448         (primary): Handle offsetof.  Add error productions for faux functions.
1449         Move component_ref objc checking to build_component_ref.
1450         (reswords): Add offsetof.
1451         (rid_to_yy): Add offsetof.
1452         * c-tree.h (build_offsetof): Declare.
1453         * c-common.h (objc_is_public): Declare.
1454         * c-typeck.c (build_component_ref): Check objc_is_public.
1455         (build_offsetof): New.
1456         * stub-objc.c (objc_is_public): New.
1457         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1458         from is_public.
1459         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1460         * doc/extend.texi (Offsetof): Move from C++ section to C section
1461         and rewrite for __builtin_offsetof.
1462
1463 2004-06-01  Peter Barada  <peter@the-baradas.com>
1464             Peter Jakubek  <peter@laseranimation.com>
1465
1466         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
1467         a scratch to perform an add to memory.
1468
1469 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1470
1471         PR target/14018
1472         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1473         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1474         m68k_align_funcs): Remove.
1475         (override_options): Remove code to handle -malign-* options.
1476         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1477         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1478         (m68k_align_loops_string, m68k_align_jumps_string,
1479         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1480         m68k_align_funcs): Remove definitions.
1481
1482 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
1483
1484         PR target/15626
1485         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1486         by the Sun linker in conjunction with the Sun assembler.
1487         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1488
1489 2004-06-01  Jeff Law  <law@redhat.com>
1490
1491         * stmt.c (expand_decl): Be more selective about calling
1492         mark_reg_pointer.
1493
1494 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
1495
1496         PR objc/7993
1497         * objc-act.c (is_private): Do not emit the 'instance variable %s
1498         is declared private' error.
1499         (is_public): Emit the error after calling is_private.
1500         (lookup_objc_ivar): If the instance variable is private, return 0
1501         - the instance variable is invisible here.
1502
1503 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1504
1505         * doc/invoke.texi (-static-libgcc): Explicitly mention
1506         non-GNU linkers.
1507
1508 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1509
1510         PR target/12968
1511         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1512
1513 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1514
1515         PR c/15749
1516         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1517         misuses of structures with flexible array members if
1518         in_system_header.
1519
1520 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1521
1522         PR target/15693
1523         * config/sparc/sparc.c (compare_operand): New predicate.
1524         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1525         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
1526         operand is a ZERO_EXTRACT and the second operand is not zero,
1527         force the former to a register.
1528         (cmpdi expander): Likewise.
1529
1530 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
1531
1532         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1533         looks at.
1534         * alias.c (alias_invariant_size): Make alias_invariant_size
1535         static, fix GTY marker.
1536
1537 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1538
1539         PR tree-optimization/15743.
1540         * builtins.c (fold_builtin_1): Fold index() and rindex().
1541
1542 2004-05-31  Roger Sayle  <roger@eyesopen.com>
1543
1544         PR middle-end/15069
1545         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1546         into "X < 0" (where C is the signbit) if X's type is a full mode.
1547
1548 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1549
1550         * pa.md: Disable the peephole2 patterns that generate indexed
1551         floating-point stores when indexing is disabled.
1552
1553 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1554
1555         * c-pretty-print.c (pp_c_left_bracket): Make a function.
1556         (pp_c_right_bracket): Likewise.
1557         (pp_c_star): Likewise.
1558         (pp_c_ampersand): Define.
1559         * c-pretty-print.h (pp_c_left_bracket): Declare.
1560         (pp_c_right_bracket): Likewise.
1561         (pp_c_star): Likewise.
1562         (pp_c_ampersand): Likewise.
1563
1564 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1565
1566         * config/sol2.h (__enable_execute_stack): ANSIfy function
1567         definition.
1568
1569 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
1570
1571         * c-incpath.c (add_path): Canonicalize paths to use '/' if
1572         HAVE_DOS_BASED_FILESYSTEM.
1573
1574 2004-05-31  Steven Bosscher  <stevenb@suse.de>
1575
1576         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1577         Only look at case labels if the immediate dominator is also
1578         the only predecessor.  Don't look for more case labels if the
1579         first seen is a case range.
1580
1581 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1582
1583         * builtins.c: Add a prototype for fold_builtin_strchr().
1584
1585 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
1586
1587         Revert this patch:
1588         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1589
1590         * combine.c (gen_binary): Remove.
1591         (known_cond, simplify_shift_const
1592         find_split_point, combine_simplify_rtx,
1593         simplify_if_then_else, simplify_set,
1594         simplify_logical, expand_field_assignment,
1595         extract_left_shift, force_to_mode,
1596         if_then_else_cond, apply_distributive_law,
1597         simplify_and_const_int, simplify_shift_const,
1598         gen_lowpart_for_combine, simplify_comparison,
1599         reversed_comparison): Replace with
1600         simplify_gen_binary, simplify_gen_relational or
1601         distribute_and_simplify_rtx.
1602         (distribute_and_simplify_rtx): New function.
1603
1604 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1605
1606         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
1607         when generating PIC code.
1608
1609 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1610
1611         * c-decl.c (c_expand_body_1): Remove and fold back into ...
1612         (c_expand_body): here.
1613         (c_expand_decl): Move to ...
1614         * c-common.c (c_expand_decl): Here and remove check for nested
1615         functions.
1616         * c-common.h (c_expand_decl): Add prototype.
1617         * c-tree.h (c_expand_decl): Remove.
1618
1619 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1620
1621         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
1622         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
1623         fold_mathfn_compare, fold_inf_compare, fold,
1624         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
1625         Use constant_boolean_node where appropriate.  Don't bother using
1626         fold_convert on the second argument to omit_one_operand.
1627
1628 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1629
1630         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
1631         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
1632         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
1633         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
1634         Add missing (but documented) tree nodes to the index.
1635
1636 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1637
1638         PR tree-optimization/14819
1639         * builtins.c (fold_builtin_strchr): New.
1640         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
1641         with fold_builtin_strchr().
1642
1643 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1644
1645         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
1646         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
1647         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
1648         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
1649         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
1650         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
1651         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
1652         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
1653         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
1654         formatting.
1655
1656 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1657
1658         * gimplify.c (sort_case_labels): New.  Split out from...
1659         (gimplify_switch_expr): ...here.  Use it.
1660         * tree-eh.c (lower_try_finally_switch): Sort the labels of
1661         the SWITCH_EXPR created here before leaving the function.
1662         * tree.c (sort_case_labels): Add prototype.
1663
1664 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1665
1666         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
1667         of BOOLEAN_TYPE.
1668
1669 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1670
1671         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
1672         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
1673         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
1674         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
1675         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
1676         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
1677         comment typos.  Follow spelling conventions.
1678
1679 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
1680
1681         * gengtype-yacc.y: Add NESTED_PTR token.
1682         (option): Record `nested_ptr' option.
1683         * gengtype-lex.l: Handle `nested_ptr' keyword.
1684         * gengtype.c (walk_type): Process `nested_ptr' option.
1685         * gengtype.h (struct nested_ptr_data): New.
1686         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
1687         * stringpool.c (struct string_pool_data): Make 'entries' point to
1688         ht_identifier instead of tree.
1689         (gt_pch_save_stringpool): Don't adjust pointers.
1690         (gt_pch_restore_stringpool): Call ht_load.
1691
1692 2004-05-29  Jason Merrill  <jason@redhat.com>
1693
1694         * gimplify.c (gimplify_expr): Don't build a statement list
1695         if no gimplification was necessary.
1696
1697 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1698
1699         * pretty-print.c (pp_base_format_text): Support %< instead of %`
1700         and %> as well as %'.
1701         * c-format.c: Use %< and %>.
1702         (gcc_diag_char_table, gcc_cdiag_char_table,
1703         gcc_cxxdiag_char_table): Update.
1704
1705 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1706
1707         * c-typeck.c (common_type): Correct comment.
1708
1709 2004-05-29  Peter Barada  <peter@the-baradas.com>
1710
1711         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
1712         * config/m68k/m68k.c (const_method): Likewise.
1713         * config/m68k/m68k.c (const_int_cost): Likewise.
1714         * config/m68k/m68k.c (const_int_cost): Likewise.
1715         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
1716
1717 2004-05-29  Peter Barada  <peter@the-baradas.com>
1718
1719         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
1720         addressing.
1721         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
1722         movsi,movhi,movqi insn patterns.
1723
1724 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1725
1726         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
1727
1728         PR target/15720
1729         * config/darwin.c (machopic_indirect_call_target): Copy
1730         the SYMBOL_REF_DECL from the original RTX for the new
1731         stub RTX.
1732
1733 2004-05-28  DJ Delorie  <dj@redhat.com>
1734
1735         * stor-layout.c (place_field): Revert erroneous commit.
1736
1737 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
1738
1739         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
1740         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
1741         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
1742         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
1743         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
1744         vec_ste): Remove type checks for integral parameters and literals
1745         from '..._args_eq' macros.
1746
1747 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1748
1749         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
1750
1751 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1752
1753         * testsuite/g++.dg/charset/function.cc: New.
1754
1755         * testsuite/gcc.dg/charset/function.c: New.
1756
1757         * c-decl.c (c_make_fname_decl): Free return value from
1758         fname_as_string.
1759
1760         * cp/decl.c (cp_make_fname_decl): Free return value from
1761         fname_as_string.
1762
1763         * c-common.c (fname_as_string): Translate if necessary.
1764
1765 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
1766
1767         * stringpool.c: Add comments to PCH saving/restoring routines.
1768
1769 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1770
1771         * c-common.c (c_estimate_num_insns_1): Kill.
1772         (c_estimate_num_insns): Kill.
1773         * c-common.h (c_estimate_num_insns): Kill.
1774
1775         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
1776         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
1777         Remove comment about not checking for
1778         _POSIX_PRIORITY_SCHEDULING.
1779         * gthr-posix.c: Likewise.
1780
1781 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
1782             Roger Sayle  <roger@eyesopen.com>
1783
1784         PR rtl-optimization/15649
1785         Add LTGT_EXPR and improve pretty-printing of unordered
1786         comparisons.
1787         * c-common.c (c_common_truthvalue_conversion):
1788         Handle LTGT_EXPR.
1789         * c-typeck.c (build_binary_op): Likewise.
1790         * dojump.c (do_jump): Likewise.
1791         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
1792         * predict.c (tree_predict_by_opcode): Likewise.
1793         * real.c (real_compare): Likewise.
1794         * tree-cfg.c (verify_expr): Likewise.
1795         * tree-inline.c (estimate_num_insns_1): Likewise.
1796         * tree-pretty-print.c (dump_generic_node): Likewise.
1797         Handle ORDERED_EXPR, UNORDERED_EXPR.
1798         (op_symbol): Print unordered comparisons differently
1799         than ordered ones.
1800         * tree.def (LTGT_EXPR): New '<' tree code.
1801         * doc/c-tree.texi (Expressions): Document floating-point
1802         comparison nodes.
1803
1804         Fold comparisons between floating point values.
1805         * fold-const.c (enum comparison_code): New, from
1806         #define'd constants.  Define compcodes for unordered
1807         comparisons and for invalid transformations.
1808         (invert_tree_comparison): Add "honor_nans" parameter.
1809         (fold_truthop): Revamp to work on floating-point types too.
1810         (comparison_to_compcode): Support unordered comparisons.
1811         Use new enum comparison_code.
1812         (compcode_to_comparison): Likewise.
1813         (combine_compcodes): New function.
1814         (invert_truthvalue): Let invert_tree_comparison decide
1815         whether it is valid to fold the comparison.  Fold ORDERED
1816         and UNORDERED even if flag_unsafe_math_optimizations is off,
1817         and the remaining even if flag_unsafe_math_optimizations
1818         is off but we are under -fno-trapping-math.
1819         (fold_relational_const): Integer modes do not honor NaNs.
1820
1821 2004-05-28  Paul Brook  <paul@codesourcery.com>
1822
1823         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
1824
1825 2004-05-28  Paul Brook  <paul@codesourcery.com>
1826
1827         * config/arm/arm.c (thumb_force_lr_save): New function.
1828         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
1829         thumb_output_function_prologue): Use it.
1830         (thumb_expand_prologue): Set lr_save_eliminated.
1831
1832 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
1833
1834         * config/mips/mips.md (extendsidi2): Tie the source and destination
1835         of the register alternative.  Split it into nothing.
1836
1837 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
1838
1839         * rtl.h (skip_consecutive_labels): Declare.
1840         * emit-rtl.c (skip_consecutive_labels): New function.
1841         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
1842         * jump.c (follow_jumps): Say what null return values mean.
1843
1844 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1845
1846         PR target/13250
1847         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
1848
1849 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1850
1851         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
1852         libgcc-std.ver.
1853         * config/sh/libgcc-std.ver: New file.
1854
1855 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
1856
1857         * except.c: Revert change of 2004-05-26.
1858         * config/i386/i386.md: Revert change of 2004-05-27.
1859
1860 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
1861
1862         * configure.ac: Remove --enable-tree-browser option.
1863         Define TREEBROWSER when ac_tree_checking is defined.
1864         * configure: Rebuilt.
1865
1866 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
1867
1868         * expr.c (store_constructor): Restore sanity check on
1869         the size of the type before clearing.
1870
1871 2004-05-27  Jan Hubicka  <jh@suse.cz>
1872
1873         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
1874
1875 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1876
1877         * combine.c (gen_binary): Remove.
1878         (known_cond, simplify_shift_const
1879         find_split_point, combine_simplify_rtx,
1880         simplify_if_then_else, simplify_set,
1881         simplify_logical, expand_field_assignment,
1882         extract_left_shift, force_to_mode,
1883         if_then_else_cond, apply_distributive_law,
1884         simplify_and_const_int, simplify_shift_const,
1885         gen_lowpart_for_combine, simplify_comparison,
1886         reversed_comparison): Replace with
1887         simplify_gen_binary, simplify_gen_relational or
1888         distribute_and_simplify_rtx.
1889         (distribute_and_simplify_rtx): New function.
1890         * simplify-rtx.c (simplify_binary_operation):
1891         Use nonzero_bits to simplify ANDs where we are
1892         turning off bits already known to be off in OP0.
1893
1894 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
1895
1896         PR target/14478
1897         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
1898
1899 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
1900
1901         PR middle-end/14084
1902         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
1903         to size of decl.
1904
1905 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
1906
1907         PR/14924
1908         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
1909
1910 2004-05-26  Roger Sayle  <roger@eyesopen.com>
1911
1912         * tree.h: Fix comment typo.
1913
1914 2004-05-27  Steven Bosscher  <stevenb@suse.de>
1915
1916         * gimplify.c (compare_case_labels): New function.
1917         (gimplify_switch_expr): Sort case labels, and make sure the
1918         last label in the label vector is the default case.
1919         * tree-cfg.c (group_case_labels): New function.
1920         (build_tree_cfg): Cleanup redundant labels and group case labels
1921         before creating edges.
1922         (cleanup_dead_labels): Handle GOTO_EXPRs.
1923         (find_case_label_for_value): Use a binary search to find the
1924         case label for the given value.
1925         * tree-gimple.c: Mention that labels are sorted, and that the
1926         last label must be the default.
1927
1928 2004-05-27  Jan Hubicka  <jh@suse.cz>
1929
1930         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
1931
1932 2004-05-27  Jan Hubicka  <jh@suse.cz>
1933
1934         * i386.md (UNSPECV_EH_RETURN): Kill.
1935         (eh_return): Use jump_insn.
1936         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1937
1938 2004-05-26  Jan Hubicka  <jh@suse.cz>
1939
1940         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
1941         not loop optimizing.
1942
1943 2004-05-26  Jan Hubicka  <jh@suse.cz>
1944
1945         * except.c (can_throw_internal):  Notice RESX instructions.
1946
1947 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
1948
1949         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
1950         of the two sizes to assemble_integer.
1951
1952 2004-05-25  Paul Brook  <paul@codesourcery.com>
1953
1954         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
1955         pointless #ifdef.
1956
1957 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
1958
1959         * Makefile.in (top_builddir): Define to .
1960
1961 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
1962
1963         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
1964         top-level detects, except when in-tree ld is being cross-built.
1965         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
1966         then AS only if target is host.
1967         * configure: Rebuilt.
1968
1969 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
1970
1971         * global.c (global_alloc): Call make_accurate_live_analysis.
1972         (record_one_conflict): Remove dead code.
1973         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
1974         (bb_info): New structure.
1975         (BB_INFO, BB_INFO_BY_INDEX): New macros.
1976         (allocate_bb_info, free_bb_info, mark_reg_change,
1977         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
1978         modify_bb_reg_pav, calculate_reg_pav,
1979         make_accurate_live_analysis): New functions.
1980
1981 2004-05-25  Devang Patel  <dpatel@apple.com>
1982
1983         * alias.c (init_alias_analysis): Use ggc_calloc instead of
1984         xrealloc.
1985         (end_alias_analysis): Use ggc_free instead fo free.
1986
1987 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
1988
1989         PR target/15546
1990         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
1991         as needed to be outputted.
1992
1993 2004-05-25  Jan Hubicka  <jh@suse.cz>
1994
1995         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
1996
1997 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
1998         Mostafa Hagog  <mustafa@il.ibm.com>
1999
2000         * Makefile.in (modulo-sched.o, ddg.o): New.
2001         * ddg.h, ddg.c, modulo-sched.c: New files.
2002         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2003         internals to "dupicate_insn".
2004         (duplicate_insn): New function.
2005         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2006         declarations.
2007         * common.opt (fmodulo-sched): New flag.
2008         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2009         Remove static and forward declaration.
2010         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2011         functions.
2012         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2013         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2014         declarations.
2015         * flags.h (flag_modulo_sched): New flag.
2016         * opts.c (common_handle_option): Handle modulo-sched flag.
2017         * params.def (max-sms-loop-number, sms-max-ii-factor,
2018         sms-dfa-history, sms-loop-average-count-threshold): New
2019         parameters.
2020         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2021         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2022         parameters.
2023         * passes.c ("sms", "sms-vcg"): New dumps.
2024         (rest_of_handle_sched): Call sms_schedule.
2025         * rtl.h (sms_schedule): New declaration.
2026         * timevar.def (TV_SMS): New.
2027         * toplev.c (flag_modulo_sched): Initialize.
2028         (f_options): Handle -fmodulo-sched option.
2029         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2030         * docs/passes.texi: Document new SMS pass.
2031
2032 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2033
2034         * Makefile.in (OBJS): Add rtlhooks.o.
2035         (rtlanal.o): Depend on function.h.
2036         (cse.o): Depend on rtlhooks-def.h.
2037         (combine.o): Depend on rtlhooks-def.h.
2038         (rtlhooks.o): New rule.
2039         * combine.c: Include rtlhooks-def.h.
2040         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2041         num_sign_bit_copies, cached_num_sign_bit_copies,
2042         num_sign_bit_copies1): Move most of the code to rtlanal.c.
2043         (reg_nonzero_bits_for_combine,
2044         reg_num_sign_bit_copies_for_combine): New functions holding
2045         the remnants of the above.
2046         (combine_rtl_hooks): New.
2047         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2048         * cse.c: Include rtlhooks-def.h.
2049         (cse_rtl_hooks): New.
2050         (cse_main): Set rtl_hooks instead of gen_lowpart.
2051         * emit-rtl.c (gen_lowpart): Remove.
2052         (gen_lowpart_general): Move to rtlhooks.c.
2053         * rtl.h (nonzero_bits, num_sign_bit_copies,
2054         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2055         (gen_lowpart_general): Remove.
2056         (gen_lowpart): Temporarily redefine as a macro.
2057         * rtlanal.c: Include function.h.
2058         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2059         num_sign_bit_copies, cached_num_sign_bit_copies,
2060         num_sign_bit_copies1): New, from combine.c.
2061         * rtlhooks.c: New file.
2062         * rtlhooks-def.h: New file.
2063
2064 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2065
2066         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2067         to support 32-bit -mint8 mode.
2068
2069         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2070         option in the AVR architecture.
2071
2072 2004-05-24  Mike Stump  <mrs@apple.com>
2073
2074         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2075
2076 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2077
2078         * intl.h (open_quote, close_quote): New.
2079         * intl.c (open_quote, close_quote): New.
2080         (gcc_init_libintl): Set them.
2081         * pretty-print.c: Include "intl.h".
2082         (pp_base_format_text): Support 'q' format flag and %` and %'
2083         formats.  Use ' instead of ` in comments.
2084         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2085         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2086         foramt_types_orig): Describe these new formats.
2087         (decode_format_attr, check_function_format,
2088         check_format_info_main): Use these new formats.
2089         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2090         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2091         check these formats to 3.5.
2092
2093 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2094
2095         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2096         (BACKEND): Reflect this.
2097         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2098         (LIBS): Likewise.
2099
2100 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2101
2102         PR tree-optimization/14197
2103         * builtins.c: Include "tree-gimple.h"
2104         (readonly_data_expr): Use get_base_address.  Make sure to call
2105         decl_readonly_section only on trees it can handle.
2106         * tree-gimple.c (get_base_address): Accept STRING_CST and
2107         CONSTRUCTOR expressions.
2108         * Makefile.in: Update dependencies.
2109
2110 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2111
2112         Move libcpp to the toplevel.
2113         * Makefile.in: Remove references to libcpp files,
2114         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2115         and change hashtable.h to that.
2116         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2117         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2118         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2119         * configure: Regenerate.
2120         * config.in: Regenerate.
2121         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2122         * cppcharset.c: Removed.
2123         * cpperror.c: Removed.
2124         * cppexp.c: Removed.
2125         * cppfiles.c: Removed.
2126         * cpphash.c: Removed.
2127         * cpphash.h: Removed.
2128         * cppinit.c: Removed.
2129         * cpplex.c: Removed.
2130         * cpplib.c: Removed.
2131         * cpplib.h: Removed.
2132         * cppmacro.c: Removed.
2133         * cpppch.c: Removed.
2134         * cpptrad.c: Removed.
2135         * cppucnid.h: Removed.
2136         * cppucnid.pl: Removed.
2137         * cppucnid.tab: Removed.
2138         * hashtable.c: Removed.
2139         * hashtable.h: Removed.
2140         * line-map.c: Removed.
2141         * line-map.h: Removed.
2142         * mkdeps.c: Removed.
2143         * mkdeps.h: Removed.
2144         * stringpool.h: Include symtab.h instead of hashtable.h.
2145         * tree.h: Include symtab.h instead of hashtable.h.
2146         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2147
2148 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2149
2150         * gcc.c (struct prefix_list): Add forward declaration.
2151         (do_spec_path): New function, extracted from...
2152         (do_spec_1) <'D'>: ... here.  Drop support for
2153         SPACE_AFTER_L_OPTION.
2154         (do_spec_1) <'I'>: Use do_spec_path.
2155         (process_command): Do not store the 'include' suffix
2156         in include_prefixes.
2157         * system.h: Poison SPACE_AFTER_L_OPTION.
2158
2159 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2160
2161         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2162         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2163
2164 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2165
2166         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2167         Update based on printed manual.  Enable setting of offsets for
2168         FSFPRINT and move it to gcc-common.texi.
2169         * doc/gcc.texi: Update FSF printing details.
2170         * doc/gccint.texi: Remove FSF printing details.
2171
2172 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2173
2174         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2175
2176 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2177
2178         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2179         expand_builtin_strrchr, expand_builtin_strpbrk,
2180         expand_builtin_mempcpy, expand_builtin_memcmp,
2181         expand_builtin_strcmp, expand_builtin_strncmp,
2182         expand_builtin_strcat, std_expand_builtin_va_start,
2183         std_expand_builtin_va_arg, expand_builtin_va_copy,
2184         expand_builtin_signbit, fold_builtin_cabs,
2185         fold_builtin_logarithm, fold_builtin_mempcpy,
2186         fold_builtin_signbit, fold_builtin_isascii,
2187         fold_builtin_toascii, fold_builtin_isdigit,
2188         fold_builtin_1, build_function_call_expr,
2189         simplify_builtin_strchr, simplify_builtin_strrchr,
2190         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2191         simplify_builtin_memcmp, simplify_builtin_strcmp,
2192         simplify_builtin_strncmp, simplify_builtin_strncat,
2193         simplify_builtin_strspn, simplify_builtin_strcspn,
2194         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2195         to build with calls to build2, build3 or omit_one_operand.
2196
2197 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2198
2199         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2200         section when generating EABI code.
2201
2202 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2203
2204         PR 15546
2205         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2206         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2207
2208 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2209
2210         * c-common.c (c_common_truthvalue_conversion): Handle
2211         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2212         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2213         i.e. set the type to truthvalue_type_node and return.
2214
2215 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2216
2217        * tree.h (struct tree_decl): Add possibly_inlined bit.
2218         (DECL_POSSIBLY_INLINED): New accessor macro.
2219         * cgraph.h: Remove declaration of cgraph_inline_hash.
2220         * cgraph.c: Remove definition of cgraph_inline_hash.
2221         (hash_node): Revert to hashing DECL_UID.
2222         (eq_node): Take two pointers to cgraph_node structures.
2223         Compare DECL_UIDs.
2224         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2225         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2226         hash on DECL_UID.
2227         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2228         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2229         (cgraph_node): Allocate a temporary node on the stack, fill in
2230         its DECL field, and pass that to htab_find_slot.
2231         (cgraph_varpool_node): Likewise.
2232         (cgraph_function_possibly_inlined_p): If global info is ready,
2233         return the DECL_POSSIBLY_INLINED bit.
2234         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2235         instead of mucking with cgraph_inline_hash.
2236
2237 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2238
2239         * doc/contrib.texi: Add g77 contributors.
2240
2241 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2242
2243         * calls.c (initialize_argument_information): Forbid sibcalls if a
2244         callee-copied argument is stored in the current function's frame.
2245
2246 2004-05-22  Eric Christopher  <echristo@redhat.com>
2247
2248         * fix-header.c (read_scan_file): Update for add_path change.
2249
2250 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2251
2252         * c.opt (Wmissing-include-dirs): New.
2253         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2254         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2255         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2256         * c-incpath.h (add_path): Add fourth (bool) argument.
2257         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2258         (add_standard_paths): Likewise.
2259         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2260         is used and the directory was user-supplied via -I.
2261         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2262         using add_cpp_dir_path ().
2263         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2264         (struct cpp_dir): Add user_supplied_p.
2265         * doc/invoke.texi (Warning Options): Document new option.
2266
2267 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2268
2269         * fold-const.c (fold_read_from_constant_string): Convert result to
2270         requested type.
2271
2272 2004-05-21  Richard Henderson  <rth@redhat.com>
2273
2274         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2275         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2276         Don't mark VA_ARG_EXPRs volatile here.
2277         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2278
2279 2004-05-21  Richard Henderson  <rth@redhat.com>
2280
2281         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2282         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2283
2284 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2285
2286         * fold-const.c (fold, fold_relational_hi_lo,
2287         nondestructive_fold_binary_to_constant,
2288         fold_read_from_constant_string): Use fold_convert instead of convert.
2289         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2290         simplify_builtin_strchr, simplify_builtin_strrchr,
2291         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2292
2293 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2294
2295         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2296         is NULL.
2297
2298 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2299
2300         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2301         override sparc.h definition.
2302
2303 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2304
2305         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2306         get_unwidened, get_narrower): Replace build with build2.
2307         * fold-const.c (negate_expr, associate_trees, size_binop,
2308         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2309         pedantic_omit_one_operand, distribute_bit_expr,
2310         make_bit_field_ref, optimize_bit_field_compare,
2311         decode_field_reference, range_binop, make_range,
2312         build_range_check, fold_range_test, fold_truthop,
2313         optimize_minmax_comparison, extract_muldiv_1,
2314         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2315         fold_inf_compare, fold_single_bit_test, fold,
2316         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2317         Likewise replace build with either build2 or build3.
2318
2319 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
2320
2321         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2322         * calls.c (prepare_call_address): Don't test
2323         NO_RECURSIVE_FUNCTION_CSE.
2324         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2325         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2326         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2327         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2328         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2329         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2330         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2331         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2332         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2333         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2334         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2335         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2336         Likewise.
2337         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2338         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2339         * doc/tm.texi (Costs): Remove documentation for
2340         NO_RECURSIVE_FUNCTION_CSE.
2341
2342 2004-05-20  Paul Brook  <paul@codesourcery.com>
2343
2344         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2345         * unwind-dw2.c (extract_cie_info): Ditto.
2346         (_Unwind_FrameState): Change retaddr_column to word type.
2347
2348 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2349
2350         PR middle-end/3074
2351         * fold-const.c (strip_compound_expr): Delete function.
2352         (count_cond): Delete function.
2353         (fold_binary_op_with_conditional_arg): Only perform transformations
2354         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2355         when a is constant.  This greatly simplifies this routine.
2356
2357         * tree.c (saved_expr_p): Delete function.
2358         * tree.h (saved_expr_p): Delete function prototype.
2359
2360 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2361
2362         * common.opt (ftree-loop-optimize): Remove.
2363
2364 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
2365
2366         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2367         (NM_FOR_TARGET): Use := and $(shell).
2368         (mainversion): Remove unused variable.
2369
2370 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2371
2372         * reorg.c (delete_from_delay_slot): If we have a barrier after the
2373         sequence containing the insn to be deleted, always reemit it.
2374
2375 2004-05-20  Richard Henderson  <rth@redhat.com>
2376
2377         PR 15454
2378         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2379         * function.c (expand_function_start): Expand static_chain_decl by hand.
2380         * gimplify.c (create_tmp_var_name): Export.
2381         * tree-gimple.h (create_tmp_var_name): Declare.
2382
2383 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2384
2385         * rs6000.c (print_operand) <case 'z'>: Call
2386         mark_decl_referenced before assemble_name.
2387
2388 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
2389
2390         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2391         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2392         (cgraph_varpool_node): Hash on the pointer to the decl, not
2393         the DECL_UID.  Fixes 64-bit bootstrap failure.
2394
2395 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
2396
2397         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2398         we don't earlyclobber operands used in the second insn.
2399
2400 2004-05-20  Steven Bosscher  <stevenb@suse.de>
2401
2402         * tree-mudflap.c: Formatting fixes.
2403
2404 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2405
2406         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2407         * gengtype.c (open_base_files): Include reload.h in ifiles.
2408         * reload.h (reg_equiv_memory_loc_varray): Declare.
2409         * reload1.c (reg_equiv_memory_loc_varray): New variable.
2410         (init_reload): Initialize it.
2411         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2412         reg_equiv_memory_loc_varray to size 0.
2413         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2414         growing reg_equiv_memory_loc_varray to the desired size.
2415         * passes.c (rest_of_handle_old_regalloc): Likewise.
2416         * reload.c: Amend comment on calling init_reload.
2417
2418 2004-05-20  Nick Clifton  <nickc@redhat.com>
2419
2420         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2421         with 'TRAMP' in the body of the macro definition.
2422
2423 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2424
2425         PR target/15383
2426         * config/ia64/ia64.c (ia64_expand_compare): Don't check
2427         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2428         cmptf_libfunc isn't set.
2429         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2430         conventions.
2431         (ia64_sysv4_init_libfuncs): New.
2432
2433         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2434         ia64_sysv4_init_libfuncs.
2435
2436 2004-05-20  Falk Hueffner  <falk@debian.org>
2437
2438         PR other/15526
2439         * libgcc2.c (__mulvsi3): Fix overflow test.
2440
2441 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
2442
2443         PR c/14171
2444         * reg-stack.c (nan): Rename to ...
2445         (not_a_num): Here.
2446         (reg_to_stack): Rename nan to not_a_num.
2447         (subst_stack_regs_pat): Likewise.
2448         (convert_regs_entry): Likewise.
2449         (convert_regs_1): Likewise.
2450
2451         * tree-cfg.c (find_case_label_for_value): Replace call to
2452         simple_cst_equal with tree_int_cst_equal.
2453
2454 2004-05-19  Jeff Law <law@redhat.com>
2455
2456         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2457         If the operand is for a use, then strip away the SSA_NAME, do not
2458         strip away the SSA_NAME for a set.  Never call release_ssa_name.
2459         (mark_def_sites): Appropriately pass additional argument to
2460         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
2461         then set the VDEF_RESULT to the VDEF_OP.
2462         (set_def_block): Strip away any SSA_NAME to get to the real
2463         underlying variable.
2464
2465         * tree-ssa-phiopt.c (value_replacement): Handle the case where
2466         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2467         BB directly.
2468
2469 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2470
2471         PR c++/15463
2472         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
2473         result of inverse.
2474
2475         PR rtl-optimization/15274
2476         * loop-iv.c (determine_max_iter, shorten_into_mode,
2477         iv_number_of_iterations): Handle constants correctly.
2478         * rtl.h (get_mode_bounds): Declaration changed.
2479         * stor-layout.c (get_mode_bounds): Return a constant suitable for
2480         the target mode.
2481
2482         PR rtl-optimization/14692
2483         * loop-unswitch.c (may_unswitch_on): Try folding the result.
2484         (unswitch_single_loop): Work correctly when may_unswitch_on
2485         returns a folded constant.
2486
2487         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2488         * simplify-rtx.c (simplify_const_relational_operation): Optimize
2489         comparisons with mode bounds.
2490
2491         * function.c (struct temp_slot): Add new field prev.
2492         (free_after_compilation, init_temp_slots): Free new fields.
2493         (cut_slot_from_list, insert_slot_to_list,
2494         temp_slots_at_level, max_slot_level, move_slot_to_level,
2495         make_slot_available): New functions.
2496         (assign_stack_temp_for_type, combine_temp_slots,
2497         find_temp_slot_from_address, preserve_temp_slots,
2498         preserve_rtl_expr_result, free_temp_slots,
2499         free_temps_for_rtl_expr, pop_temp_slots): Work with
2500         the new structure of lists.
2501         (mark_all_temps_used): Removed.
2502         * function.h (struct function): Field x_temp_slots
2503         replaced by x_used_temp_slots and x_avail_temp_slots.
2504         (temp_slots): Replaced by ...
2505         (used_temp_slots, avail_temp_slots): New.
2506         * tree.h (mark_all_temps_used): Declaration removed.
2507
2508         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2509         simplify_using_assignment): Take the expression out of
2510         the expr_list wrapper.
2511
2512         * loop-iv.c (iv_number_of_iterations): Improve clasification of
2513         infinite loops.
2514
2515 2004-05-19  Roger Sayle  <roger@eyesopen.com>
2516
2517         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2518         costs should be based on code size when optimizing for size.
2519
2520 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
2521
2522         * fold-const.c: Remove non-printable character 160.
2523
2524 2004-05-19  Nick Clifton  <nickc@redhat.com>
2525
2526         * doc/invoke.texi (ARM Options): Fix typo.
2527         Remove descrption of -mshort-load-bytes and
2528         -mno-short-load-bytes.
2529
2530         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2531         missing parenthesis.
2532         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2533         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2534
2535 2004-05-19  Steven Bosscher  <stevenb@suse.de>
2536
2537         * expr.c (store_constructor): Build loop start and end by hand
2538         instead of via loop functions from stmt.c.
2539         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2540         Remove the code to expand them.
2541
2542         * stmt.c (loop_stack): Remove this and everything related.
2543         (struct nesting, enum nesting_desc): Update.
2544         (expand_fixup): Likewise.
2545         (expand_loop_start, expand_start_loop_continue_elsewhere,
2546         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2547         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
2548         expand_exit_loop_if_false, expand_exit_loop_top_cond,
2549         expand_exit_something): Remove.
2550         * tree.h: Remove prototypes.
2551
2552 2004-05-18  Mike Stump  <mrs@apple.com>
2553             Devang Patel  <dpatel@apple.com>
2554
2555         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
2556         if this label is for eh.
2557         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
2558         * config/darwin.c (darwin_emit_unwind_label): Likewise.
2559         * dwarf2out.c (output_call_frame_info): Likewise.
2560         * output.h (default_emit_unwind_label): Likewise.
2561         * target.h (unwind_label): Likewise.
2562         * varasm.c (default_emit_unwind_label): Likewise.
2563
2564         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2565         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
2566         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
2567         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
2568         DEBUG_RANGES_SECTION): Define.
2569
2570 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
2571
2572         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2573         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2574         (cgraph_varpool_node):
2575         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
2576         (cgraph_function_possibly_inlined_p): Use the decl itself for
2577         the key, not DECL_ASSEMBLER_NAME.
2578         (change_decl_assembler_name): No need to muck with the hash tables.
2579         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
2580         Delete.
2581         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
2582         for the key, not DECL_ASSEMBLER_NAME.
2583         * cgraph.h: Remove prototypes of deleted functions.
2584         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
2585         (mark_decl_referenced): New function.
2586         * tree.h: Prototype mark_decl_referenced.
2587         * final.c (output_addr_const) <case SYMBOL_REF>: Call
2588         mark_decl_referenced before assemble_name.
2589         * c-decl.c (finish_decl): Use mark_decl_referenced.
2590
2591 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
2592             Jeff Law <law@redhat.com>
2593
2594         * tree-ssa-phiopt.c (abs_replacement): New function.
2595         (empty_block_p): New function extracted from...
2596         (candidate_bb_for_phi_optimization): Break out empty block test.
2597         (conditional_replacement): Use empty_block_p.
2598         (value_replacement): Similarly.
2599
2600         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
2601         * tree-ssa-phiopt.c: Include flags.h.
2602         (conditional_replacement): Remove argument names from prototype.
2603         Minor formatting and comment fixes.
2604         (tree_ssa_phiopt): If conditional_replacement returns false, then
2605         call value_replacement.
2606         (value_replacement): New function.
2607
2608 2004-05-18  Jeff Law  <law@redhat.com>
2609
2610         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
2611         from conditional_replacement.
2612         (candidate_bb_for_phi_optimization): Similarly.
2613         (conditional_replacement): Use replace_phi_with_stmt and
2614         candidate_bb_for_phi_optimization.
2615
2616         * tree-ssa-phiopt.c: Fix various formatting issues.
2617
2618 2004-05-18  Steven Bosscher  <stevenb@suse.de>
2619
2620         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
2621         s390_expand_cmpmem): Do not use expand_start_loop and
2622         expand_end_loop, instead build the loop manually.
2623
2624 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
2625
2626         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
2627         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
2628
2629 2004-05-17  Jeff Law  <law@redhat.com>
2630
2631         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
2632         * flags.h (flag_delete_null_pointer_checks): Here.
2633         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
2634         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
2635         (add_phi_arg, remove_phi_arg_num): Similarly.
2636         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
2637         property into PHI nodes.
2638         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
2639         (record_equivalences_from_phis): If all PHI arguments are known to be
2640         nonzero, then the result must be nonzero as well.
2641         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
2642         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
2643         appropriately.  Walk the USE-DEF chains and propagate nonzero property
2644         as appropriate.
2645         * tree.h (PHI_ARG_NONZERO): Define.
2646         (phi_arg_d): Add nonzero flag.
2647
2648 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
2649
2650         * f: Entire directory removed
2651
2652         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
2653         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
2654         (g77_integer_type_node, g77_uinteger_type_node)
2655         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
2656         * c-common.c (c_common_nodes_and_builtins): Do not initialize
2657         the above set of variables.
2658
2659         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
2660         * doc/invoke.texi, doc/standards.texi: Remove cross-references
2661         to g77 manual.
2662
2663 2004-05-17  Steven Bosscher  <stevenb@suse.de>
2664
2665         PR tree-optimization/15438
2666         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
2667         attributed functions as pure or const.
2668
2669 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
2670
2671         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
2672         from source code with errors.
2673
2674 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
2675
2676         Enable tree browser for all front ends.
2677         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
2678         (BACKEND): ...to here.
2679
2680 2004-05-17  Jan Hubicka  <jh@suse.cz>
2681
2682         * i386.c (construct_container): Do not produce BLKmode registers.
2683         (classify_argument): Properly compute alignment of complex types.
2684
2685 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
2686
2687         PR target/15084
2688         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
2689         and renamed to movdi_insv_1_rex64.
2690         (insv): Support SImode for 32bit and DImode for 64bit.
2691
2692 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2693
2694         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
2695         (TARGET_SWITCHES): Remove debugg.
2696         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
2697         TARGET_64BIT.
2698         (subdi3): Replace the define_expand with a define_insn, the latter
2699         renamed from subdi3_internal_3.
2700         (negdi2): Likewise negdi2_internal_2.
2701         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
2702         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
2703         and associated define_splits.
2704         (adddi3_internal): Renamed from adddi3_internal_3.
2705         (ashldi3_internal): Likewise ashldi3_internal4.
2706         (ashrdi3_internal): Likewise ashrdi3_internal4.
2707         (lshrdi3_internal): Likewise lshrdi3_internal4.
2708
2709 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2710
2711         * optabs.c (expand_unop): Try implementing negation using subtraction
2712         from zero.
2713
2714 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2715
2716         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
2717         SAR register.
2718
2719 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
2720
2721         PR target/10982
2722         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
2723         (ne_zeroextractsi_shifted): New pattern.
2724         (ite_ne_zeroextractsi): New pattern.
2725         (ite_ne_zeroextractsi_shifted): New pattern.
2726
2727 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2728
2729         * c-gimplify.c (c_genericize):
2730         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
2731         * c-parse.in <expr_no_commas>: Likewise.
2732         <if_prefix>: Likewise.
2733         <select_or_iter_stmt>: Likewise.
2734         * expr.c (expand_var, expand_expr_real_1): Likewise.
2735         * expr.h (expand_expr): Make it a static inline function.
2736         Move prototype for expand_expr_real up before this.
2737         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
2738         Likewise.
2739         * gimplify.c (gimple_boolify, gimplify_addr_expr,
2740         gimplify_asm_expr, gimplify_expr): Likewise.
2741         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
2742         dump_function_to_file): Likewise.
2743         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
2744         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
2745         * tree-into-ssa.c (dump_tree_ssa): Likewise.
2746         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
2747         Likewise.
2748         * tree-optimize.c (execute_one_pass): Likewise.
2749         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
2750         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
2751
2752         * objc/objc-act.c (objc_build_try_enter_fragment,
2753         objc_build_try_epilogue, objc_build_catch_stmt,
2754         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
2755         with lang_hooks.foo ().
2756
2757 2004-05-15  Roger Sayle  <roger@eyesopen.com>
2758
2759         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
2760         that simplify_builtin doesn't destructively modify its argument.
2761
2762 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2763
2764         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
2765         implementations for ARM and Thumb.
2766         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
2767
2768 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
2769
2770         * prefix.c (update_path): Replace PREFIX with KEY only
2771         when it matches a full directory name in PATH.
2772
2773 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2774
2775         * arm.h (TARGET_APCS_32): Delete.
2776         (TARGET_MMU_TRAPS): Delete.
2777         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
2778         define __APCS_26__.
2779         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
2780         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
2781         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
2782         (prog_mode_type): Delete.
2783         (PROMOTE_MODE): Always promote unsigned for HImode.
2784         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
2785         (MASK_RETURN_ADDR): Simplify.
2786         * arm.c (arm_prgmode): Delete.
2787         (arm_override_options, arm_gen_rotated_half_load): Simplify.
2788         (print_multi_reg, output_return_instruction): Simplify.
2789         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
2790         (arm_return_addr): Simplify.
2791         * arm.md (prog_mode): Delete.
2792         (conds): Simplify.
2793         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
2794         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
2795         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
2796         (loadhi_shiftpredec): Delete.
2797         (peephole for post-increment on HImode load): Delete.
2798         * arm/crtn.asm: (FUNC_END): Simplify.
2799         * arm/lib1funcs.asm: Remove APCS-26 return macros.
2800         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
2801         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
2802         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
2803         MULTILIB_DEFAULTS as required.
2804         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
2805         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
2806         variables as required.
2807         * doc/invoke.texi (ARM Options): Remove obsolete flags.
2808
2809 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
2810
2811         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
2812         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
2813         count to 8 to handle n_reg > 2.
2814
2815 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2816
2817         * doc/extend.texi: Update WG14 URL.
2818
2819 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2820
2821         * basic-block.h (life_analysis, delete_noop_moves):
2822         Update prototypes.
2823         * bt-load.c (branch_target_load_optimize): Don't take the
2824         insns stream as an argument.  Update the life_analysis calls.
2825         * combine.c (combine_instructions): Update delete_noop_moves
2826         calls.
2827         * flow.c (notice_stack_pointer_modification): Don't take the
2828         insns stream as an argument.  Work on the flow graph.
2829         (life_analysis): Likewise.
2830         (delete_noop_moves): Likewise.
2831         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
2832         (rest_of_handle_life): Update life_analysis call.
2833         (rest_of_compilation): Likewise, and also update
2834         branch_target_load_optimize call.
2835         * ra.c (reg_alloc): Update life_analysis call.
2836         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
2837         the insns stream as an argument.
2838         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
2839         call.
2840         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
2841         prototypes.
2842         * value-profile.c (branch_prob): Update life_analysis call.
2843         * web.c (web_main): Work on the CFG, not on the insns stream.
2844
2845         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
2846         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
2847         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2848
2849 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2850
2851         PR c/15444
2852         * c-format.c (avoid_dollar_number): New function.
2853         (check_format_info_main): Call avoid_dollar_number when operand
2854         numbers might occur but has_operand_number == 0.
2855
2856 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
2857
2858         * arm.md (all peephole2 patterns): Use predicates that validate
2859         register classes as appropriate.
2860
2861 2004-05-14  Steven Bosscher  <stevenb@suse.de>
2862
2863         PR opt/14472
2864         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
2865         ignore type conversions that do not inhibit tail calling.
2866         (find_tail_calls): Likewise.
2867
2868 2004-05-14  Jeff Law  <law@redhat.com>
2869
2870         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
2871         bother marking bypassed virtuals for out-of-ssa.  Instead merge
2872         bypassed virtuals into vars_to_rename just before into-ssa pass.
2873
2874         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
2875         so that it picks up more opportunities to eliminate ABS expressions
2876         or turn them into negations.
2877
2878 2004-05-14  Steven Bosscher  <stevenb@suse.de>
2879
2880         * passes.c (rest_of_handle_null_pointer): Remove.
2881         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
2882         (rest_of_compilation): Likewise.
2883         * rtl.h (delete_null_pointer_checks): Remove prototype.
2884         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
2885         Remove declarations.
2886         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
2887         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
2888         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
2889         expr_reaches_here_p, computing_insn, def_reaches_here_p,
2890         can_disregard_other_sets, handle_avail_expr, classic_gcse,
2891         one_classic_gcse_pass, invalidate_nonnull_info,
2892         delete_null_pointer_checks_1, delete_null_pointer_checks,
2893         expr_reached_here_p_work): Remove.
2894         (gcse_main): Do not perform classic GCSE when optimizing for size.
2895         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
2896         are never used.
2897
2898 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
2899
2900         PR optimization/14466
2901         * tree-complex.c (make_temp): Remove.
2902         (gimplify_val): Replace make_temp with make_rename_temp
2903         and add NULL as the second argument.
2904         (expand_complex_div_wide): Likewise.
2905         * tree-dfa.c (make_rename_temp): New function.
2906         * tree-flow.h (make_rename_temp): Declare.
2907         * tree-sra.c (make_temp): Remove.
2908         (lookup_scalar): Replace make_temp with make_rename_temp.
2909         (create_scalar_copies): Likewise.
2910         * tree-ssa-phiopt.c (conditional_replacement): When we
2911         get non gimple create a temporary variable to hold the
2912         casted expression.
2913
2914 2004-05-14  Paul Brook  <paul@codesourcery.com>
2915
2916         * stor-layout.c (update_alignment_for_field): Use
2917         targetm.align_anon_bitfield.
2918         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
2919         (TARGET_INITIALIZER): Use it.
2920         * target.h (struct gcc_target): Add align_anon_bitfield.
2921         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
2922         (TARGET_ALIGN_ANON_BITFIELD): Define.
2923         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
2924
2925 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
2926
2927         * tree.def (documentation): Remove mention of class 'b'.
2928         (BLOCK): Now in class 'x'.
2929         * c-common.c (verify_tree): Remove case 'b'.
2930         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
2931         * calls.c (calls_function_1): Control cannot get past the switch
2932         when exp is a BLOCK.
2933         * print-tree.c (print_node): Move code for class 'b' to the class
2934         'c'/'x' switch, as case BLOCK.
2935         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
2936         (unsafe_for_reeval, substitute_placeholder_in_expr)
2937         (stabilize_reference_1): Remove case 'b'.
2938         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
2939         of something being 'b' to tests for TREE_CODE of something being
2940         BLOCK.
2941         * tree-ssa-operands.c (get_expr_operands): Likewise.
2942
2943 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2944
2945         * tree-gimple.c: Rename from tree-simple.c.
2946         * tree-gimple.h: Rename from tree-simple.h.
2947         * c-gimplify.c: Rename from c-simplify.c
2948         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
2949         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
2950         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
2951         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
2952         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
2953         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
2954         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
2955         Update.
2956
2957 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
2958
2959         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
2960
2961 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2962
2963         * tree-ssa.c (delete_tree_ssa): XFREE
2964         bitmaps allocated with BITMAP_XMALLOC.
2965
2966         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
2967         idfs_cache at the end of the function.
2968
2969         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
2970         at the end of the function.
2971
2972         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
2973         el at the end of the function.
2974
2975         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
2976         bitmaps allocated with BITMAP_XMALLOC.
2977
2978         * loop-unswitch.c (unswitch_single_loop): Free bbs at
2979         the end.
2980
2981         * final.c (shorten_branches): Free uid_shuid before
2982         reallocating it.
2983
2984         * bb-reoder.c (connect_traces): Free cold_traces at the end.
2985
2986 2004-05-13  Jeff Law  <law@redhat.com>
2987
2988         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
2989         variables.  Simplify slightly by using USE_OP/DEF_OP instead
2990         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
2991
2992         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
2993         rather than iterating through the blocks testing each bit in
2994         livein to initialize the worklist.
2995         (mark_def_sites): Remove useless checks of KILLS for virtual
2996         operands.
2997
2998         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
2999         new parameters for the statement and variable worklist as well
3000         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
3001         worklist recording interesting variables in the variable worklist
3002         and bitmap.  Handle casts between integral and boolean types.
3003         (substitute_single_use_vars): Accept new parameters for the statement
3004         and variable worklist.  When a substitution is made add a new
3005         entry to the statement worklist.  Handle casts between integral
3006         and boolean types.
3007         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3008         worklists to children.  Iterate until the statement worklist
3009         is empty.
3010
3011 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3012
3013         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3014         the end of the block.
3015
3016         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3017         with BITMAP_XMALLOC.
3018
3019         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3020         with BITMAP_XMALLOC.
3021
3022         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3023         Free nonzero_vars at the end of the function.
3024
3025         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3026         need to generate code instead of a NOP_EXPR.
3027
3028 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
3029
3030         * gcc.c (default_compilers): Fill out initializers for new Fortran
3031         entries.
3032
3033 2004-05-13  Paul Brook  <paul@codesourcery.com>
3034
3035         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3036
3037 2004-05-13  Paul Brook  <paul@codesourcery.com>
3038
3039         * config/arm/arm.c (arm_default_short_enums): New function.
3040         (TARGET_DEFAULT_SHORT_ENUMS): Define.
3041
3042 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3043
3044         Merge from tree-ssa-20020619-branch.
3045
3046         * Makefile.in (reload1.o-warn): Add.
3047         (tree-alias-ander.o-warn): Add.
3048         (GMPLIBS): Define.
3049         (GMPINC): Define.
3050         (BANSHEELIB): Define.
3051         (BANSHEEINC): Define.
3052         (TREE_DUMP_H): Define.
3053         (TREE_SIMPLE_H): Define.
3054         (TREE_FLOW_H): Define.
3055         (LIBDEPS): Add BANSHEELIB.
3056         (INCLUDES): Add BANSHEEINC and GMPINC.
3057         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3058         c-mudflap.o and c-pretty-print.o.
3059         (C_OBJS): Remove c-pretty-print.o.
3060         (OBJS-common): Remove sibcall.o.
3061         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3062         tree-ssa.o, tree-optimize.o, tree-simple.o,
3063         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3064         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3065         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3066         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3067         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3068         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3069         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3070         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3071         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3072         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3073         tree-profile.o.
3074         (OBJC-archive): Add tree-nomudflap.o.
3075         (cc1): Add dependency on @TREEBROWSER@.
3076         (c-decl.o): Add dependency on TREE_DUMP_H.
3077         (c-dump.o): Likewise.
3078         (c-common.o): Add dependency on tree-iterator.h
3079         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3080         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3081         (tree.o): Add dependency on tree-iterator.h,
3082         BASIC_BLOCK_H and TREE_FLOW_H.
3083         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3084         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3085         (tree-alias-type.o, tree-alias-ander.o,
3086         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3087         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3088         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3089         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3090         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3091         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3092         tree-nested.o, tree-iterator.o, tree-dfa.o,
3093         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3094         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3095         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3096         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3097         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3098         tree-sra.o, tree-complex.o, tree-profile.o,
3099         rtl-profile.o): New rules.
3100         (function.o): Add dependency on basic-block.h
3101         (expr.o): Add dependency on tree-iterator.h.
3102         (sibcall.o): Remove.
3103         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3104         (cfg.o): Add dependency on TIMEVAR_H.
3105         (cfghooks.o): Add dependency on TREE_FLOW_H.
3106         (reg-stack.o): Add dependency on basic-block.h.
3107         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3108         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3109         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3110         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3111         tree-alias-type.h, tree-alias-common.h,
3112         tree-alias-type.c, tree-alias-common.c,
3113         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3114         rtl-profile.c and tree-nested.c.
3115         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3116         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3117         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3118         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3119         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3120         * basic-block.h: Include predict.h
3121         (struct edge_def): Add GTY marker.
3122         Change field 'insns' to be a union of tree and rtx.
3123         (EDGE_TRUE_VALUE): Define.
3124         (EDGE_FALSE_VALUE): Define.
3125         (EDGE_EXECUTABLE): Define.
3126         (struct bb_ann_d): Forward declare.
3127         (struct basic_block_def): Add GTY marker.
3128         Remove fields head_tree and end_tree.
3129         Add fields stmt_list, rbi and tree_annotations.
3130         (struct reorder_block_def): Define.
3131         (basic_block_info): Add GTY marker.
3132         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3133         variables instead of macros.
3134         (flow_call_edges_add): Remove declaration.
3135         (make_eh_edge): Remove declaration.
3136         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3137         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3138         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3139         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3140         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3141         (try_redirect_by_replacing_jump): Modfiy return type to
3142         edge instead of bool.
3143         * bb-reorder.c (copy_bb): Call duplicate_block
3144         instead of cfg_layout_duplicate_bb.
3145         (copy_bb_p): Call can_duplicate_block_p instead of
3146         cfg_layout_can_duplicate_bb_p.
3147         * bitmap.c (bitmap_first_set_bit): Abort if word
3148         wasn't found.
3149         (bitmap_last_set_bit): Likewise.
3150         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3151         (DEF_FUNCTION_TYPE_3): Add.
3152         * builtins.c (c_strlen): Make extern.
3153         (builtin_save_expr): New.
3154         (expand_builtin_nonlocal_goto): New.
3155         (expand_builtin_constant_p): Remove.
3156         (expand_builtin_mathfn): Call builtin_save_expr instead
3157         of save_expr.
3158         (expand_builtin_mathfn_2): Likewise.
3159         (expand_builtin_strcmp): Likewise.
3160         (expand_builtin_strncmp): Likewise.
3161         (expand_builtin_strcat): Likewise.
3162         (fold_builtin_cabs): Likewise.
3163         (expand_builtin_alloca): Don't trigger if -fmudflap is
3164         given.
3165         (build_string_literal): Set TREE_INVARIANT on new node.
3166         (expand_builtin_profile_fun): New.
3167         (round_trampoline_addr): New.
3168         (expand_builtin_init_trampoline): New.
3169         (expand_builtin_adjust_trampoline): New.
3170         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3171         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3172         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3173         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3174         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3175         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3176         Handle.
3177         (fold_builtin_expect): New.
3178         (fold_builtin_isascii): Don't return non-constant results
3179         in GIMPLE form.
3180         (fold_builtin_isdigit): Likewise.
3181         (fold_builtin_1): New.
3182         (fold_builtin): Call it.
3183         (build_function_call_expr): Update call to build a new
3184         CALL_EXPR.
3185         (purge_builtin_constant_p): Remove.
3186         (simplify_builtin, simplify_builtin_memcmp,
3187         simplify_builtin_strcmp, simplify_builtin_strncmp,
3188         simplify_builtin_strpbrk, simplify_builtin_strstr,
3189         simplify_builtin_strchr, simplify_builtin_strrchr,
3190         simplify_builtin_strcat, simplify_builtin_strncat,
3191         simplify_builtin_strspn, simplify_builtin_strcspn,
3192         simplify_builtin_next_arg, simplify_builtin_va_start,
3193         simplify_builtin_sprintf): New.
3194         * builtins.def (BUILT_IN_STACK_ALLOC,
3195         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3196         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3197         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3198         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3199         * c-common.c: Include tree-iterator.h and hashtab.h.
3200         (lang_statement_code_p): Declare.
3201         (lang_gimplify_stmt): Declare.
3202         (fix_string_type): Set TREE_INVARIANT for value.
3203         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3204         (c_type_hash): New.
3205         (c_common_get_alias_set): Handle multiple type nodes
3206         referring to "the same" type, currently for C90 only.
3207         (c_add_case_label): Use create_artificial_label.
3208         (finish_label_address_expr): Don't set TREE_CONSTANT on
3209         result.
3210         (c_expand_expr): Don't handle STMT_EXPR.
3211         (handle_alias_attribute): Marke aliased variables to be
3212         TREE_STATIC.
3213         (handle_nonnull_attribute): Initialize arg_num.
3214         (check_function_nonnull): Likewise.
3215         (c_walk_subtrees): New.
3216         (c_estimate_num_insns_1): Don't handle
3217         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3218         (c_decl_uninit_1): Remove.
3219         (c_decl_uninit): Remove.
3220         (c_warn_unused_result): New.
3221         * c-common.def (ASM_STMT): Change number of operands
3222         to 4.
3223         (FILE_STMT): Remove.
3224         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3225         Remove.
3226         (lang_gimplify_stmt): Add.
3227         (expand_stmt): Remove.
3228         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3229         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3230         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3231         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3232         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3233         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3234         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3235         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3236         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3237         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3238         genrtl_compound_stmt, genrtl_asm_stmt,
3239         genrtl_cleanup_stmt, c_decl_uninit): Remove.
3240         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3241         c_tree_chain_matters_p, c_warn_unused_result,
3242         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3243         Declare.
3244         * c-convert.c (convert): Make convert work when
3245         converting to compatible types across translation unit.
3246         * c-decl.c: Include langhooks.h, tree-mudflap.h,
3247         tree-simple.h, diagnostic.h and tree-dump.h
3248         (merge_decls): Initialize oldtype to NULL.
3249         (finish_decl): Use DECL_HARD_REGISTER instead of
3250         DECL_C_HARD_REGISTER.
3251         (check_bitfield_type_and_width): Check for null
3252         lang_type_specific when check the precision of an enum.
3253         (grokdeclarator): Immediately layout an ARRAY_TYPE used
3254         in a pointer-to-array declarator.
3255         (finish_struct): Clear allocated struct lang_type.
3256         (finish_enum): Set enum_min and enum_max.  Set
3257         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3258         not to the enumerators.
3259         (set_decl_nonlocal): New.
3260         (store_parm_decls): Use it via walk_tree.
3261         (c_finalize): New.
3262         (finish_function): When !targetm.have_ctors_dtors,
3263         record static constructors and destructors here...
3264         (c_expand_body_1): ... not here.
3265         (c_expand_decl): Rename from c_expand_decl_stmt.
3266         Handle all C-specific expansion semantics.
3267         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3268         STMT_LINENO.
3269         * c-format.c (handle_format_arg_attribute): Initialize
3270         format_num.
3271         * c-lang.c: Include tree-inline.h
3272         (LANG_HOOKS_EXPAND_DECL,
3273         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3274         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3275         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3276         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3277         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3278         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3279         (c_types_compatible_p): New.
3280         * c-mudflap.c: New file.
3281         * c-objc-common.c: Include tree-mudflap.h
3282         (start_cdtor, finish_cdtor): Collapse
3283         together into
3284         (build_cdtor): ...here.  Update to construct a complete tree
3285         for the function.  No need to call push_scope, pop_scope, or
3286         clear_last_expr, or set current_function_cannot_inline.
3287         (c_missing_noreturn_ok_p): Change prototype to return
3288         bool.
3289         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3290         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3291         opts.c.
3292         (c_common_post_options): Don't ever use rtl inlining.
3293         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3294         * c-pragma.c (handle_pragma_redefine_extname): Define
3295         always.
3296         (init_pragma): Activate #pragma redefine_extname for mudflap.
3297         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3298         (pp_c_initializer): Accept any type CONSTRUCTOR.
3299         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3300         COMPLEX_TYPE.
3301         (decl_name_str): New local function.
3302         (pp_c_direct_declarator): Call it.
3303         (pp_c_primary_expression): Call it.
3304         (pp_c_id_expression): Call it.
3305         (pp_c_statement): Call it.
3306         (print_c_tree): Create new pp object.
3307         * c-pretty-print.h (pp_c_tree_decl_identifier,
3308         print_c_tree): Declare.
3309         * c-semantics.c: Include langhooks.h
3310         (lang_expand_stmt, lang_expand_decl_stmt,
3311         find_reachable_label_1, find_reachable_label,
3312         expand_unreachable_if_stmt, expand_unreachable_stmt,
3313         genrtl_do_stmt_1): Remove.
3314         (begin_stmt_tree): Don't check for changed filename.
3315         Call annotate_with_locus.
3316         (finish_stmt_tree): Don't set line for end of function.
3317         (build_stmt): Don't check type nodes for
3318         side effects.
3319         (build_stmt): Set TREE_SIDE_EFFECTS.
3320         Set EXPR_LOCUS instead of STMT_LINENO.
3321         (lang_expand_stmt, lang_expand_decl_stmt,
3322         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3323         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3324         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3325         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3326         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3327         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3328         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3329         find_reachable_label_1, expand_unreachable_if_stmt,
3330         expand_unreachable_stmt): Remove.
3331         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3332         * c-simplify.c: New file.
3333         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3334         (struct lang_type): Add fields enum_min and enum_max.
3335         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3336         (c_expand_decl, c_missing_noreturn_ok_p,
3337         c_types_compatible_p): Declare.
3338         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3339         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3340         (default_function_array_conversion): Rely on build to
3341         set TREE_CONSTANT.
3342         (parser_build_binary_op, pointer_diff): Likewise.
3343         (build_unary_op, build_binary_op): Likewise.
3344         (build_array_ref):
3345         (build_external_ref): Set TREE_INVARIANT.
3346         (build_c_cast, pop_init_level): Likewise.
3347         (process_init_element): Use ASM_VOLATILE_P.
3348         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3349         (c_finish_case): Call c_do_switch_warnings.
3350         * c.opt (fdump-): Remove.
3351         * calls.c (try_to_integrate): Remove.
3352         (prepare_call_address): Replace fndecl arg with a
3353         precomputed static chain value.
3354         (emit_call_1): New argument for full call expr.
3355         (flags_from_decl_or_type): Call special_function_p.
3356         (initialize_argument_information): Add argument
3357         may_tailcall.
3358         (purge_reg_equiv_notes): New.
3359         (expand_call): Do not try to expand calls inline.
3360         (fixup_tail_calls): New.
3361         * cfg.c: Include timevar.h and ggc.h.
3362         (bb_pool, edge_pool): Remove.
3363         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3364         (entry_exit_blocks): Remove.
3365         (rbi_pool): Declare.
3366         (init_flow): Do not create pools.
3367         Allocate entry/exit block.
3368         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3369         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3370         (unlink_block): Clear b->prev_bb and b->next_bb.
3371         (compact_blocks): Clear all slots of BASIC_BLOCK array.
3372         (dump_flow_info): Work on trees too.
3373         (dump_cfg_bb_info): New.
3374         (brief_dump_cfg): New.
3375         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3376         (find_edge): New.
3377         * cfgbuild.c (rtl_make_eh_edge): Rename from
3378         make_eh_edge.  Update all users.
3379         (find_basic_blocks): Don't call VARRAY_FREE on
3380         basic_block_info.
3381         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3382         and newpos2.
3383         (delete_unreachable_blocks): Return changed status.
3384         (merge_seq_blocks): New.
3385         * cfghooks.c: Include tree-flow.h
3386         (tree_register_cfg_hooks, ir_type): New.
3387         (redirect_edge_and_branch): Change return type to edge.
3388         (predict_edge, predicted_by_p, can_duplicate_block_p,
3389         duplicate_block, block_ends_with_call_p,
3390         block_ends_with_condjump_p, flow_call_edges_add): New.
3391         * cfghooks.h (redirect_edge_and_branch): Change return
3392         type to edge.
3393         (predict_edge, predicted_by_p, can_duplicate_block_p,
3394         duplicate_block, block_ends_with_call_p,
3395         block_ends_with_condjump_p, flow_call_edges_add): Declare.
3396         (redirect_edge_and_branch): Change return type to edge.
3397         (struct cfg_hooks): Add fields block_ends_with_call_p,
3398         block_ends_with_condjump_p, flow_call_edges_add,
3399         predict_edge, predicted_by_p, can_duplicate_block_p and
3400         duplicate_block.
3401         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3402         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3403         (fixup_reorder_chain): Use initialize_bb_rbi.
3404         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3405         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3406         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3407         (insn_locators_initialize): Use new info about blocks.
3408         * cfglayout.h (typedef struct reorder_block_def): Moved to
3409         basic_block.h.
3410         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3411         removed.
3412         * cfgloop.c: Include tree.h and tree-flow.h.
3413         * cfgloop.h (create_loop_notes): Declare.
3414         * cfgloopmanip.c (create_loop_notes): New.
3415         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3416         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3417         and duplicate_block fields.
3418         (create_basic_block_structure): Don't look at
3419         RTX_INTEGRATED_P.
3420         (rtl_block_ends_with_call_p): New.
3421         (rtl_block_ends_with_condjump_p): New.
3422         (need_fake_edge_p): Moved from cfganal.c.
3423         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3424         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3425         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3426         (cfg_layout_rtl_cfg_hooks): Ditto.
3427         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3428         functions to be reachable.
3429         * cgraphunit.c (decide_is_function_needed):
3430         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3431         inline functions don't need to be output.
3432         (cgraph_assemble_pending_functions): Don't do anything
3433         special for nested functions.
3434         (cgraph_mark_functions_to_output): Likewise.
3435         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3436         (cgraph_analyze_function): Use estimate_num_insns.
3437         (cgraph_mark_functions_to_output): Likewise.
3438         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3439         (cgraph_expand_function): Allow functions to not be
3440         emitted.
3441         (cgraph_remove_unreachable_nodes):
3442         (cgraph_recursive_inlining_p): Simplify.
3443         (lookup_recursive_calls,
3444         cgraph_decide_recursive_inlining): New.
3445         (cgraph_decide_inlining_*): Update calls of
3446         cgraph_mark_inline.
3447         * combine.c (get_pos_from_mask): Always set *plen.
3448         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3449         ftree-based-profiling, ftree-ccp, ftree-ch,
3450         ftree-combine-temps, ftree-copyrename, ftree-dce,
3451         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3452         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3453         ftree-lrs): Add.
3454         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3455         Undefine.
3456         * configure.ac: Add --enable-tree-browser option.
3457         Add --with-libbanshee option.
3458         Add GMPLIBS and GMPINC.
3459         * configure: Regenerate.
3460         * coverage.c (tree_ctr_tables): New.
3461         (coverage_counter_alloc): Use it.
3462         (build_ctr_info_value): Ditto.
3463         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
3464         (tree_coverage_counter_ref): New.
3465         * coverage.h (coverage_counter_ref): Remove declaration.
3466         (rtl_coverage_counter_ref): Declare.
3467         (tree_coverage_counter_ref): Declare.
3468         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3469         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3470         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3471         (struct cse_basic_block_data): Rename enum values to not
3472         conflict with profile.h; update all uses.
3473         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3474         in comments.
3475         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3476         * diagnostic.h (debug_output_buffer, dump_generic_node,
3477         print_generic_stmt, print_generic_stmt_indented,
3478         print_generic_expr, print_generic_decl,
3479         debug_generic_expr, debug_generic_stmt, debug_c_tree):
3480         Declare.
3481         * dominance.c: Cache immediate dominators.
3482         * domwalk.c: New file.
3483         * domwalk.h: New file.
3484         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3485         (gen_subprogram_die): Generate a DIE for a named
3486         return value.
3487         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3488         (add_location_or_const_value_attribute): Likewise.
3489         (add_bound_info): Likewise.
3490         (gen_decl_die): Likewise.
3491         * emit-rtl.c (maybe_set_first_label_num): New.
3492         (copy_most_rtx): Don't copy the integrated flag.
3493         Copy the new return_val flag.
3494         * et-forest.c (MAX_NODES): Define.
3495         (record_path_before_1): Abort if len is greater than
3496         MAX_NODES.
3497         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3498         gen_eh_region_catch, gen_eh_region_allowed,
3499         gen_eh_region_must_not_throw, get_eh_region_number,
3500         get_eh_region_may_contain_throw, get_eh_region_tree_label,
3501         set_eh_region_tree_label, expand_resx_expr): New.
3502         (expand_eh_region_start, expand_start_catch): Use them.
3503         (expand_end_catch): Tidy.
3504         (note_eh_region_may_contain_throw): Take region argument.
3505         (note_current_region_may_contain_throw): New.
3506         (get_exception_filter): Export.
3507         (collect_eh_region_array): Export.
3508         (remove_unreachable_regions): Check ERT_TRY based on reachability
3509         of catches, not reachability of continue_label.  Never remove
3510         ERT_MUST_NOT_THROW regions.
3511         (collect_rtl_labels_from_trees): New.
3512         (convert_from_eh_region_ranges): Use it.
3513         (connect_post_landing_pads): Handle dying cleanups.
3514         (struct reachable_info): Add callback data.
3515         (add_reachable_handler): Invoke the callback.
3516         (foreach_reachable_handler): New.
3517         (reachable_handlers): Use it.
3518         (arh_to_landing_pad, arh_to_label): New.
3519         (can_throw_internal_1): Split out from can_throw_internal.
3520         (can_throw_external_1): Similarly.
3521         * except.h: Update.
3522         * explow.c (emit_stack_save): Remove savearea mode check.
3523         (update_nonlocal_goto_save_area): New.
3524         (allocate_dynamic_stack_space): Use it.
3525         (probe_stack_range): Never emit loop notes.
3526         * expmed.c (extract_fixed_bit_field): Always propagate the
3527         target for the shift if it is a REG.
3528         * expr.c: Include tree-iterator.h
3529         (is_zeros_p): Remove.
3530         (categorize_ctor_elements_1, categorize_ctor_elements): New.
3531         (count_type_elements): New.
3532         (mostly_zeros_p): Use them.
3533         (expr_wfl_stack): Remove.
3534         (convert_move): Do nothing if to and from are the same.
3535         (emit_block_move_via_loop): Don't emit LOOP notes.
3536         (emit_move_insn): Don't handle CONSTANT_P_RTX.
3537         (emit_move_insn_1): Don't generate inline warnings.
3538         (expand_vars, expand_var): Split from ...
3539         (expand_expr_1): ... here.
3540         (expand_expr_real, expand_expr_real_1):  Use new macros
3541         EXPR_LOCATION and EXPR_HAS_LOCATION.
3542         * expr.h (simplify_builtin_fputs,
3543         simplify_builtin_strcpy, simplify_builtin_strncpy,
3544         expand_var, fixup_tail_calls,
3545         update_nonlocal_goto_save_area): Declare.
3546         (lookup_static_chain, expand_inline_function,
3547         mark_seen_cases): Remove.
3548         (prepare_call_address): Change type of 2nd argument to
3549         rtx.
3550         * final.c (profile_function): Update static chain test.
3551         (final): Don't look at RTX_INTEGRATED_P.
3552         * flags.h (flag_mudflap, flag_mudflap_threads,
3553         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
3554         flag_tree_dce, flag_tree_combine_temps,
3555         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
3556         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
3557         flag_tree_points_to): Declare.
3558         (enum pta_type): Declare.
3559         * flow.c (lang_missing_noreturn_ok_p): Remove.
3560         (check_function_return_warnings): Remove.
3561         (update_life_info): Update comments.
3562         (free_basic_block_vars): Don't call VARRAY_FREE for
3563         basic_block_info.
3564         (regno_uninitialized): Remove.
3565         * fold-const.c (int_const_binop): Make extern.
3566         (non_lvalue): Rely on build to set TREE_CONSTANT.
3567         (operand_equal_p): Replace only_const argument with
3568         flags.  Allow pure functions if OEP_PURE_SAME.
3569         (fold): Use OEP_ONLY_CONST.
3570         (invert_truthvalue) <NOP_EXPR> Break if argument is of
3571         boolean type.
3572         (fold_relational_hi_lo,
3573         nondestructive_fold_binary_to_constant,
3574         nondestructive_fold_unary_to_constant,
3575         fold_read_from_constant_string): New.
3576         * function.c (struct function): Remove calls_constant_p.
3577         (current_function_calls_constant_p): Remove.
3578         (inline_function_decl): Remove.
3579         (put_var_into_stack): Don't use it.
3580         (fix_lexical_addr): Likewise.
3581         (inline_function_decl): Remove extern declaration.
3582         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
3583         (trampolines_created): Move to varasm.c.
3584         (free_after_compilation): Update for removed fields.
3585         (allocate_struct_function): Likewise.
3586         (delete_handlers, lookup_static_chain): Remove.
3587         (fix_lexical_addr): Don't consider non-local variable refs.
3588         (trampoline_address): Remove.
3589         (round_trampoline_addr): Move to builtins.c.
3590         (adjust_trampoline_addr): Remove.
3591         (expand_function_start): Update for changes to static chain
3592         and nonlocal goto handling.
3593         (initial_trampoline): Move to varasm.c.
3594         (expand_function_end): Don't build trampolines or kill
3595         unreferenced nonlocal goto labels.
3596         (free_after_compilation): Don't set it.
3597         (expand_function_end): Likewise.
3598         (setjmp_vars_warning): Rename from
3599         uninitialized_vars_warning, remove uninitialized vars warning.
3600         (uninitialized_vars_warning): Remove old comment
3601         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
3602         and do not call the langhook.
3603         (expand_function_start, expand_function_end): Don't do
3604         function instrumentation here.
3605         (clear_block_marks): Rename from reorder_blocks_0, export.
3606         (blocks_nreverse): Export.
3607         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
3608         of rtl.
3609         (reset_block_changes, record_block_change, finalize_block_changes,
3610         check_block_change, free_block_changes): New functions.
3611         (assign_parms): Setting of current_function_stdarg
3612         moved ...
3613         (allocate_struct_function): ... here.
3614         * function.h (struct function): Remove x_nonlocal_labels,
3615         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
3616         x_context_display, x_trampoline_list, needs_context.
3617         Add static_chain_decl, nonlocal_goto_save_area.
3618         (struct function): Remove x_clobber_return_insn.
3619         Add tail_call_emit field, last_label_uid,
3620         unexpanded_var_list, dont_emit_block_notes,
3621         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
3622         (clear_block_marks): Declare.
3623         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
3624         (mfwrap_spec, mflib_spec): Declare.
3625         (cpp_unique_options, cc1_options): Ditto.
3626         (default_compilers): Add .F and .f90.
3627         (static_specs): Add mfwrap and mflib.
3628         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
3629         CONSTANT_RTX_P.
3630         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
3631         Update to match insns field in struct edge_def.
3632         * gdbinit.in (pgs, pge): Define.
3633         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
3634         instead of the integrated flag.
3635         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
3636         * gengtype-yacc.y (bitfieldlen): Add empty action.
3637         (struct_fields): Accept unnamed bitfields.
3638         (bitfieldlen): Split from ...
3639         (bitfieldopt): ... here.
3640         * gengtype.c (ifiles): Add tree-alias-type.h and
3641         tree-flow.h.
3642         * genrecog.c (validate_pattern): Do not handle
3643         CONSTANT_P_RTX.
3644         * gimple-low.c: New file.
3645         * gimplify.c: New file.
3646         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
3647         (restore_line_notes): Do not set RTX_INTEGRATED_P.
3648         * ifcvt.c (dead_or_predicable): Initialize local variable
3649         'earliest'.
3650         * input.h (expr_wfl_stack): Remove.
3651         * integrate.c (INTEGRATE_THRESHOLD): Remove.
3652         (setup_initial_hard_reg_value_integration): Likewise.
3653         (initialize_for_inline): Likewise.
3654         (note_modified_parmregs): Likewise.
3655         (integrate_parm_decls): Likewise.
3656         (process_reg_param): Likewise.
3657         (save_parm_insns): Likewise.
3658         (copy_insn_list): Likewise.
3659         (copy_insn_notes): Likewise.
3660         (compare_blocks): Likewise.
3661         (find_block): Likewise.
3662         (inlining): Likewise.
3663         (function_cannot_inline_p): Likewise.
3664         (parmdecl_map): Likewise.
3665         (in_nonparam_insns): Likewise.
3666         (save_for_inline): Likewise.
3667         (FIXED_BASE_PLUS): Likewise.
3668         (expand_inline_function): Likewise.
3669         (copy_rtx_and_substitute): Don't look at map->integrating,
3670         map->inline_target, and inlining, since we are never copying
3671         for integrating.
3672         Don't abort on RTX_INTEGRATED_P.
3673         (old_fun): Remove.
3674         (output_inline_function): Remove.
3675         * integrate.h (struct inline_map): Remove fields integrating,
3676         block_map, leaf_reg_map, inline_target, and local_return_label.
3677         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
3678         copy_loop_headers, never_reached_warning): Removed.
3679         (any_uncondjump_p): Reject nonlocal goto.
3680         * langhooks-def.h (lhd_types_compatible_p,
3681         lhd_expand_decl, lhd_gimplify_expr): Declare.
3682         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3683         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3684         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3685         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3686         LANG_HOOKS_GIMPLIFY_EXPR,
3687         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
3688         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3689         LANG_HOOKS_GIMPLIFY_EXPR,
3690         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
3691         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
3692         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
3693         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3694         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
3695         LANG_HOOKS_DECL_UNINIT,
3696         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
3697         * langhooks.c: Include tree-simple.h.
3698         (lhd_expand_decl): New.
3699         (lhd_types_compatible_p): New.
3700         (lhd_decl_uninit): Remove.
3701         (lhd_gimplify_expr): New.
3702         * langhooks.h (struct lang_hooks_for_rtl_expansion):
3703         Remove.
3704         (struct lang_hooks_for_functions): Add field
3705         missing_noreturn_ok_p.
3706         (struct lang_hooks): Add field expand_decl,
3707         types_compatible_p, gimplify_expr and
3708         gimple_before_inlining.
3709         Remove fields decl_uninit and rtl_expand
3710         * opts.c (decode_options): Set flag_tree_ccp,
3711         flag_tree_dce, flag_tree_dom, flag_tree_dse,
3712         flag_tree_pre, flag_tree_ter,
3713         flag_tree_live_range_split, flag_tree_sra,
3714         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
3715         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
3716         OPT_fmudflapth, OPT_fmudflapir,
3717         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
3718         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
3719         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
3720         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
3721         OPT_ftree_points_to_ and OPT_ftree_pre.
3722         * output.h (regno_uninitialized, find_basic_blocks,
3723         cleanup_cfg, delete_unreachable_blocks,
3724         check_function_return_warnings): Remove.
3725         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
3726         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
3727         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
3728         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
3729         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
3730         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
3731         Define.
3732         * passes.c (rest_of_decl_compilation):
3733         (rest_of_handle_sibling_calls): Remove.
3734         (rest_of_handle_inlining): Remove.
3735         (rest_of_handle_gcse): Do not run
3736         purge_builtin_constant_p.
3737         (rest_of_compilation): Update.
3738         Do not call copy_loop_headers.
3739         Do rtl-based profiling only when
3740         !flag_tree_based_profiling.  Register rtl-based profiling
3741         hooks.
3742         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
3743         (predicted_by_p): Rename to ...
3744         (rtl_predicted_by_p): .. this one; make global
3745         (tree_predicted_by_p): New.
3746         (dump_prediction): Add FILE argument.
3747         (predict_edge): Rename to ...
3748         (rtl_predict_edge): .. this one.
3749         (tree_predict_edge): New.
3750         (combine_predictions_for_insn): Update calls of predict_edge.
3751         (predict_loops): Break out from ...
3752         (estimate_probability): ... here; update comments; move updating
3753         of unknown probabilities from ...
3754         (estimate_bb_frequencies): ... here.
3755         (combine_predictions_for_bb): New.
3756         (tree_predict_by_opcode): New.
3757         (tree_estimate_probability): New.
3758         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
3759         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
3760         * predict.h: Add include guard.
3761         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
3762         * pretty-print.c (pp_write_text_to_stream): Make extern.
3763         * pretty-print.h (pp_write_text_to_stream): Declare.
3764         * print-rtl.c (print_rtx): Don't print the integrated flag.
3765         Print the return_val flag.
3766         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
3767         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
3768         Remove support for EXPR_WITH_FILE_LOCATION nodes.
3769         (print_node): Print TREE_INVARIANT and TREE_VISITED.
3770         * profile.c: Include cfghooks.h, tree-flow.h.
3771         (profile_hooks): New.
3772         (profile_dump_file): New.
3773         (instrument_edges): Use hooks instead of RTL-specific code.
3774         (instrument_values): Ditto.
3775         (get_exec_counts): Ditto.
3776         (compute_branch_probabilities): Ditto.
3777         (compute_value_histograms): Ditto.
3778         (branch_prob): Ditto.
3779         (find_spanning_tree): Ditto.
3780         (end_branch_prob): Ditto.
3781         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
3782         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
3783         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
3784         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
3785         (tree_register_profile_hooks): New.
3786         (rtl_register_profile_hooks): New.
3787         * ra-rewrite.c (rewrite_program): Clear variable info.
3788         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
3789         * regs.h: Add include guards.
3790         * reload.c (decompose): Clear val using memset.
3791         * rtl.def (CONSTANT_P_RTX): Remove.
3792         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
3793         (copy_loop_headers): Remove.
3794         (struct rtx_def): Replace the integrated flag with the
3795         return_val flag.
3796         (maybe_set_first_label_num): Declare.
3797         (init_branch_prob): Move declaration to value-prof.h.
3798         (end_branch_prob): Ditto.
3799         (branch_prob): Ditto.
3800         (never_reached_warning): Don't declare it.
3801         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
3802         (hoist_insn_to_edge): Update to match field insns in
3803         struct edge_def.
3804         * sbitmap.c (sbitmap_realloc): New.
3805         * sbitmap.h (sbitmap_realloc): Declare.
3806         * sibcall.c: Remove file.
3807         * simplify-rtx.c (simplify_rtx): Do not handle
3808         CONSTANT_P_RTX.
3809         * stmt.c (parse_output_constraint): Don't warn for read-write
3810         memory operand.
3811         (tail_recursion_args): Use types_compatible_p langhook.
3812         (force_label_rtx): Don't look at inline_function_decl.
3813         (label_rtx): Set LABEL_PRESERVE_P appropriately.
3814         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
3815         (declare_nonlocal_label): Remove.
3816         (expand_goto): Don't handle nonlocal gotos.
3817         (expand_nl_handler_label): Remove.
3818         (expand_nl_goto_receivers): Remove.
3819         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
3820         update_nonlocal_goto_save_area.
3821         (expand_expr_stmt_value): Check TREE_NO_WARNING.
3822         (warn_if_unused_value): Likewise.
3823         (expand_start_loop, expand_loop_continue_here,
3824         expand_end_loop): Don't create loop notes.
3825         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
3826         mark_seen_cases, check_for_full_enumeration_handling): Remove.
3827         (expand_end_case_type): Don't do warn_switch handling.
3828         (pushcase, pushcase_range) Update add_case_node calls.
3829         (add_case_node): Add dont_expand_label argument.
3830         (same_case_target_p): Don't search rtl.
3831         (expand_start_bindings_and_block, expand_end_bindings):
3832         Don't emit block notes when dont_emit_block_notes.
3833         (using_eh_for_cleanups_p): Export.
3834         (expand_return): Allow any typed rhs.
3835         (expand_stack_alloc): New.
3836         (expand_stack_save, expand_stack_restore): New.
3837         (containing_blocks_have_cleanups_or_stack_level): New
3838         function.
3839         (asm_op_is_mem_input): New fn.
3840         (expand_asm_expr): New fn.
3841         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
3842         nodes.
3843         * stor-layout.c (layout_type): Just return if type is
3844         error_mark_node.
3845         (update_alignment_for_field): Export.
3846         (variable_size): We don't care about global_bindings_p if
3847         the frontend doesn't want a list of the expressions.
3848         * system.h: Poison INTEGRATE_THRESHOLD.
3849         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
3850         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
3851         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
3852         TV_TREE_SSA_OTHER, TV_TREE_OPS,
3853         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
3854         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
3855         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
3856         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
3857         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
3858         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
3859         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
3860         TV_CONTROL_DEPENDENCES): Define.
3861         * toplev.c: Include tree-alias-common.h
3862         (current_file_decl, flag_mudflap, flag_mudflap_threads,
3863         flag_mudflap_ignore_reads, flag_tree_based_profiling,
3864         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
3865         flag_tree_dce, flag_tree_ch, flag_tree_sra,
3866         flag_tree_combine_temps, flag_tree_ter,
3867         flag_tree_live_range_split, flag_tree_dom,
3868         flag_tree_copyrename, flag_tree_dse): Declare.
3869         (f_options): Add tree-based-profiling, tree-gvn,
3870         tree-pre, tree-ccp, tree-dce,
3871         tree-dominator-opts, tree-copyrename, tree-dse,
3872         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
3873         (wrapup_global_declarations): Don't output nested inlined functions.
3874         (general_init): Call init_tree_optimization_passes.
3875         (process_options): Sorry for -ftree-based-profiling plus
3876         -ftest-coverage or -fprofile-values.
3877         * toplev.h (init_tree_optimization_passes,
3878         flag_tree_based_profiling): Declare.
3879         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
3880         * tree-alias-ander.c: New file.
3881         * tree-alias-ander.h: New file.
3882         * tree-alias-common.c: New file.
3883         * tree-alias-common.h: New file.
3884         * tree-alias-type.c: New file.
3885         * tree-alias-type.h: New file.
3886         * tree-browser.c: New file.
3887         * tree-browser.def: New file.
3888         * tree-cfg.c: New file.
3889         * tree-complex.c: New file.
3890         * tree-dfa.c: New file.
3891         * tree-dump.c (dump_enable_all): New.
3892         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
3893         (dump_node): Remove const from field suffix and swtch.
3894         (dump_files): Add null entry, .generic, .nested, .vcg,
3895         .xml and a match-all entry.
3896         (extra_dump_files, extra_dump_files_in_use,
3897         extra_dump_files_alloced): Declare
3898         (dump_option_value_info): Add raw, details, stats,
3899         blocks, vops, lineno, uid and all.
3900         (dump_register): New.
3901         (get_dump_file_info): New.
3902         (dump_begin): Call it.
3903         Do nothing for TDI_none.
3904         (dump_begin): Include phase number in dump filename.
3905         (dump_enable_all): New.
3906         (dump_switch_p_1): Split out from dump_switch_p.
3907         (dump_switch_p): Handle extra_dump_files.
3908         Start our scan at TDI_none + 1.
3909         If -fdump-tree-all was given, call dump_enable_all.
3910         * tree-dump.h: Include splay-tree.h.
3911         (dump_function, dump_function_to_file, dump_register):
3912         Declare.
3913         * tree-eh.c: New file.
3914         * tree-flow-inline.h: New file.
3915         * tree-flow.h: New file.
3916         * tree-inline.c: Re-write to handle inlining on GIMPLE.
3917         * tree-inline.h (walk_tree,
3918         walk_tree_without_duplicates): Move to tree.h.
3919         (estimate_num_insns): Declare.
3920         * tree-into-ssa.c: New file.
3921         * tree-iterator.c: New file.
3922         * tree-iterator.h: New file.
3923         * tree-mudflap.c: New file.
3924         * tree-mudflap.h: New file.
3925         * tree-nested.c: New file.
3926         * tree-nomudflap.c: New file.
3927         * tree-nrv.c: New file.
3928         * tree-optimize.c (dump_flags, vars_to_rename,
3929         in_gimple_form, all_passes, pass_gimple,
3930         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
3931         (execute_gimple, execute_rebuild_bind,
3932         gate_all_optimizations, execute_del_cfg,
3933         register_one_dump_file, register_dump_files, dup_pass_1,
3934         init_tree_optimization_passes, execute_todo,
3935         execute_one_pass, execute_pass_list): New.
3936         (clear_decl_rtl): Remove.
3937         (tree_rest_of_compilation): Update to use tree
3938         optimizers.
3939         * tree-outof-ssa.c: New file.
3940         * tree-pass.h: New file.
3941         * tree-phinodes.c: New file.
3942         * tree-pretty-print.c: New file.
3943         * tree-profile.c: New file.
3944         * tree-simple.c: New file.
3945         * tree-simple.h: New file.
3946         * tree-sra.c: New file.
3947         * tree-ssa-alias.c: New file.
3948         * tree-ssa-ccp.c: New file.
3949         * tree-ssa-copy.c: New file.
3950         * tree-ssa-copyrename.c: New file.
3951         * tree-ssa-dce.c: New file.
3952         * tree-ssa-dom.c: New file.
3953         * tree-ssa-dse.c: New file.
3954         * tree-ssa-forwprop.c: New file.
3955         * tree-ssa-live.c: New file.
3956         * tree-ssa-live.h: New file.
3957         * tree-ssa-loop.c: New file.
3958         * tree-ssa-operands.c: New file.
3959         * tree-ssa-operands.h: New file.
3960         * tree-ssa-phiopt.c: New file.
3961         * tree-ssa-pre.c: New file.
3962         * tree-ssa.c: New file.
3963         * tree-ssanames.c: New file.
3964         * tree-tailcall.c: New file.
3965         * tree.c: Include tree-iterator.h, basic-block.h and
3966         tree-flow.h.
3967         (tree_node_kind): Add phi_nodes and ssa names.
3968         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
3969         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
3970         (make_node_stat): Handle PHI_NODE and SSA_NAME.
3971         <'c'> Set TREE_INVARIANT.
3972         (copy_node_stat): Abort if trying to copy a
3973         STATEMENT_LIST.
3974         Clear TREE_VISITED.
3975         Clear annotation field.
3976         (build_constructor): Copy TREE_INVARIANT from vals.
3977         Don't clear TREE_CONSTANT.
3978         (expr_first, expr_last, expr_length): Remove.
3979         (staticp): Pass unknown component references to the language.
3980         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
3981         (skip_simple_arithmetic): Likewise.
3982         (stabilize_reference_1): Likewise.
3983         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
3984         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
3985         STATEMENT_LIST.
3986         (lhd_unsave_expr_now): Remove.
3987         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
3988         (recompute_tree_invarant_for_addr_expr): New.
3989         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
3990         Call recompute_tree_invarant_for_addr_expr.
3991         Set TREE_INVARIANT accordingly.
3992         (build2_stat): Don't handle CALL_EXPR.
3993         (build3_stat): Don't call build2_stat for CALL_EXPRs.
3994         (build_expr_wfl): Remove.
3995         (annotate_with_file_line, annotate_with_locus): New.
3996         (simple_cst_equal): Call simple_cst_list_equal to compare
3997         CONSTRUCTOR_ELTS pointers.
3998         (iterative_hash_expr): Don't hash types associated
3999         with conversions.  Instead hash on the signedness of the
4000         toplevel object and the operand of the conversion.
4001         (dump_tree_statistics): Call ssanames_print_statistics
4002         and phinodes_print_statistics.
4003         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4004         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4005         needs_to_live_in_memory): New.
4006         (initializer_zerop): Handle VECTOR_CST.  Don't check
4007         AGGREGATE_TYPE_P for CONSTRUCTOR.
4008         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4009         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4010         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4011         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4012         (CALL_EXPR): Add another operand.
4013         (EXPR_WITH_FILE_LOCATION): Remove.
4014         (SWITCH_EXPR): Add another operand.
4015         * tree.h: Update various comments.
4016         (union tree_ann_d): Forward declare.
4017         (struct tree_common): Add fields nowarning_flag,
4018         invariant_flag and visited.
4019         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4020         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4021         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4022         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4023         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4024         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4025         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4026         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4027         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4028         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4029         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4030         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4031         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4032         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4033         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4034         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4035         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4036         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4037         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
4038         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
4039         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
4040         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
4041         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
4042         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
4043         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
4044         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
4045         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
4046         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
4047         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
4048         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
4049         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
4050         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
4051         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
4052         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4053         TDF_UID,): Define.
4054         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4055         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4056         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4057         EXPR_WFL_SET_LINECOL): Remove.
4058         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4059         make_phi_node, init_phinodes, fini_phinodes,
4060         release_phi_node, phinodes_print_statistics,
4061         init_ssanames, fini_ssanames, make_ssa_name,
4062         release_ssa_name, ssanames_print_statistics,
4063         annotate_with_file_line, build_empty_stmt,
4064         annotate_with_locus, expr_only, categorize_ctor_elements,
4065         count_type_elements, add_var_to_bind_expr, is_essa_node,
4066         expand_stack_alloc, expand_stack_save,
4067         expand_stack_restore, add_case_node, operand_equal_p,
4068         nondestructive_fold_unary_to_constant,
4069         nondestructive_fold_binary_to_constant,
4070         fold_read_from_constant_string, int_const_binop,
4071         strip_float_extensions, simplify_builtin, c_strlen,
4072         recompute_tree_invarant_for_addr_expr,
4073         needs_to_live_in_memory, make_vector,
4074         setjmp_vars_warning, update_alignment_for_field,
4075         expand_asm_expr, asm_op_is_mem_input,
4076         containing_blocks_have_cleanups_or_stack_level,
4077         create_artificial_label, gimplify_function_tree,
4078         get_name, unshare_expr, walk_tree,
4079         walk_tree_without_duplicates, in_gimple_form): Declare.
4080         (struct tree_exp): Add fields locus and block.
4081         (struct tree_ssa_name, struct edge_def, struct
4082         tree_phi_node, struct tree_eref_common, struct
4083         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4084         union alias_var_def, struct tree_statement_list_node,
4085         struct tree_statement_list, enum operand_equal_flag): Declare.
4086         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4087         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4088         TS_STATEMENT_LIST.
4089         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4090         euse and stmt_list.
4091         (function_cannot_inline_p, uninitialized_vars_warning,
4092         save_for_inline, output_inline_function, all_cases_count,
4093         check_for_full_enumeration_handling,
4094         declare_nonlocal_label): Remove.
4095         (enum tree_dump_index): Add TDI_none, TDI_tu,
4096         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4097         * unroll.c (unroll_loop): Don't clear map->inline_target.
4098         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4099         function.
4100         * value-prof.c (value_prof_hooks): New.
4101         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4102         Move rtl-specific bits in from branch_prob.
4103         (value_profile_transformations): Rename to
4104         rtl_value_profile_transformations.
4105         (struct value_prof_hooks): New.
4106         (rtl_value_prof_hooks): New.
4107         (rtl_register_value_prof_hooks): New.
4108         (tree_find_values_to_profile): New stub.
4109         (tree_value_profile_transformations): New stub.
4110         (tree_value_prof_hooks): New stub.
4111         (tree_register_value_prof_hooks): New stub.
4112         (find_values_to_profile): New.
4113         (value_profile_transformations): New.
4114         * value-prof.h: Add multiple inclusion guard.
4115         (struct histogram_value): Change rtx fields to void *.
4116         (rtl_register_value_prof_hooks): New declaration.
4117         (tree_register_value_prof_hooks): New declaration.
4118         (find_values_to_profile): New declaration.
4119         (free_profiled_values): New declaration.
4120         (value_profile_transformations): New declaration.
4121         (struct profile_hooks): New declaration.
4122         (init_branch_prob): Declaration moved from rtl.h.
4123         (branch_prob): Declaration moved from rtl.h.
4124         (end_branch_prob): Declaration mooved from rtl.h.
4125         (tree_register_profile_hooks): New declaration.
4126         (rtl_register_profile_hooks): New declaration.
4127         (tree_profile_hooks): New declaration.
4128         (rtl_profile_hooks): New declaration.
4129         * varasm.c: Include tree-mudflap.h.
4130         (TRAMPOLINE_ALIGNMENT): Remove.
4131         (make_decl_rtl): Call mudflap_enqueue_decl.
4132         (assemble_static_space):
4133         (assemble_trampoline_template): Set and return
4134         TRAMPOLINE_ALIGNMENT.
4135         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4136         Add entry for 'tree *'.
4137         Add entry for struct edge_def *.
4138         (varray_copy): New.
4139         * varray.h (enum varray_data_enum): Add
4140         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4141         VARRAY_DATA_TREE_PTR.
4142         (union varray_data_tag): Corresponding changes.
4143         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4144         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4145         VARRAY_EDGE, VARRAY_TREE_PTR,
4146         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4147         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4148         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4149
4150         * config/*/*: Various updates for changed macros, tree
4151         codes, etc.  Check ChangeLog.tree-ssa.
4152
4153         * doc/cfg.texi: New file.
4154         * doc/tree-ssa.texi: New file.
4155         * doc/c-tree.texi: Document new codes.
4156         * doc/gccint.texi: Include new files.
4157         * doc/install.texi: Document new features.
4158         * doc/invoke.texi: Document new switches.
4159         * doc/passes.texi: Document new passes.
4160         * doc/rtl.texi: Update changed RTL codes.
4161         * doc/sourcebuild.texi: Update build instructions.
4162         * doc/standards.texi: Document Fortran changes.
4163         * doc/tm.texi: Update.
4164
4165 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4166
4167         Replace several arrays with a struct of arrays.
4168         * combine.c (struct reg_stat): New.
4169         (init_reg_last_arrays): Renamed to...
4170         (init_reg_last): ...this.  Callers adjusted.
4171         (reg_stat): New.
4172         (combine_instructions): Allocate it and use it.
4173         (reg_last_death, reg_last_set, reg_last_set_value,
4174         reg_last_set_label, reg_last_set_table_tick,
4175         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4176         reg_last_set_mode, reg_last_set_nonzero_bits,
4177         reg_last_set_sign_bit_copies): Replace throughout
4178         with items of reg_stat.
4179
4180 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4181
4182         PR optimization/15100
4183         * combine.c (distribute_notes): Don't create a dangling
4184         REG_LIBCALL/REG_RETVAL note.
4185
4186 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4187
4188         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4189
4190         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4191         negv2si2.
4192
4193 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4194
4195         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4196
4197 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4198
4199         * doc/gty.texi (GTY Options): Clarify example.
4200
4201 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4202
4203         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4204         Add const qualifier to altivec vector type if one is needed.
4205
4206 2004-05-11  Paul Brook  <paul@codesourcery.com>
4207
4208         * flags.h (flag_short_enums): Update comment.
4209         * opts.c (decode_options): Set flag_short_enums to 2.
4210         * toplev.c (flag_short_enums): Update comment.
4211         (process_options): Call default_short_enums target hook.
4212
4213 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
4214
4215         PR target/14063
4216         * config/rs6000/altivec.md (altivec_dssall):
4217         Change to unspec_volatile.
4218         (altivec_dss): Likewise.
4219
4220 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
4221
4222         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4223         vnor.
4224         ("one_cmplv8hi2"): Same.
4225         ("one_cmplv4si2"): Same.
4226
4227 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4228
4229         PR target/15130
4230         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4231         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4232         into account.  Compute the correct number of general registers
4233         for the return value.  Generate a special push/pop sequence when
4234         failing to get a temporary register for non SHmedia epilogue.
4235         (sh_expand_epilogue): Add an argument to show whether it's for
4236         sibcall or not.  Set the 3rd argument of output_stack_adjust to
4237         -1 if needed.
4238         (sh_need_epilogue): Call sh_expand_epilogue with 0.
4239         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4240         with 1.
4241         (epilogue): Call sh_expand_epilogue with 0.
4242
4243 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
4244
4245         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4246         goto a cleanup label.  After the cleanup, free the allocated memory.
4247
4248 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
4249
4250         * config/rs6000/altivec.h (vec_sld): Add overloads for
4251         argument/return types of 'vector bool int', 'vector bool short'
4252         and 'vector bool char'.
4253
4254 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
4255
4256         * c-decl.c (store_parm_decls_newstyle): Correct test for a
4257         nested function.
4258
4259 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
4260
4261         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4262         treating missing ones as "".
4263         * config/mips/mips.md: Remove constraints from match_operands and
4264         match_scratches if they appear in define_expands (except reload*),
4265         define_peephole2s, define_splits or attribute specifications.
4266         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4267         constraint strings.
4268
4269 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4270
4271         * config/rs6000/rs6000.c (function_arg_boundary): Always align
4272         AltiVec vectors.
4273         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4274         vectors by refererence.  Align the same for TARGET_64BIT to a 16
4275         byte boundary.  Remove useless code.  Add function comment.
4276         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
4277         call to where it belongs.
4278         (function_arg_partial_nregs): Return true for all TARGET_32BIT
4279         -mabi=no-altivec AltiVec vectors.  Fix debug output.
4280         (rs6000_va_arg): Adjust for AltiVec change.
4281
4282 2004-05-10  Paul Brook  <paul@codesourcery.com>
4283
4284         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4285         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4286         (TARGET_DOUBLEWORD_ALIGN): Use it.
4287         (WCHAR_TYPE): Define.
4288         (WCHAR_SIZE_TYPE): Define.
4289         (SIZE_TYPE): Define.
4290
4291 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4292
4293         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4294         when size is 8 bytes.
4295         (function_arg_advance): Account for stack space used by AltiVec
4296         args when -mabi=altivec.  Simplify alignment calculations.  For
4297         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4298         (function_arg): Similarly.
4299         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4300         not AltiVec ABI.
4301         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
4302         Correct alignment, and align before testing reg count.  Remove
4303         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
4304         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4305         TARGET_FPRS here..
4306         (rs6000_function_value): .. not here before call.
4307
4308 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4309
4310         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4311
4312 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
4313
4314         PR 15007
4315         * c-decl.c (current_file_decl): Rename to all_translation_units,
4316         adjust comment.
4317         (pop_scope): If popping file_scope, construct a
4318         TRANSLATION_UNIT_DECL and make it the context of all the
4319         symbols in the scope.
4320         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4321         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
4322         anything to current_file_decl.
4323         (pushdecl_top_level): Likewise.
4324         (store_parm_decls_newstyle): Adjust check for nested function.
4325         (c_write_global_declarations): Update for renamed variable.
4326
4327 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4328
4329         * config/rs6000/rs6000-protos.h
4330         (rs6000_conditional_register_usage): Protoize.
4331
4332         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4333
4334         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4335         function.
4336
4337 2004-05-08  Roger Sayle  <roger@eyesopen.com>
4338
4339         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4340         where op is a comparison operator and C1 and C2 are integer constants
4341         into a range check.
4342         (fold): Call fold_div_compare.
4343
4344 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4345
4346         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4347         problems with earlier versions of the GNU compiler.
4348
4349 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
4350
4351         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4352         Declare.
4353
4354         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4355         (rs6000_hard_regno_mode_ok): New.
4356         (rs6000_init_hard_regno_mode_ok): New.
4357         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4358
4359         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4360         result.
4361
4362 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
4363
4364         * config/rs6000/altivec.h (vector, pixel, bool): Do not
4365         define as macros #ifdef __APPLE_ALTIVEC__.
4366
4367 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
4368
4369         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4370         Generate appropriate parallels for vector arguments
4371         passed to vararg functions. (function_arg): make the call
4372         to rs6000_mixed_function_arg for vector args as needed.
4373
4374 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4375
4376         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4377         EABI_FLOAT_VARARGS_P.
4378
4379 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4380
4381         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4382         * config/mips/mips.c (override_options): Disable branch likely
4383         instructions if TUNE_MIPS5500.
4384
4385 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4386
4387         * config/mips/mips.c (override_options): Allow the hi and lo registers
4388         to store any integral mode, not just MODE_INTs.
4389
4390 2004-05-07  Paul Brook  <paul@codesourcery.com>
4391
4392         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4393         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4394         (TARGET_DOUBLEWORD_ALIGN): Use it.
4395         (WCHAR_TYPE): Define.
4396         (WCHAR_SIZE_TYPE): Define.
4397         (SIZE_TYPE): Define.
4398
4399 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4400
4401         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4402         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4403
4404 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
4405
4406         * loop-doloop.c (doloop_valid_p): Make sure that body
4407         gets freed.
4408
4409 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
4410
4411         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4412         declaration.
4413         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4414         (sparc_skip_caller_unimp): New global variable.
4415         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4416         Use it instead of SKIP_CALLERS_UNIMP_P.
4417         * config/sparc/sparc.md (call expander): Add sanity check.
4418         (call_address_struct_value_sp32): Re-sync with expander.
4419         (call_symbolic_struct_value_sp32): Likewise.
4420         (return peepholes): Use 'sparc_skip_caller_unimp' instead
4421         of custom predicate.
4422
4423 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4424
4425         PR c++/14962
4426         * c-pragma.c (handle_pragma_redefine_extname): Only change
4427         the assembler name of FUNCTION_DECLs and VAR_DECLs.
4428
4429 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4430
4431         * optabs.h (enum optab_index): Add new OTI_log1p.
4432         (log1p_optab): Define corresponding macro.
4433         * optabs.c (init_optabs): Initialize log1p_optab.
4434         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4435         patterns.
4436         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4437         using log1p_optab.
4438         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4439         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4440
4441         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4442
4443         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4444         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4445         Prototype here.
4446         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4447         x87's fyl2xp1 instruction.
4448         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4449         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4450         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4451         log1p  and log1pl built-ins as inline x87 intrinsics.
4452
4453 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
4454
4455         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4456         * config/arm/freebsd.h: Likewise.
4457         * config/ia64/freebsd.h: Likewise.
4458         * config/sparc/freebsd.h: Likewise.
4459
4460 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
4461
4462         PR optimization/15296
4463         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4464         getting last consecutive label at a branch.
4465         (relax_delay_slots): Similar, near top of loop.
4466
4467 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4468
4469         PR target/15202
4470         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4471         register to general register.
4472
4473 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
4474
4475         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4476         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4477         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4478         (STACK_BOUNDARY): Delete.
4479
4480 2004-05-06  Stuart Hastings  <stuart@apple.com>
4481
4482         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4483         mistakenly clobbered by 1.423.
4484
4485 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4486
4487         * doc/invoke.texi: Document -mvr4130-align.
4488         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4489         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4490         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4491         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4492         * config/mips/mips.md: Include sched-int.h.
4493         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4494         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4495         (override_options): Enable -mvr4130-align at -O3 and above.
4496         (mips_sim_insn): New variable.
4497         (mips_sim): New structure.
4498         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4499         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4500         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4501         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4502         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4503         (mips_reorg): Call vr4130_align_insns.
4504         (vr4130_last_insn): New variable.
4505         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4506         (vr4130_swap_insns_p, vr4130_reorder): New functions.
4507         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4508         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4509         (mips_use_dfa_pipeline_interface): Return true for the same.
4510         * config/mips/4130.md: New file.
4511         * config/mips/mips.md: Include it.  Add a peephole2 to convert
4512         "mult;mflo" into "mtlo;macc".
4513         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4514         target of maccs.
4515         (*msac_using_macc): New pattern.
4516
4517 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4518
4519         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
4520         (ir_vr55_hilo): Split into...
4521         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
4522         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
4523         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
4524         Add various multiplication bypasses.
4525         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
4526         multiplication.
4527
4528 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
4529
4530         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
4531         attribute to "XF".
4532
4533 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
4534
4535         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
4536         (fmod_optab, drem_optab): Define corresponding macros.
4537         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
4538         * genopinit.c (optabs): Implement fmod_optab and drem_optab
4539         using fmod?f3 and drem?f3 patterns.
4540         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
4541         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
4542         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
4543         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
4544         flag_unsafe_math_optimizations is set.
4545
4546         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
4547         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
4548
4549         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
4550         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
4551         Prototype here.
4552         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
4553         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
4554         fprem and fprem1 instructions.
4555         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
4556         Rename insn definition to x86_fnstsw_1.
4557         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
4558         x87 instructions.
4559         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
4560         and fmodl built-ins as inline x87 intrinsics.
4561         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
4562         and dreml built-ins as inline x87 intrinsics.
4563
4564 2004-05-05  Roger Sayle  <roger@eyesopen.com>
4565
4566         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
4567
4568 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
4569
4570         PR driver/9822
4571         * doc/invoke.texi (Spec Files): Remove documentation of %c.
4572
4573 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
4574
4575         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
4576         representation.
4577
4578 2004-05-06  Paul Brook  <paul@codesourcery.com>
4579
4580         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
4581         (arm_coproc_mem_operand): ... To this.
4582         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
4583         (arm_legitimate_index_p): Ditto.
4584         (vfp_mem_operand): Rename ...
4585         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
4586         (vfp_secondary_reload_class): Use it.
4587         (output_move_double): Use doubleword load/store instructions.
4588         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
4589         * config/arm/arm.h (TARGET_LDRD): Define.
4590         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
4591         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
4592         New splitter for invalid doubleword loads.
4593         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
4594         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
4595         * doc/md.texi: Document Uy constraint.
4596
4597 2004-05-05  Jan Hubicka  <jh@suse.cz>
4598
4599         PR opt/14980
4600         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
4601         inline clones.
4602
4603 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4604
4605         PR target/15290
4606         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
4607         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
4608
4609 2004-05-05  Mike Stump  <mrs@apple.com>
4610
4611         * config/darwin-c.c (add_framework): Copy the directory name as it
4612         can be freed later.  Also, ensure we always allocate enough room
4613         for the cached framework information.
4614         (find_subframework_header): Keep track of the directory where the
4615         subframework header was found.
4616         (framework_construct_pathname): Speed up by not trying to re-add a
4617         framework.
4618         * cppfiles.c (search_path_exhausted): Arrange for the missing
4619         header callback to be able to set the directory where the header
4620         was found.
4621         (cpp_get_dir): Add.
4622         * cpplib.h (missing_header_cb): Add a parameter.
4623         (cpp_get_dir): Add.
4624
4625 2004-05-03  Mike Stump  <mrs@apple.com>
4626
4627         * doc/invoke.texi (Directory Options): Document -iquote.
4628         * doc/cpp.texi: Likewise.
4629         * doc/cppopts.texi: Likewise.
4630         * c-opts.c (c_common_missing_argument): Add -iquote processing.
4631         (c_common_handle_option): Likewise.
4632         * c.opt (iquote): Add.
4633         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
4634         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
4635
4636         * c-opts.c (case OPT_I): Deprecate -I- support.
4637         * doc/invoke.texi: Likewise.
4638         * doc/cpp.texi: Likewise.
4639         * doc/cppopts.texi: Likewise.
4640
4641 2004-05-05  Steven Bosscher  <stevenb@suse.de>
4642
4643         * basic-block.h (free_basic_block_vars): Update prototype.
4644         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
4645         argument.
4646         (life_analysis): Update call.
4647         * ifcvt.c (if_convert): Likewise.
4648         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
4649         * passes.c (rest_of_handle_final): Likewise.
4650         (rest_of_compilation): Likewise.
4651         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4652
4653         * emit-rtl.c (next_real_insn): Use INSN_P.
4654         (prev_real_insn): Likewise.
4655
4656 2004-05-05  Eric Christopher  <echristo@redhat.com>
4657
4658         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
4659         representation.
4660
4661 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
4662
4663         * config/rs6000/rs6000.c (build_opaque_vector_type):
4664         New function.
4665         (rs6000_init_builtins): Use it.
4666
4667 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
4668
4669         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
4670         (func_table): Change type from char ** to vms_func_ref.
4671         (write_rtnbeg):  Update to reflect func_table change.  Use
4672         fde->funcdef_number instead of rtnnum in output.
4673         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
4674
4675 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4676             Richard Henderson  <rth@redhat.com>
4677
4678         PR target/14899
4679
4680         * c-common.c (vector_types_convertible_p): New function.
4681         * c-typeck.c (comptypes): Recurse on vector types.
4682         (convert_for_assignment): Use vector_types_convertible_p.
4683         (digest_init): Use vector_types_convertible_p to check
4684         validness of constant vector initializers; otherwise treat
4685         them as scalars.
4686         * tree.c (make_or_reuse_type): New.
4687         (build_common_tree_nodes): Use it.
4688         * cp/call.c (standard_conversion): Likewise.
4689         * cp/typeck.c (comptypes): Recurse on vector types.
4690         (convert_for_assignment): Use vector_types_convertible_p.
4691
4692 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
4693
4694         * config/mips/mips.c (override_options): Default to no
4695         generation of branch-likely operations when tuning for
4696         CPUs where they tend to have a negative performance impact
4697         (e.g., SB-1).
4698
4699 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4700
4701         * expr.c (store_constructor_field): Don't call store_constructor
4702         if bitsize is not a multiple of a byte.
4703
4704 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
4705
4706         * reload1.c (inherit_piecemeal_p): New function.
4707         (emit_reload_insns): When reloading a group of hard registers, use
4708         inherit_piecemeal_p to decide whether the values of individual hard
4709         registers can be inherited.
4710
4711 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4712
4713         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
4714         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
4715         * config/t-linux (LIB2ADDEHDEP): Likewise.
4716
4717 2004-05-04  Paul Brook  <paul@codesourcery.com>
4718
4719         * config/arm/crti.asm: Push an even number of registers.
4720         * config/arm/crtn.asm: And restore them.  Load via sp.
4721
4722 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4723
4724         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
4725         Collect overhead information.
4726         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
4727         parameter and pass it through.
4728         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
4729         MEM_STAT_DECL parameter and pass it through.
4730         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
4731         MEM_STAT_DECL parameter and pass it through.
4732
4733 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4734
4735         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
4736
4737         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
4738
4739         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
4740         rs6000_hard_regno_nregs.
4741
4742 2004-05-03  Eric Christopher  <echristo@redhat.com>
4743
4744         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
4745         prologue insn instead of setting up call.
4746         (s390_emit_epilogue): Ditto.
4747         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
4748         (define_constants): Add numbers for above patterns.
4749
4750 2004-05-03  Eric Christopher  <echristo@redhat.com>
4751
4752         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
4753         * config/s390/s390.c (s390_conditional_register_usage): ...here.
4754         * config/s390/s390-protos.h: Prototype.
4755
4756 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
4757
4758         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
4759         assignment.
4760
4761 2004-05-03  Eric Christopher  <echristo@redhat.com>
4762
4763         * config/mips/mips.md: Fix branch length attribute definition.
4764
4765 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4766
4767         * config.gcc: Remove --enable-altivec support.
4768
4769         * config/rs6000/altivec-defs.h: Remove.
4770
4771 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4772
4773         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
4774         * fixinc/fixincl.x: Regenerate.
4775
4776 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4777
4778         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
4779         definition.
4780         (log?f2, log10?f2, log2?f2): Reimplement expanders with
4781         float_truncate insn.
4782         (*fxtractsf3, *fxtractdf3): Remove insn definition.
4783         (logb?f2): Reimplement expanders with float_truncate insn.
4784
4785 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
4786
4787         PR 14718
4788         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
4789         force_type_die for CONST_DECL.
4790
4791 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4792             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4793
4794         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
4795         tm-dwarf2.h to tm_file.
4796         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
4797         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
4798         (ASM_DEBUG_SPEC): Delete.
4799
4800 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4801
4802         * optabs.h (enum optab_index): Add new OTI_expm1.
4803         (expm1_optab): Define corresponding macro.
4804         * optabs.c (init_optabs): Initialize expm1_optab.
4805         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
4806         patterns.
4807         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
4808         using expm1_optab.
4809         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
4810         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4811
4812         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
4813         to implement expm1, expm1f and expm1l built-ins as inline x87
4814         intrinsics.
4815
4816 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
4817
4818         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
4819         * config/frv/frv.md (*return_true, *return_false): New patterns.
4820
4821 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
4822
4823         * rtl.h (PHI_NODE_P): Remove.
4824
4825 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
4826
4827         PR middle-end/14988
4828         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
4829         when passed -2 as 'align'.
4830         (put_var_into_stack): Use 'bool' as the type for the three local
4831         predicates.  Adjust calls to put_reg_into_stack.
4832         When passed a CONCAT, instruct put_reg_into_stack to use
4833         a consecutive stack slot for the second part.
4834         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
4835         'consecutive_p' parameter.  Turn the three predicates into 'bool'
4836         parameters.  Retrieve the register mode from 'reg'.
4837         When consecutive_p is true, instruct assign_stack_local_1 to use
4838         BITS_PER_UNIT alignment.
4839         (put_addressof_into_stack): Use 'bool' as the type for the two
4840         local predicates. Adjust call to put_reg_into_stack.
4841
4842 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4843
4844         * fold-const.c (fold_convert_const, fold): Add missing
4845         FIX_ROUND_EXPR case.
4846
4847 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
4848
4849         * configure.ac (FLEX, BISON): Only use tools from the build tree
4850         if build equals host.
4851         * configure: Rebuilt.
4852
4853         * config/frv/frv-protos.h (frv_expand_epilogue,
4854         frv_expand_fdpic_call): Add bool argument.
4855         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
4856         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
4857         (frv_expand_epilogue): Use new argument to decide whether to emit
4858         return instruction or copy the return address to LR.
4859         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
4860         sibcalls.
4861         (sibcall_operand): New.
4862         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
4863         PLUS nor LABEL_REF.  Add sibcall_operand.
4864         * config/frv/frv.md (call, call_value): Pass false to
4865         frv_expand_fdpic_call.
4866         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
4867         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
4868         sibcall_value_internal, sibcall_value_fdpicdi): New.
4869         (return_unsigned_true, return_unsigned_false): New.
4870         (epilogue): Adjust call to frv_expand_epilogue.
4871         (sibcall_epilogue): New.
4872
4873         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
4874         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
4875         before redefining them.
4876
4877 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4878
4879         * builtins.c (fold_fixed_mathfn): New function.
4880         (fold_builtin_lround, fold_builtin): Use it.
4881
4882 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
4883
4884         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
4885         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
4886
4887 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
4888
4889         * config/cris/cris.h: Revert my "fix comment typos" patch.
4890
4891 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
4892
4893         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
4894
4895 2004-05-01  Falk Hueffner  <falk@debian.org>
4896
4897         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
4898         builtin_insll): Disallow 0 as first input operand.
4899
4900 2004-05-01  Falk Hueffner  <falk@debian.org>
4901
4902         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
4903
4904 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
4905
4906         PR middle-end/15054
4907         * expr.c (expand_expr_real): Do not call preserve_temp_slots
4908         on a TARGET_EXPR temp.
4909         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
4910         TARGET_EXPR temp slots.
4911
4912 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
4913
4914         * simplify-rtx.c (simplify_ternary_operation): When
4915         converting an IF_THEN_ELSE to a relational op, return
4916         correct mode.
4917
4918 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4919
4920         * builtins.c (fold_builtin_round): Fix comment typo.
4921         (fold_builtin_lround): New function.
4922         (fold_builtin): Use it.
4923
4924 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
4925
4926         PR target/11608
4927         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
4928         more like the one in config/dbxelf.h.
4929
4930 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
4931
4932         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
4933         and adjust definition accordingly.
4934         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
4935         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
4936         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
4937         VECTOR_TYPE.
4938
4939 2004-04-30  Jason Merrill  <jason@redhat.com>
4940
4941         PR c++/14587
4942         * config/i386/winnt.c (associated_type): Look for attributes on
4943         the TYPE_MAIN_VARIANT of *this.
4944         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
4945         apply the attributes to the variants.
4946
4947 2004-04-30  Paul Brook  <paul@codesourcery.com>
4948
4949         * config.gcc: Simplify arm --with-{cpu,tune} test.
4950         * config/arm/arm-cores.def: Document whitespace restrictions.
4951
4952 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4953
4954         PR other/1963
4955         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
4956
4957 2004-04-30  Brian Ford  <ford@vss.fsi.com>
4958             DJ Delorie  <dj@redhat.com>
4959
4960         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4961         (DWARF2_DEBUGGING_INFO): Define to enable.
4962         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
4963         DWARF2.
4964         * configure.ac (Target-specific assembler checks)
4965         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
4966         relocs.
4967         * configure: Regenerate.
4968         * config.in: Likewise.
4969
4970         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4971         (ASM_OUPUT_DWARF_OFFSET): Define.
4972
4973 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
4974
4975         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
4976         (s390_emit_call): New function prototype added.
4977         (s390_tls_get_offset): Function removed.
4978         * config/s390/s390.c (s390_function_ok_for_sibcall,
4979         s390_call_saved_register_used_p): New functions.
4980         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
4981         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
4982         (s390_emit_tls_call_insn): New function.
4983         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
4984         emit_call_insn.
4985         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
4986         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
4987         added.
4988         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
4989         register number used to hold the target address for sibcalls.
4990         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
4991         New expanders.
4992         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
4993         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
4994         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
4995         Expanders removed.
4996         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
4997         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
4998         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
4999         ("epilogue"): Changed the call to s390_emit_epilogue to use the
5000         new parameter.
5001
5002 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5003
5004         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5005         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5006         reg-stack.c, varasm.c, config/alpha/ev4.md,
5007         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5008         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5009         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5010         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5011         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5012         config/ia64/itanium2.md, config/ip2k/ip2k.c,
5013         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5014         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5015         comment typos.
5016
5017 2004-04-30  Paul Brook  <paul@codesourcery.com>
5018
5019         * config.gcc: Default ep9312 to hard-float.
5020         * config/arm/arm-cores.def: Add ARCH field.
5021         * config/arm/arm.c (FL_FOR_ARCH*): Define.
5022         (arm_arch_cirrus): New variable.
5023         (all_cores): Set and use arch.
5024         (all_architectures): Ditto.
5025         (arm_arch_name): New variable.
5026         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5027         Set and use arm_arch_cirrus.
5028         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5029         (enum processor_type): Update ARM_CORE define.
5030         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
5031         (CPP_SPEC): Remove %(cpp_cpu_arch).
5032         (CPP_ARCH_DEFAULT_SPEC): Remove.
5033         (CPP_CPU_ARCH_SPEC): Remove.
5034         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5035         (FPUTYPE_DEFAULT): Don't define here.
5036
5037 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
5038
5039         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
5040         updates too.
5041
5042 2004-04-30  Paul Brook  <paul@codesourcery.com>
5043
5044         * arm.c (arm_needs_doubleword_align): Use mode alignment.
5045
5046 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
5047
5048         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
5049         vec_sububs.
5050         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
5051         duplicates.
5052
5053 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5054
5055         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5056         atan2?f3 expanders.
5057
5058 2004-04-29  Nick Clifton  <nickc@redhat.com>
5059
5060         Bug 14093
5061         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5062         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5063         Delete static from definition.
5064         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5065
5066 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5067
5068         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5069         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5070         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5071         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5072
5073 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5074
5075         * commom.opt (Wfatal-errors): Add it.
5076         * diagnostic.c (flag_fatal_errors): Define it.
5077         (diagnostic_action_after_output): Check for flag_fatal_errors.
5078         * flags.h (flag_fatal_errors): Declare it.
5079         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5080         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5081
5082 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5083
5084         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5085         blocks which have kill flag set.
5086
5087 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5088
5089         * configure.ac (--with-as): Abort if user-supplied assembler
5090         cannot be executed.
5091         (--with-ld): Likewise for the linker.
5092         * configure: Regenerate.
5093
5094 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5095
5096         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5097         isn't NULL before using it.
5098
5099 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5100
5101         PR target/15189
5102         * config/mips/mips.md (load_df_low): Use default length.
5103         (load_df_high, store_df_high): Likewise.
5104
5105 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5106
5107         * config/mips/mips.md, config/mips/sb1.md,
5108         config/rs6000/rs6000.c: Fix comment typos.
5109
5110 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5111
5112         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5113         Fix comment typos.
5114
5115 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5116
5117         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5118         (delete_if_ordinary): Use above macro.
5119         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5120         Update copyright.
5121         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5122
5123 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5124
5125         * c-decl.c (get_parm_info): Use the correct tag keywords when
5126         warning about type declarations in prototypes.
5127
5128 2004-04-29  Paul Brook  <paul@codesourcery.com>
5129
5130         * config.gcc: Pull list of cores from arm-cores.def.
5131
5132 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5133
5134         * combine.c (combine_simplify_rtx): Adjust call to use
5135         simplify_relational_operation.  Do not use SELECT_CC_MODE
5136         when a comparison already has a MODE_CC mode.
5137
5138 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5139
5140         (simplify_set): simplify_relational_operation may now
5141         return another relational expression.
5142         * cse.c (fold_rtx): simplify_relational_operation now
5143         takes of computing the comparison mode.
5144         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5145         remove dead code.
5146         (do_compare_rtx_and_jump): Likewise.
5147         * integrate.c (subst_constants): simplify_relational_operation
5148         may now return another relational expression.
5149         * simplify-rtx.c (simplify_gen_relational): Move most code to
5150         the new simplify_relational_operation and
5151         simplify_relational_operation_1 functions.
5152         (simplify_relational_operation): Rewritten.
5153         (simplify_relational_operation_1): New function.
5154         (simplify_ternary_operation): simplify_relational_operation
5155         may now return another relational expression.
5156         (simplify_rtx): Remove unnecessary temp variable.
5157
5158 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5159
5160         * reg-stack.c (swap_to_top): New function.
5161         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5162         swap_to_top().
5163         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5164         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5165         UNSPEC_FSCALE_EXP.
5166
5167         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5168         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5169         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5170         x87's fscale insn.
5171         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5172         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5173         patterns.
5174
5175 2004-04-28  Serge Belyshev  <1319@bot.ru>
5176
5177         PR 14944
5178         * coverage.c (read_counts_file): Fix usage of warning () call.
5179         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5180
5181 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5182
5183         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5184         options with "-" in the option index.
5185         (SPARC Options): Likewise.
5186         (M32R/D Options): Likewise.
5187
5188 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5189
5190         * convert.c (convert_to_integer): Convert (long)round -> lround,
5191         etc.
5192
5193 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5194
5195         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5196         Return false if we do not have fp register.
5197         (addrs_ok_for_quad_peep): Rename to ...
5198         (mems_ok_for_quad_peep): this.
5199         Add check for volatile memory.
5200         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5201         Rename to ...
5202         (mems_ok_for_quad_peep): this.
5203         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5204         to peephole2's.
5205         (lfq_power2): New instruction.
5206         (stfq_power2): Likewise.
5207
5208 2004-04-28  Jan Hubicka  <jh@suse.cz>
5209
5210         PR c/15004
5211         * function.c (do_warn_unused_parameter): Break out form ...
5212         (expand_function_end): ... here; warn only when not using cgraphunit.
5213         * function.h (do_warn_unused_parameter): Declare.
5214         * cgraphunit.c: Include function.h.
5215         (cgraph_finalize_function): Do unused parameter warning.
5216         * Makefile.in (cgraphunit.o): Depend on function.h
5217
5218 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5219
5220         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5221         calling install-info on $(DESTDIR)$(infodir)/dir already being
5222         present.
5223
5224 2004-04-28  Paul Brook  <paul@codesourcery.com>
5225
5226         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5227
5228 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5229
5230         * gcse.c (find_moveable_store): Do not accept store insns with
5231         REG_EH_REGION note.
5232
5233 2004-04-28  Paul Brook  <paul@codesourcery.com>
5234
5235         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5236         * function.c (assign_temp): Ditto.
5237         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5238
5239 2004-04-28  Paul Brook  <paul@codesourcery.com>
5240
5241         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5242
5243 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
5244
5245         * var-tracking.c (variable_different_p): Add a parameter
5246         compare_current_location, compare current location of variable parts
5247         if it is true.
5248         (dataflow_set_different_1): Pass compare_current_location == false.
5249         (dataflow_set_different_2): Pass compare_current_location == false.
5250         (emit_notes_for_differences_1): Pass compare_current_location == true.
5251
5252 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5253
5254         * config/s390/s390.md ("casesi"): Mark jump table access as
5255         non-trapping and unchanging.
5256
5257 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5258
5259         PR debug/14829
5260         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
5261         callers.
5262         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5263         number for indexing hard_regno_nregs array.
5264
5265 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
5266
5267         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5268         * config/darwin-crt2.c: Only have contents on __ppc__.
5269
5270 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
5271
5272         * config/xtensa/xtensa.c (call_insn_operand): Check
5273         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5274         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5275         * config/xtensa/xtensa.md (call, call_value): Likewise.
5276
5277 2004-04-27  Wu Yongwei  <adah@sh163.net>
5278
5279         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5280         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5281         (__gthread_mutex_init_function): Replace CreateMutex with
5282         initialization of custom mutex using CreateSemaphore.
5283         (__gthread_mutex_lock): Use InterlockedIncrement.
5284         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5285         (__gthread_mutex_unlock): Use InterlockedDecrement and
5286         ReleaseSemaphore to unlock
5287         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5288         __gthread_mutex_lock, __gthread_mutex_trylock,
5289         __gthread_mutex_unlock): Adjust to match inline versions in
5290         gthr-win32.h.
5291
5292 2004-04-27  Paul Brook  <paul@codesourcery.com>
5293
5294         * config/arm/arm.c (arm_promote_prototypes): New function.
5295         (TARGET_PROMOTE_PROTOTYPES): Use it.
5296
5297 2004-04-27  Paul Brook  <paul@codesourcery.com>
5298
5299         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5300
5301 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
5302
5303         * config/alpha.c (alpha_end_function): For OpenVMS gas,
5304         correctly output .pdesc directive before .end.
5305
5306 2004-04-26  James E Wilson  <wilson@specifixinc.com>
5307
5308         Bug 14927
5309         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
5310         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
5311
5312 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
5313
5314         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5315         * config/pa/pa-hpux10.h: Likewise.
5316         * config/pa/pa-hpux11.h: Likewise.
5317
5318 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
5319
5320         * doc/invoke.texi (Overall Options): Document default for -o
5321         for PCH files.
5322
5323 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5324
5325         * builtins.c (expand_builtin_update_setjmp_buf): New function.
5326         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5327         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5328
5329 2004-04-26  Paul Brook  <paul@codesourcery.com>
5330
5331         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5332
5333 2004-04-26  Paul Brook  <paul@codesourcery.com>
5334
5335         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5336
5337 2004-04-25  Roger Sayle  <roger@eyesopen.com>
5338
5339         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5340         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
5341         X % -1 as 0.
5342
5343 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
5344
5345         PR bootstrap/15141
5346         * except.c (connect_post_landing_pads): Delete insns after the
5347         barrier when generating a unwind_resume_libfunc call.
5348
5349 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5350
5351         PR/c++ 15119
5352         * tree.c (substitute_placeholder_in_expr, case 4): New case,
5353         for TARGET_EXPR.
5354
5355 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5356
5357         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5358         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5359         inhibit_libc is defined.
5360
5361 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
5362
5363         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5364         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5365         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5366         (TARGET_SCHED_VARIABLE_ISSUE): Define.
5367         (mips_adjust_cost): Move later in file, next to other sched hooks.
5368         (mips_macc_chains_last_hilo): New variable.
5369         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5370         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5371         * config/mips/mips.md (may_clobber_hilo): New attribute.
5372
5373 2004-04-24  Roger Sayle  <roger@eyesopen.com>
5374             Bruce Korb  <bkorb@gnu.org>
5375
5376         * fixinc/inclhack.def (aix_syswait_2): New fix.
5377         * fixinc/fixincl.x: Regenerate.
5378         * fixinc/tests/base/sys/wait.h: Update for new test.
5379
5380 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
5381
5382         PR target/14960
5383         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5384         to non_fixed_size, and leave out fixed_size from the sum.
5385         (generate_set_vrsave): Correct clobbers.
5386         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5387         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5388         (rs6000_libcall_value): Likewise.
5389         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5390         (FUNCTION_ARG_REGNO_P): Likewise.
5391
5392 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5393
5394         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5395         is a CONST_INT.
5396         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5397         with NARROW_OP1 instead of OP1.
5398
5399 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5400
5401         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5402         and __s390x__ hosts.
5403
5404 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5405
5406         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5407         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5408         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5409         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5410         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5411         * builtins.c (expand_builtin_fork_or_exec): New.
5412         (expand_builtin): Call it.
5413         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5414         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5415         * c-common.c (PID_TYPE): New macro.
5416         (c_common_nodes_and_builtins): Initialize pid_type_node.
5417         * calls.c (special_function_p): Do not handle fork and exec.
5418         (expand_call): Do not handle ECF_FORK_OR_EXEC.
5419         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5420         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5421         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5422         __gcov_execv, __gcov_execvp, __gcov_execve): New.
5423         * tree.h (enum tree_index): Add TI_PID_TYPE.
5424         (pid_type_node): New macro.
5425         (ECF_FORK_OR_EXEC): Removed.
5426
5427 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5428
5429         PR optimization/13985
5430         * cfgloopmanip.c (fix_loop_placements): New prototype.
5431         Call fix_bb_placements on the preheader of loops that have
5432         been reparented.
5433         (remove_path): Adjust call to fix_loop_placements.
5434
5435 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
5436
5437         * config/darwin7.h: New file.
5438         * config.gcc (*-*-darwin*): Add darwin7.h if the
5439         version is greater than 6.
5440         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5441         (MATH_LIBRARY): Wrap in ifdefs.
5442
5443 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
5444
5445         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5446         loading iWMMXt registers with a frame pointer.  Use post-increment
5447         without a frame pointer.
5448         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5449
5450 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
5451
5452         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5453         mode" rather than "-funit-at-a-time" since -O2 enables it
5454         without requiring -f* options.  Refer to -fprofile-generate and
5455         -fprofile-use correctly.  Move -funit-at-a-time among options
5456         enabled by -O.  Add information about unit-at-a-time caveats.
5457
5458 2004-04-22  Per Bothner  <per@bothner.com>
5459
5460         * line-map.h (struct line_maps):  New field highest_line.
5461         (linemap_position_for_column):  Make non-inline function.
5462         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
5463         * line-map.c (linemap_init):  Clear highest_line field.
5464         (linemap_add):  Set highest_line field.
5465         (linemap_line_start):  Minor optimization - use highest_line field.
5466         Reduce maximum column hint to 10000.  Update highest_line field.
5467         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
5468         * cpphash.h (struct cpp_reader):  Remove line field - instead use
5469         line_table->highest_line.
5470         (saved_line):  Remove unused field.
5471         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
5472         Use  line_table's highest_line field instead of cpp_reader's line.
5473         * cpplib.c (start_directive):  Likewise use highest_line field.
5474         (do_line, do_linemarker):  Likewise just use newest map.
5475         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
5476         * cpperror.c (cpp_error):  Likewise use highest_line field.
5477         * cppfiles.c (open_file_failed:  Likewise.
5478         (cpp_make_system_header):  Likewise use newest map and highest_line.
5479         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
5480         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5481         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5482         _cpp_lex_direct):  Likewise use highest_line.
5483         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
5484         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
5485         and use newest map.
5486         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
5487         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
5488         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
5489
5490 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
5491
5492         PR bootstrap/14992
5493         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5494         * config/linux.h (USE_LD_AS_NEEDED): Define.
5495         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5496         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5497         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5498         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5499         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5500         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5501         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5502
5503 2004-04-22  Per Bothner  <per@bothner.com>
5504
5505         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
5506         Fixes PR preprocessor/15067.
5507
5508 2004-04-23  Andreas Schwab  <schwab@suse.de>
5509
5510         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5511         avoid aliasing warning.
5512
5513 2004-04-22  Jan Hubicka  <jh@suse.cz>
5514             Mostafa Hagog <mustafa@il.ibm.com>
5515
5516       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5517       * cfgloopanal.c (expected_loop_iterations): Change the return value
5518
5519 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
5520
5521         * cselib.h (struct elt_loc_list): Remove canon_loc field.
5522         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
5523         (cselib_invalidate_mem): Remove all canon_loc and canon_x
5524         traces.
5525
5526 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
5527
5528         Revert
5529         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5530
5531                 * var-tracking.c (variable_part_different_p): Variable parts
5532                 differ when the most recent locations differ.
5533
5534 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
5535
5536         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
5537         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
5538         (embedded_pic_offset): Delete.
5539         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
5540         MASK_* constants.
5541         (TARGET_EMBEDDED_PIC): Delete.
5542         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
5543         (ASM_SPEC): Remove -membedded-pic.
5544         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
5545         (ASM_OUTPUT_CASE_LABEL): Likewise.
5546         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
5547         * config/mips/windiss.h (ASM_SPEC): Likewise.
5548         * config/mips/mips.c (struct machine_function): Remove
5549         embedded_pic_fnaddr_rtx.
5550         (TARGET_ENCODE_SECTION_INFO): Remove override.
5551         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
5552         (override_options): Remove -membedded-pic handling.
5553         (print_operand): Remove handling of '%S'.
5554         (mips_select_section: Remove -membedded-pic handling.
5555         (mips_encode_section_info): Delete.
5556         (mips_output_conditional_branch): Remove mention of -membedded-pic.
5557         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
5558         -membedded-pic handling.
5559         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
5560
5561 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
5562
5563         * var-tracking.c (frame_base_decl): Remove useless GTY.
5564
5565 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
5566
5567         * config/rs6000/rs6000.c (rs6000_override_options): Error when
5568         user wants altivec and e500 instructions.
5569
5570 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
5571
5572         PR target/14813
5573         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
5574         in .init_array section to ...
5575         * config/ia64/crtbegin.asm: Here.
5576
5577         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
5578         and hidden if HAVE_INITFINI_ARRAY is defined.
5579
5580 2004-04-21  James E Wilson  <wilson@specifixinc.com>
5581
5582         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
5583         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
5584         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
5585         (fp_register_operand, lo_operand): New.
5586         (mips_rtx_costs): Add TUNE_SB1 support.
5587         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
5588         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
5589         (mips_multipass_dfa_lookahead): New.
5590         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
5591         TUNE_SB1): New.
5592         (TARGET_SWITCHES): Add -mfp-exceptions support.
5593         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
5594         (BRANCH_COST): Fix whitespace.
5595         * config/mips/mips.md: Include sb1.md.
5596         * config/mips/sb1.md: New file.
5597         * doc/invoke.texi: Document -mfp-exceptions.
5598
5599         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
5600         comment.
5601         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
5602         (fixincl.o-warn): Delete.
5603
5604 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5605
5606         * config/rs6000/rs6000 (print_operand) ['z']:
5607         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
5608
5609 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
5610
5611         * config.gcc: Support --with-arch=iwmmxt for ARM.
5612
5613 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5614
5615         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
5616         in two more places; remove unneeded force_reg
5617
5618 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5619
5620         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
5621         for TARGET_MACHO.
5622         (print_operand): For TARGET_MACHO check to see if we need a stub
5623         and output one if we need it.
5624
5625         PR debug/15033
5626         * dwarf2out.c (rtl_for_decl_location): Check for NULL
5627         rtl.
5628
5629 2004-04-20  James E Wilson  <wilson@specifixinc.com>
5630
5631         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
5632         (vall_value_gp): Likewise.
5633
5634 2004-04-20  DJ Delorie  <dj@redhat.com>
5635
5636         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
5637         variables stored in word registers, then in memory.
5638
5639 2004-04-20  Eric Christopher  <echristo@redhat.com>
5640
5641         * cp/parser.c (cp_parser_declaration): Move translate
5642         up before tokens are lexed.
5643
5644 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
5645
5646         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
5647         (asin_optab, acos_optab): Define corresponding macros.
5648         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
5649         * genopinit.c (optabs): Implement asin_optab and acos_optab
5650         using asin?f2 and acos?f2 patterns.
5651         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
5652         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
5653         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
5654         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5655
5656         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
5657         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
5658         acos, acosf and acosl built-ins as inline x87 intrinsics.
5659
5660 2004-04-20  Paul Brook  <paul@codesourcery.com>
5661
5662         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
5663
5664 2004-04-20  Paul Brook  <paul@codesourcery.com>
5665
5666         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
5667
5668 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
5669
5670         Revert part of 2004-04-17 change that moved -frename-registers
5671         to -O1.  -frename-registers is buggy.
5672
5673         * toplev.c (flag_rename_registers): Initialize to 0.
5674         * doc/invoke.texi (Optimize options): Move -frename-registers
5675         to "Not triggered by any -O level" section.  Adjust commentary
5676         accordingly.
5677
5678 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
5679
5680         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
5681
5682 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
5683
5684         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
5685         for mflo and mfhi instructions.
5686         (mips_output_move): Remove mflo and mfhi handling.
5687         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
5688         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
5689         Likewise various define_peephole2s.
5690         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
5691         alternatives.
5692         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
5693         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
5694         (mfhilo_di, mfhilo_si): New patterns.
5695
5696 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5697
5698         * function.c (assign_parms): Force
5699         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
5700
5701 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5702
5703         * var-tracking.c (variable_part_different_p): Variable parts differ
5704         when the most recent locations differ.
5705
5706 2004-04-19  James E Wilson  <wilson@specifixinc.com>
5707
5708         * rtl.h (reg_set_last): Delete declaration.
5709         * rtlanal.c (reg_set_last): Delete.
5710
5711 2004-04-19  Roger Sayle  <roger@eyesopen.com>
5712
5713         * fold-const.c (fold_convert): Make function extern/public.
5714         * tree.h (fold_convert): Prototype here.
5715         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
5716         expand_builtin_strrchr, expand_builtin_strpbrk,
5717         expand_builtin_mempcpy, expand_builtin_bcopy,
5718         expand_builtin_bzero, expand_builtin_memcmp,
5719         expand_builtin_strcmp, expand_builtin_strncmp,
5720         stabilize_va_list, expand_builtin_sprintf,
5721         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
5722         fold_builtin_exponent, fold_builtin_mempcpy,
5723         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
5724         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
5725         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
5726
5727 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
5728
5729         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
5730         (move_from_CR_gt_bit): New.
5731         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
5732         E500.
5733         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
5734         E500.
5735
5736         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
5737         (tstsfeq_gpr): Same.
5738         (cmpsfgt_gpr): Same.
5739         (tstsfgt_gpr): Same.
5740         (cmpsflt_gpr): Same.
5741         (tstsflt_gpr): Same.
5742         (e500_cceq_ior_compare): New.
5743         (e500_flip_gt_bit): New.
5744
5745         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
5746         (print_operand): Add 'c' and 'D'.
5747         (rs6000_generate_compare): Rewrite to generate correct rtl.
5748         (rs6000_emit_sCOND): Handle E500.
5749         (output_cbranch): Adjust for changes in rs6000_generate_compare.
5750         (output_e500_flip_gt_bit): New.
5751
5752         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
5753         Protoize.
5754
5755 2004-04-19  Eric Christopher  <echristo@redhat.com>
5756
5757         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
5758
5759 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
5760
5761         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
5762         fix information.
5763
5764 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5765
5766         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
5767         download URL.
5768
5769 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
5770
5771         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
5772         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
5773
5774 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
5775
5776         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
5777         (fold_builtin): Update caller to match.
5778
5779         PR bootstrap/15009
5780         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
5781
5782         PR bootstrap/14999
5783         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
5784
5785 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5786
5787         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
5788
5789         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
5790         (expand_mult_highpart_optab): Likewise.
5791         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
5792
5793 2004-04-19  Paul Brook  <paul@codesourcery.com>
5794
5795         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
5796         floatunssisf2, floatunssidf2): New patterns.
5797
5798 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
5799
5800         PR other/14918
5801         * doc/invoke.texi (-fprofile-generate): Document requirement to
5802         use -fprofile-generate when linking.
5803
5804         * doc/extend.texi (Strong Using): Warn users against using this
5805         feature.
5806
5807 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
5808
5809         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
5810         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
5811         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
5812         * config/mips/mips.c (struct mips16_constant): Renamed from struct
5813         constant.  Propogate change throughout file.
5814         (struct machine_function): Remove insns_len.
5815         (mips_string_length, mips16_strings, string_constants): Delete.
5816         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
5817         when generating mips16 code.  Remove special mips16 treatment of
5818         string constants.
5819         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
5820         to have the form LABEL+CONSTANT.
5821         (mips_symbolic_address_p): Fix comment.
5822         (m16_usym8_4, m16_usym5_4): Delete.
5823         (mips_output_function_epilogue): Remove mips16 string handling.
5824         (mips_output_mi_thunk): Call mips16_lay_out_constants.
5825         (mips_select_section, mips_encode_section_info): Remove mips16
5826         string handling.
5827         (struct mips16_constant_pool): New.
5828         (add_constant): Take a mips16_constant_pool structure.  Keep pool
5829         sorted into order of ascending mode size.  Keep track of the highest
5830         possible start address, taking padding and the masking of the base PC
5831         value into account.
5832         (dump_constants_1): New function, split out from dump_constants.
5833         Handle vector constants.  Use gen_consttable_{int,float} rather than
5834         separate functions for each mode.
5835         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
5836         rather than separate functions for each alignment.
5837         (mips_find_symbol): Delete.
5838         (mips16_insn_length): New function, split out from
5839         mips16_lay_out_constants.
5840         (mips16_rewrite_pool_refs): New function.
5841         (mips16_lay_out_constants): Rework. Remove string handling.
5842         Always create an inline constant pool.
5843         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
5844         (UNSPEC_ALIGN): New constants.
5845         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
5846         (UNSPEC_ALIGN_[248]): Delete.
5847         (consttable_int, consttable_float, align): New patterns.
5848         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
5849
5850 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
5851
5852         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
5853         __unn_args_eq.
5854
5855 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
5856
5857         PR target/14715
5858         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
5859         with STARTING_FRAME_OFFSET.
5860
5861 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5862
5863         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
5864         * config/mips/mips.c (macc_msac_operand): New function.
5865         * config/mips/mips.md (*msac): Move after *macc.
5866         (*msac2): New.  Generalize macc-related peepholes so that they apply
5867         to msac too.
5868
5869 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
5870
5871         * opts.c (decode_options): Do not enable flag_rename_registers
5872         and flag_web at -O3.
5873         * toplev.c (flag_rename_registers): Initialize
5874         flag_rename_registers and flag_web to
5875         AUTODETECT_FLAG_VAR_TRACKING.
5876         (default_debug_hooks): New global.
5877         (process_options): Initialize default_debug_hooks.  Warn if
5878         -fvar-tracking specified but not supported by the current
5879         debug format.  Do not run var tracking at -O0 or if not
5880         supported by the current debug format, even if
5881         -fvar-tracking was given.  If -fno-rename-registers
5882         is not specified, always run register renaming if var
5883         tracking is supported by the default debugging information
5884         format for the target, and we are at -O1 or higher; similarly
5885         for -fweb, but only at -O2 or higher.
5886         * doc/invoke.texi (Optimize Options): Document this.
5887
5888 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5889
5890         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
5891         * configure: Regenerate.
5892
5893 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5894
5895         * gcc.c (used_arg): Check whether an option has been removed.
5896
5897 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5898
5899         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
5900         debugging on Solaris 7 and up.
5901
5902 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5903
5904         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
5905         IRIX 5 port.
5906         Remove -save-temps workaround, handled automatically.
5907         Require GNU binutils 2.15 for debugging.
5908         Remove SGI make warnings since GNU make is now required.
5909         (Specific, mips-sgi-irix6): Some markup fixes.
5910         Describe MIPSpro C problems and workarounds.
5911         Mention working O32 ABI support.
5912         Recommend GNU as 2.15 for O32 with debugging.
5913         Remove description of fixed structure pass/return bug.
5914
5915 2004-04-16  DJ Delorie  <dj@redhat.com>
5916
5917         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
5918         TYPE_FIELDS.
5919         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
5920
5921 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5922
5923         * pa.md: Remove unnecessary declarations for asm_out_file.
5924
5925         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
5926         SAR register.  Fix comment.
5927         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
5928         (%cr11).
5929
5930         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
5931
5932 2004-04-16  Nick Clifton  <nickc@redhat.com>
5933
5934         * config/arm/arm.c (arm_override_options): Revert previous patch.
5935         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
5936         be safely built.
5937
5938 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
5939
5940         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
5941         bug.
5942         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
5943         TARGET_DEFAULT): Changed. Ditto.
5944         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
5945         TARGET_ENDIAN_DEFAULT): Added. Ditto.
5946         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
5947         (TARGET_ENDIAN_DEFAULT): Added.
5948
5949 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5950
5951         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
5952         ATTR_CONST_NOTHROW_LIST.
5953
5954 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5955
5956         PR/middle-end 14915
5957         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
5958         BITS_BIG_ENDIAN.
5959
5960 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
5961
5962         * ra-debug.c (ra_print_rtx): Add break's to case legs.
5963
5964 2004-04-14  James E Wilson  <wilson@specifixinc.com>
5965
5966         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
5967
5968 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
5969
5970         * libada-mk.in: New file.
5971         * configure.ac: Create libada-mk from libada-mk.in.
5972         * configure: Regenerate.
5973
5974 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
5975
5976         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
5977         (logb_optab, ilogb_optab): Define corresponding macros.
5978         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
5979         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
5980         using logb?f2 and ilogb?i2 patterns.
5981         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
5982         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
5983         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
5984         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5985
5986         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
5987         and UNSPEC_XTRACT_EXP.
5988
5989         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
5990         patterns to implement fxtract x87 instruction.
5991         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
5992         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
5993         intrinsics.
5994         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
5995         x87's fxtract insn.
5996
5997 2004-04-14  Eric Christopher  <echristo@redhat.com>
5998
5999         * config/mips/t-elf: Enable multilibs by default.
6000
6001 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
6002
6003         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6004         previous fix to check HAVE_return at runtime too.
6005
6006 2004-04-14  Nick Clifton  <nickc@redhat.com>
6007
6008         * config/arm/arm.c (arm_override_options): If the user has not
6009         specified an ABI, then default to AAPCS for the iWMMXt processor.
6010         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6011         * config/arm/t-xscale-coff: Likewise.
6012
6013 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6014
6015         * builtins.c (fold_builtin_isdigit): New.
6016         (fold_builtin): Handle BUILT_IN_ISDIGIT.
6017         * defaults.h: Add TARGET_DIGIT0 and sort.
6018         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6019
6020 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6021
6022         * builtins.c (fold_builtin_cabs, fold_builtin): Use
6023         `mathfn_built_in' to determine the new builtin.
6024         * fold-const.c (fold): Likewise.
6025
6026 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
6027
6028         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6029         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6030         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6031         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6032         (ASM_SPEC): Update accordingly.
6033         * config/mips/mips.c: Update after above renaming.
6034         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6035         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6036
6037 2004-04-13  James E Wilson  <wilson@specifixinc.com>
6038
6039         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
6040         increment errorcount and return false instead of true.
6041
6042 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
6043
6044         * optabs.c (expand_twoval_unop): Reorder function arguments.
6045         * builtins.c (expand_builtin_mathfn_3): Update calls to
6046         expand_twoval_unop.
6047
6048         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
6049         and UNSPEC_TAN_TAN. Add missing comment.
6050
6051         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
6052         patterns to implement fptan x87 instruction.
6053         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6054         and tanl built-ins as inline x87 intrinsics. Define corresponding
6055         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6056         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6057         x87's fptan insn.
6058
6059 2004-03-13  Richard Henderson  <rth@redhat.com>
6060
6061         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6062         for LABEL_REFs.
6063
6064         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6065         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6066         * doc/invoke.texi: Update to match.
6067
6068         * varasm.c (unlikely_text_section): Use assemble_align instead of
6069         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6070         correct alignment argument.
6071
6072 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6073
6074         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6075         after setting reg_last_reload_reg for optional output reloads.
6076
6077 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6078
6079         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6080         Definition of these two macros are corrected by adding
6081         matchine right paren.
6082
6083 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6084
6085         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6086
6087 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6088
6089         * config/i386/i386.c (output_387_reg_move): New function.
6090         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6091         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6092         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6093         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6094         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6095
6096 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6097
6098         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6099         TYPE_DECL.
6100         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6101         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6102         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6103         Use skip_simple_arithmetic to find SAVE_EXPR.
6104         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6105         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6106         Properly chain multiple pointers.
6107         (copy_tree_r): Copy a TYPE_DECL.
6108         * tree.c (variably_modified_type_p): Add some missing tests and
6109         make some other minor changes.
6110         * tree.h (force_type_save_exprs): New declaration.
6111
6112 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6113
6114         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6115         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6116         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6117         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6118         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6119         x%-1 into 0 (or x&0 if x has side-effects).
6120
6121 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6122
6123         * config/rs6000/rs6000.md: Document why a pattern is not
6124         available.
6125
6126         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6127         of floats on the E500.
6128         (branch_positive_comparison_operator): Do not allow NE even on the
6129         E500.
6130
6131 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6132
6133         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6134         in_text_unlikely_section to in_unlikely_text_section.
6135
6136 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6137
6138         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6139         calling convention to allow a NULL_TREE to be returned.  Factor
6140         sanity checks from callers, return NULL_TREE when appropriate.
6141         (fold): Handle COMPOUND_EXPR operands of binary expressions
6142         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6143         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6144         calls to fold_binary_op_with_conditional_arg.
6145
6146 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6147
6148         * config/mips/iris5.h (current_section_flags):  Add
6149         in_unlikely_executed_text and default case.
6150
6151 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
6152
6153         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6154         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6155         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6156         HAVE_return and place it around the place where it is needed.
6157
6158 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6159
6160         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6161         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6162         and NORMAL_TEXT_SECTION_NAME.
6163         (unlikely_text_section): Check targetm.have_named_sections
6164         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6165         instead of SECTION_FORMAT_STRING.
6166         * config/mips/iris5.h (current_section_name): Add
6167         in_unlikely_executed_text case and move the abort into the switch.
6168         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6169         (NORMAL_TEXT_SECTION_NAME): Remove.
6170         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6171         (SECTION_FORMAT_STRING): Remove.
6172         * defaults.h (SECTION_FORMAT_STRING): Remove.
6173         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6174         (SECTION_FORMAT_STRING): Remove.
6175
6176 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6177
6178         * c-typeck.c (common_type): Prefer long long to long when same
6179         precision.
6180
6181 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6182
6183         PR 14887
6184         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6185         mode argument.
6186         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6187         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6188
6189 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6190
6191         * simplify-rtx.c (mode_signbit_p): New function to check whether
6192         an RTX is an immediate constant that represents the most significant
6193         bit of a given machine mode.
6194         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6195         C is the sign bit.
6196         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6197         when C2 is the sign bit.
6198         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6199         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6200         sign bit.
6201
6202 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6203
6204         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6205         TYPE_MODE.
6206
6207 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
6208
6209         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6210         of TREE_READONLY for types.
6211
6212 2004-04-09  Caroline Tice  <ctice@apple.com>
6213
6214         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
6215         (struct basic_block_def):  Add new field, partition.
6216         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
6217         definitions.
6218         (partition_hot_cold_basic_blocks): Add extern function
6219         declaration.
6220         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
6221         include statements.
6222         (N_ROUNDS): Increase the maximum number of rounds by 1.
6223         (branch_threshold): Add array value for new round.
6224         (exec_threshold): Add array value for new round.
6225         (push_to_next_round_p): New function.
6226         (add_unlikely_executed_notes): New function.
6227         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6228         (mark_bb_for_unlikely_executed_section): New function.
6229         (add_labels_and_missing_jumps): New function.
6230         (add_reg_crossing_jump_notes): New function.
6231         (fix_up_fall_thru_edges): New function.
6232         (find_jump_block): New function.
6233         (fix_crossing_conditional_branches): New function.
6234         (fix_crossing_unconditional_branches): New function.
6235         (fix_edges_for_rarely_executed_code): New function.
6236         (partition_hot_cold_basic_blocks): New function.
6237         (find_traces):  Add an extra round for partitioning hot/cold
6238         basic blocks.
6239         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
6240         and only cold blocks, into the last (extra) round of collecting traces.
6241         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
6242         over crossing edges.
6243         (bb_to_key):  Add code to correctly identify cold blocks when
6244         doing partitioning.
6245         (connect_traces): Modify to connect all the non-cold traces first, then
6246         go back and connect up all the cold traces.
6247         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
6248         * cfg.c (entry_exit_blocks): Add initialization for partition field in
6249         entry and exit blocks.
6250         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6251         if we are doing hot/cold partitioning.
6252         * cfgcleanup.c (cfglayout.h): Add new include statement.
6253         (try_simplify_condjump): Modify to not attempt on blocks with jumps
6254         that cross section boundaries.
6255         (try_forward_edges): Likewise.
6256         (merge_blocks_move_predecessor_nojumps): Likewise.
6257         (merge_blocks_move_successor_nojumps): Likewise.
6258         (merge_blocks_move): Likewise.
6259         (try_crossjump_to_edge): Modify to not attempt after we have done
6260         the block partitioning.
6261         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6262         cross section boundaries.
6263         (try_optimize_cfg): Likewise.
6264         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6265         jumps that cross section boundaries.
6266         * cfglayout.c (flags.h): Add new include statement.
6267         (update_unlikely_executed_notes):  New function.
6268         (fixup_reorder_chain):  Add code so when a new jumping basic block is
6269         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6270         updated appropriately.
6271         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
6272         introduced by this optimization.
6273         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
6274         extern function declaration.
6275         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6276         list of notes that can be deleted.
6277         (create_basic_block_structure):  Add initialization for partition field.
6278         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
6279         section boundaries.
6280         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
6281         cross section boundaries.
6282         (commit_one_edge_insertion): Add code so newly created basic block
6283         ends up in correct (hot or cold) section.  Modify to disallow
6284         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6285         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
6286         crosses section boundaries.
6287         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6288         cross section boundaries.
6289         (force_nonfallthru_and_redirect): Modify to make sure new basic block
6290         ends up in correct section, with correct notes attached.
6291         * common.opt (freorder-blocks-and-partition):  Add new flag for this
6292         optimization.
6293         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
6294         the end of functions are written into the correct (hot or cold)
6295         section.
6296         (dbx_source_file): Add code so writing debug file information
6297         doesn't incorrectly change sections.
6298         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6299         in partitioning hot/cold basic blocks into separate sections.
6300         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6301         section partitioning.
6302         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6303         conditional branches can span all of memory.
6304         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6305         unconditional branches can span all of memory.
6306         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
6307         (final_scan_insn):  Add code to check for NOTE instruction indicating
6308         whether basic block belongs in hot or cold section, and to make sure
6309         the current basic block is being written to the appropriate section.
6310         Also added code to ensure that jump table basic blocks end up in the
6311         correct section.
6312         * flags.h (flag_reorder_blocks_and_partition):  New flag.
6313         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
6314         one of the branches has a jump that crosses between sections.
6315         (find_if_case_2): Likewise.
6316         (ifcvt): Modify to not attempt to mark loop exit edges after
6317         hot/cold partitioning has occurred.
6318         * opts.c (decode_options): Code to handle new flag,
6319         flag_reorder_blocks_and_partition; also to turn it off if
6320         flag_exceptions is on.
6321         (common_handle_option): Code to handle new flag,
6322         flag_reorder_blocks_and_partition.
6323         * output.h (unlikely_text_section): New extern function declaration.
6324         (in_unlikely_text_section): New extern function declaration.
6325         * passes.c (rest_of_handle_stack_regs):  Add
6326         flag_reorder_blocks_and_partition as an 'or' condition for calling
6327         reorder_basic_blocks.
6328         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
6329         as an 'or' condition for calling reorder_basic_blocks.
6330         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
6331         * print-rtl.c (print_rtx): Add code for handling new note,
6332         NOTE_INSN_UNLIKELY_EXECUTED_CODE
6333         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
6334         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6335         cross between section boundaries.
6336         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
6337         indicating the basic block containing it belongs in the cold section.
6338         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6339         between hot and cold sections.
6340         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
6341         initialize this flag, and to tie it to the command-line option
6342         freorder-blocks-and-partition.
6343         * varasm.c (cfglayout.h):  Add new include statement.
6344         (unlikely_section_label_printed):  New global variable, used for
6345         determining when to output section name labels for cold sections.
6346         (in_section):  Add in_unlikely_executed_text to enum data structure.
6347         (text_section):  Modify code to use SECTION_FORMAT_STRING and
6348         NORMAL_TEXT_SECTION_NAME macros.
6349         (unlikely_text_section):  New function.
6350         (in_unlikely_text_section):  New function.
6351         (function_section):  Add code to make sure beginning of function is
6352         written into correct section (hot or cold).
6353         (assemble_start_function):  Add code to make sure stuff is written to
6354         the correct section.
6355         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
6356         to an if statement that was checking 'in_text_section'.
6357         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
6358         condition to an if statement that was checking 'in_text_section'.
6359         (default_section_type_flags_1):  Add check: if in cold section
6360         flags = SECTION_CODE.
6361         * config/darwin.c (darwin_asm_named_section):  Modify to use
6362         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
6363         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
6364         specifically for the i386.
6365         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
6366         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
6367         text string to something more informative.
6368         (NORMAL_TEXT_SECTION_NAME): Add new definition.
6369         (SECTION_FORMAT_STRING):  Add new definition.
6370         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
6371         '!in_unlikely_text_section' as an 'and' condition to an if statement
6372         that was already checking '!in_text_section'.
6373         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6374         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6375         sure these are properly defined for linux on ppc.
6376         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
6377         for this new flag.
6378         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
6379         reg_note.
6380         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6381         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
6382         these new macros.
6383
6384 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6385
6386         * function.c (gen_mem_addressof): When changing the RTX from a REG
6387         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6388
6389 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6390
6391         PR target/14888
6392         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6393         truncxfdf2_noop): Provide dummy "fmov" implementations.
6394
6395 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
6396
6397         * gcc.c (default_compilers): Add missing initializers.
6398
6399         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6400         Return 1 if file was successfully mapped.
6401
6402 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
6403
6404         PR pch/13419
6405         PR pch/14137
6406         Radar #: 3315288
6407         * doc/invoke.texi (Precompiled Headers): Suggest -o
6408         to put an output file in a particular place.  Be more detailed
6409         about which options affect PCH validity and which options
6410         might not work.
6411         * c-pch.c (pch_matching): New.
6412         (MATCH_SIZE): New.
6413         (struct c_pch_validity): New field 'match'.
6414         (pch_init): Handle pch_matching.
6415         (c_common_valid_pch): Check pch_matching.
6416
6417         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6418
6419 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
6420
6421         * doc/invoke.texi (Precompiled Headers): Warn about known
6422         problems.
6423
6424 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6425
6426         PR c++/14808
6427         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6428         to 1 if ASM_OUTPUT_DEF is defined.
6429         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6430         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6431         Set to non-zero iff not a one_only decl.
6432
6433 2004-04-08  Paul Brook  <paul@codesourcery.com>
6434
6435         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6436
6437 2004-04-08  Paul Brook  <paul@codesourcery.com>
6438
6439         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6440         PROMOTE_FOR_CALL_ONLY.
6441         * config/arm/arm-protos.h (arm_function_value): Declare.
6442         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6443         (TARGET_PROMOTE_PROTOTYPES): Return false.
6444         (arm_function_value): New function.
6445         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6446         (FUNCTION_VALUE): Call arm_function_value.
6447         * config/cris/cris.h (PROMOTE_MODE): Rename ...
6448         (PROMOTE_FUNCTION_MODE): ... to this.
6449         (PROMOTE_FOR_CALL_ONLY): Remove.
6450         * config/mmix/mmix.h: Likewise.
6451         * config/s390/s390.h: Likewise.
6452         * config/sparc/sparc.h: Likewise.
6453         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6454         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6455         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6456         (PROMOTE_FOR_CALL_ONLY): Remove.
6457
6458 2004-04-08  Joel Sherrill <joel@oarcorp.com>
6459
6460         PR ada/14538
6461         * ada/5rosinte.adb: Remove fake mprotect() body.
6462         * ada/5rosinte.ads: Add SA_SIGINFO.
6463         * ada/5rtpopsp.adb: Rewrite to use new interface.
6464         * ada/init.c: Reorder so the simple single OS conditional __rtems__
6465         is tested before more complex ones which mix UNIX and embedded
6466         systems in the conditional.
6467
6468 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
6469
6470         PR ada/14665
6471         * ada/osint.adb (Find_Program_Name): Rework to properly handle
6472         filenames which end in .exe or have versioning suffixes like VMS.
6473
6474 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
6475
6476         PR target/10129
6477         * config/darwin.c (darwin_encode_section_info): When the decl has
6478         a DECL_INITIAL, it is only defined also when it is not a common.
6479
6480 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6481
6482         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6483         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6484
6485 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6486
6487         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6488         global register variables.
6489
6490 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
6491
6492         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6493         rpc_xdr_lvalue_cast_b): New fixes.
6494         * fixinc/fixincl.x: Regenerate.
6495         * fixinc/tests/base/rpc/xdr.h: Add new tests.
6496
6497 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
6498
6499         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6500         to power4 and power5 entries.
6501
6502 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
6503
6504         * c-common.h (pending_lang_change): Mark for PCH.
6505
6506 2004-04-07  Caroline Tice  <ctice@apple.com>
6507
6508         * gcc.c (main): Move 'break' in main loops (on an error)
6509         to wait until error processing has occurred.
6510
6511 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
6512
6513         * config.gcc: Stop changing enable_threads midstream.
6514         Replace uses of enable_threads_flag with enable_threads.
6515         * configure.ac: Replace uses of enable_threads_flag with
6516         enable_threads.  Improve autoconf quotation in one place.
6517         * configure: Regenerate.
6518
6519 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
6520
6521         * builtins.c: Implement support for sincos function.
6522         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
6523         BUILT_IN_COS{,F,L}.
6524         (expand_builtin_mathfn_3): New function.
6525         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
6526         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
6527         flag_unsafe_math_optimization is set.
6528
6529         * optabs.h (enum optab_index): Add new OTI_sincos.
6530         (sincos_optab): Define corresponding macro.
6531
6532         * optabs.c (init_optabs): Initialize sincos_optab.
6533         (expand_twoval_unop): New function.
6534
6535         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
6536         patterns.
6537
6538         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
6539         and UNSPEC_SINCOS_SIN.
6540
6541         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
6542         sincosxf3): New patterns to implement sincos, sincosf and sincosl
6543         built-ins as inline x87 intrinsics. Define splits for
6544         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
6545         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
6546         sincos patterns.
6547         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
6548         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
6549
6550         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
6551         x87's fsincos insn.
6552
6553 2004-04-06  Devang Patel  <dpatel@apple.com>
6554
6555         PR 14467
6556         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
6557
6558 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6559
6560         * doc/install.texi: Update HP-UX 11 installation procedure.
6561
6562 2004-04-06  Paul Brook  <paul@codesourcery.com>
6563
6564         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
6565
6566 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6567
6568         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
6569         when the TLS address is generated by a function call.
6570         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
6571         (tls_local_dynamic): Likewise.
6572
6573 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
6574
6575         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
6576         and TYPE_VOLATILE.
6577
6578 2004-04-05  Caroline Tice  <ctice@apple.com>
6579
6580         * gcc.c (combine_flag): New global variable, for new driver option.
6581         (struct compiler): Add two new fields, to be used when
6582         combining multiple input files in a single pass (IMA).
6583         (default_compilers):  Add values for the new fields to all
6584         compiler entries. Modify the "@c" compiler entry for doing IMA
6585         properly with "-save-temps" and the "combine" flag.
6586         (option_map):  Add new driver option, "--combine", to tell driver
6587         to pass multiple input files to compiler at one time.
6588         (have_o_argbuf_index): New global variable.
6589         (store_arg): Modify to assign value to have_o_argbuf_index.
6590         (struct infile):  Add three new fields, to help with IMA.
6591         (display_help): Add help for new "combine" option.
6592         (process_command): Remove local variable have_o; add code to check
6593         for new "combine" option; remove assignment to combine_inputs.
6594         (do_spec_1):  Modify to deal with IMA better.
6595         (main): Make variable 'lang_n_infiles' local to entire function
6596         rather than to a single block.  Use flag combine_flag to
6597         determine whether to do IMA or not; Modify loop initializing
6598         infiles to deal properly with linker files.
6599         Add code for doing preprocessing in presence of
6600         IMA with "-save-temps" flag.  Modify "main" loop to handle
6601         multiple input files, in multiple languages, with or without
6602         preprocessing,  gracefully.
6603         * toplev.c (set_src_pwd): Modify to not complain if attempting to
6604         re-set it to same directory it's previously been set to (avoid
6605         irritating, meaningless warning messages when doing IMA with
6606         save-temps).
6607         * doc/invoke.texi: Add "-combine" to list of Overall Options;
6608         remove documentation about IMA that is no longer accurate; Add
6609         documentation explaining what "-combine" does.
6610         * ada/lang-specs.h: Add initialization values for new fields in
6611         "struct compiler".
6612         * cp/lang-specs.h: Likewise.
6613         * f/lang-specs.h: Likewise.
6614         * java/lang-specs.h: Likewise.
6615         * objc/lang-specs.h: Likewise.
6616         * treelang/lang-specs.h: Likewise.
6617
6618 2004-04-05  David Edelsohn
6619
6620         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
6621         symbol handling.
6622
6623 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
6624             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6625
6626         PR optimization/13424 (hppa), bootstrap/14462, c/14828
6627         * pa.md: Use replace_equiv_address to retain the attributes of the
6628         memory operands used in the split and peephole2 patterns for optimizing
6629         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
6630
6631 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6632
6633         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
6634         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6635         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
6636         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
6637         PARM_DECL.
6638         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
6639         for a type.
6640         * print-tree.c (print_node): Properly handle side-effects, readonly,
6641         and constant flags.
6642         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
6643         and TREE_CONSTANT if not a type.
6644         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
6645         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
6646         (NON_TYPE_CHECK): New macro.
6647         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
6648
6649 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
6650
6651         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
6652         to DWARF2_DEBUG unconditionally.
6653         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
6654
6655 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
6656             Nathanael Nerode  <neroden@gcc.gnu.org>
6657
6658         PR target/14548
6659         * config.host: Set the shell variable host_can_use_collect2.
6660         Set it to yes by default, and to no for alpha*-dec-*vms*,
6661         i[34567]86-*-mingw32*, and powerpc-*-beos*.
6662         * configure.ac: Set and substitute the shell variable collect2.
6663         Give an error if use_collect2 is yes and host_can_use_collect2 is
6664         no.
6665         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
6666         uses.  Initialize to @collect2@.
6667         (STAGESTUFF): Remove $(USE_COLLECT2).
6668         * config/alpha/x-vms (USE_COLLECT2): Don't set.
6669         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
6670         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
6671         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
6672         * configure: Regenerate.
6673
6674 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6675
6676         * simplify-rtx.c (simplify_binary_operation): Constant fold
6677         DIV, MOD, UDIV and UMOD using div_and_round_double.
6678
6679 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6680
6681         PR c++/14804
6682         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
6683         RECORD_TYPEs.
6684
6685 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6686
6687         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
6688         documentation.
6689
6690 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6691
6692         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
6693         updating the REG_EQUAL note on an insn's libcall_insn.
6694
6695 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6696
6697         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
6698
6699 2004-04-03  Roger Sayle  <roger@eyesopen.com>
6700
6701         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
6702         with reorder_operands_p.
6703
6704 2004-04-03  Jan Hubicka  <jh@suse.cz>
6705
6706         * md.texi (vec_set, vec_extract, vec_init): Document.
6707
6708 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
6709
6710        * opts.c (decode_options): Do function inlining with very small
6711        max-inline-insns-* parameters when optimizing for size.
6712
6713 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
6714
6715         * config/i386/i386.h (TARGET_NOCONA): New macro.
6716         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
6717         (processor_type): Add PROCESSOR_NOCONA.
6718
6719         * config/i386/i386.md (cpu): Add nocona to the attribute values.
6720
6721         * config/i386/i386.c (nocona_cost): New variable.
6722         (m_NOCONA): New macro.
6723         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
6724         x86_branch_hints, x86_use_sahf, x86_single_stringop,
6725         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
6726         x86_integer_DFmode_moves, x86_partial_reg_dependency,
6727         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
6728         x86_decompose_lea, x86_arch_always_fancy_math_387,
6729         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
6730         x86_ext_80387_constants, x86_four_jump_limit):
6731         (override_options): Add nocona_cost to processor_target_table.
6732         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
6733         (incdec_operand): Prevent inc/dec generation for Nocona too.
6734         (ix86_issue_rate): Add PROCESSOR_NOCONA.
6735
6736 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
6737
6738         * rtlanal.c (find_reg_note): Manually
6739         unswitch the loop.
6740
6741 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
6742
6743         * genemit.c (gen_split): Change prototype of generated code.
6744         * genrecog.c (write_action): Adjust prototype for and calls to
6745         gen_split_*.
6746         * gensupport.c (struct queue_elem): Add split field.
6747         (queue_pattern): Return a value.  Clear the split field.
6748         (process_rtx): Maintain an association between an insn and the
6749         split generated from it for a define_insn_and_split.
6750         (process_one_cond_exec): Generate a new split for a
6751         define_insn_and_split.
6752         * config/arm/arm-protos.h (arm_split_constant): Add insn
6753         parameter.
6754         (emit_constant_insn): New function.
6755         (arm_gen_constant): Use it.
6756         * config/arm/arm.md: Adjust calls to arm_split_constant.
6757
6758 2004-04-02  Jan Hubicka  <jh@suse.cz>
6759
6760         * cgraph.c: Add overall comment.
6761         (cgraph_inline_hash): New global variable.
6762         (cgraph_create_node): Break out from ...
6763         (cgraph_node): ... here.
6764         (cgraph_edge): New function.
6765         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
6766         (cgraph_remove_edge): Accept edge, intead of source and destination.
6767         (cgraph_redirect_edge_callee): New.
6768         (cgraph_remove_node): Update all new datastructures.
6769         (cgraph_record_call, cgraph_remove_call): Kill.
6770         (dump_cgraph_node): Break out from ... ; dump new datastructures.
6771         (dump_cgraph): ... here.
6772         (cgraph_function_possibly_inlined_p): Use new hashtable.
6773         (cgraph_clone_edge, cgraph_clone_node): New.
6774         * cgraph.h: Include hashtab.h
6775         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
6776         fields, add inlined_to pointer.
6777         (cgraph_node): Add pointer to next_clone.
6778         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
6779         (cgraph_remove_call, cgraph_record_call): Kill.
6780         (cgraph_inline_hash): Declare.
6781         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
6782         cgraph_redirect_edge_callee): Declare.
6783         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
6784         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
6785         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
6786         * cgraphunit.c: Add overall comment.
6787         (cgraph_optimize_function): Kill.
6788         (cgraph_assemble_pending_functions): Do not assemble inline clones.
6789         (cgraph_finalize_function): Update call of cgraph_remove_node
6790         (record_call_1): Record call sites.
6791         (cgraph_create_edges): Accept node instead of decl argument.
6792         (error_found): New static variable.
6793         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
6794         (cgraph_analyze_function): Update for new datastructures.
6795         (cgraph_finalize_compilation_unit): Plug memory leak.
6796         (cgraph_optimize_function): Kill.
6797         (cgraph_expand_function): Do not use cgraph_optimize_function.
6798         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
6799         cgraph_inlined_callees): Kill.
6800         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
6801         clones.
6802         (estimate_growth): Simplify.
6803         (cgraph_clone_inlined_nodes): New function.
6804         (cgraph_mark_inline_edge): Re-implement.
6805         (cgraph_mark_inline): Likewise.
6806         (cgraph_check_inline_limits): Simplify.
6807         (cgraph_recursive_inlining_p): New.
6808         (update_callee_keys): Break out from ...
6809         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
6810         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
6811         Likewise.
6812         (cgraph_expand_all_functions):  Remove inline clones from the ordered
6813         list.
6814         (cgraph_preserve_function_body_p): New predicate.
6815         (cgraph_optimize): Verify cgraph.
6816         * function.h (struct function): Add fields saved_tree/saved_args.
6817         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
6818         * toplev.c (rest_of_compilation): Do not free cfun.
6819         * tree-inline.c: Include function.h
6820         (struct inline_data): Add saving_p field; replace decl/current_decl by
6821         node/current_node.
6822         (insert_decl_map): New function.
6823         (copy_body_r): Handle saving; update cgraph datastructure.
6824         (copy_body): Handle recursive inlining.
6825         (initialize_inlined_parameters): Likewise.
6826         (expand_call_inline): Propagate node attributes; update cgraph.
6827         (optimize_inline_calls): Verify that datastructure still match.
6828         (save_body): New function.
6829         * tree-inline.h (save_body): New.
6830         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
6831         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
6832         * langhooks.c (lang_hooks): Add update_decl_after_saving.
6833
6834 2004-04-01  Serge Belyshev  <1319@bot.ru>
6835
6836         PR target/14702
6837         * config/i386/i386.md: fix source operand constraints in
6838         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
6839
6840 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
6841
6842         * fold-const.c (folda): Preserve types of comparisons.
6843
6844 2004-04-01  Richard Henderson  <rth@redhat.com>
6845
6846         * toplev.c (backend_init): Move init_optimization_passes call ...
6847         (lang_dependent_init): ... here.
6848
6849 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
6850             Jakub Jelinek  <jakub@redhat.com>
6851
6852         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
6853         -lgcc --as-needed -lgcc_s --no-as-needed by default.
6854         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
6855         * configure: Rebuilt.
6856         * config.in: Rebuilt.
6857         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
6858         (stage2-start, stage3-start, stage4-start): Likewise.
6859         (stageprofile-start, stagefeedback-start): Likewise.
6860
6861 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
6862
6863         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
6864         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6865         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6866         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6867         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
6868         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
6869         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
6870         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
6871         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
6872         * config/sparc/t-linux: Removed.
6873
6874 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
6875
6876         PR c++/14755
6877         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
6878         "bitfld++ == const" to "++bitfld == const + incr" transformations.
6879
6880 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6881
6882         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
6883         * stor-layout.c (layout_decl): Likewise.
6884         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
6885         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
6886         * print-tree.c (print_node): Handle various used of unsigned_flag.
6887         * tree.def (BIT_FIELD_REF): Update comment.
6888         * tree.h (TREE_UNSIGNED): Deleted.
6889         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
6890
6891 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6892
6893         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
6894         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
6895         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
6896         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
6897         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
6898         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
6899         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
6900         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
6901         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
6902         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
6903         REAL_TYPE, not INTEGER_TYPE.
6904         (layout_type, case VECTOR_TYPE): Simplify code.
6905         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
6906         * tree.h: Update comments.
6907         (STRIP_NOPS): Use TYPE_UNSIGNED.
6908         (TYPE_UNSIGNED): New macro.
6909         (TYPE_TRAP_SIGNED): Remove now redundant check.
6910         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
6911
6912 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6913
6914         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
6915
6916 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
6917
6918         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
6919         Add darwin-fpsave.asm, darwin-vecsave.asm,
6920         and darwin-world.asm.
6921         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
6922         as the asm files contain altivec instructions.
6923         * config/rs6000/darwin-fpsave.asm: New file.
6924         * config/rs6000/darwin-vecsave.asm: New file.
6925         * config/rs6000/darwin-world.asm: New file.
6926
6927 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
6928
6929         * gengtype-yacc.y (option, stringseq): Add missing
6930         terminating semicolon.
6931
6932 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
6933
6934         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
6935         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
6936         tls_dtprel_ha_32, tls_dtprel_ha_64,
6937         tls_dtprel_lo_32, tls_dtprel_lo_64,
6938         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
6939         tls_tprel_ha_32, tls_tprel_ha_64,
6940         tls_tprel_lo_32, tls_tprel_lo_64,
6941         tls_got_tprel_32, tls_got_tprel_64,
6942         tls_tls_32, tls_tls_64): Replace register_operand with
6943         gpc_reg_operand.
6944
6945 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
6946
6947         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
6948         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
6949         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
6950         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
6951         *ctrdi_internal6): Replace register_operand with
6952         nonimmediate_operand.
6953
6954 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
6955
6956         * fold-const.c (fold): Reassociate multiply expression
6957         with an adjacent non-multiply expression to use
6958         architecture's multiply-add instruction.
6959
6960 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
6961
6962         * gengtype.c (create_option): New function.
6963         * gengtype.h: Prototype it.
6964         * gengtype-yacc.y (stringseq): New rule.
6965         (option): Use create_option.  Add new bare ID production.  Use
6966         stringseq, not STRING directly.
6967
6968         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
6969         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
6970         * varray.h, config/alpha/alpha.c:
6971         Use new shorter form of GTY markers.
6972
6973         * doc/gty.texi: Rewrite.
6974
6975 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
6976
6977         * config/darwin.c (machopic_function_base_name):
6978         Remove current_name and getting the name of the
6979         current function.
6980
6981 2004-03-30  Nick Clifton  <nickc@redhat.com>
6982
6983         * config/arm/arm.md (thumb_jump): Reduce the backward branch
6984         range, and increase the forward branch range, to allow for
6985         the fact that the PC will be off by 4.
6986
6987 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
6988
6989         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
6990
6991 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6992
6993         * config/rs6000/rs6000.c (output_vec_const_move):
6994         Find all cases of EASY_VECTOR_15_ADD_SELF.
6995         (easy_vector_constant_add_self): Accept
6996         all vector constant loadable by vsplt* and vadd*.
6997         (easy_vector_same): Use easy_vector_splat_const.
6998         (easy_vector_const): Use easy_vector_splat_const.
6999         (easy_vector_splat_const): New function.
7000         (gen_easy_vector_constant_add_self): New function.
7001
7002         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7003         New prototype.
7004
7005         * config/rs6000/altivec.md (movv4si splitter): Change to
7006         emit move insn with halfed vector constant.
7007         (*movv8hi splitter): Likewise.
7008         (*movv16qi splitter): Likewise.
7009
7010 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7011
7012         PR 11591
7013         * config/rs6000/rs6000.c (rs6000_legitimate_address):
7014         Allow any offset to argument pointer in no-strict case.
7015
7016 2004-03-30  Jan Hubicka  <jh@suse.cz>
7017
7018         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7019         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7020         dump file in non-unit-at-a-time mode.
7021
7022 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
7023
7024         * config/cris/cris.h: Correct #ifdef to test for
7025         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7026         HAVE_AS_MUL_BUG_ABORT_OPTION.
7027
7028 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7029
7030         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7031         the address inside the old RTL.
7032
7033 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
7034
7035         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7036         (struct c_binding, struct c_scope): Add chain_next
7037         attributes to GTY markers.
7038         (struct lang_identifier, struct lang_tree_node): Define
7039         here...
7040         * c-tree.h: ... not here.  No longer need to declare struct
7041         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7042         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
7043         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7044
7045         PR 14734, 11944
7046         * c-decl.c (get_parm_info): If error_mark_node is encountered
7047         in the bindings chain, unbind and discard it; don't abort.
7048
7049 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
7050             Dorit Naishlos <dorit@il.ibm.com>
7051
7052         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7053         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
7054
7055 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
7056
7057         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7058
7059         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7060         (m68hc11_attribute_table): New attribute "page0" to mark a global
7061         variable as being allocated from within page0 section.
7062         (m68hc11_encode_label): New function.
7063         (m68hc11_strip_name_encoding): New function.
7064         (m68hc11_page0_symbol_p): New function.
7065         (m68hc11_indirect_p): Accept global variables marked in page0.
7066         (m68hc11_encode_section_info): Lookup "page0" attribute.
7067
7068         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7069         represents access to page0 variables.
7070
7071         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7072         ("*logicalsi3_silshl16_zext"): Likewise.
7073         ("*ashldi3_const32"): Likewise.
7074         (peephole2 ashift): Likewise.
7075
7076 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7077
7078         * c-tree.h (C_DECL_REGISTER): New.
7079         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7080         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7081         (build_array_ref, c_mark_addressable): Set and use it.
7082         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7083         Allow structures with volatile fields to be declared register.
7084         Don't check TREE_ADDRESSABLE before warning about taking address
7085         of register.
7086         * c-decl.c (finish_decl): Don't allow structures with volatile
7087         fields to be placed in named register.
7088         * doc/trouble.texi: Remove reference to structures with volatile
7089         fields in registers.
7090
7091 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7092
7093         * function.c (thread_prologue_and_epilogue): Move
7094         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7095         before the epilogue.
7096
7097 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7098
7099         * expr.c (store_constructor): Use gen_int_mode to correctly
7100         sign-extend CONST_INT value.
7101
7102 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7103
7104         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7105         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7106         * doc/extend.texi: Likewise.
7107
7108 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7109
7110         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7111           with TYPE_ORIG_SIZE_TYPE.
7112
7113 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7114
7115         PR 14219
7116         * c-typeck.c (build_binary_op): Do not allow comparisons of
7117         vectors.
7118
7119 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7120
7121         * config.gcc: Remove sparc-tti-*.
7122         * config/sparc/pbd.h: Delete.
7123
7124         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7125         * config/sparc/aout.h: Likewise.
7126
7127         * config/sparc/sparc.h: Remove if 0'd code.
7128         * config/sparc/sparc.md (call): Remove if 0'd code.
7129         (call_value): Likewise.
7130         (nonlocal_goto): Likewise.
7131         (unimp_insn): Delete.
7132
7133 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7134
7135         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7136         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7137
7138 2004-03-25  Richard Henderson  <rth@redhat.com>
7139
7140         PR 11527
7141         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7142         rather than later.
7143
7144 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7145
7146         * builtins.c (fold_builtin): Fix error in last change.
7147
7148 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
7149
7150         * config/mips/mips.h: Formatting fix.
7151
7152 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7153
7154         * builtins.def: Add ctype builtins.
7155         * doc/extend.texi: Likewise.
7156
7157 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7158
7159         * builtins.c (fold_builtin): Add new builtin optimizations for
7160         sqrt and/or cbrt.
7161         * fold-const.c (fold): Likewise.
7162
7163 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7164
7165         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7166         (rs6000_sched_groups): New variable.
7167         (processor_target_table): Add power5.
7168         (rs6000_override_options): Set rs6000_sched_insert_nops,
7169         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7170         from rs6000_sched_groups.
7171         (output_cbranch): Use rs6000_always_hint.
7172         (rs6000_variable_issue): Use rs6000_sched_groups.
7173         (rs6000_adjust_cost): Add CPU_POWER5.
7174         (is_microcoded_insn): Use rs6000_sched_groups.
7175         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7176         Return 2 for POWER5 cracked instructions.
7177         (is_cracked_insn): Use rs6000_sched_groups.
7178         (is_branch_slot_insn): Use rs6000_sched_groups.
7179         (rs6000_issue_rate): Add CPU_POWER5.
7180         (rs6000_sched_finish): Use rs6000_sched_groups.
7181         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7182         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7183         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7184         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7185         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7186         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7187         * config/rs6000/power5.md: New file.
7188         * doc/invoke.texi: Add power5 option.
7189
7190 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7191
7192         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7193         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7194         * doc/invoke.texi: Fix a typo.
7195
7196 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7197
7198         PR optimization/9707.
7199         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7200         of recursing if both children are single-valued cases with no
7201         children.
7202
7203 2004-03-25  Paul Brook  <paul@codesourcery.com>
7204
7205         * config/arm/arm.c (vfp_print_multi): Remove.
7206         (arm_output_fldmx): New function.
7207         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7208         (arm_expand_prologue): Update to match.
7209         (arm_get_vfp_saved_size): New Function.
7210         (arm_get_frame_offsets): Use it.
7211         (arm_output_epilogue): Use new functions.
7212
7213 2004-03-24  Richard Henderson  <rth@redhat.com>
7214
7215         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7216         (reg_known_value, reg_known_value_size): Likewise; make static.
7217         (reg_known_equiv_p): Make static.
7218         (clear_reg_alias_info): Update for new indexing.
7219         (get_reg_known_value, set_reg_known_value): New.
7220         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7221         (canon_rtx): Use them.
7222         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
7223         Don't play queer offsetting games with reg_known_value and
7224         reg_known_equiv_p.
7225         (end_alias_analysis): Free reg_known_value with gc.
7226         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7227         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7228         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7229         functions instead.
7230
7231 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7232
7233         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7234         config/i386/mmintrin.h: Update copyright.
7235
7236 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7237
7238         * configure.ac: Add --enable-werror-always (for top level bootstrap
7239         support).
7240         * configure: Regenerate.
7241
7242 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
7243
7244         * objc/objc-act.c (objc_comptypes): Treat comparisons
7245         between 'Class' and '<class> *' as explicitly invalid.
7246
7247 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
7248
7249         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7250         (-fprofile-values): Add enabled with profile-{generate,use}.
7251         (-fvpt): Same.
7252         (-ftracer): Add enabled with profile-use.
7253         (-funit-at-a-time): Add enabled at -O2,-O3.
7254         (-funroll-loops): Add enabled with profile-use.
7255         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
7256         (max-gcse-passes): Mention default.
7257         (max-cse-path-length): Mention default.
7258
7259 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7260
7261         * Makefile.in (STRICT2_WARN): Reorder.
7262         * configure.ac: Check for -Wold-style-definition, and use it
7263         in strict1_warn if it's available.
7264         * configure: Regnerate.
7265
7266 2004-03-24  Paul Brook  <paul@nowt.org>
7267
7268         * config.gcc <arm>: Add --with-abi=
7269         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7270         thumb_far_jump_used): Remove prototypes.
7271         (arm_needs_doubleword_align): Add prototype.
7272         (thumb_compute_initial_elimination_offset): Ditto.
7273         * config/arm/arm.c (arm_get_frame_offsets): New function.
7274         (use_return_insn, output_return_instruction, arm_output_epilogue,
7275         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7276         arm_expand_prologue, thumb_expand_epilogue): Use it.
7277         (arm_abi, target_abi_name, all_arm_abis): New variables.
7278         (arm_override_options): Set them.  Set structure padding for AAPCS.
7279         (arm_return_in_memory): Update ABI check.
7280         (arm_init_cumulative_args): Initialize can_split.
7281         (arm_needs_doubleword_align): New function.
7282         (arm_function_arg): Don't split args after pushing to stack. Handle
7283         doubleword/even reg alignment.
7284         (arm_va_arg): Handle all doubleword aligned args.
7285         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7286         on ABI, not CPU.
7287         (arm_compute_save_reg0_reg12_mask): Fix comment.
7288         (thumb_get_frame_size, thumb_get_frame_size): Remove.
7289         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
7290         value for alignment.
7291         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7292         to match.
7293         (thumb_compute_initial_elimination_offset): New function.
7294         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
7295         unneccessary rounding.
7296         * config/arm/arm.h (target_abi_name): Declare.
7297         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7298         arm_abi_type, ARM_DEFAULT_ABI): Define.
7299         (ARM_FLAG_ATPCS): Remove.
7300         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7301         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7302         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7303         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7304         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7305         Contitionalize on ABI, not CPU.
7306         (struct arm_stack_offsets): Define.
7307         (struct machine_function): Add stack_offsets.  Remove frame_size.
7308         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7309         pushed.
7310         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7311         doubleword alignment.
7312         (THUMB_INITIAL_ELIMINATION_OFFSET,
7313         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7314         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7315         * config/arm/arm.md (align_8): Enable for all targets.
7316         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7317         (ARM_DEFAULT_ABI): Define.
7318         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7319         -mstructure-size-boundary.
7320
7321 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7322
7323         * configure.ac: Check for -Wno-variadic-macros; don't use
7324         -pedantic (in stage 1 or a simple 'make all') unless it's available,
7325         and if it's available, use it.  Also, clean up check for
7326         -Wno-long-long.
7327         * configure: Regenerate.
7328
7329 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7330
7331         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7332         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7333         (MULTILIB_DEFAULTS): Use it.
7334         (MIPS_CPU_STRING_DEFAULT): Remove.
7335         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7336         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
7337         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
7338         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7339         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
7340         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7341         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
7342         accordingly.
7343
7344 2004-03-24  DJ Delorie  <dj@redhat.com>
7345             Richard Sandiford  <rsandifo@redhat.com>
7346
7347         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7348         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7349         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7350         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7351         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7352         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7353         if TARGET_FIX_VR4122.
7354         * config/mips/mips.md (define_attr length): Account for nops inserted
7355         after macc and dmult when using -mfix-vr4122-bugs.
7356         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7357         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7358         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
7359         * config/mips/vr4122-div.S: New file.
7360         * doc/invoke.texi: Document -mfix-vr4122-bugs.
7361
7362 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7363
7364         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7365         (TARGET_MIPS4130): New macro.
7366         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7367         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7368         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7369         with PROCESSOR_R4130.
7370         * config/mips/mips.md (define_attr cpu): Add r4130.
7371         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7372
7373 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7374             Richard Sandiford  <rsandifo@redhat.com>
7375
7376         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7377
7378 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
7379
7380         PR preprocessor/14438
7381         * cpplib.c (do_pragma): Remove line_change call after pragma
7382         handler.
7383
7384 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
7385
7386         * doc/extend.texi (ARM Built-in Functions): Replace with correct
7387         declarations.
7388
7389 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7390
7391         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7392         if flag_unsafe_math_optimizations.
7393         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7394         and TARGET_80387 expand using truncdfsf2_noop pattern.
7395         (truncxfsf2): Likewise using truncxfsf2_noop.
7396         (truncxfdf2): Likewise using truncxfdf2_noop.
7397         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7398
7399 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
7400
7401         * hooks.c (hook_constcharptr_tree_null): New hook.
7402         * hooks.h (hook_constcharptr_tree_null): New prototype.
7403         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7404         * target.h (mangle_fundamental_type): New target hook.
7405         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7406         target hook at rs6000_mangle_fundamental_type.
7407         (rs6000_mangle_fundamental_type): New function.
7408         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7409
7410 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
7411
7412         PR 12267, 12391, 12560, 13129, 14114, 14133
7413         * c-tree.h: Forward declare struct c_binding.  Declare
7414         c_override_bindings_to_false.  Update prototypes.
7415         (struct lang_identifier): Update comments.  Change fields to be
7416         struct c_binding *.
7417         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7418         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7419         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7420         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7421         * c-common.h: Update prototypes.
7422         * c-decl.c (struct c_scope): Update commentary.  Remove names,
7423         names_last, parms, parms_last, tags, and shadowed fields.  Add
7424         bindings and depth fields.
7425         (scope_freelist): Move to more appropriate location.
7426         (c_print_identifier): Update for changes to struct lang_identifier.
7427         (objc_mark_locals_volatile): Update for new bindings structures.
7428         (global_bindings_p): Honor c_override_global_bindings_to_false.
7429         (pushlevel): Rename to push_scope; take no arguments; use the
7430         scope_freelist; initialize scope->depth and check for overflow.
7431         (poplevel): Rename to pop_scope; totally rewritten for new bindings
7432         structures.
7433         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7434         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
7435         Improve some commentary.  Adjust handling of forward parm decls.
7436         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7437         Preserve C_DECL_IN_EXTERNAL_SCOPE.
7438         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
7439         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
7440         decls.  Rewrite for new bindings structures.  Improve commentary.
7441         Eliminate the copy_node call.
7442         (implicit_decl_warning): Use the "diag" idiom (as seen in
7443         locate_old_decl) to reduce code duplication; call locate_old_decl
7444         if appropriate.  Relocate to remove need for forward declaration.
7445         (implicitly_declare): Adjust for new bindings structures.  Kludge
7446         around Objective-C not-really-builtin functions.
7447         (undeclared_variable): Improve diagnostics.  If current_function_decl
7448         is nonnull but current_function_scope is null, use current_scope.
7449         Use bind.
7450         (lookup_tag): Adjust for new bindings structures.  Kludge around
7451         Objective-C's tag declarations that wind up in the external scope.
7452         (lookup_name): Adjust for new bindings structures.  Kludge around
7453         c-common.c's pseudo-typedefs that wind up in the external scope.
7454         (lookup_name_current_level): Rename lookup_name_in_scope; take a
7455         second argument indicating the scope to examine; rewrite for
7456         new bindings structures.
7457         (c_init_decl_processing): Adjust for renamed functions.  Do not
7458         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7459         First scope pushed is the external scope, not the global scope.
7460         (builtin_function): Use bind, not pushdecl.  Adjust other bits
7461         for new data structures.  Keep track of builtins that should be
7462         made visible automatically.
7463         (start_decl): Adjust diagnostics.  Remove unnecessary call to
7464         expand_decl.
7465         (grokparms): Return 0 if arg_types is error_mark_node.
7466         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7467         reversed sense.  Rewrite for new bindings structures.  Do not
7468         leave any decls in the scope, to prevent pop_scope from doing
7469         contradictory things with them.
7470         (finish_struct, finish_enum): Remove redundant diagnostics.
7471         (build_enumerator): Don't cascade diagnostics for error_mark_node.
7472         Mark location where -pedantic changes the meaning of the program.
7473         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7474         parameter decls into the function's scope structure using bind.
7475         Warn here about function definitions in the wrong style.
7476         Adjust diagnostics.
7477         (store_parm_decls): Correct the determination of whether a
7478         function was defined with a prototype.
7479         (c_write_global_declarations): Operate on all file decls and on
7480         the external scope.  Split body of the loop to...
7481         (c_write_global_declarations_1): ... this new function, to avoid
7482         code duplication.
7483         (truly_local_externals, first_builtin_decl, last_builtin_decl)
7484         (make_scope, pop_scope, in_parm_level_p, set_block)
7485         (any_external_decl, record_external_decl, bind_label, getdecls)
7486         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7487         (c_reset_state): Delete.
7488         (visible_builtins, c_override_global_bindings_to_false)
7489         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7490         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7491         (external_scope, binding_freelist, bind, free_binding_and_advance)
7492         (push_file_scope, pop_file_scope): New.
7493         (pushtag, pushdecl_top_level, lookup_label, declare_label)
7494         (define_label, c_make_fname_decl, finish_decl)
7495         (mark_forward_parm_decls, build_compound_literal)
7496         (grokdeclarator, start_function, check_for_loop_decls)
7497         (identifier_global_value, record_builtin_type): Minor adjustments
7498         for new bindings structures.  Improve diagnostics and commentary.
7499         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7500         pushlevel/poplevel respectively.
7501         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7502         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7503         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
7504         correct loop over multiple translation units; call fatal_error if
7505         requested to compile more than one file at once.  (This disables
7506         IMA temporarily - an up-front error being preferable to a crash.)
7507         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7508         (all actions): Adjust calls to pushlevel/poplevel.
7509         (parsing_iso_function_signature): Delete.
7510         (extdef_1): Fold into extdef.
7511         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
7512         warn here about function definitions in the wrong style.
7513         (after_tyle_declarator, parm_declarator_starttypename)
7514         (parm_declarator_nostarttypename, notype_declarator): Remove
7515         commented-out productions.
7516         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7517         an empty TREE_LIST node.  Adjust calls to get_parm_info.
7518         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7519         to suppress -Wold-style-definition after this error.
7520         (c_parse_file): Don't clear the binding stack or call
7521         finish_fname_decls here.  Correct comment.
7522         * c-typeck.c (same_translation_unit_p): Export.
7523         (common_type): Use c_override_global_bindings_to_false, not
7524         pushlevel/poplevel/declare_parm_level.
7525         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
7526         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
7527         and LANG_HOOKS_GETDECLS with do-nothing stubs.
7528         * objc/objc-lang.c: Likewise.
7529         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
7530         get_parm_info.
7531         (OBJC_VOID_AT_END): Delete; replace all uses
7532         with void_list_node.
7533         (generate_forward_declaration_to_string_table): Delete.
7534         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
7535
7536         * coverage.c (create_coverage): Don't pushdecl anything.
7537         * langhooks.c (lhd_clear_binding_stack): Call
7538         lang_hooks.decls.poplevel, not poplevel.
7539         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
7540         circular list rather than going into an infinite loop.
7541
7542 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
7543
7544         * optabs.c (expand_binop): When synthesizing double word rotates
7545         from single word shifts, use a new register target if the provided
7546         target is not a REG already.
7547
7548 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7549
7550         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
7551         * c-common.c (handle_mode_attribute): Add extra arg to
7552         build_pointer_type_for_mode and build_reference_type_for_mode.
7553         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
7554         for INTEGER_CST.
7555         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
7556         Chain pointers via TYPE_NEXT_PTR_TO.
7557         (build_reference_type_for_mode): Similarly.
7558         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
7559         and build_reference_type_for_mode.
7560         (tree_check4_failed): New function.
7561         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
7562         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
7563         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
7564         Add check.
7565
7566 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7567
7568         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
7569         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
7570         when both A and B are nonnegative.
7571         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
7572         nonzero.
7573
7574 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7575
7576         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
7577         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
7578
7579 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7580
7581         PR optimization/14669
7582         * fold-const.c (fold): Only unwiden integer comparisons for equality
7583         and inequality operators, or when the signedness doesn't change.
7584
7585 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
7586
7587         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
7588         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
7589         * config/sparc/t-linux: New file.
7590
7591 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
7592
7593         * gcse.c (can_assign_to_reg_p): New function, split out from...
7594         (want_to_gcse_p): ...here.
7595         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
7596         the rhs of a store.
7597
7598 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
7599
7600         * c-typeck.c (same_translation_unit_p): Fix pasto.
7601
7602 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
7603
7604         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
7605         (PARAM_MAX_SCHED_REGION_INSNS): New.
7606         * sched-rgn.c: Include params.h
7607         (MAX_RGN_BLOCKS): Delete.
7608         (MAX_RGN_INSNS): Delete.
7609         (too_large): Return bool.  Convert to PARAM_VALUE.
7610         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
7611         * doc/invoke.texi (param): Document max-sched-region-blocks and
7612         max-sched-region-insns.
7613
7614 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7615
7616         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
7617         for base types.
7618
7619 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7620
7621         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
7622         change.
7623
7624 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
7625
7626         PR c/14069
7627         * c-decl.c (finish_struct): Change type of incorrect flexible array
7628         field into error_mark_node.
7629
7630 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
7631
7632         PR target/14580
7633         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
7634         who are not local for Darwin PIC.
7635
7636 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
7637
7638         * regrename.c (regrename_optimize): Set regs_ever_live for all
7639         registers introduced as replacement.
7640
7641 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
7642
7643         PR middle-end/14470
7644         * expr.c (mark_queue): New function.
7645         (emit_insns_enqueued_after_mark): New function replacing
7646         emit_queue.  Clear the body of emitted queued insns.
7647         (emit_queue): Call emit_insns_enqueued_after_mark.
7648         (store_expr): Mark the increment queue on entry.  Emit
7649         only the incrementations queued when expanding the source.
7650
7651 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
7652
7653         * configure.ac: Allow --disable-coverage-flags (for the future benefit
7654         of top level bootstrap, and consistency).  Reindent.
7655         * configure: Regenerate.
7656
7657 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
7658
7659         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
7660         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
7661         unnecessary casts.
7662
7663 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
7664
7665         PR target/14291
7666         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
7667         __MINGW32__.
7668
7669 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7670
7671         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
7672         to nonimmediate_operand.
7673         ("*doloop_di"): Likewise.
7674
7675 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
7676
7677         * real.h (struct real_value): Use the same type for all
7678         bitfields.  Rename exp to uexp.
7679         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
7680         Adjust all uses of exp...
7681         * builtins.c: ... here, ...
7682         * emit-rtl.c: ... here, and ...
7683         * real.c: ... and here.
7684
7685 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7686
7687         * pretty-print.c (pp_base_maybe_space): New function.
7688         * pretty-print.h (pp_base_maybe_space): Declare.
7689         (pp_maybe_space): New macro.
7690
7691 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7692
7693         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
7694
7695 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7696
7697         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
7698         of using register multiplication cost.
7699         (expand_mult): Adapt choose_mult_variant call.
7700         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
7701         of MODE; pass appropriate cost bound.  Adjust result when
7702         performing signed multiplication by a negative constant.
7703         Don't use intermediate modes larger than word_mode.
7704
7705 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7706
7707         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
7708         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
7709         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
7710         * explow.c (expr_size): Likewise.
7711         * expr.h (placeholder_list, find_placeholder): Deleted.
7712         * expr.c (store_constructor): Likewise.
7713         (get_inner_reference): Likewise.  Also don't call find_placeholder.
7714         (placeholder_list, find_placeholder): Deleted.
7715         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
7716         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
7717         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
7718         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
7719         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
7720         Likewise.
7721         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
7722         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
7723         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
7724         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
7725         Clean up by using first_rtl_op.
7726         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
7727         (substitute_placeholder_in_expr): New function.
7728         * tree.def (WITH_RECORD_EXPR): Deleted.
7729         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
7730         (substitute_placeholder_in_expr): New.
7731
7732 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
7733
7734         * dojump.c (prefer_and_bit_test): Fix which part of
7735         the and_test is replaced.
7736
7737 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
7738
7739         * frontends.texi: Add missing line.
7740
7741 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
7742             Chris Devers  <cdevers@pobox.com>
7743             Joseph S. Myers  <jsm@polyomino.org.uk>
7744
7745         * doc/frontends.texi: Rewrite.
7746         * doc/gcc.texi: Update last modification date.
7747
7748 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
7749
7750         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
7751         message before redirecting the edge.
7752
7753 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7754
7755         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
7756         flag.
7757         * explow.c (force_not_mem): Set REG_POINTER flag according to
7758         MEM_POINTER one.
7759         * rtl.h (MEM_POINTER): New macro.
7760         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
7761         for MEM_POINTER.
7762
7763 2004-03-20  Roger Sayle  <roger@eyesopen.com>
7764
7765         PR target/13889
7766         * cse.c (fold_rtx): Avoid substituting constants into unary
7767         conversion operations.
7768
7769 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7770
7771         * fold-const.c (fold): Replace "expr" with "t".
7772
7773 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
7774
7775         PR c/12373
7776         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
7777         DECL_ORIGINAL_TYPE if there isn't one.
7778
7779 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7780
7781         * fold-const.c (fold): Replace "final_type" with "type".
7782         Remove variable "final_type".
7783
7784 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7785
7786         * fold-const.c (fold): Constify "type".
7787         Replace "TREE_TYPE (t)" with "type".
7788
7789 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7790
7791         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
7792         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
7793         via (*targetm.foo) () with targetm.foo ().
7794
7795 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
7796
7797         PR other/14630
7798         * doc/install.texi: Add info directory category and entry.
7799
7800 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7801
7802         * fold-const.c (fold): Replace "t" with "tem" where it is used
7803         as a temporary variable.  Remove "orig_t" and all of its uses.
7804
7805 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7806
7807         * fold-const.c (fold): Remove variable "invert".
7808         Move the handling of relational expressions that can be folded
7809         to a constant ...
7810         (fold_relational_const): ... here.
7811         (tree_expr_nonzero_p): New.
7812
7813 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
7814
7815         PR c/14635
7816         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
7817         DEF_GCC_BUILTIN.
7818
7819 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
7820
7821         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
7822         (GTFILES): Add $(srcdir)/dojump.h.
7823         (gt-dojump.h): New dependency.
7824         * dojump.c (and_reg, and_test, shift_test): New static variables.
7825         (prefer_and_bit_test): New function.
7826         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
7827
7828 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7829
7830         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
7831         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
7832         reorg.c, tree.h: Fix comment typos.
7833
7834 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7835
7836         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
7837         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
7838         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
7839         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
7840         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
7841         vmsdbgout.c: Replace calls via (*targetm.foo) () with
7842         targetm.foo ().
7843
7844 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
7845
7846         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
7847         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
7848         always_inline attribute.
7849         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
7850         Treat expansion as completed even if literal argument is
7851         invalid (so that other expansions are not tried in vain).
7852
7853 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7854
7855         * loop-doloop.c (add_test): Replace GEN_INT (0) with
7856         const0_rtx.
7857
7858 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7859
7860         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
7861         ...
7862         (fold_abs_const): ... here.
7863
7864 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7865
7866         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
7867
7868 2004-03-19  Denis Chertykov  <denisc@overta.ru>
7869
7870         PR target/11520
7871         * config/avr/avr.md ("call_insn"): Handle explicit integer
7872         specially.
7873         (call_value_insn): Likewise.
7874
7875 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7876
7877         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
7878
7879 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7880
7881         * fold-const.c (negate_expr): Move the handling of constants
7882         ...
7883         (fold_negate_const): ... here.
7884
7885 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7886
7887         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
7888         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
7889         * tree.c (debug_no_type_hash): Deleted.
7890         (type_hash_canon): Abort if passed a variant.
7891         Check lang_hooks.types.hash_types.
7892         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
7893         (build_array_type): Remove unnecessary allocation of pointer type.
7894         (build_complex_type): Properly qualify resulting type.
7895
7896 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
7897
7898         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
7899
7900 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
7901
7902         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
7903         (expand_mult): ...here.
7904         (extract_high_half): New, split out from expand_mult_highpart.
7905         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
7906         (expand_highpart): Evaluate the cost of a shift/add sequence,
7907         then see if any of the specialized optabs are cheaper.
7908
7909 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
7910
7911         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
7912
7913 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7914
7915         * convert.c (convert_to_real): Add more math builtins.
7916
7917 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7918
7919         * convert.c (convert_to_real): Reformat using switch stmt.
7920
7921 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7922
7923         * c-common.c (pointer_int_sum): Do not complain about using
7924         pointers to pointers-to-members.
7925
7926 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
7927
7928         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
7929         have moved to the target hooks structure".
7930
7931 2004-03-18  James E Wilson  <wilson@specifixinc.com>
7932
7933         * config/mips/mips.md (type): Split move into arith and fmove.  Split
7934         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
7935         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
7936         Likewise.
7937         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
7938         Likewise.
7939         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
7940         rm7_fp_quick): Likewise.
7941         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
7942         rm9k_fquick): Likewise.
7943         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
7944         Likewise.
7945         (ir_sr70_icmp): Delete.
7946
7947 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7948
7949         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
7950         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
7951         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
7952         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
7953         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
7954         Protect with proper check.
7955         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
7956         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
7957         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
7958         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
7959         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
7960         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
7961         not TYPE_FIELDS.
7962         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
7963
7964 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
7965
7966         * gcse.c (eliminate_partially_redundant_loads): Reject change if
7967         dest is set between beginning and current insn.
7968
7969 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7970
7971         * c-decl.c (grokdeclarator): Do not complain about redeclaring
7972         visible "static" identifiers "extern" in a local scope.
7973         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
7974         post-increments/decrements.
7975
7976 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
7977
7978         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
7979         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
7980         (xtensa_va_start): Remove assignment to current_function_arg_words.
7981
7982 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
7983
7984         * alias.c (record_set): Detect the case where a register is assigned
7985         a new value that has the same base term as the old one.
7986
7987 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7988
7989         * doloop.c: Removed.
7990         * loop-doloop.c: New file.
7991         * Makefile.in (doloop.o): Remove.
7992         (loop-doloop.o): New.
7993         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
7994         * cfgloopanal.c (get_loop_level): New function.
7995         * loop-iv.c (iv_number_of_iterations): Handle case when loop
7996         is leaved immediatelly.
7997         * loop.c (strength_reduce): Do not call doloop optimization.
7998         * loop.h (LOOP_BCT): Removed.
7999         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8000         (rest_of_handle_loop2): Call doloop_optimize_loops.
8001         (rest_of_compilation): Test for optimizations moved to
8002         rest_of_handle_loop2.
8003
8004 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
8005
8006         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8007         for mixed mode.
8008         (rs6000_emit_prologue): Ditto.
8009         (rs6000_emit_epilogue): Ditto.
8010         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8011         macro for mixed mode.
8012
8013 2004-03-18  Jan Hubicka  <jh@suse.cz>
8014
8015         * predict.c (propagate_freq): Compute correctly frequency of
8016         EXIT_BLOCK.
8017
8018 2004-03-17  Eric Christopher  <echristo@redhat.com>
8019
8020         * builtins.c (apply_args_size): Use reg_raw_mode.
8021         (apply_result_size): Ditto.
8022
8023 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8024
8025         PR target/14620
8026         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8027
8028 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
8029
8030         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8031         32-bit builds when defaulting to 32-bit.
8032
8033 2004-03-17  Jan Hubicka  <jh@suse.cz>
8034
8035         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8036         array.
8037
8038 2004-03-17  James E Wilson  <wilson@specifixinc.com>
8039
8040         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
8041         (hazard_nop): Change type to nop.
8042         (type): Split arith into arith, shift, slt, clz.  Delete darith.
8043         Fix all uses.  Change arith to multi if more than one insn emitted.
8044         * config/mips/5400.md (ir_vr54_arith): Likewise.
8045         * config/mips/5500.md (ir_vr55_arith): Likewise.
8046         * config/mips/7000.md (rm7_int_other): Likewise.
8047         * config/mips/9000.md (rm9k_int): Likewise.
8048         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
8049
8050 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
8051
8052         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8053         to hold the subtype tree instead of recomputing it several times.
8054
8055 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8056
8057         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8058         CC_INVERT.
8059         * config/mn10300/mn10300.md (cc): Remove "invert".
8060
8061 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8062
8063         * builtins.c (integer_valued_real_p): Add builtin rint.
8064         (fold_builtin): Likewise.
8065         * convert.c (convert_to_real): Likewise.
8066
8067         * convert.c (convert_to_real): Fix typos in `long double'
8068         builtins.
8069
8070 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8071
8072         PR c++/14481
8073         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8074         generated COMPOUND_EXPRs.
8075
8076 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8077
8078         * config/h8300/t-rtems (h8300-*-rtems*): New.
8079
8080 2004-03-16  Eric Christopher  <echristo@redhat.com>
8081
8082         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8083
8084 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8085
8086         * config/i386/i386-protos.h: Add a prototype for
8087         ix86_reverse_condition.
8088         * config/i386/i386.c (ix86_reverse_condition): New.
8089         * config/i386/i386.h (REVERSE_CONDITION): Use
8090         ix86_reverse_condition.
8091         * config/i386/i386.md: Use ix86_reverse_condition instead of
8092         REVERSE_CONDITION.
8093
8094 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8095
8096         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8097
8098 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8099
8100         PR bootstrap/12974
8101         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8102
8103 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8104
8105         * c-common.c (c_common_type_for_mode): Build vector types on
8106         demand.
8107         (handle_mode_attribute): Deprecate using the mode attribute
8108         to create vector types.  Fix indentation.
8109         (vector_type_node_list): Remove.
8110         (handle_vector_size_attribute): Create vector types on demand.
8111         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8112         * c-typeck.c (comptypes): Make vector types compatible if they
8113         have the same underlying mode.
8114         (convert_for_assignment): Use comptypes to convert between
8115         vector types.
8116         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8117         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8118         vector types.
8119         * tree.h: Remove vector types.
8120         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8121         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8122         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8123         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8124         * doc/extend.texi (Vector Types): Document how to use the
8125         vector_size attribute to create vectors, rather than mode.
8126
8127         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8128         * config/i386/emmintrin.h: Likewise.
8129         * config/i386/mmintrin.h: Likewise.
8130         * config/i386/xmmintrin.h: Likewise.
8131         * config/sh/ushmedia.h: Likewise.
8132
8133 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8134
8135         * config/freebsd-spec.h, config/arc/arc-protos.h,
8136         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8137         config/arm/linux-gas.h, config/arm/semi.h,
8138         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8139         config/ia64/freebsd.h, config/mips/7000.md,
8140         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8141         config/sparc/pbd.h: Update copyright.
8142
8143 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8144
8145         PR target/14577
8146         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
8147
8148 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8149
8150         * combine.c (combine_simplify_rtx): Remove the "last"
8151         parameter and its documentation.  Adjust recursive calls.
8152         (simplify_logical): Always perform the only simplification
8153         controlled by "last", if the simplified expression is
8154         actually different.
8155         (try_combine): Do not pass the "last" parameter to
8156         combine_simplify_rtx.
8157
8158 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8159
8160         PR target/14599
8161         * config/mips/mips.md (UNSPEC_GP): New constant.
8162         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8163         an UNSPEC instead of (reg $gp).
8164         (mips16_gp_pseudo_reg): Change accordingly.
8165         (print_operand): Print $gp directly when handling CONST_GP_P.
8166
8167 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8168
8169         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8170         * longlong.h: Make code 68060 clean when compiling for m68060.
8171
8172 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8173
8174         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8175         * doc/md.texi: Clarify description of "i" constraint.
8176
8177 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8178
8179         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8180         Split store into store, fpstore, fpidxstore.  Fix all uses.
8181         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8182         Likewise.
8183         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8184         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8185         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8186         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8187         ir_sr70_fstore): Likewise.
8188
8189 2004-03-15  Richard Henderson  <rth@redhat.com>
8190
8191         PR middle-end/14535
8192         * except.c (collect_one_action_chain): Record action for cleanup
8193         outer of exception spec.
8194
8195 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8196
8197         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8198         Fix the check for abort and only do the mmap if we can.
8199
8200 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8201
8202         * config/sparc/sparc.h: Rework comments about the code model
8203         in 64-bit environment and the mode 'Pmode'.
8204         * doc/invoke.texi (SPARC options): Rework description of the
8205         different code models supported in 64-bit environment.
8206
8207 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8208
8209         * defaults.h (REVERSIBLE_CC_MODE): Define.
8210         * jump.c (reversed_comparison_code_parts): Don't check if
8211         REVERSIBLE_CC_MODE is defined.
8212
8213 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8214
8215         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8216         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8217         hosthooks.h, params.h, ra-colorize.c, web.c,
8218         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8219         config/avr/avr-protos.h, config/avr/avr.md,
8220         config/fr30/fr30-protos.h, config/fr30/fr30.md,
8221         config/h8300/fixunssfsi.c, config/i386/darwin.h,
8222         config/i386/freebsd.h, config/i386/freebsd64.h,
8223         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8224         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8225         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8226         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8227         config/pa/pa64-regs.h, config/rs6000/aix41.h,
8228         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8229         config/sparc/aout.h, config/sparc/freebsd.h,
8230         config/sparc/litecoff.h, config/vax/vax-protos.h,
8231         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8232         copyright.
8233
8234 2004-03-15  Paul Brook  <paul@codesourcery.com>
8235
8236         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8237
8238 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8239
8240         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8241         (pp_c_cv_qualifier): Document.
8242         (pp_c_space_for_pointer_operator): Likewise.
8243         (pp_c_integer_constant): Likewise.
8244         (pp_c_identifier): Likewise.
8245         (pp_c_init_declarator): Don't print function body.
8246
8247 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8248
8249         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8250         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8251         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8252         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
8253         wording and grammar.
8254
8255 2004-03-14  Roger Sayle  <roger@eyesopen.com>
8256
8257         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8258         with lang_hooks.foo ().
8259         * builtins.c (expand_builtin_va_arg): Likewise.
8260         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8261         c_common_type_for_mode, c_common_nodes_and_builtins,
8262         handle_mode_attribute, handle_vector_size_attribute): Likewise.
8263         * c-convert.c (convert): Likewise.
8264         * c-format.c (check_format_types): Likewise.
8265         * c-objc-common.c (c_tree_printer): Likewise.
8266         * c-typeck.c (build_unary_op, build_conditional_expr,
8267         build_binary_op): Likewise.
8268         * calls.c (try_to_integrate, expand_call,
8269         emit_library_call_value_1): Likewise.
8270         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8271         Likewise.
8272         * cgraphunit.c (record_call_1, cgraph_analyze_function,
8273         cgraph_expand_function): Likewise.
8274         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8275         * coverage.c (build_fn_info_type, build_ctr_info_type,
8276         build_gcov_info, create_coverage): Likewise.
8277         * dbxout.c (dbxout_init): Likewise.
8278         * diagnostic.c (diagnostic_report_current_function): Likewise.
8279         * dojump.c (do_jump): Likewise.
8280         * dwarf2out.c (dwarf2_name): Likewise.
8281         * except.c (init_eh): Likewise.
8282         * explow.c (expr_size, int_expr_size): Likewise.
8283         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8284         Likewise.
8285         * expr.c (store_expr, store_constructor, safe_from_p,
8286         expand_expr_real, do_store_flag, try_casesi): Likewise.
8287         * function.c (push_function_context_to, pop_function_context_from,
8288         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8289         put_var_into_stack, allocate_struct_function, current_function_name):
8290         Likewise.
8291         * integrate.c (copy_decl_for_inlining, expand_inline_function):
8292         Likewise.
8293         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8294         lhd_print_error_function): Likewise.
8295         * opts.c (handle_option, decode_options): Likewise.
8296         * passes.c (open_dump_file): Likewise.
8297         * print-tree.c (print_node): Likewise.
8298         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8299         expand_decl_cleanup, emit_case_nodes): Likewise.
8300         * stor-layout.c (variable_size): Likewise.
8301         * toplev.c (announce_function, wrapup_global_declarations,
8302         check_global_declarations, compile_file, default_tree_printer,
8303         process_options, lang_dependent_init, finalize): Likewise.
8304         * tree-dump.c (dequeue_and_dump): Likewise.
8305         * tree-inline.c (remap_decl, remap_block, copy_body_r,
8306         initialize_inlined_parameters, declare_return_variable,
8307         inlinable_function_p, expand_call_inline, optimize_inline_calls,
8308         walk_tree, copy_tree_r): Likewise.
8309         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8310         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8311         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8312         variably_modified_type_p, dump_tree_statistics): Likewise.
8313         * varasm.c (assemble_variable, compare_constant, copy_constant,
8314         force_const_mem, compute_reloc_for_constant, output_constant,
8315         output_addressed_constants, initializer_constant_valid_p): Likewise.
8316
8317 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
8318
8319         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8320
8321 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
8322
8323         * doc/install.texi: Reflect autoconf and automake version for
8324         libffi. Update autoconf version to 2.59.
8325
8326 2004-03-13  Roger Sayle  <roger@eyesopen.com>
8327
8328         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8329         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8330         make_range, build_range_check, fold_range_test, unextend,
8331         constant_boolean_node, fold_binary_op_with_conditional_arg,
8332         fold_truthop, fold_mathfn_compare, fold_inf_compare,
8333         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8334         with lang_hooks.foo ().
8335
8336 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
8337
8338         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8339
8340 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
8341
8342         * doc/install.texi: Note status of -fnew-ra.
8343
8344 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8345
8346         PR middle-end/14470
8347         * expr.c (store_expr): Call emit_queue before generating the move
8348         from the temporary to the original target.  Protect the temporary
8349         from emit_queue.
8350
8351 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
8352
8353         PR target/14533
8354         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8355         other than UNSPEC_GOTOFF.
8356
8357 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
8358
8359         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
8360         to arm_legitimate_index_p.  Update all callers with SET as default
8361         value.
8362         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
8363         range if OUTER is a sign-extend operation on QImode.  Correctly
8364         reject shift operations on sign-extended QImode addresses.
8365         (bad_signed_byte_operand): Delete.
8366         (arm_extendqisi_mem_op): New function.
8367         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
8368         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
8369         constraints.
8370         (CONSTRAINT_LEN): New.
8371         (EXTRA_CONSTRAINT): Delete.  Replace with...
8372         (EXTRA_CONSTRAINT_STR): ... this.
8373         (PREDICATE_CODES): Remove bad_signed_byte_operand.
8374         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
8375         is now always default.
8376         (define_splits for bad sign-extend loads): Delete.
8377         (arm_extendqisi, arm_extendqisi_v5): Likewise.
8378         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8379         Rework 'U' constraint to 'Uv'.
8380         * arm-protos.h: Remove bad_signed_byte_operand.  Add
8381         arm_extendqisi_mem_op.
8382         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8383         Add Uq constraint.
8384
8385 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
8386
8387         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8388         with targetm version.
8389
8390         PR target/14567
8391         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8392         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8393         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8394         Update all users of RS6000_ARG_SIZE.
8395         (function_arg_advance): Count fregno using mode size.
8396         (function_arg): Handle long double split over regs and memory.
8397         (function_arg_partial_nregs): Likewise.
8398         (rs6000_va_arg): Repackage complex args.
8399
8400 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
8401
8402         PR target/14047
8403         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8404         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8405         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8406
8407 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
8408
8409         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8410         prototype.
8411         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8412         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8413
8414 2003-03-12  Andrew Pinski  <apinski@apple.com>
8415
8416         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8417         Use ret instead of result. Use addr instead of base.
8418
8419 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
8420
8421         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8422         fixes required by libstdc++ and update installation instructions
8423         for libstdc++.a.
8424
8425 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
8426
8427         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8428         leading '@' on fastcall symbols before stripping suffix.
8429
8430 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8431
8432         * combine.c (unmentioned_reg_p): New function to check whether an
8433         expression is a "specialization" of another, i.e. that there are
8434         no registers or memory references mentioned in the first that don't
8435         appear in the second.
8436         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8437         (combine_instructions): Also try combining instructions using the
8438         REG_EQUAL note from a preceding log-linked instruction.
8439
8440 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8441
8442         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8443
8444 2004-03-12  Matt Austern  <austern@apple.com>
8445
8446         * target.h (struct gcc_target): New target hook, unwind_label.
8447         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8448         * output.h (default_emit_unwind_label): New function.
8449         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8450         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8451         (TARGET_SUPPORTS_HIDDEN): New target macro.
8452         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8453         that corresponds to this FDE.
8454         (FRAME_BEGIN_LABEL): Allow target to override default label.
8455         (output_call_frame_info): If FDEs are linknonce, then use extra
8456         indirection for FDE encoding, output a label for each FDE, and
8457         output an empty label for each function without an FDE.
8458         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8459         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8460         decls with DECL_ONE_ONLY set, if that macro is defined.
8461         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8462         for a SUPPORTS_ONE_ONLY target.
8463         * config/darwin-protos.h (darwin_unique_section): Declare.
8464         (darwin_asm_named_section): Likewise.
8465         (darwin_section_type_flags): Likewise.
8466         (darwin_non_lazy_pcrel): Likewise.
8467         (darwin_emit_unwind_label): Likewise.
8468         (darwin_make_decl_one_only): Likewise.
8469         * config/darwin.c (machopic_finish): Get rid of tweak that
8470         eliminate stubs for symbols that are defined.
8471         (darwin_encode_section_info): Don't treat weak functions as defined.
8472         (darwin_make_decl_one_only): Define.
8473         (darwin_asm_named_section): Likewise.
8474         (darwin_section_type_flags): Likewise.
8475         (darwin_unique_section): Likewise.
8476         (darwin_emit_unwind_label): Likewise.
8477         (darwin_non_lazy_pcrel): Likewise.
8478         (darwin_asm_output_dwarf_delta): Difference between two labels is
8479         local only if both labels are local.
8480         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8481         (ASM_MAKE_LABEL_LINKONCE): Likewise.
8482         (TARGET_SUPPORTS_HIDDEN): Likewise.
8483         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8484         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8485         (FRAME_BEGIN_LABEL): Likewise.
8486         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8487         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8488         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8489         (TARGET_ASM_UNIQUE_SECTION): Define.
8490         (EH_FRAME_SECTION_NAME): Define.
8491         (EH_FRAME_SECTION_ATTR): Likewise.
8492         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8493         (TARGET_ASM_NAMED_SECTION): Likewise.
8494         (TARGET_SECTION_TYPE_FLAGS): Likewise.
8495         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8496         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8497         TARGET_ASM_EMIT_UNWIND_LABEL.
8498
8499 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8500
8501         * builtins.c (expand_builtin_mathfn): Add pow10* to the
8502         existing exp10* case.
8503         (expand_builtin): Likewise.
8504
8505 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
8506
8507         * doc/tm.texi (registers) <Values in Registers>: Add
8508         entry for REGMODE_NATURAL_SIZE.
8509
8510 2004-03-12  Richard Henderson  <rth@redhat.com>
8511
8512         PR target/14547
8513         * target.h (struct gcc_target): Move calls substructure before
8514         booleans.  Add split_complex_arg.
8515         * function.c (assign_parms, split_complex_args): Use it.
8516         * calls.c (expand_call): Likewise.
8517         (split_complex_values): Likewise.  Check for splittable types
8518         before allocating memory.
8519         (split_complex_types): Likewise.
8520         * system.h (SPLIT_COMPLEX_ARGS): Poison.
8521         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
8522         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
8523         * config/alpha/alpha.c (alpha_split_complex_arg): New.
8524         (TARGET_SPLIT_COMPLEX_ARG): New.
8525         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
8526         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
8527         (rs6000_override_options): Zap it for non-AIX.
8528         (rs6000_function_value): Use targetm.calls.split_complex_arg.
8529         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
8530         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
8531         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
8532         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
8533         SPLIT_COMPLEX_ARGS entry.
8534
8535 2004-03-11  Richard Henderson  <rth@redhat.com>
8536
8537         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
8538         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
8539         (alpha_emit_xfloating_arith): Update to match.
8540         (alpha_emit_xfloating_compare): Likewise.
8541         (alpha_emit_xfloating_cvt): Likewise.
8542         (alpha_emit_xfloating_libcall): Take already built symbol,
8543         mark call const.
8544         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
8545         op1 in a register.
8546
8547 2004-03-11  Richard Henderson  <rth@redhat.com>
8548
8549         PR target/14539
8550         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
8551
8552         * simplify-rtx.c (simplify_relational_operation): Fix typo.
8553
8554 2004-03-11  Richard Henderson  <rth@redhat.com>
8555
8556         PR middle-end/14477
8557         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
8558
8559 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8560
8561         PR target/14262
8562         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
8563         defined, pass small BLKmode values in registers in the low-order part.
8564
8565 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8566
8567         * combine.c (if_then_else_cond): Check for NULL return value of
8568         simplify_gen_subreg.
8569
8570 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8571
8572         PR target/14496
8573         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
8574         TARGET_SINGLE_FLOAT.
8575
8576 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
8577
8578         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
8579         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
8580         * config/ia64/ia64.c (ia64_init_libfuncs): New.
8581         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
8582
8583 2004-03-11  Roger Sayle  <roger@eyesopen.com>
8584
8585         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
8586         -((int)X>>C) where C is an integer constant one bit less than the
8587         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
8588         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
8589
8590         * simplify-rtx.c (simplify_unary_operation): Also implement the
8591         above transformations at the RTL level.
8592
8593 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
8594
8595         * real.c (encode_ibm_extended): Do round low word.
8596
8597 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
8598
8599         * config/arm/arm.md (is_xscale): Comment this attribute and move
8600         it a bit further up in the file, closer to related attributes.
8601
8602 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
8603
8604         * config/host-solaris.c (sol_gt_pch_use_address): Add
8605         missing terminating marker to comment.
8606
8607 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8608
8609         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
8610         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
8611         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
8612         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
8613         move_operand as source predicate in all cases.
8614         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
8615         Test reg_or_0_operand.  Use move_operand as source predicate.
8616         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
8617         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
8618         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
8619         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
8620         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
8621         Use move_operand as source predicate.  Remove 'K' constraint.
8622         (*movqi_internal): Likewise movqi_internal.
8623         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
8624         reg_or_0_operand.  Use move_operand as source predicate.
8625         (*movsf_softfloat): Likewise movsf_internal2.
8626         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
8627         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
8628         (*movdf_softfloat): Likewise movdf_internal2.
8629         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
8630         for DImode if !TARGET_64BIT.
8631         (mips_legitimize_move): Simplify accordingly.
8632
8633 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8634
8635         PR/14362
8636         * var-tracking.c (struct variable_def): Added field refcount.
8637         (variable_htab_free): Decrease the refcount and delete variable
8638         only if there are no more references.
8639         (unshare_variable): New function.
8640         (vars_copy_1): Increase refcount instead of copying the variable.
8641         (variable_union): Share the variables where possible, unshare
8642         the variables if needed.
8643         (variable_different_p): Return false if var1 and var2 are
8644         the same structure.
8645         (variable_was_changed): Init the refcount of new variable.
8646         (set_frame_base_location): Unshare variable if needed.
8647         (set_variable_part): Init the refcount of new variable.
8648         Unshare the variables if needed.
8649         (delete_variable_part): Unshare the variables if needed.
8650         (emit_notes_for_differences_1): Init the refcount of new variable.
8651         (vt_add_function_parameters): Do not add function parameters to
8652         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
8653         (vt_initialize): Do not add frame_base_decl to IN set of
8654         ENTRY_BLOCK_PTR because it is unused anyway.
8655
8656 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8657
8658         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
8659         (vars_copy): Likewise.
8660         (variable_union): Likewise.
8661         (set_variable_part): Likewise.
8662         (delete_variable_part): Likewise.
8663
8664 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
8665
8666         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
8667         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
8668         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
8669         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
8670         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
8671         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
8672         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
8673         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
8674         config/stormy16/stormy16.c: Fix comment typos and formatting.
8675
8676 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
8677
8678         * configure: Regenerate, since I forgot to while committing Paolo's
8679         changes.
8680
8681 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
8682
8683         PR ada/14131
8684         Move language detection to the top level.
8685         * configure.ac: Remove code to detect languages,
8686         it now lives exclusively in the top level.
8687         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
8688         top level, renamed to ACX_PROG_GNAT.
8689
8690 2004-03-10  Richard Henderson  <rth@redhat.com>
8691
8692         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
8693         extra arguments.
8694         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
8695         and host_xmake_file fragments.
8696         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
8697         (gt_pch_restore): Similarly for gt_pch_use_address.
8698         (default_gt_pch_get_address): New.
8699         (mmap_gt_pch_get_address): Split out of gt_pch_save.
8700         (default_gt_pch_use_address): Split out of gt_pch_restore.
8701         (mmap_gt_pch_use_address): Likewise.
8702         * hooks.c (hook_voidp_size_t_null): Remove.
8703         (hook_bool_voidp_size_t_false): Remove.
8704         * hooks.h: Likewise.
8705         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
8706         default_ or mmap_ definitions.
8707         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
8708         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
8709         and gt_pch_use_address.
8710         * config/host-linux.c, config/host-solaris.c: New files.
8711         * config/x-linux, config/x-solaris: New files.
8712         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
8713         Update for changed definition.
8714         (darwin_rs6000_gt_pch_use_address): Likewise.
8715         * doc/hostconfig.texi: Update docs.
8716
8717 2004-03-10  Richard Henderson  <rth@redhat.com>
8718
8719         PR c/14517
8720         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
8721         except for pedantic c90 mode.
8722
8723 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
8724
8725         * configure.ac: Bump AC_PREREQ to 2.59.
8726         * configure: Regenerate.
8727
8728 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
8729
8730         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
8731         (exp10_optab, exp2_optab): Define corresponding macros.
8732         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
8733         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
8734         using exp10?f2 and exp2?f2 patterns.
8735         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
8736         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
8737         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
8738         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8739
8740         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
8741         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
8742         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
8743
8744 2004-03-10  Anthony Green  <green@redhat.com>
8745
8746         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
8747
8748 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8749
8750         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
8751         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
8752         __LONGDOUBLE128.
8753         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
8754         TARGET_OS_AIX_CPP_BUILTINS.
8755         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
8756         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
8757         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
8758         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
8759         previous change.
8760
8761 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8762
8763         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
8764
8765 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8766
8767         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8768         __LONGDOUBLE128 on AIX.
8769
8770 2004-03-10  Andrew Haley  <aph@redhat.com>
8771
8772         PR optimization/14381
8773         * function.c (expand_function_end): Emit a blockage insn before
8774         the epilogue when -fnon-call-exceptions is used.
8775
8776         * except.c (expand_start_all_catch): Make comment more accurate.
8777
8778 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8779
8780         PR target/14480
8781         * config/rs6000/t-rtems: Add missing file on branch.
8782
8783 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
8784
8785         * dbxout.c (dbxout_symbol_location): Do not output references
8786         to optimized-out constant pool symbols.
8787
8788 2004-03-10  Andreas Schwab  <schwab@suse.de>
8789
8790         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
8791         twon34_r.
8792
8793 2004-03-09  James E Wilson  <wilson@specifixinc.com>
8794
8795         * alias.c (alias_sets_might_conflict_p): New.
8796         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
8797         * common.opt (Wstrict-aliasing=): New.
8798         * flags.h (warn_strict_aliasing): Change type to int.
8799         * opts.c (warn_strict_aliasing): Change type to int.
8800         (common_handle_option): Handle OPT_Wstrict_aliasing_.
8801         * tree.h (alias_sets_might_conflict_p): Declare it.
8802         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
8803
8804 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
8805
8806         PR bootstrap/12371
8807         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
8808         (CALL_USED_REGISTERS): Likewise.
8809         (REG_CLASS_CONTENTS): Likewise.
8810         (REG_ALLOC_ORDER): New.
8811         (REGNO_REG_CLASS): Use regno_reg_class.
8812         * config/m68k/m68k.c: Add regno_reg_class array.
8813
8814 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
8815
8816         * config/ia64/ia64.md (divsi3): Fix algorithm.
8817           (udivsi3): Ditto.
8818           (setf_exp_xf): Remove '*' from name.
8819         * testsuite/gcc.dg/20040309-1.c: New test.
8820
8821 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
8822
8823         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
8824         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
8825         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
8826         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
8827         (sparc_aout_select_rtx_section): Don't check
8828         SUNOS4_SHARED_LIBRARIES.
8829         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
8830
8831 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
8832
8833         PR other/14474
8834         * doc/md.texi (Pattern Ordering, Dependent Patterns)
8835         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
8836         INTERNALS".
8837
8838 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
8839
8840         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
8841         (LIBGCC_SPEC): Update to match.
8842
8843 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
8844
8845         * c-decl.c (last_function_parms, last_function_parm_tags)
8846         (last_function_parm_others, current_function_parms)
8847         (current_function_parm_tags, current_function_parm_others):
8848         Delete.
8849         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
8850         New macros.
8851         (grokdeclarator): For function definitions, save the arg-info
8852         block from the declarator in DECL_ARGUMENTS.
8853         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
8854         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
8855         contains only PARM_DECLs.  Improve diagnostics.
8856         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
8857         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
8858         (store_parm_decls_newstyle): Take the function to operate on,
8859         and an arg-info block, as arguments; don't get anything from
8860         current_function_* globals.
8861         (store_parm_decls_oldstyle): Likewise.
8862         (store_parm_decls): Pass fndecl and its arg-info block down to
8863         store_parm_decls_newstyle/oldstyle.  Send functions with empty
8864         argument lists through store_parm_decls_newstyle to reduce
8865         overhead.
8866         (pushdecl): Comment on the problems with the call to copy_node.
8867         Clear DECL_ARGUMENTS of the old node after copying it, if it
8868         is an arg-info block instead of a chain of decls.
8869         (start_function): Do not manipulate current_function_parm* or
8870         last_function_parm*.
8871
8872 2004-03-09  Roger Sayle  <roger@eyesopen.com>
8873             Andrew Pinski  <pinskia@physics.uc.edu>
8874
8875         * ifcvt.c (noce_try_sign_mask): New function to transform
8876         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
8877         (noce_process_if_block): Call noce_try_sign_mask.
8878
8879 2004-03-09  Andrew Pinski  <apinski@apple.com>
8880
8881         * c-typeck.c (tagged_types_tu_compatible_p):
8882         Fix typo.
8883
8884 2004-03-09  Roger Sayle  <roger@eyesopen.com>
8885
8886         * simplify-rtx.c (simplify_const_relational_operation): New function
8887         renamed from simplify_relational_operation.
8888         (simplify_relational_operation): Change prototype to accept an
8889         additional mode argument.  Call simplify_const_relational_operation.
8890         (simplify_gen_relational): Update simplify_relational_operation call.
8891         (simplify_ternary_operation): Update simplify_relational_operation
8892         subroutine call to use simplify_const_relational_operation instead.
8893
8894         * rtl.h (simplify_const_relational_operation): Prototype here.
8895         (simplify_relational_operation): Add addtional mode argument.
8896
8897         * combine.c (combine_simplify_rtx): Update calls to
8898         simplify_relational_operation.
8899         (simplify_set): Likewise.
8900         (gen_binary): Likewise.
8901         * cse.c (fold_rtx): Likewise.
8902         * dojump.c (compare_from_rtx): Likewise.
8903         (do_compare_rtx_and_jump): Likewise.
8904         * integrate.c (subst_constants): Likewise.
8905         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
8906
8907 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
8908
8909         * config/m32r/m32r.md: Remove all define_peephole's.
8910
8911 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
8912
8913         * config/rs6000/rs6000.md: Remove trailing whitespace.
8914
8915 2004-03-08  Eric Christopher  <echristo@redhat.com>
8916
8917         * Makefile.in (site.exp): Add libiconv variable definition.
8918
8919 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
8920
8921         * configure: Regenerate for config/accross.m4 correction.
8922
8923 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8924
8925         PR target/14480
8926         * config/rs6000/t-rtems: Add missing file on branch.
8927
8928 2004-03-08  Roger Sayle  <roger@eyesopen.com>
8929
8930         PR middle-end/14289
8931         * c-typeck.c (c_mark_addressable): A register variable should
8932         be considered global if its not automatic, i.e. TREE_PUBLIC,
8933         TREE_STATIC or DECL_EXTERNAL.
8934         * function.c (put_var_into_stack): Call abort when placing a
8935         hard register into the stack, if x_parm_reg_stack_loc is NULL.
8936
8937 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
8938
8939         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
8940         ("*extendqisi2_short_displ"): Likewise.
8941
8942 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
8943
8944         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
8945         (comp_operator): Likewise.
8946         * config/pdp11/pdp11-protos.h: Remove corresponding
8947         prototypes.
8948
8949 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
8950
8951         * expr.c (highest_pow2_factor_for_type): Rename into
8952         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
8953         TYPE_ALIGN when the target is a COMPONENT_REF.
8954         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
8955
8956 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8957
8958         * config/rs6000/rs6000.c: Formatting fix.
8959         (legitimate_offset_address_p): Correct offset range check.
8960
8961         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
8962         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
8963         and MASK_STRING.
8964
8965 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8966
8967         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
8968         for little endian.
8969         ("ashrdi3_no_power"): Disable for little endian.
8970         (ashrdi3): Same.
8971
8972 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8973
8974         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
8975         builtins.
8976
8977 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
8978
8979         PR target/14471
8980         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
8981         case, checking for -no-mul-bug-abort option.
8982         * configure, config.in: Regenerate.
8983         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
8984         and -mno-mul-bug-workaround.
8985         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
8986         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
8987         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
8988         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
8989         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
8990         sure mulu.d is not last on cache-line.
8991         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
8992         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
8993         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
8994         (TARGET_SWITCHES): New options -mmul-bug-workaround and
8995         -mno-mul-bug-workaround.
8996         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
8997         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
8998         * config/cris/cris.c (cris_operand_extend_operator): Clarify
8999         relation to MULT in head comment.
9000         (cris_op_str): Abort for MULT.
9001         (cris_print_operand) <case '!'>: New case.
9002
9003 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9004
9005         PR debug/11983
9006         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9007         dw_val_class_vec.  Replace use throughout file.
9008         (dw_float_const): Delete.
9009         (dw_vec_const): New.
9010         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
9011         throughout file.
9012         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
9013         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
9014         (size_of_die): Adjust dw_val_class_vec sizing.
9015         (output_die): Output dw_val_class_vec.
9016         (insert_int, extract_int, insert_float): New functions.
9017         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9018         Handle CONST_VECTOR.
9019         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9020
9021 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9022
9023         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9024         AltiVec abi cannot co-exist.
9025
9026         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9027
9028 2004-03-07  Jan Hubicka  <jh@suse.cz>
9029
9030         * except.c (emit_to_new_bb_before):  Break fallthru edges.
9031
9032 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
9033
9034         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9035         ("*lshrsi3"): Also accept an immediate for 68HC12.
9036         ("*ashrsi3_const"): Likewise.
9037         ("*ashrsi3"): Likewise.
9038         ("*ashlsi3_const"): Likewise.
9039         ("*ashlsi3"): Likewise.
9040         ("cmphi_1_hc12"): Compare two hard register by pushing them and
9041         comparing with a pop; don't use a split for that.
9042         ("cmphi split"): Disable compare split for 68HC12.
9043
9044         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
9045         the status operands if they have side effects.
9046
9047 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
9048
9049         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
9050         definition.
9051         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
9052         config/h8300/h8300.h, config/ia64/ia64.h,
9053         config/mcore/mcore.h, config/mmix/mmix.h,
9054         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9055         config/stormy16/stormy16.h, config/v850/v850.h,
9056         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9057         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9058         definition.
9059
9060 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9061
9062         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9063         <XOR_EXPR>: Fold x ^ x as zero.
9064         <AND_EXPR>: Fold x & x as x.
9065
9066 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9067
9068         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9069         "foo++ == const" into "++foo == const+incr".
9070
9071 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9072
9073         * config/mips/mips.c (mips_in_small_data_p): Return false if
9074         TARGET_ABICALLS.
9075
9076 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9077
9078         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9079         the stack register.
9080         (expand_prologue): Don't make an interrupt or a trap handler a far
9081         symbol.
9082         (m68hc11_initial_elimination_offset): Likewise.
9083
9084 2004-03-06  Richard Henderson  <rth@redhat.com>
9085
9086         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9087
9088 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9089
9090         * config/ns32k/ns32k-protos.h: Add a prototype for
9091         ns32k_notice_update_cc.
9092         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9093         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9094         ns32k_notice_update_cc.
9095
9096 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9097
9098         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9099         "*load_multiple_si"): Allow only if reload_completed.
9100         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9101         Likewise.
9102
9103 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9104
9105         * config/vax/vax-protos.h: Add a prototype for
9106         vax_notice_update_cc.
9107         * config/vax/vax.c (vax_notice_update_cc): New.
9108         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9109         vax_notice_update_cc.
9110
9111 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9112
9113         * collect2.c (main): Only export initfunc and finifunc if
9114         LD_INIT_SWITCH not defined.
9115         (scan_prog_file): Only export constructors and destructors if
9116         LD_INIT_SWITCH not defined.  Only export symbols not found in
9117         shared objects.
9118
9119 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9120
9121         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9122         last.
9123         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9124         from calls to gen_icacheflush.
9125
9126 2004-03-06  Richard Henderson  <rth@redhat.com>
9127
9128         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9129         (TARGET_LONG_DOUBLE_128): New.
9130         (TARGET_SWITCHES): Add long-double-{128,64}.
9131         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9132         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9133         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9134         (WIDEST_HARDWARE_FP_SIZE): New.
9135         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9136         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9137         if TARGET_VAX_FLOAT.
9138         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9139         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9140
9141 2004-03-06  Richard Henderson  <rth@redhat.com>
9142
9143         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9144         botched rtx class conversion.
9145
9146 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9147
9148         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9149         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9150
9151         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9152         macros.
9153         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9154
9155 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9156
9157         PR target/14343
9158         * config/i386/i386.md (movv2di_internal): Conditionalize on
9159         TARGET_SSE, not TARGET_SSE2.
9160
9161 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9162
9163         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9164         duplicated line.
9165
9166 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9167
9168         * builtins.c: Consistently use logN not log* in comments.
9169
9170 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9171
9172         * rtl.h (mem_expr_equal_p): Function prototype added.
9173         * cfgcleanup.c (merge_memattrs): New function.
9174         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9175         * emit-rtl.c (mem_expr_equal_p): New function.
9176
9177 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9178
9179         * objc/objc-act.c (synth_module_prologue): Const-qualify
9180         objc_selector type if using the GNU runtime; fix generated
9181         signatures for objc_msg_lookup and objc_msg_lookup_super
9182         to match what GNU ObjC headers provide; reformat and clean up.
9183         (synth_self_and_ucmd_args): Use previously constructed (and
9184         hence possibly const-qualified) objc_selector type.
9185
9186 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9187
9188         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9189
9190 2004-03-05  Jason Merrill  <jason@redhat.com>
9191
9192         * tree.h (TYPE_HASH): Use TYPE_UID.
9193         (TREE_HASH): New macro with old definition of TYPE_HASH.
9194         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9195         (build_array_type, build_function_type): Likewise.
9196         (build_method_type_directly): Likewise.
9197         (build_offset_type, build_complex_type): Likewise.
9198         (type_hash_list, attribute_hash_list): Likewise. Now static.
9199         * except.c: s/TYPE_HASH/TREE_HASH/.
9200
9201 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9202
9203         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9204         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
9205         __va_ndx by 2 words when referencing an argument on the stack.
9206         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
9207         words when an arg on the stack is first seen.
9208
9209 2004-03-05  Paul Brook  <paul@codesourcery.com>
9210
9211         * arm.h (ARM_FLAG_VFP): Remove.
9212         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9213         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9214
9215 2004-03-05  Paul Brook  <paul@codesourcery.com>
9216
9217         * function.c (assign_parms): Include pretend alignment offset.
9218
9219 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9220
9221         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9222         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9223
9224 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
9225
9226         * configure.ac: When passing --enable-languages to subdir
9227         configure when host != build, make sure we don't pass an empty
9228         value.
9229         * configure: Regenerate.
9230
9231 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
9232
9233         PR 13577
9234         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9235         options.
9236
9237 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9238
9239         * simplify-rtx.c (simplify_relational_operation): If
9240         flag_wrapv is set, do not move terms between the two
9241         side of a relational operator.
9242
9243 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9244
9245         * rtlanal.c: Include target.h and output.h
9246         (rtx_cost, address_cost, default_address_cost): Move from...
9247         * cse.c (rtx_cost, address_cost, default_address_cost):
9248         ... this file.
9249         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9250         * Makefile.in: Adjust dependencies.
9251
9252 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
9253
9254         * cse.c (cse_end_of_basic_block): Make static.
9255         * local-alloc.c (function_invariant_p): Move to
9256         reload1.c.
9257         * loop.c (libcall_other_reg, record_excess_regs):
9258         Make static.
9259         * reload1.c (function_invariant_p): Moved here
9260         from local-alloc.c, made static.
9261         * rtl.h (cse_end_of_basic_block, function_invariant_p,
9262         libcall_other_reg, record_excess_regs): Remove
9263         declarations.
9264
9265 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9266
9267         * config/m32r/m32r.c (signed_comparison_operator): Add a
9268         missing parenthesis.
9269
9270 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
9271
9272         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9273         going to call mmap again.  Read the file into the right place.
9274         Give a fatal error if we have to relocate.
9275
9276 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
9277
9278         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9279         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9280
9281 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
9282
9283         PR other/14354
9284         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9285         round the same.  When rounding, clear bits that would cause a
9286         second rounding in pack_d.
9287         (_fpmul_parts): Ditto.  Remove #if 0:d code.
9288
9289 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
9290
9291         PR c++/14425, c++/14426
9292         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9293         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9294         Change C++ definitions to accept a 'const int' argument;
9295         the prototypes already do.
9296         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9297         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9298         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9299         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9300         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9301         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9302         end in ..._int; change them to accept an int instead of a char
9303         as the last parameter.
9304
9305 2004-03-04  Phil Edwards  <phil@codesourcery.com>
9306
9307         * genmultilib:  Change '=' to '-' when translating option names
9308         to directory names.
9309
9310 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9311
9312         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9313         stack slot for temp used for result of BLKmode but in integral mode.
9314
9315 2004-03-04  Jan Hubicka  <jh@suse.cz>
9316
9317         * reload.c (find_reloads): Reorganize if seqeunce to switch.
9318
9319         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
9320         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
9321
9322 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
9323
9324         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9325         * testsuite/gcc.dg/20040303-1.c: New test.
9326
9327 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9328
9329         * ppro.md: Rewrite as a DFA pipeline description.
9330         * i386.md: Remove all uses of the ppro_uops attribute.
9331         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9332         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9333         ix86_sched_reorder, ix86_variable_issue,
9334         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9335         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9336         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9337         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9338         * athlon.md (athlon_ssecmp_load): Fix comment
9339
9340 2004-03-04  Stuart Hastings  <stuart@apple.com>
9341
9342         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9343
9344 2004-03-04  Stuart Hastings  <stuart@apple.com>
9345
9346         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9347         686, tell Darwin assembler to allow prefetch insns, non-empty def
9348         of SUBTARGET_OPTION_TRANSLATE_TABLE.
9349
9350 2004-03-04  DJ Delorie  <dj@redhat.com>
9351
9352         PR optimization/14282
9353         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9354         between a call and the assignment of its return value.
9355
9356 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9357
9358         * config/h8300/h8300.c: Put a comment for every function.
9359
9360 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9361
9362         * config/h8300/h8300.md: Add comments about peephole2's.
9363
9364 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9365
9366         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9367
9368 2004-03-04  Jan Hubicka  <jh@suse.cz>
9369
9370         * cfgcleanup.c (thread_jump): Update call of cselib_init.
9371         * cselib.c (cselib_record_memory): New static variable.
9372         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9373         Give up on memories when asked for.
9374         (cselib_init): Accept new argument.
9375         * cselib.h (cselib_init): Update prototype.
9376         * gcse.c (local_cprop_pass): Update call of cselib_init.
9377         * loop.c (load_mems): Update call of cselib_init.
9378         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9379         * sched-deps.c (sched_analyze): Update call of cselib_init.
9380
9381 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9382             GP <gp@qnx.com>
9383
9384         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9385         when compiling PIC.
9386
9387 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
9388
9389         PR/14362
9390         * var-tracking.c (track_expr_p): Do not track variables which
9391         should be ignored for debugging purposes.
9392
9393 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9394
9395         * real.c (encode_ibm_extended): Don't bother rounding low double.
9396         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9397         when fmt->pnan < fmt->p.
9398
9399 2004-03-04  Eric Christopher  <echristo@redhat.com>
9400
9401         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9402         only range of valid arg registers and fixed_regs.
9403
9404 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9405
9406         PR target/14406
9407         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9408         (abstf2, abstf2_internal): New define_expand.
9409
9410 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9411
9412         PR optimization/14235
9413         * expr.c (convert_move): Copy the source to a new pseudo
9414         when converting from a sub-word source to a larger-than-word
9415         register which conflicts with the source.
9416
9417 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
9418
9419         PR 13728
9420         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9421         parameters with the same name, unless one is a forward decl.
9422         Do not issue a redundant-redeclaration warning for forward
9423         decls of parameters.
9424
9425 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9426
9427         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9428         configuration.
9429
9430 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
9431
9432         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9433
9434 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9435
9436         * target-def.h (TARGET_OPTF): Delete.
9437         * c-opts.c (TARGET_OPTF): Define.
9438
9439 2004-03-04  Jan Hubicka  <jh@suse.cz>
9440
9441         * cselib.c (cselib_finish): Fix another miss-application of my previous
9442         patch.
9443
9444 2004-03-03  Mike Stump  <mrs@apple.com>
9445
9446         Add framework support for darwin.
9447
9448         * c-incpath.c: Include target.h and machmode.h.
9449         (add_path): Use a consistent style for cpp_dir.  Initialize
9450         p->construct to 0.
9451         (add_cpp_dir_path): New.
9452         (register_include_chains): Add use of extra_includes callback.
9453         (hook_void_int): Add.
9454         (target_c_incpath): Add.
9455         * c-incpath.h (add_cpp_dir_path): New.
9456         (target_c_incpath_s): Add.
9457         (target_c_incpath): Add.
9458         (C_INCPATH_INIT): Add.
9459         * c-opts.c (c_common_missing_argument,
9460         c_common_handle_option): Add -F argument processing.
9461         * c.opt: Add -F argument processing.
9462         * gcc.c (trad_capable_cpp): Add -F argument processing.
9463         * cppfiles.c (find_file_in_dir): Update to use construct
9464         callback.
9465         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9466         cpp_get_prev): New.
9467         (_cpp_find_file): Use search_path_exhausted.
9468         (make_cpp_dir): Initialize construct to 0.
9469         * cpplib.h (missing_header_cb
9470         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9471         (cpp_callbacks): Add missing_header
9472         (cpp_dir): Add construct.
9473         * target-def.h: (TARGET_OPTF): New.
9474         * hooks.c (hook_void_int, hook_void_charptr): Add.
9475         * hooks.h (hook_void_int, hook_void_charptr): Add.
9476         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9477         $(MACHMODE_H) dependencies.
9478         * doc/invoke.texi (Darwin Options): Document -F.
9479         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9480         (TARGET_OPTF): Add.
9481         * fix-header.c (target_c_incpath): Add.
9482
9483         * config/darwin-c.c: Add c-incpath.h include.
9484         (using_frameworks, find_subframework_file,
9485         find_subframework_header, add_system_framework_path,
9486         frameworks_in_use, num_frameworks, max_frameworks,
9487         add_framework, find_framework, struct framework_header,
9488         framework_header_dirs, framework_construct_pathname,
9489         find_subframework_file, add_system_framework_path,
9490         add_framework_path, framework_defaults,
9491         darwin_register_frameworks, find_subframework_header): Add.
9492         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9493         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9494         (CPP_SPEC): Add __APPLE_CC__ support.
9495         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9496
9497 2004-03-04  Jan Hubicka  <jh@suse.cz>
9498
9499         * cselib.c (cselib_finish): Fix miss-application of my previous
9500         patch.
9501
9502 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9503
9504         * hooks.c (hook_tree_tree_identity): New.
9505         * hooks.h: Add a prototype for hook_tree_tree_identity.
9506         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9507         instead of MD_ASM_CLOBBERS.
9508         * system.h (MD_ASM_CLOBBERS): Poison.
9509         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9510         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9511         * target.h (gcc_target): Add md_asm_clobbers.
9512         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9513         (ix86_md_asm_clobbers): New.
9514         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9515         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9516         TARGET_MD_ASM_CLOBBERS.
9517
9518 2004-03-03  Stuart Hastings  <stuart@apple.com>
9519
9520         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
9521
9522 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9523
9524         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
9525
9526         * config/sparc/sparc.h (ASM_FLOAT): Delete.
9527         (ASM_DOUBLE): Likewise.
9528         (ASM_LONGDOUBLE): Likewise.
9529         * config/sparc/pbd.h (ASM_INT_OP): Delete.
9530
9531 2003-03-03  Richard Henderson  <rth@redhat.com>
9532
9533         PR opt/13862
9534         * cselib.c (cselib_record_sets): Don't record multiple sets in
9535         asm insns.
9536
9537 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
9538
9539         * common.opt: Add description of the new -fgcse-after-reload flag.
9540
9541         * flags.h (flag_gcse_after_reload): Declaration of global variable.
9542
9543         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
9544         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
9545         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9546         get_bb_avail_insn, hash_scan_set_after_reload,
9547         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
9548         gcse_after_reload, get_bb_avail_insn): New functions to implement
9549         gcse-after-reload.
9550         (gcse_after_reload_main): New function, the main entry point to
9551         gcse-after-reload.
9552
9553         * rtl.h (gcse_after_reload_main): Declaration of the new function.
9554
9555         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
9556
9557         * toplev.c (flag_gcse_after_reload): Initialization.
9558
9559         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
9560
9561         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9562         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
9563         the gcse after reload optimization.
9564
9565         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9566         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
9567         parameters.
9568
9569         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
9570
9571 2004-03-03  Nicolas Pitre <nico@cam.org>
9572
9573         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
9574         small negative values.
9575
9576 2004-03-03  Jan Hubicka  <jh@suse.cz>
9577
9578         * cselib.c (hash_table):  Remove GTY marker.
9579         (reg_values): Turn into array.
9580         (used_regs): Likewise.
9581         (n_used_regs): New static variable.
9582         (reg_values_old): Kill.
9583         (clear_table): Update uses of arrays.
9584         (cselib_lookup): Likewise.
9585         (cselib_record_set): Likewise.
9586         (cselib_init): Likewise.
9587         (cselib_finish): Likewise.
9588         (cselib_udpate_varray_sizes): Kill.
9589         * cselib.h (cselib_update_varray_sizes): Kill.
9590
9591 2004-03-03  Paul Brook  <paul@codesourcery.com>
9592
9593         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
9594
9595 2004-03-03  Jan Hubicka  <jh@suse.cz>
9596
9597         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
9598         Rename from ...; make statistics transparent.
9599         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
9600         (loc_descriptor): New structure.
9601         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
9602         add_statistics):
9603         New static function.
9604         (ggc_record_overhead, dump_statistics): New global function.
9605         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9606         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
9607         from ...; accept locations
9608         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9609         ggc_realloc, ggc_alloc_typed):  ... this one.
9610         from ...; accept locations
9611         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
9612         ggc_alloc_stat): Rename from ... ; pass locations
9613         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
9614         ... this one.
9615         (ggc_alloc_stat): Record overehead.
9616         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9617         ggc_realloc, ggc_alloc_typed):  Turn to macros
9618         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9619         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
9620         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
9621         * langhooks.h (lhd_make_node): Declare.
9622         (LANG_HOOKS_MAKE_TYPE): Default to new function,
9623         * langhooks.c (lhd_make_node): New.
9624         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
9625         locations.
9626         (rtx_alloc, swallow_copy_rtx): ... this one.
9627         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
9628         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
9629         * toplpev.c (finalize): Dump stats.
9630         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
9631         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9632         Rename from ... ; pass locators.
9633         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9634         build?,  build_decl): Declare.
9635         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
9636         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9637         Declare.
9638         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9639         build?,  build_decl): New macros.
9640         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
9641         * statistics.h: New file.
9642
9643 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9644             Richard Sandiford  <rsandifo@redhat.com>
9645
9646         * config/mips/mips.h (MASK_FIX_SB1): Bump.
9647         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
9648         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
9649         * config/mips/mips.c (mips_output_division): Fill the branch delay
9650         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
9651         TARGET_FIX_R4400.
9652         (mips_output_division): Adjust accordingly.
9653         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
9654         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
9655
9656 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
9657
9658         * alias.c (rtx_equal_for_memref_p): Use predicates
9659         to test rtx classes and new rtx class codes, possibly
9660         splitting conditionals that tested against '<' and 'o'.
9661         * caller-save.c (save_call_clobbered_regs): Likewise.
9662         * combine.c (contains_muldiv, find_split_point, subst,
9663         combine_simplify_rtx, simplify_if_then_else,
9664         simplify_set, simplify_logical, expand_compound_operation,
9665         make_compound_operation, if_then_else_cond, known_cond,
9666         apply_distributive_law, cached_nonzero_bits,
9667         cached_num_sign_bit_copies, simplify_shift_const,
9668         gen_binary, simplify_comparison, update_table_tick,
9669         record_value_for_reg, get_lsat_value_validate): Likewise.
9670         * cse.c (mention_regs, find_best_addr, find_comparison_args,
9671         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
9672         Likewise.
9673         * emit-rtl.c (copy_insn_1): Likewise.
9674         * expr.c (force_operand): Likewise.
9675         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
9676         * flow.c (notice_stack_pointer_modification_1,
9677         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
9678         and_reg_cond, elim_reg_cond): Likewise.
9679         * function.c (update_epilogue_consts): Likewise.
9680         * genattrtab.c (attr_rtx_1): Likewise.
9681         * genopinit.c (gen_insn): Likewise.
9682         * integrate.c (subst_constants): Likewise.
9683         * jump.c (reversed_comparison_code_parts,
9684         reversed_comparison_code, delete_related_insns,
9685         rtx_renumbered_equal_p): Likewise.
9686         * local-alloc.c (block_alloc): Likewise.
9687         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
9688         canonicalize_condition): Likewise.
9689         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
9690         Likewise.
9691         * optabs.c (add_equal_node, expand_binop): Likewise.
9692         * predict.c (estimate_probability): Likewise.
9693         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
9694         * recog.c (validate_replace_rtx_1, comparison_operator,
9695         offsettable_address_p, constrain_operands): Likewise.
9696         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
9697         Likewise.
9698         * regclass.c (scan_one_insn): Likewise.
9699         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
9700         * regrename.c (kill_autoinc_value): Likewise.
9701         * reload.c (find_reusable_reload, find_reloads,
9702         reg_overlap_mentioned_for_reload_p): Likewise.
9703         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
9704         * rtl.c (copy_rtx): Likewise.
9705         * rtl.h (CONSTANT_P, INSN_P): Likewise.
9706         * rtlanal.c (commutative_operand_precedence): Likewise.
9707         * sched-deps.c (conditions_mutex_p): Likewise.
9708         * sched-rgn.c (is_cfg_nonregular): Likewise.
9709         * simplify-rtx.c (simplify_gen_binary,
9710         simplify_gen_relational, simplify_replace_rtx,
9711         simplify_unary_operation, simplify_binary_operation,
9712         simplify_ternary_operation, simplify_rtx): Likewise.
9713         * unroll.c (reg_dead_after_loop): Likewise.
9714         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
9715         print_operand): Likewise.
9716         * config/arc/arc.c (proper_comparison_operator): Likewise.
9717         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
9718         Likewise.
9719         * config/avr/avr.c (_reg_unused_after): Likewise.
9720         * config/frv/frv.c (frv_ifcvt_modify_tests,
9721         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
9722         * config/i386/i386.c (ix86_comparison_operator,
9723         ix86_carry_flag_operator, fcmov_comparison_operator,
9724         arith_or_logical_operator, print_operand,
9725         ix86_expand_binary_operator, ix86_binary_operator_ok):
9726         Likewise.
9727         * config/i386/i386.md: Likewise.
9728         * config/ia64/ia64.c (not_postinc_memory_operand,
9729         ia64_print_operand, update_set_flags, errata_emit_nops):
9730         Likewise.
9731         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
9732         CONSTRAINT_OK_FOR_S): Likewise.
9733         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
9734         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
9735         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
9736         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
9737         Likewise.
9738         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
9739         eqne_comparison_operator, signed_comparison_operator):
9740         Likewise.
9741         * config/mips/mips.c (cmp_op, symbolic_expression_p):
9742         Likewise.
9743         * config/mmix/mmix (mmix_foldable_comparison_operator,
9744         mmix_comparison_operator): Likewise.
9745         * config/pa/pa.c (hppa_legitimize_address): Likewise.
9746         * config/rs6000/rs6000.c (stmw_operation,
9747         branch_comparison_operator, trap_comparison_operator,
9748         ccr_bit): Likewise.
9749         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
9750         * config/s390/s390.c (s390_alc_comparison,
9751         s390_slb_comparison):L Likewise.
9752         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
9753         Likewise.
9754         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
9755         noov_compare_op, noov_compare64_op, v9_regcmp_op,
9756         emit_hard_tfmode_operation, reg_unused_after)
9757         * doc/md.texi, doc/rtl.texi: Likewise.
9758
9759         * ra-debug.c: Add 2004 to list of copyright years.
9760         * unroll.c: Likewise.
9761
9762         * combine.c (simplify_logical): Remove dummy test,
9763         (apply_distributive_law): Fix typo in comment.
9764         GET_CODE (x) == AND so x is a commutative binary op.
9765         * jump.c (delete_related_insns): simplify loop
9766         condition, move testing of RTX codes inside the loop.
9767         (rtx_renumbered_equal_p): do not use RTX_CODE.
9768         * rtl.c (rtx_class): Declare as enum rtx_class.
9769         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
9770         Move to RTX_COMM_COMPARE class.
9771         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
9772         Move to RTX_CONST_OBJ class.
9773         * rtl.h (enum rtx_class): New declaration,
9774         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
9775         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
9776         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
9777         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
9778         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
9779         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
9780         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
9781         OBJECT_P): New macros.
9782         * config/sparc/sparc.c (noov_compare_op): Remove register
9783         from parameter.
9784
9785 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9786
9787         * target.h: Remove texi jargons in comments.
9788
9789 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9790
9791         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
9792         threshold to 0x4f.
9793
9794         Revert:
9795         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9796         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
9797         as well.
9798         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
9799         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
9800
9801 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9802
9803         * doc/md.texi (cbranchmode4): New.
9804
9805 2004-03-02  Eric Christopher  <echristo@redhat.com>
9806
9807         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
9808         fix_trunc.
9809         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
9810         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
9811         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
9812         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
9813
9814 2004-03-02  Richard Henderson  <rth@redhat.com>
9815
9816         PR middle-end/11767
9817         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
9818         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
9819         before the compare, if flag_non_call_exceptions.
9820
9821 2004-03-02  Richard Henderson  <rth@redhat.com>
9822
9823         PR middle-end/14327
9824         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
9825         emitting the label, not after.
9826
9827 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9828
9829         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
9830         (m68hc11_mov_addr_mode): Likewise.
9831         (m68hc11_override_options): Initialize them based on target.
9832         (register_indirect_p): Allow a MEM for indirect addressing modes and
9833         use flags to control what is allowed.
9834         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
9835         supported addressing modes.
9836         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
9837         (go_if_legitimate_address_internal): Likewise.
9838         (m68hc11_indirect_p): Likewise and check the mode.
9839         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
9840
9841 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9842
9843         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
9844         (expand_builtin_setjmp_setup): Use
9845         targetm.builtin_setjmp_frame_value instead of
9846         BUILTIN_SETJMP_FRAME_VALUE.
9847         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
9848         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
9849         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9850         * target.h (gcc_target): Add builtin_setjmp_frame_value.
9851         * targhooks.c (default_builtin_setjmp_frame_value): New.
9852         * targhooks.h: Add a prototype for
9853         default_builtin_setjmp_frame_value.
9854         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
9855         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9856
9857 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9858
9859         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
9860         sequences of moves.
9861         (add peepholes): New peepholes to optimize sequences adding small
9862         constants.
9863         (bset peepholes): New peepholes to transform an OR in a bset form
9864         (bclr peepholes): Likewise for bclr form.
9865         (cmp peepholes): New peepholes to avoid register copies when comparing.
9866
9867 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9868
9869         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
9870         to separate push from moves.
9871         ("*pushdf_internal"): Likewise.
9872         ("*pushsf_internal"): Likewise.
9873         ("*pushsi_internal"): Likewise.
9874         ("movdi_internal"): Use define_insn_and_split; non push operand.
9875         ("movdf_internal"): Likewise.
9876         ("movsf_internal"): Likewise.
9877         ("movsi_internal"): Likewise.
9878         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
9879         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
9880         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
9881
9882 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9883
9884         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
9885         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
9886         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
9887         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
9888         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
9889         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
9890         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
9891         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
9892         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
9893         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
9894         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
9895
9896 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9897
9898         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
9899         (SOFT_XY_REGNUM): Define.
9900         (cmp split): Use the above instead of hard coded numbers.
9901         (8-bit op split): No need to check the mode; allow Q_REG.
9902         (ashift split): Adjust the first operand if it uses the SP and we
9903         are pushing the shifted value.
9904         (plus shift split): Fix when a source is in register D+X.
9905         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
9906
9907 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9908
9909         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
9910         comparing with Z register.
9911
9912 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9913
9914         * cfgloop.h (struct loop_desc): Removed.
9915         (struct loop): Fields simple, desc and has_desc removed.
9916         (simple_loop_p, count_loop_iterations): Declaration removed.
9917         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
9918         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
9919         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
9920         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
9921         simple_loop_exit_p, variable_initial_value, variable_initial_values,
9922         simple_condition_p, simple_increment, count_strange_loop_iterations,
9923         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
9924         Removed.
9925         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
9926
9927 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9928
9929         * genattrtab.c: Don't handle MATCH_INSN.
9930         * genrecog.c: Likewise.
9931         * gensupport.c: Likewise.
9932         * rtl.def (match_insn): Remove.
9933         * doc/md.texi (match_insn, match_insn2): Remove.
9934
9935 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
9936
9937         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
9938         macro results in memory allocation.
9939
9940 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
9941
9942         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
9943         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
9944         %(fbsd_dynamic_linker),
9945         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
9946         config/i386/freebsd.h
9947         * config/arm/freebsd.h: Ditto.
9948         * config/i386/freebsd.h: Ditto.
9949         * config/i386/freebsd64.h: Ditto.
9950         * config/ia64/freebsd.h: Ditto.
9951         * config/rs6000/sysv4.h: Ditto.
9952         * config/sparc/freebsd.h: Ditto.
9953
9954 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
9955
9956         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
9957
9958 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9959
9960         * rtl.def (define_combine): Remove.
9961
9962 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9963
9964         * config/h8300/h8300.md: Tweak formatting.
9965
9966 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9967
9968         * config/h8300/h8300.md (*cmphi_h8300): Rename to
9969         *cmphi_h8300_znvc.
9970         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
9971
9972 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
9973
9974         PR bootstrap/14356
9975         * gcc.c (process_command): Remove const-qualification from argv.
9976         (main): Likewise.
9977
9978 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9979
9980         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
9981         pushqi1_h8300hs_advanced.  Adjust its caller.
9982         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
9983         Adjust its caller.
9984
9985 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
9986
9987         * Makefile.in (install-libgcc, install-multilib): Pass
9988         mkinstalldirs var to libgcc.mk.
9989
9990 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9991
9992         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
9993         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
9994
9995 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9996
9997         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
9998         * config/h8300/h8300.md: Split several peephole2's, each into
9999         two.
10000
10001 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10002
10003         * dominance.c (recount_dominator): Handle postdominators.
10004
10005 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10006
10007         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10008         (NUM_SYMBOL_TYPES): Likewise.
10009         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10010         (mips_unspec_address): Declare.
10011         (mips_gotoff_page, mips_gotoff_global): Delete.
10012         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10013         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10014         (mips_symbolic_constant_p, mips_symbolic_address_p)
10015         (mips_symbol_insns): Handle new symbol types.
10016         (general_symbolic_operand): New predicate.
10017         (mips_unspec_address): Make extern.
10018         (mips_gotoff_page, mips_gotoff_global): Delete.
10019         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10020         Handle new symbol types.
10021         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10022         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10023         mips_unspec_address directly.
10024         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10025         the documentation of -mexplicit-relocs.
10026
10027 2004-03-01  Jeff Law  <law@redhat.com>
10028
10029         * fold-const.c (fold): An equality comparison of a non-weak object
10030         against zero has a known result.  Similarly an equality comparison
10031         of the address of two non-weak, unaliased symbols has a known result.
10032
10033         * ggc-page.c (struct page_entry): New field PREV.
10034         (ggc_alloc): Update PREV field appropriately.
10035         (sweep_pages): Likewise.
10036         (ggc_free): Likewise.  Use PREV field rather than loop to
10037         improve ggc_free performance.
10038
10039 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10040
10041         * config/mips/mips.c (mips_output_division): Use the division
10042         instruction to fill the delay slot of a zero check.
10043         (mips_idiv_insns): Adjust accordingly.
10044
10045 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
10046
10047         * config.gcc: Create a default tmake_file for linux, and use
10048         it in all but two linux clauses.  Comment those two.
10049
10050 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
10051
10052         * combine.c (try_combine):  Do not refer to is_replaced.
10053         (gen_lowpart_for_combine):  Perverse subregs now have a
10054         more politically correct name.
10055         * cse.c (cse_insn): Likewise.
10056         * jump.c: Fix bogus reference to delete_insn.
10057
10058 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
10059
10060         PR debug/14328
10061         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10062         constants as signed values.
10063
10064         PR middle-end/13448
10065         * c-tree.h (readonly_warning): Rename to ...
10066         (readonly_error): ... this.
10067         * c-typeck.c (build_unary_op): Adjust accordingly.
10068         (readonly_warning): Rename to ...
10069         (readonly_error): ... this and issue errors, not warnings.
10070         (build_modify_expr): Call readonly_error, not readonly_warning.
10071         (c_expand_asm_operands): Likewise.
10072         * tree-inline.c (optimize_inline_calls): Do not inline functions
10073         after errors have occurred.
10074
10075 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10076
10077         * configure.ac: Rearrange some threading code for clarity;
10078         add section comment.
10079         * configure: Regenerate.
10080
10081 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10082
10083         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10084         typos.
10085         * doc/cppopts.texi: Fix a typo.
10086
10087 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10088
10089         * config/i386/i386.md: Fix formatting.
10090
10091 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10092
10093         * configure.ac: Add some comments delineating sections of code.
10094
10095         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10096
10097         * doc/install.texi: Fix idiot typo in previous commit.
10098
10099         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10100
10101 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10102
10103         * config/h8300/h8300.md: Add comments about peephole2's.
10104
10105 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10106
10107         * config/h8300/h8300.md: Tweak operand numbers of some
10108         peephole2's.
10109
10110 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10111
10112         * config/h8300/h8300.md: Tweak comments about peephole2's.
10113
10114 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10115
10116         PR middle-end/14203
10117         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10118         instead of testing whether DECL_RTL is not NULL.
10119
10120 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10121
10122         * config/sh/sh.c: Fix formatting.
10123
10124 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10125
10126         * config/sh/sh.c: Convert to ISO-C.
10127
10128 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10129
10130         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10131         my previous patch.
10132
10133         * config/darwin.h (machopic_finish): Output stub even if the
10134         symbol is already defined.
10135
10136 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10137
10138         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10139
10140 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10141
10142         * genattr.c (main): Don't define
10143         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10144         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10145         (DFA_PIPELINE_INTERFACE): Likewise.
10146         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10147         (DFA_PIPELINE_INTERFACE): Likewise.
10148
10149 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
10150
10151         * config/mips/mips.md (tstsi, tstdi): Delete.
10152
10153 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10154
10155         * config/mips/mips.c (override_options): Remove an obsolete
10156         duplicate definition of the "e" constraint.
10157         * config/mips/mips.h: Update a comment accordingly.
10158
10159 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10160
10161         * config/mips/mips.md: Complete the unfinished R4000
10162         multiply/shift errata workaround.  Improve documentation.
10163         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10164         has a hilo hazard.
10165         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10166         (muldi3, muldi3_internal): Likewise.
10167         (muldi3_internal2): Remove, replacing with...
10168         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10169         (mulsidi3): Take the errata into account.
10170         (mulsidi3_32bit): Remove, replacing with...
10171         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10172         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10173         (umulsidi3): Take the errata into account.
10174         (umulsidi3_32bit): Remove, replacing with..
10175         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10176         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10177         TARGET_FIX_R4000.
10178         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10179         (smuldi3_highpart, umuldi3_highpart): Likewise.
10180         * doc/invoke.texi: Document the errata workaround.
10181
10182 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10183
10184         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10185         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10186         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10187         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10188         * config/mips/mips.c (mips_idiv_insns): New function.
10189         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10190         (mips_output_division): Add a workaround for the R4000 divide/shift
10191         errata.
10192         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10193         the length of an "idiv" instruction.
10194         * doc/invoke.texi: Document the new switches.
10195
10196 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10197
10198         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10199         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10200
10201 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10202
10203         PR optimization/14229
10204         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10205
10206 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10207
10208         * fold-const.c (fold): Strip NOPs that change the signedness
10209         for RSHIFT too.  Expand comment.
10210
10211 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
10212
10213         PR optimization/7871
10214         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10215         from or to call insns.
10216
10217 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10218
10219         PR optimization/7871
10220         * flow.c (propagate_one_insn): Interpret calls as setting global
10221         registers, not merely clobbering them.
10222
10223 2004-02-27  Dale Johannesen  <dalej@apple.com>
10224
10225         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
10226         config/darwin-protos.h:  Ditto.
10227         config/darwin.h:  Remove call to it.
10228         * combine.c (distribute_notes): Do not place a REG_DEAD note
10229         when value is both set and used.
10230
10231 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10232
10233         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10234         as well.
10235         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10236         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10237
10238 2004-02-27  Andrew Pinski  <apinski@apple.com>
10239
10240         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10241         Speedup common case of the type values being in the same order.
10242
10243 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
10244
10245         * config/ia64/ia64.h (no-inline-float-divide): New option.
10246         * config/ia64/ia64.h (no-inline-int-divide): New option.
10247         * config/ia64/ia64.h (no-inline-sqrt): New option.
10248         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10249         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10250         * config/ia64/ia64.c (ia64_override_options): Modify error
10251         checking for inlined division/sqrt.
10252
10253 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10254
10255         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10256         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10257         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10258         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10259         copyright.
10260
10261 2004-02-27  Paul Brook  <paul@codesourcery.com>
10262
10263         * function.c (assign_parms): Don't count pretend args for alignment.
10264
10265 2004-02-27  Richard Henderson  <rth@redhat.com>
10266
10267         * passes.c: New file.
10268         * Makefile.in (OBJS-common): Add it.
10269         * diagnostic.c (rtl_dump_and_exit): Move decl ...
10270         * flags.h (rtl_dump_and_exit): ... here.
10271         * output.h (size_directive_output, last_assemble_variable_decl):
10272         Move from toplev.c.
10273         * rtl.h (reg_alloc): Move from toplev.c.
10274         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10275         struct dump_file_info, enum dump_file_index, dump_file_tbl,
10276         open_dump_file, close_dump_file, rest_of_decl_compilation,
10277         rest_of_type_compilation, rest_of_handle_final,
10278         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10279         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10280         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10281         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10282         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10283         rest_of_handle_tracer, rest_of_handle_if_conversion,
10284         rest_of_handle_if_after_combine, rest_of_handle_web,
10285         rest_of_handle_branch_prob,
10286         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10287         rest_of_handle_addressof, rest_of_handle_sibling_calls,
10288         rest_of_handle_jump_bypass, rest_of_handle_inlining,
10289         rest_of_handle_null_pointer, rest_of_handle_combine,
10290         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10291         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10292         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10293         (decode_d_option): Use enable_rtl_dump_file.
10294         (compile_file, finalize, do_compile): Move profile+combine+graph
10295         cleanup to finish_optimization_passes.
10296         * toplev.h (init_optimization_passes, finish_optimization_passes,
10297         enable_rtl_dump_file): Declare.
10298
10299 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
10300             Roger Sayle  <roger@eyesopen.com>
10301
10302         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
10303         operands to build a tree with swapped operands.
10304         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10305         'unsignedp' predicate to specify the signedness.
10306
10307 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10308
10309         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10310         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10311         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10312         comment typos and formatting.  Follow spelling conventions.
10313
10314 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
10315
10316         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10317         fix_truncsfsi2.
10318
10319         * config/rs6000/spe.md: Delete spe_efsctuiz.
10320         Add spe_fixuns_truncsfsi2.
10321         Add spe_fix_truncsfsi2.
10322
10323 2004-02-26  Eric Christopher  <echristo@redhat.com>
10324
10325         * c-lex.c (c_lex_string_translate): New variable.
10326         (lex_string): Use to determine string translation.
10327         * c-pragma.h: Prototype.
10328         * c-parse.in (start_string_translation): New. Set above.
10329         (stop_string_translation): Ditto.
10330         (attribute, attribute_list, asm_def, asm_stmt,
10331         asm_operand): Use above functions.
10332         * cp/parser.c (cp_parser_declaration): Translate strings
10333         unless token is RID_EXTERN. Set c_lex_string_translate
10334         for recursive use.
10335         (cp_parser_asm_definition): Only translate argument strings
10336         to asms.
10337         (cp_parser_asm_operand_list): Ditto.
10338         (cp_parser_attribute_list): Do not translate attribute strings.
10339
10340 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10341
10342         * stmt.c (expand_start_case_dummy): Remove.
10343         * tree.h: Remove the corresponding prototype.
10344
10345 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10346
10347         * builtins.c (apply_args_register_offset): Remove.
10348         * tree.h: Remove the corresponding prototype.
10349
10350 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10351
10352         * stor-layout.c (is_pending_size): Remove.
10353         * tree.h: Remove the corresponding prototype.
10354
10355 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10356
10357         * recog.c (validate_replace_src): Remove.
10358         * recog.h: Remove the corresponding prototype.
10359
10360 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10361
10362         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10363         MAYBE_REG_PARM_STACK_SPACE.
10364         * function.c: Likewise.
10365         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10366         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10367         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10368         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10369
10370 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10371
10372         * c-decl.c (c_expand_deferred_function): Remove.
10373         * c-tree.h: Remove the corresponding prototype.
10374
10375 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10376
10377         * postreload.c (reload_cse_move2add): Generate just a PLUS
10378         instead of an entire SET.
10379
10380 2004-02-26  Jan Hubicka  <jh@suse.cz>
10381
10382         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10383         /pentium4m.
10384         * i386.c (override_options): Add support for new CPUs.
10385         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10386         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10387         constants.
10388         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10389
10390 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
10391
10392         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10393
10394 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10395
10396         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10397         (sparc_emit_fixunsdi): New prototype.
10398         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10399         (sparc_emit_fixunsdi): New function.
10400         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10401         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
10402         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
10403         to sparc_emit_floatunsdi.
10404         (fixuns_truncsfdi2): New expander.
10405         (fixuns_truncdfdi2): Likewise.
10406
10407 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
10408
10409         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10410         unless HAVE_cc0.
10411
10412 2004-02-25  Richard Henderson  <rth@redhat.com>
10413
10414         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10415         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10416         use (op0-op1) == 0 if op0 is a pointer.
10417         * config/alpha/alpha.md (cmpdi): Use some_operand.
10418         (three comparison combine splits): Remove.
10419
10420 2004-02-25  Richard Henderson  <rth@redhat.com>
10421
10422         PR c/12794
10423         * c-common.c (handle_alias_attribute): Reject the attribute if
10424         current_function_decl is set.
10425
10426 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10427
10428         * config.gcc: Add comment describing extra_gcc_objs.
10429         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10430         * configure.ac (extra_gcc_objs): New substitution variable.
10431         (host_extra_gcc_objs): Don't substitute.
10432         * configure: Regenerate.
10433         * Makefile.in: Use extra_gcc_objs.
10434
10435 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10436
10437         * doc/contrib.texi: Add an entry for myself.
10438
10439 2004-02-25  Jan Hubicka  <jh@suse.cz>
10440
10441         * basic-block.h (make_eh_edge, break_superblocks): Declare.
10442         * cfgbuild.c (make_eh_edge):  Make global.
10443         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10444         * except.c (build_post_landing_pads, connect_post_landing_pads,
10445         dw2_build_landing_pads, sjlj_emit_function_enter,
10446         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10447         sjlj_build_landing_pads): Update CFG.
10448         (emit_to_new_bb_before): New function.
10449         (finish_eh_generation): Do not rebuild the CFG.
10450
10451 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10452
10453         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10454         target_cpu_default defines.
10455         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10456         * pa.h (TARGET_DEFAULT): Likewise.
10457
10458 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10459
10460         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10461         comparisons with regard to signedness.
10462
10463 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10464
10465         * arm.c (thumb_legitimize_address): New function.
10466         * arm-protos.h: Prototype it.
10467         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10468         (LEGITIMIZE_ADDRESS): Use it.
10469
10470 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
10471
10472         * reload1.c (reload): Only spill eliminable register with multiple
10473         adjacent elimination alternatives if all alternatives fail.
10474
10475 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10476
10477         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10478         is -4095...+4095 inclusive.
10479
10480 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
10481
10482         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10483         the bootstrap failure with Sun CC 5.4 and 5.5.
10484
10485 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10486
10487         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10488         which modifies NEWREG.
10489         (cse_condition_code_reg): Update the mode of CC_REG in
10490         CC_SRC_INSN on our own.
10491
10492 2004-02-24  Michael Matz  <matz@suse.de>
10493
10494         * config/i386/i386.c (ix86_comp_type_attributes): Check for
10495         regparm attributes.
10496
10497 2004-02-24  Richard Henderson  <rth@redhat.com>
10498
10499         * toplev.c (dump_file_tbl): Rename from dump_file.
10500         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
10501         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
10502         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10503         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10504         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10505         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10506         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10507         s/rtl_dump_file/dump_file/g.
10508
10509 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
10510
10511         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10512         (spe_fixuns_truncsfsi2): Delete.
10513
10514         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10515         (fixuns_truncsfsi2): Delete.
10516
10517 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
10518
10519         PR/14240
10520         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
10521
10522 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
10523
10524         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
10525
10526 2004-02-24  Jason Merrill  <jason@redhat.com>
10527
10528         * tree.c (check_qualified_type): New fn.
10529         (get_qualified_type): Use it.  If type already has the desired
10530         quals, just return it.
10531         * tree.h: Declare it.
10532
10533 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
10534
10535         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
10536         TARGET_SCHED_FINISH_GLOBAL): New macros.
10537
10538         * target.h (md_init_global, md_finish_global): Function
10539         declarations corresponding to new target macros.
10540
10541         * haifa-sched.c (sched_init, sched_finish): Allow target to
10542         call the new schedular hooks.
10543
10544         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
10545         call to update_life_info.
10546
10547         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
10548         flag_schedule_insns for SH4.
10549
10550         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
10551         find_set_regmode_weight, find_insn_regmode_weight,
10552         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
10553         sh_variable_issue, high_pressure, ready_reorder,
10554         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
10555         functions used to throttle the insn movement in first
10556         scheduling pass for SH.
10557
10558         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
10559         TARGET_SCHED_FINISH_GLOBAL.
10560
10561 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
10562
10563         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
10564         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
10565         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
10566         symbols in sections named by the user.
10567         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
10568         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
10569         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
10570         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
10571         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
10572         the above.
10573         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
10574         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
10575         one more pseudo to further improve code generation.
10576         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
10577         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
10578         inside UNSPEC.
10579         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
10580         * config/frv/frv.c (frv_legitimate_address_p): Added
10581         allow_double_reg_p argument.  Adjust all callers.  Use it to
10582         decide whether to enable double-register indirect addressing.
10583         (frv_funcdesc_alias_set): Remove.
10584         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
10585         register.  Emit movdi_ldd.
10586         (ldd_address_operand): New.
10587         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
10588         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10589         (PREDICATE_CODES): Add ldd_address_operand.
10590         * config/frv/frv.md (movdi_ldd): New.
10591         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
10592         intermediate computations if possible.
10593         (symGOTOFF2reg_i): Fix harmless typo.
10594         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
10595         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
10596         relocated p_vaddr to vaddr type.
10597         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
10598         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
10599         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
10600         MEM, or use a funcdesc alias set.  Use regular move instead of
10601         ldd.
10602         (dbl_memory_one_insn_operand): Recognize function descriptors by
10603         type or by alias set, and don't split them.
10604         * config/frv/frv.md (call, call_value): Never use call_internal
10605         for fdpic.
10606         (call_internal, call_value_internal): Never match for FDPIC.
10607         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
10608         call_value_fdpicsi): Require FDPIC.
10609         (ldd): Removed.
10610         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
10611         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
10612         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
10613         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
10614         FDPIC.  Compute data base address.
10615         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
10616         before the other self-specs are processed.
10617         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
10618         Build with -fPIC.
10619         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
10620         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
10621         inhibit_libc is defined.
10622         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
10623         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
10624         __FRV_FDPIC__.
10625         (__RELOC_POINTER): Define.
10626         (_Unwind_IteratePhdrCallback): Use it.
10627         * config/frv/frv.h (Twrite): Define.
10628         (TRANSFER_FROM_TRAMPOLINE): Use it.
10629         * config/frv/linux.h (INVOKE__main): Undefine.
10630         (Twrite): Override.
10631         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
10632         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
10633         (-mlibrary-pic): Emphasize that this option generates EABI code.
10634         (-mcpu): Add fr550.
10635         (-mpack): Remove.
10636         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
10637         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
10638         and CONSTs in FDPIC mode.
10639         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
10640         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10641         * config/frv/frv.c (move_source_operand): Don't accept symbolic
10642         constants.
10643         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
10644         rather than 'i' constraint for the 2-instruction alternative.
10645         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
10646         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10647         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
10648         EXTRA_CONSTRAINT_FOR_Y.
10649         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
10650         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
10651         (addsi3): Change 'Y' constraint to 'Q'.
10652         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
10653         * reload.c (CONST_POOL_OK_P): New macro.
10654         (find_reloads): Use it to decide whether a constant can be forced
10655         into memory.
10656         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
10657         constant satisfies got12_operand.
10658         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
10659         (frv_legitimate_address_p): Check for valid unspec offsets using
10660         got12_operand rather than frv_legitimate_fdpic_operand_p.
10661         (frv_legitimate_fdpic_operand_p): Delete.
10662         (frv_emit_movsi): Abort if we try to use the FDPIC register during
10663         or after reload.
10664         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
10665         TARGET_FDPIC.
10666         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
10667         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
10668         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
10669         (frv_fdpic_fptr_operand): Don't declare here.
10670         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
10671         rather than fdpic_got12_operand.
10672         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
10673         got12_operand and const_unspec_operand.
10674         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
10675         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
10676         (symbolic_operand): Remove.
10677         (const_unspec_operand): New predicate.
10678         * config/frv/frv.md (*movsi_got): Use got12_operand.
10679         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
10680         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
10681         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
10682         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
10683         * config/frv/frv.c (frv_unspec): New structure.
10684         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
10685         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
10686         validate CONST indices.  Use frv_output_const_unspec to print them.
10687         (frv_print_operand): Update call to unspec_got_name.  Use
10688         frv_output_const_unspec to print constant unspecs.
10689         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
10690         Reject UNSPECs otherwise.
10691         (unspec_got_name): Take the relocation number as argument, not an
10692         rtx containing it.
10693         (frv_output_addr_const_extra): Remove, replacing with...
10694         (frv_output_const_unspec): ...this new function.
10695         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
10696         (gpr_or_int12_operand): Use fdpic_got12_operand.
10697         (dbl_memory_one_insn_operand): Likewise.
10698         (fdpic_got12_operand): Use frv_const_unspec_p.
10699         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
10700         are already legitimate.  Use frv_small_data_reloc_p when deciding
10701         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
10702         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
10703         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
10704         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
10705         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10706         label, for real this time.
10707         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
10708         representation of visibility.
10709         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
10710         such.
10711         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
10712         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
10713         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
10714         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
10715         it was explicitly disabled.
10716         (frv_stack_info): There is no need to save the link register in every
10717         frame unless TARGET_LINKED_FP is true.
10718         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
10719         frame pointer if the stack pointer might change value.
10720         (frv_return_addr_rtx): Check and process "count" argument.
10721         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
10722         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
10723         (frv_find_base_term): Declare.
10724         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
10725         (FIND_BASE_TERM): Define.
10726         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
10727         small_data_register_operand, small_data_symbolic_operand.  Add
10728         symbolic_operand.
10729         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
10730         (frv_print_operand_memory_reference, output_move_single): Remove
10731         special handling for unlegitimized sdata addresses.
10732         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
10733         and symbolic addresses.
10734         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
10735         (frv_find_base_term): New function.
10736         (int_2word_operand): Check specifically for symbolic address constants.
10737         (pic_register_operand, pic_symbolic_operand): Delete.
10738         (small_data_register_operand, small_data_symbolic_operand): Delete.
10739         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
10740         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
10741         (move_source_operand): Only accept CONSTs if they're a two-insn
10742         symbolic constant.
10743         (fdpic_got12_operand): Don't require TARGET_FDPIC.
10744         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
10745         using gen_symGOTOFF2reg*.
10746         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
10747         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
10748         themselves a cost of 3 insns.
10749         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
10750         Change predicate to symbolic_operand.
10751         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
10752         (*movsi_lda_sdata): Delete.
10753         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
10754         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
10755         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
10756         frv-*-*linux*.
10757         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10758         label.
10759         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
10760         -multilib-library-pic.
10761         (LINK_SPEC): Add -z text for -mfdpic.
10762         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
10763         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
10764         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
10765         Override.
10766         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
10767         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
10768         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
10769         crtstuff-generated files.
10770         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
10771         * config.gcc: Add frv-*-*linux*.
10772         * config/frv/linux.h, config/frv/t-linux: New.
10773         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
10774         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
10775         when -mfdpic even if a linker script is explicitly listed.
10776         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10777         * config/frv/frv.c (frv_override_options): Clear asm_out
10778         unaligned_op for SImode on FDPIC.
10779         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
10780         argument passed to decl_readonly_section.
10781         (frv_assemble_integer): Revert 2003-09-30's change, but make the
10782         whole block run with FDPIC even with -fno-PIC.
10783         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10784         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
10785         symbol or label plus offset to memory.
10786         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
10787         GOTOFF and GPREL for LABEL_REF.
10788         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
10789         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
10790         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
10791         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
10792         * doc/invoke.texi: Document them.
10793         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
10794         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
10795         (frv_splittable_got_operand): Removed.
10796         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
10797         LO_SUM.  Add comments.
10798         (frv_override_options): Moved enabling of FDPIC to
10799         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
10800         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
10801         (frv_legitimize_fdpic_address): Don't duplicate logic in
10802         frv_emit_movsi.
10803         (frv_gen_GPsym2reg): New.
10804         (unspec_got_name): Added gprel.
10805         (frv_expand_fdpic_call): Add support for inlining PLTs.
10806         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
10807         (gpr_or_int12_operand): Added GPREL12.
10808         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
10809         (small_data_symbolic_operand): Fail if FDPIC.
10810         (fdpic_splittable_got_operand): Removed.
10811         (fdpic_got12_operand): Added GPREL12.
10812         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
10813         when appropriate.  Fix sdata GOTOFF.
10814         (frv_legitimate_constant_p): Require legitimate PIC operand for
10815         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
10816         (frv_assemble_integer): Move FDPIC funcdesc handling out of
10817         flag_pic case.
10818         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
10819         frv_assemble_integer fails.
10820         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
10821         (SUBTARGET_DRIVER_SELF_SPECS): New.
10822         (ASM_SPEC): Don't pass -mno-fdpic.
10823         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
10824         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
10825         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
10826         -multilib-library-pic.
10827         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
10828         condexec_si_media_operator, condexec_sf_add_operator and
10829         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
10830         and condexec_sf_unary_operator.
10831         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
10832         New.
10833         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
10834         movsi_internal.  Give them internal names.  movsi_got has type
10835         int.
10836         (fdpic got splitters): Remove.
10837         (symGPREL2reg, symGPREL2reg_hilo): New.
10838         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
10839         to -mlibrary-pic.  Map -multilib-library-pic to it.
10840         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
10841         Document.
10842         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
10843         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
10844         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
10845         (frv_cannot_force_const_mem): New function.
10846         (const_small_data_p, plus_small_data_p): Update comments on sdata
10847         on FDPIC.
10848         (frv_override_options): Set flag_pie for FDPIC too.
10849         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
10850         call-saved registers on FDPIC.
10851         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
10852         don't force LR to be preserved.
10853         (frv_expand_prologue): Likewise.
10854         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
10855         (frv_frame_pointer_required): Don't force it just because the
10856         FDPIC register is used.
10857         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
10858         operand only if !condexec_p.
10859         (frv_legitimize_address): Return the FDPIC-legitimized address.
10860         Don't match small data here on FDPIC.
10861         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
10862         symbols.  Use TRUE/FALSE instead of 1/0.
10863         (frv_local_funcdesc_p): New.
10864         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
10865         immediates when possible.
10866         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
10867         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
10868         an UNSPEC_GOT.
10869         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
10870         12-bit immediates when possible.
10871         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
10872         are not legitimate pic operands.
10873         (frv_in_small_data_p): Re-enable for FDPIC.
10874         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
10875         (FRV_GLOBAL_P): Removed.
10876         * config/frv/frv.md: Add modes to CONSTs.
10877         (movsi_got): New.
10878         (movsi_lo_sum_got): Use separate matches instead of match_dup.
10879         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
10880         (fdpic splittable operations): Match on flag_pic != 1.
10881         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
10882         * config/frv/frv.c (frv_asm_out_constructor,
10883         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
10884         bytes, not bits.
10885         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
10886         * config/frv/frv.c (frv_assemble_integer): Reject complex
10887         expressions referencing function SYMBOL_REFs.
10888         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
10889         (move_source_operand): Reject CONSTs that reference function
10890         SYMBOL_REFs on FDPIC.
10891         (frv_emit_movsi): If we get such a CONST, break it up.
10892         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
10893         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
10894         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
10895         MEM.
10896         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
10897         (frv_trampoline_size): Increase for FDPIC.
10898         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
10899         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
10900         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
10901         Disable use of GOTOFF for now.
10902         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
10903         Disable use of small data in FDPIC for now.
10904         (frv_asm_output_mi_thunk): Implement for FDPIC.
10905         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
10906         * config/frv/frv.c (frv_asm_out_constructor): Use
10907         frv_assemble_integer for FDPIC pointers.
10908         (frv_asm_out_destructor): Likewise.
10909         * config/frv/frv.md (ldd): Fix order of operands.  Use
10910         address_operand for input.
10911         2003-09-18  DJ Delorie  <dj@redhat.com>
10912         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
10913         (unspec_got_name): Correct typo.
10914         (frv_emit_movsi): Pre-expand splittable GOTs.
10915         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
10916         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
10917         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
10918         * config/frv/t-frv: Add -mfdpic multilibs.
10919         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
10920         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
10921         * config/frv/frv.c (frv_override_options): -mfdpic assumes
10922         flag_pic, default to 32-bit pics, require DWORD ops.
10923         (frv_override_options): Add W and Z constraints.
10924         (frv_expand_prologue): No pic prologue for -mfdpic.
10925         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
10926         (frv_print_operand_memory_reference): Handle GOT constants.
10927         (frv_legitimate_address_p): Allow GOT constants.
10928         (frv_legitimize_address): Handle GOT addresses too.
10929         (frv_legitimate_fdpic_operand_p): New.
10930         (frv_legitimize_fdpic_address): New.
10931         (unspec_got_name): New.
10932         (frv_output_addr_const_extra): New.
10933         (frv_expand_fdpic_call): New.
10934         (frv_fdpic_fptr_operand): New.
10935         (gpr_or_int12_operand): Handle GOT operands.
10936         (int_2word_operand): Handle GOT operands.
10937         (fdpic_operand): New.
10938         (fdpic_splittable_got_operand): New.
10939         (fdpic_got12_operand): New.
10940         (frv_emit_movsi): Handle GOT operands.
10941         (frv_assemble_integer): -mfdpic doesn't use rofixups.
10942         (frv_print_operand): Support 'g' code for GOT operands.
10943         * config/frv/frv-protos.h: Add prototypes as needed.
10944         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
10945         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
10946         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
10947         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
10948         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
10949         R_FRV_GOTOFFLO): New.
10950         (movsi_high_got, movsi_lo_sum_got): New.
10951         (*movsi_pic): Don't use this splitter for -mfdpic.
10952         (addsi3): Allow GOT references also.
10953         (call, call_value): Handle -mfdpic separately.
10954         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
10955         call_value_fdpicsi): New.
10956         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
10957         symGOTOFF2reg_i): New.
10958         * config/frv/frv.h (MASK_FDPIC): New.
10959         (TARGET_FDPIC): New.
10960         (TARGET_SWITCHES): Add -mfdpic.
10961         (FDPIC_FPTR_REGNO): New.
10962         (FDPIC_REGNO): New.
10963         (OUR_FDPIC_REG): New.
10964         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
10965         FDPIC_CALL_REGS.
10966         (REG_CLASS_NAMES): Likewise.
10967         (REG_CLASS_CONTENTS): Likewise.
10968         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
10969         (EXTRA_CONSTRAINT): Add it here.
10970         (FRV_GLOBAL_P): New.
10971         (OUTPUT_ADDR_CONST_EXTRA): New.
10972
10973 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10974
10975         * config/sparc/sparc.h: Remove commented-out definitions of
10976         TARGET_EDOM and GEN_ERRNO_RTX.
10977
10978 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10979
10980         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
10981         df_analyse with df_analyze.
10982
10983 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
10984
10985         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
10986         beginning of block.
10987
10988 2004-02-23  James E Wilson  <wilson@specifixinc.com>
10989
10990         * calls.c (precompute_arguments): Update comment.
10991
10992 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10993
10994         * et-forest.c: Replace et_occurences with et_occurrences.
10995
10996 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10997
10998         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
10999         with iv_analyze.
11000
11001 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
11002
11003         * config/i386/i386.c: Rename pni to sse3.
11004         * config/i386/i386.h: Likewise.
11005         * config/i386/i386.md: Likewise.
11006         * config/i386/pmmintrin.h: Likewise.
11007         * doc/extend.texi: Likewise.
11008         * doc/invoke.texi: Likewise.
11009
11010 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
11011             Kazu Hirata  <kazu@cs.umass.edu>
11012
11013         Remove -fwritable-strings.
11014         * c-common.c (fix_string_type): Don't check
11015         flag_writable_strings.
11016         (fix_string_type): Likewise.
11017         * c-opts.c (set_std_c89): Don't initialize
11018         flag_writable_strings.
11019         (set_std_c99): Likewise.
11020         * common.opt (fwritable-strings): Remove.
11021         * flags.h: Remove the external declaration of
11022         flag_writable_strings.
11023         * opts.c (common_handle_option) <OPT_fwritable_strings>:
11024         Remove.
11025         * toplev.c (flag_writable_strings): Remove.
11026         (f_options): Remove an entry for writable-strings.
11027         * varasm.c (const_hash_1) <STRING_CST>: Don't check
11028         flag_writable_strings.
11029         (compare_constant) <STRING_CST>: Likewise.
11030         (build_constant_desc): Likewise.
11031         * config/darwin.c (machopic_select_section): Likewise.
11032         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11033         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11034         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11035         * config/mips/mips.c (mips_select_section): Likewise.
11036         (mips_encode_section_info): Likewise.
11037         * config/pa/pa.c (pa_select_section): Likewise.
11038         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
11039         * config/v850/v850.c (v850_select_section): Likewise.
11040         * doc/invoke.texi (-fwritable-strings): Remove.
11041         (-fno-const-strings): Don't mention -fwritable-strings.
11042         * doc/trouble.texi: Don't mention -fwritable-strings.
11043
11044 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
11045
11046         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
11047
11048 2004-02-23  Dale Johannesen  <dalej@apple.com>
11049
11050         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
11051         (movdf_hardfloat64):  Ditto.
11052         (movdf_softfloat64):  Ditto.
11053
11054 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
11055         * config/rs6000/rs6000.c (function_arg): call to
11056         rs6000_mixed_function_arg for DFmode moved to allow
11057         normal DFmode incoming register assignment.
11058
11059 2004-02-23  Dale Johannesen  <dalej@apple.com>
11060
11061         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11062         (movdf_hardfloat64):  Ditto.
11063
11064 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11065
11066         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11067         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11068         copyright.
11069
11070 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11071
11072         PR c/14156
11073         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11074         to use DECL_P instead.
11075
11076         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11077         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11078
11079 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11080
11081         * Makefile.in (opts.o): Depend on target.h.
11082         * opts.c (decode_options): Use targetm.default_short_enums
11083         instead of DEFAULT_SHORT_ENUMS.
11084         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11085         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11086         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11087         * target.h (gcc_target): Add default_short_enums.
11088         * config/cris/cris.h: Remove a comment about
11089         DEFAULT_SHORT_ENUMS.
11090         * config/ip2k/ip2k.h: Likewise.
11091         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11092         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11093
11094 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11095             Falk Hueffner  <falk@debian.org>
11096
11097         PR c/14188
11098         * builtins.c (expand_builtin_va_arg): Emit an informative message
11099         if a trap is generated.
11100         * c-typeck.c (build_function_call): Likewise.
11101
11102 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11103
11104         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11105         fopen.
11106         * libgcov.c: Include sys/stat.h.
11107         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11108         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11109         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11110         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11111
11112 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11113
11114         * reorg.c: Remove comments about dead ports.
11115
11116 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11117
11118         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11119         extra host object file when targetting cygwin rather than generic
11120         object files.
11121
11122 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11123
11124         Merge from tree-ssa:
11125         2003-11-20  Richard Henderson  <rth@redhat.com>
11126
11127                 * tree-inline.c (insert_decl_map): New.
11128                 (remap_decl, remap_type, remap_block, copy_body_r,
11129                 initialize_inlined_parameters, declare_return_variable,
11130                 remap_save_expr): Use it.
11131
11132         * function.c (copy_body_r): Add mapping from id->ret_label to
11133         id->ret_label.  Revert test for ret_label.
11134
11135 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11136
11137         * genoutput.c (process_template): Strip trailing whitespace in @
11138         templates and issue a warning if there was any.
11139
11140 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11141
11142         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11143         object file when targetting cygwin.
11144         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11145         overridden by top-level Makefile.
11146
11147 2004-02-21  Roger Sayle  <roger@eyesopen.com>
11148
11149         * config/i386/i386.c (standard_80387_constant_p): Also prefer
11150         the x87's load constant instructions when optimizing for size.
11151
11152 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11153
11154         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11155         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11156         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11157         * fold-const.c: Likewise.
11158         * simplify-rtx.c: Likewise.
11159
11160 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11161
11162         * combine.c (can_combine_p): Don't ignore SETs marked with
11163         REG_EH_REGION notes.
11164         (try_combine): When attemting to fix unrecognized insns, don't
11165         split a PARALLEL that contains the original i2.
11166
11167 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11168
11169         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11170         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11171         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11172         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11173         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11174         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11175         portion of header.
11176         (__altivec_link_error_invalid_argument): Remove prototype; will use
11177         __builtin_altivec_compiletime_error("vec_*") instead.
11178         (vec_*): Fix/complete set of available operation overloads given the
11179         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11180         cv-correctness of pointer arguments; in C, always check for correct
11181         argument types before macro expansion.
11182         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11183         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11184         '-W[no-]altivec-long-deprecated' switches.
11185         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11186         '__vector', '__pixel' and '__bool' macros using
11187         '__attribute__((altivec(...)))' types.
11188         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11189         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11190         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11191         New type nodes.
11192         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11193         handling '-W[no-]altivec-long-deprecated'.
11194         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11195         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11196         altivec_expand_dst_builtin): Remove casts from integer literals.
11197         (altivec_expand_builtin): Likewise; handle expansion of new
11198         '__builtin_altivec_compiletime_error' function.
11199         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11200         types, and make them distinct from other vector types; register
11201         '__builtin_altivec_compiletime_error' function.
11202         (print_operand): For 'P', print a full target register name instead of
11203         merely its number.
11204         (rs6000_attribute_table): Add "altivec" attribute.
11205         (rs6000_handle_altivec_attribute): New function.
11206         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11207         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11208         maps to).
11209         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11210         declare.
11211         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11212
11213 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11214
11215         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11216         check.
11217         (shift_mix4left+2): Delete redundant pattern.
11218
11219 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11220
11221         * alias.c (OUTGOING_REGNO): Don't define the default.
11222         * builtins.c (OUTGOING_REGNO): Likewise.
11223         (INCOMING_REGNO): Likewise.
11224         (apply_args_register_offset): Always use OUTGOING_REGNO.
11225         * combine.c (OUTGOING_REGNO): Likewise.
11226         * sibcall.c (OUTGOING_REGNO): Likewise.
11227         * defaults.h (INCOMING_REGNO): Provide the default.
11228         (OUTGOING_REGNO): Likewise.
11229
11230 2004-02-21  Jan Hubicka  <jh@suse.cz>
11231
11232         * params.def (max-peeled-insns, max-completely-peeled-insns,
11233         max-once-peeled-insns): Set to 400.
11234
11235 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11236
11237         PR c++/12007
11238         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11239         are set for parameters before outputing debugging information.
11240
11241 2004-02-20  Falk Hueffner  <falk@debian.org>
11242
11243         PR target/14201
11244         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11245         numbers.
11246
11247 2004-02-20  Per Bothner  <per@bothner.com>
11248
11249         * input.h:  Don't #include line-map.h.  It may cause link problems
11250         with undefined linemap_line_start when line-map.h is included but
11251         line-map.o is not linked, as currently happens with gengtype on
11252         compilers that don't support inline.
11253         * toplev.c:  So we do have to explicitly #include line-map.h here.
11254
11255 2004-02-20  Richard Henderson  <rth@redhat.com>
11256
11257         * doc/invoke.texi: Add -Wvariadic-macros.
11258
11259 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11260
11261         * haifa-sched.c (sched_emit_insn): Remove.
11262         * sched-int.h: Remove the corresponding prototype.
11263
11264 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11265
11266         Revert:
11267         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11268         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11269         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11270         * config/cris/cris.h: Remove a comment about
11271         DEFAULT_SHORT_ENUMS.
11272         * config/ip2k/ip2k.h: Likewise.
11273         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11274
11275 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
11276             Tom Tromey  <tromey@redhat.com>
11277
11278         * doc/install.texi: Moved --disable-libgcj and
11279         --with-system-zlib documentation to new section for
11280         Java-specific options.
11281         Added explicit Cross-Compiler-Specific Options subheading.
11282         Added section for Java-specific options.
11283
11284 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
11285
11286         * doc/install.texi (Building the Ada compiler): Remove
11287         example.
11288
11289 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11290
11291         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11292
11293 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11294
11295         * gcc.c (process_command): Allow translation of the copyright
11296         symbol but not the rest of the copyright message.
11297         * gcov.c (print_version): Likewise.  Allow translation of the
11298         message about warranty.
11299
11300 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
11301
11302         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11303         predicate.
11304         ("*andsi_clear"): Tweak constraints to not match postincrement.
11305         Adjust the predicate to exclude a volatile memory reference.
11306         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
11307         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11308
11309 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
11310
11311         * move-if-change: Remove.
11312         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11313         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11314         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11315         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11316         (s-gtyp-gen, s-iov): Use the top level move-if-change.
11317         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11318
11319 2004-02-19  James E Wilson  <wilson@specifixinc.com>
11320
11321         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11322         for operand2.  Add condition that requires register_operand operand2
11323         before reload.
11324
11325 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
11326             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11327
11328         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11329         * config/mips/mips.md: Expand comment above unaligned loads and stores.
11330
11331 2004-02-19  Richard Henderson  <rth@redhat.com>
11332
11333         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11334         * tree.c (build0, build1, build2, build3, build4): Split out from...
11335         (build): ... here.  Call them.
11336         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11337
11338         * convert.c (convert_to_integer): Remove extra build argument.
11339         * tree-inline.c (expand_call_inline): Likewise.
11340
11341 2004-02-19  Richard Henderson  <rth@redhat.com>
11342
11343         * c-opts.c (warn_variadic_macros): New.
11344         (c_common_handle_option): Set it.
11345         (sanitize_cpp_opts): Copy it to cpp_opts.
11346         * c.opt (Wvariadic-macros): New.
11347         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11348         * cppinit.c (cpp_create_reader): Initialize it.
11349         * cppmacro.c (parse_params): Check it.
11350
11351 2004-02-19  David Daney <ddaney@avtrex.com>
11352
11353         PR preprocessor/14198
11354         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11355         builtin_assert ("machine=mips")
11356
11357 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11358
11359         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11360         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11361         * config/cris/cris.h: Remove a comment about
11362         DEFAULT_SHORT_ENUMS.
11363         * config/ip2k/ip2k.h: Likewise.
11364         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11365
11366 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11367
11368         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11369         when passing single SFmode quantities in general registers,
11370         put them in the high half.
11371
11372 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11373
11374         * doc/md.texi (Standard Names): Document additional dependency on
11375         fix pattern.
11376
11377         * optabs.c (ftruncify): Remove.
11378         (expand_fix): Manually inline ftruncify above.
11379         (can_fix_p): Add FIXME note.
11380
11381 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11382
11383         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11384         spe_fixuns_truncsfsi2.
11385
11386         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11387         fixuns_truncsfsi2.
11388
11389 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
11390
11391         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11392         * testsuite/gcc.dg/20040219-1.c: New test.
11393
11394 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
11395
11396         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11397         "*subsf3_cconly"): Subtraction is not commutative.
11398
11399 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11400
11401         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11402         (sdbout_symbol): If called before sdbout_init, queue DECL for
11403         later and return.
11404         (sdbout_init): Set sdbout_initialized true, process decls
11405         queued earlier by sdbout_symbol.
11406         (sdbout_finish): Use size_t for index variable.
11407
11408 2004-02-19  Jeff Law  <law@redhat.com>
11409
11410         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11411         for unordered comparison codes.
11412
11413 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
11414
11415         * reload1.c (reload): Correct comment.
11416         (scan_paradoxical_subregs): Remove #if 0 and old comment.
11417         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11418         register variables are not used by reload.
11419
11420 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
11421
11422         PR target/14209
11423         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11424         constraints to not match postincrement.  Adjust the predicate to
11425         exclude a volatile memory reference.
11426
11427 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11428
11429         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11430
11431 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11432
11433         * hooks.c (hook_void_tree_int): Remove.
11434         (hook_void_constcharptr): Likewise.
11435         (hook_int_void_0): Likewise.
11436         * hooks.h: Remove the prototypes for the above three
11437         functions.
11438         * targhooks.c (hook_bool_machine_mode_true): Remove.
11439         * targhooks.h: Remove the prototype for
11440         hook_bool_machine_mode_true.
11441
11442 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11443
11444         * emit-rtl.c (subreg_realpart_p): Remove.
11445         (reorder_insns_with_line_notes): Likewise.
11446         (end_full_sequence): Likewise.
11447         * rtl.h: Remove the prototype for the above functions.
11448
11449 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11450
11451         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11452         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11453         config/iq2000/iq2000.h, config/m32r/m32r.h,
11454         config/pdp11/pdp11.h, config/sparc/sparc.h,
11455         config/xtensa/xtensa.h: Remove commented-out or useless
11456         definitions of CASE_VECTOR_PC_RELATIVE.
11457
11458 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11459
11460         * loop.c (all_sets_invariant_p): Remove.
11461
11462 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11463
11464         PR target/12916
11465         * config/sparc/sparc.h (NPARM_REGS): Delete.
11466         (BASE_RETURN_VALUE_REG): Likewise.
11467         (BASE_OUTGOING_VALUE_REG): Likewise.
11468         (BASE_PASSING_ARG_REG): Likewise.
11469         (BASE_INCOMING_ARG_REG): Likewise.
11470         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11471         TARGET_ARCH64, not TARGET_V9.
11472         (function_arg_slotno): Dispatch based on the mode class.
11473         Handle vector modes like floating-point modes.
11474         (function_arg_record_value_1): Handle vector types like
11475         floating-point types.
11476         (function_arg_record_value_2): Likewise.
11477         Calculate regno after mode transformation.
11478         (function_arg): Handle vector modes like floating-point modes.
11479         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11480         If ARCH64, do not recheck alignment.
11481         (function_arg_pass_by_reference): Reorder the conditions.
11482         (sparc_return_in_memory): Move after function_arg_padding.
11483         Implement calling conventions for vector modes.
11484         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11485         (function_value): Move scope of 'regbase'.
11486         Implement calling conventions for vector modes.
11487         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11488         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11489         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11490         the argument is passed by reference.
11491         (sparc_type_code): Handle vector types.
11492
11493 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
11494
11495         * function.c (assign_parms): When building decl_rtl for
11496         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11497
11498 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
11499
11500         * expr.c (is_aligning_offset): Check if we are aligning the
11501         expressions's address over BIGGEST_ALIGNMENT in bytes, not
11502         in bits.
11503
11504 2003-02-18  Matt Austern  <austern@apple.com>
11505
11506         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11507         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11508         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11509         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11510         spec string.
11511         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
11512
11513 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
11514
11515         * dwarf2out.c (loclabel_num): Move outside #ifdef
11516         DWARF2_DEBUGGING_INFO and mark with GTY(()).
11517         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11518         Mark with GTY(()).
11519         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
11520         Allocate memory with ggc_alloc.  No need to copy anything.
11521         (ia64_hpux_file_end): Update to match.
11522
11523 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11524
11525         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
11526         by default.
11527
11528 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11529
11530         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
11531         ("divmodtisi3"): Likewise.
11532         ("udivmoddi4", "udivmodtidi3"): Likewise.
11533         ("divmodsi4", "divmoddisi3"): Likewise.
11534         ("udivmodsi4", "udivmoddisi3"): Likewise.
11535         ("udivsi3", "umodsi3"): Likewise.
11536
11537 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11538
11539         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
11540         placeholder insn when chunkifying the pool.
11541
11542 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11543
11544         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
11545         generating PIC code.
11546
11547 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11548
11549         * config/h8300/h8300-protos.h: Add a prototype for
11550         h8300_expand_branch.
11551         * config/h8300/h8300.c (h8300_expand_branch): New.
11552         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
11553         bgtu, beq, bne): Call h8300_expand_branch().
11554
11555 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11556
11557         * config/h8300/h8300-protos.h: Add prototypes for
11558         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
11559         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
11560         (h8300_hard_regno_mode_ok): Likewise.
11561         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
11562         h8300_hard_regno_nregs().
11563         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
11564
11565 2004-02-18  Per Bothner  <per@bothner.com>
11566
11567         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
11568         partly reverts my 2003-10-01 change, because we're back to logically
11569         including <command line> inside the main line.
11570         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
11571         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
11572         Fixes PR preprocessor/14103.
11573
11574         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
11575         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
11576         (cpp_push_include):  Don't need to increment pfile's line field.
11577         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
11578
11579         * c-ppoutput.c (print struct):  New first_time field.
11580         (init_pp_output):  Set print.first_time.
11581         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
11582         which is set also for (say) <command line>.  Clear print.first_time.
11583
11584         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
11585         does not match the code, so fix both.
11586         (should_stack_file):  Inline include_pch_p function.
11587         (include_pch_p):  Remove pointless function.
11588
11589         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
11590
11591 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11592
11593         * config/h8300/h8300.md (four define_peephole2's): Use
11594         h8300_regs_ok_for_stm().
11595
11596 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11597
11598         * config/h8300/h8300-protos.h: Update the prototype for
11599         expand_a_rotate().
11600         * config/h8300/h8300.c (expand_a_rotate): Remove the first
11601         argument.
11602         * config/h8300/h8300.md: Update all callers.
11603
11604 2004-02-18  Jan Hubicka  <jh@suse.cz>
11605
11606         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
11607         floats.
11608         (simplify_binary_operation): Deal with logicals on floats.
11609
11610         * i386.md (SSE fabs splitters): Emit new patterns.
11611         (SSE cmov splitters): Likewise.
11612         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
11613         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
11614         subregs.
11615         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
11616         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
11617
11618 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11619
11620         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
11621         by hand.
11622         (output_a_rotate): Tweak a comment.
11623         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
11624         (*rotlhi3_1): Change to rotlhi3_1.
11625         (*rotlsi3_1): Change to rotlsi3_1.
11626
11627 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
11628
11629         PR target/13866
11630         * arm.c (load_multiple_operation): Don't insist that the source reg
11631         of a post-increment component is the same as the destination.
11632         (store_multiple_operation): Likewise.
11633
11634 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11635
11636         * config/h8300/h8300.md: Move movsf patterns into one section
11637         of the file.
11638
11639 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11640
11641         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
11642         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
11643         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
11644         config/mips/linux64.h, config/pa/pa-64.h,
11645         config/rs6000/aix51.h, config/rs6000/aix52.h,
11646         config/rs6000/spe.md, config/sparc/linux.h,
11647         config/sparc/linux64.h: Update copyright.
11648
11649 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11650
11651         * config/h8300/h8300.md: Move push patterns into one
11652         section of the file.
11653
11654 2004-02-18  Mark Mitchell <mark@codesourcery.com>
11655
11656         PR c++/11326
11657         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
11658         fntype.
11659
11660 2004-02-18  Paul Brook  <paul@codesourcery.com>
11661
11662         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
11663
11664 2004-02-18  Paul Brook  <paul@codesourcery.com>
11665
11666         PR debug/12934
11667         * dwarf2out.c (loc_descriptor_from_tree): Handle
11668         EXPR_WITH_FILE_LOCATION.
11669
11670 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11671
11672         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
11673         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
11674         trailing whitespace from instructions.
11675
11676 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
11677
11678         * configure.ac: When generating auto-build.h, pass
11679         --enable-languages to the sub-configure.
11680         Put quotes around ${program_transform_name} when generating
11681         name of as, ld, nm, objdump.
11682         * configure: Regenerate.
11683
11684 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
11685
11686         * Makefile.in (s-check, s-config, s-conditions, s-flags)
11687         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
11688         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
11689         (s-preds, s-iov): Do not depend on move-if-change.
11690
11691 2004-02-17  James E Wilson  <wilson@specifixinc.com>
11692
11693         * caller-save.c (insert_restore): Pass mem through copy_rtx.
11694         (insert_save): Likewise.
11695
11696 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11697
11698         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
11699         warning.
11700
11701 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11702
11703         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
11704         *one_cmplsi2_h8300.
11705         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
11706
11707 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11708
11709         * config/h8300/h8300-protos.h: Update the prototype of
11710         fix_bit_operand().
11711         * config/h8300/h8300.c (fix_bit_operand): Remove the second
11712         argument "what".
11713         * config/h8300/h8300.md: Update all callers.
11714
11715 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11716
11717         * config/h8300/h8300.c (fix_bit_operand): Change the name of
11718         the last argument to "code" from "type".
11719
11720 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11721
11722         * config/h8300/h8300.c: Remove an extern declaration of
11723         rtx_equal_function_value_matters.
11724
11725 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11726
11727         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
11728         by hand.
11729         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
11730         (*iorqi3_1): Change to iorqi3_1.
11731         (*xorqi3_1): Change to xorqi3_1.
11732
11733 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11734
11735         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
11736         typos.
11737
11738 2004-02-17  Jan Hubicka  <jh@suse.cz>
11739
11740         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
11741
11742 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
11743
11744         PR optimization/14119
11745         * combine.c (try_combine): When attemting to fix unrecognized insns,
11746         don't delete SETs marked with REG_EH_REGION notes.
11747
11748 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
11749
11750         * combine.c (simplify_if_then_else): Do not replace
11751         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
11752         modes differ.
11753
11754 2004-02017  Steven Bosscher  <stevenb@suse.de>
11755
11756         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
11757         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
11758         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
11759         * ada/utils.c: Likewise.
11760         * cp/decl.c: Likewise.
11761         * f/com.c: Likewise.
11762         * java/class.c: Likewise.
11763
11764 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11765
11766         * config/h8300/h8300.md: Fix comment typos.
11767
11768 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11769
11770         * config/mips/t-iris6gld: Renamed to ...
11771         * config/mips/t-irix-gld: ... this.
11772         * config.gcc (mips-sgi-irix6*): Reflect this
11773         (mips-sgi-irix5*): Use it with GNU ld.
11774
11775         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
11776         to ...
11777         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
11778         * config/mips/t-irix-gld: Reflect this.
11779         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11780
11781         * config/mips/iris5gld.h: New file.
11782         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
11783         Only use collect2 without gas.
11784
11785         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
11786         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11787         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
11788         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11789
11790         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
11791         * config/mips/iris5.h: ... here.
11792
11793         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
11794         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11795         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
11796
11797         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
11798         using irix_startfile_spec, irix_endfile_spec.
11799
11800 2004-02-16  Gunther Nikl  <gni@gecko.de>
11801
11802         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
11803
11804 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11805
11806         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
11807         insns by hand.
11808
11809 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11810
11811         * cfghooks.c (split_edge): Speed up updating of dominators.
11812
11813 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
11814
11815         PR c++/11326
11816         * c-common.c (flag_abi_version): Remove.
11817         * c-common.h (flag_abi_version): Likewise.
11818         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
11819         * c.opt (fabi-version): Remove.
11820         * calls.c (expand_call): Always pass a function type to
11821         struct_value_rtx.  Use convert_memory_address.
11822         * common.opt (fabi-version): Add it.
11823         * flags.h (flag_abi_version): Likewise.
11824         (abi_version_at_least): New macro.
11825         * opts.c (common_handle_option): Add OPT_fabi_version.
11826         * toplev.c (flag_abi_version): Define it.
11827         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
11828         New function.
11829         (ia64_output_mi_thunk): Use it.
11830         (ia64_struct_value_rtx): Likewise.
11831
11832 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11833
11834         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
11835         Don't generate insns by hand.
11836
11837 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
11838
11839         PR c++/14178
11840         * doc/invoke.texi (fabi-version): The default is 2 now.
11841
11842 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11843
11844         * loop-iv.c: New file.
11845         * Makefile.in (loop-iv.o): New.
11846         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
11847         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
11848         num_loop_branches): New functions.
11849         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
11850         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
11851         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
11852         get_simple_loop_desc, free_simple_loop_desc): Declare.
11853         (simple_loop_desc): New inline function.
11854         (struct rtx_iv, struct niter_desc): New.
11855         * cfgloopmanip.c (loopify): Specify semantics more precisely.
11856         * expr.c (force_operand): Handle subregs of expressions created by
11857         loop unroller.
11858         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
11859         parts of the initialization to toplev.c
11860         * loop-unroll.c (loop_exit_at_end_p): New.
11861         (unroll_and_peel_loops): Call iv_analysis_done.
11862         (decide_peel_once_rolling, decide_peel_completely,
11863         decide_unroll_stupid, decide_unroll_constant_iterations,
11864         decide_unroll_runtime_iterations, decide_peel_simple,
11865         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
11866         unroll_loop_runtime_iterations): Use new simple loop analysis.
11867         * loop-unswitch.c (compare_and_jump_seq): New.
11868         (may_unswitch_on_p): Renamed to ...
11869         (may_unswitch_on): Use new iv analysis.
11870         (reversed_condition): Export.
11871         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
11872         * predict.c (estimate_probability): Use new simple loop analysis.
11873         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
11874         canon_condition, simplify_using_condition): Declare.
11875         * stor-layout.c (get_mode_bounds): New.
11876         * toplev.c (rest_of_handle_loop2): Some parts of
11877         initialization/finalization moved here from loop-init.c.
11878
11879 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11880
11881         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
11882         pointer.
11883         (CALL_USED_REGISTERS): Likewise.
11884         (REG_ALLOC_ORDER): Likewise.
11885         (REG_CLASS) <GENERAL_REGS>: Likewise.
11886
11887 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
11888
11889         * doc/md.texi (Insn Canonicalizations): Document left-chaining
11890         in associative operators.
11891         * rtlanal.c (commutative_operand_precedence): Create some new
11892         variables.  Prefer a commutative operand on the left, then
11893         binary expressions, then NEG and NOT.
11894
11895 2004-02-16  Matthias Klose  <doko@debian.org>
11896
11897         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
11898         in terms of SHLIB_SOVERSION.
11899         * config/m68k/t-slibgcc-elf-ver: New file.
11900         * config/pa/t-slibgcc-elf-ver: New file.
11901         * config.gcc (m68k-linux, parisc-linux): Use them when not
11902         sjlj exceptions are not configured.
11903
11904 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
11905
11906         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
11907
11908 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
11909
11910         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
11911
11912 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
11913
11914         * doc/sourcebuild.texi: Mention backends.html.
11915
11916 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
11917
11918         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
11919         line-map.c, line-map.h, var-tracking.c: Fix comment
11920         formatting.
11921
11922 2004-02-16  Richard Henderson  <rth@redhat.com>
11923
11924         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
11925
11926         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
11927
11928 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11929
11930         * config/h8300/h8300.md: Remove unnecessary parallels from
11931         all define_insn and define_split patterns.
11932
11933 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11934
11935         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
11936         "clobber").
11937
11938 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
11939
11940         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
11941         '%#'.
11942
11943 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11944
11945         * config/ia64/ia64.c, config/mips/mips.c,
11946         config/mmix/mmix-modes.def: Fix comment typos.
11947
11948 2004-02-15  Roger Sayle  <roger@eyesopen.com>
11949
11950         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
11951         (get_directive_line): Remove unused function prototype.
11952
11953 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11954
11955         * tree-inline.c (copy_body_r): Do not replace ret_label.
11956
11957 2004-02-14  Jan Hubicka  <jh@suse.cz>
11958
11959         * i386.c (x86_four_jump_limit): New variable.
11960         (k8_avoid_jump_misspredicts): Rename to ...
11961         (ix86_avoid_jump_misspredicts): .. this one.
11962         (ix86_pad_returns): Break out from ...
11963         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
11964         to.
11965         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
11966
11967 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11968
11969         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
11970         PARALLEL is NULL.
11971
11972 2004-02-14  Per Bothner  <per@bothner.com>
11973
11974         * fix-header.c (line_table):  Move local variable in main to global.
11975         * scan.h (line_table):  Use it.
11976         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
11977         line (recently renamed to src_loc) before calling recognized_function.
11978
11979 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
11980
11981         * Makefile.in: Fix comment typos.
11982
11983 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
11984
11985         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
11986         for start_value when it is directly moved into reg, and factorize
11987         the retrieval of GET_MODE (reg).
11988
11989 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11990
11991         * config/mips/mips-protos.h (mips_load_got_page): Delete.
11992         (mips_load_got_global): Delete.
11993         (mips_gotoff_page): Declare.
11994         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
11995         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
11996         UNSPEC_LOAD_GOT pattern rather than a MEM.
11997         (*load_got[sd]i): New patterns.
11998         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
11999         (mips_load_got_page, mips_load_got_global): Delete.
12000         (mips_gotoff_page): New function.
12001         (override_options): Don't initialize mips_got_alias_set.
12002
12003 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12004
12005         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12006         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12007         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12008         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12009         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12010         * config/mips/mips.c: Fix some overly-long lines.
12011         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12012         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12013
12014 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12015
12016         * configure.ac: Search for as, ld below libexec/gcc.
12017         * configure: Regenerate.
12018
12019 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12020
12021         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12022         __builtin_arm_setwcx ().
12023         * config/arm/arm.c (arm_expand_builtin): Generate operands
12024         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12025
12026 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12027
12028         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12029         and "wmuluh" to "wmulsm" and "wmulum", respectively.
12030         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12031         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12032         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12033         (_mm_mulhi_pu16): Likewise.
12034
12035 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
12036
12037         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
12038         DECL_NAME != 0 before dereferencing.
12039
12040 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
12041
12042         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
12043         (s390_output_addr_const_extra): Declare.
12044         (s390_output_pool_entry): Remove FILE * argument.
12045         * config/s390/s390.c (s390_output_symbolic_const): Remove.
12046         (s390_output_addr_const_extra): New function.
12047         (print_operand_address): Call output_addr_const instead of
12048         s390_output_symbolic_const.
12049         (print_operand): Likewise.
12050         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
12051         Remove FILE * argument.
12052         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12053         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12054         call.
12055
12056 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12057
12058         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12059         (struct edge, struct vertex, struct graph): New.
12060         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12061         free_graph): New functions.
12062
12063 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12064
12065         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12066         Use ".set macro" to avoid warnings about multi-instruction
12067         macros, since they're intentional.
12068
12069 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12070
12071         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12072         comment about STANDARD_EXEC_PREFIX.
12073
12074         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12075         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12076         for installing .1 manpages.  Add rules for installing cpp
12077         and gcov manpages under their installed names.
12078
12079 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12080
12081         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12082         host, but try LD_FOR_TARGET first.
12083         * configure: Rebuilt.
12084
12085 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12086
12087         * dbxout.c: Move declaration of dbxout_type_decl outside
12088         #ifdef DBX_DEBUGGING_INFO.
12089         * c-parse.in: Don't give the asmdef production a type.
12090
12091 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12092
12093         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12094         (debug_nothing_tree_int): Prototype.
12095         (dwarf_debug_hooks): Delete, unused.
12096         * debug.c (do_nothing_debug_hooks): Update.
12097         (debug_nothing_tree_int): New function.
12098         * langhooks.h (struct lang_hooks_for_decls):
12099         Remove builtin_type_decls field.
12100         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12101         (LANG_HOOKS_DECLS): Update.
12102         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12103         Use debug_hooks->type_decl.
12104         * dbxout.c (preinit_symbols): New static.
12105         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12106         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12107         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12108         for symbols to output.
12109         (dbxout_type_decl): New function.
12110         (dbxout_symbol): If called before dbxout_init has run, queue
12111         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12112         to TYPE_DECLs before emitting them.
12113         * xcoffout.c (assign_type_number): Delete.
12114         (xcoff_type_numbers): New static table.
12115         (xcoff_assign_fundamental_type_number): New function.
12116         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12117         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12118         * sdbout.c: Include varray.h.
12119         (deferred_global_decls): New static.
12120         (sdb_debug_hooks): Update.
12121         (sdbout_global_decl): If we can't emit something right now,
12122         remember it in deferred_global_decls.
12123         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12124         (sdbout_init): Initialize deferred_global_decls.
12125         * Makefile.in: Update dependencies of sdbout.o.
12126         * dwarf2out.c (dwarf2out_type_decl): New function.
12127         (dwarf2_debug_hooks): Update.
12128         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12129         * c-decl.c (getdecls): Just return 0.
12130         (check_for_loop_decls): Don't use getdecls.
12131         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12132         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12133
12134 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12135
12136         * config/s390/s390.c (s390_sched_reorder2): Remove.
12137         (TARGET_SCHED_REORDER2): Do not redefine.
12138
12139 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12140
12141         * c-parse.in (maybe_type_qual): Delete.
12142         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12143         (asm_argument): New grammar rules.
12144         (extdef_1): Use asmdef.
12145         (maybeasm): Move down with other asm rules; use simple_asm_expr.
12146         (xexpr): Move up with other expression rules.
12147         (stmt): Use asm_stmt.
12148
12149         * c-typeck.c (build_asm_expr): New function - body mostly
12150         pulled from build_asm_stmt.
12151         (build_asm_stmt): Just handle tacking on the volatile qualifier.
12152         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12153
12154 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12155
12156         PR bootstrap/13617
12157         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12158         (mips_declare_object): Make variadic.
12159         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12160         mips_output_aligned_decl_common.
12161         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12162         (mips_declare_object): Make variadic.
12163
12164 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12165
12166         * function.c (update_epilogue_consts): Teach about binary operations.
12167
12168         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12169         previous MEM_VOLATILE in REF.
12170         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12171         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12172
12173 2004-02-12  Gunther Nikl  <gni@gecko.de>
12174
12175         * config.gcc: Restore support for m68k-openbsd.
12176
12177 2004-02-12  Jan Hubicka  <jh@suse.cz>
12178
12179         * tree-optimize.c (tree_rest_of_compilation): Do not release
12180         DECL_ARGUMENTS.
12181
12182 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12183
12184         * doc/install.texi: Fix the spelling of "explicitly".
12185
12186 2004-02-11  Eric Christopher  <echristo@redhat.com>
12187
12188         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12189         duplicate argument structure of cpp_interpret_string.
12190         * cpphash.h: Move prototype...
12191         * cpplib.h: Here.
12192         * cpplib.c: Fix calls to match new function signature.
12193
12194 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12195
12196         PR c/456
12197         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12198         constant expressions at all outside C99 mode if pedantic.
12199
12200 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12201
12202         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12203         (log10_optab, log2_optab): Define corresponding macros.
12204         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12205         * genopinit.c (optabs): Implement log10_optab and log2_optab
12206         using log10?f2 and log2?f2 patterns.
12207         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12208         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12209         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12210         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12211
12212         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12213         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12214         log2, log2f and log2l built-ins as inline x87 intrinsics.
12215
12216 2004-02-11  Richard Henderson  <rth@redhat.com>
12217
12218         PR target/1532
12219         * flow.c (insn_dead_p): A clobber of a dead hard register is a
12220         dead insn after reload.
12221
12222 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12223
12224         * tree.h (frame_base_decl): Add GTY marker.
12225         * var-tracking.c (frame_base_decl): Likewise.
12226
12227 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
12228
12229         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12230         incorrect, hunk.
12231         (add_location_or_const_value_attribute): Use text_section_label,
12232         not TEXT_SECTION_NAME.
12233
12234 2004-02-11  Per Bothner  <per@bothner.com>
12235
12236         Represent column numbers using line-map's source_location.
12237         The "next available source_location" is now managed internally by
12238         line-maps.c rather than by clients.
12239         * line-map.h (struct line_map):  New field column_bits.
12240         <from_line>:  Rename field to start_location.
12241         (struct line_maps):  New fields highest_location and max_column_hint.
12242         (linemap_check_files_exited):  New declaration.
12243         (linemap_line_start):  New declaration.
12244         (linemap_add):  Remove from_line parameter; use highest_location field.
12245         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
12246         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
12247         (CURRENT_LINE_MAP):  Remove macro.
12248         (linemap_position_for_column):  New inline function.
12249         * line-map.c (linemap_init):  Clear new fields.
12250         (linemap_check_files_exited):  New function, extracted from ...
12251         (linemap_free):  Use linemap_check_files_exited.
12252         (linemap_add):  Remove from_line parameter.  Various updates.
12253         (linemap_line_start):  New function.
12254         (linemap_lookeup):  Update for new field names.
12255         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
12256         linemap_position_for_column may unpredictably change the current map,
12257         it is cleaner and simpler for us to not cache it in cpp_reader.
12258         (struct cpp_buffer):  New sysp field.
12259         Changed warned_cplusplus_comments and from_stage3 to bitfields.
12260         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
12261         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
12262         current map using linemap_lookup.
12263         (do_linemarker):  Also set buffer's sysp field.
12264         (destringize_and_run):  No longer need to decrement current line.
12265         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
12266         (search_path_head, open_file_failed):  Use buffer's sysp.
12267         (cpp_make_system_header):  Get current map using linemap_lookup.
12268         Also set buffer's sysp flag.
12269         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
12270         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
12271         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
12272         (struct cpp_reader):  ... and adding saved_line_base field.
12273         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12274         Update accordingly.  Don't adjust line.
12275         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
12276         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
12277         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
12278         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
12279         * cpplex.c (_cpp_lex_direct):  Likewise.
12280         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
12281         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
12282         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
12283         Remove col field as it is now subsumed by src_loc.
12284         * cpperror.c:  Update various field, parameter, and macro names.
12285         (print_location):  If col==0, try SOURCE_COLUMN of line.
12286         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
12287         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
12288         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12289         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
12290         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
12291         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
12292         (_cpp_lex_direct):  Use linemap_position_for_column.
12293         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
12294         parameter.  Instead get it from the line_table global.  Adjust callers.
12295         (print):  Remove map field.  Replace line field to src_line.
12296         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
12297         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
12298         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
12299         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12300         * cpptrad.c (copy_comment):  Rename variable.
12301         * c-lex.c (map):  Remove static variable, for same reason we removed
12302         cpp_reader's map field.
12303         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
12304         to call linemap_lookup.
12305         (cb_line_change):  Token's line field replaced by src_loc.
12306         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
12307         Don't save new_map.
12308
12309         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
12310         source_location.
12311
12312 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12313
12314         * config/rs6000/altivec.md (*movv4si_internal): At least one
12315         operand must be register_operand.
12316         (*movv8hi_internal1): Likewise.
12317         (*movv16qi_internal1): Likewise.
12318         (*movv4sf_internal1): Likewise.
12319
12320 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
12321
12322         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12323         operand.
12324         (movv4hi_internal): Same.
12325         (movv2sf_internal): Same.
12326         (movv1di_internal): Same.
12327
12328 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
12329
12330         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
12331         TARGET_OLDABI consistently.
12332         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12333         mips_va_arg,override_options,compute_frame_size,
12334         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12335         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
12336         and TARGET_OLDABI consistently.
12337         * config/mips/mips.md (exception_receiver): Likewise.
12338         * config/mips/linux64.h: Likewise.
12339
12340 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12341
12342         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12343         Set AltiVec ABI and vrsave as default for ppc64 linux.
12344         (init_cumulative_args): Post error, if try to return
12345         value in AltiVec register without enable AltiVec.
12346         (function_arg_advance): Ditto for passing arguments.
12347
12348 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
12349
12350         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12351         a label before updating its usage count.
12352
12353 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
12354
12355         * doc/install.texi: Remove extra cd.
12356
12357 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
12358
12359         * c-common.c (vector_size_helper): Remove; call
12360         reconstruct_complex_type() instead.
12361         * tree.c (reconstruct_complex_type): New function
12362         (formerly vector_size_helper() in c-common.c).
12363         (make_vector): Make externally visible.
12364         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12365
12366 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12367
12368         * config/h8300/h8300-protos.h: Add a prototype for
12369         h8300_regs_ok_for_stm.
12370         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12371         * config/h8300/h8300.md (stm_h8300s_2_advanced,
12372         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12373         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12374         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12375         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12376         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12377         ldm_h8300s_4_normal, ldm_h8300s_4): Use
12378         h8300_regs_ok_for_stm().
12379
12380 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12381
12382         PR c/14088
12383         * real.c (real_from_string): Look for 'X' as well as 'x' in
12384         hexfloat strings.
12385
12386 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12387
12388         * config/h8300/h8300.md: Remove an incorrect comment about
12389         peephole2.  Add comments.
12390
12391 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
12392
12393         PR/14058
12394         * emit-rtl.c (set_decl_incoming_rtl): New.
12395         * tree.h (set_decl_incoming_rtl): New.
12396         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12397         DECL_INCOMING_RTL.
12398         * ada/misc.c (adjust_decl_rtl): Likewise.
12399
12400 2004-02-10  Per Bothner  <per@bothner.com>
12401
12402         * c-opts.c (c_common_post_options):   Don't emit working directory
12403         in cpp output if -P was specified.
12404
12405 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12406
12407         PR c/14092
12408         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12409         negate_expr back to the original type.
12410
12411 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
12412
12413         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12414         bump retaddr here.
12415
12416 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12417
12418         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12419         gen_lowpart_SUBREG): Move under the file in which they
12420         are actually declared.
12421
12422 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
12423
12424         * doc/sourcebuild.texi: Add libada documentation.
12425
12426         * doc/install.texi: Update documentation on Ada build, now
12427         that the GNAT lib and tools are built automatically.
12428
12429 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
12430
12431         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12432         && TARGET_IRIX.
12433
12434 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
12435
12436         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12437         boundaries outside build_component_ref() call (a macro in ObjC++).
12438
12439 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
12440
12441         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12442         (init_cumulative_args): Likewise.
12443         (a7_overlap_mentioned_p): Delete prototype.
12444         * config/xtensa/xtensa.c (struct machine_function): Replace
12445         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12446         Add set_frame_ptr_insn field.
12447         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12448         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12449         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
12450         at the function entry and replace the operand with the pseudo.
12451         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
12452         argument and record this flag in CUMULATIVE_ARGS.
12453         (function_arg): Remove result_mode and special-case code to handle
12454         arguments in a7.  Instead, set need_a7_copy flag when there is an
12455         incoming argument in a7.
12456         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12457         and use the value recorded in cfun->machine->set_frame_ptr_insn.
12458         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
12459         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
12460         special-case code.
12461         (a7_overlap_mentioned_p): Delete.
12462         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12463         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12464         arguments to init_cumulative_args and pass "incoming" flag instead.
12465         (BLOCK_REG_PADDING): Delete.
12466         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12467         checks for reload_in_progress and reload_completed.  Update calls to
12468         xtensa_copy_incoming_a7.
12469         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
12470         to call xtensa_copy_incoming_a7.
12471
12472 2004-02-09  DJ Delorie  <dj@redhat.com>
12473
12474         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12475         longer modify standard_exec_prefix, standard_bindir_prefix, or
12476         standard_startfile_prefix.
12477
12478 2004-02-09  James E Wilson  <wilson@specifixinc.com>
12479
12480         PR c++/11295
12481         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12482         to expand_expr_real call, and pass in alt_rtl as last argument.
12483
12484         PR libstdc++/5625
12485         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12486         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12487         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12488         * except.c (expand_builtin_extend_pointer): New.
12489         * except.h (expand_builtin_extend_pointer): Declare.
12490
12491 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
12492
12493         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12494         unaligned loads and stores.
12495
12496 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12497
12498         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12499         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12500
12501         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12502         * config/mips/iris5.h: ... here.
12503         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12504
12505         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12506         * config/mips/iris5.h: ... here.
12507
12508 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12509
12510         * configure.ac: Remove default executable files before AC_PROG_CC.
12511         * configure: Regenerate.
12512
12513 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
12514
12515         PR target/13721
12516         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12517         print a operand other than a register.
12518
12519 2004-02-09  Roger Sayle  <roger@eyesopen.com>
12520
12521         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
12522         tree code rather than call fold_convert, which doesn't specify a
12523         default floating point to integer conversion.
12524
12525 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
12526
12527         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
12528         code to support SGS assembler.  Reformat adjacent code where possible.
12529         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
12530         definition.
12531         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
12532         for '%#'.
12533         * config/m68k/linux.h, config/m68k/m68k.c,
12534         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
12535         macros and asm_printf() format strings.
12536         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
12537         * config/m68k/linux.h: Update copyright.
12538         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
12539
12540 2004-02-08  Andreas Schwab  <schwab@suse.de>
12541             Bernardo Innocenti  <bernie@develer.com>
12542
12543         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
12544         REGISTER_PREFIX.
12545         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
12546         frame pointer register, overridable by OS targets.
12547         * (M68K_REGNAME): Macro to obtain register name for asm output,
12548         eventually replacing %a6 with M68K_FP_REG_NAME.
12549         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
12550         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
12551         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
12552         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
12553         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
12554
12555 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12556
12557         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
12558         hook_rtx_tree_int_null.
12559         * targhooks.c (default_struct_value_rtx): Remove.
12560         * targhooks.h: Remove the prototype for
12561         default_struct_value_rtx.
12562         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12563         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
12564         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12565         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
12566         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
12567         config/rs6000/rs6000.c, config/s390/s390.c,
12568         config/stormy16/stormy16.c, config/v850/v850.c,
12569         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
12570         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
12571
12572 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
12573
12574         * README.Portability: Change "ISO C89" to "ISO C90".
12575         * c-parse.in (primary, initelt): Likewise.
12576
12577 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
12578
12579         * real.c (encode_ibm_extended): Normalize the input value before
12580         converting it to a double.  Handle the case where a normal value
12581         rounds to infinity.
12582
12583 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12584
12585         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
12586         warning.
12587         * cse.c (preferrable): Change to preferable. Update all of its
12588         callers.
12589         * genautomata.c (ainsn): Change
12590         first_ainsn_with_given_equialence_num to
12591         first_ainsn_with_given_equivalence_num.  Update all of its
12592         references.
12593
12594 2004-02-08  Jan Hubicka  <jh@suse.cz>
12595
12596         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
12597
12598 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
12599
12600         * function.c (assign_parms): Fix formatting.
12601
12602 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12603
12604         * default.h (PROMOTE_PROTOTYPES): Remove.
12605         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
12606         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
12607         EXPAND_BUILTIN_SAVEREGS): Poison.
12608         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
12609         hook_bool_tree_false.
12610         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12611         * target.h: Replace SETUP_INCOMING_VARARGS with
12612         targetm.calls.setup_incoming_varargs().
12613         * targhooks.c (default_promote_function_return): Remove.
12614         (default_promote_prototypes): Likewise.
12615         (default_struct_value_rtx): Always abort().
12616         (default_expand_builtin_saveregs): Always print an error
12617         message.
12618         (default_setup_incoming_varargs): Do nothing.
12619         (default_pretend_outgoing_varargs_named): Don't depend on
12620         SETUP_INCOMING_VARARGS.
12621         * targhooks.h: Remove the prototype for
12622         default_promote_function_return and
12623         default_promote_prototypes.
12624
12625 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12626
12627         * system.h (SHARED_SECTION_ASM_OP): Poison.
12628         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
12629         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
12630
12631 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12632
12633         Bug 13856
12634         * c-decl.c (diagnose_mismatched_decls): Only give special
12635         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
12636         is also true.
12637         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
12638         DECL_FUNCTION_CODE when defining a built-in function.
12639         Don't update DECL_ESTIMATED_INSNS.
12640         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
12641         FUNCTION_DECLs.
12642         * tree.h: Delete DECL_ESTIMATED_INSNS.
12643         * tree-inline.c (struct inline_data): Delete inlined_insns field.
12644         (expand_call_inline, optimize_inline_calls): Don't update
12645         DECL_ESTIMATED_INSNS nor inlined_insns.
12646         * cgraphunit.c (cgraph_analyze_function): Don't update
12647         DECL_ESTIMATED_INSNS.
12648
12649 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12650
12651         * c-common.c (shadow_warning): Delete.
12652         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
12653         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
12654         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
12655         * c-parse.in (free_parser_stacks): Delete.
12656
12657 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
12658
12659         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
12660         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
12661         Use the top level mkinstalldirs, not the one in the gcc subdir.
12662         * mkinstalldirs: Remove (from the gcc subdir).
12663
12664 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12665
12666         PR middle-end/13696
12667         * fold-const.c (fold_convert): New function to provide type
12668         conversion to the middle-end without using convert.
12669         (negate_expr, associate_trees, size_diffop, omit_one_operand,
12670         operand_equal_for_comparison_p, pedantic_omit_one_operand,
12671         invert_truthvalue, optimize_bit_field_compare, range_binop,
12672         decode_field_reference, make_range, build_range_check, unextend,
12673         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
12674         fold_binary_op_with_conditional_arg, fold_inf_compare,
12675         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
12676         convert with calls to fold_convert.
12677
12678 2004-02-07  Jan Hubicka  <jh@suse.cz>
12679
12680         * genrecog.c (find_operand): add extra argument stop.
12681         (validate_pattern): Verify that mach_dup is duplicating operand
12682         defined lexically earlier.
12683
12684 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12685
12686         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
12687         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12688         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
12689         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
12690         config/ia64/ia64.h, config/ip2k/ip2k.h,
12691         config/iq2000/iq2000.h, config/mips/iris5.h,
12692         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
12693         config/rs6000/aix51.h, config/rs6000/aix52.h,
12694         config/rs6000/darwin.h, config/rs6000/rs6000.h,
12695         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
12696         config/sparc/linux.h, config/sparc/linux64.h,
12697         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
12698         config/xtensa/xtensa.h: Remove the definitions of
12699         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
12700         MAX_WCHAR_TYPE_SIZE.
12701         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12702         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
12703
12704 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
12705
12706         PR bootstrap/13990
12707         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
12708         gen_rtx_NE.
12709
12710 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
12711
12712         * var-tracking.c (vt_add_function_parameters): Surround checkings by
12713         #ifdef ENABLE_CHECKING and #endif.
12714
12715 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12716
12717         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
12718         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
12719         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
12720         integer types and floating point with unsafe_math_optimizations.
12721         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
12722         Optimize A - B as A + (-B), if B is easily negated.
12723
12724 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12725
12726         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
12727         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
12728         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
12729         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
12730         Update copyright.
12731
12732 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12733
12734         * c-ppoutput.c, var-tracking.c: Fix comment typos.
12735
12736 2004-02-06  James E Wilson  <wilson@specifixinc.com>
12737
12738         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
12739         glibc 2.3 or better.
12740
12741 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12742
12743         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
12744         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
12745
12746 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
12747
12748         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
12749         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
12750         (SHLIB_MKMAP_OPTS): Delete.
12751         (TARGET_LIBGCC2_CFLAGS): Add -specs.
12752         (bispecs): Add rule.
12753         * config/rs6000/libgcc-ppc64.ver: New file.
12754         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
12755         (__floatdidf, __floatdisf): Optimize multiply.
12756         (__fixunstfdi): New function.
12757         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
12758         real and imag parts larger than one register.
12759         (function_arg): Correct type of reg used when fp arg split partially
12760         to stack.
12761         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
12762         and __MACH__ or __powerpc64__.
12763
12764 2004-02-06  Roger Sayle  <roger@eyesopen.com>
12765             Ulrich Weigand  <uweigand@de.ibm.com>
12766
12767         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
12768         of gen_highpart or gen_lowpart when the floating point format is
12769         wider than the result mode.
12770
12771 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
12772
12773         * dwarf2out.c (loclabel_num): Move into #ifdef
12774         DWARF2_DEBUGGING_INFO.
12775
12776 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
12777
12778         * objc/objc-act.c (build_super_template) the 'class' field of
12779         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
12780         (get_super_receiver): Likewise.
12781
12782 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12783
12784         * reload1.c (check_eliminable_occurrences): Optimize the reset
12785         of can_eliminate.
12786         (eliminate_regs_in_insn): Likewise.
12787
12788 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
12789             Josef Zlomek  <zlomekj@suse.cz>
12790
12791         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
12792         at the beginning of function, call dwarf2out_var_location for
12793         NOTE_INSN_VAR_LOCATION note.
12794         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
12795         decl_loc_table): New.
12796         (lookup_decl_loc): New function.
12797         (add_var_loc_to_decl): New function.
12798         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
12799         only if can_use_fbreg.
12800         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
12801         functions.
12802         (loc_descriptor): Likewise. Process VAR_LOCATION.
12803         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
12804         (loc_descriptor_from_tree): Call mem_loc_descriptor with
12805         can_use_fbreg == true.
12806         (add_location_or_const_value_attribute): Added parameter enum
12807         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
12808         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
12809         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
12810         with attr == DW_AT_location.
12811         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
12812         if frame_base_decl is defined and has a location list.
12813         (gen_variable_die): Call add_location_or_const_value_attribute with
12814         attr == DW_AT_location.
12815         (dwarf2out_var_location): New function.
12816         (dwarf2out_begin_function): New function.
12817         (dwarf2out_init): Create decl_loc_table.
12818
12819 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12820
12821         * loop.c (force_movables): Transitively increase the priorities of
12822         all insns forces by an insn, not just the first one.
12823
12824 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
12825             Daniel Berlin <dberlin@dberlin.org>
12826
12827         Josef Zlomek  <zlomekj@suse.cz>
12828         * Makefile.in (var-tracking.o): New.
12829         * common.opt (fvar-tracking): New.
12830         * flags.h (flag_var_tracking): New.
12831         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
12832         * opts.c (common_handle_option): Add OPT_fvar_tracking.
12833         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
12834         * rtl.c (note_insn_name): Likewise.
12835         * rtl.def (VAR_LOCATION): New.
12836         * rtl.h (NOTE_VAR_LOCATION): New.
12837         (NOTE_VAR_LOCATION_DECL): New.
12838         (NOTE_VAR_LOCATION_LOC): New.
12839         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
12840         (variable_tracking_main): New exported function.
12841         * timevar.def (TV_VAR_TRACKING): New.
12842         * toplev.c (enum dump_file_index): Added DFI_vartrack.
12843         (dump_file): "vartrack" was added (-dV).
12844         (flag_var_tracking): New.
12845         (f_options): "var-tracking" was added.
12846         (rest_of_handle_variable_tracking): New function.
12847         (rest_of_compilation): Run variable tracking.
12848         (process_options): If user has not specified flag_var_tracking set it
12849         according to optimize, debug_info_level and debug_hooks.
12850         * tree.h (frame_base_decl): New.
12851         * var-tracking.c: New file.
12852         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
12853         (ia64_override_options): Set flags to run variable tracking in machine
12854         dependent reorg instead of toplev.c.
12855         (ia64_reorg): Run variable tracking if wanted.
12856         * doc/invoke.texi: Mention variable tracking in -dV,
12857         add and -fvar-tracking.
12858         * doc/passes.texi: Added variable tracking pass.
12859
12860         Daniel Berlin <dberlin@dberlin.org>
12861         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
12862         * dbxout.c (dbx_debug_hooks): Likewise.
12863         (xcoff_debug): Likewise.
12864         * debug.c (do_nothing_debug_hooks): Likewise.
12865         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
12866         * dwarfout.c (dwarf_debug_hooks): Likewise.
12867         * sdbout.c (sdb_debug_hooks): Likewise.
12868         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12869         * final.c (final_scan_insn): Call var_location debug hook for each
12870         NOTE_INSN_VAR_LOCATION.
12871
12872 2004-02-06  Jan Hubicka  <jh@suse.cz>
12873
12874         * flow.c (update_life_info): Allocate reg_deaths when called from
12875         scheudler.
12876         (attempt_auto_inc):  Update life ranges accordingly.
12877
12878 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12879
12880         PR debug/11816
12881         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
12882
12883 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12884
12885         * cfganal.c (flow_call_edges_add): Never split a libcall block.
12886
12887 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
12888
12889         * dwarf2out.c (output_loc_list): Don't use deltas if we have
12890         a separate line info table in use.
12891         Use the correct size for terminators.
12892         (output_die): Use offset, not delta.
12893
12894 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
12895
12896         * doc/invoke.texi: Remove the pni option from -mfpmath=.
12897
12898 2004-02-06  Jan Hubicka  <jh@suse.cz>
12899
12900         * recog.c (split_all_insns): Do not update reg info.
12901         * regrename.c (regrename_optimize): Likewise.
12902         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
12903         * flow.c (struct propagate_block_info): Add insn_num field.
12904         (reg_deaths): New array.
12905         (life_analysis): Free reg_deaths info.
12906         (allocate_reg_life_data): Allocate reg_deaths array.
12907         (propagate_one_insn): Use new array.
12908         (init_propagate_block): Initialize it.
12909         (free_propagate_block_info): Finish compuation of
12910         REG_LIVE_LENGTH
12911         (attempt_auto_inc): Sanity check that REG_INFO is not
12912         computed at same time.
12913         (mark_used_regs): Update new array.
12914
12915         * reg-stack.c (subst_stack_regs): Unshare clobbers before
12916         substitution.
12917
12918 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12919
12920         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
12921         *extendqisi2_short_displ.
12922
12923 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
12924
12925         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
12926         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
12927         (emit_library_call_value_1): Likewise pass nargs.
12928         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
12929         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
12930         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
12931         parameter instead of scanning TYPE_ARGS_TYPES to count args.
12932         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
12933         prototype.
12934         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
12935         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
12936         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
12937         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
12938         INIT_CUMULATIVE_ARGS.
12939         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
12940         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
12941         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
12942         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
12943         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12944         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
12945         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
12946         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
12947         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
12948         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
12949         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
12950         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
12951
12952 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12953
12954         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
12955         possible.
12956
12957 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12958
12959         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
12960         note containing (plus (reg) (const_int)), where reg is an
12961         eliminable reg, then perform the register elimination without
12962         depending on eliminate_regs().
12963
12964 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12965
12966         * config/arc/arc.c (arc_return_in_memory): Check the return
12967         value of int_size_in_bytes against -1.  Don't check
12968         TREE_ADDRESSABLE.
12969         * config/avr/avr.c (avr_return_in_memory): Check the return
12970         value of int_size_in_bytes against -1.
12971         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
12972         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
12973         Likewise.
12974         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
12975         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
12976         Likewise.
12977
12978 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12979
12980         * config/frv/frv-protos.h: Remove the prototype for
12981         frv_setup_incoming_varargs.
12982         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
12983         (frv_setup_incoming_varargs): Make it static.
12984         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
12985
12986 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12987
12988         * config/fr30/fr30-protos.h: Remove the prototype for
12989         fr30_setup_incoming_varargs.
12990         Update the prototypes for fr30_num_arg_regs and
12991         fr30_function_arg_partial_nregs.
12992         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
12993         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12994         (fr30_setup_incoming_varargs): Make it static.
12995         Add argument second_time.  Don't do anything when second_time
12996         is nonzero.
12997         (fr30_num_arg_regs): Change the type of the first argument to
12998         enum machine_mode.
12999         (fr30_function_arg_partial_nregs): Change the type of the
13000         second argument to enum machine_mode.
13001         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13002         (SETUP_INCOMING_VARARGS): Remove.
13003
13004 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13005
13006         * config/arc/arc-protos.h: Remove the prototype for
13007         arc_setup_incoming_varargs.
13008         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13009         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13010         (arc_setup_incoming_varargs): Make it static.
13011         (arc_external_libcall): Likewise.
13012         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13013         Remove the commented-out definition of
13014         ASM_OUTPUT_EXTERNAL_LIBCALL.
13015
13016 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13017
13018         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13019         to $$(slibdir) in the installation commands.
13020
13021 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13022
13023         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13024         with inner_regno, not regno.
13025         * rtlanal.c (refers_to_regno_p): Same.
13026
13027 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13028
13029         * config.gcc: Remove i370 support.
13030
13031 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13032
13033         * doc/install.texi:  Update automake and autoconf version
13034         requirements.  Note where to find gcj automake version.
13035
13036 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13037
13038         * Makefile.in (generate-manpages): Move dependencies to ...
13039         (man): here.
13040         * doc/makefile.texi: Document new targets.
13041         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
13042
13043 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13044
13045         PR/13485
13046         Makefile.in (srcextra):  Add a level of indirection to ...
13047         (gcc.srcextra): ... here.
13048         (po-generated): Delete.
13049         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
13050         options.c.
13051         (start.encap): Remove superfluous lang.srcextra dependency.
13052         objc/Make-lang.in (po-generated):  Delete.
13053
13054 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13055
13056         * config/ia64/ia64.c (REG_GP): Remove.
13057
13058 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13059
13060         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13061
13062 2004-02-05  Devang Patel  <dpatel@apple.com>
13063
13064         * dwarf2out.c (force_type_die): Look up input type itself
13065         instead of root_type() of type.
13066
13067 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13068
13069         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13070         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13071         pre-reload splitters are transformed to post-reload
13072         define_insn_and_split patterns.
13073         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13074
13075 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13076
13077         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13078         TARGET_PROMOTE_PROTOTYPES.
13079
13080 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13081
13082         PR middle-end/13750
13083         Revert:
13084         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13085         PR pch/13361
13086         * c-typeck.c (constructor_asmspec): Delete.
13087         (struct initializer_stack): Delete field 'asmspec'.
13088         (start_init): Delete saving of asmspec.
13089         (finish_init): Don't update constructor_asmspec.
13090         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13091         * stmt.c (expand_asm): Duplicate strings from tree.
13092         (expand_asm_operands): Likewise.
13093         * tree.c (tree_size): Update computation of size of STRING_CST.
13094         (make_node): Don't make STRING_CST nodes.
13095         (build_string): Allocate string with tree node.
13096         * tree.def (STRING_CST): Update comment.
13097         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13098         (tree_string): Place contents of string in tree node.
13099         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13100         from tree.
13101
13102 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13103
13104         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13105         msgid.
13106
13107 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13108
13109         * config/rs6000/altivec.md (*movv4si_internal): At least one
13110         operand must be altivec_register_operand.
13111         (*movv8hi_internal1): Likewise.
13112         (*movv16qi_internal1): Likewise.
13113         (*movv4sf_internal1): Likewise.
13114
13115 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13116
13117         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13118         * configure: Regenerate.
13119
13120 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13121
13122         * doc/install.texi: Update description of --gxx-include-dir to
13123         give correct default value.
13124
13125 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13126
13127         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13128         8 with MAC_REG.
13129
13130 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13131
13132         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13133         gen_rtx_PARALLEL.
13134
13135 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13136
13137         * emit-rtl.c: Update the comment about the file.
13138
13139 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13140
13141         * sourcebuild.texi (Test Idioms): Update testcase naming
13142         conventions.
13143
13144 2004-02-04  Per Bothner  <per@bothner.com>
13145
13146         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13147         * c-ppoutput.c (pp_dir_change):  New function.
13148         * c-common.h (pp_dir_change):  New declaration.
13149         * cpplib.h (struct cpp_options):  Remove working_directory field.
13150         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
13151         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
13152         Don't handle -fworking_directory here, but in c_common_post_options.
13153         (read_original_directory): Don't back up when done.
13154         Don't clear no-longer used working_directory flag.
13155         * cpplib.h:  Update declarations to match.
13156         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13157         (init_c_lex):  Don't set dir_change callback here, since we want
13158         to set it even if flag_preprocess_only.
13159         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13160         (c_common_post_options):  Set dir_change callback.
13161         Call pp_dir_change if approporiate.
13162         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13163         unneeded parameter and result. Do LC_RENAME for <built-in>.
13164         (c_common_post_options):  Call cpp_read_main_file here instead.
13165         (c_common_init):  Update accordingly.
13166         (push_command_line_include):  Don't cpp_push_main_file.
13167         Do LC_RENAME rather than LC_LEASE to get back to main file.
13168         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13169         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13170         files, but call finish_options for all files.
13171         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13172         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13173         cpp_find_main_file + cpp_push_main_file.
13174         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13175         * opts.c (handle_options):  Only set main_input_filename first time.
13176
13177 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13178
13179         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13180
13181 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13182
13183         * reload.c (find_equiv_reg): When checking for register overlap,
13184         don't index hard_regno_nregs with a pseudo-reg.
13185
13186 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13187
13188         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13189
13190 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13191
13192         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13193         against FIRST_PSEUDO_REGISTER.
13194
13195 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13196
13197         * Makefile.in: Move target, host overrides after per-language
13198         fragments.
13199
13200         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13201         (GNATLIBCFLAGS): Remove -g.
13202
13203 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13204
13205         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13206         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13207         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13208         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13209         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13210         config/sparc/sparc.c, config/vax/vax.c: Revert the
13211         replacements of "FALLTHRU" with "Fall through" done in the
13212         previous patch.
13213
13214 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13215
13216         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13217         config/arm/arm.c, config/arm/arm.md,
13218         config/cris/cris-protos.h, config/fr30/fr30.c,
13219         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13220         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13221         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13222         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13223         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13224         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13225         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13226         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13227         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13228         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13229         config/s390/s390.md, config/sparc/netbsd-elf.h,
13230         config/sparc/openbsd.h, config/sparc/sparc.c,
13231         config/xtensa/lib2funcs.S: Fix comment formatting.
13232
13233 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13234
13235         * config/alpha/alpha.c, config/arc/arc.c,
13236         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13237         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13238         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13239         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13240         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13241         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13242         config/iq2000/iq2000.c, config/m32r/m32r.c,
13243         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13244         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13245         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13246         config/rs6000/rs6000.h, config/sparc/sparc.c,
13247         config/vax/vax.c: Fix comment typos.  Follow spelling
13248         conventions.
13249
13250 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13251
13252         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13253         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13254         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13255         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13256         config/arm/fpa.md, config/arm/iwmmxt.md,
13257         config/arm/netbsd-elf.h, config/arm/netbsd.h,
13258         config/m68hc11/m68hc11.md, config/mips/iris5.h,
13259         config/mn10300/mn10300.md, config/rs6000/altivec.md,
13260         config/sparc/netbsd-elf.h: Update copyright.
13261
13262 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13263
13264         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13265         for all modes whose size is greater than 8 bytes if ARCH32.
13266         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13267         by reference if ARCH32.
13268
13269 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
13270
13271         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13272
13273 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13274
13275         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13276         to before adddi3 insn patterns.
13277         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13278         "reload_insi"): Move to before addsi3 insn patterns.
13279
13280 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
13281
13282         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13283         parameter.  Use it instead of current_function_is_thunk.
13284         * function.h (struct function): Update documentation for is_thunk.
13285         * tree.h (CALL_FROM_THUNK_P): New macro.
13286         * config/alpha/alpha.c (alpha_sa_mask): Do not check
13287         no_new_pseudos when testing current_function_is_thunk.
13288         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13289
13290 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13291
13292         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13293         TARGET_SETUP_INCOMING_VARARGS.
13294
13295 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13296
13297         * emit-rtl.c (gen_rtx): Remove.
13298         * genattrtab.c: Don't mention gen_rtx in a comment.
13299         * rtl.h: Remove the prototype for gen_rtx.
13300         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13301
13302 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13303
13304         * config/arc/arc.h, config/fr30/fr30.h
13305         (SETUP_INCOMING_VARARGS): Remove the target-independent
13306         comments.
13307         * doc/tm.texi: Don't mention deprecated target macros.
13308
13309 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13310
13311         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13312         target-independent comment.
13313
13314 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13315
13316         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13317         mention deprecated target macros.
13318
13319 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13320
13321         * config.gcc: Remove obsolete ports and configurations.
13322         * config/linux-aout.h, config/netware.h,
13323         config/t-linux-gnulibc1, config/d30v/abi,
13324         config/d30v/d30v-protos.h, config/d30v/d30v.c,
13325         config/d30v/d30v.h, config/d30v/d30v.md,
13326         config/d30v/libgcc1.asm, config/d30v/t-d30v,
13327         config/dsp16xx/dsp16xx-modes.def,
13328         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13329         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13330         config/i370/README, config/i370/i370-c.c,
13331         config/i370/i370-protos.h, config/i370/i370.c,
13332         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13333         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13334         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13335         config/i386/moss.h, config/i386/netware.h,
13336         config/i386/svr3.ifile, config/i386/svr3dbx.h,
13337         config/i386/svr3gas.h, config/i386/svr3z.ifile,
13338         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13339         config/i960/i960-c.c, config/i960/i960-coff.h,
13340         config/i960/i960-modes.def, config/i960/i960-protos.h,
13341         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13342         config/i960/rtems.h, config/i960/t-960bare,
13343         config/m68k/hp310.h, config/m68k/hp320.h,
13344         config/m68k/hp320base.h, config/m68k/m68kv4.h,
13345         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13346         Remove.
13347         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13348         doc/md.texi: Remove mentions of obsolete ports.
13349
13350 2004-02-04  Jan Hubicka  <jh@suse.cz>
13351
13352         * alias.c (find_base_term, get_addr):  Do not dereference NULL
13353         pointer when all VALUE's locations has been invalidated.
13354         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13355
13356 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
13357
13358         * doc/invoke.texi (x86 options): Fix spelling/wording.
13359
13360 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
13361
13362         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13363         put the original string in a comment.
13364         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13365         * config/mips/mips.c (mips_output_ascii): Likewise.
13366         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13367
13368 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13369
13370         * system.h (GIV_SORT_CRITERION): Poison.
13371         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13372         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13373
13374 2004-02-03  Roger Sayle  <roger@eyesopen.com>
13375
13376         PR target/9348
13377         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
13378         multiplies with a multiplication of the wrong signedness, its the
13379         signedness of the multiplication that we've performed that needs to
13380         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
13381         if expand_mult_highpart_adjust places the result in target.
13382
13383 2004-02-03  Richard Henderson  <rth@redhat.com>
13384
13385         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13386
13387 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
13388
13389         * config.gcc (sh[234]l): Use little endian fragments.
13390
13391 2004-02-03  Paul Koning  <pkoning@equallogic.com>
13392
13393         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13394         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13395         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13396         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13397         floating point format.
13398         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13399         the above functions.
13400         (output_move_quad): Output float values in correct target format.
13401         (legitimate_const_double_p): New function.
13402         * config/pdp11/pdp11.h: Fix typos.
13403         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13404         (TARGET_FLOAT_FORMAT): Ditto.
13405         (pdp11_f_format, pdp11_d_format): Add external declarations.
13406         (MAX_REGS_PER_ADDRESS): Corrected.
13407         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13408         (PRINT_OPERAND): Output float literals in target format.
13409
13410 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
13411
13412         PR c++/13975
13413         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13414         TI_PRIVATE.
13415         (access_public_node): Redefine.
13416         (access_protected_node): Likewise.
13417         (access_private_node): Likewise.
13418         * tree.c (build_common_tree_nodes): Create access_public_node,
13419         access_protected_node, and access_private_node.
13420
13421 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
13422
13423         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13424         (MASK_INLINE_INT_DIV_THR): Ditto.
13425         (MASK_INLINE_SQRT_LAT): Ditto.
13426         (MASK_INLINE_SQRT_THR): Ditto.
13427         (MASK_DWARF2_ASM): Ditto.
13428         (MASK_EARLY_STOP_BITS): Ditto.
13429
13430 2004-02-02  Paul Brook  <paul@codesourcery.com>
13431
13432         Merge from csl-arm-branch.
13433
13434         2004-01-30  Paul Brook  <paul@codesourcery.com>
13435
13436         * aof.h (REGISTER_NAMES): Add vfp reg names
13437         (ADDITIONAL_REGISTER_NAMES): Ditto.
13438         * aout.h (REGISTER_NAMES): Ditto.
13439         (ADDITIONAL_REGISTER_NAMES): Ditto.
13440         * arm-protos.h: Update/Add Prototypes.
13441         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13442         Only allow 0.0 for VFP.
13443         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
13444         (values_fp): Rename from values_fpa.  Update Users.
13445         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13446         Update users.  Only check valid constants for this hardware.
13447         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
13448         Only allow consts for FPA.
13449         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
13450         Only allow consts for FPA.
13451         (use_return_insn): Check for saved VFP regs.
13452         (arm_legitimate_address_p): Handle VFP DFmode addressing.
13453         (arm_legitimize_address): Ditto.
13454         (arm_general_register_operand): New function.
13455         (vfp_mem_operand): New function.
13456         (vfp_compare_operand): New function.
13457         (vfp_secondary_reload_class): New function.
13458         (arm_float_compare_operand): New function.
13459         (vfp_print_multi): New function.
13460         (vfp_output_fstmx): New function.
13461         (vfp_emit_fstm): New function.
13462         (arm_output_epilogue): Output VPF reg restore code.
13463         (arm_expand_prologue): Output VFP reg save code.
13464         (arm_print_operand): Add 'P'.
13465         (arm_hard_regno_mode_ok): Return modes for VFP regs.
13466         (arm_regno_class): Return classes for VFP regs.
13467         (arm_compute_initial_elimination_offset): Include space for VFP regs.
13468         (arm_get_frame_size): Ditto.
13469         * arm.h (FIXED_REGISTERS): Add VFP regs.
13470         (CALL_USED_REGISTERS): Ditto.
13471         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13472         (FIRST_VFP_REGNUM): Define.
13473         (LAST_VFP_REGNUM): Define.
13474         (IS_VFP_REGNUM): Define.
13475         (FIRST_PSEUDO_REGISTER): Include VFP regs.
13476         (HARD_REGNO_NREGS): Handle VFP regs.
13477         (REG_ALLOC_ORDER): Add VFP regs.
13478         (enum reg_class): Add VFP_REGS.
13479         (REG_CLASS_NAMES): Ditto.
13480         (REG_CLASS_CONTENTS): Ditto.
13481         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13482         (REG_CLASS_FROM_LETTER): Add 'w'.
13483         (EXTRA_CONSTRAINT_ARM): Add 'U'.
13484         (EXTRA_MEMORY_CONSTRAINT): Define.
13485         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13486         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13487         (REGISTER_MOVE_COST): Ditto.
13488         (PREDICATE_CODES): Add arm_general_register_operand,
13489         arm_float_compare_operand and vfp_compare_operand.
13490         * arm.md (various): Rename as above.
13491         (divsf3): Enable when TARGET_VFP.
13492         (divdf3): Ditto.
13493         (movdfcc): Ditto.
13494         (sqrtsf2): Ditto.
13495         (sqrtdf2): Ditto.
13496         (arm_movdi): Disable when TARGET_VFP.
13497         (arm_movsi_insn): Ditto.
13498         (movsi): Only split with general regs.
13499         (cmpsf): Use arm_float_compare_operand.
13500         (push_fp_multi): Restrict to TARGET_FPA.
13501         (vfp.md): Include.
13502         * vfp.md: New file.
13503         * fpa.md (various): Rename as above.
13504         * doc/md.texi: Document ARM w and U constraints.
13505
13506         2004-01-15  Paul Brook  <paul@codesourcery.com>
13507
13508         * config.gcc: Add with_fpu.  Allow with-float=softfp.
13509         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13510         Break out of loop when we find a float-abi.  Fix typo.
13511         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13512         Set -mfloat-abi=.
13513         * doc/install.texi: Document --with-fpu.
13514
13515         2003-01-14  Paul Brook  <paul@codesourcery.com>
13516
13517         * config.gcc (with_arch): Add armv6.
13518         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13519         * config/arm/arm.c (arm_overrride_options): Ditto.
13520
13521         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
13522
13523         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
13524         (FL_ARCH6): Renamed from FL_ARCH6J.
13525         (arm_arch3m): Renamed from arm_fast_multiply.
13526         (arm_arch6): Renamed from arm_arch6j.
13527         * arm.h: Update all uses of above.
13528         * arm-cores.def: Likewise.
13529         * arm.md: Likewise.
13530
13531         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
13532         not arm6j.  Add entry for arch armv6.
13533
13534         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
13535
13536         * arm.c (arm_emit_extendsi): Delete.
13537         * arm-protos.h (arm_emit_extendsi): Delete.
13538         * arm.md (zero_extendhisi2): Also handle zero-extension of
13539         non-subregs.
13540         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
13541         (thumb_zero_extendhisi2): Only match if not v6.
13542         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
13543         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
13544         (thumb_extendqisi2): Likewise.
13545         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
13546         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
13547         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
13548         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
13549         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
13550         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
13551         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
13552         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
13553         (arm_extendqisi2addsi): Likewise.
13554
13555         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
13556
13557         Revert this change:
13558         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13559         + REG addressing modes.
13560
13561         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13562         + REG addressing modes.
13563
13564         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
13565
13566         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
13567         CONSTANT_P_RTX.
13568
13569         2003-30-12  Paul Brook  <paul@codesourcery.com>
13570
13571         * longlong.h: protect arm inlines with !defined (__thumb__)
13572
13573         2003-30-12  Paul Brook  <paul@codesourcery.com>
13574
13575         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
13576
13577         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
13578
13579         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
13580         change.
13581
13582         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13583
13584         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
13585         to the virtual incoming args pointer for downward stacks.
13586
13587         2003-12-29  Paul Brook  <paul@codesourcery.com>
13588
13589         * config/arm/arm-cores.def: Add cost function.
13590         * config/arm/arm.c (arm_*_rtx_costs): New functions.
13591         (arm_rtx_costs): Remove
13592         (struct processors): Add rtx_costs field.
13593         (all_cores, all_architectures): Ditto.
13594         (arm_override_options): Set targetm.rtx_costs.
13595         (thumb_rtx_costs): New function.
13596         (arm_rtx_costs_1): Remove cases handled elsewhere.
13597         * config/arm/arm.h (processor_type): Add COSTS parameter.
13598
13599         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13600
13601         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
13602         (arm926ejs.md): Include it.
13603         * config/arm/arm926ejs.md: New pipeline description.
13604
13605         2003-12-24  Paul Brook  <paul@codesourcery.com>
13606
13607         * config/arm/arm.c (arm_arch6j): New variable.
13608         (arm_override_options): Set it.
13609         (arm_emit_extendsi): New function.
13610         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
13611         * config/arm/arm.h (arm_arch6j): Declare.
13612         * config/arm/arm.md: Add sign/zero extend insns.
13613
13614         2003-12-23  Paul Brook  <paul@codesourcery.com>
13615
13616         * config/arm/arm.c (all_architectures): Add armv6.
13617         * doc/invoke.texi: Document it.
13618
13619         2003-12-19  Paul Brook  <paul@codesourcery.com>
13620
13621         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
13622         insn patterns to match.
13623         * config/arm/arm-generic.md: Ditto.
13624         * config/arm/cirrus.md: Ditto.
13625         * config/arm/fpa.md: Ditto.
13626         * config/amm/iwmmxt.md: Ditto.
13627         * config/arm/arm1026ejs.md: Ditto.
13628         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
13629         for 11_loadb.
13630
13631         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
13632
13633         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
13634         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
13635         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
13636         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
13637         arm_no_early_mul_dep): Correctly deal with conditional execution,
13638         parallels and single shift operations.
13639         (arm_no_early_alu_shift_value_dep): Define.
13640         * arm.md (attr type): Replace 'normal' with 'alu',
13641         'alu_shift' and 'alu_shift_reg'.
13642         (attr core_cycles): Adjust.
13643         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
13644         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
13645         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
13646         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
13647         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
13648         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
13649         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
13650         attribute appropriately.
13651         * config/arm/arm1026ejs.md (alu_op): Adjust.
13652         (alu_shift_op, alu_shift_reg_op): New.
13653         * config/arm/arm1136.md: Add better bypasses for early
13654         registers. Remove load[234] and store[234] bypasses.
13655         (11_alu_op): Adjust.
13656         (11_alu_shift_op, 11_alu_shift_reg_op): New.
13657
13658         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
13659
13660         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
13661         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
13662         * config/arm/arm.c (arm_no_early_store_addr_dep,
13663         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
13664         * config/arm/arm1026ejs.md: Add load-store bypass.
13665         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
13666         Add bypasses between instructions.
13667
13668         2003-12-10  Paul Brook  <paul@codesourcery.com>
13669
13670         * config/arm/arm.c (arm_fpu_model): New variable.
13671         (arm_fload_abi): New variable.
13672         (target_fpe_name): Rename from target_fp_name.
13673         (target_fpu_name): New variable.
13674         (arm_is_cirrus): Remove.
13675         (fpu_desc): New struct.
13676         (all_fpus): Define.
13677         (pf_model_for_fpu): Define.
13678         (all_loat_abis): Define.
13679         (arm_override_options): Set fp arch flags based on -mfpu=
13680         and -float-abi=.
13681         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13682         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13683         (*): Use new TARGET_* flags.
13684         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
13685         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
13686         (TARGET_SOFT_FLOAT): Ditto.
13687         (TARGET_SOFT_FLOAT_ABI): New.
13688         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
13689         TARGET_HARD_FLOAT.
13690         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
13691         (TARGET_OPTIONS): Add -mfpu=.
13692         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13693         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13694         (arm_pf_model): Define.
13695         (arm_float_abi_type): Define.
13696         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
13697         * config/arm/arm.md: Use new TARGET_* flags.
13698         * config/arm/cirrus.md: Ditto.
13699         * config/arm/fpa.md: Ditto.
13700         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
13701         * config/arm/semi.h (ASM_SPEC): Ditto.
13702         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
13703         (FPUTYPE_DEFAULT): Set to VFP.
13704         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
13705
13706         2003-11-22  Phil Edwards  <phil@codesourcery.com>
13707
13708         PR target/12476
13709         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
13710         'bx' instead of 'b' to avoid branch range restrictions.  Output
13711         the thunk immediately before the thunked-to function.
13712         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
13713         .thumb_func if a thunk is being generated.  Emit .code 16 along
13714         with .thumb_func if a thunk is not being generated.
13715
13716         2003-11-15  Nicolas Pitre <nico@cam.org>
13717
13718         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
13719         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
13720         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
13721         (lshrdi3_iwmmxt): Renamed from lshrdi3.
13722         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
13723
13724         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
13725             Ian Lance Taylor  <ian@wasabisystems.com>
13726
13727         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
13728         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
13729
13730         2003-11-05  Phil Edwards  <phil@codesourcery.com>
13731
13732         * config/arm/arm.md (insn):  Add new V6 instruction names.
13733         (generic_sched):  New attr.
13734         * config/arm/arm-generic.md:  Use generic_sched here.
13735         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
13736         stages of pipeline.  Adjust latency counts accordingly.
13737         * config/arm/arm1136jfs.md:  New file.
13738
13739         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
13740
13741         * config/arm/arm.h (processor_type): New enumeration type.
13742         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
13743         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
13744         (CPP_CPU_ARCH_SPEC): Likewise.
13745         * config/arm/arm.c (arm_tune): New variable.
13746         (all_cores): Use cores.def.
13747         (all_architectures): Add representative processor.
13748         (arm_override_options): Restructure way in which tuning
13749         information is deduced.
13750         * arm.md: Update "insn" and "type" attributes throughout.
13751         (insn): New attribute.
13752         (type): Compute "mult" from "insn" attribute.  Add load2,
13753         load3, load4 alternatives.
13754         (arm automaton): Move to arm-generic.md.
13755         * config/arm/arm-cores.def: New file.
13756         * config/arm/arm-generic.md: Likewise.
13757         * config/arm/arm1026ejs.md: Likewise.
13758
13759 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
13760
13761         * doc/invoke.texi (SPARC options): Remove -mflat and
13762         all -mxxx (xxx:chip) options.
13763         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
13764         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
13765         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
13766         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
13767         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
13768         * config/sparc/sparc.c: Likewise.
13769         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
13770         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
13771         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
13772         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
13773         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
13774         (sparc_flat_must_save_register_p): Likewise.
13775         (sparc_flat_compute_frame_size): Likewise.
13776         (sparc_flat_save_restore): Likewise.
13777         (sparc_flat_function_prologue): Likewise.
13778         (sparc_flat_function_epilogue): Likewise.
13779         (sparc_flat_epilogue_delay_slots): Likewise.
13780         (sparc_flat_eligible_for_epilogue_delay): Likewise.
13781         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
13782         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
13783         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
13784         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
13785         (CONDITIONAL_REGISTER_USAGE): Likewise.
13786         (FRAME_POINTER_REQUIRED): Likewise.
13787         (INITIAL_ELIMINATION_OFFSET): Likewise.
13788         (BASE_RETURN_VALUE_REG): Likewise.
13789         (BASE_OUTGOING_VALUE_REG): Likewise.
13790         (BASE_PASSING_ARG_REG): Likewise.
13791         (BASE_INCOMING_ARG_REG): Likewise.
13792         (INCOMING_REGNO): Likewise.
13793         (OUTGOING_REGNO): Likewise.
13794         (LOCAL_REGNO): Likewise.
13795         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
13796         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
13797         (EPILOGUE_USES): Likewise.
13798         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
13799         ("flat" attribute): Delete.
13800         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
13801         handling.
13802         (call followed by jump define_peephole's): Delete.
13803         (exception_receiver): Likewise.
13804         (builtin_setjmp_receiver): Likewise.
13805         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
13806
13807 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
13808
13809         PR c/11658
13810         PR c/13994
13811         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
13812         on langhooks.h.
13813         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
13814         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
13815         Include langhooks.h.  Replace c_common_truthvalue_conversion
13816         with the truthvalue_conversion language hook throughout.
13817         (expr_no_commas): Call default_conversion before save_expr
13818         for the first term of the production 'x ? : y'.
13819         * c-common.c (c_common_truthvalue_conversion): Remove
13820         obsolete block.  Invoke recursively the hook instead
13821         of this function.
13822         * c-convert.c (convert): handle ERROR_MARK_NODE.
13823         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
13824         returned by the truthvalue_conversion language hook.
13825         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13826         c_objc_common_truthvalue_conversion.
13827         * c-objc-common.c (c_objc_common_truthvalue_conversion):
13828         New function.
13829         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
13830         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13831         c_objc_common_truthvalue_conversion.
13832
13833 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13834
13835         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
13836         of gen_rtx.
13837         (LIBCALL_VALUE): Likewise.
13838         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
13839         gen_rtx_CC0 instead of gen_rtx.
13840         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
13841         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
13842         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
13843         gen_rtx.
13844         (m68hc11_emit_logical): Likewise.
13845
13846 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13847
13848         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
13849         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
13850         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
13851         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
13852         config/mips/mips.md, config/mmix/mmix.c,
13853         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
13854         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
13855         config/rs6000/altivec.md, config/s390/s390.c,
13856         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
13857         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
13858         Use const0_rtx instead of GEN_INT (0).  Do the same for other
13859         constants that are readily available.
13860
13861 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13862
13863         * doloop.c, optabs.c, regmove.c, sched-deps.c,
13864         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
13865         instead of GEN_INT (0).  Do the same for other constants that
13866         are readily available.
13867
13868 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13869
13870         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
13871         gen_rtx.
13872         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
13873         instead of gen_rtx.
13874         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
13875         gen_rtx.
13876         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
13877         gen_rtx_ASHIFT instead of gen_rtx.
13878         (udivmodqi4): Likewise.
13879
13880 2004-02-02  Richard Henderson  <rth@redhat.com>
13881
13882         PR target/13789
13883         * expr.c (store_expr): Use force_operand before emit_move_insn.
13884
13885 2004-02-02  Jeff Law  <law@redhat.com>
13886             Roger Sayle  <roger@eyesopen.com>
13887
13888         * tree.c (commutative_tree_code, associative_tree_code): New
13889         functions.
13890         (iterative_hash_expr): Use commutative_tree_code.
13891         * tree.h (commutative_tree_code, associative_tree_code): Declare.
13892         * fold-const.c (operand_equal_p): Use commutative_tree_code
13893         rather than inlining the commutativity check.
13894         (fold): Likewise.
13895
13896 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13897
13898         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
13899         * config/frv/frv-protos.h: Remove the prototype for
13900         frv_function_arg_keep_as_reference.
13901         * config/frv/frv.c (frv_function_arg_keep_as_reference):
13902         Remove.
13903         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
13904         * config/stormy16/stormy16.h: Remove the commented-out
13905         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
13906
13907 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
13908
13909         PR target/13914
13910         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
13911         for retaddr_column.
13912
13913 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13914
13915         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
13916         gen_rtx.
13917
13918 2004-02-02  Eric Christopher  <echristo@redhat.com>
13919             Zack Weinberg  <zack@codesourcery.com>
13920
13921         * c-opts.c (c_common_handle_option): Add -finput-charset.
13922         * c.opt: Ditto.
13923         * cppcharset.c (one_iso88591_to_utf8): Remove.
13924         (convert_iso88591_utf8): Ditto.
13925         (conversion_tab): Remove 8859-1 converter.
13926         (_cpp_input_to_utf8): Remove.
13927         (_cpp_init_iconv_buffer): Ditto.
13928         (_cpp_close_iconv_buffer): Ditto.
13929         (_cpp_convert_input): New function.
13930         (_cpp_default_encoding): Ditto.
13931         * cpphash.h: Add/remove prototypes for above.
13932         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
13933         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
13934         for narrow execution and input character sets.
13935         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
13936         * doc/cppopts.texi: Document -finput-charset.
13937
13938 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
13939
13940         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
13941         against FIRST_PSEUDO_REGISTER.
13942
13943 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13944
13945         * doc/invoke.texi (SPARC options): Further improve.
13946
13947 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13948
13949         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
13950         config/h8300/h8300.c, config/ip2k/ip2k.md,
13951         config/iq2000/iq2000.c, config/mips/mips.c,
13952         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
13953         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
13954         config/v850/v850.md: Fix indentation.
13955
13956 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13957
13958         * config/sparc/sparc.c (function_arg_slotno): Align TImode
13959         arguments on a 16-byte boundary in the parameter array if ARCH64.
13960         Split handling of TFmode.
13961
13962 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
13963
13964         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
13965         Don't test CONSTANT_P (x).
13966         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
13967         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
13968         Fix misindentation.
13969
13970 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13971
13972         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
13973
13974 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13975
13976         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
13977         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
13978         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
13979         config/iq2000/iq2000.c, config/m32r/m32r.c,
13980         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
13981         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
13982         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
13983         config/stormy16/stormy16.c, config/v850/v850.md,
13984         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
13985
13986 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13987
13988         * config/mcore/mcore.c (block_move_sequence): Replace
13989         gen_rtx_CONST_INT with GEN_INT.
13990
13991 2004-02-02  Jan Hubicka  <jh@suse.cz>
13992
13993         * alias.c (record_set): Use hard_regno_nregs.
13994         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
13995         * builtins.c (apply_args_size): Likewise.
13996         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
13997         mark_set_regs, add_stored_regs, mark_referenced_regs,
13998         insert_restore, insert_save, insert_one_insn): Likewise.
13999         * cfgcleanup.c: Include regs.h
14000         (mark_effect, mentions_nonequal_regs): Likewise.
14001         * cfgrtl.c (mark_killed_regs): Likewise
14002         * combine.c (update_table_tick, record_value_for_reg,
14003         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14004         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14005         reg_bitfield_target_p, distribute_notes): Likewise.
14006         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14007         exp_equiv_p, cse_insn): Likewise.
14008         * cselib.c (cselib_lookup): Likewise.
14009         (cselib_invalidate_regno, cselib_record_set): Likewise.
14010         * df.c (df_ref_record): Likewise.
14011         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14012         Likewise.
14013         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14014         count_or_remove_death_notes_bb): Likewise.
14015         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14016         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14017         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14018         * integrate.c (mark_stores): Likewise.
14019         * jump.c (delete_prior_computation): Likewise.
14020         * lcm.c (reg_dies, reg_becomes_live): Likewise.
14021         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14022         * loop.c (LOOP_REGNO_NREGS): Likewise.
14023         * postreload.c (reload_combine, reload_combine_note_store,
14024         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14025         * ra-colorize.c (combine, color_usable_p, get_free_reg,
14026         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
14027         try_recolor_web, insert_coalesced_conflicts, check_colors,
14028         break_precolored_alias): Likewise.
14029         * ra-debug.c: Include regs.h
14030         (ra_print_rtx_object): Likewise.
14031         * ra-rewrite (choose_spill_colors): Likewise.
14032         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14033         * ra.c (init_ra): Likewise.
14034         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14035         peep2_find_free_register): Likewise.
14036         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14037         * regclass.c (hard_regno_nregs): New array.
14038         (init_reg_modes_once): Initialize it.
14039         (choose_hard_reg_mode): Use it.
14040         (record_reg_classes): Likewise.
14041         * regmove.c (mark_flags_life_zones): Likewise.
14042         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
14043         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
14044         copy_value, maybe_mode_change, find_oldest_value_reg,
14045         copyprop_hardreg_forward_1):
14046         * regs.h (hard_regno_nregs): Declare.
14047         * realod.c (reload_inner_reg_of_subreg): Use it.
14048         (push_reload, combine_reloads, find_dummy_reload,
14049         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
14050         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
14051         reload_adjust_reg_for_mode): Likewise.
14052         * reload1.c (compute_use_by_pseudos, count_pseudo,
14053         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14054         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14055         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14056         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14057         delete_output_reload): Likewise.
14058         * resource.c (update_live_status, mark_referenced_resources,
14059         mark_set_resources, mark_target_live_regs): Likewise.
14060         * rtlanal.c:  Include regs.h
14061         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14062         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14063         subreg_regno_offset, subreg_offset_representable_p,
14064         hoist_test_store): Likewise.
14065         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14066         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14067         * stmt.c: Include regs.h
14068         (decl_conflicts_with_clobbers_p): Likewise.
14069         * varasm.c (make_decl_rtl): Likewise.
14070         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14071
14072 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14073
14074         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14075         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14076         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14077         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14078         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14079         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14080         config/iq2000/iq2000.h, config/m32r/m32r.c,
14081         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14082         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14083         config/mcore/mcore.c, config/mcore/mcore.h,
14084         config/mcore/mcore.md, config/mips/mips.c,
14085         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14086         config/rs6000/rs6000.c, config/s390/s390.c,
14087         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14088         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14089         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14090
14091 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14092
14093         * config/h8300/h8300.md (two peephole2's): New.
14094
14095 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14096
14097         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14098         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14099         (ASM_CPU_SPEC): Likewise
14100         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14101         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14102
14103 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14104
14105         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14106         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14107         (expand_builtin): Always call expand_builtin_pow.
14108
14109 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14110
14111         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14112         BUILT_IN_SIGNBITL): New GCC builtins.
14113         * builtins.c (expand_builtin_signbit): New function to RTL expand
14114         calls to signbit, signbitf and signbitl as inline intrinsics.
14115         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14116         (fold_builtin_signbit): New function to perform constant folding
14117         of signbit, signbitf and signbitl.
14118         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14119
14120         * doc/extend.texi: Document new signbit{,f,l} builtins.
14121
14122 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14123
14124         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14125
14126 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14127
14128         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14129         "mips_const_double_ok" and "simple_memory_operand", which were
14130         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14131         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14132         for removal of simple_memory_operand.
14133
14134 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14135
14136         * config/c4x/c4x.md: Use GEN_INT instead of
14137         gen_rtx (CONST_INT, ...).
14138
14139 2004-01-31  Richard Henderson  <rth@redhat.com>
14140
14141         * varasm.c (output_constant_pool): Don't zap the pool.
14142
14143 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14144
14145         * genrecog.c (decision_type): Add DT_const_int.
14146         (write_cond) [DT_const_int]: Print a comparison against small
14147         constant.
14148         (write_node): Simplify comparisons against small constants
14149         before printing tests.
14150
14151 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14152
14153         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14154         instead of gen_rtx_CONST_INT.
14155
14156 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14157
14158         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14159         instead of gen_rtx_CONST_INT.
14160
14161 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14162
14163         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14164         hook_bool_CUMULATIVE_ARGS_false.
14165         * targhooks.c (default_strict_argument_naming): Rename to
14166         hook_bool_CUMULATIVE_ARGS_false.
14167         * targhooks.h: Update the prototype for
14168         default_strict_argument_naming.
14169
14170 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14171
14172         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14173         * config/sh/sh.h: Likewise.
14174         * config/sh/sh.md: Likewise.
14175
14176 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14177
14178         * doc/invoke.texi (SPARC options): Restructure and update.
14179
14180 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14181
14182         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14183         STRICT_ARGUMENT_NAMING): Poison.
14184         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14185         hook_bool_tree_false.
14186         * targhooks.c (default_promote_function_args): Remove.
14187         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14188         Don't check incoming.
14189         (default_strict_argument_naming): Don't use
14190         STRICT_ARGUMENT_NAMING.
14191         * targhooks.h: Remove the prototype for
14192         default_promote_function_args.
14193
14194 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14195
14196         * config/i386/i386-protos.h: Remove the prototype for
14197         ix86_setup_incoming_varargs.
14198         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14199         (ix86_setup_incoming_varargs): Make it static.
14200         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14201
14202 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14203
14204         * alloc-pool.c: Fix comment typos.
14205         * builtin-types.def: Likewise.
14206         * builtins.def: Likewise.
14207         * c-pretty-print.c: Likewise.
14208         * df.h: Likewise.
14209         * reload1.c: Likewise.
14210
14211 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14212
14213         * doc/invoke.texi: Follow spelling conventions.
14214         * doc/tm.texi: Likewise.
14215
14216 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14217
14218         * doc/install.texi: Fix typos.
14219         * doc/invoke.texi: Likewise.
14220
14221 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14222
14223         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14224         registers as pointers.
14225         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14226
14227 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
14228
14229         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14230         and restore it to gen_lowpart_general on exit.
14231         (gen_lowpart_for_combine): Adjust all callers to go through
14232         gen_lowpart.
14233         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14234         and restore it to gen_lowpart_general on exit.
14235         (gen_lowpart_if_possible): Adjust all callers to go through
14236         gen_lowpart.
14237         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14238         (gen_lowpart): Declare as pointer to function, initialized to
14239         gen_lowpart_general.
14240         * rtl.h (gen_lowpart): Declare as pointer to function.
14241
14242 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14243
14244         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14245         * calls.c: Likewise.
14246         * emit-rtl.c: Likewise.
14247         * function.c: Likewise.
14248         * reload1.c: Likewise.
14249         * config/i386/cygming.h: Likewise.
14250         * config/i386/i386.c: Likewise.
14251         * config/i386/winnt.c: Likewise.
14252
14253 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
14254
14255         PR bootstrap/9249
14256         * doc/install.texi: document --enable-__cxa_atexit option.
14257         * configure.ac: Disable __cxa_atexit if not supported.
14258         * configure: Regenerate.
14259
14260 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
14261
14262         * ggc-zone.c (ggc_free): New function.
14263
14264 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14265
14266         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14267         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14268         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14269         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14270         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14271         config/alpha/alpha.c, config/alpha/alpha.h,
14272         config/alpha/alpha.md, config/alpha/unicosmk.h,
14273         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14274         config/c4x/c4x-protos.h, config/c4x/c4x.md,
14275         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14276         config/frv/frvend.c, config/i386/cygming.h,
14277         config/i386/djgpp.h, config/i386/emmintrin.h,
14278         config/i386/gthr-win32.c, config/i386/i386-interix.h,
14279         config/i386/i386-protos.h, config/i386/openbsd.h,
14280         config/i386/winnt.c, config/i386/xm-mingw32.h,
14281         config/i386/xmmintrin.h, config/ia64/ia64.md,
14282         config/iq2000/iq2000.md, config/m32r/m32r.md,
14283         config/m68k/m68k.md, config/mcore/mcore-elf.h,
14284         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14285         config/mips/iris5gas.h, config/mips/iris6.h,
14286         config/mips/iris6gas.h, config/mips/linux.h,
14287         config/mips/mips.md, config/mips/netbsd.h,
14288         config/mips/openbsd.h, config/mips/windiss.h,
14289         config/pa/fptr.c, config/rs6000/aix.h,
14290         config/rs6000/altivec.h, config/rs6000/darwin.h,
14291         config/rs6000/xcoff.h, config/s390/s390-protos.h,
14292         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14293         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14294         config/sparc/sol2.h: Update copyright.
14295
14296 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
14297
14298         * Makefile.in (abs_docdir, abs_srcdir): Define.
14299         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14300
14301 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14302
14303         * genconfig.c (main): Have CC0_P check its operand even on a
14304         target without cc0.
14305
14306 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14307
14308         * config/alpha/alpha.c: Remove mentions of deprecates macros
14309         in comments, remove some target-independent comments about target
14310         macros, and/or add minimal function comments for target hook
14311         implementations.
14312         * config/avr/avr.c: Likewise.
14313         * config/ia64/ia64.h: Likewise.
14314         * config/ip2k/ip2k.c: Likewise.
14315         * config/iq2000/iq2000.c: Likewise.
14316         * config/m32r/m32r.h: Likewise.
14317         * config/m68hc11/m68hc11.c: Likewise.
14318         * config/mcore/mcore.c: Likewise.
14319         * config/mmix/mmix.c: Likewise.
14320         * config/mn10300/mn10300.c: Likewise.
14321         * config/pa/pa.c: Likewise.
14322         * config/pdp11/pdp11.c: Likewise.
14323         * config/rs6000/rs6000.h: Likewise.
14324         * config/sh/sh.c: Likewise.
14325         * config/sh/sh.h: Likewise.
14326         * config/sparc/sparc.c: Likewise.
14327         * config/sparc/sparc.h: Likewise.
14328         * config/stormy16/stormy16.c: Likewise.
14329         * config/xtensa/xtensa.c: Likewise.
14330
14331 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14332
14333         PR optimization/12147
14334         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14335         RELOAD_FOR_OPADDR_ADDR.
14336         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14337         might be reused as RELOAD_FOR_OPADDR_ADDR register.
14338
14339 2004-01-30  Jan Hubicka  <jh@suse.cz>
14340
14341         * reload.c (get_secondary_mem): Fix updating of
14342         secondary_memlocs_elim_used.
14343
14344 2004-01-30  Richard Henderson  <rth@redhat.com>
14345
14346         * varasm.c (struct rtx_const, struct pool_constant): Remove.
14347         (MAX_RTX_HASH_TABLE): Remove.
14348         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14349         (first_pool, last_pool, pool_offset): Remove.
14350         (struct rtx_constant_pool): Split out from ...
14351         (struct varasm_status): ... here.  Reference one via pointer.
14352         (struct constant_descriptor_rtx): Merge struct pool_constant.
14353         (SYMHASH): Remove.
14354         (decode_rtx_const): Remove.
14355         (const_hash_rtx, compare_constant_rtx): Remove.
14356         (record_constant_rtx): Remove.
14357         (const_desc_rtx_hash, const_desc_rtx_eq): New.
14358         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14359         (const_rtx_hash_1, const_rtx_hash): New.
14360         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14361         (simplify_subtraction): Use simplify_rtx.
14362         (force_const_mem): Rewrite to use new data structures.
14363         (find_pool_constant): Likewise.
14364         (get_pool_constant, get_pool_constant_mark,
14365         get_pool_constant_for_function, get_pool_mode,
14366         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14367         (output_constant_pool_2): Split out from output_constant_pool.
14368         (output_constant_pool_1): Likewise.  Use new pool datastructures.
14369         (output_constant_pool): Zap entire pool datastructure.
14370         (mark_constant): Use new pool datastructures.
14371         (mark_constants): Use for_each_rtx.
14372         (mark_constant_pool): Use new pool datastructures.
14373
14374 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
14375
14376         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
14377         Copy operands[1] to pseudo for simplify_gen_subreg.
14378
14379 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14380
14381         * gcse.c (bypass_block): Fix a typo in the previous check-in
14382         to the file.
14383
14384 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
14385
14386         * toplev.c: Include alloc-pool.h.
14387         * Makefile.in (toplev.c): Update dependencies.
14388
14389 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14390
14391         * combine.c (simplify_shift_const, case XOR): Be careful when
14392         commuting XOR with ASHIFTRT.
14393
14394 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14395             Eric Botcazou  <ebotcazou@libertysurf.fr>
14396
14397         * config/sparc/sparc-protos.h: Remove the prototype for
14398         sparc_builtin_saveregs.
14399         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14400         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14401         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14402         (TARGET_STRUCT_VALUE_RTX): Likewise.
14403         (TARGET_RETURN_IN_MEMORY): Likewise.
14404         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14405         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14406         (sparc_builtin_saveregs): Make it static.
14407         (sparc_promote_prototypes): New.
14408         (sparc_struct_value_rtx): Likewise.
14409         (sparc_return_in_memory): Likewise.
14410         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14411         (PROMOTE_FUNCTION_RETURN): Likewise.
14412         (RETURN_IN_MEMORY): Likewise.
14413         (STRUCT_VALUE): Likewise.
14414         (STRUCT_VALUE_INCOMING): Likewise.
14415         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14416         (STRICT_ARGUMENT_NAMING): Likewise.
14417         (PROMOTE_PROTOTYPES): Likewise.
14418
14419         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14420
14421 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14422
14423         PR c/12818
14424         * varasm.c (const_hash_1) <STRING_CST>: Use the
14425         address to compute the hash value if flag_writable_strings.
14426         (compare_constant) <STRING_CST>: Compare the addresses
14427         if flag_writable_strings.
14428         (build_constant_desc): Do not copy the expression for a
14429         STRING_CST if flag_writable_strings.
14430
14431 2004-01-30  Jan Hubicka  <jh@suse.cz>
14432
14433         * alloc-pool.c: Include hashtab.h
14434         (alloc_pool_descriptor): New structure
14435         (alloc_pool_hash): New global variable.
14436         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14437         (create_alloc_pool): Update statistics.
14438         (free_alloc_pool): Likewise.
14439         (pool_alloc): Likewise.
14440         (output_info): New structure
14441         (print_statistics, dump_alloc_pool_statistics): New function.
14442         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14443         (dump_alloc_pool_statistics): Declare.
14444         * toplev.c (finalize):  Dump statistics.
14445
14446         * reload.c (secondary_memlocs_elim_used): New static variable.
14447         (get_secondary_mem): Update it.
14448         (find_reloads): Use it.
14449
14450 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
14451
14452         * toplev.c: Fix broken checkin of 2003-12-30, again.
14453
14454 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14455
14456         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14457         s390*-*-* targets by specifying a 'nop' insn.
14458         * configure: Regenerate.
14459
14460 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14461
14462         PR target/11475
14463         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14464
14465 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14466
14467         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14468         of addr when creating MEM copy.
14469
14470 2004-01-29  Devang Patel  <dpatel@apple.com>
14471
14472         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
14473
14474 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14475
14476         PR inline-asm/6162
14477         * reload.c (find_reloads): Only support one pair of commutative
14478         operands.
14479
14480 2004-01-29  Roger Sayle  <roger@eyesopen.com>
14481
14482         PR java/13824
14483         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14484         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14485         recursion.
14486
14487 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14488
14489         * config/frv/frv.c: Don't mention deprecated macros in
14490         comments.  Remove some target-independent comments about
14491         target macros.
14492         * config/frv/frv.h: Likewise.
14493
14494 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14495
14496         * cfghooks.c (split_block): Set probability and count of the
14497         new edge.
14498
14499 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
14500
14501         * dwarf2out.c (struct die_struct): Added field decl_id.
14502         (decl_die_table): Changed to hash table.
14503         (decl_die_table_allocated): Deleted.
14504         (decl_die_table_in_use): Deleted.
14505         (DECL_DIE_TABLE_INCREMENT): Deleted.
14506         (decl_die_table_hash): New function.
14507         (decl_die_table_eq): New function.
14508         (lookup_decl_die): Lookup in a hash table.
14509         (equate_decl_number_to_die): Insert into a hash table.
14510         (dwarf2out_init): Init hash table decl_die_table.
14511
14512 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14513
14514         PR optimization/13424
14515         * expr.c (store_constructor): Revert 2003-12-03 change.
14516
14517         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14518         expected before returning early.  Avoid sharing RTL if they
14519         need to be changed.
14520
14521         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
14522         handling so that memory attributes are preserved.  Don't call
14523         ix86_set_move_mem_attrs.
14524         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
14525         (ix86_expand_clrstr): Rename src argument to
14526         dst.  Rework rep_stos and strset handling so that memory attributes
14527         are preserved.
14528         (ix86_expand_strlen): Pass src argument to
14529         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
14530         memory attributes are preserved.
14531         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
14532         change_address instead of gen_rtx_MEM.
14533         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
14534         expanders.
14535         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
14536         strmovqi, strmovqi_rex64): Remove.
14537         (rep_mov*, strmov*): Prefix insn names with *.
14538         (strset, strset_singleop, rep_stos): New expanders.
14539         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
14540         strsetqi, strsetqi_rex64): Remove.
14541         (rep_stos*, strset*): Prefix insn names with *.
14542         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
14543         to SImode.
14544         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
14545         are preserved.
14546         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
14547         Prefix insn names with *.
14548         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
14549         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
14550         (strlenqi_1): New expander.
14551         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
14552
14553 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14554
14555         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
14556         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
14557         verify_flow_info): Declaration removed.
14558         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
14559         (debug_bb, debug_bb_n): Add argument to dump_bb call.
14560         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
14561         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
14562         instead of delete_block.
14563         * cfghooks.c: Include timevar.h and toplev.h.
14564         (cfg_hooks): Define here.
14565         (verify_flow_info, dump_bb): Moved from cfg.c.
14566         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14567         split_block, split_block_after_labels, move_block_after,
14568         delete_basic_block, split_edge, create_basic_block,
14569         create_empty_bb, can_merge_blocks_p, merge_blocks,
14570         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14571         New functions.
14572         * cfghooks.h (struct cfg_hooks): Added fields name,
14573         make_forwarder_block, tidy_fallthru_edge and
14574         move_block_after. Changed type of verify_flow_info, dump_bb,
14575         split_block fields. Renamed cfgh_split_edge and delete_block
14576         fields.
14577         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14578         split_block, delete_block, split_edge, create_basic_block,
14579         can_merge_blocks_p, merge_blocks): Macros removed.
14580         (cfg_hooks): Do not export.
14581         (verify_flow_info, dump_bb, redirect_edge_and_branch,
14582         redirect_edge_and_branch_force, split_block, split_block_after_labels,
14583         move_block_after, delete_basic_block, split_edge, create_basic_block,
14584         create_empty_bb, can_merge_blocks_p, merge_blocks,
14585         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14586         Declare.
14587         (cfg_layout_rtl_cfg_hooks): Declare.
14588         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
14589         New functions.
14590         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
14591         (redirect_edge_with_latch_update): Removed.
14592         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
14593         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
14594         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
14595         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
14596         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
14597         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
14598         cfghooks.c.
14599         (rtl_create_basic_block): Coding style fix.
14600         (rtl_tidy_fallthru_edge, rtl_move_block_after,
14601         rtl_make_forwarder_block): New functions.
14602         (update_cfg_after_block_merging): Removed.
14603         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
14604         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
14605         to dump_bb.
14606         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
14607         find_if_case_2): Don't update dominators.
14608         * timevar.def (TV_CFG_VERIFY): New.
14609         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
14610         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
14611         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
14612         (remove_bbs): Don't call remove_bbs.
14613         (create_preheader): Use make_forwarder_block.
14614         (mfb_keep_just, mfb_update_loops): New static functions.
14615
14616 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14617
14618         * config/avr/avr.h: Remove target-independent comments about
14619         target macros.
14620
14621 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
14622
14623         * timevar.c (timevar_print): Mention when checking is enabled.
14624
14625 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
14626
14627         * c-lex.c (c_lex): Rename to...
14628         (c_lex_with_flags): Add new parameter to get CPP flags.
14629         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
14630         * c-pragma.h (c_lex_with_flags): Declare.
14631
14632 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14633
14634         * config/mcore/mcore.c (mcore_external_libcall): Add a
14635         comment.
14636         (mcore_return_in_memory): Likewise.
14637
14638 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14639
14640         * config/mcore/mcore-protos.h: Remove the prototype for
14641         mcore_setup_incoming_varargs.
14642         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14643         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14644         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14645         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14646         (TARGET_STRUCT_VALUE_RTX): Likewise.
14647         (TARGET_RETURN_IN_MEMORY): Likewise.
14648         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14649         (mcore_setup_incoming_varargs): Make it static.  Receive the
14650         first argument by reference.  Add argument second_time.
14651         (mcore_external_libcall): New.
14652         (mcore_return_in_memory): Likewise.
14653         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
14654         (PROMOTE_FUNCTION_RETURN): Likewise.
14655         (STRUCT_VALUE): Likewise.
14656         (RETURN_IN_MEMORY): Likewise.
14657         (SETUP_INCOMING_VARARGS): Likewise.
14658         (PROMOTE_PROTOTYPES): Likewise.
14659         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14660
14661 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14662
14663         * config/m32r/m32r-protos.h: Remove the prototype for
14664         m32r_setup_incoming_varargs.
14665         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
14666         (TARGET_STRUCT_VALUE_RTX): Likewise.
14667         (TARGET_RETURN_IN_MEMORY): Likewise.
14668         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14669         (m32r_return_in_memory): New.
14670         (m32r_setup_incoming_varargs): Make it static.
14671         * config/m32r/m32r.h: Remove #undef of
14672         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
14673         definitions of PROMOTE_FUNCTION_ARGS and
14674         PROMOTE_FUNCTION_RETURN.
14675         (PROMOTE_PROTOTYPES): Remove.
14676         (RETURN_IN_MEMORY): Likewise.
14677         (STRUCT_VALUE): Likewise.
14678
14679 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14680
14681         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
14682         (TARGET_STRUCT_VALUE_RTX): Likewise.
14683         (m68k_struct_value_rtx): Likewise.
14684         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
14685         STRUCT_VALUE_REGNUM.
14686         (PROMOTE_PROTOTYPES): Remove.
14687         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
14688         STRUCT_VALUE_REGNUM.
14689         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
14690         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
14691
14692 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14693
14694         * config/stormy16/stormy16.c
14695         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
14696         TARGET_BUILD_BUILTIN_VA_LIST.
14697
14698 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14699
14700         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
14701         (TARGET_STRUCT_VALUE_RTX): Likewise.
14702         (TARGET_RETURN_IN_MEMORY): Likewise.
14703         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14704         (v850_return_in_memory): Likewise.
14705         (v850_setup_incoming_varargs): Likewise.
14706         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
14707         (SETUP_INCOMING_VARARGS): Likewise.
14708         (RETURN_IN_MEMORY): Likewise.
14709         (STRUCT_VALUE): Likewise.
14710
14711 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14712
14713         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
14714         (fr30_setup_incoming_varargs): Don't use
14715         STRICT_ARGUMENT_NAMING.
14716         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
14717         (STRICT_ARGUMENT_NAMING): Likewise.
14718
14719 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14720
14721         * config/frv/frv-protos.h: Remove the prototype for
14722         frv_expand_builtin_saveregs.
14723         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
14724         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14725         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
14726         STRUCT_VALUE_REGNUM.
14727         (frv_expand_builtin_saveregs): Make it static.
14728         (frv_struct_value_rtx): New.
14729         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
14730
14731 2004-01-29  Jan Hubicka  <jh@suse.cz>
14732
14733         PR c++/12850
14734         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
14735         initial pointers.
14736         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
14737         for functions that will be only inlined.
14738         (cgraph_mark_function_to_output): Likewise.
14739         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
14740         do not clear function body.
14741         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
14742         (tree_rest_of_compilation): Reorganize the logic releasing function
14743         body to use callgraph datastructure.
14744
14745 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14746
14747         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
14748         to register_operand.
14749
14750 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14751
14752         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
14753         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
14754         match_operand expressions so that all match_dups appear
14755         lexically after their corresponding match_operands.
14756
14757 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14758
14759         * config/h8300/h8300.c (WORD_REG_USED): Use
14760         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
14761         (compute_saved_regs): Likewise.
14762         (h8300_expand_prologue): Likewise.  Allocate locals after
14763         saving registers.
14764         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
14765         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
14766         registers.
14767         (h8300_initial_elimination_offset): Adjust for the new frame
14768         layout, which swaps flips the order of locals and saved
14769         registers.
14770         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
14771         (HARD_FRAME_POINTER_REGNUM): New.
14772         (ELIMINABLE_REGS): Add an elimination rule from
14773         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
14774         (REGISTER_NAMES): Add fp.
14775         * config/h8300/h8300.md (FP_REG): Change to 11.
14776         (HFP_REG): New.
14777
14778 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14779
14780         * genrecog.c (write_node): Remove a useless local variable.
14781
14782 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14783
14784         * Makefile.in (options.c options.h): Use stamp file s-options to
14785         avoid unnecessary rebuilds.
14786         (options.o): New target listing dependencies.
14787         (gtyp-gen.h): Use stamp file s-gtyp-gen.
14788         (STAGESTUFF): Add s-gtyp-gen.
14789
14790 2004-01-28  Richard Henderson  <rth@redhat.com>
14791
14792         * ggc.h (ggc_free): Declare.
14793         * ggc-common.c (ggc_realloc): Use it.
14794         * ggc-page.c: Remove lots of inline markers.
14795         (globals): Add free_object_list.
14796         (ggc_alloc): Tidy.
14797         (ggc_free, validate_free_objects): New.
14798         (poison_pages): Provide default.
14799         (ggc_collect): Call validate_free_objects; emit markers to
14800         the debug file.
14801
14802 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14803             Jim Wilson  <wilson@specifixinc.com>
14804
14805         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
14806         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
14807         scratch pointer.
14808         (ia64_secondary_reload_class): Delete case GR_REGS.
14809         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
14810         Do not allocate a scratch register.
14811         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
14812
14813 2004-01-28  Jan Hubicka  <jh@suse.cz>
14814
14815         * gcse.c (bypass_block): Prevent edges to be unified when we are
14816         about to emit compenstation code.
14817
14818 2004-01-28  Nick Clifton  <nickc@redhat.com>
14819
14820         * config/arm/arm.c (arm_expand_builtin): Force second argument of
14821         the setcwx insn into a register.
14822
14823 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
14824
14825         * config/fp-bit.c (pack_d): When using paired doubles to implement
14826         a long double, round the high part separately.
14827         (unpack_d): Fix the case in which the high part is a power of two
14828         and the low part is a nonzero value of the opposite sign.
14829
14830 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14831
14832         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14833         (TARGET_STRUCT_VALUE_RTX): Likewise.
14834         (c4x_external_libcall): Likewise.
14835         (c4x_struct_value_rtx): Likewise.
14836         * config/c4x/c4x.h: Remove.
14837         (STRUCT_VALUE_REGNUM): Likewise.
14838         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14839
14840 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14841
14842         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
14843         (TARGET_STRUCT_VALUE_RTX): Likewise.
14844         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
14845         (STRUCT_VALUE): Likewise.
14846         (PROMOTE_PROTOTYPES): Likewise.
14847
14848 2004-01-27  Roger Sayle  <roger@eyesopen.com>
14849
14850         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
14851         CONST_INT before using INTVAL.
14852
14853 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
14854
14855         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
14856         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
14857         frame if !TARGET_BACKCHAIN.
14858         * config/s390/s390.md ("allocate_stack"): Use pattern only if
14859         TARGET_BACKCHAIN.
14860         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
14861
14862 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14863
14864         * ia64.c (ia64_function_arg): When placing HFAs in integer
14865         registers, do not special case the mode used for complex
14866         types.  Do not advance int_regs until the current register
14867         is full.
14868
14869 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
14870
14871         PR target/7297
14872         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
14873
14874 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
14875
14876         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
14877         slow, unaligned loads and stores while debugging.  Fix formatting.
14878
14879 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
14880
14881         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
14882         of computing wmode.
14883         (restore_stack_nonlocal): Same.
14884
14885 2004-01-27  Devang Patel <dpatel@apple.com>
14886
14887         * Makefile.in (dwarf2out.o): Depend on input.h
14888         * dbxout.c (dbx_debug_hooks): Add new empty hook for
14889         imported_module_or_decl.
14890         (xcoff_debug_hooks): Same.
14891         * sdbout.c (sdb_debug_hooks): Same.
14892         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
14893         * debug.c (do_nothing_debug_hooks): Same.
14894         (debug_nothing_tree_tree): New function.
14895         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
14896         * dwarf2out.c: Include input.h.
14897         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
14898         (remove_child_TAG): New function.
14899         (dwarf_tag_name): Handle DW_TAG_imported_module.
14900         (gen_subprogram_die): Equate decl number to declaration die. Do not
14901         remove all children dies while reusing declaration die for definition.
14902         Instead, selectively remove only formal parameters.
14903         (gen_variable_die): Equate variable decl to declaration die.
14904         (gen_field_die): Equate field decl to line number.
14905         (force_namespace_die): Replace it with ...
14906         (force_decl_die): ... this.
14907         (force_type_die): New function.
14908         (setup_namespace_context): Replace use of force_namespace_die() with
14909         force_decl_die().
14910         (gen_namespace_die): Same.
14911         (dwarf2out_imported_module_or_decl): New function.
14912
14913 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
14914
14915         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
14916         on CQImode and CHImode incoming arguments in register a7.
14917         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
14918         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
14919         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
14920         xtensa_copy_incoming_a7 before reload.
14921
14922 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14923
14924         * coverage.c (get_coverage_counts): Give a different message
14925         if flag_guess_branch_prob is set.
14926         * predict.c (counts_to_freqs): Return an int.
14927         (estimate_bb_frequencies): If counts_to_freqs returns zero,
14928         calculate estimates.
14929
14930 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
14931
14932         * config/iq2000/iq2000-protos.h: Remove the prototype for
14933         iq2000_setup_incoming_varargs.
14934         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14935         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14936         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14937         (TARGET_STRUCT_VALUE_RTX): Likewise.
14938         (TARGET_RETURN_IN_MEMORY): Likewise.
14939         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14940         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14941         (iq2000_return_in_memory): Likewise.
14942         (iq2000_setup_incoming_varargs): Make it static.  Receive the
14943         first argument by reference.
14944         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
14945         (PROMOTE_FUNCTION_RETURN): Likewise.
14946         (PROMOTE_PROTOTYPES): Likewise.
14947         (RETURN_IN_MEMORY): Likewise.
14948         (STRUCT_VALUE): Likewise.
14949         (SETUP_INCOMING_VARARGS): Likewise.
14950         (STRICT_ARGUMENT_NAMING): Likewise.
14951
14952 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
14953
14954         * fixinc/fixinc.c (test_test): Initialize res.
14955         (start_flexer): Initialize pz_cmd_save.
14956
14957 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14958
14959         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
14960         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
14961
14962 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14963
14964         PR 7198
14965         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
14966         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
14967         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
14968         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
14969         Possibly rename pattern for consistency.
14970         Remove ??? comments suggesting that this be done.
14971         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
14972         New patterns.
14973         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
14974         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
14975         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
14976         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
14977         Update to match.
14978
14979 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
14980
14981         * config/arm/arm.c (output_return_instruction): Only restore IP
14982         into SP if frame_pointer_needed.
14983
14984 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14985
14986         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14987         for SCmode and DCmode if ARCH32.
14988         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
14989         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
14990         if ARCH32.
14991         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
14992         if ARCH32.
14993         (BASE_OUTGOING_VALUE_REG): Likewise.
14994
14995 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14996
14997         PR target/10904
14998         PR target/13058
14999         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15000         Forbid mode changes from SImode for lower FP regs if ARCH64.
15001
15002 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15003
15004         * Makefile.in (bt-load.o): Depend on except.h.
15005         * bt-load.c (except.h): #include.
15006         (compute_defs_uses_and_gen): If insn at end of BB can throw
15007         within this function, consider registers used by it unavailable for
15008         btr migration.
15009         (move_btr_def): If insn at end of BB can throw, insert before rather
15010         than after.
15011
15012         * flags.h (flag_btr_bb_exclusive): Declare.
15013         * toplev.c (flag_btr_bb_exclusive): New variable.
15014         (f_options): Add btr-bb-exclusive.
15015         * bt-load.c (augment_live_range): Restore old behaviour if
15016         flag_btr_bb_exclusive is set.
15017         * common.opt: Add entry for -fbtr-bb-exclusive.
15018         * opts.c (common_handle_options): Same.
15019         * doc/invoke.texi: Document -fbtr-bb-exclusive.
15020
15021         * bt-load.c (btrs_live_at_end): New variable.
15022         (compute_defs_uses_and_gen): Compute its pointed-to array.
15023         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15024         (augment_live_range): When augmenting with a new dominator,
15025         use only its btrs_live_at_end set, but also add in the full set
15026         of the old dominator.
15027         (btr_def_live_range): Use btrs_live_at_end.
15028         (move_btr_def): Set other_btr_uses_before_def, and move new set
15029         to the end of the basic block, if appropriate.
15030         (migrate_btr_defs): Allocate and free btrs_live_at_end.
15031
15032         * bt-load.c (basic_block_freq): Remove outdated comment.
15033
15034 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
15035
15036         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15037         (PREDICATE_CODES): Remove duplicate.
15038         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
15039         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
15040         (MASK_PROFILE_KERNEL): Adjust define.
15041
15042 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
15043
15044         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
15045         of long string literals from 32 bytes to sizeof (void *) when !-Os
15046         and to 1 with -Os.
15047
15048 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15049
15050         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
15051         constant addresses in the normal mode.
15052
15053 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15054
15055         * system.h (CHAR_BITFIELD): Delete.
15056         (BOOL_BITFIELD): New.
15057         * c-decl.c (c_scope): Use BOOL_BITFIELD.
15058         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15059
15060 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15061
15062         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15063         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15064         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15065         (TARGET_STRUCT_VALUE_RTX): Likewise.
15066         (TARGET_RETURN_IN_MEMORY): Likewise.
15067         (arc_return_in_memory): Likewise.
15068         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15069         (PROMOTE_FUNCTION_RETURN): Likewise.
15070         (RETURN_IN_MEMORY): Likewise.
15071         (STRUCT_VALUE): Likewise.
15072
15073 2004-01-26  Richard Henderson  <rth@redhat.com>
15074
15075         * c-parse.in (extension): Use itype.
15076         (SAVE_EXT_FLAGS): Don't allocate a tree.
15077         (RESTORE_EXT_FLAGS): Don't read a tree.
15078
15079 2004-01-26  Jan Hubicka  <jh@suse.cz>
15080
15081         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15082         to datastructure to be recycled.
15083
15084 2004-01-25  Jan Hubicka  <jh@suse.cz>
15085
15086         * genextract.c (main): Do not output the memset when not checking.
15087
15088 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15089
15090         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15091         switch statement instead of a chain of if statements.
15092
15093 2004-01-26  Jeff Law  <law@redhat.com>
15094
15095         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15096         acute accents for Petur Runolfsson's entry.
15097
15098 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15099
15100         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15101         (TARGET_RETURN_IN_MEMORY): Likewise.
15102         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15103         (RETURN_IN_MEMORY): Likewise.
15104
15105 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15106
15107          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15108          unaligned load/store into smaller loads and stores.
15109
15110 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15111
15112         * function.c (assign_parms): Do not assign
15113         long long argument to memory in prologue if
15114         is it loaded into register.
15115
15116 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15117
15118          PR middle-end/13779
15119          * expr.c (emit_group_load): split constant
15120          correctly into register components of PARALLEL insn.
15121
15122 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15123
15124         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15125         Use adjust_address_nv directly with appropriate mode.
15126         (restore_stack_nonlocal): Ditto.
15127
15128 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15129
15130         * config/xtensa/xtensa-protos.h: Remove the prototype for
15131         xtensa_builtin_saveregs.
15132         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15133         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15134         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15135         (TARGET_STRUCT_VALUE_RTX): Likewise.
15136         (TARGET_RETURN_IN_MEMORY): Likewise.
15137         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15138         (xtensa_builtin_saveregs): Make it static.
15139         (xtensa_return_in_memory): New.
15140         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15141         (PROMOTE_FUNCTION_RETURN): Likewise.
15142         (PROMOTE_PROTOTYPES): Likewise.
15143         (STRUCT_VALUE): Likewise.
15144         (RETURN_IN_MEMORY): Likewise.
15145         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15146
15147 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15148
15149         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15150         (arm_setup_incoming_varargs): Likewise.
15151         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15152
15153 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15154
15155         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15156         (cris_setup_incoming_varargs): Likewise.
15157         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15158
15159 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15160
15161         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15162         (ns32k_struct_value_rtx): Likewise.
15163         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15164         NS32K_STRUCT_VALUE_REGNUM.
15165
15166 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15167
15168         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15169         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15170         (TARGET_STRUCT_VALUE_RTX): Likewise.
15171         (arm_struct_value_rtx): Likewise.
15172         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15173         (STRUCT_VALUE): Likewise.
15174         (STRUCT_VALUE_REGNUM): Likewise.
15175         (PROMOTE_PROTOTYPES): Likewise.
15176
15177 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15178
15179         * config/ia64/ia64-protos.h: Remove the prototype for
15180         ia64_setup_incoming_varargs and ia64_return_in_memory.
15181         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15182         (TARGET_RETURN_IN_MEMORY): Likewise.
15183         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15184         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15185         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15186         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15187         (ia64_return_in_memory): Make it static.  Change the return
15188         type to bool from int.  Add an argument.
15189         (ia64_struct_value_rtx): New.
15190         * config/ia64/ia64.h: Remove commented-out definitions of
15191         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15192         PROMOTE_PROTOTYPES.
15193         (RETURN_IN_MEMORY): Remove.
15194         (STRUCT_VALUE_REGNUM): Likewise.
15195         (STRICT_ARGUMENT_NAMING): Likewise.
15196
15197 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15198
15199         PR target/13666
15200         * config/sparc/sparc.c (function_arg_union_value): New function.
15201         (function_arg): Use it to deal with unions.
15202         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15203         Replace a conditional statement by a simpler one.
15204
15205 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
15206
15207         * config/mips/mips.c (mips16_optimize_gp): Delete.
15208         (mips_reorg): Don't call it.
15209
15210 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15211
15212         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15213         (floatunsqihf2): Remove operand 6.
15214         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15215         fix patterns.
15216         (ldi_conditional, ldf_conditional): Validate operands.
15217
15218 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15219
15220         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15221         (HAVE_GAS_HIDDEN): Undefine as interim measure.
15222
15223 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15224
15225         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
15226         memory references if TARGET_EXPOSE_LDP nonzero.
15227
15228 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15229
15230         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15231
15232 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15233
15234         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15235         invalid operand combinations.
15236
15237 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15238
15239         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15240         c4x_legitimate_address_p.  Fix post_modify check.
15241
15242         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15243         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15244
15245 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15246
15247         * config/pa/pa-protos.h: Remove the prototype for
15248         hppa_builtin_saveregs.  Add a prototype for
15249         pa_return_in_memory.
15250         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15251         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15252         (TARGET_STRUCT_VALUE_RTX): Likewise.
15253         (TARGET_RETURN_IN_MEMORY): Likewise.
15254         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15255         (pa_struct_value_rtx): Likewise.
15256         (pa_return_in_memory): Likewise.
15257         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15258         PA_STRUCT_VALUE_REGNUM.
15259         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15260         (EXPAND_BUILTIN_SAVEREGS): Remove.
15261         (PROMOTE_PROTOTYPES): Likewise.
15262         (PROMOTE_FUNCTION_RETURN): Likewise.
15263
15264 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15265
15266         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15267         (TARGET_STRUCT_VALUE_RTX): Likewise.
15268         (vax_struct_value_rtx): Likewise.
15269         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15270         VAX_STRUCT_VALUE_REGNUM.
15271         (PROMOTE_PROTOTYPES): Remove.
15272
15273 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15274
15275         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
15276
15277 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
15278
15279         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15280         and MIPS64 have HI/LO interlocks.  Update comment.
15281
15282 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15283
15284         * config/stormy16/stormy16-protos.h: Remove the prototype for
15285         xstormy16_setup_incoming_varargs.
15286         * config/stormy16/stormy16.c
15287         (xstormy16_setup_incoming_varargs): Remove.
15288         (xstormy16_return_in_memory): New.
15289         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15290         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15291         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15292         (TARGET_STRUCT_VALUE_RTX): Likewise.
15293         (TARGET_RETURN_IN_MEMORY): Likewise.
15294         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15295         (PROMOTE_FUNCTION_RETURN): Likewise
15296         (PROMOTE_PROTOTYPES): Likewise
15297         (RETURN_IN_MEMORY): Likewise
15298         (STRUCT_VALUE): Likewise
15299         (SETUP_INCOMING_VARARGS): Likewise
15300
15301 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15302
15303         * config/mips/mips.c (mips_offset_within_object_p): New function.
15304         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15305         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
15306         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15307
15308 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15309
15310         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15311         (PROMOTE_FUNCTION_RETURN): Likewise.
15312
15313 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15314
15315         * config/mn10300/mn10300-protos.h: Remove the prototype for
15316         mn10300_builtin_saveregs.
15317         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15318         (TARGET_STRUCT_VALUE_RTX): Likewise.
15319         (TARGET_RETURN_IN_MEMORY): Likewise.
15320         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15321         (mn10300_return_in_memory): Likewise.
15322         (mn10300_builtin_saveregs): Make it static.
15323         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15324         (RETURN_IN_MEMORY): Likewise.
15325         (STRUCT_VALUE): Likewise.
15326         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15327
15328 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
15329
15330         PR bootstrap/13853
15331         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15332
15333 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15334
15335         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15336         using ccr.
15337
15338 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15339
15340         * config/i860/i860-protos.h: Remove the prototype for
15341         i860_saveregs.
15342         * config/i860/i860.c (i860_saveregs): Make it static.
15343         (i860_struct_value_rtx): New.
15344         (TARGET_STRUCT_VALUE_RTX): Likewise.
15345         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15346         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15347         I860_STRUCT_VALUE_REGNUM.
15348         (EXPAND_BUILTIN_SAVEREGS): Remove.
15349
15350 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15351
15352         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15353         (TARGET_RETURN_IN_MEMORY): Likewise.
15354         (m68hc11_struct_value_rtx): Likewise.
15355         (m68hc11_return_in_memory): Likewise.
15356         * config/m68hc11/m68hc11.h: Remove a commented-out definition
15357         of PROMOTE_PROTOTYPES.
15358         (RETURN_IN_MEMORY): Remove.
15359         (STRUCT_VALUE_REGNUM): Likewise.
15360
15361 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15362
15363         * config/mmix/mmix-protos.h: Remove the prototype for
15364         mmix_setup_incoming_varargs.
15365         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15366         (TARGET_STRUCT_VALUE_RTX): Likewise.
15367         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15368         (mmix_setup_incoming_varargs): Make it static.
15369         (mmix_struct_value_rtx): New.
15370         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15371         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15372         (STRUCT_VALUE_REGNUM): Remove.
15373         (SETUP_INCOMING_VARARGS): Likewise.
15374
15375 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15376
15377         * config/mips/mips-protos.h: Remove the prototypes for
15378         mips_setup_incoming_varargs and mips_return_in_memory.
15379         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15380         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15381         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15382         (TARGET_STRUCT_VALUE_RTX): Likewise.
15383         (TARGET_RETURN_IN_MEMORY): Likewise.
15384         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15385         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15386         (mips_setup_incoming_varargs): Match the prototype for
15387         TARGET_SETUP_INCOMING_VARARGS.
15388         (mips_return_in_memory): Make it static.  Add argument fntype.
15389         (mips_strict_argument_naming): New.
15390         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15391         (PROMOTE_FUNCTION_ARGS): Likewise.
15392         (PROMOTE_FUNCTION_RETURN): Likewise.
15393         (STRUCT_VALUE): Likewise.
15394         (RETURN_IN_MEMORY): Likewise.
15395         (SETUP_INCOMING_VARARGS): Likewise.
15396         (STRICT_ARGUMENT_NAMING): Likewise.
15397
15398 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15399
15400         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15401         (TARGET_RETURN_IN_MEMORY): Likewise.
15402         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15403         (ip2k_return_in_memory): Likewise.
15404         (ip2k_setup_incoming_varargs): Likewise.
15405         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15406         (STRUCT_VALUE): Likewise.
15407         (STRUCT_VALUE_INCOMING): Likewise.
15408         (SETUP_INCOMING_VARARGS): Likewise.
15409
15410 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15411
15412         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15413         (TARGET_RETURN_IN_MEMORY): Likewise.
15414         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15415         (avr_return_in_memory): Remove.
15416         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15417         (STRUCT_VALUE): Likewise.
15418         (STRUCT_VALUE_INCOMING): Likewise.
15419         (STRICT_ARGUMENT_NAMING): Likewise.
15420
15421 2004-01-25  Jan Hubicka  <jh@suse.cz>
15422
15423         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15424
15425 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15426
15427         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15428         (mips_regno_mode_ok_for_base_p): Declare.
15429         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15430         (FRAME_POINTER_REGNUM): Renumber to 78.
15431         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15432         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15433         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15434         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15435         (REG_MODE_OK_FOR_BASE_P): Likewise.
15436         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15437         entry for 77 to "$arg" and entry for 78 to "$frame".
15438         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15439         (mips_reg_mode_ok_for_base_p): Remove.
15440         (mips_regno_mode_ok_for_base_p): New function, derived from old
15441         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
15442         restrictions unless we're being strict.
15443         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15444
15445 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15446
15447         * c-common.h: Fix comment typos.
15448         * c-decl.c: Likewise.
15449         * cgraphunit.c: Likewise.
15450         * combine.c: Likewise.
15451         * et-forest.c: Likewise.
15452         * flow.c: Likewise.
15453         * function.c: Likewise.
15454         * ifcvt.c: Likewise.
15455         * integrate.c: Likewise.
15456         * jump.c: Likewise.
15457         * postreload.c: Likewise.
15458         * varray.c: Likewise.
15459
15460 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15461
15462         * doc/frontends.texi: Update copyright.
15463         * doc/gcov.texi: Likewise.
15464         * doc/gty.texi: Likewise.
15465         * doc/sourcebuild.texi: Likewise.
15466         * doc/standards.texi: Likewise.
15467
15468 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
15469
15470         PR target/12978
15471         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15472         Remove movstrqi_small because it conflicts with movstrqi_large.
15473
15474 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15475
15476         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15477         (TARGET_STRUCT_VALUE_RTX): Likewise.
15478         (cris_struct_value_rtx): Likewise.
15479         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15480         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15481         STRUCT_VALUE_REGNUM.
15482         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15483
15484 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
15485
15486         PR bootstrap/13848
15487         * cse.c (cse_cc_succs): Change the mode of the source expression
15488         as soon as decide we need a new mode.  Don't permit changing modes
15489         if we found a match in a successor block.
15490         (cse_condition_code_reg): Save original mode of source expression
15491         so that we know whether we have to change the mode in other
15492         insns.
15493
15494 2004-01-24  Jan Hubicka  <jh@suse.cz>
15495
15496         * emit-rtl.c (change_address, adjust_address_1, offset_address,
15497         widen_memory_access):  Return early when there is nothing to change.
15498
15499 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
15500
15501         * simplify-rtx.c (simplify_relational_operation): Don't
15502         simplify address == constant into address + -constant == 0.
15503
15504 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15505
15506         * gcc.c (process_command): Don't internationalize the
15507         Copyright message.
15508         * mips-tfile.c (main): Likewise.
15509
15510 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
15511
15512         * cse.c: (cse_cc_succs) Fix comparison warning.
15513
15514 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15515
15516         * config/h8300/h8300.md: Remove extraneous USE in expanders.
15517
15518 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15519
15520         * config/h8300/h8300-protos.h: Provide prototypes for
15521         h8300_legitimate_constant_p and h8300_legitimate_address_p.
15522         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
15523         (h8300_rtx_ok_for_base_p): Likewise.
15524         (h8300_legitimate_address_p): Likewise.
15525         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
15526         h8300_legitimate_constant_p.
15527         (RTX_OK_FOR_BASE_P): Remove.
15528         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
15529
15530 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15531
15532         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
15533         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15534         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
15535         (REG_OK_FOR_BASE_STRICT_P): Likewise.
15536         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
15537         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
15538         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
15539         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
15540
15541 2004-01-24  Jan Hubicka  <jh@suse.cz>
15542
15543         * cselib.c (remove_useless_values):  Do not access discarded values.
15544
15545 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
15546
15547         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
15548         arrays.
15549
15550 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
15551
15552         * recog.c: Fix a typo in copyright.
15553
15554 2004-01-23  Andrew Pinski  <apinski@apple.com>
15555
15556         * config/rs6000/rs6000.md (call): Fix misappiled patch.
15557         (call_value): Likewise.
15558
15559 2004-01-23  Richard Henderson  <rth@redhat.com>
15560
15561         PR opt/12941
15562         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
15563         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
15564         if SHIFT_COUNT_TRUNCATED is set.
15565
15566 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
15567
15568         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
15569         separate real and imaginary parts.
15570         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
15571
15572 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
15573
15574         PR target/13674
15575         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
15576         loading into GPR.
15577
15578 2004-01-23  Jan Hubicka  <jh@suse.cz>
15579
15580         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
15581         change.
15582
15583         * alloc-pool.c (align_four): Kill.
15584         (create_alloc_pool): Align size to eight.
15585         (free_alloc_pool, free_pool): Invalidate deallocated data.
15586
15587 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
15588
15589         PR gcc/1532
15590         * cse.c (cse_change_cc_mode): New static function.
15591         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
15592         (cse_condition_code_reg): New function.
15593         * rtl.h (cse_condition_code_reg): Declare.
15594         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
15595         * target.h (struct gcc_target): Add fixed_condition_code_regs and
15596         cc_modes_compatible.
15597         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15598         (TARGET_CC_MODES_COMPATIBLE): Define.
15599         (TARGET_INITIALIZER): Add new initializers.
15600         * targhooks.c (default_cc_modes_compatible): New function.
15601         * targhooks.c (default_cc_modes_compatible): Declare.
15602         * hooks.c (hook_bool_intp_intp_false): New function.
15603         * hooks.h (hook_bool_intp_intp_false): Declare.
15604         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15605         (TARGET_CC_MODES_COMPATIBLE): Define.
15606         (ix86_fixed_condition_code_regs): New static function.
15607         (ix86_cc_modes_compatible): Likewise.
15608         * doc/tm.texi (Condition Code): Document new hooks.
15609
15610 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15611
15612         * fixinc/inclhack.def (bad_lval): Renamed to ...
15613         (alpha_bad_lval): ... this.
15614         Removed file list.
15615         Restrict to alpha*-dec-osf*.
15616         * fixinc/fixincl.x: Regenerate.
15617         * fixinc/tests/base/dirent.h: Remove, moving test ...
15618         * fixinc/tests/base/testing.h: ... here, reflecting new name.
15619
15620 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
15621
15622         PR c/13814
15623         * c-decl.c (diagnose_mismatched_decls): Also discard a
15624         built-in if we encounter an old-style definition with the
15625         same name.
15626
15627 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
15628
15629         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
15630         set to default{32,64}.
15631
15632 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15633
15634         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
15635         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
15636
15637 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
15638             Olivier Hainque  <hainque@act-europe.fr>
15639
15640         * fold-const.c (fold_binary_op_with_conditional_arg): Only
15641         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
15642
15643 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
15644
15645         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
15646         size for minipool references.
15647
15648 2004-01-23  Roger Sayle  <roger@eyesopen.com>
15649
15650         * real.c (real_floor, real_ceil): Tweak to allow input and output
15651         arguments to overlap.
15652         (real_round): New function to implement round(3m) semantics.
15653         * real.h (real_round): Prototype here.
15654         * builtins.c (fold_builtin_round): New function to constant fold
15655         round, roundf and roundl.
15656         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
15657
15658 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
15659
15660         PR optimization/13819
15661         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
15662         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
15663         (sh_handle_sp_switch_attribute): Remove warning.
15664
15665 2003-11-30  Jan Hubicka  <jh@suse.cz>
15666
15667         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
15668
15669 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
15670
15671         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
15672         may or may not return non-NIL.
15673         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
15674         check CANNOT_CHANGE_MODE_CLASS
15675
15676 2004-01-23  Jan Hubicka  <jh@suse.cz>
15677
15678         * basic-block.h (PROP_POSTRELOAD): New macro.
15679         (CLEANUP_LOG_LINKS): New.
15680         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
15681         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
15682
15683         * cselib.c (value_pool): New.
15684         (new_cselib_val): Use pool.
15685         (cselib_init): Initialize value_pool
15686         (cselib_finish): Free pool.
15687
15688 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
15689
15690         * config/sparc/sparc.c (scan_record_type): New function.
15691         (function_arg_slotno): Use it to determine which kinds of
15692         registers the record can be passed in.
15693
15694 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
15695
15696         * config/pa/fptr.c: Fix old-style definition.
15697
15698 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
15699
15700         PR optimization/13724
15701         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
15702         represents the zero bits produced by a ZERO_EXTEND operation.
15703
15704 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15705
15706         PR optimization/13821
15707         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
15708         correctly calculate the lowpart offset of the contracted subreg.
15709
15710 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
15711
15712         * doc/invoke.texi (Optimize Options): Note that --param arguments
15713         are subject to change without notice.
15714
15715 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15716
15717         * config.gcc (mips-sgi-irix6*o32): Removed.
15718         * config/mips/iris6-o32-as.h: Likewise.
15719         * config/mips/iris6-o32-gas.h: Likewise.
15720         * config/mips/iris6-o32.h: Likewise.
15721
15722 2004-01-22  Jan Hubicka  <jh@suse.cz>
15723
15724         * cfgcleanup.c (first_pass): New static variable.
15725         (try_forward_edges):  Add work limiting check for threading.
15726         (try_crossjump_bb):  Add work limiting check for crossjumping.
15727         (try_optimize_cfg):  Maintain first pass variable.
15728
15729 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
15730
15731         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
15732         handles complex and vector modes.
15733
15734 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15735
15736         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
15737         (REG_OK_FOR_BASE_P_STRICT): Likewise.
15738         (STRICT): Likewise.
15739
15740 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15741
15742         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
15743         (genrtl_for_stmt): Remove emit_nop calls.
15744
15745 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15746
15747         PR target/13713
15748         PR target/13324
15749         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
15750         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
15751         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
15752
15753 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15754
15755         * config/arm/arm.c: Include "debug.h".
15756         (thumb_pushpop): Take two new arguments.  Add some commentary.
15757         Output frame information when pushing.
15758         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
15759         thumb_pushpop.
15760         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
15761         offset, and pass it to thumb_pushpop.  Output CFI information.
15762         (thumb_expand_prologue): Add some frame-related markers and notes.
15763
15764 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
15765
15766         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
15767         for TARGET_64BIT.
15768         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
15769         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
15770
15771 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15772             Paolo Bonzini  <bonzini@gnu.org>
15773
15774         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
15775         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
15776         * rtl.h (subreg_lsb_1): Prototype here.
15777         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
15778         sign extensions.
15779
15780 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15781
15782         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
15783         macro need not be defined if jump-tables should contain
15784         relative addresses only when -fPIC or -fPIC is in effect.
15785
15786 2004-01-22  Jan Hubicka  <jh@suse.cz>
15787
15788         * alias.c (reg_base_value): Turn into varray.
15789         (reg_base_value_size): Kill.
15790         (old_reg_base_value): New deletable varray.
15791         (alias_invariant_size): New variable.
15792         (REG_BASE_VALUE): Update to use varray.
15793         (find_base_value): Likewise.
15794         (record_set): Likewise.
15795         (record_base_value): Likewise.
15796         (memrefs_conflict_p): Likewise.
15797         (record_set): Likewise
15798         (record_base_value): Likewise.
15799         (memrefs_conflict_p): Use alias_invariant_size.
15800         (init_alias_analysis): Use varray; set alias_invariant_size;
15801         rescale other arrays to be sized by maxreg.
15802         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
15803
15804 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
15805
15806         * config/sparc/sparc.c (function_arg_slotno): Use
15807         FLOAT_TYPE_P to detect FP fields in structures.
15808         (function_arg_record_value_1): Likewise.
15809         (function_arg_record_value_2): Likewise.
15810
15811 2004-01-22  Jan Hubicka  <jh@suse.cz>
15812
15813         * function.c (allocate_struct_function): Do not initialize expr, emit
15814         and varasm.
15815         (prepare_function_start): Do it here.
15816         * c-parse.in (maybe_type_qual): Do not produce line number notes.
15817
15818 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
15819
15820         PR target/13559
15821         * config/sparc/sparc.c (function_arg_record_value_3): Revert
15822         to 'word_mode' once the first slot has been filled.
15823
15824 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
15825
15826         * config/sparc/sparc.c (function_arg_record_value_1): Fix
15827         computation of the number of integer registers required.
15828
15829 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15830
15831         * config/i386/i386.md: Simplify certain comparisons of
15832         const_int.
15833
15834 2004-01-21  Andrew Pinski  <apinski@apple.com>
15835
15836         PR target/13785
15837         * config/rs6000/rs6000.md (call_value): Force operand
15838         1 not operand 0 into a register.
15839
15840 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15841
15842         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
15843         unwind-dw2-fde.h: Update copyright.
15844
15845 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15846
15847         * pa-protos.h: Update copyright.
15848         * pa.h: Likewise.
15849         * pa.md: Likewise.
15850
15851 2004-01-21  Caroline Tice  <ctice@apple.com>
15852
15853         PR target/12308
15854         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
15855         flags register.
15856         (fix_truncdfdi2): Likewise.
15857         (fix_truncsfdi2): Likewise.
15858         (*fix_truncdi_1): Likewise.
15859         (fix_truncxfsi2): Likewise.
15860         (fix_truncdfsi2): Likewise.
15861         (fix_truncsfsi2): Likewise.
15862         (*fix_truncsi_1): Likewise.
15863         (fix_truncxfhi2): Likewise.
15864         (fix_truncdfhi2): Likewise.
15865         (fix_truncsfhi2): Likewise.
15866         (*fix_trunchi_1): Likewise.
15867
15868 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15869
15870         * alias.c, basic-block.h, c-common.c, c-common.h,
15871         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
15872         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
15873         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
15874         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
15875         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
15876         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
15877         genautomata.c, genconditions.c, genemit.c, genflags.c,
15878         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
15879         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
15880         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
15881         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
15882         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
15883         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
15884         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
15885         unwind.h, varray.c, varray.h: Update copyright.
15886
15887 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15888
15889         * config/h8300/coff.h: Update copyright.
15890         * config/h8300/elf.h: Likewise.
15891         * config/h8300/h8300-protos.h: Likewise.
15892         * config/h8300/h8300.c: Likewise.
15893         * config/h8300/h8300.h: Likewise.
15894         * config/h8300/h8300.md: Likewise.
15895
15896 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15897
15898         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
15899         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
15900         ultrix_unistd): New hacks.
15901         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
15902         ULTRIX_CONST2_CHECK): Add checks.
15903         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
15904         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
15905         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
15906         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
15907         * fixinc/tests/base/locale.h: New file.
15908         * fixinc/fixincl.x: Rebuilt.
15909
15910 2004-01-21  Andreas Jaeger  <aj@suse.de>
15911             Michael Matz  <matz@suse.de>
15912
15913         * doc/extend.texi (Extended Asm): Clarify memory clobber.
15914
15915 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15916
15917         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
15918         _Jv_RegisterClasses through a function pointer.
15919
15920 2004-01-21  Falk Hueffner  <falk@debian.org>
15921
15922         PR target/12898
15923         * config/alpha/alpha.c (alpha_emit_set_const_1): If
15924         no_new_pseudos, use gen_rtx_SET directly for SImode constants
15925         which need multiple instructions to emit.
15926
15927 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
15928
15929         * config/m32r/m32r.h (CPP_SPEC): Define.
15930
15931 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
15932
15933         * c-decl.c (merge_decls): Kill different_binding_level and
15934         different_tu arguments; simplify throughout.
15935         (duplicate_decls): Likewise.
15936         (pushdecl, merge_translation_unit_decls): Update calls to
15937         duplicate_decls.
15938
15939 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15940
15941         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
15942         $(SYSTEM_H).
15943         (print-rtl1.o): Depend on $(SYSTEM_H).
15944
15945 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
15946
15947         PR bootstrap/12730
15948         * configure.ac: Delete definition and subsitution of docdir.
15949         Add info, man, srcman and srcinfo to target hooks. Create doc/
15950         directory.
15951         * configure: Regenerate.
15952         * Makefile.in: Don't substitute docdir and delete all references
15953         throughout.
15954         (MAKEINFOFLAGS): Define.
15955         (stmp-docobjdir): Delete.
15956         (INFOFILES, MANFILES): Define.
15957         (info): Call lang.info, srcinfo and lang.srcinfo.
15958         (generated-manpages): Call lang.man, srcman and lang.srcman.
15959         (srcinfo, srcman): New rules to copy back files to source directory.
15960         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
15961         (install-man): Revamp rule.
15962         (clean): Update dvi directory.
15963         (distclean): Delete TAGS from front end directorys.
15964         (maintainer-clean): Delete all document files in source directory.
15965
15966         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
15967         (objc.srcman, objc.srcinfo): Likewise.
15968
15969 2004-01-20  Bruce Korb  <bkorb@gnu.org>
15970
15971         * fixinc/inclhack.def(math_exception): bypass only for glibc.
15972         (matherr_decl): rename & relocate as exception_structure.
15973         This fix must precede the math_exception fix.
15974
15975 2004-01-20  Roger Sayle  <roger@eyesopen.com>
15976
15977         * fold-const.c (fold_convert): Rename to fold_convert_const.
15978         (fold_convert_const): Change arguments to take a tree_code,
15979         a type and the operand/expression to be converted.  Return
15980         NULL_TREE if no simplification is possible.  Add support for
15981         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
15982         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
15983         Adjust call to fold_convert to match new fold_convert_const.
15984         Avoid modifying the tree passed to fold in-place.
15985
15986 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
15987
15988         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
15989         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
15990         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
15991
15992 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15993
15994         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
15995         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
15996         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
15997         (emit_move_sequence): Check scratch_reg first in various if statements.
15998         Extend source simplification to handle all 64-bit CONST_INTs.
15999         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16000         frame size.
16001         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16002         frame offset calculations.
16003         * pa.h (NEW_HP_ASSEMBLER): Add comment.
16004         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16005         LEGITIMATE_64BIT_CONST_INT_P): Define.
16006         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
16007         any CONST_INT as legitimate during and after reload.
16008         (VAL_32_BITS_P, INT_32_BITS): Define.
16009         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16010
16011 2004-01-20  Jan Hubicka  <jh@suse.cz>
16012
16013         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16014         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16015         containing hard regs are shared.
16016         (gen_hard_reg_clobber): New function.
16017         (hard_reg_clobbers): New array.
16018         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16019         (copy_rtx): Do not copy clobbers containing hard regs.
16020         * rtl.h (gen_hard_reg_clobber): Declare.
16021
16022 2004-01-20  Jan Hubicka  <jh@suse.cz>
16023
16024         * varray.c:  Include hashtab.h
16025         (varray_descriptor): New structure.
16026         (hash_descriptor, eq_descriptor, varray_descriptor,
16027         print_statistics): New static functions
16028         (varray_init, varray_grow): Update statistics
16029         (dump_varray_statistics): New function.
16030         * varray.h (dump_varray_statistics): Declare.
16031         * toplev.c (finalize): Call it.
16032         * Makefile.in (varray.o): Add dependency.
16033
16034 2004-01-20  Jan Hubicka  <jh@suse.cz>
16035
16036         * cselib.c: Include alloc-pool.h
16037         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
16038         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
16039         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
16040         unchain_one_elt_loc_list_pool, unchain_one_value,
16041         new_cselib_val): Simplify using allocpool.
16042         (cselib_init): Initialize allocpools.
16043         (cselib_finish): Finish allocpools.
16044         * Makefile.in (cselib.o): Depend on alloc-pool.h
16045
16046 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
16047
16048         * config/mips/mips.c (mips_load_call_address): Make the call insn
16049         use $gp if it could be calling a lazy binding stub.
16050
16051 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16052
16053         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16054         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16055         (TARGET_STRUCT_VALUE_RTX): Likewise.
16056         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16057         (PROMOTE_FUNCTION_RETURN): Remove.
16058         (STRUCT_VALUE): Remove.
16059
16060 2004-01-20  Denis Chertykov  <denisc@overta.ru>
16061
16062         PR bootstrap/13735
16063         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16064         register as pointer after reload.
16065
16066 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16067
16068         PR optimization/12440
16069         * loop.c: Include ggc.h.
16070         (loop_optimize): Run garbage collector between optimization of loops.
16071         * Makefile.in (loop.o): Add GGC_H dependency.
16072
16073 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16074
16075         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16076         vector register special in function without prototype.
16077         (function_arg_advance): Vector parameters get always
16078         GPRs allocated for the linux64 target.
16079
16080 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16081
16082         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16083         not TARGET_M32RX_MASK.
16084
16085 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16086
16087         PR target/13557
16088         * config/sparc/sparc.c (function_arg): Reorder the cases.
16089
16090 2004-01-19  Per Bothner  <per@bothner.com>
16091
16092         Move cpp_reader's line_maps field to a shared global.
16093         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16094         and change the type to a pointer rather than a struct.
16095         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16096         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16097         Likewise.
16098         * cppfiles.c (validate_pch):  Likewise.
16099         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16100         Likewise.
16101         * cpperror.c (print_location):  Likewise.
16102         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16103         * cppinit.c (cpp_create_reader):  Handle new parameter.
16104         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16105         * input.h (line_table):  New variable.
16106         * toplev.c (line_table):  Declare variable.
16107         (general_init):  Initialize line_table.
16108         * c-opts.c (c_common_init_options):  Pass line_table to
16109         cpp_create_reader.
16110         * fix-header.c (read_scan_file):  New local variable line_table.
16111         Initialize, and pass it to cpp_create_reader.
16112         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16113         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16114
16115 2004-01-19  Per Bothner  <per@bothner.com>
16116
16117         Implement a cache for linemap_lookup.
16118         * line-map.h (struct_line_maps):  Add cache field.
16119         * line-map.c (linemap_init):  Zero cache field.
16120         (linemap_add):  Set cache field to offset of newly allocated map.
16121         (linemap_lookup):  Use and set cache field.
16122
16123 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16124
16125         PR optimization/13567
16126         * cse.c (cse_basic_block): Call cse_insn with a non-null
16127         libcall_insn for the last SET insn of a no-confilict block.
16128
16129 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16130
16131         * Makefile.in (target_noncanonical, program_transform_name): Use
16132         immediate define instead of deferred.
16133         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16134         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16135         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16136         deferred backquote.
16137
16138 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16139
16140         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16141         true unconditionally.
16142         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16143         Remove.
16144         (build_unary_op, build_modify_expr): Don't handle extended
16145         lvalues.
16146         (build_component_ref, build_conditional_expr): Call non_lvalue
16147         instead of pedantic_non_lvalue.
16148         (build_c_cast): Don't condition use of non_lvalue on pedantic.
16149         * fold-const.c (fold): Don't check pedantic directly for
16150         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
16151         passed to pedantic_non_lvalue.
16152         * doc/extend.texi: Remove documentation of extended lvalues.
16153
16154 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16155
16156         PR optimization/5263
16157         * simplify-rtx.c (associative_constant_p): Delete.
16158         (simplify_associative_operation): Rewrite to linearize terms, and
16159         attempt to simplify new term against both left and right subterms.
16160         (simplify_binary_operation): Call swap_commutative_operands_p on
16161         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16162         trueop0 and trueop1 down to where first needed.
16163         (simplify_relational_operation): Likewise.
16164         * rtlanal.c (commutative_operand_precedence): Also order constant
16165         operands using avoid_constant_pool_reference.
16166
16167 2004-01-19  Richard Henderson  <rth@redhat.com>
16168
16169         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16170         don't check memory mode.
16171         (unaligned_memory_operand): Likewise.
16172         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16173         abort for op0 not MEM.
16174
16175         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16176         is not a reg, copy to a scratch first.
16177         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16178         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16179         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16180         (reload_inqi, reload_inhi): Fix mode of op0.
16181         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16182         reload_outhi_help): Likewise.  Use define_insn_and_split.
16183
16184         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16185         as well as $29 dead.
16186
16187 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16188
16189         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16190         "tls_object" for thread-local objects.
16191         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16192         "#tls" for thread-local sections.
16193         * configure.ac (thread-local checks): Specify --fatal-warnings in
16194         every binutils-specific checks.  For sparc*-*-*, test whether the
16195         OS is Solaris and the tools are native and act accordingly.
16196         * configure: Rebuild.
16197
16198 2004-01-19  Jeff Law  <law@redhat.com>
16199
16200         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16201         Jerry Quinn and Petur Runolfsson.
16202
16203 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16204
16205         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16206         size, don't use the larger zero-extending loads.
16207
16208 2004-01-19  Richard Henderson  <rth@redhat.com>
16209
16210         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16211         * alpha.md (UNSPEC_NT_LDA): Remove.
16212         (UNSPEC_CVTLQ, cvtlq): New.
16213         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16214         (extendsidi2_fix): Remove.
16215         (extendsidi2 splitter): Use cvtlq.
16216         (extendsidi2 fp peepholes): Remove.
16217         (cvtql): Use SFmode instead of SImode.
16218         (fix_trunc?fsi): Update to match.
16219         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16220         (movsi): Rename from movsi_nofix, remove f alternatives.
16221         (movsi_nt_vms): Similarly.
16222         (movsi_fix, movsi_nt_vms_fix): Remove.
16223         (nt_lda): Remove.
16224         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16225
16226 2004-01-19  Jan Hubicka  <jh@suse.cz>
16227
16228         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16229         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16230         list.
16231         (cgraph_remove_unreachable_nodes): New function
16232         (cgraph_decide_inlining_of_small_function): Fix pasto.
16233         (cgraph_decide_inlining_incrementally): Fix pasto.
16234         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16235
16236 2004-01-19  Steven Bosscher  <stevenb@suse.de>
16237
16238         * gengtype.c (header_file): Make it static.
16239         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16240         * gengtype.h (header_file): No longer extern.
16241
16242 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16243
16244         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16245         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16246         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16247
16248 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16249
16250         * stmt.c (HAVE_casesi): Define it not already defined.
16251         (HAVE_tablejump): Likewise.
16252         (expand_end_case_type): Resort to the binary tree method if
16253         neither casesi or tablejump is available.
16254
16255 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
16256
16257         * final.c (final_scan_insn): Make non-static again.
16258         * output.h (final_scan_insn): Re-add prototype.
16259         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16260         to final_scan_insn call.
16261         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16262         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16263         * config/pa/pa.c (output_lbranch, output_call): Likewise.
16264         * config/sh/sh.c (print_slot): Likewise.
16265         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16266         (output_sibcall, sparc_flat_function_epilogue): Likewise.
16267
16268 2004-01-18  Jan Hubicka  <jh@suse.cz>
16269
16270         * basic-block.h (try_redirect_by_replacing_jump): Declare.
16271         * cfgcleanup.c (try_optimize_cfg): Use it.
16272         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16273         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16274         Kill hack.
16275         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16276
16277         Revert:
16278         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16279
16280                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16281                 even after reload, just don't remove the actual jump tables.
16282
16283 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16284
16285         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16286
16287 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16288
16289         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16290         the size of a pointer in bytes.
16291
16292 2004-01-18  Roger Sayle  <roger@eyesopen.com>
16293
16294         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16295         live "next" variable, which could lead to an infinite loop.
16296
16297 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16298
16299         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16300         block.
16301
16302         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16303         Check for NULL in the chain and remove repeated code.
16304
16305 2004-01-18  Jan Hubicka  <jh@suse.cz>
16306
16307         * coverage.c (checksum_string): Rename to ...
16308         (coverage_checksum_string): ... this one, Use crc32_string; recognize
16309         names containing random number and zero the number out in order to get
16310         match.
16311
16312 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16313
16314         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16315
16316 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16317
16318         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16319         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16320         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16321         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16322         doc/trouble.texi: Remove trailing whitespace.
16323
16324 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16325
16326         PR target/7618
16327         * config/mips/mips.c: Include cfglayout.h.
16328         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16329         (mips_unspec_offset_high): Add temporary register argument.
16330         (mips_load_call_address): New function, split out from...
16331         (mips_expand_call): ...here.
16332         (mips_output_cplocal): New function.
16333         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16334         (mips_emit_loadgp): New function, split out from...
16335         (mips_expand_prologue): ...here.
16336         (mips_output_mi_thunk): New function.
16337
16338 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
16339
16340         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16341         mcpu32): Remove redundant checks for implied target predefines.
16342
16343 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
16344
16345         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16346         Return type is unsigned int not int.
16347         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16348         Likewise.
16349
16350 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16351
16352         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16353         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16354         "GNU/Linux" and "Microsoft Windows" terminology.
16355
16356 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16357
16358         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16359         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16360         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16361         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16362         @smallexample instead of @example.
16363
16364 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
16365
16366         * objc/objc-act.c (build_objc_method_call): Use target
16367         hooks instead of macros to determine if ..._stret
16368         dispatchers should be used (NeXT runtime only).
16369
16370 2004-01-17  Roger Sayle  <roger@eyesopen.com>
16371
16372         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16373         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16374
16375 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16376
16377         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16378         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16379         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16380         macros.
16381         * reload1.c (emit_reload_insns): Use them.
16382         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16383         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16384         for NULL PATTERN.
16385
16386 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16387
16388         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16389         (final_scan_insn): Update to take an additional SEEN argument.  Emit
16390         a line note after the prologue.  Make static.
16391         (line_note_exists): Remove.
16392         (final): Don't initialize line_note_exists.  Update call to
16393         final_scan_insn.
16394         * output.h (final_scan_insn): Remove prologue.
16395         * function.c (set_insn_locators): Update comment.
16396         (thread_prologue_and_epilogue_insns): Add a comment.
16397
16398 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
16399
16400         PR target/10781
16401         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16402         Prototype.
16403         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16404         New function.
16405         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16406         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16407         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16408
16409 2004-01-17  Jan Hubicka  <jh@suse.cz>
16410
16411         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16412         commit.
16413
16414         * toplev.c (HAVE_conditional_execution): Provide default.
16415         (rest_of_handle_reorder_blocks): For conditional_execution target
16416         update liveness once after all transformations
16417         (rest_of_compilation): Do crossjumping before ce3.
16418
16419 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
16420
16421         * alias.c (new_alias_set): Mark last_alias_set for PCH.
16422         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16423         for PCH.
16424         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16425         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16426         (get_TOC_alias_set): Mark 'set' for PCH.
16427
16428 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16429
16430         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16431         even after reload, just don't remove the actual jump tables.
16432
16433 2004-01-17  J. Brobecker  <brobecker@gnat.com>
16434
16435         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16436         Remove checks for is_ada() and TREE_UNSIGNED.
16437         (subrange_type_die): Emit a byte_size attribute if the subrange
16438         type size is different from the base type size.
16439         (modified_type_die): Replace call to is_ada_subrange_type() by
16440         call to is_subrange_type().
16441
16442 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
16443
16444         * config/sh/sh.c: Include ggc.h.
16445
16446 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16447
16448         * Makefile.in (MD5_H): New.
16449         (fold-const.o): Depend on md5.h.
16450         (dwarf2out.o): Likewise.
16451         (cppfiles.o): Likewise.
16452         * cppfiles.c: Include md5.h.
16453         (should_stack_file): Check against list read from PCH file.
16454         (struct pchf_data): New.
16455         (pchf): New variable.
16456         (struct pchf_adder_info): New.
16457         (pchf_adder): New.
16458         (pchf_save_compare): New.
16459         (_cpp_save_file_entries): New.
16460         (_cpp_read_file_entries): New.
16461         (struct pchf_compare_data): New.
16462         (pchf_compare): New.
16463         (check_file_against_entries): New.
16464         * cpphash.h (_cpp_save_file_entries): Prototype.
16465         (_cpp_read_file_entries): Prototype.
16466         * cpppch.c (cpp_write_pch_state): Write the list of headers.
16467         (cpp_read_state): Read the list of headers.
16468
16469 2004-01-17  Jan Hubicka  <jh@suse.cz>
16470
16471         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16472         builtin_expect specially.
16473         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16474         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16475         * invoke.texi (max-inline-insns-single): Set to 100.
16476         (large-function-insns): Set to 3000.
16477
16478 2004-01-16  Eric Christopher  <echristo@redhat.com>
16479             Chandrakala Chavva <cchavva@redhat.com>
16480
16481         * cppcharset.c (one_iso88591_to_utf8): New function.
16482         (convert_iso88591_utf8): Ditto. Use.
16483         (conversion_tab): Use.
16484         (_cpp_input_to_utf8): New function.
16485         (_cpp_init_iconv_buffer): Ditto.
16486         (_cpp_close_iconv_buffer): Ditto.
16487         * cpphash.h: Prototype new functions.
16488         (cpp_buffer): Add input_cset_desc.
16489         * cppinit.c: Add input_charset default.
16490         * cpplib.c (cpp_push_buffer): Support init and
16491         close of iconv.
16492         * cpplib.h (cpp_options): Add input_charset.
16493
16494 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16495
16496         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16497         * config/alpha/unicosmk.h: Remove a commented-out definition
16498         of ASM_OUTPUT_SECTION_NAME.
16499         * config/stormy16/stormy16.h: Likewise.
16500
16501 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16502
16503         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16504         (alpha___extern_prefix_sys_stat): ... this.
16505         Apply to <sys/mount.h>, too.
16506         Tweak to match more variations.
16507         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16508
16509         * fixinc/inclhack.def (alpha___extern_prefix,
16510         alpha___extern_prefix_standards): New hacks to obey
16511         __PRAGMA_EXTERN_PREFIX.
16512         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16513         test.
16514         * fixinc/tests/base/standards.h: Likewise.
16515
16516         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16517         variations.
16518         New testcase.
16519         * fixinc/tests/base/pthread.h: Handle it.
16520
16521         * fixincl/inclhack.def (bad_lval): Sort file list.
16522         Add many missing files up to Tru64 UNIX V5.1B.
16523         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
16524         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
16525         order.
16526
16527         * fixinc/fixincl.x: Regenerate.
16528
16529 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
16530
16531         * version.c (version_string): Change to 3.5.0.
16532         * doc/include/gcc-common.texi (version-GCC): Likewise.
16533
16534 2004-01-16  Jan Hubicka  <jh@suse.cz>
16535
16536         * i386.md (load_tp_di): Fix pasto.
16537
16538         PR opt/13608
16539         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
16540
16541         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
16542         pp_c_character_constant, pp_c_floating_constant,
16543         pp_c_additive_expression, pp_c_shift_expression,
16544         pp_c_equality_expression, pp_c_and_expression,
16545         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
16546         pp_c_logical_and_expression): Remove inline modifier.
16547         * dwarf2out.c (get_AT): Likewise.
16548         * et-forest.c (et_splay): Likewise.
16549         * ra.h (ra_alloc, ra_calloc): Likewise
16550
16551 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16552
16553         * config/frv/frv-protos.h: Fix comment formatting.
16554         * config/frv/frv.c: Likewise.
16555         * config/frv/frv.h: Likewise.
16556         * config/frv/frv.md: Likewise.
16557         * config/frv/frvbegin.c: Likewise.
16558         * config/frv/frvend.c: Likewise.
16559
16560 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16561
16562         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
16563         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
16564         LINKER_DOES_NOT_WORK_WITH_DWARF2.
16565         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
16566
16567 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
16568
16569         PR 11864
16570         * postreload.c (reload_cse_simplify_operands): Don't remove
16571         implicit extension from LOAD_EXTEND_OP.
16572
16573 2004-01-16  Jan Hubicka  <jh@suse.cz>
16574
16575         PR opt/11350
16576         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
16577         after reload.
16578         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
16579         rtl_try_redirect_by_replacing_branch): Likewise.
16580
16581 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
16582
16583         PR pch/13689
16584         * alias.c (struct alias_set_entry): Mark for GC.
16585         (alias_sets): Make static, mark for GC.
16586         (record_alias_subset): Use GC to allocate alias structures.
16587         * varray.c (element): Make generic varrays GCed.
16588
16589         PR pch/13361
16590         * c-typeck.c (constructor_asmspec): Delete.
16591         (struct initializer_stack): Delete field 'asmspec'.
16592         (start_init): Delete saving of asmspec.
16593         (finish_init): Don't update constructor_asmspec.
16594         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16595         * stmt.c (expand_asm): Duplicate strings from tree.
16596         (expand_asm_operands): Likewise.
16597         * tree.c (tree_size): Update computation of size of STRING_CST.
16598         (make_node): Don't make STRING_CST nodes.
16599         (build_string): Allocate string with tree node.
16600         * tree.def (STRING_CST): Update comment.
16601         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16602         (tree_string): Place contents of string in tree node.
16603         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16604         from tree.
16605
16606         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
16607         altivec operands.
16608
16609 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16610
16611         * c-common.h: Fix comment formatting.
16612         * c-cppbuiltin.c: Likewise.
16613         * c-pragma.c: Likewise.
16614         * calls.c: Likewise.
16615         * collect2.c: Likewise.
16616         * cppcharset.c: Likewise.
16617         * cpptrad.c: Likewise.
16618         * dbxout.c: Likewise.
16619         * defaults.h: Likewise.
16620         * dwarf2out.c: Likewise.
16621         * fold-const.c: Likewise.
16622         * genautomata.c: Likewise.
16623         * genconditions.c: Likewise.
16624         * genflags.c: Likewise.
16625         * gengtype.c: Likewise.
16626         * integrate.c: Likewise.
16627         * loop.c: Likewise.
16628         * predict.c: Likewise.
16629         * sdbout.c: Likewise.
16630
16631 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
16632
16633         * config/ia64/ia64.md (*movti_internal): C output template
16634         extracted to ia64.c.
16635         (*movti_internal_reg): Delete.
16636         (reload_inti, reload_outti): Use the correct mode on operand 2
16637         in the first place, don't fix it up in the output template.
16638         (movtf, reload_ointf, reload_outtf): New expanders.
16639         (*movtf_internal): New define_insn_and_split.
16640         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
16641         make static; do not hand TFmode CONST_DOUBLEs to split_double.
16642         (ia64_split_tmode_move): New function, body mostly pulled
16643         from ia64.md:*movti_internal.
16644         (ia64_function_arg_words): New function, extracted common
16645         logic from ia64_function_arg et seq.
16646         (ia64_function_arg_offset): Likewise.  Handle correctly the
16647         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
16648         (ia64_function_arg, ia64_function_arg_partial_nregs)
16649         (ia64_function_arg_advance): Use ia64_function_arg_words and
16650         ia64_function_arg_offset.
16651         (ia64_function_value): TCmode does not go in float regs.
16652         (ia64_secondary_reload_class): Also handle TFmode.
16653         * config/ia64/ia64-protos.h: Remove prototype for
16654         ia64_split_timode; add prototype for ia64_split_tmode_move.
16655
16656 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16657
16658         * Makefile.in (MAINT): Make it an immediate assignment.
16659
16660 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16661
16662         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
16663
16664 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16665
16666         * config/h8300/coff.h: Replace Hitachi with Renesas.
16667         * config/h8300/elf.h: Likewise.
16668         * config/h8300/h8300-protos.h: Likewise.
16669         * config/h8300/h8300.c: Likewise.
16670         * config/h8300/h8300.h: Likewise.
16671         * config/h8300/h8300.md: Likewise.
16672         * config/h8300/lib1funcs.asm: Likewise.
16673
16674 2004-01-15  Andrew Pinski  <apinski@apple.com>
16675
16676         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
16677         around it.
16678
16679 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16680
16681         * config/h8300/h8300.c (h8300_return_in_memory): New.
16682         (TARGET_STRUCT_VALUE_RTX): Likewise.
16683         (TARGET_RETURN_IN_MEMORY): Likewise.
16684         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
16685         (RETURN_IN_MEMORY): Likewise.
16686
16687 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16688
16689         PR optimization/13375
16690         * gcse.c (handle_avail_expr): Just return if the source is not a
16691         single set.
16692
16693 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16694             Daniel Jacobowitz  <drow@mvista.com>
16695
16696         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
16697         (EQUIV): Define.
16698         (ARM_FUNC_ALIAS): New macro.
16699         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
16700         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
16701
16702 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16703
16704         PR optimization/12372
16705         * calls.c (expand_call): Add call_fusage data for stack arguments in
16706         constant calls.
16707
16708 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
16709
16710         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
16711         (rs6000_elf_declare_function_name): Formatting.
16712         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
16713
16714 2004-01-15  Jan Hubicka  <jh@suse.cz>
16715
16716         PR bootstrap/13692
16717         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
16718         previous patch.
16719
16720 2004-01-15  Richard Henderson  <rth@redhat.com>
16721
16722         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
16723         integer regs of the same call-savedness.
16724
16725 2004-01-15  Andreas Schwab  <schwab@suse.de>
16726
16727         PR bootstrap/13562
16728         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
16729         status for NOTB/NOTW/NEGW methods.
16730
16731 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16732
16733         * doc/invoke.texi: Update dump file names.  Fix a typo.
16734
16735 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16736
16737         * builtins.c (expand_builtin_va_end): Don't use
16738         EXPAND_BUILTIN_VA_END.
16739         * system.h (EXPAND_BUILTIN_VA_END): Poison.
16740         * config/d30v/d30v.h: Remove a commented-out definition of
16741         EXPAND_BUILTIN_VA_END.
16742         * config/stormy16/stormy16.h: Likewise.
16743
16744 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16745
16746         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
16747         * targhooks.c (default_struct_value_rtx): Don't use
16748         STRUCT_VALUE_INCOMING_REGNUM.
16749
16750 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16751
16752         PR bootstrap/12744
16753         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
16754         GENINSRC and not parsedir.  Define srcextra as a langhook.
16755         * configure: Regenerate.
16756         * Makefile.in: Suppress default .l.c rule.  Don't substitute
16757         parsedir and delete all references throughout.  Conditionally define
16758         rule for srcextra dependent on GENINSRC.
16759         (stmp-docobjdir): Delete.
16760         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
16761         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
16762         and gengtype-yacc.h back to source directory.
16763         (maintainer-clean): Delete all parse files in source directory.
16764         (distclean): Delete generated files.
16765
16766         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
16767         (objc-parse.c, objc-parse.y): Don't use parsedir.
16768         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
16769         directory if requested.
16770         (po-generated): Don't use parsedir.
16771         (objc.maintainer-clean): Delete above files from source directory.
16772
16773 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16774
16775         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
16776
16777 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16778
16779         * doc/tm.texi: Replace RETURN_IN_MEMORY with
16780         TARGET_RETURN_IN_MEMORY.
16781
16782 2004-01-15  Jan Hubicka  <jh@suse.cz>
16783
16784         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
16785         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
16786         functions accepting SSE arguments
16787         (function_arg): Warn only when asked to warn.
16788         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
16789
16790 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
16791
16792         * c-parse.in (stmts_and_decls): Make label at end of compound
16793         statement a hard error.
16794
16795 2004-01-14  Jan Hubicka  <jh@suse.cz>
16796
16797         * cgraph.c (create_edge): Use local.redefined_extern_inline.
16798         * cgraph.h (cgraph_local_info): Sort fields by size; add
16799         redefined_extern_inline
16800         (cgraph_global_info): Sort fields by size.
16801         (cgraph_node): Likewise.
16802         * cgraphunit.c (cgraph_finalize_function): Se
16803         local.redefined_extern_inline on redefinition.
16804         (cgraph_analyze_function): Use it; fix formating.
16805
16806 2004-01-14  Jan Hubicka  <jh@suse.cz>
16807
16808         PR c++/10776
16809         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
16810         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
16811         bitmaps
16812         (cache_size): New variable
16813         (add_dependence): Update use; canonize early memory locations
16814         (sched_analyze_1): Likewise.
16815         (sched_analyze_2): Likewise.
16816         (init_dependency_caches): Initialize bitmaps.
16817         (free_dependency_caches): Free bitmaps
16818
16819 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16820
16821         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
16822         targetm.calls.strict_argument_naming().
16823         * target.h: Likewise.
16824
16825 2004-01-14  Richard Henderson  <rth@redhat.com>
16826
16827         PR debug/13231
16828         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
16829         instructions.
16830
16831 2004-01-14  Richard Henderson  <rth@redhat.com>
16832
16833         PR c++/12491
16834         * except.c (struct eh_region): Add u.fixup.resolved.
16835         (resolve_one_fixup_region): Split out from ...
16836         (resolve_fixup_regions): ... here.
16837
16838 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16839
16840         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
16841
16842 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16843
16844         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
16845         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
16846         (STRUCT_VALUE): Remove.
16847
16848 2004-01-14  Steven Bosscher  <stevenb@suse.de>
16849
16850         * system.h: Poison PROMOTED_MODE
16851         * integrate.c (expand_inline_function): Don't mention the
16852         PROMOTED_MODE.
16853         * loop.c (update_giv_derive): Same.
16854         * tree.h (DECL_RTL): Same.
16855
16856 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
16857
16858         PR target/9365
16859         * sh.c (gen_block_redirect): Add special handling of RETURN.
16860         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
16861         far branch target (i.e. it's a return).
16862
16863 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16864
16865         * regrename.c (find_oldest_value_reg): Fix a warning.
16866
16867 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
16868
16869         PR bootstrap/12527
16870         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
16871         Move linux-gas.h and linux-elf.h before aout.h.
16872         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
16873         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
16874
16875 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16876
16877         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
16878         (CONST_INT, VOIDmode, ...).
16879
16880 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
16881
16882         * regrename.c (find_oldest_value_reg): If the replacement uses
16883         multiple hard registers, check that all of them are in CLASS.
16884
16885 2004-01-14  Jan Hubicka  <jh@suse.cz>
16886
16887         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
16888         impossible.
16889
16890 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
16891
16892         * Makefile.in: Define MAINT from --enable-maintainer-mode.
16893
16894 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
16895
16896         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
16897         Calculate always vrsave_mask if TARGET_ALTIVEC.
16898         (rs6000_emit_prologue): Emit code for vrsave
16899         only if TARGET_ALTIVEC_VRSAVE.
16900         (rs6000_emit_epilogue): Likewise.
16901
16902 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
16903
16904         * config/sparc/sparc.md (tie_add32): Fix pasto.
16905         (tie_add64): Likewise.
16906
16907 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16908
16909         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
16910
16911 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16912
16913         * config/iq2000/iq2000-protos.h: Fix comment formatting.
16914         * config/iq2000/iq2000.c: Likewise.
16915         * config/iq2000/iq2000.md: Likewise.
16916
16917 2004-01-14  J. Brobecker  <brobecker@gnat.com>
16918
16919         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
16920         (subrange_type_die): Add handle for nameless subrange types.
16921
16922 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16923
16924         * config/h8300/h8300-protos.h: Replace do_movsi with
16925         h8300_expand_movsi.
16926         * config/h8300/h8300.c (do_movsi): Change to
16927         h8300_expand_movsi.
16928         * config/h8300/h8300.md (movsi): Replace do_movsi with
16929         h8300_expand_movsi.
16930         (movsf): Likewise.
16931
16932 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16933
16934         * config/h8300/h8300.c (dosize): Change to
16935         h8300_emit_stack_adjustment.  Update callers.
16936
16937 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16938
16939         * config/h8300/h8300.md (movstrictqi): Add an alternative with
16940         the source being post_inc.  Tighten the predicate for the
16941         destination to register_operand.
16942         (movstricthi): Likewise.
16943
16944 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16945
16946         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
16947         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
16948         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
16949
16950 2004-01-14  Jan Hubicka  <jh@suse.cz>
16951
16952         Partial fix PR c++/12850
16953         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
16954         at zero nest level.
16955
16956 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
16957
16958         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
16959         pseudo-register.
16960
16961 2004-01-13  Devang Patel <dpatel@apple.com
16962
16963         PR debug/7078
16964         * dbxout.c (dbxout_symbol_name): Emit mangled names for
16965         NAMESPACE_DECL memebers.
16966
16967 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
16968
16969         PR c++/12709
16970         * c-common.c (finish_fname_decls): Use the chain only if the
16971         tree is an expr_stmt.
16972
16973 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
16974
16975         * rtl.def: Add comment about new option in automata_option.
16976
16977         * genautomata.c (PROGRESS_OPTION): New macro.
16978         (progress_flag): New global variable.
16979         (gen_automata_option): Process `progress'.
16980         (transform_insn_regexps, check_unit_distributions_to_automata,
16981         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
16982         expand_automata, write_automata): Print about the progress only if
16983         progress_flag.  Remove fflush.
16984         (initiate_automaton_gen): Process command line flag `-progress'.
16985
16986         * doc/md.texi: Describe the new option.
16987
16988 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16989
16990         * cfg.c (dump_bb): Dump entry edges.
16991
16992 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
16993
16994         * arm.c (thumb_legitimate_address_p): Only allow constant pool
16995         references from SImode.
16996         * arm.md (thumb_movhi_insn): Don't allow minipool references.
16997
16998 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16999
17000         * system.h (TEXT_SECTION): Poison.
17001         * varasm.c (text_section): Don't use TEXT_SECTION.
17002         * config/sh/sh.c (sh_file_start): Fix a comment typo.
17003         * doc/tm.texi (TEXT_SECTION): Remove.
17004
17005 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
17006
17007         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17008
17009 2004-01-12  James E Wilson  <wilson@specifixinc.com>
17010
17011         * unwind-libunwind.c: Delete.
17012
17013 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17014
17015         PR 13656
17016         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17017         oldtype is set, set *newtypep or *oldtypep too.  Do not set
17018         them at the very end.
17019         (validate_proto_after_old_defn): Restructure for comprehensibility;
17020         make error messages clearer.
17021
17022 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17023
17024         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17025         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17026         * varray.c: No need to prototype error.
17027         (varray_check_failed): Wrap long string onto two lines.
17028         (varray_underflow): New function.
17029
17030 2004-01-13  Steven Bosscher  <stevenb@suse.de>
17031
17032         PR c++/13376
17033         * function.h (struct function): Kill `name' field.
17034         (current_function_name): Make it an extern function.
17035         * function.c (current_function_name): New function.
17036         * graph.c: Update all uses of current_function_name.
17037         * gcse.c: Likewise.
17038         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
17039         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
17040         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
17041         instead of a strcmp with "main".
17042
17043 2004-01-13  Jan Hubicka  <jh@suse.cz>
17044
17045         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
17046
17047         * cgraphunit.c (cgraph_optimize_function):  Always do
17048         optimize_inline_calls when there is always_inline callee.
17049         (cgraph_decide_inlining): Fix formating.
17050         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
17051         functions.
17052         (expand_call_inline): Likewise.
17053         * toplev.h (sorry): Fix prototype.
17054
17055 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17056
17057         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17058         conditional jumps that drop through to unconditional jumps or the
17059         end of the sequence.
17060
17061 2004-01-13  Jan Hubicka  <jh@suse.cz>
17062
17063         * alias.c (new_alias_set): Construct the alias_set varray.
17064         (init_alias_once): Don't do it here.
17065
17066 2004-01-12  Marc Espie <espie@openbsd.org>
17067
17068         * system.h: handle YYBYACC like YYBISON.
17069
17070 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17071
17072         PR target/10847
17073         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17074         building on sparc64-*-openbsd*.
17075
17076 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17077
17078         PR debug/13539
17079         * dbxout.c (dbxout_type): Protected inheritance is not
17080         private but protected.
17081
17082 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17083
17084         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17085
17086 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17087
17088         PR optimization/12508.
17089         * combine.c (try_combine): Remove a dead set in a parallel
17090         even if its destination is a subreg.
17091
17092         Revert:
17093         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17094         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17095         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17096
17097 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17098
17099         * real.c: Update copyright date.
17100         * emit-rtl.c: Likewise.
17101         * rtl.h: Likewise.
17102         * dwarf2out.c: Likewise.
17103         * config/rs6000/darwin-ldouble.c: Likewise.
17104         * config/rs6000/rs6000.md: Likewise.
17105
17106 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17107
17108         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17109         TFmode to SImode libfuncs.
17110
17111 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17112
17113         PR middle-end/11397
17114         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17115
17116 2004-01-12  Jan Hubicka  <jh@suse.cz>
17117
17118         PR opt/12826
17119         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17120         stored.
17121
17122         PR opt/12863
17123         * cfgcleanup.c (label_is_jump_target_p): Move to...
17124         * rtlanal.c (label_is_jump_target_p): ... here.
17125         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17126         edges unified with branch edges.
17127
17128 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17129
17130         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17131         high word of an integral CONST_DOUBLE.
17132
17133 2004-01-12  Paul Brook  <paul@codesourcery.com>
17134
17135         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17136
17137 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17138
17139         PR target/13585
17140         * sh-protos.h (check_use_sfunc_addr): Declare.
17141         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17142         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17143
17144 2004-01-12  Jan Hubicka  <jh@suse.cz>
17145
17146         * alias.c:  Invlude varray.h
17147         (alias_sets): Turn into varray.
17148         (get_alias_set_entry): Use VARRAY; mark inline.
17149         (mems_in_disjoint_alias_sets_p): Mark inline.
17150         (record_alias_subset): Use varray.
17151         (init_alias_once): Initialize varray.
17152         (new_alias_set): Grow array.
17153         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17154
17155 2004-01-12  Jan Hubicka  <jh@suse.cz>
17156
17157         Partial fix for PR opt/10776 II
17158         * cselib.c: Include params.h
17159         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17160         locations.
17161         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17162         * Makefile.in (cselib.o): Depend on params.h
17163
17164 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17165
17166         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17167         simplify_unary_operation if the operand has a known mode.
17168
17169 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17170
17171         PR target/13534
17172         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17173         predicate to handle 'ld' conform addresses.
17174         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17175         contraint.
17176         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17177         are memory contraints.
17178         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17179         New prototype.
17180         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17181         Change 'o' to 'Y' constraint.
17182         (*movdf_softfloat64): Ditto.
17183
17184 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17185
17186         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17187         brace-enclosed syntax in all C output statements.
17188
17189 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17190
17191         PR target/13401
17192         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17193         Objective-C language type value is 14.
17194
17195 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17196
17197         PR c/12148
17198         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17199         `int' in a number of places to make sure we always have a SImode
17200         and not a HImode.  Add a 'L' suffix to a number of constants.
17201
17202 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17203
17204         * pa.c: Don't include obstack.h.
17205
17206         * pa.md: Correct constraint in pattern for loading PIC label address.
17207
17208 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17209
17210         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17211          before defining.
17212
17213 2004-01-11  Steven Bosscher  <stevenb@suse.de>
17214
17215         PR fortran/9972
17216         * toplev.c (rest_of_handle_inline): Also consider functions
17217         for deferral if the language is GNU F77.
17218
17219 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
17220
17221         * c-decl.c (diagnose_arglist_conflict): Add missing space to
17222         diagnostic messages.
17223
17224 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
17225
17226         PR middle-end/13392
17227         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17228         to drop through label.  Don't fall back to SCC even when conditional
17229         jump has not been found.
17230
17231 2004-01-11  Jan Hubicka  <jh@suse.cz>
17232
17233         * invoke.texi: Fix syntax error in previous patch.
17234
17235         Partial fix for PR opt/10776
17236         * Makefile.in (reload.o): Include param.h
17237         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17238         * reload.c: Include params.h.
17239         (find_equiv_reg): Work limiting check.
17240         * invoke.texi: Document.
17241
17242 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17243
17244         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17245         out-of-bounds accesses to string constants.  Simplify mips16
17246         case accordingly.
17247
17248 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17249
17250         PR optimization/13469
17251         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17252         reload_cse_regs (-fnon-call-exceptions only).
17253
17254 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17255
17256         * config/mcore/lib1.asm: Fix comment formatting.
17257         * config/mcore/mcore-elf.h: Likewise.
17258         * config/mcore/mcore.c: Likewise.
17259         * config/mcore/mcore.h: Likewise.
17260         * config/mcore/mcore.md: Likewise.
17261
17262 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17263
17264         * c-decl.c (duplicate_decls): Break apart into...
17265         (diagnose_arglist_conflict, validate_proto_after_old_defn)
17266         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17267         ... these new functions.  Restructure for comprehensibility.
17268         Remove various archaic special cases.  Always report the
17269         location of the previous declaration when a diagnostic is issued.
17270         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17271         (match_builtin_function_types): Delete unnecessary forward declaration.
17272
17273 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17274
17275         * genautomata.c (make_automaton, NDFA_to_DFA):
17276         Print progress bars with '.' characters instead of '*'.
17277         (build_automaton): Change notes to match.
17278
17279 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17280
17281         * config/m32r/m32r.md: Use define_constants for unspec and
17282         unspec_volatile.
17283
17284 2004-01-10  Jan Hubicka  <jh@suse.cz>
17285
17286         PR opt/11635
17287         * expr.c (expand_expr_real):  More curefully expand union casts.
17288
17289 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17290
17291         * config/m32r/m32r.md (flush_icache): Use 1 for
17292         unspec_volatile.
17293
17294 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
17295             James E Wilson  <wilson@specifixinc.com>
17296
17297         PR debug/12860
17298         * dbxout.c (dbxout_symbol): Remove initialization of
17299         current_sym_code, current_sym_value, and current_sym_addr.
17300         (dbxout_symbol_location): Same.
17301         (dbxout_prepare_symbol): Zero current_sym_code,
17302         current_sym_value, and current_sym_addr.
17303
17304 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
17305
17306         * tree.c (get_unwidened): Reorder conditions so that the null pointer
17307         check is done first.
17308
17309 2004-01-09  Eric Christopher  <echristo@redhat.com>
17310
17311         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17312         if we're running mark_constant_function.
17313
17314 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
17315
17316         PR target/12561
17317         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17318
17319 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
17320
17321         PR debug/11231
17322         * dbxout.c (dbxout_type_fields): Return if any item is
17323         error_mark_node or the type is error_mark_node.
17324
17325 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
17326
17327         * config/rs6000/darwin-ldouble.c: Add big comment explaining
17328         exactly what is expected as a 'long double'.
17329         (_xlqadd): When a value to be returned is representable as a
17330         'double', just return it directly, do not construct it using a union.
17331         Also, correct final fixup.
17332         (_xlqmul): Likewise.
17333         (_xlqdiv): Likewise.
17334         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17335
17336         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17337
17338 2004-01-09  Richard Henderson  <rth@redhat.com>
17339
17340         * recog.c (constrain_operands): Validate mem operands.
17341
17342 2004-01-09   James E Wilson  <wilson@specifixinc.com>
17343
17344         * gcc.c (init_spec): Remove -lunwind from shared case.
17345         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17346
17347 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
17348
17349         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17350         * configure: Regenerate
17351
17352 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
17353
17354         PR c/11234
17355         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17356         between function and object pointers.
17357         (digest_init): When comparing a pointer to function type to the
17358         target type, only apply TREE_TYPE once to the pointer to function
17359         type.
17360         * except.c (for_each_eh_label_1): Treat data as a pointer to a
17361         function pointer rather than casting it to a function pointer.
17362         (for_each_eh_label): Update caller.
17363         * recog.h (struct insn_data): Use a struct or union for output.
17364         * genoutput.c (output_insn_data): Update.
17365         * final.c (get_insn_template): Update.
17366
17367 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17368
17369         * expr.h (expand_expr): Make it a macro, not a function.
17370         (expand_expr_real): New function.
17371         * expr.c (store_expr): Adjust logic for deciding whether or not to
17372         copy the value returned by expand_expr.
17373         (expand_expr): Rename to ...
17374         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
17375         calls to language hooks.
17376         * c-common.h (c_expand_expr): Adjust prototype.
17377         * c-common.c (c_expand_expr): Add alt_rtl parameter.
17378         * langhooks-def.h (lhd_expand_expr): Change prototype.
17379         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17380         * langhooks.h (lang_hooks): Change type of expand_expr.
17381         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17382         (last_expr_alt_rtl): Likewise.
17383         (expand_expr_stmt_value): Set last_expr_alt_rtl.
17384         (clear_last_expr): Clear it.
17385         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17386         (expand_end_bindings): Save and restor last_expr_alt_rtl.
17387         * tree.def (RTL_EXPR): Give it an additional operand.
17388         * tree.h (RTL_EXPR_ALT_RTL): New macro.
17389
17390 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17391
17392         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
17393         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
17394
17395 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17396
17397         PR target/13380.
17398         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17399         or (ne:SI (reg:CC 17) (const_int 0)).
17400         Be specific about modes wherever possible.
17401
17402 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17403
17404         * config/m32r/m32r.c (m32r_expand_block_move): Call
17405         gen_movestrsi_internal with two more arguments.
17406         (m32r_output_block_move): Adjust operand numbers.
17407         Properly update the source and destination pointers.
17408         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17409         'r+'.  Change the set detinations to match_operand.
17410
17411 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17412
17413         * final.c (FIRST_INSN_ADDRESS): Remove.
17414         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17415         * system.h (FIRST_INSN_ADDRESS): Poison.
17416         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17417         * config/m32r/m32r-protos.h: Remove the prototype for
17418         m32r_first_insn_address.
17419         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17420         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17421         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17422
17423 2004-01-09  J. Brobecker  <brobecker@gnat.com>
17424
17425         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17426         we just created.
17427         (is_ada_subrange_type): DIEs for enumeration subtypes should be
17428         emitted as subrange types too.
17429         (subrange_type_die): Add handling of enumeration subtypes.
17430
17431 2004-01-08  Richard Henderson  <rth@redhat.com>
17432
17433         PR opt/12441
17434         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17435         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17436         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17437         (ix86_address_cost): Be prepared for SUBREGed registers.
17438         (legitimate_address_p): Accept SUBREGed registers.
17439
17440 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
17441
17442         * Makefile.in: Rename configure.in to configure.ac
17443         * doc/sourcebuild.texi: Likewise.
17444         * configure: Regenerate.
17445         * config.in: Regenerate.
17446
17447 2004-01-08  Stuart Hastings  <stuart@apple.com>
17448
17449         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17450
17451 2004-01-08  Jan Hubicka  <jh@suse.cz>
17452
17453         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
17454
17455 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
17456
17457         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17458         (UNSPEC_FIX_TRUNC_TF): New constant.
17459         (movtf_internal): Make splitter active only when insn is active.
17460         (extenddftf2): Rewrite to properly load zero into low part.
17461         (extenddftf2_internal): New.
17462         (extendsftf2): Rewrite.
17463         (truncdftf2): Correct length.
17464         (floatditf2): Delete.
17465         (fix_trunc_helper): New.
17466         (fix_trunctfdi2): Use fix_trunc_helper.
17467         (fix_trunctfsi2): Likewise.fix_trunc
17468         (fix_trunctfsi2_internal): New.
17469
17470         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17471         addresses are legitimate on Darwin even when flag_pic.
17472         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17473         non-offsettable addresses for loads of TFmode constants.
17474
17475 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17476
17477         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17478         variables in the appropriate bss section.
17479
17480 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
17481
17482         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17483         target_flags has MASK_POWERPC64 when -m64.
17484         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17485         to 620, 630, power3, power4 and rs64a entries.
17486         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17487
17488 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
17489
17490         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17491         floating-point constants.
17492
17493 2004-01-08  J. Brobecker  <brobecker@gnat.com>
17494
17495         * dwarf2out.c (subrange_type_die): Add context_die parameter.
17496         Create the subrange_type DIE using the given context DIE.
17497         (modified_type_die): Update call to subrange_type_die.
17498
17499 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
17500
17501         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17502         Add multiple-include guard.
17503
17504 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
17505
17506         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17507         all vector constant loadable by vsplt*.
17508         (output_vec_const_move): Likewise.
17509
17510 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17511
17512         PR c/6024
17513         * c-typeck.c (comptypes): Only treat enumerated types in the same
17514         translation unit as compatible with each other when they are the
17515         same type.
17516         * doc/extend.texi: Update.
17517
17518 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17519
17520         PR c/12165
17521         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
17522         array type from the array element type.
17523
17524 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
17525
17526         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
17527         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
17528         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
17529         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
17530         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
17531
17532 2004-01-06  Eric Christopher  <echristo@redhat.com>
17533
17534         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
17535         (DWARF2_DEBUGGING_INFO): Define.
17536         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
17537         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
17538         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
17539         for irix as.
17540         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
17541         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
17542         * config/mips/iris5gas.h: Ditto.
17543         (DBX_DEBUGGING_INFO): Remove.
17544         (DWARF2_DEBUGGING_INFO): Ditto.
17545         (MIPS_DEBUGGING_INFO): Ditto.
17546         (PREFERRED_DEBUGGING_TYPE): Ditto.
17547         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
17548         (PREFERRED_DEBUGGING_TYPE): Ditto.
17549         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
17550         * config/mips/elf64.h: Ditto.
17551
17552 2004-01-06  Jan Hubicka  <jh@suse.cz>
17553
17554         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
17555         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
17556
17557 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
17558
17559         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
17560         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
17561         * config/rs6000/darwin-ldouble.c: New.
17562
17563         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
17564         for constants.
17565         (constant_subword): Delete.
17566         * rtl.h (constant_subword): Delete prototype.
17567         (immed_double_const): Is not in varasm.c.
17568         * simplify-rtx.c (simplify_immed_subreg): New.
17569         (simplify_subreg): Use simplify_immed_subreg.
17570
17571         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
17572         than trying to generate RTL directly.
17573         (fix_trunctfsi2): Use expand_fix rather than trying to generate
17574         RTL directly.
17575
17576         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
17577
17578 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
17579
17580         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
17581         function into a separate macro.
17582         (read_only_data_section): Add void argument.
17583         (private_data_section): Same.
17584         (read_only_private_data_section): Same.
17585         (toc_section): Same.
17586
17587 2004-01-06  Jan Hubicka  <jh@suse.cz>
17588
17589         * invoke.texi:  Remove typo in last change.
17590
17591         PR target/10301
17592         * config.gcc: Accept opteron and athlon-64 as variants
17593         of k8.
17594         * i386.c (override_options): Likewise.
17595         * invoke.texi (i386 -mtune): Expand documentation.
17596
17597 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17598
17599         * alias.c: Fix comment typos.
17600         * builtins.c: Likewise.
17601         * cfg.c: Likewise.
17602         * df.c: Likewise.
17603         * dominance.c: Likewise.
17604         * dwarf2out.c: Likewise.
17605         * emit-rtl.c: Likewise.
17606         * expr.c: Likewise.
17607         * final.c: Likewise.
17608         * fold-const.c: Likewise.
17609         * gcse.c: Likewise.
17610         * genattrtab.c: Likewise.
17611         * genrecog.c: Likewise.
17612         * gensupport.c: Likewise.
17613         * ggc-zone.c: Likewise.
17614         * integrate.c: Likewise.
17615         * local-alloc.c: Likewise.
17616         * loop.c: Likewise.
17617         * recog.c: Likewise.
17618         * regmove.c: Likewise.
17619         * reg-stack.c: Likewise.
17620         * reorg.c: Likewise.
17621         * rtlanal.c: Likewise.
17622         * rtl.h: Likewise.
17623         * sched-ebb.c: Likewise.
17624         * simplify-rtx.c: Likewise.
17625         * toplev.c: Likewise.
17626         * varasm.c: Likewise.
17627
17628 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17629
17630         * doc/install.texi: Fix typos.
17631         * doc/invoke.texi: Likewise.
17632         * doc/md.texi: Likewise.
17633
17634 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17635
17636         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
17637
17638 2004-01-06  Jan Hubicka  <jh@suse.cz>
17639
17640         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
17641         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
17642         of MMX_REGPARM.
17643         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
17644         add MMX_REGPARM.
17645         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
17646         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
17647         (MMX_REGPARM_MAX): Similarly for -mmmx.
17648
17649 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17650
17651         * config/sh/linux.h: Fix comment formatting.
17652         * config/sh/netbsd-elf.h: Likewise.
17653         * config/sh/sh.c: Likewise.
17654         * config/sh/sh.h: Likewise.
17655         * config/sh/vxworks.h: Likewise.
17656
17657 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17658
17659         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
17660         * toplev.c (output_file_directive): Don't use
17661         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
17662
17663 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
17664
17665         * toplev.c: Fix broken checkin of 2003-12-30.
17666
17667 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
17668
17669         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
17670         (USING_MMAP): We don't support non-mmap.
17671         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
17672         large objects.
17673         (struct page_entry): Remove bytes_free.
17674         (struct page_table_chain): Remove.
17675         (struct globals): Remove page_table member.
17676         (loookup_page_table_entry): Function deleted.
17677         (set_page_table_entry): Ditto.
17678         (ggc_allocated_p): No longer need page table lookups.
17679         (ggc_marked_p): Ditto.
17680         (alloc_small_page): Don't care about bytes_free anymore.
17681         (alloc_large_page): Round up size.
17682         (ggc_alloc_zone_1): Mark large objects as such, and calculate
17683         their size the new way.
17684         Remove page table lookups and setting.
17685         (ggc_get_size): Calculate large object size the new way.
17686         (sweep_pages): Redo to account for fact that we no longer have
17687         bytes_free.
17688         (ggc_collect): No longer need to reincrement bytes_free.
17689         (ggc_pch_alloc_object): Handle new large objects properly.
17690         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
17691
17692 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17693
17694         * doc/invoke.texi: Remove a page break.
17695
17696 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17697
17698         * config/avr/avr.c (avr_output_function_prologue): Remove an
17699         extra pair of curly braces.
17700
17701 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17702
17703         * config/mn10300/mn10300.c: Fix comment formatting.
17704         * config/mn10300/mn10300.h: Likewise.
17705
17706 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17707
17708         * tree.h: Update documentation on nothrow_flag.
17709         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
17710         types.
17711
17712 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17713
17714         * doc/invoke.texi: Remove traces of dead ports.
17715
17716 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17717
17718         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
17719         option.
17720
17721 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17722
17723         PR target/12945
17724         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
17725         counter labels.
17726         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
17727         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
17728         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
17729         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
17730         (mips_symbol_insns): Don't trust the local/global classification.
17731         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
17732         (override_options): Make -mabicalls -fno-unit-at-a-time imply
17733         -mno-explicit-relocs.
17734         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
17735         between local and global symbols.
17736
17737 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17738
17739         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
17740         (mips_preferred_reload_class): Declare.
17741         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
17742         (EXTRA_CONSTRAINT): Update accordingly.
17743         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
17744         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
17745         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
17746         mips_dangerous_for_la25_p.
17747         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
17748         if mips_dangerous_for_la25_p.
17749
17750 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
17751
17752         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
17753         warning.
17754
17755 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
17756
17757         * configure.ac: Use AC_PROG_CPP_WERROR.
17758         * configure: Regenerate.
17759
17760 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
17761
17762         * .cvsignore: Add autom4te.cache.
17763
17764 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
17765
17766         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
17767         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
17768         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
17769         then architecture options, then ABI options.  General rewording.
17770
17771 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
17772
17773         PR c/3414
17774         * doc/extend.texi: Clarify definition of malloc attribute.
17775
17776 2004-01-04  Jan Hubicka  <jh@suse.cz>
17777
17778         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
17779         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
17780         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
17781         (cgraph_inline_p): Add extra argument reason.
17782         * cgraphunit.c: Minor formating fixes.
17783         cgraph_first_inlined_callee): New functions.
17784         (record_call_1): Record builtins too.
17785         (cgraph_analyze_function): Update inline_failed messages.
17786         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
17787         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
17788         (cgraph_check_inline_limits): Likewise; Add argument reason.
17789         (cgraph_set_inline_failed): New static function.
17790         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
17791         reasons.
17792         (cgraph_inline_p): Add new argument reason.
17793         * tree-inline.c (expand_call_inline):  Update warning.
17794
17795 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
17796
17797         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
17798         with modern equivalents.
17799         * configure: Regenerate.
17800
17801         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
17802         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
17803         * configure: Regenerate.
17804
17805         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
17806
17807         * configure.in: Rename to configure.ac.
17808         * configure.ac: Renamed from configure.in; make minimum necessary
17809         changes for autoconf 2.5x.
17810         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
17811         * configure: Regenerate with autoconf 2.57.
17812
17813 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
17814
17815         * config/mips/linux.h: Fix comment formatting.
17816         * config/mips/mips.c: Likewise.
17817         * config/mips/mips.h: Likewise.
17818         * config/mips/mips.md: Likewise.
17819         * config/mips/netbsd.h: Likewise.
17820         * config/mips/windiss.h: Likewise.
17821
17822 2004-01-02  Richard Henderson  <rth@redhat.com>
17823
17824         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
17825         for sse and 387; add suppression for mmx.
17826
17827 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
17828
17829         * loop.c (loop_optimize): Free all loops_info's mems.
17830
17831         * c-typeck.c (finish_init): Free spelling_base before
17832         setting it again.
17833
17834         * cfgloop.c (flow_loops_find): Always free the sbitmap
17835         headers.
17836
17837         * predict.c (estimate_probability): Free bbs after being
17838         done with it.
17839
17840 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17841
17842         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
17843         const_8bit_operand and call_address_operand.
17844
17845 2004-01-02  Jan Hubicka  <jh@suse.cz>
17846
17847         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
17848         when there is nothing to inline but warnings are requested.
17849         (cgraph_decide_inlining):  Fix memory leak.
17850
17851 2004-01-02  Jan Hubicka  <jh@suse.cz>
17852
17853         * expr.c (store_constructor):  Fix pasto in previous patch.
17854
17855 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17856
17857         * config/i386/cygming.h: Fix comment formatting.
17858         * config/i386/djgpp.h: Likewise.
17859         * config/i386/gthr-win32.c: Likewise.
17860         * config/i386/i386-interix.h: Likewise.
17861         * config/i386/i386.c: Likewise.
17862         * config/i386/i386.h: Likewise.
17863         * config/i386/openbsd.h: Likewise.
17864         * config/i386/winnt.c: Likewise.
17865         * config/i386/xm-mingw32.h: Likewise.
17866
17867 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
17868
17869         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
17870         copyright and last modification dates.
17871
17872 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
17873
17874         * doc/install.texi (Specific): Mention x86_64.
17875
17876 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
17877
17878         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
17879         Call force_operand on plus_constant result.
17880
17881 2004-01-01  Jan Hubicka  <jh@suse.cz>
17882
17883         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
17884         * expr.c (store_constructor): Use vec_init pattern.
17885         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
17886         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
17887         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
17888         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
17889         New patterns.
17890         (sse2_unpc?pd): Fix pattern.
17891         (sse2_movlpd): Kill.
17892         (sse2_movsd): Deal with movlpd too.
17893         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
17894         (ix86_expand_vector_init): New.
17895         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
17896         * md.texi (vec_set, vec_extract): Document
17897
17898 2003-12-31  Jan Hubicka  <jh@suse.cz>
17899
17900         PR opt/13473
17901         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
17902         ASM input operands
17903
17904         PR opt/12617
17905         * toplev.c (dump_file_index): Reorder ce3 and bbro.
17906         (dump_file): Likewise.
17907         (rest_of_compilation): Likewise.
17908
17909         PR debug/13367
17910         * cgraph.c (cgraph_function_possibly_inlined):  Even with
17911         flag_really_no_inline we inline always_inline functions.
17912         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
17913         for non-always_inline functions when there is flag_really_no_inline.
17914         (cgraph_decide_inlining): Limit work done when not inlining.
17915         (cgraph_decide_inlining_incrementally): Likewise.
17916         (cgraph_optimize_function): Check whether something got inlined.
17917         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
17918         extern inline functions when not inlining.
17919
17920         * opts.c (decode_options):  Disable crossjumping at -O1
17921         * invoke.texi (-O1): Document change.
17922
17923 See ChangeLog.10 for earlier changes.