OSDN Git Service

f72a6e274fd4badfc9c133739c6e94052c197531
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2
3         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
4         of BOOLEAN_TYPE.
5
6 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
7
8         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
9         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
10         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
11         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
12         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
13         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
14         comment typos.  Follow spelling conventions.
15
16 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
17
18         * gengtype-yacc.y: Add NESTED_PTR token.
19         (option): Record `nested_ptr' option.
20         * gengtype-lex.l: Handle `nested_ptr' keyword.
21         * gengtype.c (walk_type): Process `nested_ptr' option.
22         * gengtype.h (struct nested_ptr_data): New.
23         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
24         * stringpool.c (struct string_pool_data): Make 'entries' point to
25         ht_identifier instead of tree.
26         (gt_pch_save_stringpool): Don't adjust pointers.
27         (gt_pch_restore_stringpool): Call ht_load.
28
29 2004-05-29  Jason Merrill  <jason@redhat.com>
30
31         * gimplify.c (gimplify_expr): Don't build a statement list
32         if no gimplification was necessary.
33
34 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
35
36         * pretty-print.c (pp_base_format_text): Support %< instead of %`
37         and %> as well as %'.
38         * c-format.c: Use %< and %>.
39         (gcc_diag_char_table, gcc_cdiag_char_table,
40         gcc_cxxdiag_char_table): Update.
41
42 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
43
44         * c-typeck.c (common_type): Correct comment.
45
46 2004-05-29  Peter Barada  <peter@the-baradas.com>
47
48         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
49         * config/m68k/m68k.c (const_method): Likewise.
50         * config/m68k/m68k.c (const_int_cost): Likewise.
51         * config/m68k/m68k.c (const_int_cost): Likewise.
52         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
53
54 2004-05-29  Peter Barada  <peter@the-baradas.com>
55
56         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
57         addressing.
58         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
59         movsi,movhi,movqi insn patterns.
60
61 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
62
63         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
64
65         PR target/15720
66         * config/darwin.c (machopic_indirect_call_target): Copy
67         the SYMBOL_REF_DECL from the original RTX for the new
68         stub RTX.
69
70 2004-05-28  DJ Delorie  <dj@redhat.com>
71
72         * stor-layout.c (place_field): Revert erroneous commit.
73
74 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
75
76         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
77         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
78         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
79         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
80         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
81         vec_ste): Remove type checks for integral parameters and literals
82         from '..._args_eq' macros.
83
84 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
85
86         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
87
88 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
89
90         * testsuite/g++.dg/charset/function.cc: New.
91
92         * testsuite/gcc.dg/charset/function.c: New.
93
94         * c-decl.c (c_make_fname_decl): Free return value from
95         fname_as_string.
96
97         * cp/decl.c (cp_make_fname_decl): Free return value from
98         fname_as_string.
99
100         * c-common.c (fname_as_string): Translate if necessary.
101
102 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
103
104         * stringpool.c: Add comments to PCH saving/restoring routines.
105
106 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
107
108         * c-common.c (c_estimate_num_insns_1): Kill.
109         (c_estimate_num_insns): Kill.
110         * c-common.h (c_estimate_num_insns): Kill.
111
112         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
113         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
114         Remove comment about not checking for
115         _POSIX_PRIORITY_SCHEDULING.
116         * gthr-posix.c: Likewise.
117
118 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
119             Roger Sayle  <roger@eyesopen.com>
120
121         PR rtl-optimization/15649
122         Add LTGT_EXPR and improve pretty-printing of unordered
123         comparisons.
124         * c-common.c (c_common_truthvalue_conversion):
125         Handle LTGT_EXPR.
126         * c-typeck.c (build_binary_op): Likewise.
127         * dojump.c (do_jump): Likewise.
128         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
129         * predict.c (tree_predict_by_opcode): Likewise.
130         * real.c (real_compare): Likewise.
131         * tree-cfg.c (verify_expr): Likewise.
132         * tree-inline.c (estimate_num_insns_1): Likewise.
133         * tree-pretty-print.c (dump_generic_node): Likewise.
134         Handle ORDERED_EXPR, UNORDERED_EXPR.
135         (op_symbol): Print unordered comparisons differently
136         than ordered ones.
137         * tree.def (LTGT_EXPR): New '<' tree code.
138         * doc/c-tree.texi (Expressions): Document floating-point
139         comparison nodes.
140
141         Fold comparisons between floating point values.
142         * fold-const.c (enum comparison_code): New, from
143         #define'd constants.  Define compcodes for unordered
144         comparisons and for invalid transformations.
145         (invert_tree_comparison): Add "honor_nans" parameter.
146         (fold_truthop): Revamp to work on floating-point types too.
147         (comparison_to_compcode): Support unordered comparisons.
148         Use new enum comparison_code.
149         (compcode_to_comparison): Likewise.
150         (combine_compcodes): New function.
151         (invert_truthvalue): Let invert_tree_comparison decide
152         whether it is valid to fold the comparison.  Fold ORDERED
153         and UNORDERED even if flag_unsafe_math_optimizations is off,
154         and the remaining even if flag_unsafe_math_optimizations
155         is off but we are under -fno-trapping-math.
156         (fold_relational_const): Integer modes do not honor NaNs.
157         
158 2004-05-28  Paul Brook  <paul@codesourcery.com>
159
160         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
161
162 2004-05-28  Paul Brook  <paul@codesourcery.com>
163
164         * config/arm/arm.c (thumb_force_lr_save): New function.
165         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
166         thumb_output_function_prologue): Use it.
167         (thumb_expand_prologue): Set lr_save_eliminated.
168
169 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
170
171         * config/mips/mips.md (extendsidi2): Tie the source and destination
172         of the register alternative.  Split it into nothing.
173
174 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
175
176         * rtl.h (skip_consecutive_labels): Declare.
177         * emit-rtl.c (skip_consecutive_labels): New function.
178         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
179         * jump.c (follow_jumps): Say what null return values mean.
180
181 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
182
183         PR target/13250
184         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
185
186 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
187
188         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
189         libgcc-std.ver.
190         * config/sh/libgcc-std.ver: New file.
191
192 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
193
194         * except.c: Revert change of 2004-05-26.
195         * config/i386/i386.md: Revert change of 2004-05-27.
196
197 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
198
199         * configure.ac: Remove --enable-tree-browser option.
200         Define TREEBROWSER when ac_tree_checking is defined.
201         * configure: Rebuilt.
202
203 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
204
205         * expr.c (store_constructor): Restore sanity check on
206         the size of the type before clearing.
207
208 2004-05-27  Jan Hubicka  <jh@suse.cz>
209
210         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
211
212 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
213
214         * combine.c (gen_binary): Remove.
215         (known_cond, simplify_shift_const
216         find_split_point, combine_simplify_rtx,
217         simplify_if_then_else, simplify_set,
218         simplify_logical, expand_field_assignment,
219         extract_left_shift, force_to_mode,
220         if_then_else_cond, apply_distributive_law,
221         simplify_and_const_int, simplify_shift_const,
222         gen_lowpart_for_combine, simplify_comparison,
223         reversed_comparison): Replace with
224         simplify_gen_binary, simplify_gen_relational or
225         distribute_and_simplify_rtx.
226         (distribute_and_simplify_rtx): New function.
227         * simplify-rtx.c (simplify_binary_operation):
228         Use nonzero_bits to simplify ANDs where we are
229         turning off bits already known to be off in OP0.
230
231 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
232
233         PR target/14478
234         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
235
236 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
237
238         PR middle-end/14084
239         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
240         to size of decl.
241
242 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
243
244         PR/14924
245         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
246
247 2004-05-26  Roger Sayle  <roger@eyesopen.com>
248
249         * tree.h: Fix comment typo.
250
251 2004-05-27  Steven Bosscher  <stevenb@suse.de>
252
253         * gimplify.c (compare_case_labels): New function.
254         (gimplify_switch_expr): Sort case labels, and make sure the
255         last label in the label vector is the default case.
256         * tree-cfg.c (group_case_labels): New function.
257         (build_tree_cfg): Cleanup redundant labels and group case labels
258         before creating edges.
259         (cleanup_dead_labels): Handle GOTO_EXPRs.
260         (find_case_label_for_value): Use a binary search to find the
261         case label for the given value.
262         * tree-gimple.c: Mention that labels are sorted, and that the
263         last label must be the default.
264
265 2004-05-27  Jan Hubicka  <jh@suse.cz>
266
267         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
268
269 2004-05-27  Jan Hubicka  <jh@suse.cz>
270
271         * i386.md (UNSPECV_EH_RETURN): Kill.
272         (eh_return): Use jump_insn.
273         (eh_return_si, eh_return_di): Change pattern to jump instruction.
274
275 2004-05-26  Jan Hubicka  <jh@suse.cz>
276
277         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
278         not loop optimizing.
279
280 2004-05-26  Jan Hubicka  <jh@suse.cz>
281
282         * except.c (can_throw_internal):  Notice RESX instructions.
283
284 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
285
286         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
287         of the two sizes to assemble_integer.
288
289 2004-05-25  Paul Brook  <paul@codesourcery.com>
290
291         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
292         pointless #ifdef.
293
294 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
295
296         * Makefile.in (top_builddir): Define to .
297
298 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
299
300         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
301         top-level detects, except when in-tree ld is being cross-built.
302         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
303         then AS only if target is host.
304         * configure: Rebuilt.
305
306 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
307
308         * global.c (global_alloc): Call make_accurate_live_analysis.
309         (record_one_conflict): Remove dead code.
310         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
311         (bb_info): New structure.
312         (BB_INFO, BB_INFO_BY_INDEX): New macros.
313         (allocate_bb_info, free_bb_info, mark_reg_change,
314         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
315         modify_bb_reg_pav, calculate_reg_pav,
316         make_accurate_live_analysis): New functions.
317         
318 2004-05-25  Devang Patel  <dpatel@apple.com>
319
320         * alias.c (init_alias_analysis): Use ggc_calloc instead of
321         xrealloc.
322         (end_alias_analysis): Use ggc_free instead fo free.
323         
324 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
325
326         PR target/15546
327         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
328         as needed to be outputted.
329
330 2004-05-25  Jan Hubicka  <jh@suse.cz>
331
332         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
333
334 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
335         Mostafa Hagog  <mustafa@il.ibm.com>
336
337         * Makefile.in (modulo-sched.o, ddg.o): New.
338         * ddg.h, ddg.c, modulo-sched.c: New files.
339         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
340         internals to "dupicate_insn".
341         (duplicate_insn): New function.
342         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
343         declarations.
344         * common.opt (fmodulo-sched): New flag.
345         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
346         Remove static and forward declaration.
347         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
348         functions.
349         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
350         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
351         declarations.
352         * flags.h (flag_modulo_sched): New flag.
353         * opts.c (common_handle_option): Handle modulo-sched flag.
354         * params.def (max-sms-loop-number, sms-max-ii-factor,
355         sms-dfa-history, sms-loop-average-count-threshold): New
356         parameters.
357         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
358         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
359         parameters.
360         * passes.c ("sms", "sms-vcg"): New dumps.
361         (rest_of_handle_sched): Call sms_schedule.
362         * rtl.h (sms_schedule): New declaration.
363         * timevar.def (TV_SMS): New.
364         * toplev.c (flag_modulo_sched): Initialize.
365         (f_options): Handle -fmodulo-sched option.
366         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
367         * docs/passes.texi: Document new SMS pass.
368
369 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
370
371         * Makefile.in (OBJS): Add rtlhooks.o.
372         (rtlanal.o): Depend on function.h.
373         (cse.o): Depend on rtlhooks-def.h.
374         (combine.o): Depend on rtlhooks-def.h.
375         (rtlhooks.o): New rule.
376         * combine.c: Include rtlhooks-def.h.
377         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
378         num_sign_bit_copies, cached_num_sign_bit_copies,
379         num_sign_bit_copies1): Move most of the code to rtlanal.c.
380         (reg_nonzero_bits_for_combine,
381         reg_num_sign_bit_copies_for_combine): New functions holding
382         the remnants of the above.
383         (combine_rtl_hooks): New.
384         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
385         * cse.c: Include rtlhooks-def.h.
386         (cse_rtl_hooks): New.
387         (cse_main): Set rtl_hooks instead of gen_lowpart.
388         * emit-rtl.c (gen_lowpart): Remove.
389         (gen_lowpart_general): Move to rtlhooks.c.
390         * rtl.h (nonzero_bits, num_sign_bit_copies,
391         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
392         (gen_lowpart_general): Remove.
393         (gen_lowpart): Temporarily redefine as a macro.
394         * rtlanal.c: Include function.h.
395         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
396         num_sign_bit_copies, cached_num_sign_bit_copies,
397         num_sign_bit_copies1): New, from combine.c.
398         * rtlhooks.c: New file. 
399
400 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
401
402         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
403         to support 32-bit -mint8 mode.
404
405         * doc/invoke.texi (-mint8): Added documentation for the -mint8
406         option in the AVR architecture. 
407
408 2004-05-24  Mike Stump  <mrs@apple.com>
409
410         * doc/install.texi: Document that dejagnu 1.4.4 is required.
411
412 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
413
414         * intl.h (open_quote, close_quote): New.
415         * intl.c (open_quote, close_quote): New.
416         (gcc_init_libintl): Set them.
417         * pretty-print.c: Include "intl.h".
418         (pp_base_format_text): Support 'q' format flag and %` and %'
419         formats.  Use ' instead of ` in comments.
420         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
421         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
422         foramt_types_orig): Describe these new formats.
423         (decode_format_attr, check_function_format,
424         check_format_info_main): Use these new formats.
425         (status_warning): Use ATTRIBUTE_GCC_DIAG.
426         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
427         check these formats to 3.5.
428
429 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
430
431         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
432         (BACKEND): Reflect this.
433         (LIBDEPS): Move CPPLIB before LIBIBERTY.
434         (LIBS): Likewise.
435
436 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
437
438         PR tree-optimization/14197
439         * builtins.c: Include "tree-gimple.h"
440         (readonly_data_expr): Use get_base_address.  Make sure to call 
441         decl_readonly_section only on trees it can handle.
442         * tree-gimple.c (get_base_address): Accept STRING_CST and
443         CONSTRUCTOR expressions.
444         * Makefile.in: Update dependencies.
445
446 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
447
448         Move libcpp to the toplevel.
449         * Makefile.in: Remove references to libcpp files,
450         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
451         and change hashtable.h to that.
452         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
453         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
454         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
455         * configure: Regenerate.
456         * config.in: Regenerate.
457         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
458         * cppcharset.c: Removed.
459         * cpperror.c: Removed.
460         * cppexp.c: Removed.
461         * cppfiles.c: Removed.
462         * cpphash.c: Removed.
463         * cpphash.h: Removed.
464         * cppinit.c: Removed.
465         * cpplex.c: Removed.
466         * cpplib.c: Removed.
467         * cpplib.h: Removed.
468         * cppmacro.c: Removed.
469         * cpppch.c: Removed.
470         * cpptrad.c: Removed.
471         * cppucnid.h: Removed.
472         * cppucnid.pl: Removed.
473         * cppucnid.tab: Removed.
474         * hashtable.c: Removed.
475         * hashtable.h: Removed.
476         * line-map.c: Removed.
477         * line-map.h: Removed.
478         * mkdeps.c: Removed.
479         * mkdeps.h: Removed.
480         * stringpool.h: Include symtab.h instead of hashtable.h.
481         * tree.h: Include symtab.h instead of hashtable.h.
482         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
483
484 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
485
486         * gcc.c (struct prefix_list): Add forward declaration.
487         (do_spec_path): New function, extracted from...
488         (do_spec_1) <'D'>: ... here.  Drop support for
489         SPACE_AFTER_L_OPTION.
490         (do_spec_1) <'I'>: Use do_spec_path.
491         (process_command): Do not store the 'include' suffix
492         in include_prefixes.
493         * system.h: Poison SPACE_AFTER_L_OPTION.
494
495 2002-05-23  Roger Sayle  <roger@eyesopen.com>
496
497         * fold-const.c (non_lvalue): Explicitly list the tree codes that
498         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
499
500 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
501
502         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
503         Update based on printed manual.  Enable setting of offsets for
504         FSFPRINT and move it to gcc-common.texi.
505         * doc/gcc.texi: Update FSF printing details.
506         * doc/gccint.texi: Remove FSF printing details.
507
508 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
509
510         * config/rs6000/t-rs6000: Remove the disabling -Werror.
511
512 2004-05-22  Roger Sayle  <roger@eyesopen.com>
513
514         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
515         expand_builtin_strrchr, expand_builtin_strpbrk,
516         expand_builtin_mempcpy, expand_builtin_memcmp,
517         expand_builtin_strcmp, expand_builtin_strncmp,
518         expand_builtin_strcat, std_expand_builtin_va_start,
519         std_expand_builtin_va_arg, expand_builtin_va_copy,
520         expand_builtin_signbit, fold_builtin_cabs,
521         fold_builtin_logarithm, fold_builtin_mempcpy,
522         fold_builtin_signbit, fold_builtin_isascii,
523         fold_builtin_toascii, fold_builtin_isdigit,
524         fold_builtin_1, build_function_call_expr,
525         simplify_builtin_strchr, simplify_builtin_strrchr,
526         simplify_builtin_strpbrk, simplify_builtin_strncpy,
527         simplify_builtin_memcmp, simplify_builtin_strcmp,
528         simplify_builtin_strncmp, simplify_builtin_strncat,
529         simplify_builtin_strspn, simplify_builtin_strcspn,
530         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
531         to build with calls to build2, build3 or omit_one_operand.
532
533 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
534
535         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
536         section when generating EABI code.
537
538 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
539
540         PR 15546
541         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
542         Call mark_decl_referenced on the SYMBOL_REF_DECL.
543
544 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
545
546         * c-common.c (c_common_truthvalue_conversion): Handle
547         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
548         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
549         i.e. set the type to truthvalue_type_node and return.
550
551 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
552
553        * tree.h (struct tree_decl): Add possibly_inlined bit.
554         (DECL_POSSIBLY_INLINED): New accessor macro.
555         * cgraph.h: Remove declaration of cgraph_inline_hash.
556         * cgraph.c: Remove definition of cgraph_inline_hash.
557         (hash_node): Revert to hashing DECL_UID.
558         (eq_node): Take two pointers to cgraph_node structures.
559         Compare DECL_UIDs.
560         (cgraph_remove_node): Pass the node directly to htab_find_slot.
561         (cgraph_varpool_hash_node): Rename hash_varpool_node;
562         hash on DECL_UID.
563         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
564         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
565         (cgraph_node): Allocate a temporary node on the stack, fill in
566         its DECL field, and pass that to htab_find_slot.
567         (cgraph_varpool_node): Likewise.
568         (cgraph_function_possibly_inlined_p): If global info is ready,
569         return the DECL_POSSIBLY_INLINED bit.
570         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
571         instead of mucking with cgraph_inline_hash.
572
573 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
574
575         * doc/contrib.texi: Add g77 contributors.
576
577 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
578
579         * calls.c (initialize_argument_information): Forbid sibcalls if a
580         callee-copied argument is stored in the current function's frame.
581
582 2004-05-22  Eric Christopher  <echristo@redhat.com>
583
584         * fix-header.c (read_scan_file): Update for add_path change.
585
586 2004-05-22  Ben Elliston  <bje@au.ibm.com>
587
588         * c.opt (Wmissing-include-dirs): New.
589         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
590         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
591         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
592         * c-incpath.h (add_path): Add fourth (bool) argument.
593         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
594         (add_standard_paths): Likewise.
595         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
596         is used and the directory was user-supplied via -I.
597         (add_path): Set p->user_supplied_p.  Remove duplicated code by
598         using add_cpp_dir_path ().
599         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
600         (struct cpp_dir): Add user_supplied_p.
601         * doc/invoke.texi (Warning Options): Document new option.
602
603 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
604
605         * fold-const.c (fold_read_from_constant_string): Convert result to
606         requested type.
607
608 2004-05-21  Richard Henderson  <rth@redhat.com>
609
610         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
611         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
612         Don't mark VA_ARG_EXPRs volatile here.
613         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
614
615 2004-05-21  Richard Henderson  <rth@redhat.com>
616
617         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
618         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
619
620 2004-05-21  Roger Sayle  <roger@eyesopen.com>
621
622         * fold-const.c (fold, fold_relational_hi_lo,
623         nondestructive_fold_binary_to_constant,
624         fold_read_from_constant_string): Use fold_convert instead of convert.
625         * builtins.c (simplify_builtin, simplify_builtin_strstr,
626         simplify_builtin_strchr, simplify_builtin_strrchr,
627         simplify_builtin_strpbrk): Use fold_convert instead of convert.
628
629 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
630
631         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
632         is NULL.
633
634 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
635
636         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
637         override sparc.h definition.
638
639 2004-05-20  Roger Sayle  <roger@eyesopen.com>
640
641         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
642         get_unwidened, get_narrower): Replace build with build2.
643         * fold-const.c (negate_expr, associate_trees, size_binop,
644         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
645         pedantic_omit_one_operand, distribute_bit_expr,
646         make_bit_field_ref, optimize_bit_field_compare,
647         decode_field_reference, range_binop, make_range,
648         build_range_check, fold_range_test, fold_truthop,
649         optimize_minmax_comparison, extract_muldiv_1,
650         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
651         fold_inf_compare, fold_single_bit_test, fold,
652         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
653         Likewise replace build with either build2 or build3.
654
655 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
656
657         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
658         * calls.c (prepare_call_address): Don't test
659         NO_RECURSIVE_FUNCTION_CSE.
660         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
661         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
662         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
663         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
664         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
665         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
666         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
667         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
668         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
669         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
670         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
671         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
672         Likewise.
673         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
674         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
675         * doc/tm.texi (Costs): Remove documentation for
676         NO_RECURSIVE_FUNCTION_CSE.
677
678 2004-05-20  Paul Brook  <paul@codesourcery.com>
679
680         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
681         * unwind-dw2.c (extract_cie_info): Ditto.
682         (_Unwind_FrameState): Change retaddr_column to word type.
683
684 2004-05-20  Roger Sayle  <roger@eyesopen.com>
685
686         PR middle-end/3074
687         * fold-const.c (strip_compound_expr): Delete function.
688         (count_cond): Delete function.
689         (fold_binary_op_with_conditional_arg): Only perform transformations
690         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
691         when a is constant.  This greatly simplifies this routine.
692
693         * tree.c (saved_expr_p): Delete function.
694         * tree.h (saved_expr_p): Delete function prototype.
695
696 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
697
698         * common.opt (ftree-loop-optimize): Remove.
699
700 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
701
702         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
703         (NM_FOR_TARGET): Use := and $(shell).
704         (mainversion): Remove unused variable.
705
706 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
707
708         * reorg.c (delete_from_delay_slot): If we have a barrier after the
709         sequence containing the insn to be deleted, always reemit it.
710
711 2004-05-20  Richard Henderson  <rth@redhat.com>
712
713         PR 15454
714         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
715         * function.c (expand_function_start): Expand static_chain_decl by hand.
716         * gimplify.c (create_tmp_var_name): Export.
717         * tree-gimple.h (create_tmp_var_name): Declare.
718
719 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
720
721         * rs6000.c (print_operand) <case 'z'>: Call
722         mark_decl_referenced before assemble_name.
723
724 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
725
726         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
727         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
728         (cgraph_varpool_node): Hash on the pointer to the decl, not
729         the DECL_UID.  Fixes 64-bit bootstrap failure.
730
731 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
732
733         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
734         we don't earlyclobber operands used in the second insn.
735
736 2004-05-20  Steven Bosscher  <stevenb@suse.de>
737
738         * tree-mudflap.c: Formatting fixes.
739
740 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
741
742         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
743         * gengtype.c (open_base_files): Include reload.h in ifiles.
744         * reload.h (reg_equiv_memory_loc_varray): Declare.
745         * reload1.c (reg_equiv_memory_loc_varray): New variable.
746         (init_reload): Initialize it.
747         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
748         reg_equiv_memory_loc_varray to size 0.
749         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
750         growing reg_equiv_memory_loc_varray to the desired size.
751         * passes.c (rest_of_handle_old_regalloc): Likewise.
752         * reload.c: Amend comment on calling init_reload.
753
754 2004-05-20  Nick Clifton  <nickc@redhat.com>
755
756         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
757         with 'TRAMP' in the body of the macro definition.
758
759 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
760
761         PR target/15383
762         * config/ia64/ia64.c (ia64_expand_compare): Don't check
763         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
764         cmptf_libfunc isn't set.
765         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
766         conventions.
767         (ia64_sysv4_init_libfuncs): New.
768
769         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
770         ia64_sysv4_init_libfuncs.
771
772 2004-05-20  Falk Hueffner  <falk@debian.org>
773
774         PR other/15526
775         * libgcc2.c (__mulvsi3): Fix overflow test.
776
777 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
778
779         PR c/14171
780         * reg-stack.c (nan): Rename to ...
781         (not_a_num): Here.
782         (reg_to_stack): Rename nan to not_a_num.
783         (subst_stack_regs_pat): Likewise.
784         (convert_regs_entry): Likewise.
785         (convert_regs_1): Likewise.
786
787         * tree-cfg.c (find_case_label_for_value): Replace call to
788         simple_cst_equal with tree_int_cst_equal.
789
790 2004-05-19  Jeff Law <law@redhat.com>
791
792         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
793         If the operand is for a use, then strip away the SSA_NAME, do not
794         strip away the SSA_NAME for a set.  Never call release_ssa_name.
795         (mark_def_sites): Appropriately pass additional argument to
796         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
797         then set the VDEF_RESULT to the VDEF_OP.
798         (set_def_block): Strip away any SSA_NAME to get to the real
799         underlying variable.
800
801         * tree-ssa-phiopt.c (value_replacement): Handle the case where
802         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
803         BB directly.
804
805 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
806
807         PR c++/15463
808         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
809         result of inverse.
810
811         PR rtl-optimization/15274
812         * loop-iv.c (determine_max_iter, shorten_into_mode,
813         iv_number_of_iterations): Handle constants correctly.
814         * rtl.h (get_mode_bounds): Declaration changed.
815         * stor-layout.c (get_mode_bounds): Return a constant suitable for
816         the target mode.
817
818         PR rtl-optimization/14692
819         * loop-unswitch.c (may_unswitch_on): Try folding the result.
820         (unswitch_single_loop): Work correctly when may_unswitch_on
821         returns a folded constant.
822
823         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
824         * simplify-rtx.c (simplify_const_relational_operation): Optimize
825         comparisons with mode bounds.
826
827         * function.c (struct temp_slot): Add new field prev.
828         (free_after_compilation, init_temp_slots): Free new fields.
829         (cut_slot_from_list, insert_slot_to_list,
830         temp_slots_at_level, max_slot_level, move_slot_to_level,
831         make_slot_available): New functions.
832         (assign_stack_temp_for_type, combine_temp_slots,
833         find_temp_slot_from_address, preserve_temp_slots,
834         preserve_rtl_expr_result, free_temp_slots,
835         free_temps_for_rtl_expr, pop_temp_slots): Work with
836         the new structure of lists.
837         (mark_all_temps_used): Removed.
838         * function.h (struct function): Field x_temp_slots
839         replaced by x_used_temp_slots and x_avail_temp_slots.
840         (temp_slots): Replaced by ...
841         (used_temp_slots, avail_temp_slots): New.
842         * tree.h (mark_all_temps_used): Declaration removed.
843
844         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
845         simplify_using_assignment): Take the expression out of
846         the expr_list wrapper.
847
848         * loop-iv.c (iv_number_of_iterations): Improve clasification of
849         infinite loops.
850
851 2004-05-19  Roger Sayle  <roger@eyesopen.com>
852
853         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
854         costs should be based on code size when optimizing for size.
855
856 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
857
858         * fold-const.c: Remove non-printable character 160.
859
860 2004-05-19  Nick Clifton  <nickc@redhat.com>
861
862         * doc/invoke.texi (ARM Options): Fix typo.
863         Remove descrption of -mshort-load-bytes and
864         -mno-short-load-bytes.
865
866         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
867         missing parenthesis.
868         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
869         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
870
871 2004-05-19  Steven Bosscher  <stevenb@suse.de>
872
873         * expr.c (store_constructor): Build loop start and end by hand
874         instead of via loop functions from stmt.c.
875         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
876         Remove the code to expand them.
877
878         * stmt.c (loop_stack): Remove this and everything related.
879         (struct nesting, enum nesting_desc): Update.
880         (expand_fixup): Likewise.
881         (expand_loop_start, expand_start_loop_continue_elsewhere,
882         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
883         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
884         expand_exit_loop_if_false, expand_exit_loop_top_cond,
885         expand_exit_something): Remove.
886         * tree.h: Remove prototypes.
887
888 2004-05-18  Mike Stump  <mrs@apple.com>
889             Devang Patel  <dpatel@apple.com>
890
891         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
892         if this label is for eh.
893         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
894         * config/darwin.c (darwin_emit_unwind_label): Likewise.
895         * dwarf2out.c (output_call_frame_info): Likewise.
896         * output.h (default_emit_unwind_label): Likewise.
897         * target.h (unwind_label): Likewise.
898         * varasm.c (default_emit_unwind_label): Likewise.
899
900         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
901         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
902         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
903         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
904         DEBUG_RANGES_SECTION): Define.
905
906 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
907
908         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
909         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
910         (cgraph_varpool_node):
911         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
912         (cgraph_function_possibly_inlined_p): Use the decl itself for
913         the key, not DECL_ASSEMBLER_NAME.
914         (change_decl_assembler_name): No need to muck with the hash tables.
915         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
916         Delete.
917         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
918         for the key, not DECL_ASSEMBLER_NAME.
919         * cgraph.h: Remove prototypes of deleted functions.
920         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
921         (mark_decl_referenced): New function.
922         * tree.h: Prototype mark_decl_referenced.
923         * final.c (output_addr_const) <case SYMBOL_REF>: Call
924         mark_decl_referenced before assemble_name.
925         * c-decl.c (finish_decl): Use mark_decl_referenced.
926
927 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
928             Jeff Law <law@redhat.com>
929
930         * tree-ssa-phiopt.c (abs_replacement): New function.
931         (empty_block_p): New function extracted from...
932         (candidate_bb_for_phi_optimization): Break out empty block test.
933         (conditional_replacement): Use empty_block_p.
934         (value_replacement): Similarly.
935
936         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
937         * tree-ssa-phiopt.c: Include flags.h.
938         (conditional_replacement): Remove argument names from prototype.
939         Minor formatting and comment fixes.
940         (tree_ssa_phiopt): If conditional_replacement returns false, then
941         call value_replacement.
942         (value_replacement): New function.
943
944 2004-05-18  Jeff Law  <law@redhat.com>
945
946         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
947         from conditional_replacement.
948         (candidate_bb_for_phi_optimization): Similarly.
949         (conditional_replacement): Use replace_phi_with_stmt and
950         candidate_bb_for_phi_optimization.
951
952         * tree-ssa-phiopt.c: Fix various formatting issues.
953
954 2004-05-18  Steven Bosscher  <stevenb@suse.de>
955
956         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
957         s390_expand_cmpmem): Do not use expand_start_loop and
958         expand_end_loop, instead build the loop manually.
959
960 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
961
962         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
963         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
964
965 2004-05-17  Jeff Law  <law@redhat.com>
966
967         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
968         * flags.h (flag_delete_null_pointer_checks): Here.
969         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
970         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
971         (add_phi_arg, remove_phi_arg_num): Similarly.
972         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
973         property into PHI nodes.
974         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
975         (record_equivalences_from_phis): If all PHI arguments are known to be
976         nonzero, then the result must be nonzero as well.
977         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
978         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
979         appropriately.  Walk the USE-DEF chains and propagate nonzero property
980         as appropriate.
981         * tree.h (PHI_ARG_NONZERO): Define.
982         (phi_arg_d): Add nonzero flag.
983
984 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
985
986         * f: Entire directory removed
987
988         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
989         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
990         (g77_integer_type_node, g77_uinteger_type_node)
991         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
992         * c-common.c (c_common_nodes_and_builtins): Do not initialize
993         the above set of variables.
994
995         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
996         * doc/invoke.texi, doc/standards.texi: Remove cross-references
997         to g77 manual.
998
999 2004-05-17  Steven Bosscher  <stevenb@suse.de>
1000
1001         PR tree-optimization/15438
1002         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
1003         attributed functions as pure or const.
1004
1005 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
1006
1007         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
1008         from source code with errors.
1009
1010 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
1011
1012         Enable tree browser for all front ends.
1013         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
1014         (BACKEND): ...to here.
1015
1016 2004-05-17  Jan Hubicka  <jh@suse.cz>
1017
1018         * i386.c (construct_container): Do not produce BLKmode registers.
1019         (classify_argument): Properly compute alignment of complex types.
1020
1021 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
1022
1023         PR target/15084
1024         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
1025         and renamed to movdi_insv_1_rex64.
1026         (insv): Support SImode for 32bit and DImode for 64bit.
1027
1028 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1029
1030         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
1031         (TARGET_SWITCHES): Remove debugg.
1032         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
1033         TARGET_64BIT.
1034         (subdi3): Replace the define_expand with a define_insn, the latter
1035         renamed from subdi3_internal_3.
1036         (negdi2): Likewise negdi2_internal_2.
1037         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
1038         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
1039         and associated define_splits.
1040         (adddi3_internal): Renamed from adddi3_internal_3.
1041         (ashldi3_internal): Likewise ashldi3_internal4.
1042         (ashrdi3_internal): Likewise ashrdi3_internal4.
1043         (lshrdi3_internal): Likewise lshrdi3_internal4.
1044
1045 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1046
1047         * optabs.c (expand_unop): Try implementing negation using subtraction
1048         from zero.
1049
1050 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1051
1052         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
1053         SAR register.
1054
1055 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
1056
1057         PR target/10982
1058         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
1059         (ne_zeroextractsi_shifted): New pattern.
1060         (ite_ne_zeroextractsi): New pattern.
1061         (ite_ne_zeroextractsi_shifted): New pattern.
1062
1063 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1064
1065         * c-gimplify.c (c_genericize):
1066         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
1067         * c-parse.in <expr_no_commas>: Likewise.
1068         <if_prefix>: Likewise.
1069         <select_or_iter_stmt>: Likewise.
1070         * expr.c (expand_var, expand_expr_real_1): Likewise.
1071         * expr.h (expand_expr): Make it a static inline function.
1072         Move prototype for expand_expr_real up before this.
1073         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
1074         Likewise.
1075         * gimplify.c (gimple_boolify, gimplify_addr_expr,
1076         gimplify_asm_expr, gimplify_expr): Likewise.
1077         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
1078         dump_function_to_file): Likewise.
1079         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
1080         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
1081         * tree-into-ssa.c (dump_tree_ssa): Likewise.
1082         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
1083         Likewise.
1084         * tree-optimize.c (execute_one_pass): Likewise.
1085         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
1086         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
1087
1088         * objc/objc-act.c (objc_build_try_enter_fragment,
1089         objc_build_try_epilogue, objc_build_catch_stmt,
1090         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
1091         with lang_hooks.foo ().
1092
1093 2004-05-15  Roger Sayle  <roger@eyesopen.com>
1094
1095         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
1096         that simplify_builtin doesn't destructively modify its argument.
1097
1098 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1099
1100         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
1101         implementations for ARM and Thumb.
1102         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
1103
1104 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
1105
1106         * prefix.c (update_path): Replace PREFIX with KEY only
1107         when it matches a full directory name in PATH.
1108
1109 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1110
1111         * arm.h (TARGET_APCS_32): Delete.
1112         (TARGET_MMU_TRAPS): Delete.
1113         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
1114         define __APCS_26__.
1115         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
1116         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
1117         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
1118         (prog_mode_type): Delete.
1119         (PROMOTE_MODE): Always promote unsigned for HImode.
1120         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
1121         (MASK_RETURN_ADDR): Simplify.
1122         * arm.c (arm_prgmode): Delete.
1123         (arm_override_options, arm_gen_rotated_half_load): Simplify.
1124         (print_multi_reg, output_return_instruction): Simplify.
1125         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
1126         (arm_return_addr): Simplify.
1127         * arm.md (prog_mode): Delete.
1128         (conds): Simplify.
1129         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
1130         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
1131         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
1132         (loadhi_shiftpredec): Delete.
1133         (peephole for post-increment on HImode load): Delete.
1134         * arm/crtn.asm: (FUNC_END): Simplify.
1135         * arm/lib1funcs.asm: Remove APCS-26 return macros.
1136         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
1137         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
1138         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
1139         MULTILIB_DEFAULTS as required.
1140         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
1141         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
1142         variables as required.
1143         * doc/invoke.texi (ARM Options): Remove obsolete flags.
1144
1145 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
1146
1147         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
1148         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
1149         count to 8 to handle n_reg > 2.
1150
1151 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1152
1153         * doc/extend.texi: Update WG14 URL.
1154
1155 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1156
1157         * basic-block.h (life_analysis, delete_noop_moves):
1158         Update prototypes.
1159         * bt-load.c (branch_target_load_optimize): Don't take the
1160         insns stream as an argument.  Update the life_analysis calls.
1161         * combine.c (combine_instructions): Update delete_noop_moves
1162         calls.
1163         * flow.c (notice_stack_pointer_modification): Don't take the
1164         insns stream as an argument.  Work on the flow graph.
1165         (life_analysis): Likewise.
1166         (delete_noop_moves): Likewise.
1167         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
1168         (rest_of_handle_life): Update life_analysis call.
1169         (rest_of_compilation): Likewise, and also update
1170         branch_target_load_optimize call.
1171         * ra.c (reg_alloc): Update life_analysis call.
1172         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
1173         the insns stream as an argument.
1174         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
1175         call.
1176         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
1177         prototypes.
1178         * value-profile.c (branch_prob): Update life_analysis call.
1179         * web.c (web_main): Work on the CFG, not on the insns stream.
1180
1181         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
1182         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
1183         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1184
1185 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1186
1187         PR c/15444
1188         * c-format.c (avoid_dollar_number): New function.
1189         (check_format_info_main): Call avoid_dollar_number when operand
1190         numbers might occur but has_operand_number == 0.
1191
1192 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
1193
1194         * arm.md (all peephole2 patterns): Use predicates that validate
1195         register classes as appropriate.
1196
1197 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1198
1199         PR opt/14472
1200         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
1201         ignore type conversions that do not inhibit tail calling.
1202         (find_tail_calls): Likewise.
1203
1204 2004-05-14  Jeff Law  <law@redhat.com>
1205
1206         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
1207         bother marking bypassed virtuals for out-of-ssa.  Instead merge
1208         bypassed virtuals into vars_to_rename just before into-ssa pass.
1209
1210         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
1211         so that it picks up more opportunities to eliminate ABS expressions
1212         or turn them into negations.
1213
1214 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1215
1216         * passes.c (rest_of_handle_null_pointer): Remove.
1217         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
1218         (rest_of_compilation): Likewise.
1219         * rtl.h (delete_null_pointer_checks): Remove prototype.
1220         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
1221         Remove declarations.
1222         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
1223         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
1224         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
1225         expr_reaches_here_p, computing_insn, def_reaches_here_p,
1226         can_disregard_other_sets, handle_avail_expr, classic_gcse,
1227         one_classic_gcse_pass, invalidate_nonnull_info,
1228         delete_null_pointer_checks_1, delete_null_pointer_checks,
1229         expr_reached_here_p_work): Remove.
1230         (gcse_main): Do not perform classic GCSE when optimizing for size.
1231         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
1232         are never used.
1233
1234 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
1235
1236         PR optimization/14466
1237         * tree-complex.c (make_temp): Remove.
1238         (gimplify_val): Replace make_temp with make_rename_temp
1239         and add NULL as the second argument.
1240         (expand_complex_div_wide): Likewise.
1241         * tree-dfa.c (make_rename_temp): New function.
1242         * tree-flow.h (make_rename_temp): Declare.
1243         * tree-sra.c (make_temp): Remove.
1244         (lookup_scalar): Replace make_temp with make_rename_temp.
1245         (create_scalar_copies): Likewise.
1246         * tree-ssa-phiopt.c (conditional_replacement): When we
1247         get non gimple create a temporary variable to hold the
1248         casted expression.
1249
1250 2004-05-14  Paul Brook  <paul@codesourcery.com>
1251
1252         * stor-layout.c (update_alignment_for_field): Use
1253         targetm.align_anon_bitfield.
1254         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
1255         (TARGET_INITIALIZER): Use it.
1256         * target.h (struct gcc_target): Add align_anon_bitfield.
1257         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
1258         (TARGET_ALIGN_ANON_BITFIELD): Define.
1259         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
1260
1261 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
1262
1263         * tree.def (documentation): Remove mention of class 'b'.
1264         (BLOCK): Now in class 'x'.
1265         * c-common.c (verify_tree): Remove case 'b'.
1266         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
1267         * calls.c (calls_function_1): Control cannot get past the switch
1268         when exp is a BLOCK.
1269         * print-tree.c (print_node): Move code for class 'b' to the class
1270         'c'/'x' switch, as case BLOCK.
1271         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
1272         (unsafe_for_reeval, substitute_placeholder_in_expr)
1273         (stabilize_reference_1): Remove case 'b'.
1274         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
1275         of something being 'b' to tests for TREE_CODE of something being
1276         BLOCK.
1277         * tree-ssa-operands.c (get_expr_operands): Likewise.
1278
1279 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1280
1281         * tree-gimple.c: Rename from tree-simple.c.
1282         * tree-gimple.h: Rename from tree-simple.h.
1283         * c-gimplify.c: Rename from c-simplify.c
1284         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
1285         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
1286         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
1287         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
1288         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
1289         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
1290         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
1291         Update.
1292
1293 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
1294
1295         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
1296
1297 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1298
1299         * tree-ssa.c (delete_tree_ssa): XFREE
1300         bitmaps allocated with BITMAP_XMALLOC.
1301
1302         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
1303         idfs_cache at the end of the function.
1304
1305         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
1306         at the end of the function.
1307
1308         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
1309         el at the end of the function.
1310
1311         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
1312         bitmaps allocated with BITMAP_XMALLOC.
1313
1314         * loop-unswitch.c (unswitch_single_loop): Free bbs at
1315         the end.
1316
1317         * final.c (shorten_branches): Free uid_shuid before
1318         reallocating it.
1319
1320         * bb-reoder.c (connect_traces): Free cold_traces at the end.
1321
1322 2004-05-13  Jeff Law  <law@redhat.com>
1323
1324         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
1325         variables.  Simplify slightly by using USE_OP/DEF_OP instead
1326         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
1327
1328         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
1329         rather than iterating through the blocks testing each bit in
1330         livein to initialize the worklist.
1331         (mark_def_sites): Remove useless checks of KILLS for virtual
1332         operands.
1333
1334         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
1335         new parameters for the statement and variable worklist as well
1336         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
1337         worklist recording interesting variables in the variable worklist
1338         and bitmap.  Handle casts between integral and boolean types.
1339         (substitute_single_use_vars): Accept new parameters for the statement
1340         and variable worklist.  When a substitution is made add a new
1341         entry to the statement worklist.  Handle casts between integral
1342         and boolean types.
1343         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
1344         worklists to children.  Iterate until the statement worklist
1345         is empty.
1346
1347 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1348
1349         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
1350         the end of the block.
1351
1352         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
1353         with BITMAP_XMALLOC.
1354
1355         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
1356         with BITMAP_XMALLOC.
1357
1358         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
1359         Free nonzero_vars at the end of the function.
1360
1361         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
1362         need to generate code instead of a NOP_EXPR.
1363
1364 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
1365
1366         * gcc.c (default_compilers): Fill out initializers for new Fortran
1367         entries.
1368
1369 2004-05-13  Paul Brook  <paul@codesourcery.com>
1370
1371         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
1372
1373 2004-05-13  Paul Brook  <paul@codesourcery.com>
1374
1375         * config/arm/arm.c (arm_default_short_enums): New function.
1376         (TARGET_DEFAULT_SHORT_ENUMS): Define.
1377
1378 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1379
1380         Merge from tree-ssa-20020619-branch.
1381
1382         * Makefile.in (reload1.o-warn): Add.
1383         (tree-alias-ander.o-warn): Add.
1384         (GMPLIBS): Define.
1385         (GMPINC): Define.
1386         (BANSHEELIB): Define.
1387         (BANSHEEINC): Define.
1388         (TREE_DUMP_H): Define.
1389         (TREE_SIMPLE_H): Define.
1390         (TREE_FLOW_H): Define.
1391         (LIBDEPS): Add BANSHEELIB.
1392         (INCLUDES): Add BANSHEEINC and GMPINC.
1393         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
1394         c-mudflap.o and c-pretty-print.o.
1395         (C_OBJS): Remove c-pretty-print.o.
1396         (OBJS-common): Remove sibcall.o.
1397         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
1398         tree-ssa.o, tree-optimize.o, tree-simple.o,
1399         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
1400         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
1401         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
1402         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1403         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
1404         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
1405         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
1406         tree-tailcall.o, gimple-low.o, tree-iterator.o,
1407         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
1408         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
1409         tree-profile.o.
1410         (OBJC-archive): Add tree-nomudflap.o.
1411         (cc1): Add dependency on @TREEBROWSER@.
1412         (c-decl.o): Add dependency on TREE_DUMP_H.
1413         (c-dump.o): Likewise.
1414         (c-common.o): Add dependency on tree-iterator.h
1415         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
1416         (gtype-desc.o): Add dependency on TREE_FLOW_H.
1417         (tree.o): Add dependency on tree-iterator.h,
1418         BASIC_BLOCK_H and TREE_FLOW_H.
1419         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
1420         (langhooks.o): Add dependency on TREE_SIMPLE_H.
1421         (tree-alias-type.o, tree-alias-ander.o,
1422         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
1423         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
1424         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
1425         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
1426         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
1427         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
1428         tree-nested.o, tree-iterator.o, tree-dfa.o,
1429         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
1430         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
1431         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
1432         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
1433         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
1434         tree-sra.o, tree-complex.o, tree-profile.o,
1435         rtl-profile.o): New rules.
1436         (function.o): Add dependency on basic-block.h
1437         (expr.o): Add dependency on tree-iterator.h.
1438         (sibcall.o): Remove.
1439         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
1440         (cfg.o): Add dependency on TIMEVAR_H.
1441         (cfghooks.o): Add dependency on TREE_FLOW_H.
1442         (reg-stack.o): Add dependency on basic-block.h.
1443         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
1444         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
1445         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
1446         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
1447         tree-alias-type.h, tree-alias-common.h,
1448         tree-alias-type.c, tree-alias-common.c,
1449         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
1450         rtl-profile.c and tree-nested.c.
1451         (gt-tree-alias-common.h, gt-tree-mudflap.h,
1452         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
1453         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
1454         gt-tree-cfg.h, gt-tree-nested.h): New rules.
1455         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
1456         * basic-block.h: Include predict.h
1457         (struct edge_def): Add GTY marker.
1458         Change field 'insns' to be a union of tree and rtx.
1459         (EDGE_TRUE_VALUE): Define.
1460         (EDGE_FALSE_VALUE): Define.
1461         (EDGE_EXECUTABLE): Define.
1462         (struct bb_ann_d): Forward declare.
1463         (struct basic_block_def): Add GTY marker.
1464         Remove fields head_tree and end_tree.
1465         Add fields stmt_list, rbi and tree_annotations.
1466         (struct reorder_block_def): Define.
1467         (basic_block_info): Add GTY marker.
1468         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
1469         variables instead of macros.
1470         (flow_call_edges_add): Remove declaration.
1471         (make_eh_edge): Remove declaration.
1472         (brief_dump_cfg, find_edge, tree_predicted_by_p,
1473         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
1474         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
1475         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
1476         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
1477         (try_redirect_by_replacing_jump): Modfiy return type to
1478         edge instead of bool.
1479         * bb-reorder.c (copy_bb): Call duplicate_block
1480         instead of cfg_layout_duplicate_bb.
1481         (copy_bb_p): Call can_duplicate_block_p instead of
1482         cfg_layout_can_duplicate_bb_p.
1483         * bitmap.c (bitmap_first_set_bit): Abort if word
1484         wasn't found.
1485         (bitmap_last_set_bit): Likewise.
1486         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
1487         (DEF_FUNCTION_TYPE_3): Add.
1488         * builtins.c (c_strlen): Make extern.
1489         (builtin_save_expr): New.
1490         (expand_builtin_nonlocal_goto): New.
1491         (expand_builtin_constant_p): Remove.
1492         (expand_builtin_mathfn): Call builtin_save_expr instead
1493         of save_expr.
1494         (expand_builtin_mathfn_2): Likewise.
1495         (expand_builtin_strcmp): Likewise.
1496         (expand_builtin_strncmp): Likewise.
1497         (expand_builtin_strcat): Likewise.
1498         (fold_builtin_cabs): Likewise.
1499         (expand_builtin_alloca): Don't trigger if -fmudflap is
1500         given.
1501         (build_string_literal): Set TREE_INVARIANT on new node.
1502         (expand_builtin_profile_fun): New.
1503         (round_trampoline_addr): New.
1504         (expand_builtin_init_trampoline): New.
1505         (expand_builtin_adjust_trampoline): New.
1506         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
1507         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
1508         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
1509         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
1510         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
1511         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
1512         Handle.
1513         (fold_builtin_expect): New.
1514         (fold_builtin_isascii): Don't return non-constant results
1515         in GIMPLE form.
1516         (fold_builtin_isdigit): Likewise.
1517         (fold_builtin_1): New.
1518         (fold_builtin): Call it.
1519         (build_function_call_expr): Update call to build a new
1520         CALL_EXPR.
1521         (purge_builtin_constant_p): Remove.
1522         (simplify_builtin, simplify_builtin_memcmp,
1523         simplify_builtin_strcmp, simplify_builtin_strncmp,
1524         simplify_builtin_strpbrk, simplify_builtin_strstr,
1525         simplify_builtin_strchr, simplify_builtin_strrchr,
1526         simplify_builtin_strcat, simplify_builtin_strncat,
1527         simplify_builtin_strspn, simplify_builtin_strcspn,
1528         simplify_builtin_next_arg, simplify_builtin_va_start,
1529         simplify_builtin_sprintf): New.
1530         * builtins.def (BUILT_IN_STACK_ALLOC,
1531         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
1532         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
1533         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
1534         BUILT_IN_PROFILE_FUNC_EXIT): Define.
1535         * c-common.c: Include tree-iterator.h and hashtab.h.
1536         (lang_statement_code_p): Declare.
1537         (lang_gimplify_stmt): Declare.
1538         (fix_string_type): Set TREE_INVARIANT for value.
1539         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
1540         (c_type_hash): New.
1541         (c_common_get_alias_set): Handle multiple type nodes
1542         referring to "the same" type, currently for C90 only.
1543         (c_add_case_label): Use create_artificial_label.
1544         (finish_label_address_expr): Don't set TREE_CONSTANT on
1545         result.
1546         (c_expand_expr): Don't handle STMT_EXPR.
1547         (handle_alias_attribute): Marke aliased variables to be
1548         TREE_STATIC.
1549         (handle_nonnull_attribute): Initialize arg_num.
1550         (check_function_nonnull): Likewise.
1551         (c_walk_subtrees): New.
1552         (c_estimate_num_insns_1): Don't handle
1553         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
1554         (c_decl_uninit_1): Remove.
1555         (c_decl_uninit): Remove.
1556         (c_warn_unused_result): New.
1557         * c-common.def (ASM_STMT): Change number of operands
1558         to 4.
1559         (FILE_STMT): Remove.
1560         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
1561         Remove.
1562         (lang_gimplify_stmt): Add.
1563         (expand_stmt): Remove.
1564         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
1565         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
1566         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
1567         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
1568         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
1569         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1570         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1571         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
1572         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
1573         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
1574         genrtl_compound_stmt, genrtl_asm_stmt,
1575         genrtl_cleanup_stmt, c_decl_uninit): Remove.
1576         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
1577         c_tree_chain_matters_p, c_warn_unused_result,
1578         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
1579         Declare.
1580         * c-convert.c (convert): Make convert work when
1581         converting to compatible types across translation unit.
1582         * c-decl.c: Include langhooks.h, tree-mudflap.h,
1583         tree-simple.h, diagnostic.h and tree-dump.h
1584         (merge_decls): Initialize oldtype to NULL.
1585         (finish_decl): Use DECL_HARD_REGISTER instead of
1586         DECL_C_HARD_REGISTER.
1587         (check_bitfield_type_and_width): Check for null
1588         lang_type_specific when check the precision of an enum.
1589         (grokdeclarator): Immediately layout an ARRAY_TYPE used
1590         in a pointer-to-array declarator.
1591         (finish_struct): Clear allocated struct lang_type.
1592         (finish_enum): Set enum_min and enum_max.  Set
1593         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
1594         not to the enumerators.
1595         (set_decl_nonlocal): New.
1596         (store_parm_decls): Use it via walk_tree.
1597         (c_finalize): New.
1598         (finish_function): When !targetm.have_ctors_dtors,
1599         record static constructors and destructors here...
1600         (c_expand_body_1): ... not here.
1601         (c_expand_decl): Rename from c_expand_decl_stmt.
1602         Handle all C-specific expansion semantics.
1603         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
1604         STMT_LINENO.
1605         * c-format.c (handle_format_arg_attribute): Initialize
1606         format_num.
1607         * c-lang.c: Include tree-inline.h
1608         (LANG_HOOKS_EXPAND_DECL,
1609         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1610         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
1611         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
1612         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
1613         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
1614         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
1615         (c_types_compatible_p): New.
1616         * c-mudflap.c: New file.
1617         * c-objc-common.c: Include tree-mudflap.h
1618         (start_cdtor, finish_cdtor): Collapse
1619         together into
1620         (build_cdtor): ...here.  Update to construct a complete tree
1621         for the function.  No need to call push_scope, pop_scope, or
1622         clear_last_expr, or set current_function_cannot_inline.
1623         (c_missing_noreturn_ok_p): Change prototype to return
1624         bool.
1625         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
1626         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
1627         opts.c.
1628         (c_common_post_options): Don't ever use rtl inlining.
1629         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
1630         * c-pragma.c (handle_pragma_redefine_extname): Define
1631         always.
1632         (init_pragma): Activate #pragma redefine_extname for mudflap.
1633         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
1634         (pp_c_initializer): Accept any type CONSTRUCTOR.
1635         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
1636         COMPLEX_TYPE.
1637         (decl_name_str): New local function.
1638         (pp_c_direct_declarator): Call it.
1639         (pp_c_primary_expression): Call it.
1640         (pp_c_id_expression): Call it.
1641         (pp_c_statement): Call it.
1642         (print_c_tree): Create new pp object.
1643         * c-pretty-print.h (pp_c_tree_decl_identifier,
1644         print_c_tree): Declare.
1645         * c-semantics.c: Include langhooks.h
1646         (lang_expand_stmt, lang_expand_decl_stmt,
1647         find_reachable_label_1, find_reachable_label,
1648         expand_unreachable_if_stmt, expand_unreachable_stmt,
1649         genrtl_do_stmt_1): Remove.
1650         (begin_stmt_tree): Don't check for changed filename.
1651         Call annotate_with_locus.
1652         (finish_stmt_tree): Don't set line for end of function.
1653         (build_stmt): Don't check type nodes for
1654         side effects.
1655         (build_stmt): Set TREE_SIDE_EFFECTS.
1656         Set EXPR_LOCUS instead of STMT_LINENO.
1657         (lang_expand_stmt, lang_expand_decl_stmt,
1658         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1659         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1660         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
1661         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
1662         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
1663         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
1664         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
1665         find_reachable_label_1, expand_unreachable_if_stmt,
1666         expand_unreachable_stmt): Remove.
1667         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
1668         * c-simplify.c: New file.
1669         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
1670         (struct lang_type): Add fields enum_min and enum_max.
1671         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
1672         (c_expand_decl, c_missing_noreturn_ok_p,
1673         c_types_compatible_p): Declare.
1674         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
1675         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
1676         (default_function_array_conversion): Rely on build to
1677         set TREE_CONSTANT.
1678         (parser_build_binary_op, pointer_diff): Likewise.
1679         (build_unary_op, build_binary_op): Likewise.
1680         (build_array_ref):
1681         (build_external_ref): Set TREE_INVARIANT.
1682         (build_c_cast, pop_init_level): Likewise.
1683         (process_init_element): Use ASM_VOLATILE_P.
1684         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
1685         (c_finish_case): Call c_do_switch_warnings.
1686         * c.opt (fdump-): Remove.
1687         * calls.c (try_to_integrate): Remove.
1688         (prepare_call_address): Replace fndecl arg with a
1689         precomputed static chain value.
1690         (emit_call_1): New argument for full call expr.
1691         (flags_from_decl_or_type): Call special_function_p.
1692         (initialize_argument_information): Add argument
1693         may_tailcall.
1694         (purge_reg_equiv_notes): New.
1695         (expand_call): Do not try to expand calls inline.
1696         (fixup_tail_calls): New.
1697         * cfg.c: Include timevar.h and ggc.h.
1698         (bb_pool, edge_pool): Remove.
1699         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
1700         (entry_exit_blocks): Remove.
1701         (rbi_pool): Declare.
1702         (init_flow): Do not create pools.
1703         Allocate entry/exit block.
1704         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
1705         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
1706         (unlink_block): Clear b->prev_bb and b->next_bb.
1707         (compact_blocks): Clear all slots of BASIC_BLOCK array.
1708         (dump_flow_info): Work on trees too.
1709         (dump_cfg_bb_info): New.
1710         (brief_dump_cfg): New.
1711         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
1712         (find_edge): New.
1713         * cfgbuild.c (rtl_make_eh_edge): Rename from
1714         make_eh_edge.  Update all users.
1715         (find_basic_blocks): Don't call VARRAY_FREE on
1716         basic_block_info.
1717         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
1718         and newpos2.
1719         (delete_unreachable_blocks): Return changed status.
1720         (merge_seq_blocks): New.
1721         * cfghooks.c: Include tree-flow.h
1722         (tree_register_cfg_hooks, ir_type): New.
1723         (redirect_edge_and_branch): Change return type to edge.
1724         (predict_edge, predicted_by_p, can_duplicate_block_p,
1725         duplicate_block, block_ends_with_call_p,
1726         block_ends_with_condjump_p, flow_call_edges_add): New.
1727         * cfghooks.h (redirect_edge_and_branch): Change return
1728         type to edge.
1729         (predict_edge, predicted_by_p, can_duplicate_block_p,
1730         duplicate_block, block_ends_with_call_p,
1731         block_ends_with_condjump_p, flow_call_edges_add): Declare.
1732         (redirect_edge_and_branch): Change return type to edge.
1733         (struct cfg_hooks): Add fields block_ends_with_call_p,
1734         block_ends_with_condjump_p, flow_call_edges_add,
1735         predict_edge, predicted_by_p, can_duplicate_block_p and
1736         duplicate_block.
1737         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
1738         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
1739         (fixup_reorder_chain): Use initialize_bb_rbi.
1740         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
1741         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
1742         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
1743         (insn_locators_initialize): Use new info about blocks.
1744         * cfglayout.h (typedef struct reorder_block_def): Moved to
1745         basic_block.h.
1746         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
1747         removed.
1748         * cfgloop.c: Include tree.h and tree-flow.h.
1749         * cfgloop.h (create_loop_notes): Declare.
1750         * cfgloopmanip.c (create_loop_notes): New.
1751         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
1752         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
1753         and duplicate_block fields.
1754         (create_basic_block_structure): Don't look at
1755         RTX_INTEGRATED_P.
1756         (rtl_block_ends_with_call_p): New.
1757         (rtl_block_ends_with_condjump_p): New.
1758         (need_fake_edge_p): Moved from cfganal.c.
1759         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
1760         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
1761         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
1762         (cfg_layout_rtl_cfg_hooks): Ditto.
1763         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
1764         functions to be reachable.
1765         * cgraphunit.c (decide_is_function_needed):
1766         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
1767         inline functions don't need to be output.
1768         (cgraph_assemble_pending_functions): Don't do anything
1769         special for nested functions.
1770         (cgraph_mark_functions_to_output): Likewise.
1771         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
1772         (cgraph_analyze_function): Use estimate_num_insns.
1773         (cgraph_mark_functions_to_output): Likewise.
1774         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
1775         (cgraph_expand_function): Allow functions to not be
1776         emitted.
1777         (cgraph_remove_unreachable_nodes):
1778         (cgraph_recursive_inlining_p): Simplify.
1779         (lookup_recursive_calls,
1780         cgraph_decide_recursive_inlining): New.
1781         (cgraph_decide_inlining_*): Update calls of
1782         cgraph_mark_inline.
1783         * combine.c (get_pos_from_mask): Always set *plen.
1784         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
1785         ftree-based-profiling, ftree-ccp, ftree-ch,
1786         ftree-combine-temps, ftree-copyrename, ftree-dce,
1787         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
1788         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
1789         ftree-lrs): Add.
1790         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
1791         Undefine.
1792         * configure.ac: Add --enable-tree-browser option.
1793         Add --with-libbanshee option.
1794         Add GMPLIBS and GMPINC.
1795         * configure: Regenerate.
1796         * coverage.c (tree_ctr_tables): New.
1797         (coverage_counter_alloc): Use it.
1798         (build_ctr_info_value): Ditto.
1799         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
1800         (tree_coverage_counter_ref): New.
1801         * coverage.h (coverage_counter_ref): Remove declaration.
1802         (rtl_coverage_counter_ref): Declare.
1803         (tree_coverage_counter_ref): Declare.
1804         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
1805         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
1806         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
1807         (struct cse_basic_block_data): Rename enum values to not
1808         conflict with profile.h; update all uses.
1809         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
1810         in comments.
1811         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
1812         * diagnostic.h (debug_output_buffer, dump_generic_node,
1813         print_generic_stmt, print_generic_stmt_indented,
1814         print_generic_expr, print_generic_decl,
1815         debug_generic_expr, debug_generic_stmt, debug_c_tree):
1816         Declare.
1817         * dominance.c: Cache immediate dominators.
1818         * domwalk.c: New file.
1819         * domwalk.h: New file.
1820         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
1821         (gen_subprogram_die): Generate a DIE for a named
1822         return value.
1823         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
1824         (add_location_or_const_value_attribute): Likewise.
1825         (add_bound_info): Likewise.
1826         (gen_decl_die): Likewise.
1827         * emit-rtl.c (maybe_set_first_label_num): New.
1828         (copy_most_rtx): Don't copy the integrated flag.
1829         Copy the new return_val flag.
1830         * et-forest.c (MAX_NODES): Define.
1831         (record_path_before_1): Abort if len is greater than
1832         MAX_NODES.
1833         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
1834         gen_eh_region_catch, gen_eh_region_allowed,
1835         gen_eh_region_must_not_throw, get_eh_region_number,
1836         get_eh_region_may_contain_throw, get_eh_region_tree_label,
1837         set_eh_region_tree_label, expand_resx_expr): New.
1838         (expand_eh_region_start, expand_start_catch): Use them.
1839         (expand_end_catch): Tidy.
1840         (note_eh_region_may_contain_throw): Take region argument.
1841         (note_current_region_may_contain_throw): New.
1842         (get_exception_filter): Export.
1843         (collect_eh_region_array): Export.
1844         (remove_unreachable_regions): Check ERT_TRY based on reachability
1845         of catches, not reachability of continue_label.  Never remove
1846         ERT_MUST_NOT_THROW regions.
1847         (collect_rtl_labels_from_trees): New.
1848         (convert_from_eh_region_ranges): Use it.
1849         (connect_post_landing_pads): Handle dying cleanups.
1850         (struct reachable_info): Add callback data.
1851         (add_reachable_handler): Invoke the callback.
1852         (foreach_reachable_handler): New.
1853         (reachable_handlers): Use it.
1854         (arh_to_landing_pad, arh_to_label): New.
1855         (can_throw_internal_1): Split out from can_throw_internal.
1856         (can_throw_external_1): Similarly.
1857         * except.h: Update.
1858         * explow.c (emit_stack_save): Remove savearea mode check.
1859         (update_nonlocal_goto_save_area): New.
1860         (allocate_dynamic_stack_space): Use it.
1861         (probe_stack_range): Never emit loop notes.
1862         * expmed.c (extract_fixed_bit_field): Always propagate the
1863         target for the shift if it is a REG.
1864         * expr.c: Include tree-iterator.h
1865         (is_zeros_p): Remove.
1866         (categorize_ctor_elements_1, categorize_ctor_elements): New.
1867         (count_type_elements): New.
1868         (mostly_zeros_p): Use them.
1869         (expr_wfl_stack): Remove.
1870         (convert_move): Do nothing if to and from are the same.
1871         (emit_block_move_via_loop): Don't emit LOOP notes.
1872         (emit_move_insn): Don't handle CONSTANT_P_RTX.
1873         (emit_move_insn_1): Don't generate inline warnings.
1874         (expand_vars, expand_var): Split from ...
1875         (expand_expr_1): ... here.
1876         (expand_expr_real, expand_expr_real_1):  Use new macros
1877         EXPR_LOCATION and EXPR_HAS_LOCATION.
1878         * expr.h (simplify_builtin_fputs,
1879         simplify_builtin_strcpy, simplify_builtin_strncpy,
1880         expand_var, fixup_tail_calls,
1881         update_nonlocal_goto_save_area): Declare.
1882         (lookup_static_chain, expand_inline_function,
1883         mark_seen_cases): Remove.
1884         (prepare_call_address): Change type of 2nd argument to
1885         rtx.
1886         * final.c (profile_function): Update static chain test.
1887         (final): Don't look at RTX_INTEGRATED_P.
1888         * flags.h (flag_mudflap, flag_mudflap_threads,
1889         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
1890         flag_tree_dce, flag_tree_combine_temps,
1891         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
1892         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
1893         flag_tree_points_to): Declare.
1894         (enum pta_type): Declare.
1895         * flow.c (lang_missing_noreturn_ok_p): Remove.
1896         (check_function_return_warnings): Remove.
1897         (update_life_info): Update comments.
1898         (free_basic_block_vars): Don't call VARRAY_FREE for
1899         basic_block_info.
1900         (regno_uninitialized): Remove.
1901         * fold-const.c (int_const_binop): Make extern.
1902         (non_lvalue): Rely on build to set TREE_CONSTANT.
1903         (operand_equal_p): Replace only_const argument with
1904         flags.  Allow pure functions if OEP_PURE_SAME.
1905         (fold): Use OEP_ONLY_CONST.
1906         (invert_truthvalue) <NOP_EXPR> Break if argument is of
1907         boolean type.
1908         (fold_relational_hi_lo,
1909         nondestructive_fold_binary_to_constant,
1910         nondestructive_fold_unary_to_constant,
1911         fold_read_from_constant_string): New.
1912         * function.c (struct function): Remove calls_constant_p.
1913         (current_function_calls_constant_p): Remove.
1914         (inline_function_decl): Remove.
1915         (put_var_into_stack): Don't use it.
1916         (fix_lexical_addr): Likewise.
1917         (inline_function_decl): Remove extern declaration.
1918         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
1919         (trampolines_created): Move to varasm.c.
1920         (free_after_compilation): Update for removed fields.
1921         (allocate_struct_function): Likewise.
1922         (delete_handlers, lookup_static_chain): Remove.
1923         (fix_lexical_addr): Don't consider non-local variable refs.
1924         (trampoline_address): Remove.
1925         (round_trampoline_addr): Move to builtins.c.
1926         (adjust_trampoline_addr): Remove.
1927         (expand_function_start): Update for changes to static chain
1928         and nonlocal goto handling.
1929         (initial_trampoline): Move to varasm.c.
1930         (expand_function_end): Don't build trampolines or kill
1931         unreferenced nonlocal goto labels.
1932         (free_after_compilation): Don't set it.
1933         (expand_function_end): Likewise.
1934         (setjmp_vars_warning): Rename from
1935         uninitialized_vars_warning, remove uninitialized vars warning.
1936         (uninitialized_vars_warning): Remove old comment
1937         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
1938         and do not call the langhook.
1939         (expand_function_start, expand_function_end): Don't do
1940         function instrumentation here.
1941         (clear_block_marks): Rename from reorder_blocks_0, export.
1942         (blocks_nreverse): Export.
1943         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
1944         of rtl.
1945         (reset_block_changes, record_block_change, finalize_block_changes,
1946         check_block_change, free_block_changes): New functions.
1947         (assign_parms): Setting of current_function_stdarg
1948         moved ...
1949         (allocate_struct_function): ... here.
1950         * function.h (struct function): Remove x_nonlocal_labels,
1951         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
1952         x_context_display, x_trampoline_list, needs_context.
1953         Add static_chain_decl, nonlocal_goto_save_area.
1954         (struct function): Remove x_clobber_return_insn.
1955         Add tail_call_emit field, last_label_uid,
1956         unexpanded_var_list, dont_emit_block_notes,
1957         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
1958         (clear_block_marks): Declare.
1959         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
1960         (mfwrap_spec, mflib_spec): Declare.
1961         (cpp_unique_options, cc1_options): Ditto.
1962         (default_compilers): Add .F and .f90.
1963         (static_specs): Add mfwrap and mflib.
1964         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
1965         CONSTANT_RTX_P.
1966         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
1967         Update to match insns field in struct edge_def.
1968         * gdbinit.in (pgs, pge): Define.
1969         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
1970         instead of the integrated flag.
1971         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
1972         * gengtype-yacc.y (bitfieldlen): Add empty action.
1973         (struct_fields): Accept unnamed bitfields.
1974         (bitfieldlen): Split from ...
1975         (bitfieldopt): ... here.
1976         * gengtype.c (ifiles): Add tree-alias-type.h and
1977         tree-flow.h.
1978         * genrecog.c (validate_pattern): Do not handle
1979         CONSTANT_P_RTX.
1980         * gimple-low.c: New file.
1981         * gimplify.c: New file.
1982         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
1983         (restore_line_notes): Do not set RTX_INTEGRATED_P.
1984         * ifcvt.c (dead_or_predicable): Initialize local variable
1985         'earliest'.
1986         * input.h (expr_wfl_stack): Remove.
1987         * integrate.c (INTEGRATE_THRESHOLD): Remove.
1988         (setup_initial_hard_reg_value_integration): Likewise.
1989         (initialize_for_inline): Likewise.
1990         (note_modified_parmregs): Likewise.
1991         (integrate_parm_decls): Likewise.
1992         (process_reg_param): Likewise.
1993         (save_parm_insns): Likewise.
1994         (copy_insn_list): Likewise.
1995         (copy_insn_notes): Likewise.
1996         (compare_blocks): Likewise.
1997         (find_block): Likewise.
1998         (inlining): Likewise.
1999         (function_cannot_inline_p): Likewise.
2000         (parmdecl_map): Likewise.
2001         (in_nonparam_insns): Likewise.
2002         (save_for_inline): Likewise.
2003         (FIXED_BASE_PLUS): Likewise.
2004         (expand_inline_function): Likewise.
2005         (copy_rtx_and_substitute): Don't look at map->integrating,
2006         map->inline_target, and inlining, since we are never copying
2007         for integrating.
2008         Don't abort on RTX_INTEGRATED_P.
2009         (old_fun): Remove.
2010         (output_inline_function): Remove.
2011         * integrate.h (struct inline_map): Remove fields integrating,
2012         block_map, leaf_reg_map, inline_target, and local_return_label.
2013         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
2014         copy_loop_headers, never_reached_warning): Removed.
2015         (any_uncondjump_p): Reject nonlocal goto.
2016         * langhooks-def.h (lhd_types_compatible_p,
2017         lhd_expand_decl, lhd_gimplify_expr): Declare.
2018         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2019         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2020         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2021         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2022         LANG_HOOKS_GIMPLIFY_EXPR,
2023         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
2024         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2025         LANG_HOOKS_GIMPLIFY_EXPR,
2026         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
2027         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
2028         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
2029         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2030         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
2031         LANG_HOOKS_DECL_UNINIT,
2032         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
2033         * langhooks.c: Include tree-simple.h.
2034         (lhd_expand_decl): New.
2035         (lhd_types_compatible_p): New.
2036         (lhd_decl_uninit): Remove.
2037         (lhd_gimplify_expr): New.
2038         * langhooks.h (struct lang_hooks_for_rtl_expansion):
2039         Remove.
2040         (struct lang_hooks_for_functions): Add field
2041         missing_noreturn_ok_p.
2042         (struct lang_hooks): Add field expand_decl,
2043         types_compatible_p, gimplify_expr and
2044         gimple_before_inlining.
2045         Remove fields decl_uninit and rtl_expand
2046         * opts.c (decode_options): Set flag_tree_ccp,
2047         flag_tree_dce, flag_tree_dom, flag_tree_dse,
2048         flag_tree_pre, flag_tree_ter,
2049         flag_tree_live_range_split, flag_tree_sra,
2050         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
2051         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
2052         OPT_fmudflapth, OPT_fmudflapir,
2053         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
2054         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
2055         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
2056         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
2057         OPT_ftree_points_to_ and OPT_ftree_pre.
2058         * output.h (regno_uninitialized, find_basic_blocks,
2059         cleanup_cfg, delete_unreachable_blocks,
2060         check_function_return_warnings): Remove.
2061         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
2062         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
2063         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
2064         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
2065         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
2066         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
2067         Define.
2068         * passes.c (rest_of_decl_compilation):
2069         (rest_of_handle_sibling_calls): Remove.
2070         (rest_of_handle_inlining): Remove.
2071         (rest_of_handle_gcse): Do not run
2072         purge_builtin_constant_p.
2073         (rest_of_compilation): Update.
2074         Do not call copy_loop_headers.
2075         Do rtl-based profiling only when
2076         !flag_tree_based_profiling.  Register rtl-based profiling
2077         hooks.
2078         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
2079         (predicted_by_p): Rename to ...
2080         (rtl_predicted_by_p): .. this one; make global
2081         (tree_predicted_by_p): New.
2082         (dump_prediction): Add FILE argument.
2083         (predict_edge): Rename to ...
2084         (rtl_predict_edge): .. this one.
2085         (tree_predict_edge): New.
2086         (combine_predictions_for_insn): Update calls of predict_edge.
2087         (predict_loops): Break out from ...
2088         (estimate_probability): ... here; update comments; move updating
2089         of unknown probabilities from ...
2090         (estimate_bb_frequencies): ... here.
2091         (combine_predictions_for_bb): New.
2092         (tree_predict_by_opcode): New.
2093         (tree_estimate_probability): New.
2094         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
2095         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
2096         * predict.h: Add include guard.
2097         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
2098         * pretty-print.c (pp_write_text_to_stream): Make extern.
2099         * pretty-print.h (pp_write_text_to_stream): Declare.
2100         * print-rtl.c (print_rtx): Don't print the integrated flag.
2101         Print the return_val flag.
2102         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
2103         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
2104         Remove support for EXPR_WITH_FILE_LOCATION nodes.
2105         (print_node): Print TREE_INVARIANT and TREE_VISITED.
2106         * profile.c: Include cfghooks.h, tree-flow.h.
2107         (profile_hooks): New.
2108         (profile_dump_file): New.
2109         (instrument_edges): Use hooks instead of RTL-specific code.
2110         (instrument_values): Ditto.
2111         (get_exec_counts): Ditto.
2112         (compute_branch_probabilities): Ditto.
2113         (compute_value_histograms): Ditto.
2114         (branch_prob): Ditto.
2115         (find_spanning_tree): Ditto.
2116         (end_branch_prob): Ditto.
2117         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
2118         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
2119         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
2120         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
2121         (tree_register_profile_hooks): New.
2122         (rtl_register_profile_hooks): New.
2123         * ra-rewrite.c (rewrite_program): Clear variable info.
2124         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
2125         * regs.h: Add include guards.
2126         * reload.c (decompose): Clear val using memset.
2127         * rtl.def (CONSTANT_P_RTX): Remove.
2128         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
2129         (copy_loop_headers): Remove.
2130         (struct rtx_def): Replace the integrated flag with the
2131         return_val flag.
2132         (maybe_set_first_label_num): Declare.
2133         (init_branch_prob): Move declaration to value-prof.h.
2134         (end_branch_prob): Ditto.
2135         (branch_prob): Ditto.
2136         (never_reached_warning): Don't declare it.
2137         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
2138         (hoist_insn_to_edge): Update to match field insns in
2139         struct edge_def.
2140         * sbitmap.c (sbitmap_realloc): New.
2141         * sbitmap.h (sbitmap_realloc): Declare.
2142         * sibcall.c: Remove file.
2143         * simplify-rtx.c (simplify_rtx): Do not handle
2144         CONSTANT_P_RTX.
2145         * stmt.c (parse_output_constraint): Don't warn for read-write
2146         memory operand.
2147         (tail_recursion_args): Use types_compatible_p langhook.
2148         (force_label_rtx): Don't look at inline_function_decl.
2149         (label_rtx): Set LABEL_PRESERVE_P appropriately.
2150         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
2151         (declare_nonlocal_label): Remove.
2152         (expand_goto): Don't handle nonlocal gotos.
2153         (expand_nl_handler_label): Remove.
2154         (expand_nl_goto_receivers): Remove.
2155         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
2156         update_nonlocal_goto_save_area.
2157         (expand_expr_stmt_value): Check TREE_NO_WARNING.
2158         (warn_if_unused_value): Likewise.
2159         (expand_start_loop, expand_loop_continue_here,
2160         expand_end_loop): Don't create loop notes.
2161         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
2162         mark_seen_cases, check_for_full_enumeration_handling): Remove.
2163         (expand_end_case_type): Don't do warn_switch handling.
2164         (pushcase, pushcase_range) Update add_case_node calls.
2165         (add_case_node): Add dont_expand_label argument.
2166         (same_case_target_p): Don't search rtl.
2167         (expand_start_bindings_and_block, expand_end_bindings):
2168         Don't emit block notes when dont_emit_block_notes.
2169         (using_eh_for_cleanups_p): Export.
2170         (expand_return): Allow any typed rhs.
2171         (expand_stack_alloc): New.
2172         (expand_stack_save, expand_stack_restore): New.
2173         (containing_blocks_have_cleanups_or_stack_level): New
2174         function.
2175         (asm_op_is_mem_input): New fn.
2176         (expand_asm_expr): New fn.
2177         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
2178         nodes.
2179         * stor-layout.c (layout_type): Just return if type is
2180         error_mark_node.
2181         (update_alignment_for_field): Export.
2182         (variable_size): We don't care about global_bindings_p if
2183         the frontend doesn't want a list of the expressions.
2184         * system.h: Poison INTEGRATE_THRESHOLD.
2185         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
2186         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
2187         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
2188         TV_TREE_SSA_OTHER, TV_TREE_OPS,
2189         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
2190         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
2191         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
2192         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
2193         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
2194         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
2195         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
2196         TV_CONTROL_DEPENDENCES): Define.
2197         * toplev.c: Include tree-alias-common.h
2198         (current_file_decl, flag_mudflap, flag_mudflap_threads,
2199         flag_mudflap_ignore_reads, flag_tree_based_profiling,
2200         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
2201         flag_tree_dce, flag_tree_ch, flag_tree_sra,
2202         flag_tree_combine_temps, flag_tree_ter,
2203         flag_tree_live_range_split, flag_tree_dom,
2204         flag_tree_copyrename, flag_tree_dse): Declare.
2205         (f_options): Add tree-based-profiling, tree-gvn,
2206         tree-pre, tree-ccp, tree-dce,
2207         tree-dominator-opts, tree-copyrename, tree-dse,
2208         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
2209         (wrapup_global_declarations): Don't output nested inlined functions.
2210         (general_init): Call init_tree_optimization_passes.
2211         (process_options): Sorry for -ftree-based-profiling plus
2212         -ftest-coverage or -fprofile-values.
2213         * toplev.h (init_tree_optimization_passes,
2214         flag_tree_based_profiling): Declare.
2215         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
2216         * tree-alias-ander.c: New file.
2217         * tree-alias-ander.h: New file.
2218         * tree-alias-common.c: New file.
2219         * tree-alias-common.h: New file.
2220         * tree-alias-type.c: New file.
2221         * tree-alias-type.h: New file.
2222         * tree-browser.c: New file.
2223         * tree-browser.def: New file.
2224         * tree-cfg.c: New file.
2225         * tree-complex.c: New file.
2226         * tree-dfa.c: New file.
2227         * tree-dump.c (dump_enable_all): New.
2228         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
2229         (dump_node): Remove const from field suffix and swtch.
2230         (dump_files): Add null entry, .generic, .nested, .vcg,
2231         .xml and a match-all entry.
2232         (extra_dump_files, extra_dump_files_in_use,
2233         extra_dump_files_alloced): Declare
2234         (dump_option_value_info): Add raw, details, stats,
2235         blocks, vops, lineno, uid and all.
2236         (dump_register): New.
2237         (get_dump_file_info): New.
2238         (dump_begin): Call it.
2239         Do nothing for TDI_none.
2240         (dump_begin): Include phase number in dump filename.
2241         (dump_enable_all): New.
2242         (dump_switch_p_1): Split out from dump_switch_p.
2243         (dump_switch_p): Handle extra_dump_files.
2244         Start our scan at TDI_none + 1.
2245         If -fdump-tree-all was given, call dump_enable_all.
2246         * tree-dump.h: Include splay-tree.h.
2247         (dump_function, dump_function_to_file, dump_register):
2248         Declare.
2249         * tree-eh.c: New file.
2250         * tree-flow-inline.h: New file.
2251         * tree-flow.h: New file.
2252         * tree-inline.c: Re-write to handle inlining on GIMPLE.
2253         * tree-inline.h (walk_tree,
2254         walk_tree_without_duplicates): Move to tree.h.
2255         (estimate_num_insns): Declare.
2256         * tree-into-ssa.c: New file.
2257         * tree-iterator.c: New file.
2258         * tree-iterator.h: New file.
2259         * tree-mudflap.c: New file.
2260         * tree-mudflap.h: New file.
2261         * tree-nested.c: New file.
2262         * tree-nomudflap.c: New file.
2263         * tree-nrv.c: New file.
2264         * tree-optimize.c (dump_flags, vars_to_rename,
2265         in_gimple_form, all_passes, pass_gimple,
2266         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
2267         (execute_gimple, execute_rebuild_bind,
2268         gate_all_optimizations, execute_del_cfg,
2269         register_one_dump_file, register_dump_files, dup_pass_1,
2270         init_tree_optimization_passes, execute_todo,
2271         execute_one_pass, execute_pass_list): New.
2272         (clear_decl_rtl): Remove.
2273         (tree_rest_of_compilation): Update to use tree
2274         optimizers.
2275         * tree-outof-ssa.c: New file.
2276         * tree-pass.h: New file.
2277         * tree-phinodes.c: New file.
2278         * tree-pretty-print.c: New file.
2279         * tree-profile.c: New file.
2280         * tree-simple.c: New file.
2281         * tree-simple.h: New file.
2282         * tree-sra.c: New file.
2283         * tree-ssa-alias.c: New file.
2284         * tree-ssa-ccp.c: New file.
2285         * tree-ssa-copy.c: New file.
2286         * tree-ssa-copyrename.c: New file.
2287         * tree-ssa-dce.c: New file.
2288         * tree-ssa-dom.c: New file.
2289         * tree-ssa-dse.c: New file.
2290         * tree-ssa-forwprop.c: New file.
2291         * tree-ssa-live.c: New file.
2292         * tree-ssa-live.h: New file.
2293         * tree-ssa-loop.c: New file.
2294         * tree-ssa-operands.c: New file.
2295         * tree-ssa-operands.h: New file.
2296         * tree-ssa-phiopt.c: New file.
2297         * tree-ssa-pre.c: New file.
2298         * tree-ssa.c: New file.
2299         * tree-ssanames.c: New file.
2300         * tree-tailcall.c: New file.
2301         * tree.c: Include tree-iterator.h, basic-block.h and
2302         tree-flow.h.
2303         (tree_node_kind): Add phi_nodes and ssa names.
2304         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
2305         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
2306         (make_node_stat): Handle PHI_NODE and SSA_NAME.
2307         <'c'> Set TREE_INVARIANT.
2308         (copy_node_stat): Abort if trying to copy a
2309         STATEMENT_LIST.
2310         Clear TREE_VISITED.
2311         Clear annotation field.
2312         (build_constructor): Copy TREE_INVARIANT from vals.
2313         Don't clear TREE_CONSTANT.
2314         (expr_first, expr_last, expr_length): Remove.
2315         (staticp): Pass unknown component references to the language.
2316         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
2317         (skip_simple_arithmetic): Likewise.
2318         (stabilize_reference_1): Likewise.
2319         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
2320         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
2321         STATEMENT_LIST.
2322         (lhd_unsave_expr_now): Remove.
2323         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
2324         (recompute_tree_invarant_for_addr_expr): New.
2325         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
2326         Call recompute_tree_invarant_for_addr_expr.
2327         Set TREE_INVARIANT accordingly.
2328         (build2_stat): Don't handle CALL_EXPR.
2329         (build3_stat): Don't call build2_stat for CALL_EXPRs.
2330         (build_expr_wfl): Remove.
2331         (annotate_with_file_line, annotate_with_locus): New.
2332         (simple_cst_equal): Call simple_cst_list_equal to compare
2333         CONSTRUCTOR_ELTS pointers.
2334         (iterative_hash_expr): Don't hash types associated
2335         with conversions.  Instead hash on the signedness of the
2336         toplevel object and the operand of the conversion.
2337         (dump_tree_statistics): Call ssanames_print_statistics
2338         and phinodes_print_statistics.
2339         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
2340         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
2341         needs_to_live_in_memory): New.
2342         (initializer_zerop): Handle VECTOR_CST.  Don't check
2343         AGGREGATE_TYPE_P for CONSTRUCTOR.
2344         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
2345         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
2346         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
2347         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
2348         (CALL_EXPR): Add another operand.
2349         (EXPR_WITH_FILE_LOCATION): Remove.
2350         (SWITCH_EXPR): Add another operand.
2351         * tree.h: Update various comments.
2352         (union tree_ann_d): Forward declare.
2353         (struct tree_common): Add fields nowarning_flag,
2354         invariant_flag and visited.
2355         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
2356         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
2357         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
2358         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
2359         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
2360         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
2361         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
2362         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
2363         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
2364         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
2365         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
2366         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
2367         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
2368         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
2369         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
2370         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
2371         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
2372         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
2373         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
2374         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
2375         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
2376         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
2377         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
2378         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
2379         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
2380         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
2381         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
2382         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
2383         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
2384         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
2385         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
2386         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
2387         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
2388         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
2389         TDF_UID,): Define.
2390         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
2391         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
2392         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
2393         EXPR_WFL_SET_LINECOL): Remove.
2394         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
2395         make_phi_node, init_phinodes, fini_phinodes,
2396         release_phi_node, phinodes_print_statistics,
2397         init_ssanames, fini_ssanames, make_ssa_name,
2398         release_ssa_name, ssanames_print_statistics,
2399         annotate_with_file_line, build_empty_stmt,
2400         annotate_with_locus, expr_only, categorize_ctor_elements,
2401         count_type_elements, add_var_to_bind_expr, is_essa_node,
2402         expand_stack_alloc, expand_stack_save,
2403         expand_stack_restore, add_case_node, operand_equal_p,
2404         nondestructive_fold_unary_to_constant,
2405         nondestructive_fold_binary_to_constant,
2406         fold_read_from_constant_string, int_const_binop,
2407         strip_float_extensions, simplify_builtin, c_strlen,
2408         recompute_tree_invarant_for_addr_expr,
2409         needs_to_live_in_memory, make_vector,
2410         setjmp_vars_warning, update_alignment_for_field,
2411         expand_asm_expr, asm_op_is_mem_input,
2412         containing_blocks_have_cleanups_or_stack_level,
2413         create_artificial_label, gimplify_function_tree,
2414         get_name, unshare_expr, walk_tree,
2415         walk_tree_without_duplicates, in_gimple_form): Declare.
2416         (struct tree_exp): Add fields locus and block.
2417         (struct tree_ssa_name, struct edge_def, struct
2418         tree_phi_node, struct tree_eref_common, struct
2419         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
2420         union alias_var_def, struct tree_statement_list_node,
2421         struct tree_statement_list, enum operand_equal_flag): Declare.
2422         (enum tree_node_structure_enum): Add TS_SSA_NAME,
2423         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
2424         TS_STATEMENT_LIST.
2425         (union tree_node): Add fields ssa_name, phi, eref, ephi,
2426         euse and stmt_list.
2427         (function_cannot_inline_p, uninitialized_vars_warning,
2428         save_for_inline, output_inline_function, all_cases_count,
2429         check_for_full_enumeration_handling,
2430         declare_nonlocal_label): Remove.
2431         (enum tree_dump_index): Add TDI_none, TDI_tu,
2432         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
2433         * unroll.c (unroll_loop): Don't clear map->inline_target.
2434         * unwind-sjlj.c (uw_install_context): Make a proper static inline
2435         function.
2436         * value-prof.c (value_prof_hooks): New.
2437         (find_values_to_profile): Rename to rtl_find_values_to_profile.
2438         Move rtl-specific bits in from branch_prob.
2439         (value_profile_transformations): Rename to
2440         rtl_value_profile_transformations.
2441         (struct value_prof_hooks): New.
2442         (rtl_value_prof_hooks): New.
2443         (rtl_register_value_prof_hooks): New.
2444         (tree_find_values_to_profile): New stub.
2445         (tree_value_profile_transformations): New stub.
2446         (tree_value_prof_hooks): New stub.
2447         (tree_register_value_prof_hooks): New stub.
2448         (find_values_to_profile): New.
2449         (value_profile_transformations): New.
2450         * value-prof.h: Add multiple inclusion guard.
2451         (struct histogram_value): Change rtx fields to void *.
2452         (rtl_register_value_prof_hooks): New declaration.
2453         (tree_register_value_prof_hooks): New declaration.
2454         (find_values_to_profile): New declaration.
2455         (free_profiled_values): New declaration.
2456         (value_profile_transformations): New declaration.
2457         (struct profile_hooks): New declaration.
2458         (init_branch_prob): Declaration moved from rtl.h.
2459         (branch_prob): Declaration moved from rtl.h.
2460         (end_branch_prob): Declaration mooved from rtl.h.
2461         (tree_register_profile_hooks): New declaration.
2462         (rtl_register_profile_hooks): New declaration.
2463         (tree_profile_hooks): New declaration.
2464         (rtl_profile_hooks): New declaration.
2465         * varasm.c: Include tree-mudflap.h.
2466         (TRAMPOLINE_ALIGNMENT): Remove.
2467         (make_decl_rtl): Call mudflap_enqueue_decl.
2468         (assemble_static_space):
2469         (assemble_trampoline_template): Set and return
2470         TRAMPOLINE_ALIGNMENT.
2471         * varray.c (element): Add GENERIC_PTR_NOGC entry.
2472         Add entry for 'tree *'.
2473         Add entry for struct edge_def *.
2474         (varray_copy): New.
2475         * varray.h (enum varray_data_enum): Add
2476         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
2477         VARRAY_DATA_TREE_PTR.
2478         (union varray_data_tag): Corresponding changes.
2479         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
2480         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
2481         VARRAY_EDGE, VARRAY_TREE_PTR,
2482         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
2483         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
2484         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
2485
2486         * config/*/*: Various updates for changed macros, tree
2487         codes, etc.  Check ChangeLog.tree-ssa.
2488
2489         * doc/cfg.texi: New file.
2490         * doc/tree-ssa.texi: New file.
2491         * doc/c-tree.texi: Document new codes.
2492         * doc/gccint.texi: Include new files.
2493         * doc/install.texi: Document new features.
2494         * doc/invoke.texi: Document new switches.
2495         * doc/passes.texi: Document new passes.
2496         * doc/rtl.texi: Update changed RTL codes.
2497         * doc/sourcebuild.texi: Update build instructions.
2498         * doc/standards.texi: Document Fortran changes.
2499         * doc/tm.texi: Update.
2500
2501 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
2502
2503         Replace several arrays with a struct of arrays.
2504         * combine.c (struct reg_stat): New.
2505         (init_reg_last_arrays): Renamed to...
2506         (init_reg_last): ...this.  Callers adjusted.
2507         (reg_stat): New.
2508         (combine_instructions): Allocate it and use it.
2509         (reg_last_death, reg_last_set, reg_last_set_value,
2510         reg_last_set_label, reg_last_set_table_tick,
2511         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
2512         reg_last_set_mode, reg_last_set_nonzero_bits,
2513         reg_last_set_sign_bit_copies): Replace throughout
2514         with items of reg_stat.
2515
2516 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2517
2518         PR optimization/15100
2519         * combine.c (distribute_notes): Don't create a dangling
2520         REG_LIBCALL/REG_RETVAL note.
2521
2522 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2523
2524         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
2525
2526         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
2527         negv2si2.
2528
2529 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2530
2531         * doc/md.texi (Standard Names): Fix typo in vec_init description.
2532
2533 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
2534
2535         * doc/gty.texi (GTY Options): Clarify example.
2536
2537 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
2538
2539         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
2540         Add const qualifier to altivec vector type if one is needed.
2541
2542 2004-05-11  Paul Brook  <paul@codesourcery.com>
2543
2544         * flags.h (flag_short_enums): Update comment.
2545         * opts.c (decode_options): Set flag_short_enums to 2.
2546         * toplev.c (flag_short_enums): Update comment.
2547         (process_options): Call default_short_enums target hook.
2548
2549 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
2550
2551         PR target/14063
2552         * config/rs6000/altivec.md (altivec_dssall):
2553         Change to unspec_volatile.
2554         (altivec_dss): Likewise.
2555
2556 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
2557
2558         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
2559         vnor.
2560         ("one_cmplv8hi2"): Same.
2561         ("one_cmplv4si2"): Same.
2562
2563 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2564
2565         PR target/15130
2566         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
2567         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
2568         into account.  Compute the correct number of general registers
2569         for the return value.  Generate a special push/pop sequence when
2570         failing to get a temporary register for non SHmedia epilogue.
2571         (sh_expand_epilogue): Add an argument to show whether it's for
2572         sibcall or not.  Set the 3rd argument of output_stack_adjust to
2573         -1 if needed.
2574         (sh_need_epilogue): Call sh_expand_epilogue with 0.
2575         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
2576         with 1.
2577         (epilogue): Call sh_expand_epilogue with 0.
2578
2579 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
2580
2581         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
2582         goto a cleanup label.  After the cleanup, free the allocated memory.
2583
2584 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
2585
2586         * config/rs6000/altivec.h (vec_sld): Add overloads for
2587         argument/return types of 'vector bool int', 'vector bool short'
2588         and 'vector bool char'.
2589
2590 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
2591
2592         * c-decl.c (store_parm_decls_newstyle): Correct test for a
2593         nested function.
2594
2595 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
2596
2597         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
2598         treating missing ones as "".
2599         * config/mips/mips.md: Remove constraints from match_operands and
2600         match_scratches if they appear in define_expands (except reload*),
2601         define_peephole2s, define_splits or attribute specifications.
2602         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
2603         constraint strings.
2604
2605 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
2606
2607         * config/rs6000/rs6000.c (function_arg_boundary): Always align
2608         AltiVec vectors.
2609         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
2610         vectors by refererence.  Align the same for TARGET_64BIT to a 16
2611         byte boundary.  Remove useless code.  Add function comment.
2612         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
2613         call to where it belongs.
2614         (function_arg_partial_nregs): Return true for all TARGET_32BIT
2615         -mabi=no-altivec AltiVec vectors.  Fix debug output.
2616         (rs6000_va_arg): Adjust for AltiVec change.
2617
2618 2004-05-10  Paul Brook  <paul@codesourcery.com>
2619
2620         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
2621         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
2622         (TARGET_DOUBLEWORD_ALIGN): Use it.
2623         (WCHAR_TYPE): Define.
2624         (WCHAR_SIZE_TYPE): Define.
2625         (SIZE_TYPE): Define.
2626
2627 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
2628
2629         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
2630         when size is 8 bytes.
2631         (function_arg_advance): Account for stack space used by AltiVec
2632         args when -mabi=altivec.  Simplify alignment calculations.  For
2633         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
2634         (function_arg): Similarly.
2635         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
2636         not AltiVec ABI.
2637         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
2638         Correct alignment, and align before testing reg count.  Remove
2639         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
2640         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
2641         TARGET_FPRS here..
2642         (rs6000_function_value): .. not here before call.
2643
2644 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
2645
2646         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
2647
2648 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
2649
2650         PR 15007
2651         * c-decl.c (current_file_decl): Rename to all_translation_units,
2652         adjust comment.
2653         (pop_scope): If popping file_scope, construct a
2654         TRANSLATION_UNIT_DECL and make it the context of all the
2655         symbols in the scope.
2656         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
2657         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
2658         anything to current_file_decl.
2659         (pushdecl_top_level): Likewise.
2660         (store_parm_decls_newstyle): Adjust check for nested function.
2661         (c_write_global_declarations): Update for renamed variable.
2662
2663 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
2664
2665         * config/rs6000/rs6000-protos.h
2666         (rs6000_conditional_register_usage): Protoize.
2667
2668         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
2669
2670         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
2671         function.
2672
2673 2004-05-08  Roger Sayle  <roger@eyesopen.com>
2674
2675         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
2676         where op is a comparison operator and C1 and C2 are integer constants
2677         into a range check.
2678         (fold): Call fold_div_compare.
2679
2680 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2681
2682         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
2683         problems with earlier versions of the GNU compiler.
2684
2685 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
2686
2687         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
2688         Declare.
2689
2690         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
2691         (rs6000_hard_regno_mode_ok): New.
2692         (rs6000_init_hard_regno_mode_ok): New.
2693         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
2694
2695         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
2696         result.
2697
2698 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
2699
2700         * config/rs6000/altivec.h (vector, pixel, bool): Do not
2701         define as macros #ifdef __APPLE_ALTIVEC__.
2702
2703 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
2704
2705         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
2706         Generate appropriate parallels for vector arguments
2707         passed to vararg functions. (function_arg): make the call
2708         to rs6000_mixed_function_arg for vector args as needed.
2709
2710 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2711
2712         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
2713         EABI_FLOAT_VARARGS_P.
2714
2715 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2716
2717         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
2718         * config/mips/mips.c (override_options): Disable branch likely
2719         instructions if TUNE_MIPS5500.
2720
2721 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2722
2723         * config/mips/mips.c (override_options): Allow the hi and lo registers
2724         to store any integral mode, not just MODE_INTs.
2725
2726 2004-05-07  Paul Brook  <paul@codesourcery.com>
2727
2728         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
2729         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
2730         (TARGET_DOUBLEWORD_ALIGN): Use it.
2731         (WCHAR_TYPE): Define.
2732         (WCHAR_SIZE_TYPE): Define.
2733         (SIZE_TYPE): Define.
2734
2735 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
2736
2737         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
2738         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
2739
2740 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
2741
2742         * loop-doloop.c (doloop_valid_p): Make sure that body
2743         gets freed.
2744
2745 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
2746
2747         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
2748         declaration.
2749         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
2750         (sparc_skip_caller_unimp): New global variable.
2751         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
2752         Use it instead of SKIP_CALLERS_UNIMP_P.
2753         * config/sparc/sparc.md (call expander): Add sanity check.
2754         (call_address_struct_value_sp32): Re-sync with expander.
2755         (call_symbolic_struct_value_sp32): Likewise.
2756         (return peepholes): Use 'sparc_skip_caller_unimp' instead
2757         of custom predicate.
2758
2759 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2760
2761         PR c++/14962
2762         * c-pragma.c (handle_pragma_redefine_extname): Only change
2763         the assembler name of FUNCTION_DECLs and VAR_DECLs.
2764
2765 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
2766
2767         * optabs.h (enum optab_index): Add new OTI_log1p.
2768         (log1p_optab): Define corresponding macro.
2769         * optabs.c (init_optabs): Initialize log1p_optab.
2770         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
2771         patterns.
2772         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
2773         using log1p_optab.
2774         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
2775         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2776
2777         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
2778
2779         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
2780         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
2781         Prototype here.
2782         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
2783         x87's fyl2xp1 instruction.
2784         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
2785         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
2786         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
2787         log1p  and log1pl built-ins as inline x87 intrinsics.
2788
2789 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
2790
2791         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
2792         * config/arm/freebsd.h: Likewise.
2793         * config/ia64/freebsd.h: Likewise.
2794         * config/sparc/freebsd.h: Likewise.
2795
2796 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
2797
2798         PR optimization/15296
2799         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
2800         getting last consecutive label at a branch.
2801         (relax_delay_slots): Similar, near top of loop.
2802
2803 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2804
2805         PR target/15202
2806         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
2807         register to general register.
2808
2809 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
2810
2811         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
2812         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
2813         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
2814         (STACK_BOUNDARY): Delete.
2815
2816 2004-05-06  Stuart Hastings  <stuart@apple.com>
2817
2818         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
2819         mistakenly clobbered by 1.423.
2820
2821 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
2822
2823         * doc/invoke.texi: Document -mvr4130-align.
2824         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
2825         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
2826         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
2827         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
2828         * config/mips/mips.md: Include sched-int.h.
2829         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
2830         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
2831         (override_options): Enable -mvr4130-align at -O3 and above.
2832         (mips_sim_insn): New variable.
2833         (mips_sim): New structure.
2834         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
2835         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
2836         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
2837         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
2838         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
2839         (mips_reorg): Call vr4130_align_insns.
2840         (vr4130_last_insn): New variable.
2841         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
2842         (vr4130_swap_insns_p, vr4130_reorder): New functions.
2843         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
2844         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
2845         (mips_use_dfa_pipeline_interface): Return true for the same.
2846         * config/mips/4130.md: New file.
2847         * config/mips/mips.md: Include it.  Add a peephole2 to convert
2848         "mult;mflo" into "mtlo;macc".
2849         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
2850         target of maccs.
2851         (*msac_using_macc): New pattern.
2852
2853 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
2854
2855         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
2856         (ir_vr55_hilo): Split into...
2857         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
2858         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
2859         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
2860         Add various multiplication bypasses.
2861         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
2862         multiplication.
2863
2864 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
2865
2866         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
2867         attribute to "XF".
2868
2869 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
2870
2871         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
2872         (fmod_optab, drem_optab): Define corresponding macros.
2873         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
2874         * genopinit.c (optabs): Implement fmod_optab and drem_optab
2875         using fmod?f3 and drem?f3 patterns.
2876         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
2877         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
2878         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
2879         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
2880         flag_unsafe_math_optimizations is set.
2881
2882         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
2883         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
2884
2885         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
2886         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
2887         Prototype here.
2888         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
2889         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
2890         fprem and fprem1 instructions.
2891         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
2892         Rename insn definition to x86_fnstsw_1.
2893         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
2894         x87 instructions.
2895         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
2896         and fmodl built-ins as inline x87 intrinsics.
2897         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
2898         and dreml built-ins as inline x87 intrinsics.
2899
2900 2004-05-05  Roger Sayle  <roger@eyesopen.com>
2901
2902         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
2903
2904 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
2905
2906         PR driver/9822
2907         * doc/invoke.texi (Spec Files): Remove documentation of %c.
2908
2909 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
2910
2911         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
2912         representation.
2913
2914 2004-05-06  Paul Brook  <paul@codesourcery.com>
2915
2916         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
2917         (arm_coproc_mem_operand): ... To this.
2918         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
2919         (arm_legitimate_index_p): Ditto.
2920         (vfp_mem_operand): Rename ...
2921         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
2922         (vfp_secondary_reload_class): Use it.
2923         (output_move_double): Use doubleword load/store instructions.
2924         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
2925         * config/arm/arm.h (TARGET_LDRD): Define.
2926         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
2927         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
2928         New splitter for invalid doubleword loads.
2929         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
2930         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
2931         * doc/md.texi: Document Uy constraint.
2932
2933 2004-05-05  Jan Hubicka  <jh@suse.cz>
2934
2935         PR opt/14980
2936         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
2937         inline clones.
2938
2939 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2940
2941         PR target/15290
2942         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
2943         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
2944
2945 2004-05-05  Mike Stump  <mrs@apple.com>
2946
2947         * config/darwin-c.c (add_framework): Copy the directory name as it
2948         can be freed later.  Also, ensure we always allocate enough room
2949         for the cached framework information.
2950         (find_subframework_header): Keep track of the directory where the
2951         subframework header was found.
2952         (framework_construct_pathname): Speed up by not trying to re-add a
2953         framework.
2954         * cppfiles.c (search_path_exhausted): Arrange for the missing
2955         header callback to be able to set the directory where the header
2956         was found.
2957         (cpp_get_dir): Add.
2958         * cpplib.h (missing_header_cb): Add a parameter.
2959         (cpp_get_dir): Add.
2960
2961 2004-05-03  Mike Stump  <mrs@apple.com>
2962
2963         * doc/invoke.texi (Directory Options): Document -iquote.
2964         * doc/cpp.texi: Likewise.
2965         * doc/cppopts.texi: Likewise.
2966         * c-opts.c (c_common_missing_argument): Add -iquote processing.
2967         (c_common_handle_option): Likewise.
2968         * c.opt (iquote): Add.
2969         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
2970         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
2971
2972         * c-opts.c (case OPT_I): Deprecate -I- support.
2973         * doc/invoke.texi: Likewise.
2974         * doc/cpp.texi: Likewise.
2975         * doc/cppopts.texi: Likewise.
2976
2977 2004-05-05  Steven Bosscher  <stevenb@suse.de>
2978
2979         * basic-block.h (free_basic_block_vars): Update prototype.
2980         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
2981         argument.
2982         (life_analysis): Update call.
2983         * ifcvt.c (if_convert): Likewise.
2984         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
2985         * passes.c (rest_of_handle_final): Likewise.
2986         (rest_of_compilation): Likewise.
2987         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2988
2989         * emit-rtl.c (next_real_insn): Use INSN_P.
2990         (prev_real_insn): Likewise.
2991
2992 2004-05-05  Eric Christopher  <echristo@redhat.com>
2993
2994         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
2995         representation.
2996
2997 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
2998
2999         * config/rs6000/rs6000.c (build_opaque_vector_type):
3000         New function.
3001         (rs6000_init_builtins): Use it.
3002
3003 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
3004
3005         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
3006         (func_table): Change type from char ** to vms_func_ref.
3007         (write_rtnbeg):  Update to reflect func_table change.  Use
3008         fde->funcdef_number instead of rtnnum in output.
3009         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
3010
3011 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3012             Richard Henderson  <rth@redhat.com>
3013
3014         PR target/14899
3015
3016         * c-common.c (vector_types_convertible_p): New function.
3017         * c-typeck.c (comptypes): Recurse on vector types.
3018         (convert_for_assignment): Use vector_types_convertible_p.
3019         (digest_init): Use vector_types_convertible_p to check
3020         validness of constant vector initializers; otherwise treat
3021         them as scalars.
3022         * tree.c (make_or_reuse_type): New.
3023         (build_common_tree_nodes): Use it.
3024         * cp/call.c (standard_conversion): Likewise.
3025         * cp/typeck.c (comptypes): Recurse on vector types.
3026         (convert_for_assignment): Use vector_types_convertible_p.
3027
3028 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
3029
3030         * config/mips/mips.c (override_options): Default to no
3031         generation of branch-likely operations when tuning for
3032         CPUs where they tend to have a negative performance impact
3033         (e.g., SB-1).
3034
3035 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3036
3037         * expr.c (store_constructor_field): Don't call store_constructor
3038         if bitsize is not a multiple of a byte.
3039
3040 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
3041
3042         * reload1.c (inherit_piecemeal_p): New function.
3043         (emit_reload_insns): When reloading a group of hard registers, use
3044         inherit_piecemeal_p to decide whether the values of individual hard
3045         registers can be inherited.
3046
3047 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3048
3049         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
3050         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
3051         * config/t-linux (LIB2ADDEHDEP): Likewise.
3052
3053 2004-05-04  Paul Brook  <paul@codesourcery.com>
3054
3055         * config/arm/crti.asm: Push an even number of registers.
3056         * config/arm/crtn.asm: And restore them.  Load via sp.
3057
3058 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3059
3060         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
3061         Collect overhead information.
3062         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
3063         parameter and pass it through.
3064         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
3065         MEM_STAT_DECL parameter and pass it through.
3066         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
3067         MEM_STAT_DECL parameter and pass it through.
3068
3069 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3070
3071         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
3072
3073         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
3074
3075         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
3076         rs6000_hard_regno_nregs.
3077
3078 2004-05-03  Eric Christopher  <echristo@redhat.com>
3079
3080         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
3081         prologue insn instead of setting up call.
3082         (s390_emit_epilogue): Ditto.
3083         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
3084         (define_constants): Add numbers for above patterns.
3085
3086 2004-05-03  Eric Christopher  <echristo@redhat.com>
3087
3088         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
3089         * config/s390/s390.c (s390_conditional_register_usage): ...here.
3090         * config/s390/s390-protos.h: Prototype.
3091
3092 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
3093
3094         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
3095         assignment.
3096
3097 2004-05-03  Eric Christopher  <echristo@redhat.com>
3098
3099         * config/mips/mips.md: Fix branch length attribute definition.
3100
3101 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3102
3103         * config.gcc: Remove --enable-altivec support.
3104
3105         * config/rs6000/altivec-defs.h: Remove.
3106
3107 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3108
3109         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
3110         * fixinc/fixincl.x: Regenerate.
3111
3112 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3113
3114         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
3115         definition.
3116         (log?f2, log10?f2, log2?f2): Reimplement expanders with
3117         float_truncate insn.
3118         (*fxtractsf3, *fxtractdf3): Remove insn definition.
3119         (logb?f2): Reimplement expanders with float_truncate insn.
3120
3121 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
3122
3123         PR 14718
3124         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
3125         force_type_die for CONST_DECL.
3126
3127 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3128             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3129
3130         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
3131         tm-dwarf2.h to tm_file.
3132         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
3133         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
3134         (ASM_DEBUG_SPEC): Delete.
3135
3136 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3137
3138         * optabs.h (enum optab_index): Add new OTI_expm1.
3139         (expm1_optab): Define corresponding macro.
3140         * optabs.c (init_optabs): Initialize expm1_optab.
3141         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
3142         patterns.
3143         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
3144         using expm1_optab.
3145         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
3146         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3147
3148         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
3149         to implement expm1, expm1f and expm1l built-ins as inline x87
3150         intrinsics.
3151
3152 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3153
3154         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
3155         * config/frv/frv.md (*return_true, *return_false): New patterns.
3156
3157 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3158
3159         * rtl.h (PHI_NODE_P): Remove.
3160
3161 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
3162
3163         PR middle-end/14988
3164         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
3165         when passed -2 as 'align'.
3166         (put_var_into_stack): Use 'bool' as the type for the three local
3167         predicates.  Adjust calls to put_reg_into_stack.
3168         When passed a CONCAT, instruct put_reg_into_stack to use
3169         a consecutive stack slot for the second part.
3170         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
3171         'consecutive_p' parameter.  Turn the three predicates into 'bool'
3172         parameters.  Retrieve the register mode from 'reg'.
3173         When consecutive_p is true, instruct assign_stack_local_1 to use
3174         BITS_PER_UNIT alignment.
3175         (put_addressof_into_stack): Use 'bool' as the type for the two
3176         local predicates. Adjust call to put_reg_into_stack.
3177
3178 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3179
3180         * fold-const.c (fold_convert_const, fold): Add missing
3181         FIX_ROUND_EXPR case.
3182
3183 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3184
3185         * configure.ac (FLEX, BISON): Only use tools from the build tree
3186         if build equals host.
3187         * configure: Rebuilt.
3188
3189         * config/frv/frv-protos.h (frv_expand_epilogue,
3190         frv_expand_fdpic_call): Add bool argument.
3191         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
3192         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
3193         (frv_expand_epilogue): Use new argument to decide whether to emit
3194         return instruction or copy the return address to LR.
3195         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
3196         sibcalls.
3197         (sibcall_operand): New.
3198         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
3199         PLUS nor LABEL_REF.  Add sibcall_operand.
3200         * config/frv/frv.md (call, call_value): Pass false to
3201         frv_expand_fdpic_call.
3202         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
3203         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
3204         sibcall_value_internal, sibcall_value_fdpicdi): New.
3205         (return_unsigned_true, return_unsigned_false): New.
3206         (epilogue): Adjust call to frv_expand_epilogue.
3207         (sibcall_epilogue): New.
3208
3209         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
3210         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
3211         before redefining them.
3212
3213 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3214
3215         * builtins.c (fold_fixed_mathfn): New function.
3216         (fold_builtin_lround, fold_builtin): Use it.
3217
3218 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
3219
3220         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
3221         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
3222
3223 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3224
3225         * config/cris/cris.h: Revert my "fix comment typos" patch.
3226
3227 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
3228
3229         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
3230
3231 2004-05-01  Falk Hueffner  <falk@debian.org>
3232
3233         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
3234         builtin_insll): Disallow 0 as first input operand.
3235
3236 2004-05-01  Falk Hueffner  <falk@debian.org>
3237
3238         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
3239
3240 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
3241
3242         PR middle-end/15054
3243         * expr.c (expand_expr_real): Do not call preserve_temp_slots
3244         on a TARGET_EXPR temp.
3245         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
3246         TARGET_EXPR temp slots.
3247
3248 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
3249
3250         * simplify-rtx.c (simplify_ternary_operation): When
3251         converting an IF_THEN_ELSE to a relational op, return
3252         correct mode.
3253
3254 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3255
3256         * builtins.c (fold_builtin_round): Fix comment typo.
3257         (fold_builtin_lround): New function.
3258         (fold_builtin): Use it.
3259
3260 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
3261
3262         PR target/11608
3263         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
3264         more like the one in config/dbxelf.h.
3265
3266 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
3267
3268         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
3269         and adjust definition accordingly.
3270         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
3271         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
3272         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
3273         VECTOR_TYPE.
3274
3275 2004-04-30  Jason Merrill  <jason@redhat.com>
3276
3277         PR c++/14587
3278         * config/i386/winnt.c (associated_type): Look for attributes on
3279         the TYPE_MAIN_VARIANT of *this.
3280         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
3281         apply the attributes to the variants.
3282
3283 2004-04-30  Paul Brook  <paul@codesourcery.com>
3284
3285         * config.gcc: Simplify arm --with-{cpu,tune} test.
3286         * config/arm/arm-cores.def: Document whitespace restrictions.
3287
3288 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3289
3290         PR other/1963
3291         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
3292
3293 2004-04-30  Brian Ford  <ford@vss.fsi.com>
3294             DJ Delorie  <dj@redhat.com>
3295
3296         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3297         (DWARF2_DEBUGGING_INFO): Define to enable.
3298         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
3299         DWARF2.
3300         * configure.ac (Target-specific assembler checks)
3301         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
3302         relocs.
3303         * configure: Regenerate.
3304         * config.in: Likewise.
3305
3306         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3307         (ASM_OUPUT_DWARF_OFFSET): Define.
3308
3309 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
3310
3311         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
3312         (s390_emit_call): New function prototype added.
3313         (s390_tls_get_offset): Function removed.
3314         * config/s390/s390.c (s390_function_ok_for_sibcall,
3315         s390_call_saved_register_used_p): New functions.
3316         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
3317         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
3318         (s390_emit_tls_call_insn): New function.
3319         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
3320         emit_call_insn.
3321         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
3322         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
3323         added.
3324         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
3325         register number used to hold the target address for sibcalls.
3326         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
3327         New expanders.
3328         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
3329         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
3330         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
3331         Expanders removed.
3332         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
3333         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
3334         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
3335         ("epilogue"): Changed the call to s390_emit_epilogue to use the
3336         new parameter.
3337
3338 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3339
3340         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
3341         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
3342         reg-stack.c, varasm.c, config/alpha/ev4.md,
3343         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
3344         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
3345         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
3346         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
3347         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
3348         config/ia64/itanium2.md, config/ip2k/ip2k.c,
3349         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
3350         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
3351         comment typos.
3352
3353 2004-04-30  Paul Brook  <paul@codesourcery.com>
3354
3355         * config.gcc: Default ep9312 to hard-float.
3356         * config/arm/arm-cores.def: Add ARCH field.
3357         * config/arm/arm.c (FL_FOR_ARCH*): Define.
3358         (arm_arch_cirrus): New variable.
3359         (all_cores): Set and use arch.
3360         (all_architectures): Ditto.
3361         (arm_arch_name): New variable.
3362         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
3363         Set and use arm_arch_cirrus.
3364         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
3365         (enum processor_type): Update ARM_CORE define.
3366         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
3367         (CPP_SPEC): Remove %(cpp_cpu_arch).
3368         (CPP_ARCH_DEFAULT_SPEC): Remove.
3369         (CPP_CPU_ARCH_SPEC): Remove.
3370         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
3371         (FPUTYPE_DEFAULT): Don't define here.
3372
3373 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
3374
3375         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
3376         updates too.
3377
3378 2004-04-30  Paul Brook  <paul@codesourcery.com>
3379
3380         * arm.c (arm_needs_doubleword_align): Use mode alignment.
3381
3382 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
3383
3384         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
3385         vec_sububs.
3386         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
3387         duplicates.
3388
3389 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3390
3391         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
3392         atan2?f3 expanders.
3393
3394 2004-04-29  Nick Clifton  <nickc@redhat.com>
3395
3396         Bug 14093
3397         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
3398         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
3399         Delete static from definition.
3400         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
3401
3402 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3403
3404         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
3405         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
3406         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
3407         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
3408
3409 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
3410
3411         * commom.opt (Wfatal-errors): Add it.
3412         * diagnostic.c (flag_fatal_errors): Define it.
3413         (diagnostic_action_after_output): Check for flag_fatal_errors.
3414         * flags.h (flag_fatal_errors): Declare it.
3415         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
3416         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
3417
3418 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
3419
3420         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
3421         blocks which have kill flag set.
3422
3423 2004-04-29  Ben Elliston  <bje@au.ibm.com>
3424
3425         * configure.ac (--with-as): Abort if user-supplied assembler
3426         cannot be executed.
3427         (--with-ld): Likewise for the linker.
3428         * configure: Regenerate.
3429
3430 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3431
3432         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
3433         isn't NULL before using it.
3434
3435 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
3436
3437         PR target/15189
3438         * config/mips/mips.md (load_df_low): Use default length.
3439         (load_df_high, store_df_high): Likewise.
3440
3441 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3442
3443         * config/mips/mips.md, config/mips/sb1.md,
3444         config/rs6000/rs6000.c: Fix comment typos.
3445
3446 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3447
3448         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
3449         Fix comment typos.
3450
3451 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
3452
3453         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
3454         (delete_if_ordinary): Use above macro.
3455         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
3456         Update copyright.
3457         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
3458
3459 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
3460
3461         * c-decl.c (get_parm_info): Use the correct tag keywords when
3462         warning about type declarations in prototypes.
3463
3464 2004-04-29  Paul Brook  <paul@codesourcery.com>
3465
3466         * config.gcc: Pull list of cores from arm-cores.def.
3467
3468 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3469
3470         * combine.c (combine_simplify_rtx): Adjust call to use
3471         simplify_relational_operation.  Do not use SELECT_CC_MODE
3472         when a comparison already has a MODE_CC mode.
3473
3474 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3475
3476         (simplify_set): simplify_relational_operation may now
3477         return another relational expression.
3478         * cse.c (fold_rtx): simplify_relational_operation now
3479         takes of computing the comparison mode.
3480         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
3481         remove dead code.
3482         (do_compare_rtx_and_jump): Likewise.
3483         * integrate.c (subst_constants): simplify_relational_operation
3484         may now return another relational expression.
3485         * simplify-rtx.c (simplify_gen_relational): Move most code to
3486         the new simplify_relational_operation and
3487         simplify_relational_operation_1 functions.
3488         (simplify_relational_operation): Rewritten.
3489         (simplify_relational_operation_1): New function.
3490         (simplify_ternary_operation): simplify_relational_operation
3491         may now return another relational expression.
3492         (simplify_rtx): Remove unnecessary temp variable.
3493
3494 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
3495
3496         * reg-stack.c (swap_to_top): New function.
3497         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
3498         swap_to_top().
3499         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
3500         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
3501         UNSPEC_FSCALE_EXP.
3502
3503         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
3504         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
3505         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
3506         x87's fscale insn.
3507         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
3508         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
3509         patterns.
3510
3511 2004-04-28  Serge Belyshev  <1319@bot.ru>
3512
3513         PR 14944
3514         * coverage.c (read_counts_file): Fix usage of warning () call.
3515         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
3516
3517 2004-04-28  Ben Elliston  <bje@au.ibm.com>
3518
3519         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
3520         options with "-" in the option index.
3521         (SPARC Options): Likewise.
3522         (M32R/D Options): Likewise.
3523
3524 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3525
3526         * convert.c (convert_to_integer): Convert (long)round -> lround,
3527         etc.
3528
3529 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
3530
3531         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
3532         Return false if we do not have fp register.
3533         (addrs_ok_for_quad_peep): Rename to ...
3534         (mems_ok_for_quad_peep): this.
3535         Add check for volatile memory.
3536         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
3537         Rename to ...
3538         (mems_ok_for_quad_peep): this.
3539         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
3540         to peephole2's.
3541         (lfq_power2): New instruction.
3542         (stfq_power2): Likewise.
3543
3544 2004-04-28  Jan Hubicka  <jh@suse.cz>
3545
3546         PR c/15004
3547         * function.c (do_warn_unused_parameter): Break out form ...
3548         (expand_function_end): ... here; warn only when not using cgraphunit.
3549         * function.h (do_warn_unused_parameter): Declare.
3550         * cgraphunit.c: Include function.h.
3551         (cgraph_finalize_function): Do unused parameter warning.
3552         * Makefile.in (cgraphunit.o): Depend on function.h
3553
3554 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
3555
3556         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
3557         calling install-info on $(DESTDIR)$(infodir)/dir already being
3558         present.
3559
3560 2004-04-28  Paul Brook  <paul@codesourcery.com>
3561
3562         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
3563
3564 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
3565
3566         * gcse.c (find_moveable_store): Do not accept store insns with
3567         REG_EH_REGION note.
3568
3569 2004-04-28  Paul Brook  <paul@codesourcery.com>
3570
3571         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
3572         * function.c (assign_temp): Ditto.
3573         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
3574
3575 2004-04-28  Paul Brook  <paul@codesourcery.com>
3576
3577         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
3578
3579 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
3580
3581         * var-tracking.c (variable_different_p): Add a parameter
3582         compare_current_location, compare current location of variable parts
3583         if it is true.
3584         (dataflow_set_different_1): Pass compare_current_location == false.
3585         (dataflow_set_different_2): Pass compare_current_location == false.
3586         (emit_notes_for_differences_1): Pass compare_current_location == true.
3587
3588 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
3589
3590         * config/s390/s390.md ("casesi"): Mark jump table access as
3591         non-trapping and unchanging.
3592
3593 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3594
3595         PR debug/14829
3596         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
3597         callers.
3598         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
3599         number for indexing hard_regno_nregs array.
3600
3601 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
3602
3603         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
3604         * config/darwin-crt2.c: Only have contents on __ppc__.
3605
3606 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
3607
3608         * config/xtensa/xtensa.c (call_insn_operand): Check
3609         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
3610         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
3611         * config/xtensa/xtensa.md (call, call_value): Likewise.
3612
3613 2004-04-27  Wu Yongwei  <adah@sh163.net>
3614
3615         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
3616         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
3617         (__gthread_mutex_init_function): Replace CreateMutex with
3618         initialization of custom mutex using CreateSemaphore.
3619         (__gthread_mutex_lock): Use InterlockedIncrement.
3620         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
3621         (__gthread_mutex_unlock): Use InterlockedDecrement and
3622         ReleaseSemaphore to unlock
3623         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
3624         __gthread_mutex_lock, __gthread_mutex_trylock,
3625         __gthread_mutex_unlock): Adjust to match inline versions in
3626         gthr-win32.h.
3627
3628 2004-04-27  Paul Brook  <paul@codesourcery.com>
3629
3630         * config/arm/arm.c (arm_promote_prototypes): New function.
3631         (TARGET_PROMOTE_PROTOTYPES): Use it.
3632
3633 2004-04-27  Paul Brook  <paul@codesourcery.com>
3634
3635         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
3636
3637 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
3638
3639         * config/alpha.c (alpha_end_function): For OpenVMS gas,
3640         correctly output .pdesc directive before .end.
3641
3642 2004-04-26  James E Wilson  <wilson@specifixinc.com>
3643
3644         Bug 14927
3645         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
3646         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
3647
3648 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
3649
3650         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
3651         * config/pa/pa-hpux10.h: Likewise.
3652         * config/pa/pa-hpux11.h: Likewise.
3653
3654 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
3655
3656         * doc/invoke.texi (Overall Options): Document default for -o
3657         for PCH files.
3658
3659 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3660
3661         * builtins.c (expand_builtin_update_setjmp_buf): New function.
3662         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
3663         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
3664
3665 2004-04-26  Paul Brook  <paul@codesourcery.com>
3666
3667         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
3668
3669 2004-04-26  Paul Brook  <paul@codesourcery.com>
3670
3671         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
3672
3673 2004-04-25  Roger Sayle  <roger@eyesopen.com>
3674
3675         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
3676         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
3677         X % -1 as 0.
3678
3679 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
3680
3681         PR bootstrap/15141
3682         * except.c (connect_post_landing_pads): Delete insns after the
3683         barrier when generating a unwind_resume_libfunc call.
3684
3685 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3686
3687         PR/c++ 15119
3688         * tree.c (substitute_placeholder_in_expr, case 4): New case,
3689         for TARGET_EXPR.
3690
3691 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3692
3693         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3694         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
3695         inhibit_libc is defined.
3696
3697 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
3698
3699         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
3700         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
3701         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
3702         (TARGET_SCHED_VARIABLE_ISSUE): Define.
3703         (mips_adjust_cost): Move later in file, next to other sched hooks.
3704         (mips_macc_chains_last_hilo): New variable.
3705         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
3706         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
3707         * config/mips/mips.md (may_clobber_hilo): New attribute.
3708
3709 2004-04-24  Roger Sayle  <roger@eyesopen.com>
3710             Bruce Korb  <bkorb@gnu.org>
3711
3712         * fixinc/inclhack.def (aix_syswait_2): New fix.
3713         * fixinc/fixincl.x: Regenerate.
3714         * fixinc/tests/base/sys/wait.h: Update for new test.
3715
3716 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
3717
3718         PR target/14960
3719         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
3720         to non_fixed_size, and leave out fixed_size from the sum.
3721         (generate_set_vrsave): Correct clobbers.
3722         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
3723         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
3724         (rs6000_libcall_value): Likewise.
3725         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
3726         (FUNCTION_ARG_REGNO_P): Likewise.
3727
3728 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
3729
3730         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
3731         is a CONST_INT.
3732         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
3733         with NARROW_OP1 instead of OP1.
3734
3735 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
3736
3737         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
3738         and __s390x__ hosts.
3739
3740 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3741
3742         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
3743         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
3744         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
3745         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
3746         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
3747         * builtins.c (expand_builtin_fork_or_exec): New.
3748         (expand_builtin): Call it.
3749         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
3750         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
3751         * c-common.c (PID_TYPE): New macro.
3752         (c_common_nodes_and_builtins): Initialize pid_type_node.
3753         * calls.c (special_function_p): Do not handle fork and exec.
3754         (expand_call): Do not handle ECF_FORK_OR_EXEC.
3755         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3756         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
3757         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3758         __gcov_execv, __gcov_execvp, __gcov_execve): New.
3759         * tree.h (enum tree_index): Add TI_PID_TYPE.
3760         (pid_type_node): New macro.
3761         (ECF_FORK_OR_EXEC): Removed.
3762
3763 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
3764
3765         PR optimization/13985
3766         * cfgloopmanip.c (fix_loop_placements): New prototype.
3767         Call fix_bb_placements on the preheader of loops that have
3768         been reparented.
3769         (remove_path): Adjust call to fix_loop_placements.
3770
3771 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
3772
3773         * config/darwin7.h: New file.
3774         * config.gcc (*-*-darwin*): Add darwin7.h if the
3775         version is greater than 6.
3776         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
3777         (MATH_LIBRARY): Wrap in ifdefs.
3778
3779 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
3780
3781         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
3782         loading iWMMXt registers with a frame pointer.  Use post-increment
3783         without a frame pointer.
3784         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
3785
3786 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
3787
3788         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
3789         mode" rather than "-funit-at-a-time" since -O2 enables it
3790         without requiring -f* options.  Refer to -fprofile-generate and
3791         -fprofile-use correctly.  Move -funit-at-a-time among options
3792         enabled by -O.  Add information about unit-at-a-time caveats.
3793
3794 2004-04-22  Per Bothner  <per@bothner.com>
3795
3796         * line-map.h (struct line_maps):  New field highest_line.
3797         (linemap_position_for_column):  Make non-inline function.
3798         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
3799         * line-map.c (linemap_init):  Clear highest_line field.
3800         (linemap_add):  Set highest_line field.
3801         (linemap_line_start):  Minor optimization - use highest_line field.
3802         Reduce maximum column hint to 10000.  Update highest_line field.
3803         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
3804         * cpphash.h (struct cpp_reader):  Remove line field - instead use
3805         line_table->highest_line.
3806         (saved_line):  Remove unused field.
3807         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
3808         Use  line_table's highest_line field instead of cpp_reader's line.
3809         * cpplib.c (start_directive):  Likewise use highest_line field.
3810         (do_line, do_linemarker):  Likewise just use newest map.
3811         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
3812         * cpperror.c (cpp_error):  Likewise use highest_line field.
3813         * cppfiles.c (open_file_failed:  Likewise.
3814         (cpp_make_system_header):  Likewise use newest map and highest_line.
3815         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
3816         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
3817         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
3818         _cpp_lex_direct):  Likewise use highest_line.
3819         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
3820         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
3821         and use newest map.
3822         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
3823         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
3824         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
3825
3826 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
3827
3828         PR bootstrap/14992
3829         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
3830         * config/linux.h (USE_LD_AS_NEEDED): Define.
3831         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
3832         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
3833         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
3834         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
3835         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
3836         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
3837         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
3838
3839 2004-04-22  Per Bothner  <per@bothner.com>
3840
3841         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
3842         Fixes PR preprocessor/15067.
3843
3844 2004-04-23  Andreas Schwab  <schwab@suse.de>
3845
3846         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
3847         avoid aliasing warning.
3848
3849 2004-04-22  Jan Hubicka  <jh@suse.cz>
3850             Mostafa Hagog <mustafa@il.ibm.com>
3851
3852       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
3853       * cfgloopanal.c (expected_loop_iterations): Change the return value
3854
3855 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
3856
3857         * cselib.h (struct elt_loc_list): Remove canon_loc field.
3858         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
3859         (cselib_invalidate_mem): Remove all canon_loc and canon_x
3860         traces.
3861
3862 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
3863
3864         Revert
3865         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
3866
3867                 * var-tracking.c (variable_part_different_p): Variable parts
3868                 differ when the most recent locations differ.
3869
3870 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
3871
3872         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
3873         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
3874         (embedded_pic_offset): Delete.
3875         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
3876         MASK_* constants.
3877         (TARGET_EMBEDDED_PIC): Delete.
3878         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
3879         (ASM_SPEC): Remove -membedded-pic.
3880         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
3881         (ASM_OUTPUT_CASE_LABEL): Likewise.
3882         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
3883         * config/mips/windiss.h (ASM_SPEC): Likewise.
3884         * config/mips/mips.c (struct machine_function): Remove
3885         embedded_pic_fnaddr_rtx.
3886         (TARGET_ENCODE_SECTION_INFO): Remove override.
3887         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
3888         (override_options): Remove -membedded-pic handling.
3889         (print_operand): Remove handling of '%S'.
3890         (mips_select_section: Remove -membedded-pic handling.
3891         (mips_encode_section_info): Delete.
3892         (mips_output_conditional_branch): Remove mention of -membedded-pic.
3893         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
3894         -membedded-pic handling.
3895         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
3896
3897 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
3898
3899         * var-tracking.c (frame_base_decl): Remove useless GTY.
3900
3901 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
3902
3903         * config/rs6000/rs6000.c (rs6000_override_options): Error when
3904         user wants altivec and e500 instructions.
3905
3906 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
3907
3908         PR target/14813
3909         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
3910         in .init_array section to ...
3911         * config/ia64/crtbegin.asm: Here.
3912
3913         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
3914         and hidden if HAVE_INITFINI_ARRAY is defined.
3915
3916 2004-04-21  James E Wilson  <wilson@specifixinc.com>
3917
3918         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
3919         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
3920         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
3921         (fp_register_operand, lo_operand): New.
3922         (mips_rtx_costs): Add TUNE_SB1 support.
3923         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
3924         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
3925         (mips_multipass_dfa_lookahead): New.
3926         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
3927         TUNE_SB1): New.
3928         (TARGET_SWITCHES): Add -mfp-exceptions support.
3929         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
3930         (BRANCH_COST): Fix whitespace.
3931         * config/mips/mips.md: Include sb1.md.
3932         * config/mips/sb1.md: New file.
3933         * doc/invoke.texi: Document -mfp-exceptions.
3934
3935         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
3936         comment.
3937         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
3938         (fixincl.o-warn): Delete.
3939
3940 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
3941
3942         * config/rs6000/rs6000 (print_operand) ['z']:
3943         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
3944
3945 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
3946
3947         * config.gcc: Support --with-arch=iwmmxt for ARM.
3948
3949 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3950
3951         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
3952         in two more places; remove unneeded force_reg
3953
3954 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
3955
3956         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
3957         for TARGET_MACHO.
3958         (print_operand): For TARGET_MACHO check to see if we need a stub
3959         and output one if we need it.
3960
3961         PR debug/15033
3962         * dwarf2out.c (rtl_for_decl_location): Check for NULL
3963         rtl.
3964
3965 2004-04-20  James E Wilson  <wilson@specifixinc.com>
3966
3967         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
3968         (vall_value_gp): Likewise.
3969
3970 2004-04-20  DJ Delorie  <dj@redhat.com>
3971
3972         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
3973         variables stored in word registers, then in memory.
3974
3975 2004-04-20  Eric Christopher  <echristo@redhat.com>
3976
3977         * cp/parser.c (cp_parser_declaration): Move translate
3978         up before tokens are lexed.
3979
3980 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
3981
3982         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
3983         (asin_optab, acos_optab): Define corresponding macros.
3984         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
3985         * genopinit.c (optabs): Implement asin_optab and acos_optab
3986         using asin?f2 and acos?f2 patterns.
3987         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
3988         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
3989         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
3990         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3991
3992         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
3993         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
3994         acos, acosf and acosl built-ins as inline x87 intrinsics.
3995
3996 2004-04-20  Paul Brook  <paul@codesourcery.com>
3997
3998         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
3999
4000 2004-04-20  Paul Brook  <paul@codesourcery.com>
4001
4002         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
4003
4004 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
4005
4006         Revert part of 2004-04-17 change that moved -frename-registers
4007         to -O1.  -frename-registers is buggy.
4008
4009         * toplev.c (flag_rename_registers): Initialize to 0.
4010         * doc/invoke.texi (Optimize options): Move -frename-registers
4011         to "Not triggered by any -O level" section.  Adjust commentary
4012         accordingly.
4013
4014 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
4015
4016         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
4017
4018 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
4019
4020         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
4021         for mflo and mfhi instructions.
4022         (mips_output_move): Remove mflo and mfhi handling.
4023         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
4024         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
4025         Likewise various define_peephole2s.
4026         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
4027         alternatives.
4028         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
4029         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
4030         (mfhilo_di, mfhilo_si): New patterns.
4031
4032 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4033
4034         * function.c (assign_parms): Force
4035         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
4036
4037 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4038
4039         * var-tracking.c (variable_part_different_p): Variable parts differ
4040         when the most recent locations differ.
4041
4042 2004-04-19  James E Wilson  <wilson@specifixinc.com>
4043
4044         * rtl.h (reg_set_last): Delete declaration.
4045         * rtlanal.c (reg_set_last): Delete.
4046
4047 2004-04-19  Roger Sayle  <roger@eyesopen.com>
4048
4049         * fold-const.c (fold_convert): Make function extern/public.
4050         * tree.h (fold_convert): Prototype here.
4051         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4052         expand_builtin_strrchr, expand_builtin_strpbrk,
4053         expand_builtin_mempcpy, expand_builtin_bcopy,
4054         expand_builtin_bzero, expand_builtin_memcmp,
4055         expand_builtin_strcmp, expand_builtin_strncmp,
4056         stabilize_va_list, expand_builtin_sprintf,
4057         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
4058         fold_builtin_exponent, fold_builtin_mempcpy,
4059         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
4060         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
4061         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
4062
4063 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
4064
4065         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
4066         (move_from_CR_gt_bit): New.
4067         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
4068         E500.
4069         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
4070         E500.
4071
4072         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
4073         (tstsfeq_gpr): Same.
4074         (cmpsfgt_gpr): Same.
4075         (tstsfgt_gpr): Same.
4076         (cmpsflt_gpr): Same.
4077         (tstsflt_gpr): Same.
4078         (e500_cceq_ior_compare): New.
4079         (e500_flip_gt_bit): New.
4080
4081         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
4082         (print_operand): Add 'c' and 'D'.
4083         (rs6000_generate_compare): Rewrite to generate correct rtl.
4084         (rs6000_emit_sCOND): Handle E500.
4085         (output_cbranch): Adjust for changes in rs6000_generate_compare.
4086         (output_e500_flip_gt_bit): New.
4087
4088         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
4089         Protoize.
4090
4091 2004-04-19  Eric Christopher  <echristo@redhat.com>
4092
4093         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
4094
4095 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
4096
4097         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
4098         fix information.
4099
4100 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4101
4102         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
4103         download URL.
4104
4105 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
4106
4107         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
4108         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
4109
4110 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
4111
4112         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
4113         (fold_builtin): Update caller to match.
4114
4115         PR bootstrap/15009
4116         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
4117
4118         PR bootstrap/14999
4119         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
4120
4121 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4122
4123         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
4124
4125         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
4126         (expand_mult_highpart_optab): Likewise.
4127         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
4128
4129 2004-04-19  Paul Brook  <paul@codesourcery.com>
4130
4131         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
4132         floatunssisf2, floatunssidf2): New patterns.
4133
4134 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
4135
4136         PR other/14918
4137         * doc/invoke.texi (-fprofile-generate): Document requirement to
4138         use -fprofile-generate when linking.
4139
4140         * doc/extend.texi (Strong Using): Warn users against using this
4141         feature.
4142
4143 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
4144
4145         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
4146         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
4147         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
4148         * config/mips/mips.c (struct mips16_constant): Renamed from struct
4149         constant.  Propogate change throughout file.
4150         (struct machine_function): Remove insns_len.
4151         (mips_string_length, mips16_strings, string_constants): Delete.
4152         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
4153         when generating mips16 code.  Remove special mips16 treatment of
4154         string constants.
4155         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
4156         to have the form LABEL+CONSTANT.
4157         (mips_symbolic_address_p): Fix comment.
4158         (m16_usym8_4, m16_usym5_4): Delete.
4159         (mips_output_function_epilogue): Remove mips16 string handling.
4160         (mips_output_mi_thunk): Call mips16_lay_out_constants.
4161         (mips_select_section, mips_encode_section_info): Remove mips16
4162         string handling.
4163         (struct mips16_constant_pool): New.
4164         (add_constant): Take a mips16_constant_pool structure.  Keep pool
4165         sorted into order of ascending mode size.  Keep track of the highest
4166         possible start address, taking padding and the masking of the base PC
4167         value into account.
4168         (dump_constants_1): New function, split out from dump_constants.
4169         Handle vector constants.  Use gen_consttable_{int,float} rather than
4170         separate functions for each mode.
4171         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
4172         rather than separate functions for each alignment.
4173         (mips_find_symbol): Delete.
4174         (mips16_insn_length): New function, split out from
4175         mips16_lay_out_constants.
4176         (mips16_rewrite_pool_refs): New function.
4177         (mips16_lay_out_constants): Rework. Remove string handling.
4178         Always create an inline constant pool.
4179         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
4180         (UNSPEC_ALIGN): New constants.
4181         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
4182         (UNSPEC_ALIGN_[248]): Delete.
4183         (consttable_int, consttable_float, align): New patterns.
4184         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
4185
4186 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
4187
4188         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
4189         __unn_args_eq.
4190
4191 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
4192
4193         PR target/14715
4194         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
4195         with STARTING_FRAME_OFFSET.
4196
4197 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4198
4199         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
4200         * config/mips/mips.c (macc_msac_operand): New function.
4201         * config/mips/mips.md (*msac): Move after *macc.
4202         (*msac2): New.  Generalize macc-related peepholes so that they apply
4203         to msac too.
4204
4205 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
4206
4207         * opts.c (decode_options): Do not enable flag_rename_registers
4208         and flag_web at -O3.
4209         * toplev.c (flag_rename_registers): Initialize
4210         flag_rename_registers and flag_web to
4211         AUTODETECT_FLAG_VAR_TRACKING.
4212         (default_debug_hooks): New global.
4213         (process_options): Initialize default_debug_hooks.  Warn if
4214         -fvar-tracking specified but not supported by the current
4215         debug format.  Do not run var tracking at -O0 or if not
4216         supported by the current debug format, even if
4217         -fvar-tracking was given.  If -fno-rename-registers
4218         is not specified, always run register renaming if var
4219         tracking is supported by the default debugging information
4220         format for the target, and we are at -O1 or higher; similarly
4221         for -fweb, but only at -O2 or higher.
4222         * doc/invoke.texi (Optimize Options): Document this.
4223
4224 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4225
4226         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
4227         * configure: Regenerate.
4228
4229 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4230
4231         * gcc.c (used_arg): Check whether an option has been removed.
4232
4233 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4234
4235         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
4236         debugging on Solaris 7 and up.
4237
4238 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4239
4240         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
4241         IRIX 5 port.
4242         Remove -save-temps workaround, handled automatically.
4243         Require GNU binutils 2.15 for debugging.
4244         Remove SGI make warnings since GNU make is now required.
4245         (Specific, mips-sgi-irix6): Some markup fixes.
4246         Describe MIPSpro C problems and workarounds.
4247         Mention working O32 ABI support.
4248         Recommend GNU as 2.15 for O32 with debugging.
4249         Remove description of fixed structure pass/return bug.
4250
4251 2004-04-16  DJ Delorie  <dj@redhat.com>
4252
4253         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
4254         TYPE_FIELDS.
4255         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
4256
4257 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4258
4259         * pa.md: Remove unnecessary declarations for asm_out_file.
4260
4261         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
4262         SAR register.  Fix comment.
4263         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
4264         (%cr11).
4265
4266         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
4267
4268 2004-04-16  Nick Clifton  <nickc@redhat.com>
4269
4270         * config/arm/arm.c (arm_override_options): Revert previous patch.
4271         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
4272         be safely built.
4273
4274 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
4275
4276         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
4277         bug.
4278         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
4279         TARGET_DEFAULT): Changed. Ditto.
4280         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
4281         TARGET_ENDIAN_DEFAULT): Added. Ditto.
4282         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
4283         (TARGET_ENDIAN_DEFAULT): Added.
4284
4285 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4286
4287         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
4288         ATTR_CONST_NOTHROW_LIST.
4289
4290 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4291
4292         PR/middle-end 14915
4293         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
4294         BITS_BIG_ENDIAN.
4295
4296 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4297
4298         * ra-debug.c (ra_print_rtx): Add break's to case legs.
4299
4300 2004-04-14  James E Wilson  <wilson@specifixinc.com>
4301
4302         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
4303
4304 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
4305
4306         * libada-mk.in: New file.
4307         * configure.ac: Create libada-mk from libada-mk.in.
4308         * configure: Regenerate.
4309
4310 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
4311
4312         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
4313         (logb_optab, ilogb_optab): Define corresponding macros.
4314         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
4315         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
4316         using logb?f2 and ilogb?i2 patterns.
4317         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
4318         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
4319         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
4320         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4321
4322         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
4323         and UNSPEC_XTRACT_EXP.
4324
4325         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
4326         patterns to implement fxtract x87 instruction.
4327         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
4328         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
4329         intrinsics.
4330         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
4331         x87's fxtract insn.
4332
4333 2004-04-14  Eric Christopher  <echristo@redhat.com>
4334
4335         * config/mips/t-elf: Enable multilibs by default.
4336
4337 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
4338
4339         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
4340         previous fix to check HAVE_return at runtime too.
4341
4342 2004-04-14  Nick Clifton  <nickc@redhat.com>
4343
4344         * config/arm/arm.c (arm_override_options): If the user has not
4345         specified an ABI, then default to AAPCS for the iWMMXt processor.
4346         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
4347         * config/arm/t-xscale-coff: Likewise.
4348
4349 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4350
4351         * builtins.c (fold_builtin_isdigit): New.
4352         (fold_builtin): Handle BUILT_IN_ISDIGIT.
4353         * defaults.h: Add TARGET_DIGIT0 and sort.
4354         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
4355
4356 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4357
4358         * builtins.c (fold_builtin_cabs, fold_builtin): Use
4359         `mathfn_built_in' to determine the new builtin.
4360         * fold-const.c (fold): Likewise.
4361
4362 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
4363
4364         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
4365         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
4366         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
4367         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
4368         (ASM_SPEC): Update accordingly.
4369         * config/mips/mips.c: Update after above renaming.
4370         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
4371         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
4372
4373 2004-04-13  James E Wilson  <wilson@specifixinc.com>
4374
4375         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
4376         increment errorcount and return false instead of true.
4377
4378 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
4379
4380         * optabs.c (expand_twoval_unop): Reorder function arguments.
4381         * builtins.c (expand_builtin_mathfn_3): Update calls to
4382         expand_twoval_unop.
4383
4384         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
4385         and UNSPEC_TAN_TAN. Add missing comment.
4386
4387         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
4388         patterns to implement fptan x87 instruction.
4389         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
4390         and tanl built-ins as inline x87 intrinsics. Define corresponding
4391         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
4392         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
4393         x87's fptan insn.
4394
4395 2004-03-13  Richard Henderson  <rth@redhat.com>
4396
4397         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
4398         for LABEL_REFs.
4399
4400         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
4401         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
4402         * doc/invoke.texi: Update to match.
4403
4404         * varasm.c (unlikely_text_section): Use assemble_align instead of
4405         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
4406         correct alignment argument.
4407
4408 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
4409
4410         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
4411         after setting reg_last_reload_reg for optional output reloads.
4412
4413 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
4414
4415         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
4416         Definition of these two macros are corrected by adding
4417         matchine right paren.
4418
4419 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
4420
4421         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
4422
4423 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4424
4425         * config/i386/i386.c (output_387_reg_move): New function.
4426         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
4427         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
4428         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
4429         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
4430         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
4431
4432 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4433
4434         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
4435         TYPE_DECL.
4436         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
4437         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
4438         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
4439         Use skip_simple_arithmetic to find SAVE_EXPR.
4440         (force_type_save_exprs, force_type_save_exprs_1): New functions.
4441         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
4442         Properly chain multiple pointers.
4443         (copy_tree_r): Copy a TYPE_DECL.
4444         * tree.c (variably_modified_type_p): Add some missing tests and
4445         make some other minor changes.
4446         * tree.h (force_type_save_exprs): New declaration.
4447
4448 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4449
4450         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
4451         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
4452         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
4453         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
4454         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
4455         x%-1 into 0 (or x&0 if x has side-effects).
4456
4457 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4458
4459         * config/rs6000/rs6000.md: Document why a pattern is not
4460         available.
4461
4462         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
4463         of floats on the E500.
4464         (branch_positive_comparison_operator): Do not allow NE even on the
4465         E500.
4466
4467 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4468
4469         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
4470         in_text_unlikely_section to in_unlikely_text_section.
4471
4472 2004-04-11  Roger Sayle  <roger@eyesopen.com>
4473
4474         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
4475         calling convention to allow a NULL_TREE to be returned.  Factor
4476         sanity checks from callers, return NULL_TREE when appropriate.
4477         (fold): Handle COMPOUND_EXPR operands of binary expressions
4478         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
4479         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
4480         calls to fold_binary_op_with_conditional_arg.
4481
4482 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4483
4484         * config/mips/iris5.h (current_section_flags):  Add
4485         in_unlikely_executed_text and default case.
4486
4487 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
4488
4489         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
4490         failure on solaris. Place ifdef HAVE_return around gen_ret call.
4491         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
4492         HAVE_return and place it around the place where it is needed.
4493
4494 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
4495
4496         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
4497         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
4498         and NORMAL_TEXT_SECTION_NAME.
4499         (unlikely_text_section): Check targetm.have_named_sections
4500         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
4501         instead of SECTION_FORMAT_STRING.
4502         * config/mips/iris5.h (current_section_name): Add
4503         in_unlikely_executed_text case and move the abort into the switch.
4504         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
4505         (NORMAL_TEXT_SECTION_NAME): Remove.
4506         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
4507         (SECTION_FORMAT_STRING): Remove.
4508         * defaults.h (SECTION_FORMAT_STRING): Remove.
4509         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
4510         (SECTION_FORMAT_STRING): Remove.
4511
4512 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
4513
4514         * c-typeck.c (common_type): Prefer long long to long when same
4515         precision.
4516
4517 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
4518
4519         PR 14887
4520         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
4521         mode argument.
4522         * config/ia64/ia64.c (ia64_hpux_file_end): Check
4523         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
4524
4525 2004-04-09  Roger Sayle  <roger@eyesopen.com>
4526
4527         * simplify-rtx.c (mode_signbit_p): New function to check whether
4528         an RTX is an immediate constant that represents the most significant
4529         bit of a given machine mode.
4530         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
4531         C is the sign bit.
4532         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
4533         when C2 is the sign bit.
4534         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
4535         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
4536         sign bit.
4537
4538 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4539
4540         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
4541         TYPE_MODE.
4542
4543 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
4544
4545         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
4546         of TREE_READONLY for types.
4547
4548 2004-04-09  Caroline Tice  <ctice@apple.com>
4549
4550         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
4551         (struct basic_block_def):  Add new field, partition.
4552         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
4553         definitions.
4554         (partition_hot_cold_basic_blocks): Add extern function
4555         declaration.
4556         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
4557         include statements.
4558         (N_ROUNDS): Increase the maximum number of rounds by 1.
4559         (branch_threshold): Add array value for new round.
4560         (exec_threshold): Add array value for new round.
4561         (push_to_next_round_p): New function.
4562         (add_unlikely_executed_notes): New function.
4563         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
4564         (mark_bb_for_unlikely_executed_section): New function.
4565         (add_labels_and_missing_jumps): New function.
4566         (add_reg_crossing_jump_notes): New function.
4567         (fix_up_fall_thru_edges): New function.
4568         (find_jump_block): New function.
4569         (fix_crossing_conditional_branches): New function.
4570         (fix_crossing_unconditional_branches): New function.
4571         (fix_edges_for_rarely_executed_code): New function.
4572         (partition_hot_cold_basic_blocks): New function.
4573         (find_traces):  Add an extra round for partitioning hot/cold
4574         basic blocks.
4575         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
4576         and only cold blocks, into the last (extra) round of collecting traces.
4577         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
4578         over crossing edges.
4579         (bb_to_key):  Add code to correctly identify cold blocks when
4580         doing partitioning.
4581         (connect_traces): Modify to connect all the non-cold traces first, then
4582         go back and connect up all the cold traces.
4583         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
4584         * cfg.c (entry_exit_blocks): Add initialization for partition field in
4585         entry and exit blocks.
4586         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
4587         if we are doing hot/cold partitioning.
4588         * cfgcleanup.c (cfglayout.h): Add new include statement.
4589         (try_simplify_condjump): Modify to not attempt on blocks with jumps
4590         that cross section boundaries.
4591         (try_forward_edges): Likewise.
4592         (merge_blocks_move_predecessor_nojumps): Likewise.
4593         (merge_blocks_move_successor_nojumps): Likewise.
4594         (merge_blocks_move): Likewise.
4595         (try_crossjump_to_edge): Modify to not attempt after we have done
4596         the block partitioning.
4597         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
4598         cross section boundaries.
4599         (try_optimize_cfg): Likewise.
4600         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
4601         jumps that cross section boundaries.
4602         * cfglayout.c (flags.h): Add new include statement.
4603         (update_unlikely_executed_notes):  New function.
4604         (fixup_reorder_chain):  Add code so when a new jumping basic block is
4605         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
4606         updated appropriately.
4607         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
4608         introduced by this optimization.
4609         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
4610         extern function declaration.
4611         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
4612         list of notes that can be deleted.
4613         (create_basic_block_structure):  Add initialization for partition field.
4614         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
4615         section boundaries.
4616         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
4617         cross section boundaries.
4618         (commit_one_edge_insertion): Add code so newly created basic block
4619         ends up in correct (hot or cold) section.  Modify to disallow
4620         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
4621         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
4622         crosses section boundaries.
4623         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
4624         cross section boundaries.
4625         (force_nonfallthru_and_redirect): Modify to make sure new basic block
4626         ends up in correct section, with correct notes attached.
4627         * common.opt (freorder-blocks-and-partition):  Add new flag for this
4628         optimization.
4629         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
4630         the end of functions are written into the correct (hot or cold)
4631         section.
4632         (dbx_source_file): Add code so writing debug file information
4633         doesn't incorrectly change sections.
4634         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
4635         in partitioning hot/cold basic blocks into separate sections.
4636         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
4637         section partitioning.
4638         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
4639         conditional branches can span all of memory.
4640         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
4641         unconditional branches can span all of memory.
4642         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
4643         (final_scan_insn):  Add code to check for NOTE instruction indicating
4644         whether basic block belongs in hot or cold section, and to make sure
4645         the current basic block is being written to the appropriate section.
4646         Also added code to ensure that jump table basic blocks end up in the
4647         correct section.
4648         * flags.h (flag_reorder_blocks_and_partition):  New flag.
4649         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
4650         one of the branches has a jump that crosses between sections.
4651         (find_if_case_2): Likewise.
4652         (ifcvt): Modify to not attempt to mark loop exit edges after
4653         hot/cold partitioning has occurred.
4654         * opts.c (decode_options): Code to handle new flag,
4655         flag_reorder_blocks_and_partition; also to turn it off if
4656         flag_exceptions is on.
4657         (common_handle_option): Code to handle new flag,
4658         flag_reorder_blocks_and_partition.
4659         * output.h (unlikely_text_section): New extern function declaration.
4660         (in_unlikely_text_section): New extern function declaration.
4661         * passes.c (rest_of_handle_stack_regs):  Add
4662         flag_reorder_blocks_and_partition as an 'or' condition for calling
4663         reorder_basic_blocks.
4664         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
4665         as an 'or' condition for calling reorder_basic_blocks.
4666         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
4667         * print-rtl.c (print_rtx): Add code for handling new note,
4668         NOTE_INSN_UNLIKELY_EXECUTED_CODE
4669         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
4670         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
4671         cross between section boundaries.
4672         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
4673         indicating the basic block containing it belongs in the cold section.
4674         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
4675         between hot and cold sections.
4676         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
4677         initialize this flag, and to tie it to the command-line option
4678         freorder-blocks-and-partition.
4679         * varasm.c (cfglayout.h):  Add new include statement.
4680         (unlikely_section_label_printed):  New global variable, used for
4681         determining when to output section name labels for cold sections.
4682         (in_section):  Add in_unlikely_executed_text to enum data structure.
4683         (text_section):  Modify code to use SECTION_FORMAT_STRING and
4684         NORMAL_TEXT_SECTION_NAME macros.
4685         (unlikely_text_section):  New function.
4686         (in_unlikely_text_section):  New function.
4687         (function_section):  Add code to make sure beginning of function is
4688         written into correct section (hot or cold).
4689         (assemble_start_function):  Add code to make sure stuff is written to
4690         the correct section.
4691         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
4692         to an if statement that was checking 'in_text_section'.
4693         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
4694         condition to an if statement that was checking 'in_text_section'.
4695         (default_section_type_flags_1):  Add check: if in cold section
4696         flags = SECTION_CODE.
4697         * config/darwin.c (darwin_asm_named_section):  Modify to use
4698         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
4699         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
4700         specifically for the i386.
4701         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
4702         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
4703         text string to something more informative.
4704         (NORMAL_TEXT_SECTION_NAME): Add new definition.
4705         (SECTION_FORMAT_STRING):  Add new definition.
4706         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
4707         '!in_unlikely_text_section' as an 'and' condition to an if statement
4708         that was already checking '!in_text_section'.
4709         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
4710         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
4711         sure these are properly defined for linux on ppc.
4712         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
4713         for this new flag.
4714         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
4715         reg_note.
4716         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
4717         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
4718         these new macros.
4719
4720 2004-04-08  Roger Sayle  <roger@eyesopen.com>
4721
4722         * function.c (gen_mem_addressof): When changing the RTX from a REG
4723         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
4724
4725 2004-04-08  Roger Sayle  <roger@eyesopen.com>
4726
4727         PR target/14888
4728         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
4729         truncxfdf2_noop): Provide dummy "fmov" implementations.
4730
4731 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
4732
4733         * gcc.c (default_compilers): Add missing initializers.
4734
4735         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
4736         Return 1 if file was successfully mapped.
4737
4738 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
4739
4740         PR pch/13419
4741         PR pch/14137
4742         Radar #: 3315288
4743         * doc/invoke.texi (Precompiled Headers): Suggest -o
4744         to put an output file in a particular place.  Be more detailed
4745         about which options affect PCH validity and which options
4746         might not work.
4747         * c-pch.c (pch_matching): New.
4748         (MATCH_SIZE): New.
4749         (struct c_pch_validity): New field 'match'.
4750         (pch_init): Handle pch_matching.
4751         (c_common_valid_pch): Check pch_matching.
4752
4753         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
4754
4755 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
4756
4757         * doc/invoke.texi (Precompiled Headers): Warn about known
4758         problems.
4759
4760 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
4761
4762         PR c++/14808
4763         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
4764         to 1 if ASM_OUTPUT_DEF is defined.
4765         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
4766         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
4767         Set to non-zero iff not a one_only decl.
4768
4769 2004-04-08  Paul Brook  <paul@codesourcery.com>
4770
4771         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
4772
4773 2004-04-08  Paul Brook  <paul@codesourcery.com>
4774
4775         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
4776         PROMOTE_FOR_CALL_ONLY.
4777         * config/arm/arm-protos.h (arm_function_value): Declare.
4778         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
4779         (TARGET_PROMOTE_PROTOTYPES): Return false.
4780         (arm_function_value): New function.
4781         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
4782         (FUNCTION_VALUE): Call arm_function_value.
4783         * config/cris/cris.h (PROMOTE_MODE): Rename ...
4784         (PROMOTE_FUNCTION_MODE): ... to this.
4785         (PROMOTE_FOR_CALL_ONLY): Remove.
4786         * config/mmix/mmix.h: Likewise.
4787         * config/s390/s390.h: Likewise.
4788         * config/sparc/sparc.h: Likewise.
4789         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
4790         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
4791         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
4792         (PROMOTE_FOR_CALL_ONLY): Remove.
4793
4794 2004-04-08  Joel Sherrill <joel@oarcorp.com>
4795
4796         PR ada/14538
4797         * ada/5rosinte.adb: Remove fake mprotect() body.
4798         * ada/5rosinte.ads: Add SA_SIGINFO.
4799         * ada/5rtpopsp.adb: Rewrite to use new interface.
4800         * ada/init.c: Reorder so the simple single OS conditional __rtems__
4801         is tested before more complex ones which mix UNIX and embedded
4802         systems in the conditional.
4803
4804 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
4805
4806         PR ada/14665
4807         * ada/osint.adb (Find_Program_Name): Rework to properly handle
4808         filenames which end in .exe or have versioning suffixes like VMS.
4809
4810 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
4811
4812         PR target/10129
4813         * config/darwin.c (darwin_encode_section_info): When the decl has
4814         a DECL_INITIAL, it is only defined also when it is not a common.
4815
4816 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4817
4818         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
4819         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
4820
4821 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
4822
4823         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
4824         global register variables.
4825
4826 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
4827
4828         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
4829         rpc_xdr_lvalue_cast_b): New fixes.
4830         * fixinc/fixincl.x: Regenerate.
4831         * fixinc/tests/base/rpc/xdr.h: Add new tests.
4832
4833 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
4834
4835         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
4836         to power4 and power5 entries.
4837
4838 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
4839
4840         * c-common.h (pending_lang_change): Mark for PCH.
4841
4842 2004-04-07  Caroline Tice  <ctice@apple.com>
4843
4844         * gcc.c (main): Move 'break' in main loops (on an error)
4845         to wait until error processing has occurred.
4846
4847 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
4848
4849         * config.gcc: Stop changing enable_threads midstream.
4850         Replace uses of enable_threads_flag with enable_threads.
4851         * configure.ac: Replace uses of enable_threads_flag with
4852         enable_threads.  Improve autoconf quotation in one place.
4853         * configure: Regenerate.
4854
4855 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
4856
4857         * builtins.c: Implement support for sincos function.
4858         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
4859         BUILT_IN_COS{,F,L}.
4860         (expand_builtin_mathfn_3): New function.
4861         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
4862         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
4863         flag_unsafe_math_optimization is set.
4864
4865         * optabs.h (enum optab_index): Add new OTI_sincos.
4866         (sincos_optab): Define corresponding macro.
4867
4868         * optabs.c (init_optabs): Initialize sincos_optab.
4869         (expand_twoval_unop): New function.
4870
4871         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
4872         patterns.
4873
4874         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
4875         and UNSPEC_SINCOS_SIN.
4876
4877         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
4878         sincosxf3): New patterns to implement sincos, sincosf and sincosl
4879         built-ins as inline x87 intrinsics. Define splits for
4880         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
4881         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
4882         sincos patterns.
4883         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
4884         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
4885
4886         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
4887         x87's fsincos insn.
4888
4889 2004-04-06  Devang Patel  <dpatel@apple.com>
4890
4891         PR 14467
4892         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
4893
4894 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4895
4896         * doc/install.texi: Update HP-UX 11 installation procedure.
4897
4898 2004-04-06  Paul Brook  <paul@codesourcery.com>
4899
4900         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
4901
4902 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
4903
4904         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
4905         when the TLS address is generated by a function call.
4906         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
4907         (tls_local_dynamic): Likewise.
4908
4909 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
4910
4911         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
4912         and TYPE_VOLATILE.
4913
4914 2004-04-05  Caroline Tice  <ctice@apple.com>
4915
4916         * gcc.c (combine_flag): New global variable, for new driver option.
4917         (struct compiler): Add two new fields, to be used when
4918         combining multiple input files in a single pass (IMA).
4919         (default_compilers):  Add values for the new fields to all
4920         compiler entries. Modify the "@c" compiler entry for doing IMA
4921         properly with "-save-temps" and the "combine" flag.
4922         (option_map):  Add new driver option, "--combine", to tell driver
4923         to pass multiple input files to compiler at one time.
4924         (have_o_argbuf_index): New global variable.
4925         (store_arg): Modify to assign value to have_o_argbuf_index.
4926         (struct infile):  Add three new fields, to help with IMA.
4927         (display_help): Add help for new "combine" option.
4928         (process_command): Remove local variable have_o; add code to check
4929         for new "combine" option; remove assignment to combine_inputs.
4930         (do_spec_1):  Modify to deal with IMA better.
4931         (main): Make variable 'lang_n_infiles' local to entire function
4932         rather than to a single block.  Use flag combine_flag to
4933         determine whether to do IMA or not; Modify loop initializing
4934         infiles to deal properly with linker files.
4935         Add code for doing preprocessing in presence of
4936         IMA with "-save-temps" flag.  Modify "main" loop to handle
4937         multiple input files, in multiple languages, with or without
4938         preprocessing,  gracefully.
4939         * toplev.c (set_src_pwd): Modify to not complain if attempting to
4940         re-set it to same directory it's previously been set to (avoid
4941         irritating, meaningless warning messages when doing IMA with
4942         save-temps).
4943         * doc/invoke.texi: Add "-combine" to list of Overall Options;
4944         remove documentation about IMA that is no longer accurate; Add
4945         documentation explaining what "-combine" does.
4946         * ada/lang-specs.h: Add initialization values for new fields in
4947         "struct compiler".
4948         * cp/lang-specs.h: Likewise.
4949         * f/lang-specs.h: Likewise.
4950         * java/lang-specs.h: Likewise.
4951         * objc/lang-specs.h: Likewise.
4952         * treelang/lang-specs.h: Likewise.
4953
4954 2004-04-05  David Edelsohn
4955
4956         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
4957         symbol handling.
4958
4959 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
4960             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4961
4962         PR optimization/13424 (hppa), bootstrap/14462, c/14828
4963         * pa.md: Use replace_equiv_address to retain the attributes of the
4964         memory operands used in the split and peephole2 patterns for optimizing
4965         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
4966
4967 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4968
4969         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
4970         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
4971         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
4972         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
4973         PARM_DECL.
4974         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
4975         for a type.
4976         * print-tree.c (print_node): Properly handle side-effects, readonly,
4977         and constant flags.
4978         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
4979         and TREE_CONSTANT if not a type.
4980         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
4981         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
4982         (NON_TYPE_CHECK): New macro.
4983         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
4984
4985 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
4986
4987         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
4988         to DWARF2_DEBUG unconditionally.
4989         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
4990
4991 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
4992             Nathanael Nerode  <neroden@gcc.gnu.org>
4993
4994         PR target/14548
4995         * config.host: Set the shell variable host_can_use_collect2.
4996         Set it to yes by default, and to no for alpha*-dec-*vms*,
4997         i[34567]86-*-mingw32*, and powerpc-*-beos*.
4998         * configure.ac: Set and substitute the shell variable collect2.
4999         Give an error if use_collect2 is yes and host_can_use_collect2 is
5000         no.
5001         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
5002         uses.  Initialize to @collect2@.
5003         (STAGESTUFF): Remove $(USE_COLLECT2).
5004         * config/alpha/x-vms (USE_COLLECT2): Don't set.
5005         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
5006         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
5007         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
5008         * configure: Regenerate.
5009
5010 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5011
5012         * simplify-rtx.c (simplify_binary_operation): Constant fold
5013         DIV, MOD, UDIV and UMOD using div_and_round_double.
5014
5015 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5016
5017         PR c++/14804
5018         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
5019         RECORD_TYPEs.
5020
5021 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5022
5023         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
5024         documentation.
5025
5026 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5027
5028         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
5029         updating the REG_EQUAL note on an insn's libcall_insn.
5030
5031 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5032
5033         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
5034
5035 2004-04-03  Roger Sayle  <roger@eyesopen.com>
5036
5037         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
5038         with reorder_operands_p.
5039
5040 2004-04-03  Jan Hubicka  <jh@suse.cz>
5041
5042         * md.texi (vec_set, vec_extract, vec_init): Document.
5043
5044 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
5045
5046        * opts.c (decode_options): Do function inlining with very small
5047        max-inline-insns-* parameters when optimizing for size.
5048
5049 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
5050
5051         * config/i386/i386.h (TARGET_NOCONA): New macro.
5052         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
5053         (processor_type): Add PROCESSOR_NOCONA.
5054
5055         * config/i386/i386.md (cpu): Add nocona to the attribute values.
5056
5057         * config/i386/i386.c (nocona_cost): New variable.
5058         (m_NOCONA): New macro.
5059         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
5060         x86_branch_hints, x86_use_sahf, x86_single_stringop,
5061         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
5062         x86_integer_DFmode_moves, x86_partial_reg_dependency,
5063         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
5064         x86_decompose_lea, x86_arch_always_fancy_math_387,
5065         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
5066         x86_ext_80387_constants, x86_four_jump_limit):
5067         (override_options): Add nocona_cost to processor_target_table.
5068         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
5069         (incdec_operand): Prevent inc/dec generation for Nocona too.
5070         (ix86_issue_rate): Add PROCESSOR_NOCONA.
5071
5072 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
5073
5074         * rtlanal.c (find_reg_note): Manually
5075         unswitch the loop.
5076
5077 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
5078
5079         * genemit.c (gen_split): Change prototype of generated code.
5080         * genrecog.c (write_action): Adjust prototype for and calls to
5081         gen_split_*.
5082         * gensupport.c (struct queue_elem): Add split field.
5083         (queue_pattern): Return a value.  Clear the split field.
5084         (process_rtx): Maintain an association between an insn and the
5085         split generated from it for a define_insn_and_split.
5086         (process_one_cond_exec): Generate a new split for a
5087         define_insn_and_split.
5088         * config/arm/arm-protos.h (arm_split_constant): Add insn
5089         parameter.
5090         (emit_constant_insn): New function.
5091         (arm_gen_constant): Use it.
5092         * config/arm/arm.md: Adjust calls to arm_split_constant.
5093
5094 2004-04-02  Jan Hubicka  <jh@suse.cz>
5095
5096         * cgraph.c: Add overall comment.
5097         (cgraph_inline_hash): New global variable.
5098         (cgraph_create_node): Break out from ...
5099         (cgraph_node): ... here.
5100         (cgraph_edge): New function.
5101         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
5102         (cgraph_remove_edge): Accept edge, intead of source and destination.
5103         (cgraph_redirect_edge_callee): New.
5104         (cgraph_remove_node): Update all new datastructures.
5105         (cgraph_record_call, cgraph_remove_call): Kill.
5106         (dump_cgraph_node): Break out from ... ; dump new datastructures.
5107         (dump_cgraph): ... here.
5108         (cgraph_function_possibly_inlined_p): Use new hashtable.
5109         (cgraph_clone_edge, cgraph_clone_node): New.
5110         * cgraph.h: Include hashtab.h
5111         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
5112         fields, add inlined_to pointer.
5113         (cgraph_node): Add pointer to next_clone.
5114         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
5115         (cgraph_remove_call, cgraph_record_call): Kill.
5116         (cgraph_inline_hash): Declare.
5117         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
5118         cgraph_redirect_edge_callee): Declare.
5119         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
5120         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
5121         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
5122         * cgraphunit.c: Add overall comment.
5123         (cgraph_optimize_function): Kill.
5124         (cgraph_assemble_pending_functions): Do not assemble inline clones.
5125         (cgraph_finalize_function): Update call of cgraph_remove_node
5126         (record_call_1): Record call sites.
5127         (cgraph_create_edges): Accept node instead of decl argument.
5128         (error_found): New static variable.
5129         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
5130         (cgraph_analyze_function): Update for new datastructures.
5131         (cgraph_finalize_compilation_unit): Plug memory leak.
5132         (cgraph_optimize_function): Kill.
5133         (cgraph_expand_function): Do not use cgraph_optimize_function.
5134         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
5135         cgraph_inlined_callees): Kill.
5136         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
5137         clones.
5138         (estimate_growth): Simplify.
5139         (cgraph_clone_inlined_nodes): New function.
5140         (cgraph_mark_inline_edge): Re-implement.
5141         (cgraph_mark_inline): Likewise.
5142         (cgraph_check_inline_limits): Simplify.
5143         (cgraph_recursive_inlining_p): New.
5144         (update_callee_keys): Break out from ...
5145         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
5146         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
5147         Likewise.
5148         (cgraph_expand_all_functions):  Remove inline clones from the ordered
5149         list.
5150         (cgraph_preserve_function_body_p): New predicate.
5151         (cgraph_optimize): Verify cgraph.
5152         * function.h (struct function): Add fields saved_tree/saved_args.
5153         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
5154         * toplev.c (rest_of_compilation): Do not free cfun.
5155         * tree-inline.c: Include function.h
5156         (struct inline_data): Add saving_p field; replace decl/current_decl by
5157         node/current_node.
5158         (insert_decl_map): New function.
5159         (copy_body_r): Handle saving; update cgraph datastructure.
5160         (copy_body): Handle recursive inlining.
5161         (initialize_inlined_parameters): Likewise.
5162         (expand_call_inline): Propagate node attributes; update cgraph.
5163         (optimize_inline_calls): Verify that datastructure still match.
5164         (save_body): New function.
5165         * tree-inline.h (save_body): New.
5166         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
5167         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
5168         * langhooks.c (lang_hooks): Add update_decl_after_saving.
5169
5170 2004-04-01  Serge Belyshev  <1319@bot.ru>
5171
5172         PR target/14702
5173         * config/i386/i386.md: fix source operand constraints in
5174         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
5175
5176 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5177
5178         * fold-const.c (folda): Preserve types of comparisons.
5179
5180 2004-04-01  Richard Henderson  <rth@redhat.com>
5181
5182         * toplev.c (backend_init): Move init_optimization_passes call ...
5183         (lang_dependent_init): ... here.
5184
5185 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
5186             Jakub Jelinek  <jakub@redhat.com>
5187
5188         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
5189         -lgcc --as-needed -lgcc_s --no-as-needed by default.
5190         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
5191         * configure: Rebuilt.
5192         * config.in: Rebuilt.
5193         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
5194         (stage2-start, stage3-start, stage4-start): Likewise.
5195         (stageprofile-start, stagefeedback-start): Likewise.
5196
5197 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5198
5199         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
5200         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5201         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5202         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5203         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
5204         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
5205         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
5206         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
5207         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
5208         * config/sparc/t-linux: Removed.
5209
5210 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5211
5212         PR c++/14755
5213         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
5214         "bitfld++ == const" to "++bitfld == const + incr" transformations.
5215
5216 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5217
5218         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
5219         * stor-layout.c (layout_decl): Likewise.
5220         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
5221         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
5222         * print-tree.c (print_node): Handle various used of unsigned_flag.
5223         * tree.def (BIT_FIELD_REF): Update comment.
5224         * tree.h (TREE_UNSIGNED): Deleted.
5225         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
5226
5227 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5228
5229         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
5230         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
5231         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
5232         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
5233         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
5234         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
5235         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
5236         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
5237         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
5238         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
5239         REAL_TYPE, not INTEGER_TYPE.
5240         (layout_type, case VECTOR_TYPE): Simplify code.
5241         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
5242         * tree.h: Update comments.
5243         (STRIP_NOPS): Use TYPE_UNSIGNED.
5244         (TYPE_UNSIGNED): New macro.
5245         (TYPE_TRAP_SIGNED): Remove now redundant check.
5246         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
5247
5248 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5249
5250         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
5251
5252 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
5253
5254         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
5255         Add darwin-fpsave.asm, darwin-vecsave.asm,
5256         and darwin-world.asm.
5257         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
5258         as the asm files contain altivec instructions.
5259         * config/rs6000/darwin-fpsave.asm: New file.
5260         * config/rs6000/darwin-vecsave.asm: New file.
5261         * config/rs6000/darwin-world.asm: New file.
5262
5263 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
5264
5265         * gengtype-yacc.y (option, stringseq): Add missing
5266         terminating semicolon.
5267
5268 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
5269
5270         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
5271         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
5272         tls_dtprel_ha_32, tls_dtprel_ha_64,
5273         tls_dtprel_lo_32, tls_dtprel_lo_64,
5274         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
5275         tls_tprel_ha_32, tls_tprel_ha_64,
5276         tls_tprel_lo_32, tls_tprel_lo_64,
5277         tls_got_tprel_32, tls_got_tprel_64,
5278         tls_tls_32, tls_tls_64): Replace register_operand with
5279         gpc_reg_operand.
5280
5281 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
5282
5283         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
5284         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
5285         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
5286         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
5287         *ctrdi_internal6): Replace register_operand with
5288         nonimmediate_operand.
5289
5290 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
5291
5292         * fold-const.c (fold): Reassociate multiply expression
5293         with an adjacent non-multiply expression to use
5294         architecture's multiply-add instruction.
5295
5296 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
5297
5298         * gengtype.c (create_option): New function.
5299         * gengtype.h: Prototype it.
5300         * gengtype-yacc.y (stringseq): New rule.
5301         (option): Use create_option.  Add new bare ID production.  Use
5302         stringseq, not STRING directly.
5303
5304         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
5305         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
5306         * varray.h, config/alpha/alpha.c:
5307         Use new shorter form of GTY markers.
5308
5309         * doc/gty.texi: Rewrite.
5310
5311 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
5312
5313         * config/darwin.c (machopic_function_base_name):
5314         Remove current_name and getting the name of the
5315         current function.
5316
5317 2004-03-30  Nick Clifton  <nickc@redhat.com>
5318
5319         * config/arm/arm.md (thumb_jump): Reduce the backward branch
5320         range, and increase the forward branch range, to allow for
5321         the fact that the PC will be off by 4.
5322
5323 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
5324
5325         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
5326
5327 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5328
5329         * config/rs6000/rs6000.c (output_vec_const_move):
5330         Find all cases of EASY_VECTOR_15_ADD_SELF.
5331         (easy_vector_constant_add_self): Accept
5332         all vector constant loadable by vsplt* and vadd*.
5333         (easy_vector_same): Use easy_vector_splat_const.
5334         (easy_vector_const): Use easy_vector_splat_const.
5335         (easy_vector_splat_const): New function.
5336         (gen_easy_vector_constant_add_self): New function.
5337
5338         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
5339         New prototype.
5340
5341         * config/rs6000/altivec.md (movv4si splitter): Change to
5342         emit move insn with halfed vector constant.
5343         (*movv8hi splitter): Likewise.
5344         (*movv16qi splitter): Likewise.
5345
5346 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5347
5348         PR 11591
5349         * config/rs6000/rs6000.c (rs6000_legitimate_address):
5350         Allow any offset to argument pointer in no-strict case.
5351
5352 2004-03-30  Jan Hubicka  <jh@suse.cz>
5353
5354         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
5355         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
5356         dump file in non-unit-at-a-time mode.
5357
5358 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
5359
5360         * config/cris/cris.h: Correct #ifdef to test for
5361         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
5362         HAVE_AS_MUL_BUG_ABORT_OPTION.
5363
5364 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5365
5366         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
5367         the address inside the old RTL.
5368
5369 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
5370
5371         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
5372         (struct c_binding, struct c_scope): Add chain_next
5373         attributes to GTY markers.
5374         (struct lang_identifier, struct lang_tree_node): Define
5375         here...
5376         * c-tree.h: ... not here.  No longer need to declare struct
5377         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5378         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
5379         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5380
5381         PR 14734, 11944
5382         * c-decl.c (get_parm_info): If error_mark_node is encountered
5383         in the bindings chain, unbind and discard it; don't abort.
5384
5385 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
5386             Dorit Naishlos <dorit@il.ibm.com>
5387
5388         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
5389         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
5390
5391 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
5392
5393         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
5394
5395         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
5396         (m68hc11_attribute_table): New attribute "page0" to mark a global
5397         variable as being allocated from within page0 section.
5398         (m68hc11_encode_label): New function.
5399         (m68hc11_strip_name_encoding): New function.
5400         (m68hc11_page0_symbol_p): New function.
5401         (m68hc11_indirect_p): Accept global variables marked in page0.
5402         (m68hc11_encode_section_info): Lookup "page0" attribute.
5403
5404         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
5405         represents access to page0 variables.
5406
5407         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
5408         ("*logicalsi3_silshl16_zext"): Likewise.
5409         ("*ashldi3_const32"): Likewise.
5410         (peephole2 ashift): Likewise.
5411
5412 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5413
5414         * c-tree.h (C_DECL_REGISTER): New.
5415         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
5416         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
5417         (build_array_ref, c_mark_addressable): Set and use it.
5418         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
5419         Allow structures with volatile fields to be declared register.
5420         Don't check TREE_ADDRESSABLE before warning about taking address
5421         of register.
5422         * c-decl.c (finish_decl): Don't allow structures with volatile
5423         fields to be placed in named register.
5424         * doc/trouble.texi: Remove reference to structures with volatile
5425         fields in registers.
5426
5427 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5428
5429         * function.c (thread_prologue_and_epilogue): Move
5430         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
5431         before the epilogue.
5432
5433 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5434
5435         * expr.c (store_constructor): Use gen_int_mode to correctly
5436         sign-extend CONST_INT value.
5437
5438 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5439
5440         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
5441         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
5442         * doc/extend.texi: Likewise.
5443
5444 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
5445
5446         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
5447           with TYPE_ORIG_SIZE_TYPE.
5448
5449 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
5450
5451         PR 14219
5452         * c-typeck.c (build_binary_op): Do not allow comparisons of
5453         vectors.
5454
5455 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
5456
5457         * config.gcc: Remove sparc-tti-*.
5458         * config/sparc/pbd.h: Delete.
5459
5460         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
5461         * config/sparc/aout.h: Likewise.
5462
5463         * config/sparc/sparc.h: Remove if 0'd code.
5464         * config/sparc/sparc.md (call): Remove if 0'd code.
5465         (call_value): Likewise.
5466         (nonlocal_goto): Likewise.
5467         (unimp_insn): Delete.
5468
5469 2004-03-25  Roger Sayle  <roger@eyesopen.com>
5470
5471         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
5472         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
5473
5474 2004-03-25  Richard Henderson  <rth@redhat.com>
5475
5476         PR 11527
5477         * c-typeck.c (pop_init_level): Emit pending init elements earlier
5478         rather than later.
5479
5480 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5481
5482         * builtins.c (fold_builtin): Fix error in last change.
5483
5484 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
5485
5486         * config/mips/mips.h: Formatting fix.
5487
5488 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5489
5490         * builtins.def: Add ctype builtins.
5491         * doc/extend.texi: Likewise.
5492
5493 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5494
5495         * builtins.c (fold_builtin): Add new builtin optimizations for
5496         sqrt and/or cbrt.
5497         * fold-const.c (fold): Likewise.
5498
5499 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
5500
5501         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
5502         (rs6000_sched_groups): New variable.
5503         (processor_target_table): Add power5.
5504         (rs6000_override_options): Set rs6000_sched_insert_nops,
5505         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
5506         from rs6000_sched_groups.
5507         (output_cbranch): Use rs6000_always_hint.
5508         (rs6000_variable_issue): Use rs6000_sched_groups.
5509         (rs6000_adjust_cost): Add CPU_POWER5.
5510         (is_microcoded_insn): Use rs6000_sched_groups.
5511         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
5512         Return 2 for POWER5 cracked instructions.
5513         (is_cracked_insn): Use rs6000_sched_groups.
5514         (is_branch_slot_insn): Use rs6000_sched_groups.
5515         (rs6000_issue_rate): Add CPU_POWER5.
5516         (rs6000_sched_finish): Use rs6000_sched_groups.
5517         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
5518         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
5519         (DEFAULT_SCHED_COSTLY_DEP): Delete.
5520         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
5521         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
5522         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
5523         * config/rs6000/power5.md: New file.
5524         * doc/invoke.texi: Add power5 option.
5525
5526 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5527
5528         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
5529         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
5530         * doc/invoke.texi: Fix a typo.
5531
5532 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5533
5534         PR optimization/9707.
5535         * stmt.c (emit_case_nodes): Emit equality comparisons instead
5536         of recursing if both children are single-valued cases with no
5537         children.
5538
5539 2004-03-25  Paul Brook  <paul@codesourcery.com>
5540
5541         * config/arm/arm.c (vfp_print_multi): Remove.
5542         (arm_output_fldmx): New function.
5543         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
5544         (arm_expand_prologue): Update to match.
5545         (arm_get_vfp_saved_size): New Function.
5546         (arm_get_frame_offsets): Use it.
5547         (arm_output_epilogue): Use new functions.
5548
5549 2004-03-24  Richard Henderson  <rth@redhat.com>
5550
5551         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
5552         (reg_known_value, reg_known_value_size): Likewise; make static.
5553         (reg_known_equiv_p): Make static.
5554         (clear_reg_alias_info): Update for new indexing.
5555         (get_reg_known_value, set_reg_known_value): New.
5556         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
5557         (canon_rtx): Use them.
5558         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
5559         Don't play queer offsetting games with reg_known_value and
5560         reg_known_equiv_p.
5561         (end_alias_analysis): Free reg_known_value with gc.
5562         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
5563         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
5564         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
5565         functions instead.
5566
5567 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
5568
5569         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
5570         config/i386/mmintrin.h: Update copyright.
5571
5572 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5573
5574         * configure.ac: Add --enable-werror-always (for top level bootstrap
5575         support).
5576         * configure: Regenerate.
5577
5578 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
5579
5580         * objc/objc-act.c (objc_comptypes): Treat comparisons
5581         between 'Class' and '<class> *' as explicitly invalid.
5582
5583 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
5584
5585         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
5586         (-fprofile-values): Add enabled with profile-{generate,use}.
5587         (-fvpt): Same.
5588         (-ftracer): Add enabled with profile-use.
5589         (-funit-at-a-time): Add enabled at -O2,-O3.
5590         (-funroll-loops): Add enabled with profile-use.
5591         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
5592         (max-gcse-passes): Mention default.
5593         (max-cse-path-length): Mention default.
5594
5595 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5596
5597         * Makefile.in (STRICT2_WARN): Reorder.
5598         * configure.ac: Check for -Wold-style-definition, and use it
5599         in strict1_warn if it's available.
5600         * configure: Regnerate.
5601
5602 2004-03-24  Paul Brook  <paul@nowt.org>
5603
5604         * config.gcc <arm>: Add --with-abi=
5605         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
5606         thumb_far_jump_used): Remove prototypes.
5607         (arm_needs_doubleword_align): Add prototype.
5608         (thumb_compute_initial_elimination_offset): Ditto.
5609         * config/arm/arm.c (arm_get_frame_offsets): New function.
5610         (use_return_insn, output_return_instruction, arm_output_epilogue,
5611         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
5612         arm_expand_prologue, thumb_expand_epilogue): Use it.
5613         (arm_abi, target_abi_name, all_arm_abis): New variables.
5614         (arm_override_options): Set them.  Set structure padding for AAPCS.
5615         (arm_return_in_memory): Update ABI check.
5616         (arm_init_cumulative_args): Initialize can_split.
5617         (arm_needs_doubleword_align): New function.
5618         (arm_function_arg): Don't split args after pushing to stack. Handle
5619         doubleword/even reg alignment.
5620         (arm_va_arg): Handle all doubleword aligned args.
5621         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
5622         on ABI, not CPU.
5623         (arm_compute_save_reg0_reg12_mask): Fix comment.
5624         (thumb_get_frame_size, thumb_get_frame_size): Remove.
5625         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
5626         value for alignment.
5627         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
5628         to match.
5629         (thumb_compute_initial_elimination_offset): New function.
5630         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
5631         unneccessary rounding.
5632         * config/arm/arm.h (target_abi_name): Declare.
5633         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
5634         arm_abi_type, ARM_DEFAULT_ABI): Define.
5635         (ARM_FLAG_ATPCS): Remove.
5636         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
5637         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
5638         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
5639         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
5640         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
5641         Contitionalize on ABI, not CPU.
5642         (struct arm_stack_offsets): Define.
5643         (struct machine_function): Add stack_offsets.  Remove frame_size.
5644         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
5645         pushed.
5646         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
5647         doubleword alignment.
5648         (THUMB_INITIAL_ELIMINATION_OFFSET,
5649         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
5650         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
5651         * config/arm/arm.md (align_8): Enable for all targets.
5652         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
5653         (ARM_DEFAULT_ABI): Define.
5654         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
5655         -mstructure-size-boundary.
5656
5657 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5658
5659         * configure.ac: Check for -Wno-variadic-macros; don't use
5660         -pedantic (in stage 1 or a simple 'make all') unless it's available,
5661         and if it's available, use it.  Also, clean up check for
5662         -Wno-long-long.
5663         * configure: Regenerate.
5664
5665 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
5666
5667         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
5668         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
5669         (MULTILIB_DEFAULTS): Use it.
5670         (MIPS_CPU_STRING_DEFAULT): Remove.
5671         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
5672         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
5673         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
5674         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
5675         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
5676         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
5677         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
5678         accordingly.
5679
5680 2004-03-24  DJ Delorie  <dj@redhat.com>
5681             Richard Sandiford  <rsandifo@redhat.com>
5682
5683         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
5684         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
5685         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
5686         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
5687         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
5688         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
5689         if TARGET_FIX_VR4122.
5690         * config/mips/mips.md (define_attr length): Account for nops inserted
5691         after macc and dmult when using -mfix-vr4122-bugs.
5692         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
5693         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
5694         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
5695         * config/mips/vr4122-div.S: New file.
5696         * doc/invoke.texi: Document -mfix-vr4122-bugs.
5697
5698 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
5699
5700         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
5701         (TARGET_MIPS4130): New macro.
5702         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
5703         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
5704         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
5705         with PROCESSOR_R4130.
5706         * config/mips/mips.md (define_attr cpu): Add r4130.
5707         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
5708
5709 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5710             Richard Sandiford  <rsandifo@redhat.com>
5711
5712         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
5713
5714 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
5715
5716         PR preprocessor/14438
5717         * cpplib.c (do_pragma): Remove line_change call after pragma
5718         handler.
5719
5720 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
5721
5722         * doc/extend.texi (ARM Built-in Functions): Replace with correct
5723         declarations.
5724
5725 2004-03-23  Roger Sayle  <roger@eyesopen.com>
5726
5727         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
5728         if flag_unsafe_math_optimizations.
5729         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
5730         and TARGET_80387 expand using truncdfsf2_noop pattern.
5731         (truncxfsf2): Likewise using truncxfsf2_noop.
5732         (truncxfdf2): Likewise using truncxfdf2_noop.
5733         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
5734
5735 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
5736
5737         * hooks.c (hook_constcharptr_tree_null): New hook.
5738         * hooks.h (hook_constcharptr_tree_null): New prototype.
5739         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
5740         * target.h (mangle_fundamental_type): New target hook.
5741         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
5742         target hook at rs6000_mangle_fundamental_type.
5743         (rs6000_mangle_fundamental_type): New function.
5744         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
5745
5746 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
5747
5748         PR 12267, 12391, 12560, 13129, 14114, 14133
5749         * c-tree.h: Forward declare struct c_binding.  Declare
5750         c_override_bindings_to_false.  Update prototypes.
5751         (struct lang_identifier): Update comments.  Change fields to be
5752         struct c_binding *.
5753         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
5754         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
5755         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
5756         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
5757         * c-common.h: Update prototypes.
5758         * c-decl.c (struct c_scope): Update commentary.  Remove names,
5759         names_last, parms, parms_last, tags, and shadowed fields.  Add
5760         bindings and depth fields.
5761         (scope_freelist): Move to more appropriate location.
5762         (c_print_identifier): Update for changes to struct lang_identifier.
5763         (objc_mark_locals_volatile): Update for new bindings structures.
5764         (global_bindings_p): Honor c_override_global_bindings_to_false.
5765         (pushlevel): Rename to push_scope; take no arguments; use the
5766         scope_freelist; initialize scope->depth and check for overflow.
5767         (poplevel): Rename to pop_scope; totally rewritten for new bindings
5768         structures.
5769         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
5770         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
5771         Improve some commentary.  Adjust handling of forward parm decls.
5772         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
5773         Preserve C_DECL_IN_EXTERNAL_SCOPE.
5774         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
5775         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
5776         decls.  Rewrite for new bindings structures.  Improve commentary.
5777         Eliminate the copy_node call.
5778         (implicit_decl_warning): Use the "diag" idiom (as seen in
5779         locate_old_decl) to reduce code duplication; call locate_old_decl
5780         if appropriate.  Relocate to remove need for forward declaration.
5781         (implicitly_declare): Adjust for new bindings structures.  Kludge
5782         around Objective-C not-really-builtin functions.
5783         (undeclared_variable): Improve diagnostics.  If current_function_decl
5784         is nonnull but current_function_scope is null, use current_scope.
5785         Use bind.
5786         (lookup_tag): Adjust for new bindings structures.  Kludge around
5787         Objective-C's tag declarations that wind up in the external scope.
5788         (lookup_name): Adjust for new bindings structures.  Kludge around
5789         c-common.c's pseudo-typedefs that wind up in the external scope.
5790         (lookup_name_current_level): Rename lookup_name_in_scope; take a
5791         second argument indicating the scope to examine; rewrite for
5792         new bindings structures.
5793         (c_init_decl_processing): Adjust for renamed functions.  Do not
5794         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
5795         First scope pushed is the external scope, not the global scope.
5796         (builtin_function): Use bind, not pushdecl.  Adjust other bits
5797         for new data structures.  Keep track of builtins that should be
5798         made visible automatically.
5799         (start_decl): Adjust diagnostics.  Remove unnecessary call to
5800         expand_decl.
5801         (grokparms): Return 0 if arg_types is error_mark_node.
5802         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
5803         reversed sense.  Rewrite for new bindings structures.  Do not
5804         leave any decls in the scope, to prevent pop_scope from doing
5805         contradictory things with them.
5806         (finish_struct, finish_enum): Remove redundant diagnostics.
5807         (build_enumerator): Don't cascade diagnostics for error_mark_node.
5808         Mark location where -pedantic changes the meaning of the program.
5809         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
5810         parameter decls into the function's scope structure using bind.
5811         Warn here about function definitions in the wrong style.
5812         Adjust diagnostics.
5813         (store_parm_decls): Correct the determination of whether a
5814         function was defined with a prototype.
5815         (c_write_global_declarations): Operate on all file decls and on
5816         the external scope.  Split body of the loop to...
5817         (c_write_global_declarations_1): ... this new function, to avoid
5818         code duplication.
5819         (truly_local_externals, first_builtin_decl, last_builtin_decl)
5820         (make_scope, pop_scope, in_parm_level_p, set_block)
5821         (any_external_decl, record_external_decl, bind_label, getdecls)
5822         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
5823         (c_reset_state): Delete.
5824         (visible_builtins, c_override_global_bindings_to_false)
5825         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
5826         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
5827         (external_scope, binding_freelist, bind, free_binding_and_advance)
5828         (push_file_scope, pop_file_scope): New.
5829         (pushtag, pushdecl_top_level, lookup_label, declare_label)
5830         (define_label, c_make_fname_decl, finish_decl)
5831         (mark_forward_parm_decls, build_compound_literal)
5832         (grokdeclarator, start_function, check_for_loop_decls)
5833         (identifier_global_value, record_builtin_type): Minor adjustments
5834         for new bindings structures.  Improve diagnostics and commentary.
5835         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
5836         pushlevel/poplevel respectively.
5837         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
5838         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
5839         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
5840         correct loop over multiple translation units; call fatal_error if
5841         requested to compile more than one file at once.  (This disables
5842         IMA temporarily - an up-front error being preferable to a crash.)
5843         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
5844         (all actions): Adjust calls to pushlevel/poplevel.
5845         (parsing_iso_function_signature): Delete.
5846         (extdef_1): Fold into extdef.
5847         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
5848         warn here about function definitions in the wrong style.
5849         (after_tyle_declarator, parm_declarator_starttypename)
5850         (parm_declarator_nostarttypename, notype_declarator): Remove
5851         commented-out productions.
5852         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
5853         an empty TREE_LIST node.  Adjust calls to get_parm_info.
5854         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
5855         to suppress -Wold-style-definition after this error.
5856         (c_parse_file): Don't clear the binding stack or call
5857         finish_fname_decls here.  Correct comment.
5858         * c-typeck.c (same_translation_unit_p): Export.
5859         (common_type): Use c_override_global_bindings_to_false, not
5860         pushlevel/poplevel/declare_parm_level.
5861         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
5862         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
5863         and LANG_HOOKS_GETDECLS with do-nothing stubs.
5864         * objc/objc-lang.c: Likewise.
5865         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
5866         get_parm_info.
5867         (OBJC_VOID_AT_END): Delete; replace all uses
5868         with void_list_node.
5869         (generate_forward_declaration_to_string_table): Delete.
5870         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
5871
5872         * coverage.c (create_coverage): Don't pushdecl anything.
5873         * langhooks.c (lhd_clear_binding_stack): Call
5874         lang_hooks.decls.poplevel, not poplevel.
5875         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
5876         circular list rather than going into an infinite loop.
5877
5878 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
5879
5880         * optabs.c (expand_binop): When synthesizing double word rotates
5881         from single word shifts, use a new register target if the provided
5882         target is not a REG already.
5883
5884 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5885
5886         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
5887         * c-common.c (handle_mode_attribute): Add extra arg to
5888         build_pointer_type_for_mode and build_reference_type_for_mode.
5889         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
5890         for INTEGER_CST.
5891         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
5892         Chain pointers via TYPE_NEXT_PTR_TO.
5893         (build_reference_type_for_mode): Similarly.
5894         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
5895         and build_reference_type_for_mode.
5896         (tree_check4_failed): New function.
5897         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
5898         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
5899         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
5900         Add check.
5901
5902 2004-03-23  Roger Sayle  <roger@eyesopen.com>
5903
5904         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
5905         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
5906         when both A and B are nonnegative.
5907         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
5908         nonzero.
5909
5910 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
5911
5912         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
5913         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
5914
5915 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
5916
5917         PR optimization/14669
5918         * fold-const.c (fold): Only unwiden integer comparisons for equality
5919         and inequality operators, or when the signedness doesn't change.
5920
5921 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
5922
5923         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
5924         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
5925         * config/sparc/t-linux: New file.
5926
5927 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
5928
5929         * gcse.c (can_assign_to_reg_p): New function, split out from...
5930         (want_to_gcse_p): ...here.
5931         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
5932         the rhs of a store.
5933
5934 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
5935
5936         * c-typeck.c (same_translation_unit_p): Fix pasto.
5937
5938 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
5939
5940         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
5941         (PARAM_MAX_SCHED_REGION_INSNS): New.
5942         * sched-rgn.c: Include params.h
5943         (MAX_RGN_BLOCKS): Delete.
5944         (MAX_RGN_INSNS): Delete.
5945         (too_large): Return bool.  Convert to PARAM_VALUE.
5946         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
5947         * doc/invoke.texi (param): Document max-sched-region-blocks and
5948         max-sched-region-insns.
5949
5950 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
5951
5952         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
5953         for base types.
5954
5955 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
5956
5957         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
5958         change.
5959
5960 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
5961
5962         PR c/14069
5963         * c-decl.c (finish_struct): Change type of incorrect flexible array
5964         field into error_mark_node.
5965
5966 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
5967
5968         PR target/14580
5969         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
5970         who are not local for Darwin PIC.
5971
5972 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
5973
5974         * regrename.c (regrename_optimize): Set regs_ever_live for all
5975         registers introduced as replacement.
5976
5977 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
5978
5979         PR middle-end/14470
5980         * expr.c (mark_queue): New function.
5981         (emit_insns_enqueued_after_mark): New function replacing
5982         emit_queue.  Clear the body of emitted queued insns.
5983         (emit_queue): Call emit_insns_enqueued_after_mark.
5984         (store_expr): Mark the increment queue on entry.  Emit
5985         only the incrementations queued when expanding the source.
5986
5987 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
5988
5989         * configure.ac: Allow --disable-coverage-flags (for the future benefit
5990         of top level bootstrap, and consistency).  Reindent.
5991         * configure: Regenerate.
5992
5993 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
5994
5995         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
5996         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
5997         unnecessary casts.
5998
5999 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
6000
6001         PR target/14291
6002         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
6003         __MINGW32__.
6004
6005 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6006
6007         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
6008         to nonimmediate_operand.
6009         ("*doloop_di"): Likewise.
6010
6011 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
6012
6013         * real.h (struct real_value): Use the same type for all
6014         bitfields.  Rename exp to uexp.
6015         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
6016         Adjust all uses of exp...
6017         * builtins.c: ... here, ...
6018         * emit-rtl.c: ... here, and ...
6019         * real.c: ... and here.
6020
6021 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6022
6023         * pretty-print.c (pp_base_maybe_space): New function.
6024         * pretty-print.h (pp_base_maybe_space): Declare.
6025         (pp_maybe_space): New macro.
6026
6027 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6028
6029         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
6030
6031 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6032
6033         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
6034         of using register multiplication cost.
6035         (expand_mult): Adapt choose_mult_variant call.
6036         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
6037         of MODE; pass appropriate cost bound.  Adjust result when
6038         performing signed multiplication by a negative constant.
6039         Don't use intermediate modes larger than word_mode.
6040
6041 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6042
6043         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
6044         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
6045         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
6046         * explow.c (expr_size): Likewise.
6047         * expr.h (placeholder_list, find_placeholder): Deleted.
6048         * expr.c (store_constructor): Likewise.
6049         (get_inner_reference): Likewise.  Also don't call find_placeholder.
6050         (placeholder_list, find_placeholder): Deleted.
6051         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
6052         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
6053         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
6054         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
6055         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
6056         Likewise.
6057         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
6058         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
6059         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
6060         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
6061         Clean up by using first_rtl_op.
6062         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
6063         (substitute_placeholder_in_expr): New function.
6064         * tree.def (WITH_RECORD_EXPR): Deleted.
6065         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
6066         (substitute_placeholder_in_expr): New.
6067
6068 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
6069
6070         * dojump.c (prefer_and_bit_test): Fix which part of
6071         the and_test is replaced.
6072
6073 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
6074
6075         * frontends.texi: Add missing line.
6076
6077 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
6078             Chris Devers  <cdevers@pobox.com>
6079             Joseph S. Myers  <jsm@polyomino.org.uk>
6080
6081         * doc/frontends.texi: Rewrite.
6082         * doc/gcc.texi: Update last modification date.
6083
6084 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
6085
6086         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
6087         message before redirecting the edge.
6088
6089 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6090
6091         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
6092         flag.
6093         * explow.c (force_not_mem): Set REG_POINTER flag according to
6094         MEM_POINTER one.
6095         * rtl.h (MEM_POINTER): New macro.
6096         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
6097         for MEM_POINTER.
6098
6099 2004-03-20  Roger Sayle  <roger@eyesopen.com>
6100
6101         PR target/13889
6102         * cse.c (fold_rtx): Avoid substituting constants into unary
6103         conversion operations.
6104
6105 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6106
6107         * fold-const.c (fold): Replace "expr" with "t".
6108
6109 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
6110
6111         PR c/12373
6112         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
6113         DECL_ORIGINAL_TYPE if there isn't one.
6114
6115 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6116
6117         * fold-const.c (fold): Replace "final_type" with "type".
6118         Remove variable "final_type".
6119
6120 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6121
6122         * fold-const.c (fold): Constify "type".
6123         Replace "TREE_TYPE (t)" with "type".
6124
6125 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6126
6127         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
6128         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
6129         via (*targetm.foo) () with targetm.foo ().
6130
6131 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6132
6133         PR other/14630
6134         * doc/install.texi: Add info directory category and entry.
6135
6136 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6137
6138         * fold-const.c (fold): Replace "t" with "tem" where it is used
6139         as a temporary variable.  Remove "orig_t" and all of its uses.
6140
6141 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6142
6143         * fold-const.c (fold): Remove variable "invert".
6144         Move the handling of relational expressions that can be folded
6145         to a constant ...
6146         (fold_relational_const): ... here.
6147         (tree_expr_nonzero_p): New.
6148
6149 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6150
6151         PR c/14635
6152         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
6153         DEF_GCC_BUILTIN.
6154
6155 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
6156
6157         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
6158         (GTFILES): Add $(srcdir)/dojump.h.
6159         (gt-dojump.h): New dependency.
6160         * dojump.c (and_reg, and_test, shift_test): New static variables.
6161         (prefer_and_bit_test): New function.
6162         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
6163
6164 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6165
6166         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
6167         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
6168         reorg.c, tree.h: Fix comment typos.
6169
6170 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6171
6172         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
6173         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
6174         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
6175         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
6176         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
6177         vmsdbgout.c: Replace calls via (*targetm.foo) () with
6178         targetm.foo ().
6179
6180 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
6181
6182         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
6183         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
6184         always_inline attribute.
6185         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
6186         Treat expansion as completed even if literal argument is
6187         invalid (so that other expansions are not tried in vain).
6188
6189 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6190
6191         * loop-doloop.c (add_test): Replace GEN_INT (0) with
6192         const0_rtx.
6193
6194 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6195
6196         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
6197         ...
6198         (fold_abs_const): ... here.
6199
6200 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6201
6202         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
6203
6204 2004-03-19  Denis Chertykov  <denisc@overta.ru>
6205
6206         PR target/11520
6207         * config/avr/avr.md ("call_insn"): Handle explicit integer
6208         specially.
6209         (call_value_insn): Likewise.
6210
6211 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6212
6213         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
6214
6215 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6216
6217         * fold-const.c (negate_expr): Move the handling of constants
6218         ...
6219         (fold_negate_const): ... here.
6220
6221 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6222
6223         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
6224         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
6225         * tree.c (debug_no_type_hash): Deleted.
6226         (type_hash_canon): Abort if passed a variant.
6227         Check lang_hooks.types.hash_types.
6228         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
6229         (build_array_type): Remove unnecessary allocation of pointer type.
6230         (build_complex_type): Properly qualify resulting type.
6231
6232 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
6233
6234         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
6235
6236 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
6237
6238         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
6239         (expand_mult): ...here.
6240         (extract_high_half): New, split out from expand_mult_highpart.
6241         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
6242         (expand_highpart): Evaluate the cost of a shift/add sequence,
6243         then see if any of the specialized optabs are cheaper.
6244
6245 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
6246
6247         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
6248
6249 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6250
6251         * convert.c (convert_to_real): Add more math builtins.
6252
6253 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6254
6255         * convert.c (convert_to_real): Reformat using switch stmt.
6256
6257 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6258
6259         * c-common.c (pointer_int_sum): Do not complain about using
6260         pointers to pointers-to-members.
6261
6262 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
6263
6264         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
6265         have moved to the target hooks structure".
6266
6267 2004-03-18  James E Wilson  <wilson@specifixinc.com>
6268
6269         * config/mips/mips.md (type): Split move into arith and fmove.  Split
6270         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
6271         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
6272         Likewise.
6273         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
6274         Likewise.
6275         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
6276         rm7_fp_quick): Likewise.
6277         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
6278         rm9k_fquick): Likewise.
6279         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
6280         Likewise.
6281         (ir_sr70_icmp): Delete.
6282
6283 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6284
6285         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
6286         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
6287         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
6288         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
6289         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
6290         Protect with proper check.
6291         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
6292         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
6293         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
6294         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
6295         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
6296         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
6297         not TYPE_FIELDS.
6298         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
6299
6300 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
6301
6302         * gcse.c (eliminate_partially_redundant_loads): Reject change if
6303         dest is set between beginning and current insn.
6304
6305 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6306
6307         * c-decl.c (grokdeclarator): Do not complain about redeclaring
6308         visible "static" identifiers "extern" in a local scope.
6309         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
6310         post-increments/decrements.
6311
6312 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
6313
6314         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
6315         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
6316         (xtensa_va_start): Remove assignment to current_function_arg_words.
6317
6318 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
6319
6320         * alias.c (record_set): Detect the case where a register is assigned
6321         a new value that has the same base term as the old one.
6322
6323 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6324
6325         * doloop.c: Removed.
6326         * loop-doloop.c: New file.
6327         * Makefile.in (doloop.o): Remove.
6328         (loop-doloop.o): New.
6329         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
6330         * cfgloopanal.c (get_loop_level): New function.
6331         * loop-iv.c (iv_number_of_iterations): Handle case when loop
6332         is leaved immediatelly.
6333         * loop.c (strength_reduce): Do not call doloop optimization.
6334         * loop.h (LOOP_BCT): Removed.
6335         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
6336         (rest_of_handle_loop2): Call doloop_optimize_loops.
6337         (rest_of_compilation): Test for optimizations moved to
6338         rest_of_handle_loop2.
6339
6340 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
6341
6342         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
6343         for mixed mode.
6344         (rs6000_emit_prologue): Ditto.
6345         (rs6000_emit_epilogue): Ditto.
6346         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
6347         macro for mixed mode.
6348
6349 2004-03-18  Jan Hubicka  <jh@suse.cz>
6350
6351         * predict.c (propagate_freq): Compute correctly frequency of
6352         EXIT_BLOCK.
6353
6354 2004-03-17  Eric Christopher  <echristo@redhat.com>
6355
6356         * builtins.c (apply_args_size): Use reg_raw_mode.
6357         (apply_result_size): Ditto.
6358
6359 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6360
6361         PR target/14620
6362         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
6363
6364 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
6365
6366         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
6367         32-bit builds when defaulting to 32-bit.
6368
6369 2004-03-17  Jan Hubicka  <jh@suse.cz>
6370
6371         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
6372         array.
6373
6374 2004-03-17  James E Wilson  <wilson@specifixinc.com>
6375
6376         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
6377         (hazard_nop): Change type to nop.
6378         (type): Split arith into arith, shift, slt, clz.  Delete darith.
6379         Fix all uses.  Change arith to multi if more than one insn emitted.
6380         * config/mips/5400.md (ir_vr54_arith): Likewise.
6381         * config/mips/5500.md (ir_vr55_arith): Likewise.
6382         * config/mips/7000.md (rm7_int_other): Likewise.
6383         * config/mips/9000.md (rm9k_int): Likewise.
6384         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
6385
6386 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
6387
6388         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
6389         to hold the subtype tree instead of recomputing it several times.
6390
6391 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
6392
6393         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
6394         CC_INVERT.
6395         * config/mn10300/mn10300.md (cc): Remove "invert".
6396
6397 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6398
6399         * builtins.c (integer_valued_real_p): Add builtin rint.
6400         (fold_builtin): Likewise.
6401         * convert.c (convert_to_real): Likewise.
6402
6403         * convert.c (convert_to_real): Fix typos in `long double'
6404         builtins.
6405
6406 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
6407
6408         PR c++/14481
6409         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
6410         generated COMPOUND_EXPRs.
6411
6412 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6413
6414         * config/h8300/t-rtems (h8300-*-rtems*): New.
6415
6416 2004-03-16  Eric Christopher  <echristo@redhat.com>
6417
6418         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
6419
6420 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6421
6422         * config/i386/i386-protos.h: Add a prototype for
6423         ix86_reverse_condition.
6424         * config/i386/i386.c (ix86_reverse_condition): New.
6425         * config/i386/i386.h (REVERSE_CONDITION): Use
6426         ix86_reverse_condition.
6427         * config/i386/i386.md: Use ix86_reverse_condition instead of
6428         REVERSE_CONDITION.
6429
6430 2004-03-16  J. Brobecker  <brobecker@gnat.com>
6431
6432         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
6433
6434 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
6435
6436         PR bootstrap/12974
6437         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
6438
6439 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6440
6441         * c-common.c (c_common_type_for_mode): Build vector types on
6442         demand.
6443         (handle_mode_attribute): Deprecate using the mode attribute
6444         to create vector types.  Fix indentation.
6445         (vector_type_node_list): Remove.
6446         (handle_vector_size_attribute): Create vector types on demand.
6447         Strip a NON_LVALUE_EXPR from the attribute if there is one.
6448         * c-typeck.c (comptypes): Make vector types compatible if they
6449         have the same underlying mode.
6450         (convert_for_assignment): Use comptypes to convert between
6451         vector types.
6452         * tree.c (build_common_tree_nodes_2): Do not create vector types.
6453         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
6454         vector types.
6455         * tree.h: Remove vector types.
6456         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
6457         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
6458         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
6459         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
6460         * doc/extend.texi (Vector Types): Document how to use the
6461         vector_size attribute to create vectors, rather than mode.
6462
6463         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
6464         * config/i386/emmintrin.h: Likewise.
6465         * config/i386/mmintrin.h: Likewise.
6466         * config/i386/xmmintrin.h: Likewise.
6467         * config/sh/ushmedia.h: Likewise.
6468
6469 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6470
6471         * config/freebsd-spec.h, config/arc/arc-protos.h,
6472         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
6473         config/arm/linux-gas.h, config/arm/semi.h,
6474         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
6475         config/ia64/freebsd.h, config/mips/7000.md,
6476         config/mips/9000.md, config/ns32k/ns32k-protos.h,
6477         config/sparc/pbd.h: Update copyright.
6478
6479 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6480
6481         PR target/14577
6482         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
6483
6484 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6485
6486         * combine.c (combine_simplify_rtx): Remove the "last"
6487         parameter and its documentation.  Adjust recursive calls.
6488         (simplify_logical): Always perform the only simplification
6489         controlled by "last", if the simplified expression is
6490         actually different.
6491         (try_combine): Do not pass the "last" parameter to
6492         combine_simplify_rtx.
6493
6494 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
6495
6496         PR target/14599
6497         * config/mips/mips.md (UNSPEC_GP): New constant.
6498         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
6499         an UNSPEC instead of (reg $gp).
6500         (mips16_gp_pseudo_reg): Change accordingly.
6501         (print_operand): Print $gp directly when handling CONST_GP_P.
6502
6503 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6504
6505         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
6506         * longlong.h: Make code 68060 clean when compiling for m68060.
6507
6508 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6509
6510         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
6511         * doc/md.texi: Clarify description of "i" constraint.
6512
6513 2004-03-15  James E Wilson  <wilson@specifixinc.com>
6514
6515         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
6516         Split store into store, fpstore, fpidxstore.  Fix all uses.
6517         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
6518         Likewise.
6519         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
6520         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
6521         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
6522         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
6523         ir_sr70_fstore): Likewise.
6524
6525 2004-03-15  Richard Henderson  <rth@redhat.com>
6526
6527         PR middle-end/14535
6528         * except.c (collect_one_action_chain): Record action for cleanup
6529         outer of exception spec.
6530
6531 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
6532
6533         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6534         Fix the check for abort and only do the mmap if we can.
6535
6536 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
6537
6538         * config/sparc/sparc.h: Rework comments about the code model
6539         in 64-bit environment and the mode 'Pmode'.
6540         * doc/invoke.texi (SPARC options): Rework description of the
6541         different code models supported in 64-bit environment.
6542
6543 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6544
6545         * defaults.h (REVERSIBLE_CC_MODE): Define.
6546         * jump.c (reversed_comparison_code_parts): Don't check if
6547         REVERSIBLE_CC_MODE is defined.
6548
6549 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6550
6551         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
6552         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
6553         hosthooks.h, params.h, ra-colorize.c, web.c,
6554         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
6555         config/avr/avr-protos.h, config/avr/avr.md,
6556         config/fr30/fr30-protos.h, config/fr30/fr30.md,
6557         config/h8300/fixunssfsi.c, config/i386/darwin.h,
6558         config/i386/freebsd.h, config/i386/freebsd64.h,
6559         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
6560         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
6561         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
6562         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
6563         config/pa/pa64-regs.h, config/rs6000/aix41.h,
6564         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
6565         config/sparc/aout.h, config/sparc/freebsd.h,
6566         config/sparc/litecoff.h, config/vax/vax-protos.h,
6567         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
6568         copyright.
6569
6570 2004-03-15  Paul Brook  <paul@codesourcery.com>
6571
6572         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
6573
6574 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6575
6576         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
6577         (pp_c_cv_qualifier): Document.
6578         (pp_c_space_for_pointer_operator): Likewise.
6579         (pp_c_integer_constant): Likewise.
6580         (pp_c_identifier): Likewise.
6581         (pp_c_init_declarator): Don't print function body.
6582
6583 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
6584
6585         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
6586         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
6587         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
6588         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
6589         wording and grammar.
6590
6591 2004-03-14  Roger Sayle  <roger@eyesopen.com>
6592
6593         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
6594         with lang_hooks.foo ().
6595         * builtins.c (expand_builtin_va_arg): Likewise.
6596         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
6597         c_common_type_for_mode, c_common_nodes_and_builtins,
6598         handle_mode_attribute, handle_vector_size_attribute): Likewise.
6599         * c-convert.c (convert): Likewise.
6600         * c-format.c (check_format_types): Likewise.
6601         * c-objc-common.c (c_tree_printer): Likewise.
6602         * c-typeck.c (build_unary_op, build_conditional_expr,
6603         build_binary_op): Likewise.
6604         * calls.c (try_to_integrate, expand_call,
6605         emit_library_call_value_1): Likewise.
6606         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
6607         Likewise.
6608         * cgraphunit.c (record_call_1, cgraph_analyze_function,
6609         cgraph_expand_function): Likewise.
6610         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
6611         * coverage.c (build_fn_info_type, build_ctr_info_type,
6612         build_gcov_info, create_coverage): Likewise.
6613         * dbxout.c (dbxout_init): Likewise.
6614         * diagnostic.c (diagnostic_report_current_function): Likewise.
6615         * dojump.c (do_jump): Likewise.
6616         * dwarf2out.c (dwarf2_name): Likewise.
6617         * except.c (init_eh): Likewise.
6618         * explow.c (expr_size, int_expr_size): Likewise.
6619         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
6620         Likewise.
6621         * expr.c (store_expr, store_constructor, safe_from_p,
6622         expand_expr_real, do_store_flag, try_casesi): Likewise.
6623         * function.c (push_function_context_to, pop_function_context_from,
6624         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
6625         put_var_into_stack, allocate_struct_function, current_function_name):
6626         Likewise.
6627         * integrate.c (copy_decl_for_inlining, expand_inline_function):
6628         Likewise.
6629         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
6630         lhd_print_error_function): Likewise.
6631         * opts.c (handle_option, decode_options): Likewise.
6632         * passes.c (open_dump_file): Likewise.
6633         * print-tree.c (print_node): Likewise.
6634         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
6635         expand_decl_cleanup, emit_case_nodes): Likewise.
6636         * stor-layout.c (variable_size): Likewise.
6637         * toplev.c (announce_function, wrapup_global_declarations,
6638         check_global_declarations, compile_file, default_tree_printer,
6639         process_options, lang_dependent_init, finalize): Likewise.
6640         * tree-dump.c (dequeue_and_dump): Likewise.
6641         * tree-inline.c (remap_decl, remap_block, copy_body_r,
6642         initialize_inlined_parameters, declare_return_variable,
6643         inlinable_function_p, expand_call_inline, optimize_inline_calls,
6644         walk_tree, copy_tree_r): Likewise.
6645         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6646         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
6647         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
6648         variably_modified_type_p, dump_tree_statistics): Likewise.
6649         * varasm.c (assemble_variable, compare_constant, copy_constant,
6650         force_const_mem, compute_reloc_for_constant, output_constant,
6651         output_addressed_constants, initializer_constant_valid_p): Likewise.
6652
6653 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
6654
6655         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
6656
6657 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
6658
6659         * doc/install.texi: Reflect autoconf and automake version for
6660         libffi. Update autoconf version to 2.59.
6661
6662 2004-03-13  Roger Sayle  <roger@eyesopen.com>
6663
6664         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
6665         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
6666         make_range, build_range_check, fold_range_test, unextend,
6667         constant_boolean_node, fold_binary_op_with_conditional_arg,
6668         fold_truthop, fold_mathfn_compare, fold_inf_compare,
6669         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
6670         with lang_hooks.foo ().
6671
6672 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
6673
6674         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
6675
6676 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
6677
6678         * doc/install.texi: Note status of -fnew-ra.
6679
6680 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
6681
6682         PR middle-end/14470
6683         * expr.c (store_expr): Call emit_queue before generating the move
6684         from the temporary to the original target.  Protect the temporary
6685         from emit_queue.
6686
6687 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
6688
6689         PR target/14533
6690         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
6691         other than UNSPEC_GOTOFF.
6692
6693 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
6694
6695         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
6696         to arm_legitimate_index_p.  Update all callers with SET as default
6697         value.
6698         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
6699         range if OUTER is a sign-extend operation on QImode.  Correctly
6700         reject shift operations on sign-extended QImode addresses.
6701         (bad_signed_byte_operand): Delete.
6702         (arm_extendqisi_mem_op): New function.
6703         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
6704         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
6705         constraints.
6706         (CONSTRAINT_LEN): New.
6707         (EXTRA_CONSTRAINT): Delete.  Replace with...
6708         (EXTRA_CONSTRAINT_STR): ... this.
6709         (PREDICATE_CODES): Remove bad_signed_byte_operand.
6710         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
6711         is now always default.
6712         (define_splits for bad sign-extend loads): Delete.
6713         (arm_extendqisi, arm_extendqisi_v5): Likewise.
6714         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
6715         Rework 'U' constraint to 'Uv'.
6716         * arm-protos.h: Remove bad_signed_byte_operand.  Add
6717         arm_extendqisi_mem_op.
6718         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
6719         Add Uq constraint.
6720
6721 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
6722
6723         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
6724         with targetm version.
6725
6726         PR target/14567
6727         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
6728         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
6729         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
6730         Update all users of RS6000_ARG_SIZE.
6731         (function_arg_advance): Count fregno using mode size.
6732         (function_arg): Handle long double split over regs and memory.
6733         (function_arg_partial_nregs): Likewise.
6734         (rs6000_va_arg): Repackage complex args.
6735
6736 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
6737
6738         PR target/14047
6739         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
6740         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
6741         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
6742
6743 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
6744
6745         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
6746         prototype.
6747         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
6748         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
6749
6750 2003-03-12  Andrew Pinski  <apinski@apple.com>
6751
6752         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6753         Use ret instead of result. Use addr instead of base.
6754
6755 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
6756
6757         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
6758         fixes required by libstdc++ and update installation instructions
6759         for libstdc++.a.
6760
6761 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
6762
6763         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
6764         leading '@' on fastcall symbols before stripping suffix.
6765
6766 2004-03-12  Roger Sayle  <roger@eyesopen.com>
6767
6768         * combine.c (unmentioned_reg_p): New function to check whether an
6769         expression is a "specialization" of another, i.e. that there are
6770         no registers or memory references mentioned in the first that don't
6771         appear in the second.
6772         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
6773         (combine_instructions): Also try combining instructions using the
6774         REG_EQUAL note from a preceding log-linked instruction.
6775
6776 2004-03-12  Roger Sayle  <roger@eyesopen.com>
6777
6778         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
6779
6780 2004-03-12  Matt Austern  <austern@apple.com>
6781
6782         * target.h (struct gcc_target): New target hook, unwind_label.
6783         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
6784         * output.h (default_emit_unwind_label): New function.
6785         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
6786         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
6787         (TARGET_SUPPORTS_HIDDEN): New target macro.
6788         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
6789         that corresponds to this FDE.
6790         (FRAME_BEGIN_LABEL): Allow target to override default label.
6791         (output_call_frame_info): If FDEs are linknonce, then use extra
6792         indirection for FDE encoding, output a label for each FDE, and
6793         output an empty label for each function without an FDE.
6794         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
6795         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
6796         decls with DECL_ONE_ONLY set, if that macro is defined.
6797         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
6798         for a SUPPORTS_ONE_ONLY target.
6799         * config/darwin-protos.h (darwin_unique_section): Declare.
6800         (darwin_asm_named_section): Likewise.
6801         (darwin_section_type_flags): Likewise.
6802         (darwin_non_lazy_pcrel): Likewise.
6803         (darwin_emit_unwind_label): Likewise.
6804         (darwin_make_decl_one_only): Likewise.
6805         * config/darwin.c (machopic_finish): Get rid of tweak that
6806         eliminate stubs for symbols that are defined.
6807         (darwin_encode_section_info): Don't treat weak functions as defined.
6808         (darwin_make_decl_one_only): Define.
6809         (darwin_asm_named_section): Likewise.
6810         (darwin_section_type_flags): Likewise.
6811         (darwin_unique_section): Likewise.
6812         (darwin_emit_unwind_label): Likewise.
6813         (darwin_non_lazy_pcrel): Likewise.
6814         (darwin_asm_output_dwarf_delta): Difference between two labels is
6815         local only if both labels are local.
6816         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
6817         (ASM_MAKE_LABEL_LINKONCE): Likewise.
6818         (TARGET_SUPPORTS_HIDDEN): Likewise.
6819         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
6820         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
6821         (FRAME_BEGIN_LABEL): Likewise.
6822         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
6823         (ASM_DECLARE_FUNCTION_NAME): Likewise.
6824         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
6825         (TARGET_ASM_UNIQUE_SECTION): Define.
6826         (EH_FRAME_SECTION_NAME): Define.
6827         (EH_FRAME_SECTION_ATTR): Likewise.
6828         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
6829         (TARGET_ASM_NAMED_SECTION): Likewise.
6830         (TARGET_SECTION_TYPE_FLAGS): Likewise.
6831         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
6832         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
6833         TARGET_ASM_EMIT_UNWIND_LABEL.
6834
6835 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6836
6837         * builtins.c (expand_builtin_mathfn): Add pow10* to the
6838         existing exp10* case.
6839         (expand_builtin): Likewise.
6840
6841 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
6842
6843         * doc/tm.texi (registers) <Values in Registers>: Add
6844         entry for REGMODE_NATURAL_SIZE.
6845
6846 2004-03-12  Richard Henderson  <rth@redhat.com>
6847
6848         PR target/14547
6849         * target.h (struct gcc_target): Move calls substructure before
6850         booleans.  Add split_complex_arg.
6851         * function.c (assign_parms, split_complex_args): Use it.
6852         * calls.c (expand_call): Likewise.
6853         (split_complex_values): Likewise.  Check for splittable types
6854         before allocating memory.
6855         (split_complex_types): Likewise.
6856         * system.h (SPLIT_COMPLEX_ARGS): Poison.
6857         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
6858         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
6859         * config/alpha/alpha.c (alpha_split_complex_arg): New.
6860         (TARGET_SPLIT_COMPLEX_ARG): New.
6861         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
6862         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
6863         (rs6000_override_options): Zap it for non-AIX.
6864         (rs6000_function_value): Use targetm.calls.split_complex_arg.
6865         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
6866         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
6867         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
6868         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
6869         SPLIT_COMPLEX_ARGS entry.
6870
6871 2004-03-11  Richard Henderson  <rth@redhat.com>
6872
6873         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
6874         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
6875         (alpha_emit_xfloating_arith): Update to match.
6876         (alpha_emit_xfloating_compare): Likewise.
6877         (alpha_emit_xfloating_cvt): Likewise.
6878         (alpha_emit_xfloating_libcall): Take already built symbol,
6879         mark call const.
6880         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
6881         op1 in a register.
6882
6883 2004-03-11  Richard Henderson  <rth@redhat.com>
6884
6885         PR target/14539
6886         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
6887
6888         * simplify-rtx.c (simplify_relational_operation): Fix typo.
6889
6890 2004-03-11  Richard Henderson  <rth@redhat.com>
6891
6892         PR middle-end/14477
6893         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
6894
6895 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
6896
6897         PR target/14262
6898         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
6899         defined, pass small BLKmode values in registers in the low-order part.
6900
6901 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
6902
6903         * combine.c (if_then_else_cond): Check for NULL return value of
6904         simplify_gen_subreg.
6905
6906 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
6907
6908         PR target/14496
6909         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
6910         TARGET_SINGLE_FLOAT.
6911
6912 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
6913
6914         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
6915         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
6916         * config/ia64/ia64.c (ia64_init_libfuncs): New.
6917         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
6918
6919 2004-03-11  Roger Sayle  <roger@eyesopen.com>
6920
6921         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
6922         -((int)X>>C) where C is an integer constant one bit less than the
6923         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
6924         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
6925
6926         * simplify-rtx.c (simplify_unary_operation): Also implement the
6927         above transformations at the RTL level.
6928
6929 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
6930
6931         * real.c (encode_ibm_extended): Do round low word.
6932
6933 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
6934
6935         * config/arm/arm.md (is_xscale): Comment this attribute and move
6936         it a bit further up in the file, closer to related attributes.
6937
6938 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
6939
6940         * config/host-solaris.c (sol_gt_pch_use_address): Add
6941         missing terminating marker to comment.
6942
6943 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
6944
6945         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
6946         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
6947         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
6948         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
6949         move_operand as source predicate in all cases.
6950         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
6951         Test reg_or_0_operand.  Use move_operand as source predicate.
6952         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
6953         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
6954         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
6955         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
6956         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
6957         Use move_operand as source predicate.  Remove 'K' constraint.
6958         (*movqi_internal): Likewise movqi_internal.
6959         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
6960         reg_or_0_operand.  Use move_operand as source predicate.
6961         (*movsf_softfloat): Likewise movsf_internal2.
6962         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
6963         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
6964         (*movdf_softfloat): Likewise movdf_internal2.
6965         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
6966         for DImode if !TARGET_64BIT.
6967         (mips_legitimize_move): Simplify accordingly.
6968
6969 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
6970
6971         PR/14362
6972         * var-tracking.c (struct variable_def): Added field refcount.
6973         (variable_htab_free): Decrease the refcount and delete variable
6974         only if there are no more references.
6975         (unshare_variable): New function.
6976         (vars_copy_1): Increase refcount instead of copying the variable.
6977         (variable_union): Share the variables where possible, unshare
6978         the variables if needed.
6979         (variable_different_p): Return false if var1 and var2 are
6980         the same structure.
6981         (variable_was_changed): Init the refcount of new variable.
6982         (set_frame_base_location): Unshare variable if needed.
6983         (set_variable_part): Init the refcount of new variable.
6984         Unshare the variables if needed.
6985         (delete_variable_part): Unshare the variables if needed.
6986         (emit_notes_for_differences_1): Init the refcount of new variable.
6987         (vt_add_function_parameters): Do not add function parameters to
6988         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
6989         (vt_initialize): Do not add frame_base_decl to IN set of
6990         ENTRY_BLOCK_PTR because it is unused anyway.
6991
6992 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
6993
6994         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
6995         (vars_copy): Likewise.
6996         (variable_union): Likewise.
6997         (set_variable_part): Likewise.
6998         (delete_variable_part): Likewise.
6999
7000 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
7001
7002         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
7003         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
7004         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
7005         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
7006         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
7007         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
7008         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
7009         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
7010         config/stormy16/stormy16.c: Fix comment typos and formatting.
7011
7012 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
7013
7014         * configure: Regenerate, since I forgot to while committing Paolo's
7015         changes.
7016
7017 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
7018
7019         PR ada/14131
7020         Move language detection to the top level.
7021         * configure.ac: Remove code to detect languages,
7022         it now lives exclusively in the top level.
7023         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
7024         top level, renamed to ACX_PROG_GNAT.
7025
7026 2004-03-10  Richard Henderson  <rth@redhat.com>
7027
7028         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
7029         extra arguments.
7030         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
7031         and host_xmake_file fragments.
7032         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
7033         (gt_pch_restore): Similarly for gt_pch_use_address.
7034         (default_gt_pch_get_address): New.
7035         (mmap_gt_pch_get_address): Split out of gt_pch_save.
7036         (default_gt_pch_use_address): Split out of gt_pch_restore.
7037         (mmap_gt_pch_use_address): Likewise.
7038         * hooks.c (hook_voidp_size_t_null): Remove.
7039         (hook_bool_voidp_size_t_false): Remove.
7040         * hooks.h: Likewise.
7041         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
7042         default_ or mmap_ definitions.
7043         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
7044         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
7045         and gt_pch_use_address.
7046         * config/host-linux.c, config/host-solaris.c: New files.
7047         * config/x-linux, config/x-solaris: New files.
7048         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
7049         Update for changed definition.
7050         (darwin_rs6000_gt_pch_use_address): Likewise.
7051         * doc/hostconfig.texi: Update docs.
7052
7053 2004-03-10  Richard Henderson  <rth@redhat.com>
7054
7055         PR c/14517
7056         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
7057         except for pedantic c90 mode.
7058
7059 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
7060
7061         * configure.ac: Bump AC_PREREQ to 2.59.
7062         * configure: Regenerate.
7063
7064 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
7065
7066         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
7067         (exp10_optab, exp2_optab): Define corresponding macros.
7068         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
7069         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
7070         using exp10?f2 and exp2?f2 patterns.
7071         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
7072         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
7073         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
7074         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7075
7076         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
7077         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
7078         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
7079
7080 2004-03-10  Anthony Green  <green@redhat.com>
7081
7082         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
7083
7084 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7085
7086         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
7087         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
7088         __LONGDOUBLE128.
7089         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
7090         TARGET_OS_AIX_CPP_BUILTINS.
7091         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
7092         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
7093         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
7094         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
7095         previous change.
7096
7097 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7098
7099         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
7100
7101 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7102
7103         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7104         __LONGDOUBLE128 on AIX.
7105
7106 2004-03-10  Andrew Haley  <aph@redhat.com>
7107
7108         PR optimization/14381
7109         * function.c (expand_function_end): Emit a blockage insn before
7110         the epilogue when -fnon-call-exceptions is used.
7111
7112         * except.c (expand_start_all_catch): Make comment more accurate.
7113
7114 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7115
7116         PR target/14480
7117         * config/rs6000/t-rtems: Add missing file on branch.
7118
7119 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
7120
7121         * dbxout.c (dbxout_symbol_location): Do not output references
7122         to optimized-out constant pool symbols.
7123
7124 2004-03-10  Andreas Schwab  <schwab@suse.de>
7125
7126         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
7127         twon34_r.
7128
7129 2004-03-09  James E Wilson  <wilson@specifixinc.com>
7130
7131         * alias.c (alias_sets_might_conflict_p): New.
7132         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
7133         * common.opt (Wstrict-aliasing=): New.
7134         * flags.h (warn_strict_aliasing): Change type to int.
7135         * opts.c (warn_strict_aliasing): Change type to int.
7136         (common_handle_option): Handle OPT_Wstrict_aliasing_.
7137         * tree.h (alias_sets_might_conflict_p): Declare it.
7138         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
7139
7140 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
7141
7142         PR bootstrap/12371
7143         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
7144         (CALL_USED_REGISTERS): Likewise.
7145         (REG_CLASS_CONTENTS): Likewise.
7146         (REG_ALLOC_ORDER): New.
7147         (REGNO_REG_CLASS): Use regno_reg_class.
7148         * config/m68k/m68k.c: Add regno_reg_class array.
7149
7150 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
7151
7152         * config/ia64/ia64.md (divsi3): Fix algorithm.
7153           (udivsi3): Ditto.
7154           (setf_exp_xf): Remove '*' from name.
7155         * testsuite/gcc.dg/20040309-1.c: New test.
7156
7157 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
7158
7159         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
7160         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
7161         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
7162         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
7163         (sparc_aout_select_rtx_section): Don't check
7164         SUNOS4_SHARED_LIBRARIES.
7165         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
7166
7167 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
7168
7169         PR other/14474
7170         * doc/md.texi (Pattern Ordering, Dependent Patterns)
7171         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
7172         INTERNALS".
7173
7174 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7175
7176         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
7177         (LIBGCC_SPEC): Update to match.
7178
7179 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7180
7181         * c-decl.c (last_function_parms, last_function_parm_tags)
7182         (last_function_parm_others, current_function_parms)
7183         (current_function_parm_tags, current_function_parm_others):
7184         Delete.
7185         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
7186         New macros.
7187         (grokdeclarator): For function definitions, save the arg-info
7188         block from the declarator in DECL_ARGUMENTS.
7189         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
7190         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
7191         contains only PARM_DECLs.  Improve diagnostics.
7192         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
7193         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
7194         (store_parm_decls_newstyle): Take the function to operate on,
7195         and an arg-info block, as arguments; don't get anything from
7196         current_function_* globals.
7197         (store_parm_decls_oldstyle): Likewise.
7198         (store_parm_decls): Pass fndecl and its arg-info block down to
7199         store_parm_decls_newstyle/oldstyle.  Send functions with empty
7200         argument lists through store_parm_decls_newstyle to reduce
7201         overhead.
7202         (pushdecl): Comment on the problems with the call to copy_node.
7203         Clear DECL_ARGUMENTS of the old node after copying it, if it
7204         is an arg-info block instead of a chain of decls.
7205         (start_function): Do not manipulate current_function_parm* or
7206         last_function_parm*.
7207
7208 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7209             Andrew Pinski  <pinskia@physics.uc.edu>
7210
7211         * ifcvt.c (noce_try_sign_mask): New function to transform
7212         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
7213         (noce_process_if_block): Call noce_try_sign_mask.
7214
7215 2004-03-09  Andrew Pinski  <apinski@apple.com>
7216
7217         * c-typeck.c (tagged_types_tu_compatible_p):
7218         Fix typo.
7219
7220 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7221
7222         * simplify-rtx.c (simplify_const_relational_operation): New function
7223         renamed from simplify_relational_operation.
7224         (simplify_relational_operation): Change prototype to accept an
7225         additional mode argument.  Call simplify_const_relational_operation.
7226         (simplify_gen_relational): Update simplify_relational_operation call.
7227         (simplify_ternary_operation): Update simplify_relational_operation
7228         subroutine call to use simplify_const_relational_operation instead.
7229
7230         * rtl.h (simplify_const_relational_operation): Prototype here.
7231         (simplify_relational_operation): Add addtional mode argument.
7232
7233         * combine.c (combine_simplify_rtx): Update calls to
7234         simplify_relational_operation.
7235         (simplify_set): Likewise.
7236         (gen_binary): Likewise.
7237         * cse.c (fold_rtx): Likewise.
7238         * dojump.c (compare_from_rtx): Likewise.
7239         (do_compare_rtx_and_jump): Likewise.
7240         * integrate.c (subst_constants): Likewise.
7241         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
7242
7243 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
7244
7245         * config/m32r/m32r.md: Remove all define_peephole's.
7246
7247 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
7248
7249         * config/rs6000/rs6000.md: Remove trailing whitespace.
7250
7251 2004-03-08  Eric Christopher  <echristo@redhat.com>
7252
7253         * Makefile.in (site.exp): Add libiconv variable definition.
7254
7255 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
7256
7257         * configure: Regenerate for config/accross.m4 correction.
7258
7259 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7260
7261         PR target/14480
7262         * config/rs6000/t-rtems: Add missing file on branch.
7263
7264 2004-03-08  Roger Sayle  <roger@eyesopen.com>
7265
7266         PR middle-end/14289
7267         * c-typeck.c (c_mark_addressable): A register variable should
7268         be considered global if its not automatic, i.e. TREE_PUBLIC,
7269         TREE_STATIC or DECL_EXTERNAL.
7270         * function.c (put_var_into_stack): Call abort when placing a
7271         hard register into the stack, if x_parm_reg_stack_loc is NULL.
7272
7273 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
7274
7275         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
7276         ("*extendqisi2_short_displ"): Likewise.
7277
7278 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
7279
7280         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
7281         (comp_operator): Likewise.
7282         * config/pdp11/pdp11-protos.h: Remove corresponding
7283         prototypes.
7284
7285 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
7286
7287         * expr.c (highest_pow2_factor_for_type): Rename into
7288         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
7289         TYPE_ALIGN when the target is a COMPONENT_REF.
7290         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
7291
7292 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7293
7294         * config/rs6000/rs6000.c: Formatting fix.
7295         (legitimate_offset_address_p): Correct offset range check.
7296
7297         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
7298         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
7299         and MASK_STRING.
7300
7301 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7302
7303         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
7304         for little endian.
7305         ("ashrdi3_no_power"): Disable for little endian.
7306         (ashrdi3): Same.
7307
7308 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7309
7310         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
7311         builtins.
7312
7313 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
7314
7315         PR target/14471
7316         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
7317         case, checking for -no-mul-bug-abort option.
7318         * configure, config.in: Regenerate.
7319         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
7320         and -mno-mul-bug-workaround.
7321         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
7322         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
7323         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
7324         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
7325         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
7326         sure mulu.d is not last on cache-line.
7327         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
7328         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
7329         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
7330         (TARGET_SWITCHES): New options -mmul-bug-workaround and
7331         -mno-mul-bug-workaround.
7332         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
7333         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
7334         * config/cris/cris.c (cris_operand_extend_operator): Clarify
7335         relation to MULT in head comment.
7336         (cris_op_str): Abort for MULT.
7337         (cris_print_operand) <case '!'>: New case.
7338
7339 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7340
7341         PR debug/11983
7342         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
7343         dw_val_class_vec.  Replace use throughout file.
7344         (dw_float_const): Delete.
7345         (dw_vec_const): New.
7346         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
7347         throughout file.
7348         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
7349         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
7350         (size_of_die): Adjust dw_val_class_vec sizing.
7351         (output_die): Output dw_val_class_vec.
7352         (insert_int, extract_int, insert_float): New functions.
7353         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
7354         Handle CONST_VECTOR.
7355         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
7356
7357 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7358
7359         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
7360         AltiVec abi cannot co-exist.
7361
7362         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
7363
7364 2004-03-07  Jan Hubicka  <jh@suse.cz>
7365
7366         * except.c (emit_to_new_bb_before):  Break fallthru edges.
7367
7368 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
7369
7370         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
7371         ("*lshrsi3"): Also accept an immediate for 68HC12.
7372         ("*ashrsi3_const"): Likewise.
7373         ("*ashrsi3"): Likewise.
7374         ("*ashlsi3_const"): Likewise.
7375         ("*ashlsi3"): Likewise.
7376         ("cmphi_1_hc12"): Compare two hard register by pushing them and
7377         comparing with a pop; don't use a split for that.
7378         ("cmphi split"): Disable compare split for 68HC12.
7379
7380         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
7381         the status operands if they have side effects.
7382
7383 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
7384
7385         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
7386         definition.
7387         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
7388         config/h8300/h8300.h, config/ia64/ia64.h,
7389         config/mcore/mcore.h, config/mmix/mmix.h,
7390         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7391         config/stormy16/stormy16.h, config/v850/v850.h,
7392         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
7393         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
7394         definition.
7395
7396 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7397
7398         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
7399         <XOR_EXPR>: Fold x ^ x as zero.
7400         <AND_EXPR>: Fold x & x as x.
7401
7402 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7403
7404         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
7405         "foo++ == const" into "++foo == const+incr".
7406
7407 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
7408
7409         * config/mips/mips.c (mips_in_small_data_p): Return false if
7410         TARGET_ABICALLS.
7411
7412 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
7413
7414         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
7415         the stack register.
7416         (expand_prologue): Don't make an interrupt or a trap handler a far
7417         symbol.
7418         (m68hc11_initial_elimination_offset): Likewise.
7419
7420 2004-03-06  Richard Henderson  <rth@redhat.com>
7421
7422         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
7423
7424 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7425
7426         * config/ns32k/ns32k-protos.h: Add a prototype for
7427         ns32k_notice_update_cc.
7428         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
7429         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
7430         ns32k_notice_update_cc.
7431
7432 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
7433
7434         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
7435         "*load_multiple_si"): Allow only if reload_completed.
7436         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
7437         Likewise.
7438
7439 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7440
7441         * config/vax/vax-protos.h: Add a prototype for
7442         vax_notice_update_cc.
7443         * config/vax/vax.c (vax_notice_update_cc): New.
7444         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
7445         vax_notice_update_cc.
7446
7447 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
7448
7449         * collect2.c (main): Only export initfunc and finifunc if
7450         LD_INIT_SWITCH not defined.
7451         (scan_prog_file): Only export constructors and destructors if
7452         LD_INIT_SWITCH not defined.  Only export symbols not found in
7453         shared objects.
7454
7455 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7456
7457         * pa.md (icacheflush): Reorder operands to make match_scratch operand
7458         last.
7459         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
7460         from calls to gen_icacheflush.
7461
7462 2004-03-06  Richard Henderson  <rth@redhat.com>
7463
7464         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
7465         (TARGET_LONG_DOUBLE_128): New.
7466         (TARGET_SWITCHES): Add long-double-{128,64}.
7467         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
7468         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
7469         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
7470         (WIDEST_HARDWARE_FP_SIZE): New.
7471         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
7472         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
7473         if TARGET_VAX_FLOAT.
7474         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
7475         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
7476
7477 2004-03-06  Richard Henderson  <rth@redhat.com>
7478
7479         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
7480         botched rtx class conversion.
7481
7482 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7483
7484         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
7485         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
7486
7487         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
7488         macros.
7489         * fold-const.c (fold_mathfn_compare, fold): Likewise.
7490
7491 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7492
7493         PR target/14343
7494         * config/i386/i386.md (movv2di_internal): Conditionalize on
7495         TARGET_SSE, not TARGET_SSE2.
7496
7497 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
7498
7499         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
7500         duplicated line.
7501
7502 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7503
7504         * builtins.c: Consistently use logN not log* in comments.
7505
7506 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7507
7508         * rtl.h (mem_expr_equal_p): Function prototype added.
7509         * cfgcleanup.c (merge_memattrs): New function.
7510         (flow_find_cross_jump): Call merge_memattrs for matching insns.
7511         * emit-rtl.c (mem_expr_equal_p): New function.
7512
7513 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
7514
7515         * objc/objc-act.c (synth_module_prologue): Const-qualify
7516         objc_selector type if using the GNU runtime; fix generated
7517         signatures for objc_msg_lookup and objc_msg_lookup_super
7518         to match what GNU ObjC headers provide; reformat and clean up.
7519         (synth_self_and_ucmd_args): Use previously constructed (and
7520         hence possibly const-qualified) objc_selector type.
7521
7522 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7523
7524         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
7525
7526 2004-03-05  Jason Merrill  <jason@redhat.com>
7527
7528         * tree.h (TYPE_HASH): Use TYPE_UID.
7529         (TREE_HASH): New macro with old definition of TYPE_HASH.
7530         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
7531         (build_array_type, build_function_type): Likewise.
7532         (build_method_type_directly): Likewise.
7533         (build_offset_type, build_complex_type): Likewise.
7534         (type_hash_list, attribute_hash_list): Likewise. Now static.
7535         * except.c: s/TYPE_HASH/TREE_HASH/.
7536
7537 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
7538
7539         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
7540         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
7541         __va_ndx by 2 words when referencing an argument on the stack.
7542         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
7543         words when an arg on the stack is first seen.
7544
7545 2004-03-05  Paul Brook  <paul@codesourcery.com>
7546
7547         * arm.h (ARM_FLAG_VFP): Remove.
7548         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
7549         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
7550
7551 2004-03-05  Paul Brook  <paul@codesourcery.com>
7552
7553         * function.c (assign_parms): Include pretend alignment offset.
7554
7555 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7556
7557         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
7558         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
7559
7560 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
7561
7562         * configure.ac: When passing --enable-languages to subdir
7563         configure when host != build, make sure we don't pass an empty
7564         value.
7565         * configure: Regenerate.
7566
7567 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
7568
7569         PR 13577
7570         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
7571         options.
7572
7573 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
7574
7575         * simplify-rtx.c (simplify_relational_operation): If
7576         flag_wrapv is set, do not move terms between the two
7577         side of a relational operator.
7578
7579 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
7580
7581         * rtlanal.c: Include target.h and output.h
7582         (rtx_cost, address_cost, default_address_cost): Move from...
7583         * cse.c (rtx_cost, address_cost, default_address_cost):
7584         ... this file.
7585         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
7586         * Makefile.in: Adjust dependencies.
7587
7588 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
7589
7590         * cse.c (cse_end_of_basic_block): Make static.
7591         * local-alloc.c (function_invariant_p): Move to
7592         reload1.c.
7593         * loop.c (libcall_other_reg, record_excess_regs):
7594         Make static.
7595         * reload1.c (function_invariant_p): Moved here
7596         from local-alloc.c, made static.
7597         * rtl.h (cse_end_of_basic_block, function_invariant_p,
7598         libcall_other_reg, record_excess_regs): Remove
7599         declarations.
7600
7601 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7602
7603         * config/m32r/m32r.c (signed_comparison_operator): Add a
7604         missing parenthesis.
7605
7606 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
7607
7608         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
7609         going to call mmap again.  Read the file into the right place.
7610         Give a fatal error if we have to relocate.
7611
7612 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
7613
7614         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
7615         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
7616
7617 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
7618
7619         PR other/14354
7620         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
7621         round the same.  When rounding, clear bits that would cause a
7622         second rounding in pack_d.
7623         (_fpmul_parts): Ditto.  Remove #if 0:d code.
7624
7625 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
7626
7627         PR c++/14425, c++/14426
7628         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
7629         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
7630         Change C++ definitions to accept a 'const int' argument;
7631         the prototypes already do.
7632         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
7633         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
7634         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
7635         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
7636         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
7637         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
7638         end in ..._int; change them to accept an int instead of a char
7639         as the last parameter.
7640
7641 2004-03-04  Phil Edwards  <phil@codesourcery.com>
7642
7643         * genmultilib:  Change '=' to '-' when translating option names
7644         to directory names.
7645
7646 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7647
7648         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
7649         stack slot for temp used for result of BLKmode but in integral mode.
7650
7651 2004-03-04  Jan Hubicka  <jh@suse.cz>
7652
7653         * reload.c (find_reloads): Reorganize if seqeunce to switch.
7654
7655         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
7656         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
7657
7658 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
7659
7660         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
7661         * testsuite/gcc.dg/20040303-1.c: New test.
7662
7663 2004-03-04  Steven Bosscher  <stevenb@suse.de>
7664
7665         * ppro.md: Rewrite as a DFA pipeline description.
7666         * i386.md: Remove all uses of the ppro_uops attribute.
7667         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
7668         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
7669         ix86_sched_reorder, ix86_variable_issue,
7670         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
7671         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
7672         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
7673         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
7674         * athlon.md (athlon_ssecmp_load): Fix comment
7675
7676 2004-03-04  Stuart Hastings  <stuart@apple.com>
7677
7678         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
7679
7680 2004-03-04  Stuart Hastings  <stuart@apple.com>
7681
7682         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
7683         686, tell Darwin assembler to allow prefetch insns, non-empty def
7684         of SUBTARGET_OPTION_TRANSLATE_TABLE.
7685
7686 2004-03-04  DJ Delorie  <dj@redhat.com>
7687
7688         PR optimization/14282
7689         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
7690         between a call and the assignment of its return value.
7691
7692 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
7693
7694         * config/h8300/h8300.c: Put a comment for every function.
7695
7696 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
7697
7698         * config/h8300/h8300.md: Add comments about peephole2's.
7699
7700 2004-03-04  Steven Bosscher  <stevenb@suse.de>
7701
7702         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
7703
7704 2004-03-04  Jan Hubicka  <jh@suse.cz>
7705
7706         * cfgcleanup.c (thread_jump): Update call of cselib_init.
7707         * cselib.c (cselib_record_memory): New static variable.
7708         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
7709         Give up on memories when asked for.
7710         (cselib_init): Accept new argument.
7711         * cselib.h (cselib_init): Update prototype.
7712         * gcse.c (local_cprop_pass): Update call of cselib_init.
7713         * loop.c (load_mems): Update call of cselib_init.
7714         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
7715         * sched-deps.c (sched_analyze): Update call of cselib_init.
7716
7717 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
7718             GP <gp@qnx.com>
7719
7720         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
7721         when compiling PIC.
7722
7723 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
7724
7725         PR/14362
7726         * var-tracking.c (track_expr_p): Do not track variables which
7727         should be ignored for debugging purposes.
7728
7729 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7730
7731         * real.c (encode_ibm_extended): Don't bother rounding low double.
7732         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
7733         when fmt->pnan < fmt->p.
7734
7735 2004-03-04  Eric Christopher  <echristo@redhat.com>
7736
7737         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
7738         only range of valid arg registers and fixed_regs.
7739
7740 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7741
7742         PR target/14406
7743         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
7744         (abstf2, abstf2_internal): New define_expand.
7745
7746 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7747
7748         PR optimization/14235
7749         * expr.c (convert_move): Copy the source to a new pseudo
7750         when converting from a sub-word source to a larger-than-word
7751         register which conflicts with the source.
7752
7753 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
7754
7755         PR 13728
7756         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
7757         parameters with the same name, unless one is a forward decl.
7758         Do not issue a redundant-redeclaration warning for forward
7759         decls of parameters.
7760
7761 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
7762
7763         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
7764         configuration.
7765
7766 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
7767
7768         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
7769
7770 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7771
7772         * target-def.h (TARGET_OPTF): Delete.
7773         * c-opts.c (TARGET_OPTF): Define.
7774
7775 2004-03-04  Jan Hubicka  <jh@suse.cz>
7776
7777         * cselib.c (cselib_finish): Fix another miss-application of my previous
7778         patch.
7779
7780 2004-03-03  Mike Stump  <mrs@apple.com>
7781
7782         Add framework support for darwin.
7783
7784         * c-incpath.c: Include target.h and machmode.h.
7785         (add_path): Use a consistent style for cpp_dir.  Initialize
7786         p->construct to 0.
7787         (add_cpp_dir_path): New.
7788         (register_include_chains): Add use of extra_includes callback.
7789         (hook_void_int): Add.
7790         (target_c_incpath): Add.
7791         * c-incpath.h (add_cpp_dir_path): New.
7792         (target_c_incpath_s): Add.
7793         (target_c_incpath): Add.
7794         (C_INCPATH_INIT): Add.
7795         * c-opts.c (c_common_missing_argument,
7796         c_common_handle_option): Add -F argument processing.
7797         * c.opt: Add -F argument processing.
7798         * gcc.c (trad_capable_cpp): Add -F argument processing.
7799         * cppfiles.c (find_file_in_dir): Update to use construct
7800         callback.
7801         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
7802         cpp_get_prev): New.
7803         (_cpp_find_file): Use search_path_exhausted.
7804         (make_cpp_dir): Initialize construct to 0.
7805         * cpplib.h (missing_header_cb
7806         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
7807         (cpp_callbacks): Add missing_header
7808         (cpp_dir): Add construct.
7809         * target-def.h: (TARGET_OPTF): New.
7810         * hooks.c (hook_void_int, hook_void_charptr): Add.
7811         * hooks.h (hook_void_int, hook_void_charptr): Add.
7812         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
7813         $(MACHMODE_H) dependencies.
7814         * doc/invoke.texi (Darwin Options): Document -F.
7815         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
7816         (TARGET_OPTF): Add.
7817         * fix-header.c (target_c_incpath): Add.
7818
7819         * config/darwin-c.c: Add c-incpath.h include.
7820         (using_frameworks, find_subframework_file,
7821         find_subframework_header, add_system_framework_path,
7822         frameworks_in_use, num_frameworks, max_frameworks,
7823         add_framework, find_framework, struct framework_header,
7824         framework_header_dirs, framework_construct_pathname,
7825         find_subframework_file, add_system_framework_path,
7826         add_framework_path, framework_defaults,
7827         darwin_register_frameworks, find_subframework_header): Add.
7828         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
7829         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
7830         (CPP_SPEC): Add __APPLE_CC__ support.
7831         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
7832
7833 2004-03-04  Jan Hubicka  <jh@suse.cz>
7834
7835         * cselib.c (cselib_finish): Fix miss-application of my previous
7836         patch.
7837
7838 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7839
7840         * hooks.c (hook_tree_tree_identity): New.
7841         * hooks.h: Add a prototype for hook_tree_tree_identity.
7842         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
7843         instead of MD_ASM_CLOBBERS.
7844         * system.h (MD_ASM_CLOBBERS): Poison.
7845         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
7846         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
7847         * target.h (gcc_target): Add md_asm_clobbers.
7848         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
7849         (ix86_md_asm_clobbers): New.
7850         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
7851         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
7852         TARGET_MD_ASM_CLOBBERS.
7853
7854 2004-03-03  Stuart Hastings  <stuart@apple.com>
7855
7856         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
7857
7858 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7859
7860         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
7861
7862         * config/sparc/sparc.h (ASM_FLOAT): Delete.
7863         (ASM_DOUBLE): Likewise.
7864         (ASM_LONGDOUBLE): Likewise.
7865         * config/sparc/pbd.h (ASM_INT_OP): Delete.
7866
7867 2003-03-03  Richard Henderson  <rth@redhat.com>
7868
7869         PR opt/13862
7870         * cselib.c (cselib_record_sets): Don't record multiple sets in
7871         asm insns.
7872
7873 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
7874
7875         * common.opt: Add description of the new -fgcse-after-reload flag.
7876
7877         * flags.h (flag_gcse_after_reload): Declaration of global variable.
7878
7879         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
7880         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
7881         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
7882         get_bb_avail_insn, hash_scan_set_after_reload,
7883         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
7884         gcse_after_reload, get_bb_avail_insn): New functions to implement
7885         gcse-after-reload.
7886         (gcse_after_reload_main): New function, the main entry point to
7887         gcse-after-reload.
7888
7889         * rtl.h (gcse_after_reload_main): Declaration of the new function.
7890
7891         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
7892
7893         * toplev.c (flag_gcse_after_reload): Initialization.
7894
7895         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
7896
7897         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
7898         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
7899         the gcse after reload optimization.
7900
7901         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
7902         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
7903         parameters.
7904
7905         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
7906
7907 2004-03-03  Nicolas Pitre <nico@cam.org>
7908
7909         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
7910         small negative values.
7911
7912 2004-03-03  Jan Hubicka  <jh@suse.cz>
7913
7914         * cselib.c (hash_table):  Remove GTY marker.
7915         (reg_values): Turn into array.
7916         (used_regs): Likewise.
7917         (n_used_regs): New static variable.
7918         (reg_values_old): Kill.
7919         (clear_table): Update uses of arrays.
7920         (cselib_lookup): Likewise.
7921         (cselib_record_set): Likewise.
7922         (cselib_init): Likewise.
7923         (cselib_finish): Likewise.
7924         (cselib_udpate_varray_sizes): Kill.
7925         * cselib.h (cselib_update_varray_sizes): Kill.
7926
7927 2004-03-03  Paul Brook  <paul@codesourcery.com>
7928
7929         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
7930
7931 2004-03-03  Jan Hubicka  <jh@suse.cz>
7932
7933         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
7934         Rename from ...; make statistics transparent.
7935         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
7936         (loc_descriptor): New structure.
7937         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
7938         add_statistics):
7939         New static function.
7940         (ggc_record_overhead, dump_statistics): New global function.
7941         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
7942         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
7943         from ...; accept locations
7944         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
7945         ggc_realloc, ggc_alloc_typed):  ... this one.
7946         from ...; accept locations
7947         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
7948         ggc_alloc_stat): Rename from ... ; pass locations
7949         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
7950         ... this one.
7951         (ggc_alloc_stat): Record overehead.
7952         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
7953         ggc_realloc, ggc_alloc_typed):  Turn to macros
7954         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
7955         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
7956         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
7957         * langhooks.h (lhd_make_node): Declare.
7958         (LANG_HOOKS_MAKE_TYPE): Default to new function,
7959         * langhooks.c (lhd_make_node): New.
7960         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
7961         locations.
7962         (rtx_alloc, swallow_copy_rtx): ... this one.
7963         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
7964         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
7965         * toplpev.c (finalize): Dump stats.
7966         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
7967         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
7968         Rename from ... ; pass locators.
7969         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
7970         build?,  build_decl): Declare.
7971         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
7972         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
7973         Declare.
7974         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
7975         build?,  build_decl): New macros.
7976         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
7977         * statistics.h: New file.
7978
7979 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7980             Richard Sandiford  <rsandifo@redhat.com>
7981
7982         * config/mips/mips.h (MASK_FIX_SB1): Bump.
7983         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
7984         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
7985         * config/mips/mips.c (mips_output_division): Fill the branch delay
7986         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
7987         TARGET_FIX_R4400.
7988         (mips_output_division): Adjust accordingly.
7989         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
7990         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
7991
7992 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
7993
7994         * alias.c (rtx_equal_for_memref_p): Use predicates
7995         to test rtx classes and new rtx class codes, possibly
7996         splitting conditionals that tested against '<' and 'o'.
7997         * caller-save.c (save_call_clobbered_regs): Likewise.
7998         * combine.c (contains_muldiv, find_split_point, subst,
7999         combine_simplify_rtx, simplify_if_then_else,
8000         simplify_set, simplify_logical, expand_compound_operation,
8001         make_compound_operation, if_then_else_cond, known_cond,
8002         apply_distributive_law, cached_nonzero_bits,
8003         cached_num_sign_bit_copies, simplify_shift_const,
8004         gen_binary, simplify_comparison, update_table_tick,
8005         record_value_for_reg, get_lsat_value_validate): Likewise.
8006         * cse.c (mention_regs, find_best_addr, find_comparison_args,
8007         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
8008         Likewise.
8009         * emit-rtl.c (copy_insn_1): Likewise.
8010         * expr.c (force_operand): Likewise.
8011         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
8012         * flow.c (notice_stack_pointer_modification_1,
8013         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
8014         and_reg_cond, elim_reg_cond): Likewise.
8015         * function.c (update_epilogue_consts): Likewise.
8016         * genattrtab.c (attr_rtx_1): Likewise.
8017         * genopinit.c (gen_insn): Likewise.
8018         * integrate.c (subst_constants): Likewise.
8019         * jump.c (reversed_comparison_code_parts,
8020         reversed_comparison_code, delete_related_insns,
8021         rtx_renumbered_equal_p): Likewise.
8022         * local-alloc.c (block_alloc): Likewise.
8023         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
8024         canonicalize_condition): Likewise.
8025         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
8026         Likewise.
8027         * optabs.c (add_equal_node, expand_binop): Likewise.
8028         * predict.c (estimate_probability): Likewise.
8029         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
8030         * recog.c (validate_replace_rtx_1, comparison_operator,
8031         offsettable_address_p, constrain_operands): Likewise.
8032         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
8033         Likewise.
8034         * regclass.c (scan_one_insn): Likewise.
8035         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
8036         * regrename.c (kill_autoinc_value): Likewise.
8037         * reload.c (find_reusable_reload, find_reloads,
8038         reg_overlap_mentioned_for_reload_p): Likewise.
8039         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
8040         * rtl.c (copy_rtx): Likewise.
8041         * rtl.h (CONSTANT_P, INSN_P): Likewise.
8042         * rtlanal.c (commutative_operand_precedence): Likewise.
8043         * sched-deps.c (conditions_mutex_p): Likewise.
8044         * sched-rgn.c (is_cfg_nonregular): Likewise.
8045         * simplify-rtx.c (simplify_gen_binary,
8046         simplify_gen_relational, simplify_replace_rtx,
8047         simplify_unary_operation, simplify_binary_operation,
8048         simplify_ternary_operation, simplify_rtx): Likewise.
8049         * unroll.c (reg_dead_after_loop): Likewise.
8050         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
8051         print_operand): Likewise.
8052         * config/arc/arc.c (proper_comparison_operator): Likewise.
8053         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
8054         Likewise.
8055         * config/avr/avr.c (_reg_unused_after): Likewise.
8056         * config/frv/frv.c (frv_ifcvt_modify_tests,
8057         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
8058         * config/i386/i386.c (ix86_comparison_operator,
8059         ix86_carry_flag_operator, fcmov_comparison_operator,
8060         arith_or_logical_operator, print_operand,
8061         ix86_expand_binary_operator, ix86_binary_operator_ok):
8062         Likewise.
8063         * config/i386/i386.md: Likewise.
8064         * config/ia64/ia64.c (not_postinc_memory_operand,
8065         ia64_print_operand, update_set_flags, errata_emit_nops):
8066         Likewise.
8067         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
8068         CONSTRAINT_OK_FOR_S): Likewise.
8069         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
8070         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
8071         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
8072         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
8073         Likewise.
8074         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
8075         eqne_comparison_operator, signed_comparison_operator):
8076         Likewise.
8077         * config/mips/mips.c (cmp_op, symbolic_expression_p):
8078         Likewise.
8079         * config/mmix/mmix (mmix_foldable_comparison_operator,
8080         mmix_comparison_operator): Likewise.
8081         * config/pa/pa.c (hppa_legitimize_address): Likewise.
8082         * config/rs6000/rs6000.c (stmw_operation,
8083         branch_comparison_operator, trap_comparison_operator,
8084         ccr_bit): Likewise.
8085         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
8086         * config/s390/s390.c (s390_alc_comparison,
8087         s390_slb_comparison):L Likewise.
8088         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
8089         Likewise.
8090         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
8091         noov_compare_op, noov_compare64_op, v9_regcmp_op,
8092         emit_hard_tfmode_operation, reg_unused_after)
8093         * doc/md.texi, doc/rtl.texi: Likewise.
8094
8095         * ra-debug.c: Add 2004 to list of copyright years.
8096         * unroll.c: Likewise.
8097
8098         * combine.c (simplify_logical): Remove dummy test,
8099         (apply_distributive_law): Fix typo in comment.
8100         GET_CODE (x) == AND so x is a commutative binary op.
8101         * jump.c (delete_related_insns): simplify loop
8102         condition, move testing of RTX codes inside the loop.
8103         (rtx_renumbered_equal_p): do not use RTX_CODE.
8104         * rtl.c (rtx_class): Declare as enum rtx_class.
8105         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
8106         Move to RTX_COMM_COMPARE class.
8107         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
8108         Move to RTX_CONST_OBJ class.
8109         * rtl.h (enum rtx_class): New declaration,
8110         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
8111         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
8112         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
8113         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
8114         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
8115         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
8116         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
8117         OBJECT_P): New macros.
8118         * config/sparc/sparc.c (noov_compare_op): Remove register
8119         from parameter.
8120
8121 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8122
8123         * target.h: Remove texi jargons in comments.
8124
8125 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8126
8127         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
8128         threshold to 0x4f.
8129
8130         Revert:
8131         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8132         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8133         as well.
8134         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8135         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8136
8137 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8138
8139         * doc/md.texi (cbranchmode4): New.
8140
8141 2004-03-02  Eric Christopher  <echristo@redhat.com>
8142
8143         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
8144         fix_trunc.
8145         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
8146         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
8147         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
8148         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
8149
8150 2004-03-02  Richard Henderson  <rth@redhat.com>
8151
8152         PR middle-end/11767
8153         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
8154         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
8155         before the compare, if flag_non_call_exceptions.
8156
8157 2004-03-02  Richard Henderson  <rth@redhat.com>
8158
8159         PR middle-end/14327
8160         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
8161         emitting the label, not after.
8162
8163 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8164
8165         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
8166         (m68hc11_mov_addr_mode): Likewise.
8167         (m68hc11_override_options): Initialize them based on target.
8168         (register_indirect_p): Allow a MEM for indirect addressing modes and
8169         use flags to control what is allowed.
8170         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
8171         supported addressing modes.
8172         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
8173         (go_if_legitimate_address_internal): Likewise.
8174         (m68hc11_indirect_p): Likewise and check the mode.
8175         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
8176
8177 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8178
8179         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
8180         (expand_builtin_setjmp_setup): Use
8181         targetm.builtin_setjmp_frame_value instead of
8182         BUILTIN_SETJMP_FRAME_VALUE.
8183         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
8184         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
8185         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8186         * target.h (gcc_target): Add builtin_setjmp_frame_value.
8187         * targhooks.c (default_builtin_setjmp_frame_value): New.
8188         * targhooks.h: Add a prototype for
8189         default_builtin_setjmp_frame_value.
8190         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
8191         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8192
8193 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8194
8195         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
8196         sequences of moves.
8197         (add peepholes): New peepholes to optimize sequences adding small
8198         constants.
8199         (bset peepholes): New peepholes to transform an OR in a bset form
8200         (bclr peepholes): Likewise for bclr form.
8201         (cmp peepholes): New peepholes to avoid register copies when comparing.
8202
8203 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8204
8205         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
8206         to separate push from moves.
8207         ("*pushdf_internal"): Likewise.
8208         ("*pushsf_internal"): Likewise.
8209         ("*pushsi_internal"): Likewise.
8210         ("movdi_internal"): Use define_insn_and_split; non push operand.
8211         ("movdf_internal"): Likewise.
8212         ("movsf_internal"): Likewise.
8213         ("movsi_internal"): Likewise.
8214         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
8215         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
8216         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
8217
8218 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8219
8220         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
8221         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
8222         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
8223         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
8224         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
8225         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
8226         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
8227         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
8228         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
8229         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
8230         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
8231
8232 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8233
8234         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
8235         (SOFT_XY_REGNUM): Define.
8236         (cmp split): Use the above instead of hard coded numbers.
8237         (8-bit op split): No need to check the mode; allow Q_REG.
8238         (ashift split): Adjust the first operand if it uses the SP and we
8239         are pushing the shifted value.
8240         (plus shift split): Fix when a source is in register D+X.
8241         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
8242
8243 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8244
8245         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
8246         comparing with Z register.
8247
8248 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8249
8250         * cfgloop.h (struct loop_desc): Removed.
8251         (struct loop): Fields simple, desc and has_desc removed.
8252         (simple_loop_p, count_loop_iterations): Declaration removed.
8253         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
8254         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
8255         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
8256         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
8257         simple_loop_exit_p, variable_initial_value, variable_initial_values,
8258         simple_condition_p, simple_increment, count_strange_loop_iterations,
8259         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
8260         Removed.
8261         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
8262
8263 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8264
8265         * genattrtab.c: Don't handle MATCH_INSN.
8266         * genrecog.c: Likewise.
8267         * gensupport.c: Likewise.
8268         * rtl.def (match_insn): Remove.
8269         * doc/md.texi (match_insn, match_insn2): Remove.
8270
8271 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
8272
8273         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
8274         macro results in memory allocation.
8275
8276 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
8277
8278         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
8279         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
8280         %(fbsd_dynamic_linker),
8281         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
8282         config/i386/freebsd.h
8283         * config/arm/freebsd.h: Ditto.
8284         * config/i386/freebsd.h: Ditto.
8285         * config/i386/freebsd64.h: Ditto.
8286         * config/ia64/freebsd.h: Ditto.
8287         * config/rs6000/sysv4.h: Ditto.
8288         * config/sparc/freebsd.h: Ditto.
8289
8290 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
8291
8292         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
8293
8294 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8295
8296         * rtl.def (define_combine): Remove.
8297
8298 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8299
8300         * config/h8300/h8300.md: Tweak formatting.
8301
8302 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8303
8304         * config/h8300/h8300.md (*cmphi_h8300): Rename to
8305         *cmphi_h8300_znvc.
8306         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
8307
8308 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
8309
8310         PR bootstrap/14356
8311         * gcc.c (process_command): Remove const-qualification from argv.
8312         (main): Likewise.
8313
8314 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8315
8316         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
8317         pushqi1_h8300hs_advanced.  Adjust its caller.
8318         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
8319         Adjust its caller.
8320
8321 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
8322
8323         * Makefile.in (install-libgcc, install-multilib): Pass
8324         mkinstalldirs var to libgcc.mk.
8325
8326 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8327
8328         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
8329         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
8330
8331 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8332
8333         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
8334         * config/h8300/h8300.md: Split several peephole2's, each into
8335         two.
8336
8337 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8338
8339         * dominance.c (recount_dominator): Handle postdominators.
8340
8341 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8342
8343         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
8344         (NUM_SYMBOL_TYPES): Likewise.
8345         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
8346         (mips_unspec_address): Declare.
8347         (mips_gotoff_page, mips_gotoff_global): Delete.
8348         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
8349         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
8350         (mips_symbolic_constant_p, mips_symbolic_address_p)
8351         (mips_symbol_insns): Handle new symbol types.
8352         (general_symbolic_operand): New predicate.
8353         (mips_unspec_address): Make extern.
8354         (mips_gotoff_page, mips_gotoff_global): Delete.
8355         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
8356         Handle new symbol types.
8357         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
8358         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
8359         mips_unspec_address directly.
8360         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
8361         the documentation of -mexplicit-relocs.
8362
8363 2004-03-01  Jeff Law  <law@redhat.com>
8364
8365         * fold-const.c (fold): An equality comparison of a non-weak object
8366         against zero has a known result.  Similarly an equality comparison
8367         of the address of two non-weak, unaliased symbols has a known result.
8368
8369         * ggc-page.c (struct page_entry): New field PREV.
8370         (ggc_alloc): Update PREV field appropriately.
8371         (sweep_pages): Likewise.
8372         (ggc_free): Likewise.  Use PREV field rather than loop to
8373         improve ggc_free performance.
8374
8375 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8376
8377         * config/mips/mips.c (mips_output_division): Use the division
8378         instruction to fill the delay slot of a zero check.
8379         (mips_idiv_insns): Adjust accordingly.
8380
8381 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
8382
8383         * config.gcc: Create a default tmake_file for linux, and use
8384         it in all but two linux clauses.  Comment those two.
8385
8386 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
8387
8388         * combine.c (try_combine):  Do not refer to is_replaced.
8389         (gen_lowpart_for_combine):  Perverse subregs now have a
8390         more politically correct name.
8391         * cse.c (cse_insn): Likewise.
8392         * jump.c: Fix bogus reference to delete_insn.
8393
8394 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
8395
8396         PR debug/14328
8397         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
8398         constants as signed values.
8399
8400         PR middle-end/13448
8401         * c-tree.h (readonly_warning): Rename to ...
8402         (readonly_error): ... this.
8403         * c-typeck.c (build_unary_op): Adjust accordingly.
8404         (readonly_warning): Rename to ...
8405         (readonly_error): ... this and issue errors, not warnings.
8406         (build_modify_expr): Call readonly_error, not readonly_warning.
8407         (c_expand_asm_operands): Likewise.
8408         * tree-inline.c (optimize_inline_calls): Do not inline functions
8409         after errors have occurred.
8410
8411 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8412
8413         * configure.ac: Rearrange some threading code for clarity;
8414         add section comment.
8415         * configure: Regenerate.
8416
8417 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8418
8419         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
8420         typos.
8421         * doc/cppopts.texi: Fix a typo.
8422
8423 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8424
8425         * config/i386/i386.md: Fix formatting.
8426
8427 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8428
8429         * configure.ac: Add some comments delineating sections of code.
8430
8431         * doc/install.texi: Note that libada uses autoconf 2.57 also.
8432
8433         * doc/install.texi: Fix idiot typo in previous commit.
8434
8435         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
8436
8437 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8438
8439         * config/h8300/h8300.md: Add comments about peephole2's.
8440
8441 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8442
8443         * config/h8300/h8300.md: Tweak operand numbers of some
8444         peephole2's.
8445
8446 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8447
8448         * config/h8300/h8300.md: Tweak comments about peephole2's.
8449
8450 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
8451
8452         PR middle-end/14203
8453         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
8454         instead of testing whether DECL_RTL is not NULL.
8455
8456 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8457
8458         * config/sh/sh.c: Fix formatting.
8459
8460 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8461
8462         * config/sh/sh.c: Convert to ISO-C.
8463
8464 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
8465
8466         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
8467         my previous patch.
8468
8469         * config/darwin.h (machopic_finish): Output stub even if the
8470         symbol is already defined.
8471
8472 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8473
8474         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
8475
8476 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8477
8478         * genattr.c (main): Don't define
8479         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
8480         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
8481         (DFA_PIPELINE_INTERFACE): Likewise.
8482         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
8483         (DFA_PIPELINE_INTERFACE): Likewise.
8484
8485 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
8486
8487         * config/mips/mips.md (tstsi, tstdi): Delete.
8488
8489 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8490
8491         * config/mips/mips.c (override_options): Remove an obsolete
8492         duplicate definition of the "e" constraint.
8493         * config/mips/mips.h: Update a comment accordingly.
8494
8495 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8496
8497         * config/mips/mips.md: Complete the unfinished R4000
8498         multiply/shift errata workaround.  Improve documentation.
8499         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
8500         has a hilo hazard.
8501         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
8502         (muldi3, muldi3_internal): Likewise.
8503         (muldi3_internal2): Remove, replacing with...
8504         (muldi3_mult3, muldi3_r4000): ...these new patterns.
8505         (mulsidi3): Take the errata into account.
8506         (mulsidi3_32bit): Remove, replacing with...
8507         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
8508         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
8509         (umulsidi3): Take the errata into account.
8510         (umulsidi3_32bit): Remove, replacing with..
8511         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
8512         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
8513         TARGET_FIX_R4000.
8514         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
8515         (smuldi3_highpart, umuldi3_highpart): Likewise.
8516         * doc/invoke.texi: Document the errata workaround.
8517
8518 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8519
8520         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
8521         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8522         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
8523         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
8524         * config/mips/mips.c (mips_idiv_insns): New function.
8525         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
8526         (mips_output_division): Add a workaround for the R4000 divide/shift
8527         errata.
8528         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
8529         the length of an "idiv" instruction.
8530         * doc/invoke.texi: Document the new switches.
8531
8532 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8533
8534         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
8535         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
8536
8537 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8538
8539         PR optimization/14229
8540         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
8541
8542 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
8543
8544         * fold-const.c (fold): Strip NOPs that change the signedness
8545         for RSHIFT too.  Expand comment.
8546
8547 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
8548
8549         PR optimization/7871
8550         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
8551         from or to call insns.
8552
8553 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8554
8555         PR optimization/7871
8556         * flow.c (propagate_one_insn): Interpret calls as setting global
8557         registers, not merely clobbering them.
8558
8559 2004-02-27  Dale Johannesen  <dalej@apple.com>
8560
8561         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
8562         config/darwin-protos.h:  Ditto.
8563         config/darwin.h:  Remove call to it.
8564         * combine.c (distribute_notes): Do not place a REG_DEAD note
8565         when value is both set and used.
8566
8567 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8568
8569         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8570         as well.
8571         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8572         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8573
8574 2004-02-27  Andrew Pinski  <apinski@apple.com>
8575
8576         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
8577         Speedup common case of the type values being in the same order.
8578
8579 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
8580
8581         * config/ia64/ia64.h (no-inline-float-divide): New option.
8582         * config/ia64/ia64.h (no-inline-int-divide): New option.
8583         * config/ia64/ia64.h (no-inline-sqrt): New option.
8584         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
8585         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
8586         * config/ia64/ia64.c (ia64_override_options): Modify error
8587         checking for inlined division/sqrt.
8588
8589 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8590
8591         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
8592         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
8593         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
8594         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
8595         copyright.
8596
8597 2004-02-27  Paul Brook  <paul@codesourcery.com>
8598
8599         * function.c (assign_parms): Don't count pretend args for alignment.
8600
8601 2004-02-27  Richard Henderson  <rth@redhat.com>
8602
8603         * passes.c: New file.
8604         * Makefile.in (OBJS-common): Add it.
8605         * diagnostic.c (rtl_dump_and_exit): Move decl ...
8606         * flags.h (rtl_dump_and_exit): ... here.
8607         * output.h (size_directive_output, last_assemble_variable_decl):
8608         Move from toplev.c.
8609         * rtl.h (reg_alloc): Move from toplev.c.
8610         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
8611         struct dump_file_info, enum dump_file_index, dump_file_tbl,
8612         open_dump_file, close_dump_file, rest_of_decl_compilation,
8613         rest_of_type_compilation, rest_of_handle_final,
8614         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
8615         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
8616         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
8617         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
8618         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
8619         rest_of_handle_tracer, rest_of_handle_if_conversion,
8620         rest_of_handle_if_after_combine, rest_of_handle_web,
8621         rest_of_handle_branch_prob,
8622         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
8623         rest_of_handle_addressof, rest_of_handle_sibling_calls,
8624         rest_of_handle_jump_bypass, rest_of_handle_inlining,
8625         rest_of_handle_null_pointer, rest_of_handle_combine,
8626         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
8627         rest_of_handle_gcse, rest_of_handle_loop_optimize,
8628         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
8629         (decode_d_option): Use enable_rtl_dump_file.
8630         (compile_file, finalize, do_compile): Move profile+combine+graph
8631         cleanup to finish_optimization_passes.
8632         * toplev.h (init_optimization_passes, finish_optimization_passes,
8633         enable_rtl_dump_file): Declare.
8634
8635 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
8636             Roger Sayle  <roger@eyesopen.com>
8637
8638         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
8639         operands to build a tree with swapped operands.
8640         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
8641         'unsignedp' predicate to specify the signedness.
8642
8643 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8644
8645         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
8646         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
8647         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
8648         comment typos and formatting.  Follow spelling conventions.
8649
8650 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
8651
8652         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
8653         fix_truncsfsi2.
8654
8655         * config/rs6000/spe.md: Delete spe_efsctuiz.
8656         Add spe_fixuns_truncsfsi2.
8657         Add spe_fix_truncsfsi2.
8658
8659 2004-02-26  Eric Christopher  <echristo@redhat.com>
8660
8661         * c-lex.c (c_lex_string_translate): New variable.
8662         (lex_string): Use to determine string translation.
8663         * c-pragma.h: Prototype.
8664         * c-parse.in (start_string_translation): New. Set above.
8665         (stop_string_translation): Ditto.
8666         (attribute, attribute_list, asm_def, asm_stmt,
8667         asm_operand): Use above functions.
8668         * cp/parser.c (cp_parser_declaration): Translate strings
8669         unless token is RID_EXTERN. Set c_lex_string_translate
8670         for recursive use.
8671         (cp_parser_asm_definition): Only translate argument strings
8672         to asms.
8673         (cp_parser_asm_operand_list): Ditto.
8674         (cp_parser_attribute_list): Do not translate attribute strings.
8675
8676 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8677
8678         * stmt.c (expand_start_case_dummy): Remove.
8679         * tree.h: Remove the corresponding prototype.
8680
8681 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8682
8683         * builtins.c (apply_args_register_offset): Remove.
8684         * tree.h: Remove the corresponding prototype.
8685
8686 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8687
8688         * stor-layout.c (is_pending_size): Remove.
8689         * tree.h: Remove the corresponding prototype.
8690
8691 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8692
8693         * recog.c (validate_replace_src): Remove.
8694         * recog.h: Remove the corresponding prototype.
8695
8696 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8697
8698         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
8699         MAYBE_REG_PARM_STACK_SPACE.
8700         * function.c: Likewise.
8701         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
8702         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
8703         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
8704         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
8705
8706 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8707
8708         * c-decl.c (c_expand_deferred_function): Remove.
8709         * c-tree.h: Remove the corresponding prototype.
8710
8711 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8712
8713         * postreload.c (reload_cse_move2add): Generate just a PLUS
8714         instead of an entire SET.
8715
8716 2004-02-26  Jan Hubicka  <jh@suse.cz>
8717
8718         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
8719         /pentium4m.
8720         * i386.c (override_options): Add support for new CPUs.
8721         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
8722         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
8723         constants.
8724         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
8725
8726 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
8727
8728         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
8729
8730 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
8731
8732         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
8733         (sparc_emit_fixunsdi): New prototype.
8734         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
8735         (sparc_emit_fixunsdi): New function.
8736         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
8737         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
8738         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
8739         to sparc_emit_floatunsdi.
8740         (fixuns_truncsfdi2): New expander.
8741         (fixuns_truncdfdi2): Likewise.
8742
8743 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
8744
8745         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
8746         unless HAVE_cc0.
8747
8748 2004-02-25  Richard Henderson  <rth@redhat.com>
8749
8750         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
8751         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
8752         use (op0-op1) == 0 if op0 is a pointer.
8753         * config/alpha/alpha.md (cmpdi): Use some_operand.
8754         (three comparison combine splits): Remove.
8755
8756 2004-02-25  Richard Henderson  <rth@redhat.com>
8757
8758         PR c/12794
8759         * c-common.c (handle_alias_attribute): Reject the attribute if
8760         current_function_decl is set.
8761
8762 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
8763
8764         * config.gcc: Add comment describing extra_gcc_objs.
8765         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
8766         * configure.ac (extra_gcc_objs): New substitution variable.
8767         (host_extra_gcc_objs): Don't substitute.
8768         * configure: Regenerate.
8769         * Makefile.in: Use extra_gcc_objs.
8770
8771 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
8772
8773         * doc/contrib.texi: Add an entry for myself.
8774
8775 2004-02-25  Jan Hubicka  <jh@suse.cz>
8776
8777         * basic-block.h (make_eh_edge, break_superblocks): Declare.
8778         * cfgbuild.c (make_eh_edge):  Make global.
8779         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
8780         * except.c (build_post_landing_pads, connect_post_landing_pads,
8781         dw2_build_landing_pads, sjlj_emit_function_enter,
8782         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
8783         sjlj_build_landing_pads): Update CFG.
8784         (emit_to_new_bb_before): New function.
8785         (finish_eh_generation): Do not rebuild the CFG.
8786
8787 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8788
8789         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
8790         target_cpu_default defines.
8791         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
8792         * pa.h (TARGET_DEFAULT): Likewise.
8793
8794 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
8795
8796         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
8797         comparisons with regard to signedness.
8798
8799 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
8800
8801         * arm.c (thumb_legitimize_address): New function.
8802         * arm-protos.h: Prototype it.
8803         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
8804         (LEGITIMIZE_ADDRESS): Use it.
8805
8806 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
8807
8808         * reload1.c (reload): Only spill eliminable register with multiple
8809         adjacent elimination alternatives if all alternatives fail.
8810
8811 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
8812
8813         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
8814         is -4095...+4095 inclusive.
8815
8816 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
8817
8818         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
8819         the bootstrap failure with Sun CC 5.4 and 5.5.
8820
8821 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
8822
8823         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
8824         which modifies NEWREG.
8825         (cse_condition_code_reg): Update the mode of CC_REG in
8826         CC_SRC_INSN on our own.
8827
8828 2004-02-24  Michael Matz  <matz@suse.de>
8829
8830         * config/i386/i386.c (ix86_comp_type_attributes): Check for
8831         regparm attributes.
8832
8833 2004-02-24  Richard Henderson  <rth@redhat.com>
8834
8835         * toplev.c (dump_file_tbl): Rename from dump_file.
8836         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
8837         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
8838         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
8839         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
8840         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
8841         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
8842         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
8843         s/rtl_dump_file/dump_file/g.
8844
8845 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
8846
8847         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
8848         (spe_fixuns_truncsfsi2): Delete.
8849
8850         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
8851         (fixuns_truncsfsi2): Delete.
8852
8853 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
8854
8855         PR/14240
8856         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
8857
8858 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
8859
8860         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
8861
8862 2004-02-24  Jason Merrill  <jason@redhat.com>
8863
8864         * tree.c (check_qualified_type): New fn.
8865         (get_qualified_type): Use it.  If type already has the desired
8866         quals, just return it.
8867         * tree.h: Declare it.
8868
8869 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
8870
8871         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
8872         TARGET_SCHED_FINISH_GLOBAL): New macros.
8873
8874         * target.h (md_init_global, md_finish_global): Function
8875         declarations corresponding to new target macros.
8876
8877         * haifa-sched.c (sched_init, sched_finish): Allow target to
8878         call the new schedular hooks.
8879
8880         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
8881         call to update_life_info.
8882
8883         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
8884         flag_schedule_insns for SH4.
8885
8886         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
8887         find_set_regmode_weight, find_insn_regmode_weight,
8888         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
8889         sh_variable_issue, high_pressure, ready_reorder,
8890         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
8891         functions used to throttle the insn movement in first
8892         scheduling pass for SH.
8893
8894         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
8895         TARGET_SCHED_FINISH_GLOBAL.
8896
8897 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
8898
8899         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
8900         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
8901         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
8902         symbols in sections named by the user.
8903         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
8904         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
8905         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
8906         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
8907         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
8908         the above.
8909         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
8910         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
8911         one more pseudo to further improve code generation.
8912         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
8913         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
8914         inside UNSPEC.
8915         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
8916         * config/frv/frv.c (frv_legitimate_address_p): Added
8917         allow_double_reg_p argument.  Adjust all callers.  Use it to
8918         decide whether to enable double-register indirect addressing.
8919         (frv_funcdesc_alias_set): Remove.
8920         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
8921         register.  Emit movdi_ldd.
8922         (ldd_address_operand): New.
8923         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
8924         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
8925         (PREDICATE_CODES): Add ldd_address_operand.
8926         * config/frv/frv.md (movdi_ldd): New.
8927         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
8928         intermediate computations if possible.
8929         (symGOTOFF2reg_i): Fix harmless typo.
8930         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
8931         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
8932         relocated p_vaddr to vaddr type.
8933         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
8934         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
8935         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
8936         MEM, or use a funcdesc alias set.  Use regular move instead of
8937         ldd.
8938         (dbl_memory_one_insn_operand): Recognize function descriptors by
8939         type or by alias set, and don't split them.
8940         * config/frv/frv.md (call, call_value): Never use call_internal
8941         for fdpic.
8942         (call_internal, call_value_internal): Never match for FDPIC.
8943         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
8944         call_value_fdpicsi): Require FDPIC.
8945         (ldd): Removed.
8946         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
8947         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
8948         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
8949         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
8950         FDPIC.  Compute data base address.
8951         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
8952         before the other self-specs are processed.
8953         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
8954         Build with -fPIC.
8955         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
8956         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
8957         inhibit_libc is defined.
8958         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
8959         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
8960         __FRV_FDPIC__.
8961         (__RELOC_POINTER): Define.
8962         (_Unwind_IteratePhdrCallback): Use it.
8963         * config/frv/frv.h (Twrite): Define.
8964         (TRANSFER_FROM_TRAMPOLINE): Use it.
8965         * config/frv/linux.h (INVOKE__main): Undefine.
8966         (Twrite): Override.
8967         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
8968         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
8969         (-mlibrary-pic): Emphasize that this option generates EABI code.
8970         (-mcpu): Add fr550.
8971         (-mpack): Remove.
8972         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
8973         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
8974         and CONSTs in FDPIC mode.
8975         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
8976         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
8977         * config/frv/frv.c (move_source_operand): Don't accept symbolic
8978         constants.
8979         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
8980         rather than 'i' constraint for the 2-instruction alternative.
8981         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
8982         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
8983         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
8984         EXTRA_CONSTRAINT_FOR_Y.
8985         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
8986         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
8987         (addsi3): Change 'Y' constraint to 'Q'.
8988         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
8989         * reload.c (CONST_POOL_OK_P): New macro.
8990         (find_reloads): Use it to decide whether a constant can be forced
8991         into memory.
8992         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
8993         constant satisfies got12_operand.
8994         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
8995         (frv_legitimate_address_p): Check for valid unspec offsets using
8996         got12_operand rather than frv_legitimate_fdpic_operand_p.
8997         (frv_legitimate_fdpic_operand_p): Delete.
8998         (frv_emit_movsi): Abort if we try to use the FDPIC register during
8999         or after reload.
9000         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
9001         TARGET_FDPIC.
9002         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
9003         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
9004         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
9005         (frv_fdpic_fptr_operand): Don't declare here.
9006         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
9007         rather than fdpic_got12_operand.
9008         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
9009         got12_operand and const_unspec_operand.
9010         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
9011         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
9012         (symbolic_operand): Remove.
9013         (const_unspec_operand): New predicate.
9014         * config/frv/frv.md (*movsi_got): Use got12_operand.
9015         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
9016         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
9017         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
9018         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
9019         * config/frv/frv.c (frv_unspec): New structure.
9020         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
9021         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
9022         validate CONST indices.  Use frv_output_const_unspec to print them.
9023         (frv_print_operand): Update call to unspec_got_name.  Use
9024         frv_output_const_unspec to print constant unspecs.
9025         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
9026         Reject UNSPECs otherwise.
9027         (unspec_got_name): Take the relocation number as argument, not an
9028         rtx containing it.
9029         (frv_output_addr_const_extra): Remove, replacing with...
9030         (frv_output_const_unspec): ...this new function.
9031         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
9032         (gpr_or_int12_operand): Use fdpic_got12_operand.
9033         (dbl_memory_one_insn_operand): Likewise.
9034         (fdpic_got12_operand): Use frv_const_unspec_p.
9035         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
9036         are already legitimate.  Use frv_small_data_reloc_p when deciding
9037         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
9038         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
9039         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
9040         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
9041         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9042         label, for real this time.
9043         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
9044         representation of visibility.
9045         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
9046         such.
9047         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
9048         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
9049         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
9050         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
9051         it was explicitly disabled.
9052         (frv_stack_info): There is no need to save the link register in every
9053         frame unless TARGET_LINKED_FP is true.
9054         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
9055         frame pointer if the stack pointer might change value.
9056         (frv_return_addr_rtx): Check and process "count" argument.
9057         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
9058         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
9059         (frv_find_base_term): Declare.
9060         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
9061         (FIND_BASE_TERM): Define.
9062         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
9063         small_data_register_operand, small_data_symbolic_operand.  Add
9064         symbolic_operand.
9065         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
9066         (frv_print_operand_memory_reference, output_move_single): Remove
9067         special handling for unlegitimized sdata addresses.
9068         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
9069         and symbolic addresses.
9070         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
9071         (frv_find_base_term): New function.
9072         (int_2word_operand): Check specifically for symbolic address constants.
9073         (pic_register_operand, pic_symbolic_operand): Delete.
9074         (small_data_register_operand, small_data_symbolic_operand): Delete.
9075         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
9076         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
9077         (move_source_operand): Only accept CONSTs if they're a two-insn
9078         symbolic constant.
9079         (fdpic_got12_operand): Don't require TARGET_FDPIC.
9080         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
9081         using gen_symGOTOFF2reg*.
9082         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
9083         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
9084         themselves a cost of 3 insns.
9085         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
9086         Change predicate to symbolic_operand.
9087         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
9088         (*movsi_lda_sdata): Delete.
9089         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
9090         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
9091         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
9092         frv-*-*linux*.
9093         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9094         label.
9095         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
9096         -multilib-library-pic.
9097         (LINK_SPEC): Add -z text for -mfdpic.
9098         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
9099         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
9100         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
9101         Override.
9102         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
9103         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
9104         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
9105         crtstuff-generated files.
9106         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
9107         * config.gcc: Add frv-*-*linux*.
9108         * config/frv/linux.h, config/frv/t-linux: New.
9109         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
9110         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
9111         when -mfdpic even if a linker script is explicitly listed.
9112         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9113         * config/frv/frv.c (frv_override_options): Clear asm_out
9114         unaligned_op for SImode on FDPIC.
9115         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
9116         argument passed to decl_readonly_section.
9117         (frv_assemble_integer): Revert 2003-09-30's change, but make the
9118         whole block run with FDPIC even with -fno-PIC.
9119         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9120         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
9121         symbol or label plus offset to memory.
9122         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
9123         GOTOFF and GPREL for LABEL_REF.
9124         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
9125         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
9126         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
9127         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
9128         * doc/invoke.texi: Document them.
9129         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
9130         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
9131         (frv_splittable_got_operand): Removed.
9132         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
9133         LO_SUM.  Add comments.
9134         (frv_override_options): Moved enabling of FDPIC to
9135         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
9136         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
9137         (frv_legitimize_fdpic_address): Don't duplicate logic in
9138         frv_emit_movsi.
9139         (frv_gen_GPsym2reg): New.
9140         (unspec_got_name): Added gprel.
9141         (frv_expand_fdpic_call): Add support for inlining PLTs.
9142         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
9143         (gpr_or_int12_operand): Added GPREL12.
9144         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
9145         (small_data_symbolic_operand): Fail if FDPIC.
9146         (fdpic_splittable_got_operand): Removed.
9147         (fdpic_got12_operand): Added GPREL12.
9148         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
9149         when appropriate.  Fix sdata GOTOFF.
9150         (frv_legitimate_constant_p): Require legitimate PIC operand for
9151         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
9152         (frv_assemble_integer): Move FDPIC funcdesc handling out of
9153         flag_pic case.
9154         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
9155         frv_assemble_integer fails.
9156         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
9157         (SUBTARGET_DRIVER_SELF_SPECS): New.
9158         (ASM_SPEC): Don't pass -mno-fdpic.
9159         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
9160         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
9161         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
9162         -multilib-library-pic.
9163         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
9164         condexec_si_media_operator, condexec_sf_add_operator and
9165         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
9166         and condexec_sf_unary_operator.
9167         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
9168         New.
9169         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
9170         movsi_internal.  Give them internal names.  movsi_got has type
9171         int.
9172         (fdpic got splitters): Remove.
9173         (symGPREL2reg, symGPREL2reg_hilo): New.
9174         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
9175         to -mlibrary-pic.  Map -multilib-library-pic to it.
9176         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
9177         Document.
9178         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
9179         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
9180         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
9181         (frv_cannot_force_const_mem): New function.
9182         (const_small_data_p, plus_small_data_p): Update comments on sdata
9183         on FDPIC.
9184         (frv_override_options): Set flag_pie for FDPIC too.
9185         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
9186         call-saved registers on FDPIC.
9187         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
9188         don't force LR to be preserved.
9189         (frv_expand_prologue): Likewise.
9190         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
9191         (frv_frame_pointer_required): Don't force it just because the
9192         FDPIC register is used.
9193         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
9194         operand only if !condexec_p.
9195         (frv_legitimize_address): Return the FDPIC-legitimized address.
9196         Don't match small data here on FDPIC.
9197         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
9198         symbols.  Use TRUE/FALSE instead of 1/0.
9199         (frv_local_funcdesc_p): New.
9200         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
9201         immediates when possible.
9202         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
9203         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
9204         an UNSPEC_GOT.
9205         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
9206         12-bit immediates when possible.
9207         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
9208         are not legitimate pic operands.
9209         (frv_in_small_data_p): Re-enable for FDPIC.
9210         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
9211         (FRV_GLOBAL_P): Removed.
9212         * config/frv/frv.md: Add modes to CONSTs.
9213         (movsi_got): New.
9214         (movsi_lo_sum_got): Use separate matches instead of match_dup.
9215         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
9216         (fdpic splittable operations): Match on flag_pic != 1.
9217         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
9218         * config/frv/frv.c (frv_asm_out_constructor,
9219         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
9220         bytes, not bits.
9221         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
9222         * config/frv/frv.c (frv_assemble_integer): Reject complex
9223         expressions referencing function SYMBOL_REFs.
9224         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
9225         (move_source_operand): Reject CONSTs that reference function
9226         SYMBOL_REFs on FDPIC.
9227         (frv_emit_movsi): If we get such a CONST, break it up.
9228         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
9229         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
9230         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
9231         MEM.
9232         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
9233         (frv_trampoline_size): Increase for FDPIC.
9234         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
9235         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
9236         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
9237         Disable use of GOTOFF for now.
9238         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
9239         Disable use of small data in FDPIC for now.
9240         (frv_asm_output_mi_thunk): Implement for FDPIC.
9241         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
9242         * config/frv/frv.c (frv_asm_out_constructor): Use
9243         frv_assemble_integer for FDPIC pointers.
9244         (frv_asm_out_destructor): Likewise.
9245         * config/frv/frv.md (ldd): Fix order of operands.  Use
9246         address_operand for input.
9247         2003-09-18  DJ Delorie  <dj@redhat.com>
9248         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
9249         (unspec_got_name): Correct typo.
9250         (frv_emit_movsi): Pre-expand splittable GOTs.
9251         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
9252         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
9253         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
9254         * config/frv/t-frv: Add -mfdpic multilibs.
9255         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
9256         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
9257         * config/frv/frv.c (frv_override_options): -mfdpic assumes
9258         flag_pic, default to 32-bit pics, require DWORD ops.
9259         (frv_override_options): Add W and Z constraints.
9260         (frv_expand_prologue): No pic prologue for -mfdpic.
9261         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
9262         (frv_print_operand_memory_reference): Handle GOT constants.
9263         (frv_legitimate_address_p): Allow GOT constants.
9264         (frv_legitimize_address): Handle GOT addresses too.
9265         (frv_legitimate_fdpic_operand_p): New.
9266         (frv_legitimize_fdpic_address): New.
9267         (unspec_got_name): New.
9268         (frv_output_addr_const_extra): New.
9269         (frv_expand_fdpic_call): New.
9270         (frv_fdpic_fptr_operand): New.
9271         (gpr_or_int12_operand): Handle GOT operands.
9272         (int_2word_operand): Handle GOT operands.
9273         (fdpic_operand): New.
9274         (fdpic_splittable_got_operand): New.
9275         (fdpic_got12_operand): New.
9276         (frv_emit_movsi): Handle GOT operands.
9277         (frv_assemble_integer): -mfdpic doesn't use rofixups.
9278         (frv_print_operand): Support 'g' code for GOT operands.
9279         * config/frv/frv-protos.h: Add prototypes as needed.
9280         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
9281         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
9282         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
9283         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
9284         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
9285         R_FRV_GOTOFFLO): New.
9286         (movsi_high_got, movsi_lo_sum_got): New.
9287         (*movsi_pic): Don't use this splitter for -mfdpic.
9288         (addsi3): Allow GOT references also.
9289         (call, call_value): Handle -mfdpic separately.
9290         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
9291         call_value_fdpicsi): New.
9292         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
9293         symGOTOFF2reg_i): New.
9294         * config/frv/frv.h (MASK_FDPIC): New.
9295         (TARGET_FDPIC): New.
9296         (TARGET_SWITCHES): Add -mfdpic.
9297         (FDPIC_FPTR_REGNO): New.
9298         (FDPIC_REGNO): New.
9299         (OUR_FDPIC_REG): New.
9300         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
9301         FDPIC_CALL_REGS.
9302         (REG_CLASS_NAMES): Likewise.
9303         (REG_CLASS_CONTENTS): Likewise.
9304         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
9305         (EXTRA_CONSTRAINT): Add it here.
9306         (FRV_GLOBAL_P): New.
9307         (OUTPUT_ADDR_CONST_EXTRA): New.
9308
9309 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9310
9311         * config/sparc/sparc.h: Remove commented-out definitions of
9312         TARGET_EDOM and GEN_ERRNO_RTX.
9313
9314 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9315
9316         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
9317         df_analyse with df_analyze.
9318
9319 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
9320
9321         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
9322         beginning of block.
9323
9324 2004-02-23  James E Wilson  <wilson@specifixinc.com>
9325
9326         * calls.c (precompute_arguments): Update comment.
9327
9328 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9329
9330         * et-forest.c: Replace et_occurences with et_occurrences.
9331
9332 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9333
9334         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
9335         with iv_analyze.
9336
9337 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
9338
9339         * config/i386/i386.c: Rename pni to sse3.
9340         * config/i386/i386.h: Likewise.
9341         * config/i386/i386.md: Likewise.
9342         * config/i386/pmmintrin.h: Likewise.
9343         * doc/extend.texi: Likewise.
9344         * doc/invoke.texi: Likewise.
9345
9346 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
9347             Kazu Hirata  <kazu@cs.umass.edu>
9348
9349         Remove -fwritable-strings.
9350         * c-common.c (fix_string_type): Don't check
9351         flag_writable_strings.
9352         (fix_string_type): Likewise.
9353         * c-opts.c (set_std_c89): Don't initialize
9354         flag_writable_strings.
9355         (set_std_c99): Likewise.
9356         * common.opt (fwritable-strings): Remove.
9357         * flags.h: Remove the external declaration of
9358         flag_writable_strings.
9359         * opts.c (common_handle_option) <OPT_fwritable_strings>:
9360         Remove.
9361         * toplev.c (flag_writable_strings): Remove.
9362         (f_options): Remove an entry for writable-strings.
9363         * varasm.c (const_hash_1) <STRING_CST>: Don't check
9364         flag_writable_strings.
9365         (compare_constant) <STRING_CST>: Likewise.
9366         (build_constant_desc): Likewise.
9367         * config/darwin.c (machopic_select_section): Likewise.
9368         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
9369         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
9370         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
9371         * config/mips/mips.c (mips_select_section): Likewise.
9372         (mips_encode_section_info): Likewise.
9373         * config/pa/pa.c (pa_select_section): Likewise.
9374         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
9375         * config/v850/v850.c (v850_select_section): Likewise.
9376         * doc/invoke.texi (-fwritable-strings): Remove.
9377         (-fno-const-strings): Don't mention -fwritable-strings.
9378         * doc/trouble.texi: Don't mention -fwritable-strings.
9379
9380 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
9381
9382         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
9383
9384 2004-02-23  Dale Johannesen  <dalej@apple.com>
9385
9386         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
9387         (movdf_hardfloat64):  Ditto.
9388         (movdf_softfloat64):  Ditto.
9389
9390 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
9391         * config/rs6000/rs6000.c (function_arg): call to
9392         rs6000_mixed_function_arg for DFmode moved to allow
9393         normal DFmode incoming register assignment.
9394
9395 2004-02-23  Dale Johannesen  <dalej@apple.com>
9396
9397         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
9398         (movdf_hardfloat64):  Ditto.
9399
9400 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9401
9402         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
9403         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
9404         copyright.
9405
9406 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
9407
9408         PR c/14156
9409         * c-typeck.c (c_expand_return): Change check for VAR_DECL
9410         to use DECL_P instead.
9411
9412         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
9413         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
9414
9415 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9416
9417         * Makefile.in (opts.o): Depend on target.h.
9418         * opts.c (decode_options): Use targetm.default_short_enums
9419         instead of DEFAULT_SHORT_ENUMS.
9420         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9421         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
9422         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
9423         * target.h (gcc_target): Add default_short_enums.
9424         * config/cris/cris.h: Remove a comment about
9425         DEFAULT_SHORT_ENUMS.
9426         * config/ip2k/ip2k.h: Likewise.
9427         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
9428         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
9429
9430 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9431             Falk Hueffner  <falk@debian.org>
9432
9433         PR c/14188
9434         * builtins.c (expand_builtin_va_arg): Emit an informative message
9435         if a trap is generated.
9436         * c-typeck.c (build_function_call): Likewise.
9437
9438 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9439
9440         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
9441         fopen.
9442         * libgcov.c: Include sys/stat.h.
9443         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
9444         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
9445         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
9446         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
9447
9448 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
9449
9450         * reorg.c: Remove comments about dead ports.
9451
9452 2004-02-22  Christopher Faylor  <cgf@redhat.com>
9453
9454         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
9455         extra host object file when targetting cygwin rather than generic
9456         object files.
9457
9458 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
9459
9460         Merge from tree-ssa:
9461         2003-11-20  Richard Henderson  <rth@redhat.com>
9462
9463                 * tree-inline.c (insert_decl_map): New.
9464                 (remap_decl, remap_type, remap_block, copy_body_r,
9465                 initialize_inlined_parameters, declare_return_variable,
9466                 remap_save_expr): Use it.
9467
9468         * function.c (copy_body_r): Add mapping from id->ret_label to
9469         id->ret_label.  Revert test for ret_label.
9470
9471 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9472
9473         * genoutput.c (process_template): Strip trailing whitespace in @
9474         templates and issue a warning if there was any.
9475
9476 2004-02-21  Christopher Faylor  <cgf@redhat.com>
9477
9478         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
9479         object file when targetting cygwin.
9480         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
9481         overridden by top-level Makefile.
9482
9483 2004-02-21  Roger Sayle  <roger@eyesopen.com>
9484
9485         * config/i386/i386.c (standard_80387_constant_p): Also prefer
9486         the x87's load constant instructions when optimizing for size.
9487
9488 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
9489
9490         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
9491         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
9492         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
9493         * fold-const.c: Likewise.
9494         * simplify-rtx.c: Likewise.
9495
9496 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
9497
9498         * combine.c (can_combine_p): Don't ignore SETs marked with
9499         REG_EH_REGION notes.
9500         (try_combine): When attemting to fix unrecognized insns, don't
9501         split a PARALLEL that contains the original i2.
9502
9503 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
9504
9505         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
9506         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
9507         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
9508         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
9509         (vector, pixel, bool): #define to __vector, __pixel and __bool.
9510         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
9511         portion of header.
9512         (__altivec_link_error_invalid_argument): Remove prototype; will use
9513         __builtin_altivec_compiletime_error("vec_*") instead.
9514         (vec_*): Fix/complete set of available operation overloads given the
9515         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
9516         cv-correctness of pointer arguments; in C, always check for correct
9517         argument types before macro expansion.
9518         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
9519         defining Darwin/PowerPC-specific '-f[no-]altivec' and
9520         '-W[no-]altivec-long-deprecated' switches.
9521         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
9522         '__vector', '__pixel' and '__bool' macros using
9523         '__attribute__((altivec(...)))' types.
9524         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
9525         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
9526         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
9527         New type nodes.
9528         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
9529         handling '-W[no-]altivec-long-deprecated'.
9530         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
9531         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
9532         altivec_expand_dst_builtin): Remove casts from integer literals.
9533         (altivec_expand_builtin): Likewise; handle expansion of new
9534         '__builtin_altivec_compiletime_error' function.
9535         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
9536         types, and make them distinct from other vector types; register
9537         '__builtin_altivec_compiletime_error' function.
9538         (print_operand): For 'P', print a full target register name instead of
9539         merely its number.
9540         (rs6000_attribute_table): Add "altivec" attribute.
9541         (rs6000_handle_altivec_attribute): New function.
9542         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
9543         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
9544         maps to).
9545         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
9546         declare.
9547         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
9548
9549 2004-02-20  James E Wilson  <wilson@specifixinc.com>
9550
9551         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
9552         check.
9553         (shift_mix4left+2): Delete redundant pattern.
9554
9555 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9556
9557         * alias.c (OUTGOING_REGNO): Don't define the default.
9558         * builtins.c (OUTGOING_REGNO): Likewise.
9559         (INCOMING_REGNO): Likewise.
9560         (apply_args_register_offset): Always use OUTGOING_REGNO.
9561         * combine.c (OUTGOING_REGNO): Likewise.
9562         * sibcall.c (OUTGOING_REGNO): Likewise.
9563         * defaults.h (INCOMING_REGNO): Provide the default.
9564         (OUTGOING_REGNO): Likewise.
9565
9566 2004-02-21  Jan Hubicka  <jh@suse.cz>
9567
9568         * params.def (max-peeled-insns, max-completely-peeled-insns,
9569         max-once-peeled-insns): Set to 400.
9570
9571 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9572
9573         PR c++/12007
9574         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
9575         are set for parameters before outputing debugging information.
9576
9577 2004-02-20  Falk Hueffner  <falk@debian.org>
9578
9579         PR target/14201
9580         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
9581         numbers.
9582
9583 2004-02-20  Per Bothner  <per@bothner.com>
9584
9585         * input.h:  Don't #include line-map.h.  It may cause link problems
9586         with undefined linemap_line_start when line-map.h is included but
9587         line-map.o is not linked, as currently happens with gengtype on
9588         compilers that don't support inline.
9589         * toplev.c:  So we do have to explicitly #include line-map.h here.
9590
9591 2004-02-20  Richard Henderson  <rth@redhat.com>
9592
9593         * doc/invoke.texi: Add -Wvariadic-macros.
9594
9595 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9596
9597         * haifa-sched.c (sched_emit_insn): Remove.
9598         * sched-int.h: Remove the corresponding prototype.
9599
9600 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9601
9602         Revert:
9603         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9604         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
9605         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9606         * config/cris/cris.h: Remove a comment about
9607         DEFAULT_SHORT_ENUMS.
9608         * config/ip2k/ip2k.h: Likewise.
9609         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
9610
9611 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
9612             Tom Tromey  <tromey@redhat.com>
9613
9614         * doc/install.texi: Moved --disable-libgcj and
9615         --with-system-zlib documentation to new section for
9616         Java-specific options.
9617         Added explicit Cross-Compiler-Specific Options subheading.
9618         Added section for Java-specific options.
9619
9620 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
9621
9622         * doc/install.texi (Building the Ada compiler): Remove
9623         example.
9624
9625 2004-02-20  James E Wilson  <wilson@specifixinc.com>
9626
9627         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
9628
9629 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9630
9631         * gcc.c (process_command): Allow translation of the copyright
9632         symbol but not the rest of the copyright message.
9633         * gcov.c (print_version): Likewise.  Allow translation of the
9634         message about warranty.
9635
9636 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
9637
9638         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
9639         predicate.
9640         ("*andsi_clear"): Tweak constraints to not match postincrement.
9641         Adjust the predicate to exclude a volatile memory reference.
9642         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
9643         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
9644
9645 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
9646
9647         * move-if-change: Remove.
9648         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
9649         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
9650         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
9651         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
9652         (s-gtyp-gen, s-iov): Use the top level move-if-change.
9653         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
9654
9655 2004-02-19  James E Wilson  <wilson@specifixinc.com>
9656
9657         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
9658         for operand2.  Add condition that requires register_operand operand2
9659         before reload.
9660
9661 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
9662             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9663
9664         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
9665         * config/mips/mips.md: Expand comment above unaligned loads and stores.
9666
9667 2004-02-19  Richard Henderson  <rth@redhat.com>
9668
9669         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
9670         * tree.c (build0, build1, build2, build3, build4): Split out from...
9671         (build): ... here.  Call them.
9672         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
9673
9674         * convert.c (convert_to_integer): Remove extra build argument.
9675         * tree-inline.c (expand_call_inline): Likewise.
9676
9677 2004-02-19  Richard Henderson  <rth@redhat.com>
9678
9679         * c-opts.c (warn_variadic_macros): New.
9680         (c_common_handle_option): Set it.
9681         (sanitize_cpp_opts): Copy it to cpp_opts.
9682         * c.opt (Wvariadic-macros): New.
9683         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
9684         * cppinit.c (cpp_create_reader): Initialize it.
9685         * cppmacro.c (parse_params): Check it.
9686
9687 2004-02-19  David Daney <ddaney@avtrex.com>
9688
9689         PR preprocessor/14198
9690         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
9691         builtin_assert ("machine=mips")
9692
9693 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9694
9695         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
9696         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9697         * config/cris/cris.h: Remove a comment about
9698         DEFAULT_SHORT_ENUMS.
9699         * config/ip2k/ip2k.h: Likewise.
9700         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
9701
9702 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
9703
9704         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
9705         when passing single SFmode quantities in general registers,
9706         put them in the high half.
9707
9708 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
9709
9710         * doc/md.texi (Standard Names): Document additional dependency on
9711         fix pattern.
9712
9713         * optabs.c (ftruncify): Remove.
9714         (expand_fix): Manually inline ftruncify above.
9715         (can_fix_p): Add FIXME note.
9716
9717 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
9718
9719         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
9720         spe_fixuns_truncsfsi2.
9721
9722         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
9723         fixuns_truncsfsi2.
9724
9725 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
9726
9727         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
9728         * testsuite/gcc.dg/20040219-1.c: New test.
9729
9730 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
9731
9732         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
9733         "*subsf3_cconly"): Subtraction is not commutative.
9734
9735 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
9736
9737         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
9738         (sdbout_symbol): If called before sdbout_init, queue DECL for
9739         later and return.
9740         (sdbout_init): Set sdbout_initialized true, process decls
9741         queued earlier by sdbout_symbol.
9742         (sdbout_finish): Use size_t for index variable.
9743
9744 2004-02-19  Jeff Law  <law@redhat.com>
9745
9746         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
9747         for unordered comparison codes.
9748
9749 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
9750
9751         * reload1.c (reload): Correct comment.
9752         (scan_paradoxical_subregs): Remove #if 0 and old comment.
9753         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
9754         register variables are not used by reload.
9755
9756 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
9757
9758         PR target/14209
9759         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
9760         constraints to not match postincrement.  Adjust the predicate to
9761         exclude a volatile memory reference.
9762
9763 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9764
9765         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
9766
9767 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9768
9769         * hooks.c (hook_void_tree_int): Remove.
9770         (hook_void_constcharptr): Likewise.
9771         (hook_int_void_0): Likewise.
9772         * hooks.h: Remove the prototypes for the above three
9773         functions.
9774         * targhooks.c (hook_bool_machine_mode_true): Remove.
9775         * targhooks.h: Remove the prototype for
9776         hook_bool_machine_mode_true.
9777
9778 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9779
9780         * emit-rtl.c (subreg_realpart_p): Remove.
9781         (reorder_insns_with_line_notes): Likewise.
9782         (end_full_sequence): Likewise.
9783         * rtl.h: Remove the prototype for the above functions.
9784
9785 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9786
9787         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
9788         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
9789         config/iq2000/iq2000.h, config/m32r/m32r.h,
9790         config/pdp11/pdp11.h, config/sparc/sparc.h,
9791         config/xtensa/xtensa.h: Remove commented-out or useless
9792         definitions of CASE_VECTOR_PC_RELATIVE.
9793
9794 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9795
9796         * loop.c (all_sets_invariant_p): Remove.
9797
9798 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
9799
9800         PR target/12916
9801         * config/sparc/sparc.h (NPARM_REGS): Delete.
9802         (BASE_RETURN_VALUE_REG): Likewise.
9803         (BASE_OUTGOING_VALUE_REG): Likewise.
9804         (BASE_PASSING_ARG_REG): Likewise.
9805         (BASE_INCOMING_ARG_REG): Likewise.
9806         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
9807         TARGET_ARCH64, not TARGET_V9.
9808         (function_arg_slotno): Dispatch based on the mode class.
9809         Handle vector modes like floating-point modes.
9810         (function_arg_record_value_1): Handle vector types like
9811         floating-point types.
9812         (function_arg_record_value_2): Likewise.
9813         Calculate regno after mode transformation.
9814         (function_arg): Handle vector modes like floating-point modes.
9815         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
9816         If ARCH64, do not recheck alignment.
9817         (function_arg_pass_by_reference): Reorder the conditions.
9818         (sparc_return_in_memory): Move after function_arg_padding.
9819         Implement calling conventions for vector modes.
9820         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
9821         (function_value): Move scope of 'regbase'.
9822         Implement calling conventions for vector modes.
9823         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
9824         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
9825         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
9826         the argument is passed by reference.
9827         (sparc_type_code): Handle vector types.
9828
9829 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
9830
9831         * function.c (assign_parms): When building decl_rtl for
9832         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
9833
9834 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
9835
9836         * expr.c (is_aligning_offset): Check if we are aligning the
9837         expressions's address over BIGGEST_ALIGNMENT in bytes, not
9838         in bits.
9839
9840 2003-02-18  Matt Austern  <austern@apple.com>
9841
9842         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
9843         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
9844         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
9845         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
9846         spec string.
9847         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
9848
9849 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
9850
9851         * dwarf2out.c (loclabel_num): Move outside #ifdef
9852         DWARF2_DEBUGGING_INFO and mark with GTY(()).
9853         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
9854         Mark with GTY(()).
9855         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
9856         Allocate memory with ggc_alloc.  No need to copy anything.
9857         (ia64_hpux_file_end): Update to match.
9858
9859 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
9860
9861         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
9862         by default.
9863
9864 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
9865
9866         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
9867         ("divmodtisi3"): Likewise.
9868         ("udivmoddi4", "udivmodtidi3"): Likewise.
9869         ("divmodsi4", "divmoddisi3"): Likewise.
9870         ("udivmodsi4", "udivmoddisi3"): Likewise.
9871         ("udivsi3", "umodsi3"): Likewise.
9872
9873 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
9874
9875         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
9876         placeholder insn when chunkifying the pool.
9877
9878 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9879
9880         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
9881         generating PIC code.
9882
9883 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9884
9885         * config/h8300/h8300-protos.h: Add a prototype for
9886         h8300_expand_branch.
9887         * config/h8300/h8300.c (h8300_expand_branch): New.
9888         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
9889         bgtu, beq, bne): Call h8300_expand_branch().
9890
9891 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9892
9893         * config/h8300/h8300-protos.h: Add prototypes for
9894         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
9895         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
9896         (h8300_hard_regno_mode_ok): Likewise.
9897         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
9898         h8300_hard_regno_nregs().
9899         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
9900
9901 2004-02-18  Per Bothner  <per@bothner.com>
9902
9903         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
9904         partly reverts my 2003-10-01 change, because we're back to logically
9905         including <command line> inside the main line.
9906         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
9907         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
9908         Fixes PR preprocessor/14103.
9909
9910         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
9911         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
9912         (cpp_push_include):  Don't need to increment pfile's line field.
9913         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
9914
9915         * c-ppoutput.c (print struct):  New first_time field.
9916         (init_pp_output):  Set print.first_time.
9917         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
9918         which is set also for (say) <command line>.  Clear print.first_time.
9919
9920         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
9921         does not match the code, so fix both.
9922         (should_stack_file):  Inline include_pch_p function.
9923         (include_pch_p):  Remove pointless function.
9924
9925         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
9926
9927 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9928
9929         * config/h8300/h8300.md (four define_peephole2's): Use
9930         h8300_regs_ok_for_stm().
9931
9932 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9933
9934         * config/h8300/h8300-protos.h: Update the prototype for
9935         expand_a_rotate().
9936         * config/h8300/h8300.c (expand_a_rotate): Remove the first
9937         argument.
9938         * config/h8300/h8300.md: Update all callers.
9939
9940 2004-02-18  Jan Hubicka  <jh@suse.cz>
9941
9942         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
9943         floats.
9944         (simplify_binary_operation): Deal with logicals on floats.
9945
9946         * i386.md (SSE fabs splitters): Emit new patterns.
9947         (SSE cmov splitters): Likewise.
9948         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
9949         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
9950         subregs.
9951         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
9952         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
9953
9954 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9955
9956         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
9957         by hand.
9958         (output_a_rotate): Tweak a comment.
9959         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
9960         (*rotlhi3_1): Change to rotlhi3_1.
9961         (*rotlsi3_1): Change to rotlsi3_1.
9962
9963 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
9964
9965         PR target/13866
9966         * arm.c (load_multiple_operation): Don't insist that the source reg
9967         of a post-increment component is the same as the destination.
9968         (store_multiple_operation): Likewise.
9969
9970 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9971
9972         * config/h8300/h8300.md: Move movsf patterns into one section
9973         of the file.
9974
9975 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9976
9977         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
9978         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
9979         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
9980         config/mips/linux64.h, config/pa/pa-64.h,
9981         config/rs6000/aix51.h, config/rs6000/aix52.h,
9982         config/rs6000/spe.md, config/sparc/linux.h,
9983         config/sparc/linux64.h: Update copyright.
9984
9985 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9986
9987         * config/h8300/h8300.md: Move push patterns into one
9988         section of the file.
9989
9990 2004-02-18  Mark Mitchell <mark@codesourcery.com>
9991
9992         PR c++/11326
9993         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
9994         fntype.
9995
9996 2004-02-18  Paul Brook  <paul@codesourcery.com>
9997
9998         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
9999
10000 2004-02-18  Paul Brook  <paul@codesourcery.com>
10001
10002         PR debug/12934
10003         * dwarf2out.c (loc_descriptor_from_tree): Handle
10004         EXPR_WITH_FILE_LOCATION.
10005
10006 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
10007
10008         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
10009         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
10010         trailing whitespace from instructions.
10011
10012 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
10013
10014         * configure.ac: When generating auto-build.h, pass
10015         --enable-languages to the sub-configure.
10016         Put quotes around ${program_transform_name} when generating
10017         name of as, ld, nm, objdump.
10018         * configure: Regenerate.
10019
10020 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
10021
10022         * Makefile.in (s-check, s-config, s-conditions, s-flags)
10023         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
10024         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
10025         (s-preds, s-iov): Do not depend on move-if-change.
10026
10027 2004-02-17  James E Wilson  <wilson@specifixinc.com>
10028
10029         * caller-save.c (insert_restore): Pass mem through copy_rtx.
10030         (insert_save): Likewise.
10031
10032 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10033
10034         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
10035         warning.
10036
10037 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10038
10039         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
10040         *one_cmplsi2_h8300.
10041         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
10042
10043 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10044
10045         * config/h8300/h8300-protos.h: Update the prototype of
10046         fix_bit_operand().
10047         * config/h8300/h8300.c (fix_bit_operand): Remove the second
10048         argument "what".
10049         * config/h8300/h8300.md: Update all callers.
10050
10051 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10052
10053         * config/h8300/h8300.c (fix_bit_operand): Change the name of
10054         the last argument to "code" from "type".
10055
10056 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10057
10058         * config/h8300/h8300.c: Remove an extern declaration of
10059         rtx_equal_function_value_matters.
10060
10061 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10062
10063         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
10064         by hand.
10065         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
10066         (*iorqi3_1): Change to iorqi3_1.
10067         (*xorqi3_1): Change to xorqi3_1.
10068
10069 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10070
10071         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
10072         typos.
10073
10074 2004-02-17  Jan Hubicka  <jh@suse.cz>
10075
10076         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
10077
10078 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
10079
10080         PR optimization/14119
10081         * combine.c (try_combine): When attemting to fix unrecognized insns,
10082         don't delete SETs marked with REG_EH_REGION notes.
10083
10084 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
10085
10086         * combine.c (simplify_if_then_else): Do not replace
10087         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
10088         modes differ.
10089
10090 2004-02017  Steven Bosscher  <stevenb@suse.de>
10091
10092         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
10093         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
10094         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
10095         * ada/utils.c: Likewise.
10096         * cp/decl.c: Likewise.
10097         * f/com.c: Likewise.
10098         * java/class.c: Likewise.
10099
10100 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10101
10102         * config/h8300/h8300.md: Fix comment typos.
10103
10104 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10105
10106         * config/mips/t-iris6gld: Renamed to ...
10107         * config/mips/t-irix-gld: ... this.
10108         * config.gcc (mips-sgi-irix6*): Reflect this
10109         (mips-sgi-irix5*): Use it with GNU ld.
10110
10111         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
10112         to ...
10113         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
10114         * config/mips/t-irix-gld: Reflect this.
10115         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10116
10117         * config/mips/iris5gld.h: New file.
10118         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
10119         Only use collect2 without gas.
10120
10121         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
10122         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10123         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
10124         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10125
10126         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
10127         * config/mips/iris5.h: ... here.
10128
10129         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
10130         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10131         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
10132
10133         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
10134         using irix_startfile_spec, irix_endfile_spec.
10135
10136 2004-02-16  Gunther Nikl  <gni@gecko.de>
10137
10138         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
10139
10140 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10141
10142         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
10143         insns by hand.
10144
10145 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10146
10147         * cfghooks.c (split_edge): Speed up updating of dominators.
10148
10149 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
10150
10151         PR c++/11326
10152         * c-common.c (flag_abi_version): Remove.
10153         * c-common.h (flag_abi_version): Likewise.
10154         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
10155         * c.opt (fabi-version): Remove.
10156         * calls.c (expand_call): Always pass a function type to
10157         struct_value_rtx.  Use convert_memory_address.
10158         * common.opt (fabi-version): Add it.
10159         * flags.h (flag_abi_version): Likewise.
10160         (abi_version_at_least): New macro.
10161         * opts.c (common_handle_option): Add OPT_fabi_version.
10162         * toplev.c (flag_abi_version): Define it.
10163         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
10164         New function.
10165         (ia64_output_mi_thunk): Use it.
10166         (ia64_struct_value_rtx): Likewise.
10167
10168 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10169
10170         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
10171         Don't generate insns by hand.
10172
10173 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
10174
10175         PR c++/14178
10176         * doc/invoke.texi (fabi-version): The default is 2 now.
10177
10178 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10179
10180         * loop-iv.c: New file.
10181         * Makefile.in (loop-iv.o): New.
10182         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
10183         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
10184         num_loop_branches): New functions.
10185         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
10186         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
10187         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
10188         get_simple_loop_desc, free_simple_loop_desc): Declare.
10189         (simple_loop_desc): New inline function.
10190         (struct rtx_iv, struct niter_desc): New.
10191         * cfgloopmanip.c (loopify): Specify semantics more precisely.
10192         * expr.c (force_operand): Handle subregs of expressions created by
10193         loop unroller.
10194         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
10195         parts of the initialization to toplev.c
10196         * loop-unroll.c (loop_exit_at_end_p): New.
10197         (unroll_and_peel_loops): Call iv_analysis_done.
10198         (decide_peel_once_rolling, decide_peel_completely,
10199         decide_unroll_stupid, decide_unroll_constant_iterations,
10200         decide_unroll_runtime_iterations, decide_peel_simple,
10201         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
10202         unroll_loop_runtime_iterations): Use new simple loop analysis.
10203         * loop-unswitch.c (compare_and_jump_seq): New.
10204         (may_unswitch_on_p): Renamed to ...
10205         (may_unswitch_on): Use new iv analysis.
10206         (reversed_condition): Export.
10207         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
10208         * predict.c (estimate_probability): Use new simple loop analysis.
10209         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
10210         canon_condition, simplify_using_condition): Declare.
10211         * stor-layout.c (get_mode_bounds): New.
10212         * toplev.c (rest_of_handle_loop2): Some parts of
10213         initialization/finalization moved here from loop-init.c.
10214
10215 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10216
10217         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
10218         pointer.
10219         (CALL_USED_REGISTERS): Likewise.
10220         (REG_ALLOC_ORDER): Likewise.
10221         (REG_CLASS) <GENERAL_REGS>: Likewise.
10222
10223 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
10224
10225         * doc/md.texi (Insn Canonicalizations): Document left-chaining
10226         in associative operators.
10227         * rtlanal.c (commutative_operand_precedence): Create some new
10228         variables.  Prefer a commutative operand on the left, then
10229         binary expressions, then NEG and NOT.
10230
10231 2004-02-16  Matthias Klose  <doko@debian.org>
10232
10233         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
10234         in terms of SHLIB_SOVERSION.
10235         * config/m68k/t-slibgcc-elf-ver: New file.
10236         * config/pa/t-slibgcc-elf-ver: New file.
10237         * config.gcc (m68k-linux, parisc-linux): Use them when not
10238         sjlj exceptions are not configured.
10239
10240 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
10241
10242         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
10243
10244 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
10245
10246         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
10247
10248 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
10249
10250         * doc/sourcebuild.texi: Mention backends.html.
10251
10252 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
10253
10254         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
10255         line-map.c, line-map.h, var-tracking.c: Fix comment
10256         formatting.
10257
10258 2004-02-16  Richard Henderson  <rth@redhat.com>
10259
10260         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
10261
10262         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
10263
10264 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10265
10266         * config/h8300/h8300.md: Remove unnecessary parallels from
10267         all define_insn and define_split patterns.
10268
10269 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10270
10271         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
10272         "clobber").
10273
10274 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
10275
10276         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
10277         '%#'.
10278
10279 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10280
10281         * config/ia64/ia64.c, config/mips/mips.c,
10282         config/mmix/mmix-modes.def: Fix comment typos.
10283
10284 2004-02-15  Roger Sayle  <roger@eyesopen.com>
10285
10286         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
10287         (get_directive_line): Remove unused function prototype.
10288
10289 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10290
10291         * tree-inline.c (copy_body_r): Do not replace ret_label.
10292
10293 2004-02-14  Jan Hubicka  <jh@suse.cz>
10294
10295         * i386.c (x86_four_jump_limit): New variable.
10296         (k8_avoid_jump_misspredicts): Rename to ...
10297         (ix86_avoid_jump_misspredicts): .. this one.
10298         (ix86_pad_returns): Break out from ...
10299         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
10300         to.
10301         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
10302
10303 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10304
10305         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
10306         PARALLEL is NULL.
10307
10308 2004-02-14  Per Bothner  <per@bothner.com>
10309
10310         * fix-header.c (line_table):  Move local variable in main to global.
10311         * scan.h (line_table):  Use it.
10312         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
10313         line (recently renamed to src_loc) before calling recognized_function.
10314
10315 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
10316
10317         * Makefile.in: Fix comment typos.
10318
10319 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
10320
10321         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
10322         for start_value when it is directly moved into reg, and factorize
10323         the retrieval of GET_MODE (reg).
10324
10325 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10326
10327         * config/mips/mips-protos.h (mips_load_got_page): Delete.
10328         (mips_load_got_global): Delete.
10329         (mips_gotoff_page): Declare.
10330         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
10331         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
10332         UNSPEC_LOAD_GOT pattern rather than a MEM.
10333         (*load_got[sd]i): New patterns.
10334         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
10335         (mips_load_got_page, mips_load_got_global): Delete.
10336         (mips_gotoff_page): New function.
10337         (override_options): Don't initialize mips_got_alias_set.
10338
10339 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10340
10341         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
10342         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
10343         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
10344         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
10345         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
10346         * config/mips/mips.c: Fix some overly-long lines.
10347         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
10348         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
10349
10350 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10351
10352         * configure.ac: Search for as, ld below libexec/gcc.
10353         * configure: Regenerate.
10354
10355 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10356
10357         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
10358         __builtin_arm_setwcx ().
10359         * config/arm/arm.c (arm_expand_builtin): Generate operands
10360         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
10361
10362 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10363
10364         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
10365         and "wmuluh" to "wmulsm" and "wmulum", respectively.
10366         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
10367         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
10368         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
10369         (_mm_mulhi_pu16): Likewise.
10370
10371 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
10372
10373         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
10374         DECL_NAME != 0 before dereferencing.
10375
10376 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
10377
10378         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
10379         (s390_output_addr_const_extra): Declare.
10380         (s390_output_pool_entry): Remove FILE * argument.
10381         * config/s390/s390.c (s390_output_symbolic_const): Remove.
10382         (s390_output_addr_const_extra): New function.
10383         (print_operand_address): Call output_addr_const instead of
10384         s390_output_symbolic_const.
10385         (print_operand): Likewise.
10386         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
10387         Remove FILE * argument.
10388         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
10389         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
10390         call.
10391
10392 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10393
10394         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
10395         (struct edge, struct vertex, struct graph): New.
10396         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
10397         free_graph): New functions.
10398
10399 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
10400
10401         * config/mips/mips.md (casesi_internal, casesi_internal_di):
10402         Use ".set macro" to avoid warnings about multi-instruction
10403         macros, since they're intentional.
10404
10405 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
10406
10407         * config/darwin.h: Add include guards.  Remove old, now incorrect,
10408         comment about STANDARD_EXEC_PREFIX.
10409
10410         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
10411         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
10412         for installing .1 manpages.  Add rules for installing cpp
10413         and gcov manpages under their installed names.
10414
10415 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
10416
10417         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
10418         host, but try LD_FOR_TARGET first.
10419         * configure: Rebuilt.
10420
10421 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10422
10423         * dbxout.c: Move declaration of dbxout_type_decl outside
10424         #ifdef DBX_DEBUGGING_INFO.
10425         * c-parse.in: Don't give the asmdef production a type.
10426
10427 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10428
10429         * debug.h (struct gcc_debug_hooks): Add type_decl field.
10430         (debug_nothing_tree_int): Prototype.
10431         (dwarf_debug_hooks): Delete, unused.
10432         * debug.c (do_nothing_debug_hooks): Update.
10433         (debug_nothing_tree_int): New function.
10434         * langhooks.h (struct lang_hooks_for_decls):
10435         Remove builtin_type_decls field.
10436         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
10437         (LANG_HOOKS_DECLS): Update.
10438         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
10439         Use debug_hooks->type_decl.
10440         * dbxout.c (preinit_symbols): New static.
10441         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10442         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
10443         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
10444         for symbols to output.
10445         (dbxout_type_decl): New function.
10446         (dbxout_symbol): If called before dbxout_init has run, queue
10447         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
10448         to TYPE_DECLs before emitting them.
10449         * xcoffout.c (assign_type_number): Delete.
10450         (xcoff_type_numbers): New static table.
10451         (xcoff_assign_fundamental_type_number): New function.
10452         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
10453         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
10454         * sdbout.c: Include varray.h.
10455         (deferred_global_decls): New static.
10456         (sdb_debug_hooks): Update.
10457         (sdbout_global_decl): If we can't emit something right now,
10458         remember it in deferred_global_decls.
10459         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
10460         (sdbout_init): Initialize deferred_global_decls.
10461         * Makefile.in: Update dependencies of sdbout.o.
10462         * dwarf2out.c (dwarf2out_type_decl): New function.
10463         (dwarf2_debug_hooks): Update.
10464         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
10465         * c-decl.c (getdecls): Just return 0.
10466         (check_for_loop_decls): Don't use getdecls.
10467         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
10468         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
10469
10470 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
10471
10472         * config/s390/s390.c (s390_sched_reorder2): Remove.
10473         (TARGET_SCHED_REORDER2): Do not redefine.
10474
10475 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10476
10477         * c-parse.in (maybe_type_qual): Delete.
10478         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
10479         (asm_argument): New grammar rules.
10480         (extdef_1): Use asmdef.
10481         (maybeasm): Move down with other asm rules; use simple_asm_expr.
10482         (xexpr): Move up with other expression rules.
10483         (stmt): Use asm_stmt.
10484
10485         * c-typeck.c (build_asm_expr): New function - body mostly
10486         pulled from build_asm_stmt.
10487         (build_asm_stmt): Just handle tacking on the volatile qualifier.
10488         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
10489
10490 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
10491
10492         PR bootstrap/13617
10493         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
10494         (mips_declare_object): Make variadic.
10495         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
10496         mips_output_aligned_decl_common.
10497         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
10498         (mips_declare_object): Make variadic.
10499
10500 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10501
10502         * function.c (update_epilogue_consts): Teach about binary operations.
10503
10504         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
10505         previous MEM_VOLATILE in REF.
10506         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
10507         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
10508
10509 2004-02-12  Gunther Nikl  <gni@gecko.de>
10510
10511         * config.gcc: Restore support for m68k-openbsd.
10512
10513 2004-02-12  Jan Hubicka  <jh@suse.cz>
10514
10515         * tree-optimize.c (tree_rest_of_compilation): Do not release
10516         DECL_ARGUMENTS.
10517
10518 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
10519
10520         * doc/install.texi: Fix the spelling of "explicitly".
10521
10522 2004-02-11  Eric Christopher  <echristo@redhat.com>
10523
10524         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
10525         duplicate argument structure of cpp_interpret_string.
10526         * cpphash.h: Move prototype...
10527         * cpplib.h: Here.
10528         * cpplib.c: Fix calls to match new function signature.
10529
10530 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10531
10532         PR c/456
10533         * cppexp.c (num_binary_op): Don't allow comma operators in #if
10534         constant expressions at all outside C99 mode if pedantic.
10535
10536 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
10537
10538         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
10539         (log10_optab, log2_optab): Define corresponding macros.
10540         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
10541         * genopinit.c (optabs): Implement log10_optab and log2_optab
10542         using log10?f2 and log2?f2 patterns.
10543         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
10544         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
10545         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
10546         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
10547
10548         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
10549         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
10550         log2, log2f and log2l built-ins as inline x87 intrinsics.
10551
10552 2004-02-11  Richard Henderson  <rth@redhat.com>
10553
10554         PR target/1532
10555         * flow.c (insn_dead_p): A clobber of a dead hard register is a
10556         dead insn after reload.
10557
10558 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
10559
10560         * tree.h (frame_base_decl): Add GTY marker.
10561         * var-tracking.c (frame_base_decl): Likewise.
10562
10563 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
10564
10565         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
10566         incorrect, hunk.
10567         (add_location_or_const_value_attribute): Use text_section_label,
10568         not TEXT_SECTION_NAME.
10569
10570 2004-02-11  Per Bothner  <per@bothner.com>
10571
10572         Represent column numbers using line-map's source_location.
10573         The "next available source_location" is now managed internally by
10574         line-maps.c rather than by clients.
10575         * line-map.h (struct line_map):  New field column_bits.
10576         <from_line>:  Rename field to start_location.
10577         (struct line_maps):  New fields highest_location and max_column_hint.
10578         (linemap_check_files_exited):  New declaration.
10579         (linemap_line_start):  New declaration.
10580         (linemap_add):  Remove from_line parameter; use highest_location field.
10581         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
10582         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
10583         (CURRENT_LINE_MAP):  Remove macro.
10584         (linemap_position_for_column):  New inline function.
10585         * line-map.c (linemap_init):  Clear new fields.
10586         (linemap_check_files_exited):  New function, extracted from ...
10587         (linemap_free):  Use linemap_check_files_exited.
10588         (linemap_add):  Remove from_line parameter.  Various updates.
10589         (linemap_line_start):  New function.
10590         (linemap_lookeup):  Update for new field names.
10591         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
10592         linemap_position_for_column may unpredictably change the current map,
10593         it is cleaner and simpler for us to not cache it in cpp_reader.
10594         (struct cpp_buffer):  New sysp field.
10595         Changed warned_cplusplus_comments and from_stage3 to bitfields.
10596         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
10597         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
10598         current map using linemap_lookup.
10599         (do_linemarker):  Also set buffer's sysp field.
10600         (destringize_and_run):  No longer need to decrement current line.
10601         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
10602         (search_path_head, open_file_failed):  Use buffer's sysp.
10603         (cpp_make_system_header):  Get current map using linemap_lookup.
10604         Also set buffer's sysp flag.
10605         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
10606         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
10607         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
10608         (struct cpp_reader):  ... and adding saved_line_base field.
10609         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
10610         Update accordingly.  Don't adjust line.
10611         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
10612         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
10613         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
10614         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
10615         * cpplex.c (_cpp_lex_direct):  Likewise.
10616         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
10617         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
10618         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
10619         Remove col field as it is now subsumed by src_loc.
10620         * cpperror.c:  Update various field, parameter, and macro names.
10621         (print_location):  If col==0, try SOURCE_COLUMN of line.
10622         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
10623         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
10624         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
10625         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
10626         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
10627         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
10628         (_cpp_lex_direct):  Use linemap_position_for_column.
10629         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
10630         parameter.  Instead get it from the line_table global.  Adjust callers.
10631         (print):  Remove map field.  Replace line field to src_line.
10632         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
10633         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
10634         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
10635         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
10636         * cpptrad.c (copy_comment):  Rename variable.
10637         * c-lex.c (map):  Remove static variable, for same reason we removed
10638         cpp_reader's map field.
10639         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
10640         to call linemap_lookup.
10641         (cb_line_change):  Token's line field replaced by src_loc.
10642         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
10643         Don't save new_map.
10644
10645         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
10646         source_location.
10647
10648 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
10649
10650         * config/rs6000/altivec.md (*movv4si_internal): At least one
10651         operand must be register_operand.
10652         (*movv8hi_internal1): Likewise.
10653         (*movv16qi_internal1): Likewise.
10654         (*movv4sf_internal1): Likewise.
10655
10656 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
10657
10658         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
10659         operand.
10660         (movv4hi_internal): Same.
10661         (movv2sf_internal): Same.
10662         (movv1di_internal): Same.
10663
10664 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
10665
10666         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
10667         TARGET_OLDABI consistently.
10668         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
10669         mips_va_arg,override_options,compute_frame_size,
10670         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
10671         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
10672         and TARGET_OLDABI consistently.
10673         * config/mips/mips.md (exception_receiver): Likewise.
10674         * config/mips/linux64.h: Likewise.
10675
10676 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
10677
10678         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
10679         Set AltiVec ABI and vrsave as default for ppc64 linux.
10680         (init_cumulative_args): Post error, if try to return
10681         value in AltiVec register without enable AltiVec.
10682         (function_arg_advance): Ditto for passing arguments.
10683
10684 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
10685
10686         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
10687         a label before updating its usage count.
10688
10689 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
10690
10691         * doc/install.texi: Remove extra cd.
10692
10693 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
10694
10695         * c-common.c (vector_size_helper): Remove; call
10696         reconstruct_complex_type() instead.
10697         * tree.c (reconstruct_complex_type): New function
10698         (formerly vector_size_helper() in c-common.c).
10699         (make_vector): Make externally visible.
10700         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
10701
10702 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
10703
10704         * config/h8300/h8300-protos.h: Add a prototype for
10705         h8300_regs_ok_for_stm.
10706         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
10707         * config/h8300/h8300.md (stm_h8300s_2_advanced,
10708         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
10709         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
10710         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
10711         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
10712         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
10713         ldm_h8300s_4_normal, ldm_h8300s_4): Use
10714         h8300_regs_ok_for_stm().
10715
10716 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10717
10718         PR c/14088
10719         * real.c (real_from_string): Look for 'X' as well as 'x' in
10720         hexfloat strings.
10721
10722 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
10723
10724         * config/h8300/h8300.md: Remove an incorrect comment about
10725         peephole2.  Add comments.
10726
10727 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
10728
10729         PR/14058
10730         * emit-rtl.c (set_decl_incoming_rtl): New.
10731         * tree.h (set_decl_incoming_rtl): New.
10732         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
10733         DECL_INCOMING_RTL.
10734         * ada/misc.c (adjust_decl_rtl): Likewise.
10735
10736 2004-02-10  Per Bothner  <per@bothner.com>
10737
10738         * c-opts.c (c_common_post_options):   Don't emit working directory
10739         in cpp output if -P was specified.
10740
10741 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
10742
10743         PR c/14092
10744         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
10745         negate_expr back to the original type.
10746
10747 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
10748
10749         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
10750         bump retaddr here.
10751
10752 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
10753
10754         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
10755         gen_lowpart_SUBREG): Move under the file in which they
10756         are actually declared.
10757
10758 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
10759
10760         * doc/sourcebuild.texi: Add libada documentation.
10761
10762         * doc/install.texi: Update documentation on Ada build, now
10763         that the GNAT lib and tools are built automatically.
10764
10765 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
10766
10767         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
10768         && TARGET_IRIX.
10769
10770 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
10771
10772         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
10773         boundaries outside build_component_ref() call (a macro in ObjC++).
10774
10775 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
10776
10777         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
10778         (init_cumulative_args): Likewise.
10779         (a7_overlap_mentioned_p): Delete prototype.
10780         * config/xtensa/xtensa.c (struct machine_function): Replace
10781         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
10782         Add set_frame_ptr_insn field.
10783         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
10784         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
10785         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
10786         at the function entry and replace the operand with the pseudo.
10787         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
10788         argument and record this flag in CUMULATIVE_ARGS.
10789         (function_arg): Remove result_mode and special-case code to handle
10790         arguments in a7.  Instead, set need_a7_copy flag when there is an
10791         incoming argument in a7.
10792         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
10793         and use the value recorded in cfun->machine->set_frame_ptr_insn.
10794         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
10795         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
10796         special-case code.
10797         (a7_overlap_mentioned_p): Delete.
10798         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
10799         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
10800         arguments to init_cumulative_args and pass "incoming" flag instead.
10801         (BLOCK_REG_PADDING): Delete.
10802         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
10803         checks for reload_in_progress and reload_completed.  Update calls to
10804         xtensa_copy_incoming_a7.
10805         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
10806         to call xtensa_copy_incoming_a7.
10807
10808 2004-02-09  DJ Delorie  <dj@redhat.com>
10809
10810         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
10811         longer modify standard_exec_prefix, standard_bindir_prefix, or
10812         standard_startfile_prefix.
10813
10814 2004-02-09  James E Wilson  <wilson@specifixinc.com>
10815
10816         PR c++/11295
10817         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
10818         to expand_expr_real call, and pass in alt_rtl as last argument.
10819
10820         PR libstdc++/5625
10821         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
10822         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
10823         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
10824         * except.c (expand_builtin_extend_pointer): New.
10825         * except.h (expand_builtin_extend_pointer): Declare.
10826
10827 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
10828
10829         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
10830         unaligned loads and stores.
10831
10832 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10833
10834         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
10835         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
10836
10837         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
10838         * config/mips/iris5.h: ... here.
10839         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
10840
10841         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
10842         * config/mips/iris5.h: ... here.
10843
10844 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10845
10846         * configure.ac: Remove default executable files before AC_PROG_CC.
10847         * configure: Regenerate.
10848
10849 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
10850
10851         PR target/13721
10852         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
10853         print a operand other than a register.
10854
10855 2004-02-09  Roger Sayle  <roger@eyesopen.com>
10856
10857         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
10858         tree code rather than call fold_convert, which doesn't specify a
10859         default floating point to integer conversion.
10860
10861 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
10862
10863         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
10864         code to support SGS assembler.  Reformat adjacent code where possible.
10865         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
10866         definition.
10867         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
10868         for '%#'.
10869         * config/m68k/linux.h, config/m68k/m68k.c,
10870         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
10871         macros and asm_printf() format strings.
10872         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
10873         * config/m68k/linux.h: Update copyright.
10874         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
10875
10876 2004-02-08  Andreas Schwab  <schwab@suse.de>
10877             Bernardo Innocenti  <bernie@develer.com>
10878
10879         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
10880         REGISTER_PREFIX.
10881         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
10882         frame pointer register, overridable by OS targets.
10883         * (M68K_REGNAME): Macro to obtain register name for asm output,
10884         eventually replacing %a6 with M68K_FP_REG_NAME.
10885         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
10886         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
10887         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
10888         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
10889         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
10890
10891 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
10892
10893         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
10894         hook_rtx_tree_int_null.
10895         * targhooks.c (default_struct_value_rtx): Remove.
10896         * targhooks.h: Remove the prototype for
10897         default_struct_value_rtx.
10898         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
10899         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
10900         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
10901         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
10902         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
10903         config/rs6000/rs6000.c, config/s390/s390.c,
10904         config/stormy16/stormy16.c, config/v850/v850.c,
10905         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
10906         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
10907
10908 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
10909
10910         * README.Portability: Change "ISO C89" to "ISO C90".
10911         * c-parse.in (primary, initelt): Likewise.
10912
10913 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
10914
10915         * real.c (encode_ibm_extended): Normalize the input value before
10916         converting it to a double.  Handle the case where a normal value
10917         rounds to infinity.
10918
10919 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
10920
10921         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
10922         warning.
10923         * cse.c (preferrable): Change to preferable. Update all of its
10924         callers.
10925         * genautomata.c (ainsn): Change
10926         first_ainsn_with_given_equialence_num to
10927         first_ainsn_with_given_equivalence_num.  Update all of its
10928         references.
10929
10930 2004-02-08  Jan Hubicka  <jh@suse.cz>
10931
10932         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
10933
10934 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
10935
10936         * function.c (assign_parms): Fix formatting.
10937
10938 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
10939
10940         * default.h (PROMOTE_PROTOTYPES): Remove.
10941         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
10942         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
10943         EXPAND_BUILTIN_SAVEREGS): Poison.
10944         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
10945         hook_bool_tree_false.
10946         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10947         * target.h: Replace SETUP_INCOMING_VARARGS with
10948         targetm.calls.setup_incoming_varargs().
10949         * targhooks.c (default_promote_function_return): Remove.
10950         (default_promote_prototypes): Likewise.
10951         (default_struct_value_rtx): Always abort().
10952         (default_expand_builtin_saveregs): Always print an error
10953         message.
10954         (default_setup_incoming_varargs): Do nothing.
10955         (default_pretend_outgoing_varargs_named): Don't depend on
10956         SETUP_INCOMING_VARARGS.
10957         * targhooks.h: Remove the prototype for
10958         default_promote_function_return and
10959         default_promote_prototypes.
10960
10961 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
10962
10963         * system.h (SHARED_SECTION_ASM_OP): Poison.
10964         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
10965         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
10966
10967 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
10968
10969         Bug 13856
10970         * c-decl.c (diagnose_mismatched_decls): Only give special
10971         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
10972         is also true.
10973         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
10974         DECL_FUNCTION_CODE when defining a built-in function.
10975         Don't update DECL_ESTIMATED_INSNS.
10976         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
10977         FUNCTION_DECLs.
10978         * tree.h: Delete DECL_ESTIMATED_INSNS.
10979         * tree-inline.c (struct inline_data): Delete inlined_insns field.
10980         (expand_call_inline, optimize_inline_calls): Don't update
10981         DECL_ESTIMATED_INSNS nor inlined_insns.
10982         * cgraphunit.c (cgraph_analyze_function): Don't update
10983         DECL_ESTIMATED_INSNS.
10984
10985 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
10986
10987         * c-common.c (shadow_warning): Delete.
10988         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
10989         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
10990         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
10991         * c-parse.in (free_parser_stacks): Delete.
10992
10993 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
10994
10995         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
10996         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
10997         Use the top level mkinstalldirs, not the one in the gcc subdir.
10998         * mkinstalldirs: Remove (from the gcc subdir).
10999
11000 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11001
11002         PR middle-end/13696
11003         * fold-const.c (fold_convert): New function to provide type
11004         conversion to the middle-end without using convert.
11005         (negate_expr, associate_trees, size_diffop, omit_one_operand,
11006         operand_equal_for_comparison_p, pedantic_omit_one_operand,
11007         invert_truthvalue, optimize_bit_field_compare, range_binop,
11008         decode_field_reference, make_range, build_range_check, unextend,
11009         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
11010         fold_binary_op_with_conditional_arg, fold_inf_compare,
11011         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
11012         convert with calls to fold_convert.
11013
11014 2004-02-07  Jan Hubicka  <jh@suse.cz>
11015
11016         * genrecog.c (find_operand): add extra argument stop.
11017         (validate_pattern): Verify that mach_dup is duplicating operand
11018         defined lexically earlier.
11019
11020 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11021
11022         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
11023         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11024         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
11025         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
11026         config/ia64/ia64.h, config/ip2k/ip2k.h,
11027         config/iq2000/iq2000.h, config/mips/iris5.h,
11028         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
11029         config/rs6000/aix51.h, config/rs6000/aix52.h,
11030         config/rs6000/darwin.h, config/rs6000/rs6000.h,
11031         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
11032         config/sparc/linux.h, config/sparc/linux64.h,
11033         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
11034         config/xtensa/xtensa.h: Remove the definitions of
11035         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
11036         MAX_WCHAR_TYPE_SIZE.
11037         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11038         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
11039
11040 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
11041
11042         PR bootstrap/13990
11043         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
11044         gen_rtx_NE.
11045
11046 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
11047
11048         * var-tracking.c (vt_add_function_parameters): Surround checkings by
11049         #ifdef ENABLE_CHECKING and #endif.
11050
11051 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11052
11053         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
11054         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
11055         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
11056         integer types and floating point with unsafe_math_optimizations.
11057         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
11058         Optimize A - B as A + (-B), if B is easily negated.
11059
11060 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11061
11062         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
11063         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
11064         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
11065         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
11066         Update copyright.
11067
11068 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11069
11070         * c-ppoutput.c, var-tracking.c: Fix comment typos.
11071
11072 2004-02-06  James E Wilson  <wilson@specifixinc.com>
11073
11074         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
11075         glibc 2.3 or better.
11076
11077 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11078
11079         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
11080         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
11081
11082 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
11083
11084         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11085         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
11086         (SHLIB_MKMAP_OPTS): Delete.
11087         (TARGET_LIBGCC2_CFLAGS): Add -specs.
11088         (bispecs): Add rule.
11089         * config/rs6000/libgcc-ppc64.ver: New file.
11090         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
11091         (__floatdidf, __floatdisf): Optimize multiply.
11092         (__fixunstfdi): New function.
11093         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
11094         real and imag parts larger than one register.
11095         (function_arg): Correct type of reg used when fp arg split partially
11096         to stack.
11097         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
11098         and __MACH__ or __powerpc64__.
11099
11100 2004-02-06  Roger Sayle  <roger@eyesopen.com>
11101             Ulrich Weigand  <uweigand@de.ibm.com>
11102
11103         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
11104         of gen_highpart or gen_lowpart when the floating point format is
11105         wider than the result mode.
11106
11107 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
11108
11109         * dwarf2out.c (loclabel_num): Move into #ifdef
11110         DWARF2_DEBUGGING_INFO.
11111
11112 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
11113
11114         * objc/objc-act.c (build_super_template) the 'class' field of
11115         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
11116         (get_super_receiver): Likewise.
11117
11118 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11119
11120         * reload1.c (check_eliminable_occurrences): Optimize the reset
11121         of can_eliminate.
11122         (eliminate_regs_in_insn): Likewise.
11123
11124 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
11125             Josef Zlomek  <zlomekj@suse.cz>
11126
11127         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
11128         at the beginning of function, call dwarf2out_var_location for
11129         NOTE_INSN_VAR_LOCATION note.
11130         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
11131         decl_loc_table): New.
11132         (lookup_decl_loc): New function.
11133         (add_var_loc_to_decl): New function.
11134         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
11135         only if can_use_fbreg.
11136         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
11137         functions.
11138         (loc_descriptor): Likewise. Process VAR_LOCATION.
11139         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
11140         (loc_descriptor_from_tree): Call mem_loc_descriptor with
11141         can_use_fbreg == true.
11142         (add_location_or_const_value_attribute): Added parameter enum
11143         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
11144         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
11145         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
11146         with attr == DW_AT_location.
11147         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
11148         if frame_base_decl is defined and has a location list.
11149         (gen_variable_die): Call add_location_or_const_value_attribute with
11150         attr == DW_AT_location.
11151         (dwarf2out_var_location): New function.
11152         (dwarf2out_begin_function): New function.
11153         (dwarf2out_init): Create decl_loc_table.
11154
11155 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11156
11157         * loop.c (force_movables): Transitively increase the priorities of
11158         all insns forces by an insn, not just the first one.
11159
11160 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
11161             Daniel Berlin <dberlin@dberlin.org>
11162
11163         Josef Zlomek  <zlomekj@suse.cz>
11164         * Makefile.in (var-tracking.o): New.
11165         * common.opt (fvar-tracking): New.
11166         * flags.h (flag_var_tracking): New.
11167         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
11168         * opts.c (common_handle_option): Add OPT_fvar_tracking.
11169         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
11170         * rtl.c (note_insn_name): Likewise.
11171         * rtl.def (VAR_LOCATION): New.
11172         * rtl.h (NOTE_VAR_LOCATION): New.
11173         (NOTE_VAR_LOCATION_DECL): New.
11174         (NOTE_VAR_LOCATION_LOC): New.
11175         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
11176         (variable_tracking_main): New exported function.
11177         * timevar.def (TV_VAR_TRACKING): New.
11178         * toplev.c (enum dump_file_index): Added DFI_vartrack.
11179         (dump_file): "vartrack" was added (-dV).
11180         (flag_var_tracking): New.
11181         (f_options): "var-tracking" was added.
11182         (rest_of_handle_variable_tracking): New function.
11183         (rest_of_compilation): Run variable tracking.
11184         (process_options): If user has not specified flag_var_tracking set it
11185         according to optimize, debug_info_level and debug_hooks.
11186         * tree.h (frame_base_decl): New.
11187         * var-tracking.c: New file.
11188         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
11189         (ia64_override_options): Set flags to run variable tracking in machine
11190         dependent reorg instead of toplev.c.
11191         (ia64_reorg): Run variable tracking if wanted.
11192         * doc/invoke.texi: Mention variable tracking in -dV,
11193         add and -fvar-tracking.
11194         * doc/passes.texi: Added variable tracking pass.
11195
11196         Daniel Berlin <dberlin@dberlin.org>
11197         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
11198         * dbxout.c (dbx_debug_hooks): Likewise.
11199         (xcoff_debug): Likewise.
11200         * debug.c (do_nothing_debug_hooks): Likewise.
11201         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
11202         * dwarfout.c (dwarf_debug_hooks): Likewise.
11203         * sdbout.c (sdb_debug_hooks): Likewise.
11204         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11205         * final.c (final_scan_insn): Call var_location debug hook for each
11206         NOTE_INSN_VAR_LOCATION.
11207
11208 2004-02-06  Jan Hubicka  <jh@suse.cz>
11209
11210         * flow.c (update_life_info): Allocate reg_deaths when called from
11211         scheudler.
11212         (attempt_auto_inc):  Update life ranges accordingly.
11213
11214 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11215
11216         PR debug/11816
11217         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
11218
11219 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11220
11221         * cfganal.c (flow_call_edges_add): Never split a libcall block.
11222
11223 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
11224
11225         * dwarf2out.c (output_loc_list): Don't use deltas if we have
11226         a separate line info table in use.
11227         Use the correct size for terminators.
11228         (output_die): Use offset, not delta.
11229
11230 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
11231
11232         * doc/invoke.texi: Remove the pni option from -mfpmath=.
11233
11234 2004-02-06  Jan Hubicka  <jh@suse.cz>
11235
11236         * recog.c (split_all_insns): Do not update reg info.
11237         * regrename.c (regrename_optimize): Likewise.
11238         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
11239         * flow.c (struct propagate_block_info): Add insn_num field.
11240         (reg_deaths): New array.
11241         (life_analysis): Free reg_deaths info.
11242         (allocate_reg_life_data): Allocate reg_deaths array.
11243         (propagate_one_insn): Use new array.
11244         (init_propagate_block): Initialize it.
11245         (free_propagate_block_info): Finish compuation of
11246         REG_LIVE_LENGTH
11247         (attempt_auto_inc): Sanity check that REG_INFO is not
11248         computed at same time.
11249         (mark_used_regs): Update new array.
11250
11251         * reg-stack.c (subst_stack_regs): Unshare clobbers before
11252         substitution.
11253
11254 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11255
11256         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
11257         *extendqisi2_short_displ.
11258
11259 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
11260
11261         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
11262         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
11263         (emit_library_call_value_1): Likewise pass nargs.
11264         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
11265         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
11266         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
11267         parameter instead of scanning TYPE_ARGS_TYPES to count args.
11268         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
11269         prototype.
11270         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
11271         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
11272         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
11273         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
11274         INIT_CUMULATIVE_ARGS.
11275         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
11276         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
11277         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
11278         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
11279         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11280         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
11281         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
11282         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
11283         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
11284         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
11285         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
11286         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
11287
11288 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11289
11290         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
11291         possible.
11292
11293 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11294
11295         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
11296         note containing (plus (reg) (const_int)), where reg is an
11297         eliminable reg, then perform the register elimination without
11298         depending on eliminate_regs().
11299
11300 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11301
11302         * config/arc/arc.c (arc_return_in_memory): Check the return
11303         value of int_size_in_bytes against -1.  Don't check
11304         TREE_ADDRESSABLE.
11305         * config/avr/avr.c (avr_return_in_memory): Check the return
11306         value of int_size_in_bytes against -1.
11307         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
11308         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
11309         Likewise.
11310         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
11311         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
11312         Likewise.
11313
11314 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11315
11316         * config/frv/frv-protos.h: Remove the prototype for
11317         frv_setup_incoming_varargs.
11318         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
11319         (frv_setup_incoming_varargs): Make it static.
11320         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
11321
11322 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11323
11324         * config/fr30/fr30-protos.h: Remove the prototype for
11325         fr30_setup_incoming_varargs.
11326         Update the prototypes for fr30_num_arg_regs and
11327         fr30_function_arg_partial_nregs.
11328         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
11329         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11330         (fr30_setup_incoming_varargs): Make it static.
11331         Add argument second_time.  Don't do anything when second_time
11332         is nonzero.
11333         (fr30_num_arg_regs): Change the type of the first argument to
11334         enum machine_mode.
11335         (fr30_function_arg_partial_nregs): Change the type of the
11336         second argument to enum machine_mode.
11337         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
11338         (SETUP_INCOMING_VARARGS): Remove.
11339
11340 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11341
11342         * config/arc/arc-protos.h: Remove the prototype for
11343         arc_setup_incoming_varargs.
11344         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
11345         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11346         (arc_setup_incoming_varargs): Make it static.
11347         (arc_external_libcall): Likewise.
11348         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
11349         Remove the commented-out definition of
11350         ASM_OUTPUT_EXTERNAL_LIBCALL.
11351
11352 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
11353
11354         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
11355         to $$(slibdir) in the installation commands.
11356
11357 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11358
11359         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
11360         with inner_regno, not regno.
11361         * rtlanal.c (refers_to_regno_p): Same.
11362
11363 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11364
11365         * config.gcc: Remove i370 support.
11366
11367 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11368
11369         * doc/install.texi:  Update automake and autoconf version
11370         requirements.  Note where to find gcj automake version.
11371
11372 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11373
11374         * Makefile.in (generate-manpages): Move dependencies to ...
11375         (man): here.
11376         * doc/makefile.texi: Document new targets.
11377         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
11378
11379 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11380
11381         PR/13485
11382         Makefile.in (srcextra):  Add a level of indirection to ...
11383         (gcc.srcextra): ... here.
11384         (po-generated): Delete.
11385         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
11386         options.c.
11387         (start.encap): Remove superfluous lang.srcextra dependency.
11388         objc/Make-lang.in (po-generated):  Delete.
11389
11390 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11391
11392         * config/ia64/ia64.c (REG_GP): Remove.
11393
11394 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11395
11396         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
11397
11398 2004-02-05  Devang Patel  <dpatel@apple.com>
11399
11400         * dwarf2out.c (force_type_die): Look up input type itself
11401         instead of root_type() of type.
11402
11403 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
11404
11405         * config/s390/s390.md ("*tmqidi_ext"): New insn.
11406         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
11407         pre-reload splitters are transformed to post-reload
11408         define_insn_and_split patterns.
11409         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
11410
11411 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11412
11413         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
11414         TARGET_PROMOTE_PROTOTYPES.
11415
11416 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11417
11418         PR middle-end/13750
11419         Revert:
11420         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
11421         PR pch/13361
11422         * c-typeck.c (constructor_asmspec): Delete.
11423         (struct initializer_stack): Delete field 'asmspec'.
11424         (start_init): Delete saving of asmspec.
11425         (finish_init): Don't update constructor_asmspec.
11426         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11427         * stmt.c (expand_asm): Duplicate strings from tree.
11428         (expand_asm_operands): Likewise.
11429         * tree.c (tree_size): Update computation of size of STRING_CST.
11430         (make_node): Don't make STRING_CST nodes.
11431         (build_string): Allocate string with tree node.
11432         * tree.def (STRING_CST): Update comment.
11433         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11434         (tree_string): Place contents of string in tree node.
11435         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11436         from tree.
11437
11438 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11439
11440         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
11441         msgid.
11442
11443 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
11444
11445         * config/rs6000/altivec.md (*movv4si_internal): At least one
11446         operand must be altivec_register_operand.
11447         (*movv8hi_internal1): Likewise.
11448         (*movv16qi_internal1): Likewise.
11449         (*movv4sf_internal1): Likewise.
11450
11451 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11452
11453         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
11454         * configure: Regenerate.
11455
11456 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
11457
11458         * doc/install.texi: Update description of --gxx-include-dir to
11459         give correct default value.
11460
11461 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11462
11463         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
11464         8 with MAC_REG.
11465
11466 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11467
11468         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
11469         gen_rtx_PARALLEL.
11470
11471 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11472
11473         * emit-rtl.c: Update the comment about the file.
11474
11475 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11476
11477         * sourcebuild.texi (Test Idioms): Update testcase naming
11478         conventions.
11479
11480 2004-02-04  Per Bothner  <per@bothner.com>
11481
11482         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
11483         * c-ppoutput.c (pp_dir_change):  New function.
11484         * c-common.h (pp_dir_change):  New declaration.
11485         * cpplib.h (struct cpp_options):  Remove working_directory field.
11486         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
11487         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
11488         Don't handle -fworking_directory here, but in c_common_post_options.
11489         (read_original_directory): Don't back up when done.
11490         Don't clear no-longer used working_directory flag.
11491         * cpplib.h:  Update declarations to match.
11492         * c-lex.c (cb_dir_change):  Move to c-opts.c.
11493         (init_c_lex):  Don't set dir_change callback here, since we want
11494         to set it even if flag_preprocess_only.
11495         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
11496         (c_common_post_options):  Set dir_change callback.
11497         Call pp_dir_change if approporiate.
11498         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
11499         unneeded parameter and result. Do LC_RENAME for <built-in>.
11500         (c_common_post_options):  Call cpp_read_main_file here instead.
11501         (c_common_init):  Update accordingly.
11502         (push_command_line_include):  Don't cpp_push_main_file.
11503         Do LC_RENAME rather than LC_LEASE to get back to main file.
11504         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
11505         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
11506         files, but call finish_options for all files.
11507         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
11508         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
11509         cpp_find_main_file + cpp_push_main_file.
11510         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
11511         * opts.c (handle_options):  Only set main_input_filename first time.
11512
11513 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
11514
11515         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
11516
11517 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
11518
11519         * reload.c (find_equiv_reg): When checking for register overlap,
11520         don't index hard_regno_nregs with a pseudo-reg.
11521
11522 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11523
11524         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
11525
11526 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
11527
11528         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
11529         against FIRST_PSEUDO_REGISTER.
11530
11531 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11532
11533         * Makefile.in: Move target, host overrides after per-language
11534         fragments.
11535
11536         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
11537         (GNATLIBCFLAGS): Remove -g.
11538
11539 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11540
11541         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
11542         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11543         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11544         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
11545         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
11546         config/sparc/sparc.c, config/vax/vax.c: Revert the
11547         replacements of "FALLTHRU" with "Fall through" done in the
11548         previous patch.
11549
11550 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11551
11552         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
11553         config/arm/arm.c, config/arm/arm.md,
11554         config/cris/cris-protos.h, config/fr30/fr30.c,
11555         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
11556         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
11557         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
11558         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
11559         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
11560         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
11561         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
11562         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
11563         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
11564         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
11565         config/s390/s390.md, config/sparc/netbsd-elf.h,
11566         config/sparc/openbsd.h, config/sparc/sparc.c,
11567         config/xtensa/lib2funcs.S: Fix comment formatting.
11568
11569 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11570
11571         * config/alpha/alpha.c, config/arc/arc.c,
11572         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
11573         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
11574         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
11575         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
11576         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11577         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11578         config/iq2000/iq2000.c, config/m32r/m32r.c,
11579         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
11580         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
11581         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
11582         config/rs6000/rs6000.h, config/sparc/sparc.c,
11583         config/vax/vax.c: Fix comment typos.  Follow spelling
11584         conventions.
11585
11586 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11587
11588         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
11589         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
11590         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
11591         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
11592         config/arm/fpa.md, config/arm/iwmmxt.md,
11593         config/arm/netbsd-elf.h, config/arm/netbsd.h,
11594         config/m68hc11/m68hc11.md, config/mips/iris5.h,
11595         config/mn10300/mn10300.md, config/rs6000/altivec.md,
11596         config/sparc/netbsd-elf.h: Update copyright.
11597
11598 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
11599
11600         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
11601         for all modes whose size is greater than 8 bytes if ARCH32.
11602         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
11603         by reference if ARCH32.
11604
11605 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
11606
11607         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
11608
11609 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11610
11611         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
11612         to before adddi3 insn patterns.
11613         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
11614         "reload_insi"): Move to before addsi3 insn patterns.
11615
11616 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
11617
11618         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
11619         parameter.  Use it instead of current_function_is_thunk.
11620         * function.h (struct function): Update documentation for is_thunk.
11621         * tree.h (CALL_FROM_THUNK_P): New macro.
11622         * config/alpha/alpha.c (alpha_sa_mask): Do not check
11623         no_new_pseudos when testing current_function_is_thunk.
11624         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
11625
11626 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11627
11628         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
11629         TARGET_SETUP_INCOMING_VARARGS.
11630
11631 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11632
11633         * emit-rtl.c (gen_rtx): Remove.
11634         * genattrtab.c: Don't mention gen_rtx in a comment.
11635         * rtl.h: Remove the prototype for gen_rtx.
11636         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
11637
11638 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11639
11640         * config/arc/arc.h, config/fr30/fr30.h
11641         (SETUP_INCOMING_VARARGS): Remove the target-independent
11642         comments.
11643         * doc/tm.texi: Don't mention deprecated target macros.
11644
11645 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11646
11647         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
11648         target-independent comment.
11649
11650 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11651
11652         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
11653         mention deprecated target macros.
11654
11655 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11656
11657         * config.gcc: Remove obsolete ports and configurations.
11658         * config/linux-aout.h, config/netware.h,
11659         config/t-linux-gnulibc1, config/d30v/abi,
11660         config/d30v/d30v-protos.h, config/d30v/d30v.c,
11661         config/d30v/d30v.h, config/d30v/d30v.md,
11662         config/d30v/libgcc1.asm, config/d30v/t-d30v,
11663         config/dsp16xx/dsp16xx-modes.def,
11664         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
11665         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
11666         config/i370/README, config/i370/i370-c.c,
11667         config/i370/i370-protos.h, config/i370/i370.c,
11668         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
11669         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
11670         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
11671         config/i386/moss.h, config/i386/netware.h,
11672         config/i386/svr3.ifile, config/i386/svr3dbx.h,
11673         config/i386/svr3gas.h, config/i386/svr3z.ifile,
11674         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
11675         config/i960/i960-c.c, config/i960/i960-coff.h,
11676         config/i960/i960-modes.def, config/i960/i960-protos.h,
11677         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
11678         config/i960/rtems.h, config/i960/t-960bare,
11679         config/m68k/hp310.h, config/m68k/hp320.h,
11680         config/m68k/hp320base.h, config/m68k/m68kv4.h,
11681         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
11682         Remove.
11683         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
11684         doc/md.texi: Remove mentions of obsolete ports.
11685
11686 2004-02-04  Jan Hubicka  <jh@suse.cz>
11687
11688         * alias.c (find_base_term, get_addr):  Do not dereference NULL
11689         pointer when all VALUE's locations has been invalidated.
11690         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
11691
11692 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
11693
11694         * doc/invoke.texi (x86 options): Fix spelling/wording.
11695
11696 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
11697
11698         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
11699         put the original string in a comment.
11700         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
11701         * config/mips/mips.c (mips_output_ascii): Likewise.
11702         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
11703
11704 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
11705
11706         * system.h (GIV_SORT_CRITERION): Poison.
11707         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
11708         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
11709
11710 2004-02-03  Roger Sayle  <roger@eyesopen.com>
11711
11712         PR target/9348
11713         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
11714         multiplies with a multiplication of the wrong signedness, its the
11715         signedness of the multiplication that we've performed that needs to
11716         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
11717         if expand_mult_highpart_adjust places the result in target.
11718
11719 2004-02-03  Richard Henderson  <rth@redhat.com>
11720
11721         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
11722
11723 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
11724
11725         * config.gcc (sh[234]l): Use little endian fragments.
11726
11727 2004-02-03  Paul Koning  <pkoning@equallogic.com>
11728
11729         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
11730         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
11731         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
11732         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
11733         floating point format.
11734         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
11735         the above functions.
11736         (output_move_quad): Output float values in correct target format.
11737         (legitimate_const_double_p): New function.
11738         * config/pdp11/pdp11.h: Fix typos.
11739         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
11740         (TARGET_FLOAT_FORMAT): Ditto.
11741         (pdp11_f_format, pdp11_d_format): Add external declarations.
11742         (MAX_REGS_PER_ADDRESS): Corrected.
11743         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
11744         (PRINT_OPERAND): Output float literals in target format.
11745
11746 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
11747
11748         PR c++/13975
11749         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
11750         TI_PRIVATE.
11751         (access_public_node): Redefine.
11752         (access_protected_node): Likewise.
11753         (access_private_node): Likewise.
11754         * tree.c (build_common_tree_nodes): Create access_public_node,
11755         access_protected_node, and access_private_node.
11756
11757 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
11758
11759         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
11760         (MASK_INLINE_INT_DIV_THR): Ditto.
11761         (MASK_INLINE_SQRT_LAT): Ditto.
11762         (MASK_INLINE_SQRT_THR): Ditto.
11763         (MASK_DWARF2_ASM): Ditto.
11764         (MASK_EARLY_STOP_BITS): Ditto.
11765
11766 2004-02-02  Paul Brook  <paul@codesourcery.com>
11767
11768         Merge from csl-arm-branch.
11769
11770         2004-01-30  Paul Brook  <paul@codesourcery.com>
11771
11772         * aof.h (REGISTER_NAMES): Add vfp reg names
11773         (ADDITIONAL_REGISTER_NAMES): Ditto.
11774         * aout.h (REGISTER_NAMES): Ditto.
11775         (ADDITIONAL_REGISTER_NAMES): Ditto.
11776         * arm-protos.h: Update/Add Prototypes.
11777         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
11778         Only allow 0.0 for VFP.
11779         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
11780         (values_fp): Rename from values_fpa.  Update Users.
11781         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
11782         Update users.  Only check valid constants for this hardware.
11783         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
11784         Only allow consts for FPA.
11785         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
11786         Only allow consts for FPA.
11787         (use_return_insn): Check for saved VFP regs.
11788         (arm_legitimate_address_p): Handle VFP DFmode addressing.
11789         (arm_legitimize_address): Ditto.
11790         (arm_general_register_operand): New function.
11791         (vfp_mem_operand): New function.
11792         (vfp_compare_operand): New function.
11793         (vfp_secondary_reload_class): New function.
11794         (arm_float_compare_operand): New function.
11795         (vfp_print_multi): New function.
11796         (vfp_output_fstmx): New function.
11797         (vfp_emit_fstm): New function.
11798         (arm_output_epilogue): Output VPF reg restore code.
11799         (arm_expand_prologue): Output VFP reg save code.
11800         (arm_print_operand): Add 'P'.
11801         (arm_hard_regno_mode_ok): Return modes for VFP regs.
11802         (arm_regno_class): Return classes for VFP regs.
11803         (arm_compute_initial_elimination_offset): Include space for VFP regs.
11804         (arm_get_frame_size): Ditto.
11805         * arm.h (FIXED_REGISTERS): Add VFP regs.
11806         (CALL_USED_REGISTERS): Ditto.
11807         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
11808         (FIRST_VFP_REGNUM): Define.
11809         (LAST_VFP_REGNUM): Define.
11810         (IS_VFP_REGNUM): Define.
11811         (FIRST_PSEUDO_REGISTER): Include VFP regs.
11812         (HARD_REGNO_NREGS): Handle VFP regs.
11813         (REG_ALLOC_ORDER): Add VFP regs.
11814         (enum reg_class): Add VFP_REGS.
11815         (REG_CLASS_NAMES): Ditto.
11816         (REG_CLASS_CONTENTS): Ditto.
11817         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
11818         (REG_CLASS_FROM_LETTER): Add 'w'.
11819         (EXTRA_CONSTRAINT_ARM): Add 'U'.
11820         (EXTRA_MEMORY_CONSTRAINT): Define.
11821         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
11822         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
11823         (REGISTER_MOVE_COST): Ditto.
11824         (PREDICATE_CODES): Add arm_general_register_operand,
11825         arm_float_compare_operand and vfp_compare_operand.
11826         * arm.md (various): Rename as above.
11827         (divsf3): Enable when TARGET_VFP.
11828         (divdf3): Ditto.
11829         (movdfcc): Ditto.
11830         (sqrtsf2): Ditto.
11831         (sqrtdf2): Ditto.
11832         (arm_movdi): Disable when TARGET_VFP.
11833         (arm_movsi_insn): Ditto.
11834         (movsi): Only split with general regs.
11835         (cmpsf): Use arm_float_compare_operand.
11836         (push_fp_multi): Restrict to TARGET_FPA.
11837         (vfp.md): Include.
11838         * vfp.md: New file.
11839         * fpa.md (various): Rename as above.
11840         * doc/md.texi: Document ARM w and U constraints.
11841
11842         2004-01-15  Paul Brook  <paul@codesourcery.com>
11843
11844         * config.gcc: Add with_fpu.  Allow with-float=softfp.
11845         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
11846         Break out of loop when we find a float-abi.  Fix typo.
11847         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
11848         Set -mfloat-abi=.
11849         * doc/install.texi: Document --with-fpu.
11850
11851         2003-01-14  Paul Brook  <paul@codesourcery.com>
11852
11853         * config.gcc (with_arch): Add armv6.
11854         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
11855         * config/arm/arm.c (arm_overrride_options): Ditto.
11856
11857         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
11858
11859         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
11860         (FL_ARCH6): Renamed from FL_ARCH6J.
11861         (arm_arch3m): Renamed from arm_fast_multiply.
11862         (arm_arch6): Renamed from arm_arch6j.
11863         * arm.h: Update all uses of above.
11864         * arm-cores.def: Likewise.
11865         * arm.md: Likewise.
11866
11867         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
11868         not arm6j.  Add entry for arch armv6.
11869
11870         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
11871
11872         * arm.c (arm_emit_extendsi): Delete.
11873         * arm-protos.h (arm_emit_extendsi): Delete.
11874         * arm.md (zero_extendhisi2): Also handle zero-extension of
11875         non-subregs.
11876         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
11877         (thumb_zero_extendhisi2): Only match if not v6.
11878         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
11879         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
11880         (thumb_extendqisi2): Likewise.
11881         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
11882         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
11883         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
11884         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
11885         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
11886         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
11887         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
11888         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
11889         (arm_extendqisi2addsi): Likewise.
11890
11891         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
11892
11893         Revert this change:
11894         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
11895         + REG addressing modes.
11896
11897         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
11898         + REG addressing modes.
11899
11900         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
11901
11902         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
11903         CONSTANT_P_RTX.
11904
11905         2003-30-12  Paul Brook  <paul@codesourcery.com>
11906
11907         * longlong.h: protect arm inlines with !defined (__thumb__)
11908
11909         2003-30-12  Paul Brook  <paul@codesourcery.com>
11910
11911         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
11912
11913         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
11914
11915         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
11916         change.
11917
11918         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
11919
11920         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
11921         to the virtual incoming args pointer for downward stacks.
11922
11923         2003-12-29  Paul Brook  <paul@codesourcery.com>
11924
11925         * config/arm/arm-cores.def: Add cost function.
11926         * config/arm/arm.c (arm_*_rtx_costs): New functions.
11927         (arm_rtx_costs): Remove
11928         (struct processors): Add rtx_costs field.
11929         (all_cores, all_architectures): Ditto.
11930         (arm_override_options): Set targetm.rtx_costs.
11931         (thumb_rtx_costs): New function.
11932         (arm_rtx_costs_1): Remove cases handled elsewhere.
11933         * config/arm/arm.h (processor_type): Add COSTS parameter.
11934
11935         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
11936
11937         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
11938         (arm926ejs.md): Include it.
11939         * config/arm/arm926ejs.md: New pipeline description.
11940
11941         2003-12-24  Paul Brook  <paul@codesourcery.com>
11942
11943         * config/arm/arm.c (arm_arch6j): New variable.
11944         (arm_override_options): Set it.
11945         (arm_emit_extendsi): New function.
11946         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
11947         * config/arm/arm.h (arm_arch6j): Declare.
11948         * config/arm/arm.md: Add sign/zero extend insns.
11949
11950         2003-12-23  Paul Brook  <paul@codesourcery.com>
11951
11952         * config/arm/arm.c (all_architectures): Add armv6.
11953         * doc/invoke.texi: Document it.
11954
11955         2003-12-19  Paul Brook  <paul@codesourcery.com>
11956
11957         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
11958         insn patterns to match.
11959         * config/arm/arm-generic.md: Ditto.
11960         * config/arm/cirrus.md: Ditto.
11961         * config/arm/fpa.md: Ditto.
11962         * config/amm/iwmmxt.md: Ditto.
11963         * config/arm/arm1026ejs.md: Ditto.
11964         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
11965         for 11_loadb.
11966
11967         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
11968
11969         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
11970         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
11971         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
11972         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
11973         arm_no_early_mul_dep): Correctly deal with conditional execution,
11974         parallels and single shift operations.
11975         (arm_no_early_alu_shift_value_dep): Define.
11976         * arm.md (attr type): Replace 'normal' with 'alu',
11977         'alu_shift' and 'alu_shift_reg'.
11978         (attr core_cycles): Adjust.
11979         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
11980         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
11981         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
11982         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
11983         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
11984         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
11985         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
11986         attribute appropriately.
11987         * config/arm/arm1026ejs.md (alu_op): Adjust.
11988         (alu_shift_op, alu_shift_reg_op): New.
11989         * config/arm/arm1136.md: Add better bypasses for early
11990         registers. Remove load[234] and store[234] bypasses.
11991         (11_alu_op): Adjust.
11992         (11_alu_shift_op, 11_alu_shift_reg_op): New.
11993
11994         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
11995
11996         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
11997         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
11998         * config/arm/arm.c (arm_no_early_store_addr_dep,
11999         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
12000         * config/arm/arm1026ejs.md: Add load-store bypass.
12001         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
12002         Add bypasses between instructions.
12003
12004         2003-12-10  Paul Brook  <paul@codesourcery.com>
12005
12006         * config/arm/arm.c (arm_fpu_model): New variable.
12007         (arm_fload_abi): New variable.
12008         (target_fpe_name): Rename from target_fp_name.
12009         (target_fpu_name): New variable.
12010         (arm_is_cirrus): Remove.
12011         (fpu_desc): New struct.
12012         (all_fpus): Define.
12013         (pf_model_for_fpu): Define.
12014         (all_loat_abis): Define.
12015         (arm_override_options): Set fp arch flags based on -mfpu=
12016         and -float-abi=.
12017         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12018         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12019         (*): Use new TARGET_* flags.
12020         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
12021         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
12022         (TARGET_SOFT_FLOAT): Ditto.
12023         (TARGET_SOFT_FLOAT_ABI): New.
12024         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
12025         TARGET_HARD_FLOAT.
12026         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
12027         (TARGET_OPTIONS): Add -mfpu=.
12028         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12029         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12030         (arm_pf_model): Define.
12031         (arm_float_abi_type): Define.
12032         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
12033         * config/arm/arm.md: Use new TARGET_* flags.
12034         * config/arm/cirrus.md: Ditto.
12035         * config/arm/fpa.md: Ditto.
12036         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
12037         * config/arm/semi.h (ASM_SPEC): Ditto.
12038         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
12039         (FPUTYPE_DEFAULT): Set to VFP.
12040         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
12041
12042         2003-11-22  Phil Edwards  <phil@codesourcery.com>
12043
12044         PR target/12476
12045         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
12046         'bx' instead of 'b' to avoid branch range restrictions.  Output
12047         the thunk immediately before the thunked-to function.
12048         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
12049         .thumb_func if a thunk is being generated.  Emit .code 16 along
12050         with .thumb_func if a thunk is not being generated.
12051
12052         2003-11-15  Nicolas Pitre <nico@cam.org>
12053
12054         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
12055         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
12056         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
12057         (lshrdi3_iwmmxt): Renamed from lshrdi3.
12058         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
12059
12060         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
12061             Ian Lance Taylor  <ian@wasabisystems.com>
12062
12063         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
12064         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
12065
12066         2003-11-05  Phil Edwards  <phil@codesourcery.com>
12067
12068         * config/arm/arm.md (insn):  Add new V6 instruction names.
12069         (generic_sched):  New attr.
12070         * config/arm/arm-generic.md:  Use generic_sched here.
12071         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
12072         stages of pipeline.  Adjust latency counts accordingly.
12073         * config/arm/arm1136jfs.md:  New file.
12074
12075         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
12076
12077         * config/arm/arm.h (processor_type): New enumeration type.
12078         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
12079         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
12080         (CPP_CPU_ARCH_SPEC): Likewise.
12081         * config/arm/arm.c (arm_tune): New variable.
12082         (all_cores): Use cores.def.
12083         (all_architectures): Add representative processor.
12084         (arm_override_options): Restructure way in which tuning
12085         information is deduced.
12086         * arm.md: Update "insn" and "type" attributes throughout.
12087         (insn): New attribute.
12088         (type): Compute "mult" from "insn" attribute.  Add load2,
12089         load3, load4 alternatives.
12090         (arm automaton): Move to arm-generic.md.
12091         * config/arm/arm-cores.def: New file.
12092         * config/arm/arm-generic.md: Likewise.
12093         * config/arm/arm1026ejs.md: Likewise.
12094
12095 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12096
12097         * doc/invoke.texi (SPARC options): Remove -mflat and
12098         all -mxxx (xxx:chip) options.
12099         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
12100         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
12101         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
12102         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
12103         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
12104         * config/sparc/sparc.c: Likewise.
12105         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
12106         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
12107         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
12108         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
12109         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
12110         (sparc_flat_must_save_register_p): Likewise.
12111         (sparc_flat_compute_frame_size): Likewise.
12112         (sparc_flat_save_restore): Likewise.
12113         (sparc_flat_function_prologue): Likewise.
12114         (sparc_flat_function_epilogue): Likewise.
12115         (sparc_flat_epilogue_delay_slots): Likewise.
12116         (sparc_flat_eligible_for_epilogue_delay): Likewise.
12117         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
12118         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
12119         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
12120         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
12121         (CONDITIONAL_REGISTER_USAGE): Likewise.
12122         (FRAME_POINTER_REQUIRED): Likewise.
12123         (INITIAL_ELIMINATION_OFFSET): Likewise.
12124         (BASE_RETURN_VALUE_REG): Likewise.
12125         (BASE_OUTGOING_VALUE_REG): Likewise.
12126         (BASE_PASSING_ARG_REG): Likewise.
12127         (BASE_INCOMING_ARG_REG): Likewise.
12128         (INCOMING_REGNO): Likewise.
12129         (OUTGOING_REGNO): Likewise.
12130         (LOCAL_REGNO): Likewise.
12131         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
12132         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
12133         (EPILOGUE_USES): Likewise.
12134         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
12135         ("flat" attribute): Delete.
12136         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
12137         handling.
12138         (call followed by jump define_peephole's): Delete.
12139         (exception_receiver): Likewise.
12140         (builtin_setjmp_receiver): Likewise.
12141         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
12142
12143 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
12144
12145         PR c/11658
12146         PR c/13994
12147         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
12148         on langhooks.h.
12149         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
12150         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
12151         Include langhooks.h.  Replace c_common_truthvalue_conversion
12152         with the truthvalue_conversion language hook throughout.
12153         (expr_no_commas): Call default_conversion before save_expr
12154         for the first term of the production 'x ? : y'.
12155         * c-common.c (c_common_truthvalue_conversion): Remove
12156         obsolete block.  Invoke recursively the hook instead
12157         of this function.
12158         * c-convert.c (convert): handle ERROR_MARK_NODE.
12159         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
12160         returned by the truthvalue_conversion language hook.
12161         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12162         c_objc_common_truthvalue_conversion.
12163         * c-objc-common.c (c_objc_common_truthvalue_conversion):
12164         New function.
12165         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
12166         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12167         c_objc_common_truthvalue_conversion.
12168
12169 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12170
12171         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
12172         of gen_rtx.
12173         (LIBCALL_VALUE): Likewise.
12174         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
12175         gen_rtx_CC0 instead of gen_rtx.
12176         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
12177         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
12178         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
12179         gen_rtx.
12180         (m68hc11_emit_logical): Likewise.
12181
12182 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12183
12184         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
12185         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
12186         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
12187         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
12188         config/mips/mips.md, config/mmix/mmix.c,
12189         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
12190         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
12191         config/rs6000/altivec.md, config/s390/s390.c,
12192         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
12193         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
12194         Use const0_rtx instead of GEN_INT (0).  Do the same for other
12195         constants that are readily available.
12196
12197 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12198
12199         * doloop.c, optabs.c, regmove.c, sched-deps.c,
12200         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
12201         instead of GEN_INT (0).  Do the same for other constants that
12202         are readily available.
12203
12204 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12205
12206         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
12207         gen_rtx.
12208         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
12209         instead of gen_rtx.
12210         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
12211         gen_rtx.
12212         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
12213         gen_rtx_ASHIFT instead of gen_rtx.
12214         (udivmodqi4): Likewise.
12215
12216 2004-02-02  Richard Henderson  <rth@redhat.com>
12217
12218         PR target/13789
12219         * expr.c (store_expr): Use force_operand before emit_move_insn.
12220
12221 2004-02-02  Jeff Law  <law@redhat.com>
12222             Roger Sayle  <roger@eyesopen.com>
12223
12224         * tree.c (commutative_tree_code, associative_tree_code): New
12225         functions.
12226         (iterative_hash_expr): Use commutative_tree_code.
12227         * tree.h (commutative_tree_code, associative_tree_code): Declare.
12228         * fold-const.c (operand_equal_p): Use commutative_tree_code
12229         rather than inlining the commutativity check.
12230         (fold): Likewise.
12231
12232 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12233
12234         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
12235         * config/frv/frv-protos.h: Remove the prototype for
12236         frv_function_arg_keep_as_reference.
12237         * config/frv/frv.c (frv_function_arg_keep_as_reference):
12238         Remove.
12239         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
12240         * config/stormy16/stormy16.h: Remove the commented-out
12241         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
12242
12243 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
12244
12245         PR target/13914
12246         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
12247         for retaddr_column.
12248
12249 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12250
12251         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
12252         gen_rtx.
12253
12254 2004-02-02  Eric Christopher  <echristo@redhat.com>
12255             Zack Weinberg  <zack@codesourcery.com>
12256
12257         * c-opts.c (c_common_handle_option): Add -finput-charset.
12258         * c.opt: Ditto.
12259         * cppcharset.c (one_iso88591_to_utf8): Remove.
12260         (convert_iso88591_utf8): Ditto.
12261         (conversion_tab): Remove 8859-1 converter.
12262         (_cpp_input_to_utf8): Remove.
12263         (_cpp_init_iconv_buffer): Ditto.
12264         (_cpp_close_iconv_buffer): Ditto.
12265         (_cpp_convert_input): New function.
12266         (_cpp_default_encoding): Ditto.
12267         * cpphash.h: Add/remove prototypes for above.
12268         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
12269         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
12270         for narrow execution and input character sets.
12271         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
12272         * doc/cppopts.texi: Document -finput-charset.
12273
12274 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
12275
12276         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
12277         against FIRST_PSEUDO_REGISTER.
12278
12279 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12280
12281         * doc/invoke.texi (SPARC options): Further improve.
12282
12283 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12284
12285         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
12286         config/h8300/h8300.c, config/ip2k/ip2k.md,
12287         config/iq2000/iq2000.c, config/mips/mips.c,
12288         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
12289         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
12290         config/v850/v850.md: Fix indentation.
12291
12292 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12293
12294         * config/sparc/sparc.c (function_arg_slotno): Align TImode
12295         arguments on a 16-byte boundary in the parameter array if ARCH64.
12296         Split handling of TFmode.
12297
12298 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
12299
12300         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
12301         Don't test CONSTANT_P (x).
12302         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
12303         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
12304         Fix misindentation.
12305
12306 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12307
12308         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
12309
12310 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12311
12312         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
12313         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
12314         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
12315         config/iq2000/iq2000.c, config/m32r/m32r.c,
12316         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
12317         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
12318         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
12319         config/stormy16/stormy16.c, config/v850/v850.md,
12320         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
12321
12322 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12323
12324         * config/mcore/mcore.c (block_move_sequence): Replace
12325         gen_rtx_CONST_INT with GEN_INT.
12326
12327 2004-02-02  Jan Hubicka  <jh@suse.cz>
12328
12329         * alias.c (record_set): Use hard_regno_nregs.
12330         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
12331         * builtins.c (apply_args_size): Likewise.
12332         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
12333         mark_set_regs, add_stored_regs, mark_referenced_regs,
12334         insert_restore, insert_save, insert_one_insn): Likewise.
12335         * cfgcleanup.c: Include regs.h
12336         (mark_effect, mentions_nonequal_regs): Likewise.
12337         * cfgrtl.c (mark_killed_regs): Likewise
12338         * combine.c (update_table_tick, record_value_for_reg,
12339         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
12340         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
12341         reg_bitfield_target_p, distribute_notes): Likewise.
12342         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
12343         exp_equiv_p, cse_insn): Likewise.
12344         * cselib.c (cselib_lookup): Likewise.
12345         (cselib_invalidate_regno, cselib_record_set): Likewise.
12346         * df.c (df_ref_record): Likewise.
12347         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
12348         Likewise.
12349         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
12350         count_or_remove_death_notes_bb): Likewise.
12351         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
12352         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
12353         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
12354         * integrate.c (mark_stores): Likewise.
12355         * jump.c (delete_prior_computation): Likewise.
12356         * lcm.c (reg_dies, reg_becomes_live): Likewise.
12357         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
12358         * loop.c (LOOP_REGNO_NREGS): Likewise.
12359         * postreload.c (reload_combine, reload_combine_note_store,
12360         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
12361         * ra-colorize.c (combine, color_usable_p, get_free_reg,
12362         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
12363         try_recolor_web, insert_coalesced_conflicts, check_colors,
12364         break_precolored_alias): Likewise.
12365         * ra-debug.c: Include regs.h
12366         (ra_print_rtx_object): Likewise.
12367         * ra-rewrite (choose_spill_colors): Likewise.
12368         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
12369         * ra.c (init_ra): Likewise.
12370         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
12371         peep2_find_free_register): Likewise.
12372         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
12373         * regclass.c (hard_regno_nregs): New array.
12374         (init_reg_modes_once): Initialize it.
12375         (choose_hard_reg_mode): Use it.
12376         (record_reg_classes): Likewise.
12377         * regmove.c (mark_flags_life_zones): Likewise.
12378         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
12379         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
12380         copy_value, maybe_mode_change, find_oldest_value_reg,
12381         copyprop_hardreg_forward_1):
12382         * regs.h (hard_regno_nregs): Declare.
12383         * realod.c (reload_inner_reg_of_subreg): Use it.
12384         (push_reload, combine_reloads, find_dummy_reload,
12385         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
12386         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
12387         reload_adjust_reg_for_mode): Likewise.
12388         * reload1.c (compute_use_by_pseudos, count_pseudo,
12389         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
12390         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
12391         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
12392         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
12393         delete_output_reload): Likewise.
12394         * resource.c (update_live_status, mark_referenced_resources,
12395         mark_set_resources, mark_target_live_regs): Likewise.
12396         * rtlanal.c:  Include regs.h
12397         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
12398         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
12399         subreg_regno_offset, subreg_offset_representable_p,
12400         hoist_test_store): Likewise.
12401         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
12402         * sched-rgn.c (check_live_1, update_live_1): Likewise.
12403         * stmt.c: Include regs.h
12404         (decl_conflicts_with_clobbers_p): Likewise.
12405         * varasm.c (make_decl_rtl): Likewise.
12406         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
12407
12408 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12409
12410         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
12411         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
12412         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
12413         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
12414         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
12415         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12416         config/iq2000/iq2000.h, config/m32r/m32r.c,
12417         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
12418         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
12419         config/mcore/mcore.c, config/mcore/mcore.h,
12420         config/mcore/mcore.md, config/mips/mips.c,
12421         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
12422         config/rs6000/rs6000.c, config/s390/s390.c,
12423         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
12424         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
12425         "gen_rtx (FOO, " with "gen_rtx_FOO (".
12426
12427 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12428
12429         * config/h8300/h8300.md (two peephole2's): New.
12430
12431 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
12432
12433         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
12434         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
12435         (ASM_CPU_SPEC): Likewise
12436         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
12437         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
12438
12439 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12440
12441         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
12442         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
12443         (expand_builtin): Always call expand_builtin_pow.
12444
12445 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12446
12447         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
12448         BUILT_IN_SIGNBITL): New GCC builtins.
12449         * builtins.c (expand_builtin_signbit): New function to RTL expand
12450         calls to signbit, signbitf and signbitl as inline intrinsics.
12451         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
12452         (fold_builtin_signbit): New function to perform constant folding
12453         of signbit, signbitf and signbitl.
12454         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
12455
12456         * doc/extend.texi: Document new signbit{,f,l} builtins.
12457
12458 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
12459
12460         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
12461
12462 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
12463
12464         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
12465         "mips_const_double_ok" and "simple_memory_operand", which were
12466         removed from the MIPS port with the mips-3_4-rewrite branch merge.
12467         * config/mips/mips.c (mips16_lay_out_constants): Update comment
12468         for removal of simple_memory_operand.
12469
12470 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12471
12472         * config/c4x/c4x.md: Use GEN_INT instead of
12473         gen_rtx (CONST_INT, ...).
12474
12475 2004-01-31  Richard Henderson  <rth@redhat.com>
12476
12477         * varasm.c (output_constant_pool): Don't zap the pool.
12478
12479 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12480
12481         * genrecog.c (decision_type): Add DT_const_int.
12482         (write_cond) [DT_const_int]: Print a comparison against small
12483         constant.
12484         (write_node): Simplify comparisons against small constants
12485         before printing tests.
12486
12487 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12488
12489         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
12490         instead of gen_rtx_CONST_INT.
12491
12492 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12493
12494         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
12495         instead of gen_rtx_CONST_INT.
12496
12497 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12498
12499         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
12500         hook_bool_CUMULATIVE_ARGS_false.
12501         * targhooks.c (default_strict_argument_naming): Rename to
12502         hook_bool_CUMULATIVE_ARGS_false.
12503         * targhooks.h: Update the prototype for
12504         default_strict_argument_naming.
12505
12506 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12507
12508         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12509         * config/sh/sh.h: Likewise.
12510         * config/sh/sh.md: Likewise.
12511
12512 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
12513
12514         * doc/invoke.texi (SPARC options): Restructure and update.
12515
12516 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12517
12518         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
12519         STRICT_ARGUMENT_NAMING): Poison.
12520         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
12521         hook_bool_tree_false.
12522         * targhooks.c (default_promote_function_args): Remove.
12523         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
12524         Don't check incoming.
12525         (default_strict_argument_naming): Don't use
12526         STRICT_ARGUMENT_NAMING.
12527         * targhooks.h: Remove the prototype for
12528         default_promote_function_args.
12529
12530 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12531
12532         * config/i386/i386-protos.h: Remove the prototype for
12533         ix86_setup_incoming_varargs.
12534         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
12535         (ix86_setup_incoming_varargs): Make it static.
12536         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
12537
12538 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12539
12540         * alloc-pool.c: Fix comment typos.
12541         * builtin-types.def: Likewise.
12542         * builtins.def: Likewise.
12543         * c-pretty-print.c: Likewise.
12544         * df.h: Likewise.
12545         * reload1.c: Likewise.
12546
12547 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12548
12549         * doc/invoke.texi: Follow spelling conventions.
12550         * doc/tm.texi: Likewise.
12551
12552 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12553
12554         * doc/install.texi: Fix typos.
12555         * doc/invoke.texi: Likewise.
12556
12557 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
12558
12559         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
12560         registers as pointers.
12561         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
12562
12563 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
12564
12565         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
12566         and restore it to gen_lowpart_general on exit.
12567         (gen_lowpart_for_combine): Adjust all callers to go through
12568         gen_lowpart.
12569         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
12570         and restore it to gen_lowpart_general on exit.
12571         (gen_lowpart_if_possible): Adjust all callers to go through
12572         gen_lowpart.
12573         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
12574         (gen_lowpart): Declare as pointer to function, initialized to
12575         gen_lowpart_general.
12576         * rtl.h (gen_lowpart): Declare as pointer to function.
12577
12578 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12579
12580         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12581         * calls.c: Likewise.
12582         * emit-rtl.c: Likewise.
12583         * function.c: Likewise.
12584         * reload1.c: Likewise.
12585         * config/i386/cygming.h: Likewise.
12586         * config/i386/i386.c: Likewise.
12587         * config/i386/winnt.c: Likewise.
12588
12589 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
12590
12591         PR bootstrap/9249
12592         * doc/install.texi: document --enable-__cxa_atexit option.
12593         * configure.ac: Disable __cxa_atexit if not supported.
12594         * configure: Regenerate.
12595
12596 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
12597
12598         * ggc-zone.c (ggc_free): New function.
12599
12600 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12601
12602         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
12603         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
12604         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
12605         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
12606         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
12607         config/alpha/alpha.c, config/alpha/alpha.h,
12608         config/alpha/alpha.md, config/alpha/unicosmk.h,
12609         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
12610         config/c4x/c4x-protos.h, config/c4x/c4x.md,
12611         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
12612         config/frv/frvend.c, config/i386/cygming.h,
12613         config/i386/djgpp.h, config/i386/emmintrin.h,
12614         config/i386/gthr-win32.c, config/i386/i386-interix.h,
12615         config/i386/i386-protos.h, config/i386/openbsd.h,
12616         config/i386/winnt.c, config/i386/xm-mingw32.h,
12617         config/i386/xmmintrin.h, config/ia64/ia64.md,
12618         config/iq2000/iq2000.md, config/m32r/m32r.md,
12619         config/m68k/m68k.md, config/mcore/mcore-elf.h,
12620         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
12621         config/mips/iris5gas.h, config/mips/iris6.h,
12622         config/mips/iris6gas.h, config/mips/linux.h,
12623         config/mips/mips.md, config/mips/netbsd.h,
12624         config/mips/openbsd.h, config/mips/windiss.h,
12625         config/pa/fptr.c, config/rs6000/aix.h,
12626         config/rs6000/altivec.h, config/rs6000/darwin.h,
12627         config/rs6000/xcoff.h, config/s390/s390-protos.h,
12628         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
12629         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
12630         config/sparc/sol2.h: Update copyright.
12631
12632 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
12633
12634         * Makefile.in (abs_docdir, abs_srcdir): Define.
12635         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
12636
12637 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12638
12639         * genconfig.c (main): Have CC0_P check its operand even on a
12640         target without cc0.
12641
12642 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12643
12644         * config/alpha/alpha.c: Remove mentions of deprecates macros
12645         in comments, remove some target-independent comments about target
12646         macros, and/or add minimal function comments for target hook
12647         implementations.
12648         * config/avr/avr.c: Likewise.
12649         * config/ia64/ia64.h: Likewise.
12650         * config/ip2k/ip2k.c: Likewise.
12651         * config/iq2000/iq2000.c: Likewise.
12652         * config/m32r/m32r.h: Likewise.
12653         * config/m68hc11/m68hc11.c: Likewise.
12654         * config/mcore/mcore.c: Likewise.
12655         * config/mmix/mmix.c: Likewise.
12656         * config/mn10300/mn10300.c: Likewise.
12657         * config/pa/pa.c: Likewise.
12658         * config/pdp11/pdp11.c: Likewise.
12659         * config/rs6000/rs6000.h: Likewise.
12660         * config/sh/sh.c: Likewise.
12661         * config/sh/sh.h: Likewise.
12662         * config/sparc/sparc.c: Likewise.
12663         * config/sparc/sparc.h: Likewise.
12664         * config/stormy16/stormy16.c: Likewise.
12665         * config/xtensa/xtensa.c: Likewise.
12666
12667 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
12668
12669         PR optimization/12147
12670         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
12671         RELOAD_FOR_OPADDR_ADDR.
12672         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
12673         might be reused as RELOAD_FOR_OPADDR_ADDR register.
12674
12675 2004-01-30  Jan Hubicka  <jh@suse.cz>
12676
12677         * reload.c (get_secondary_mem): Fix updating of
12678         secondary_memlocs_elim_used.
12679
12680 2004-01-30  Richard Henderson  <rth@redhat.com>
12681
12682         * varasm.c (struct rtx_const, struct pool_constant): Remove.
12683         (MAX_RTX_HASH_TABLE): Remove.
12684         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
12685         (first_pool, last_pool, pool_offset): Remove.
12686         (struct rtx_constant_pool): Split out from ...
12687         (struct varasm_status): ... here.  Reference one via pointer.
12688         (struct constant_descriptor_rtx): Merge struct pool_constant.
12689         (SYMHASH): Remove.
12690         (decode_rtx_const): Remove.
12691         (const_hash_rtx, compare_constant_rtx): Remove.
12692         (record_constant_rtx): Remove.
12693         (const_desc_rtx_hash, const_desc_rtx_eq): New.
12694         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
12695         (const_rtx_hash_1, const_rtx_hash): New.
12696         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
12697         (simplify_subtraction): Use simplify_rtx.
12698         (force_const_mem): Rewrite to use new data structures.
12699         (find_pool_constant): Likewise.
12700         (get_pool_constant, get_pool_constant_mark,
12701         get_pool_constant_for_function, get_pool_mode,
12702         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
12703         (output_constant_pool_2): Split out from output_constant_pool.
12704         (output_constant_pool_1): Likewise.  Use new pool datastructures.
12705         (output_constant_pool): Zap entire pool datastructure.
12706         (mark_constant): Use new pool datastructures.
12707         (mark_constants): Use for_each_rtx.
12708         (mark_constant_pool): Use new pool datastructures.
12709
12710 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
12711
12712         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
12713         Copy operands[1] to pseudo for simplify_gen_subreg.
12714
12715 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12716
12717         * gcse.c (bypass_block): Fix a typo in the previous check-in
12718         to the file.
12719
12720 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
12721
12722         * toplev.c: Include alloc-pool.h.
12723         * Makefile.in (toplev.c): Update dependencies.
12724
12725 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12726
12727         * combine.c (simplify_shift_const, case XOR): Be careful when
12728         commuting XOR with ASHIFTRT.
12729
12730 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12731             Eric Botcazou  <ebotcazou@libertysurf.fr>
12732
12733         * config/sparc/sparc-protos.h: Remove the prototype for
12734         sparc_builtin_saveregs.
12735         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12736         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12737         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12738         (TARGET_STRUCT_VALUE_RTX): Likewise.
12739         (TARGET_RETURN_IN_MEMORY): Likewise.
12740         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12741         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12742         (sparc_builtin_saveregs): Make it static.
12743         (sparc_promote_prototypes): New.
12744         (sparc_struct_value_rtx): Likewise.
12745         (sparc_return_in_memory): Likewise.
12746         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
12747         (PROMOTE_FUNCTION_RETURN): Likewise.
12748         (RETURN_IN_MEMORY): Likewise.
12749         (STRUCT_VALUE): Likewise.
12750         (STRUCT_VALUE_INCOMING): Likewise.
12751         (EXPAND_BUILTIN_SAVEREGS): Likewise.
12752         (STRICT_ARGUMENT_NAMING): Likewise.
12753         (PROMOTE_PROTOTYPES): Likewise.
12754
12755         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
12756
12757 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
12758
12759         PR c/12818
12760         * varasm.c (const_hash_1) <STRING_CST>: Use the
12761         address to compute the hash value if flag_writable_strings.
12762         (compare_constant) <STRING_CST>: Compare the addresses
12763         if flag_writable_strings.
12764         (build_constant_desc): Do not copy the expression for a
12765         STRING_CST if flag_writable_strings.
12766
12767 2004-01-30  Jan Hubicka  <jh@suse.cz>
12768
12769         * alloc-pool.c: Include hashtab.h
12770         (alloc_pool_descriptor): New structure
12771         (alloc_pool_hash): New global variable.
12772         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
12773         (create_alloc_pool): Update statistics.
12774         (free_alloc_pool): Likewise.
12775         (pool_alloc): Likewise.
12776         (output_info): New structure
12777         (print_statistics, dump_alloc_pool_statistics): New function.
12778         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
12779         (dump_alloc_pool_statistics): Declare.
12780         * toplev.c (finalize):  Dump statistics.
12781
12782         * reload.c (secondary_memlocs_elim_used): New static variable.
12783         (get_secondary_mem): Update it.
12784         (find_reloads): Use it.
12785
12786 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
12787
12788         * toplev.c: Fix broken checkin of 2003-12-30, again.
12789
12790 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
12791
12792         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
12793         s390*-*-* targets by specifying a 'nop' insn.
12794         * configure: Regenerate.
12795
12796 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
12797
12798         PR target/11475
12799         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
12800
12801 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
12802
12803         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
12804         of addr when creating MEM copy.
12805
12806 2004-01-29  Devang Patel  <dpatel@apple.com>
12807
12808         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
12809
12810 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
12811
12812         PR inline-asm/6162
12813         * reload.c (find_reloads): Only support one pair of commutative
12814         operands.
12815
12816 2004-01-29  Roger Sayle  <roger@eyesopen.com>
12817
12818         PR java/13824
12819         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
12820         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
12821         recursion.
12822
12823 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
12824
12825         * config/frv/frv.c: Don't mention deprecated macros in
12826         comments.  Remove some target-independent comments about
12827         target macros.
12828         * config/frv/frv.h: Likewise.
12829
12830 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12831
12832         * cfghooks.c (split_block): Set probability and count of the
12833         new edge.
12834
12835 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
12836
12837         * dwarf2out.c (struct die_struct): Added field decl_id.
12838         (decl_die_table): Changed to hash table.
12839         (decl_die_table_allocated): Deleted.
12840         (decl_die_table_in_use): Deleted.
12841         (DECL_DIE_TABLE_INCREMENT): Deleted.
12842         (decl_die_table_hash): New function.
12843         (decl_die_table_eq): New function.
12844         (lookup_decl_die): Lookup in a hash table.
12845         (equate_decl_number_to_die): Insert into a hash table.
12846         (dwarf2out_init): Init hash table decl_die_table.
12847
12848 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
12849
12850         PR optimization/13424
12851         * expr.c (store_constructor): Revert 2003-12-03 change.
12852
12853         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
12854         expected before returning early.  Avoid sharing RTL if they
12855         need to be changed.
12856
12857         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
12858         handling so that memory attributes are preserved.  Don't call
12859         ix86_set_move_mem_attrs.
12860         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
12861         (ix86_expand_clrstr): Rename src argument to
12862         dst.  Rework rep_stos and strset handling so that memory attributes
12863         are preserved.
12864         (ix86_expand_strlen): Pass src argument to
12865         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
12866         memory attributes are preserved.
12867         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
12868         change_address instead of gen_rtx_MEM.
12869         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
12870         expanders.
12871         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
12872         strmovqi, strmovqi_rex64): Remove.
12873         (rep_mov*, strmov*): Prefix insn names with *.
12874         (strset, strset_singleop, rep_stos): New expanders.
12875         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
12876         strsetqi, strsetqi_rex64): Remove.
12877         (rep_stos*, strset*): Prefix insn names with *.
12878         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
12879         to SImode.
12880         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
12881         are preserved.
12882         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
12883         Prefix insn names with *.
12884         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
12885         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
12886         (strlenqi_1): New expander.
12887         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
12888
12889 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12890
12891         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
12892         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
12893         verify_flow_info): Declaration removed.
12894         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
12895         (debug_bb, debug_bb_n): Add argument to dump_bb call.
12896         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
12897         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
12898         instead of delete_block.
12899         * cfghooks.c: Include timevar.h and toplev.h.
12900         (cfg_hooks): Define here.
12901         (verify_flow_info, dump_bb): Moved from cfg.c.
12902         (redirect_edge_and_branch, redirect_edge_and_branch_force,
12903         split_block, split_block_after_labels, move_block_after,
12904         delete_basic_block, split_edge, create_basic_block,
12905         create_empty_bb, can_merge_blocks_p, merge_blocks,
12906         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
12907         New functions.
12908         * cfghooks.h (struct cfg_hooks): Added fields name,
12909         make_forwarder_block, tidy_fallthru_edge and
12910         move_block_after. Changed type of verify_flow_info, dump_bb,
12911         split_block fields. Renamed cfgh_split_edge and delete_block
12912         fields.
12913         (redirect_edge_and_branch, redirect_edge_and_branch_force,
12914         split_block, delete_block, split_edge, create_basic_block,
12915         can_merge_blocks_p, merge_blocks): Macros removed.
12916         (cfg_hooks): Do not export.
12917         (verify_flow_info, dump_bb, redirect_edge_and_branch,
12918         redirect_edge_and_branch_force, split_block, split_block_after_labels,
12919         move_block_after, delete_basic_block, split_edge, create_basic_block,
12920         create_empty_bb, can_merge_blocks_p, merge_blocks,
12921         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
12922         Declare.
12923         (cfg_layout_rtl_cfg_hooks): Declare.
12924         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
12925         New functions.
12926         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
12927         (redirect_edge_with_latch_update): Removed.
12928         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
12929         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
12930         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
12931         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
12932         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
12933         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
12934         cfghooks.c.
12935         (rtl_create_basic_block): Coding style fix.
12936         (rtl_tidy_fallthru_edge, rtl_move_block_after,
12937         rtl_make_forwarder_block): New functions.
12938         (update_cfg_after_block_merging): Removed.
12939         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
12940         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
12941         to dump_bb.
12942         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
12943         find_if_case_2): Don't update dominators.
12944         * timevar.def (TV_CFG_VERIFY): New.
12945         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
12946         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
12947         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
12948         (remove_bbs): Don't call remove_bbs.
12949         (create_preheader): Use make_forwarder_block.
12950         (mfb_keep_just, mfb_update_loops): New static functions.
12951
12952 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
12953
12954         * config/avr/avr.h: Remove target-independent comments about
12955         target macros.
12956
12957 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
12958
12959         * timevar.c (timevar_print): Mention when checking is enabled.
12960
12961 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
12962
12963         * c-lex.c (c_lex): Rename to...
12964         (c_lex_with_flags): Add new parameter to get CPP flags.
12965         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
12966         * c-pragma.h (c_lex_with_flags): Declare.
12967
12968 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12969
12970         * config/mcore/mcore.c (mcore_external_libcall): Add a
12971         comment.
12972         (mcore_return_in_memory): Likewise.
12973
12974 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12975
12976         * config/mcore/mcore-protos.h: Remove the prototype for
12977         mcore_setup_incoming_varargs.
12978         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12979         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
12980         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12981         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12982         (TARGET_STRUCT_VALUE_RTX): Likewise.
12983         (TARGET_RETURN_IN_MEMORY): Likewise.
12984         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12985         (mcore_setup_incoming_varargs): Make it static.  Receive the
12986         first argument by reference.  Add argument second_time.
12987         (mcore_external_libcall): New.
12988         (mcore_return_in_memory): Likewise.
12989         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
12990         (PROMOTE_FUNCTION_RETURN): Likewise.
12991         (STRUCT_VALUE): Likewise.
12992         (RETURN_IN_MEMORY): Likewise.
12993         (SETUP_INCOMING_VARARGS): Likewise.
12994         (PROMOTE_PROTOTYPES): Likewise.
12995         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
12996
12997 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12998
12999         * config/m32r/m32r-protos.h: Remove the prototype for
13000         m32r_setup_incoming_varargs.
13001         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
13002         (TARGET_STRUCT_VALUE_RTX): Likewise.
13003         (TARGET_RETURN_IN_MEMORY): Likewise.
13004         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13005         (m32r_return_in_memory): New.
13006         (m32r_setup_incoming_varargs): Make it static.
13007         * config/m32r/m32r.h: Remove #undef of
13008         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
13009         definitions of PROMOTE_FUNCTION_ARGS and
13010         PROMOTE_FUNCTION_RETURN.
13011         (PROMOTE_PROTOTYPES): Remove.
13012         (RETURN_IN_MEMORY): Likewise.
13013         (STRUCT_VALUE): Likewise.
13014
13015 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13016
13017         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
13018         (TARGET_STRUCT_VALUE_RTX): Likewise.
13019         (m68k_struct_value_rtx): Likewise.
13020         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
13021         STRUCT_VALUE_REGNUM.
13022         (PROMOTE_PROTOTYPES): Remove.
13023         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
13024         STRUCT_VALUE_REGNUM.
13025         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
13026         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
13027
13028 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13029
13030         * config/stormy16/stormy16.c
13031         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
13032         TARGET_BUILD_BUILTIN_VA_LIST.
13033
13034 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13035
13036         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
13037         (TARGET_STRUCT_VALUE_RTX): Likewise.
13038         (TARGET_RETURN_IN_MEMORY): Likewise.
13039         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13040         (v850_return_in_memory): Likewise.
13041         (v850_setup_incoming_varargs): Likewise.
13042         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
13043         (SETUP_INCOMING_VARARGS): Likewise.
13044         (RETURN_IN_MEMORY): Likewise.
13045         (STRUCT_VALUE): Likewise.
13046
13047 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13048
13049         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
13050         (fr30_setup_incoming_varargs): Don't use
13051         STRICT_ARGUMENT_NAMING.
13052         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
13053         (STRICT_ARGUMENT_NAMING): Likewise.
13054
13055 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13056
13057         * config/frv/frv-protos.h: Remove the prototype for
13058         frv_expand_builtin_saveregs.
13059         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
13060         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13061         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
13062         STRUCT_VALUE_REGNUM.
13063         (frv_expand_builtin_saveregs): Make it static.
13064         (frv_struct_value_rtx): New.
13065         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
13066
13067 2004-01-29  Jan Hubicka  <jh@suse.cz>
13068
13069         PR c++/12850
13070         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
13071         initial pointers.
13072         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
13073         for functions that will be only inlined.
13074         (cgraph_mark_function_to_output): Likewise.
13075         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
13076         do not clear function body.
13077         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
13078         (tree_rest_of_compilation): Reorganize the logic releasing function
13079         body to use callgraph datastructure.
13080
13081 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13082
13083         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
13084         to register_operand.
13085
13086 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13087
13088         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
13089         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
13090         match_operand expressions so that all match_dups appear
13091         lexically after their corresponding match_operands.
13092
13093 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13094
13095         * config/h8300/h8300.c (WORD_REG_USED): Use
13096         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
13097         (compute_saved_regs): Likewise.
13098         (h8300_expand_prologue): Likewise.  Allocate locals after
13099         saving registers.
13100         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
13101         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
13102         registers.
13103         (h8300_initial_elimination_offset): Adjust for the new frame
13104         layout, which swaps flips the order of locals and saved
13105         registers.
13106         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
13107         (HARD_FRAME_POINTER_REGNUM): New.
13108         (ELIMINABLE_REGS): Add an elimination rule from
13109         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
13110         (REGISTER_NAMES): Add fp.
13111         * config/h8300/h8300.md (FP_REG): Change to 11.
13112         (HFP_REG): New.
13113
13114 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13115
13116         * genrecog.c (write_node): Remove a useless local variable.
13117
13118 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13119
13120         * Makefile.in (options.c options.h): Use stamp file s-options to
13121         avoid unnecessary rebuilds.
13122         (options.o): New target listing dependencies.
13123         (gtyp-gen.h): Use stamp file s-gtyp-gen.
13124         (STAGESTUFF): Add s-gtyp-gen.
13125
13126 2004-01-28  Richard Henderson  <rth@redhat.com>
13127
13128         * ggc.h (ggc_free): Declare.
13129         * ggc-common.c (ggc_realloc): Use it.
13130         * ggc-page.c: Remove lots of inline markers.
13131         (globals): Add free_object_list.
13132         (ggc_alloc): Tidy.
13133         (ggc_free, validate_free_objects): New.
13134         (poison_pages): Provide default.
13135         (ggc_collect): Call validate_free_objects; emit markers to
13136         the debug file.
13137
13138 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13139             Jim Wilson  <wilson@specifixinc.com>
13140
13141         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
13142         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
13143         scratch pointer.
13144         (ia64_secondary_reload_class): Delete case GR_REGS.
13145         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
13146         Do not allocate a scratch register.
13147         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
13148
13149 2004-01-28  Jan Hubicka  <jh@suse.cz>
13150
13151         * gcse.c (bypass_block): Prevent edges to be unified when we are
13152         about to emit compenstation code.
13153
13154 2004-01-28  Nick Clifton  <nickc@redhat.com>
13155
13156         * config/arm/arm.c (arm_expand_builtin): Force second argument of
13157         the setcwx insn into a register.
13158
13159 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
13160
13161         * config/fp-bit.c (pack_d): When using paired doubles to implement
13162         a long double, round the high part separately.
13163         (unpack_d): Fix the case in which the high part is a power of two
13164         and the low part is a nonzero value of the opposite sign.
13165
13166 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13167
13168         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13169         (TARGET_STRUCT_VALUE_RTX): Likewise.
13170         (c4x_external_libcall): Likewise.
13171         (c4x_struct_value_rtx): Likewise.
13172         * config/c4x/c4x.h: Remove.
13173         (STRUCT_VALUE_REGNUM): Likewise.
13174         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13175
13176 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13177
13178         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
13179         (TARGET_STRUCT_VALUE_RTX): Likewise.
13180         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
13181         (STRUCT_VALUE): Likewise.
13182         (PROMOTE_PROTOTYPES): Likewise.
13183
13184 2004-01-27  Roger Sayle  <roger@eyesopen.com>
13185
13186         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
13187         CONST_INT before using INTVAL.
13188
13189 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
13190
13191         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
13192         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
13193         frame if !TARGET_BACKCHAIN.
13194         * config/s390/s390.md ("allocate_stack"): Use pattern only if
13195         TARGET_BACKCHAIN.
13196         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
13197
13198 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13199
13200         * ia64.c (ia64_function_arg): When placing HFAs in integer
13201         registers, do not special case the mode used for complex
13202         types.  Do not advance int_regs until the current register
13203         is full.
13204
13205 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
13206
13207         PR target/7297
13208         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
13209
13210 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13211
13212         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
13213         slow, unaligned loads and stores while debugging.  Fix formatting.
13214
13215 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13216
13217         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
13218         of computing wmode.
13219         (restore_stack_nonlocal): Same.
13220
13221 2004-01-27  Devang Patel <dpatel@apple.com>
13222
13223         * Makefile.in (dwarf2out.o): Depend on input.h
13224         * dbxout.c (dbx_debug_hooks): Add new empty hook for
13225         imported_module_or_decl.
13226         (xcoff_debug_hooks): Same.
13227         * sdbout.c (sdb_debug_hooks): Same.
13228         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
13229         * debug.c (do_nothing_debug_hooks): Same.
13230         (debug_nothing_tree_tree): New function.
13231         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
13232         * dwarf2out.c: Include input.h.
13233         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
13234         (remove_child_TAG): New function.
13235         (dwarf_tag_name): Handle DW_TAG_imported_module.
13236         (gen_subprogram_die): Equate decl number to declaration die. Do not
13237         remove all children dies while reusing declaration die for definition.
13238         Instead, selectively remove only formal parameters.
13239         (gen_variable_die): Equate variable decl to declaration die.
13240         (gen_field_die): Equate field decl to line number.
13241         (force_namespace_die): Replace it with ...
13242         (force_decl_die): ... this.
13243         (force_type_die): New function.
13244         (setup_namespace_context): Replace use of force_namespace_die() with
13245         force_decl_die().
13246         (gen_namespace_die): Same.
13247         (dwarf2out_imported_module_or_decl): New function.
13248
13249 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
13250
13251         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
13252         on CQImode and CHImode incoming arguments in register a7.
13253         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
13254         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
13255         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
13256         xtensa_copy_incoming_a7 before reload.
13257
13258 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13259
13260         * coverage.c (get_coverage_counts): Give a different message
13261         if flag_guess_branch_prob is set.
13262         * predict.c (counts_to_freqs): Return an int.
13263         (estimate_bb_frequencies): If counts_to_freqs returns zero,
13264         calculate estimates.
13265
13266 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
13267
13268         * config/iq2000/iq2000-protos.h: Remove the prototype for
13269         iq2000_setup_incoming_varargs.
13270         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13271         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13272         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13273         (TARGET_STRUCT_VALUE_RTX): Likewise.
13274         (TARGET_RETURN_IN_MEMORY): Likewise.
13275         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13276         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13277         (iq2000_return_in_memory): Likewise.
13278         (iq2000_setup_incoming_varargs): Make it static.  Receive the
13279         first argument by reference.
13280         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
13281         (PROMOTE_FUNCTION_RETURN): Likewise.
13282         (PROMOTE_PROTOTYPES): Likewise.
13283         (RETURN_IN_MEMORY): Likewise.
13284         (STRUCT_VALUE): Likewise.
13285         (SETUP_INCOMING_VARARGS): Likewise.
13286         (STRICT_ARGUMENT_NAMING): Likewise.
13287
13288 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
13289
13290         * fixinc/fixinc.c (test_test): Initialize res.
13291         (start_flexer): Initialize pz_cmd_save.
13292
13293 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13294
13295         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
13296         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
13297
13298 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13299
13300         PR 7198
13301         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
13302         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
13303         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
13304         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
13305         Possibly rename pattern for consistency.
13306         Remove ??? comments suggesting that this be done.
13307         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
13308         New patterns.
13309         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
13310         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
13311         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
13312         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
13313         Update to match.
13314
13315 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
13316
13317         * config/arm/arm.c (output_return_instruction): Only restore IP
13318         into SP if frame_pointer_needed.
13319
13320 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13321
13322         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13323         for SCmode and DCmode if ARCH32.
13324         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
13325         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
13326         if ARCH32.
13327         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
13328         if ARCH32.
13329         (BASE_OUTGOING_VALUE_REG): Likewise.
13330
13331 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13332
13333         PR target/10904
13334         PR target/13058
13335         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
13336         Forbid mode changes from SImode for lower FP regs if ARCH64.
13337
13338 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13339
13340         * Makefile.in (bt-load.o): Depend on except.h.
13341         * bt-load.c (except.h): #include.
13342         (compute_defs_uses_and_gen): If insn at end of BB can throw
13343         within this function, consider registers used by it unavailable for
13344         btr migration.
13345         (move_btr_def): If insn at end of BB can throw, insert before rather
13346         than after.
13347
13348         * flags.h (flag_btr_bb_exclusive): Declare.
13349         * toplev.c (flag_btr_bb_exclusive): New variable.
13350         (f_options): Add btr-bb-exclusive.
13351         * bt-load.c (augment_live_range): Restore old behaviour if
13352         flag_btr_bb_exclusive is set.
13353         * common.opt: Add entry for -fbtr-bb-exclusive.
13354         * opts.c (common_handle_options): Same.
13355         * doc/invoke.texi: Document -fbtr-bb-exclusive.
13356
13357         * bt-load.c (btrs_live_at_end): New variable.
13358         (compute_defs_uses_and_gen): Compute its pointed-to array.
13359         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
13360         (augment_live_range): When augmenting with a new dominator,
13361         use only its btrs_live_at_end set, but also add in the full set
13362         of the old dominator.
13363         (btr_def_live_range): Use btrs_live_at_end.
13364         (move_btr_def): Set other_btr_uses_before_def, and move new set
13365         to the end of the basic block, if appropriate.
13366         (migrate_btr_defs): Allocate and free btrs_live_at_end.
13367
13368         * bt-load.c (basic_block_freq): Remove outdated comment.
13369
13370 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
13371
13372         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
13373         (PREDICATE_CODES): Remove duplicate.
13374         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
13375         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
13376         (MASK_PROFILE_KERNEL): Adjust define.
13377
13378 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
13379
13380         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
13381         of long string literals from 32 bytes to sizeof (void *) when !-Os
13382         and to 1 with -Os.
13383
13384 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13385
13386         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
13387         constant addresses in the normal mode.
13388
13389 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13390
13391         * system.h (CHAR_BITFIELD): Delete.
13392         (BOOL_BITFIELD): New.
13393         * c-decl.c (c_scope): Use BOOL_BITFIELD.
13394         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
13395
13396 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13397
13398         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13399         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13400         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13401         (TARGET_STRUCT_VALUE_RTX): Likewise.
13402         (TARGET_RETURN_IN_MEMORY): Likewise.
13403         (arc_return_in_memory): Likewise.
13404         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
13405         (PROMOTE_FUNCTION_RETURN): Likewise.
13406         (RETURN_IN_MEMORY): Likewise.
13407         (STRUCT_VALUE): Likewise.
13408
13409 2004-01-26  Richard Henderson  <rth@redhat.com>
13410
13411         * c-parse.in (extension): Use itype.
13412         (SAVE_EXT_FLAGS): Don't allocate a tree.
13413         (RESTORE_EXT_FLAGS): Don't read a tree.
13414
13415 2004-01-26  Jan Hubicka  <jh@suse.cz>
13416
13417         * cselib.c (discard_useless_values):  Clear out value pointer pointing
13418         to datastructure to be recycled.
13419
13420 2004-01-25  Jan Hubicka  <jh@suse.cz>
13421
13422         * genextract.c (main): Do not output the memset when not checking.
13423
13424 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13425
13426         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
13427         switch statement instead of a chain of if statements.
13428
13429 2004-01-26  Jeff Law  <law@redhat.com>
13430
13431         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
13432         acute accents for Petur Runolfsson's entry.
13433
13434 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13435
13436         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
13437         (TARGET_RETURN_IN_MEMORY): Likewise.
13438         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
13439         (RETURN_IN_MEMORY): Likewise.
13440
13441 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13442
13443          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
13444          unaligned load/store into smaller loads and stores.
13445
13446 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13447
13448         * function.c (assign_parms): Do not assign
13449         long long argument to memory in prologue if
13450         is it loaded into register.
13451
13452 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13453
13454          PR middle-end/13779
13455          * expr.c (emit_group_load): split constant
13456          correctly into register components of PARALLEL insn.
13457
13458 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13459
13460         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
13461         Use adjust_address_nv directly with appropriate mode.
13462         (restore_stack_nonlocal): Ditto.
13463
13464 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13465
13466         * config/xtensa/xtensa-protos.h: Remove the prototype for
13467         xtensa_builtin_saveregs.
13468         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13469         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13470         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13471         (TARGET_STRUCT_VALUE_RTX): Likewise.
13472         (TARGET_RETURN_IN_MEMORY): Likewise.
13473         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13474         (xtensa_builtin_saveregs): Make it static.
13475         (xtensa_return_in_memory): New.
13476         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
13477         (PROMOTE_FUNCTION_RETURN): Likewise.
13478         (PROMOTE_PROTOTYPES): Likewise.
13479         (STRUCT_VALUE): Likewise.
13480         (RETURN_IN_MEMORY): Likewise.
13481         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13482
13483 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13484
13485         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
13486         (arm_setup_incoming_varargs): Likewise.
13487         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
13488
13489 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13490
13491         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
13492         (cris_setup_incoming_varargs): Likewise.
13493         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
13494
13495 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13496
13497         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
13498         (ns32k_struct_value_rtx): Likewise.
13499         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
13500         NS32K_STRUCT_VALUE_REGNUM.
13501
13502 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13503
13504         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13505         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13506         (TARGET_STRUCT_VALUE_RTX): Likewise.
13507         (arm_struct_value_rtx): Likewise.
13508         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
13509         (STRUCT_VALUE): Likewise.
13510         (STRUCT_VALUE_REGNUM): Likewise.
13511         (PROMOTE_PROTOTYPES): Likewise.
13512
13513 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13514
13515         * config/ia64/ia64-protos.h: Remove the prototype for
13516         ia64_setup_incoming_varargs and ia64_return_in_memory.
13517         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
13518         (TARGET_RETURN_IN_MEMORY): Likewise.
13519         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13520         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13521         (ia64_setup_incoming_varargs): Adjust the arguments to meet
13522         the requirement of TARGET_SETUP_INCOMING_VARARGS.
13523         (ia64_return_in_memory): Make it static.  Change the return
13524         type to bool from int.  Add an argument.
13525         (ia64_struct_value_rtx): New.
13526         * config/ia64/ia64.h: Remove commented-out definitions of
13527         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
13528         PROMOTE_PROTOTYPES.
13529         (RETURN_IN_MEMORY): Remove.
13530         (STRUCT_VALUE_REGNUM): Likewise.
13531         (STRICT_ARGUMENT_NAMING): Likewise.
13532
13533 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
13534
13535         PR target/13666
13536         * config/sparc/sparc.c (function_arg_union_value): New function.
13537         (function_arg): Use it to deal with unions.
13538         (function_value): Likewise.  Define 'regbase' only for ARCH64.
13539         Replace a conditional statement by a simpler one.
13540
13541 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
13542
13543         * config/mips/mips.c (mips16_optimize_gp): Delete.
13544         (mips_reorg): Don't call it.
13545
13546 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13547
13548         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
13549         (floatunsqihf2): Remove operand 6.
13550         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
13551         fix patterns.
13552         (ldi_conditional, ldf_conditional): Validate operands.
13553
13554 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13555
13556         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
13557         (HAVE_GAS_HIDDEN): Undefine as interim measure.
13558
13559 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13560
13561         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
13562         memory references if TARGET_EXPOSE_LDP nonzero.
13563
13564 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13565
13566         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
13567
13568 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13569
13570         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
13571         invalid operand combinations.
13572
13573 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13574
13575         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
13576         c4x_legitimate_address_p.  Fix post_modify check.
13577
13578         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
13579         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
13580
13581 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13582
13583         * config/pa/pa-protos.h: Remove the prototype for
13584         hppa_builtin_saveregs.  Add a prototype for
13585         pa_return_in_memory.
13586         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
13587         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13588         (TARGET_STRUCT_VALUE_RTX): Likewise.
13589         (TARGET_RETURN_IN_MEMORY): Likewise.
13590         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13591         (pa_struct_value_rtx): Likewise.
13592         (pa_return_in_memory): Likewise.
13593         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
13594         PA_STRUCT_VALUE_REGNUM.
13595         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
13596         (EXPAND_BUILTIN_SAVEREGS): Remove.
13597         (PROMOTE_PROTOTYPES): Likewise.
13598         (PROMOTE_FUNCTION_RETURN): Likewise.
13599
13600 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13601
13602         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
13603         (TARGET_STRUCT_VALUE_RTX): Likewise.
13604         (vax_struct_value_rtx): Likewise.
13605         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
13606         VAX_STRUCT_VALUE_REGNUM.
13607         (PROMOTE_PROTOTYPES): Remove.
13608
13609 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13610
13611         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
13612
13613 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
13614
13615         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
13616         and MIPS64 have HI/LO interlocks.  Update comment.
13617
13618 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13619
13620         * config/stormy16/stormy16-protos.h: Remove the prototype for
13621         xstormy16_setup_incoming_varargs.
13622         * config/stormy16/stormy16.c
13623         (xstormy16_setup_incoming_varargs): Remove.
13624         (xstormy16_return_in_memory): New.
13625         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13626         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13627         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13628         (TARGET_STRUCT_VALUE_RTX): Likewise.
13629         (TARGET_RETURN_IN_MEMORY): Likewise.
13630         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
13631         (PROMOTE_FUNCTION_RETURN): Likewise
13632         (PROMOTE_PROTOTYPES): Likewise
13633         (RETURN_IN_MEMORY): Likewise
13634         (STRUCT_VALUE): Likewise
13635         (SETUP_INCOMING_VARARGS): Likewise
13636
13637 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
13638
13639         * config/mips/mips.c (mips_offset_within_object_p): New function.
13640         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
13641         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
13642         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
13643
13644 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13645
13646         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
13647         (PROMOTE_FUNCTION_RETURN): Likewise.
13648
13649 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13650
13651         * config/mn10300/mn10300-protos.h: Remove the prototype for
13652         mn10300_builtin_saveregs.
13653         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
13654         (TARGET_STRUCT_VALUE_RTX): Likewise.
13655         (TARGET_RETURN_IN_MEMORY): Likewise.
13656         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13657         (mn10300_return_in_memory): Likewise.
13658         (mn10300_builtin_saveregs): Make it static.
13659         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
13660         (RETURN_IN_MEMORY): Likewise.
13661         (STRUCT_VALUE): Likewise.
13662         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13663
13664 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
13665
13666         PR bootstrap/13853
13667         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
13668
13669 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13670
13671         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
13672         using ccr.
13673
13674 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13675
13676         * config/i860/i860-protos.h: Remove the prototype for
13677         i860_saveregs.
13678         * config/i860/i860.c (i860_saveregs): Make it static.
13679         (i860_struct_value_rtx): New.
13680         (TARGET_STRUCT_VALUE_RTX): Likewise.
13681         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13682         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
13683         I860_STRUCT_VALUE_REGNUM.
13684         (EXPAND_BUILTIN_SAVEREGS): Remove.
13685
13686 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13687
13688         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
13689         (TARGET_RETURN_IN_MEMORY): Likewise.
13690         (m68hc11_struct_value_rtx): Likewise.
13691         (m68hc11_return_in_memory): Likewise.
13692         * config/m68hc11/m68hc11.h: Remove a commented-out definition
13693         of PROMOTE_PROTOTYPES.
13694         (RETURN_IN_MEMORY): Remove.
13695         (STRUCT_VALUE_REGNUM): Likewise.
13696
13697 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13698
13699         * config/mmix/mmix-protos.h: Remove the prototype for
13700         mmix_setup_incoming_varargs.
13701         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13702         (TARGET_STRUCT_VALUE_RTX): Likewise.
13703         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13704         (mmix_setup_incoming_varargs): Make it static.
13705         (mmix_struct_value_rtx): New.
13706         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
13707         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
13708         (STRUCT_VALUE_REGNUM): Remove.
13709         (SETUP_INCOMING_VARARGS): Likewise.
13710
13711 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13712
13713         * config/mips/mips-protos.h: Remove the prototypes for
13714         mips_setup_incoming_varargs and mips_return_in_memory.
13715         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13716         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13717         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13718         (TARGET_STRUCT_VALUE_RTX): Likewise.
13719         (TARGET_RETURN_IN_MEMORY): Likewise.
13720         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13721         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13722         (mips_setup_incoming_varargs): Match the prototype for
13723         TARGET_SETUP_INCOMING_VARARGS.
13724         (mips_return_in_memory): Make it static.  Add argument fntype.
13725         (mips_strict_argument_naming): New.
13726         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
13727         (PROMOTE_FUNCTION_ARGS): Likewise.
13728         (PROMOTE_FUNCTION_RETURN): Likewise.
13729         (STRUCT_VALUE): Likewise.
13730         (RETURN_IN_MEMORY): Likewise.
13731         (SETUP_INCOMING_VARARGS): Likewise.
13732         (STRICT_ARGUMENT_NAMING): Likewise.
13733
13734 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13735
13736         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
13737         (TARGET_RETURN_IN_MEMORY): Likewise.
13738         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13739         (ip2k_return_in_memory): Likewise.
13740         (ip2k_setup_incoming_varargs): Likewise.
13741         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
13742         (STRUCT_VALUE): Likewise.
13743         (STRUCT_VALUE_INCOMING): Likewise.
13744         (SETUP_INCOMING_VARARGS): Likewise.
13745
13746 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13747
13748         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
13749         (TARGET_RETURN_IN_MEMORY): Likewise.
13750         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13751         (avr_return_in_memory): Remove.
13752         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
13753         (STRUCT_VALUE): Likewise.
13754         (STRUCT_VALUE_INCOMING): Likewise.
13755         (STRICT_ARGUMENT_NAMING): Likewise.
13756
13757 2004-01-25  Jan Hubicka  <jh@suse.cz>
13758
13759         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
13760
13761 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
13762
13763         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
13764         (mips_regno_mode_ok_for_base_p): Declare.
13765         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
13766         (FRAME_POINTER_REGNUM): Renumber to 78.
13767         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
13768         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
13769         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
13770         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
13771         (REG_MODE_OK_FOR_BASE_P): Likewise.
13772         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
13773         entry for 77 to "$arg" and entry for 78 to "$frame".
13774         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
13775         (mips_reg_mode_ok_for_base_p): Remove.
13776         (mips_regno_mode_ok_for_base_p): New function, derived from old
13777         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
13778         restrictions unless we're being strict.
13779         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
13780
13781 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13782
13783         * c-common.h: Fix comment typos.
13784         * c-decl.c: Likewise.
13785         * cgraphunit.c: Likewise.
13786         * combine.c: Likewise.
13787         * et-forest.c: Likewise.
13788         * flow.c: Likewise.
13789         * function.c: Likewise.
13790         * ifcvt.c: Likewise.
13791         * integrate.c: Likewise.
13792         * jump.c: Likewise.
13793         * postreload.c: Likewise.
13794         * varray.c: Likewise.
13795
13796 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13797
13798         * doc/frontends.texi: Update copyright.
13799         * doc/gcov.texi: Likewise.
13800         * doc/gty.texi: Likewise.
13801         * doc/sourcebuild.texi: Likewise.
13802         * doc/standards.texi: Likewise.
13803
13804 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
13805
13806         PR target/12978
13807         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
13808         Remove movstrqi_small because it conflicts with movstrqi_large.
13809
13810 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13811
13812         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13813         (TARGET_STRUCT_VALUE_RTX): Likewise.
13814         (cris_struct_value_rtx): Likewise.
13815         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
13816         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
13817         STRUCT_VALUE_REGNUM.
13818         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
13819
13820 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
13821
13822         PR bootstrap/13848
13823         * cse.c (cse_cc_succs): Change the mode of the source expression
13824         as soon as decide we need a new mode.  Don't permit changing modes
13825         if we found a match in a successor block.
13826         (cse_condition_code_reg): Save original mode of source expression
13827         so that we know whether we have to change the mode in other
13828         insns.
13829
13830 2004-01-24  Jan Hubicka  <jh@suse.cz>
13831
13832         * emit-rtl.c (change_address, adjust_address_1, offset_address,
13833         widen_memory_access):  Return early when there is nothing to change.
13834
13835 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
13836
13837         * simplify-rtx.c (simplify_relational_operation): Don't
13838         simplify address == constant into address + -constant == 0.
13839
13840 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13841
13842         * gcc.c (process_command): Don't internationalize the
13843         Copyright message.
13844         * mips-tfile.c (main): Likewise.
13845
13846 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
13847
13848         * cse.c: (cse_cc_succs) Fix comparison warning.
13849
13850 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13851
13852         * config/h8300/h8300.md: Remove extraneous USE in expanders.
13853
13854 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13855
13856         * config/h8300/h8300-protos.h: Provide prototypes for
13857         h8300_legitimate_constant_p and h8300_legitimate_address_p.
13858         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
13859         (h8300_rtx_ok_for_base_p): Likewise.
13860         (h8300_legitimate_address_p): Likewise.
13861         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
13862         h8300_legitimate_constant_p.
13863         (RTX_OK_FOR_BASE_P): Remove.
13864         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
13865
13866 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13867
13868         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
13869         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
13870         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
13871         (REG_OK_FOR_BASE_STRICT_P): Likewise.
13872         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
13873         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
13874         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
13875         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
13876
13877 2004-01-24  Jan Hubicka  <jh@suse.cz>
13878
13879         * cselib.c (remove_useless_values):  Do not access discarded values.
13880
13881 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
13882
13883         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
13884         arrays.
13885
13886 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
13887
13888         * recog.c: Fix a typo in copyright.
13889
13890 2004-01-23  Andrew Pinski  <apinski@apple.com>
13891
13892         * config/rs6000/rs6000.md (call): Fix misappiled patch.
13893         (call_value): Likewise.
13894
13895 2004-01-23  Richard Henderson  <rth@redhat.com>
13896
13897         PR opt/12941
13898         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
13899         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
13900         if SHIFT_COUNT_TRUNCATED is set.
13901
13902 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
13903
13904         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
13905         separate real and imaginary parts.
13906         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
13907
13908 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
13909
13910         PR target/13674
13911         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
13912         loading into GPR.
13913
13914 2004-01-23  Jan Hubicka  <jh@suse.cz>
13915
13916         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
13917         change.
13918
13919         * alloc-pool.c (align_four): Kill.
13920         (create_alloc_pool): Align size to eight.
13921         (free_alloc_pool, free_pool): Invalidate deallocated data.
13922
13923 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
13924
13925         PR gcc/1532
13926         * cse.c (cse_change_cc_mode): New static function.
13927         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
13928         (cse_condition_code_reg): New function.
13929         * rtl.h (cse_condition_code_reg): Declare.
13930         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
13931         * target.h (struct gcc_target): Add fixed_condition_code_regs and
13932         cc_modes_compatible.
13933         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
13934         (TARGET_CC_MODES_COMPATIBLE): Define.
13935         (TARGET_INITIALIZER): Add new initializers.
13936         * targhooks.c (default_cc_modes_compatible): New function.
13937         * targhooks.c (default_cc_modes_compatible): Declare.
13938         * hooks.c (hook_bool_intp_intp_false): New function.
13939         * hooks.h (hook_bool_intp_intp_false): Declare.
13940         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
13941         (TARGET_CC_MODES_COMPATIBLE): Define.
13942         (ix86_fixed_condition_code_regs): New static function.
13943         (ix86_cc_modes_compatible): Likewise.
13944         * doc/tm.texi (Condition Code): Document new hooks.
13945
13946 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13947
13948         * fixinc/inclhack.def (bad_lval): Renamed to ...
13949         (alpha_bad_lval): ... this.
13950         Removed file list.
13951         Restrict to alpha*-dec-osf*.
13952         * fixinc/fixincl.x: Regenerate.
13953         * fixinc/tests/base/dirent.h: Remove, moving test ...
13954         * fixinc/tests/base/testing.h: ... here, reflecting new name.
13955
13956 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
13957
13958         PR c/13814
13959         * c-decl.c (diagnose_mismatched_decls): Also discard a
13960         built-in if we encounter an old-style definition with the
13961         same name.
13962
13963 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
13964
13965         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
13966         set to default{32,64}.
13967
13968 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
13969
13970         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
13971         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
13972
13973 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
13974             Olivier Hainque  <hainque@act-europe.fr>
13975
13976         * fold-const.c (fold_binary_op_with_conditional_arg): Only
13977         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
13978
13979 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
13980
13981         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
13982         size for minipool references.
13983
13984 2004-01-23  Roger Sayle  <roger@eyesopen.com>
13985
13986         * real.c (real_floor, real_ceil): Tweak to allow input and output
13987         arguments to overlap.
13988         (real_round): New function to implement round(3m) semantics.
13989         * real.h (real_round): Prototype here.
13990         * builtins.c (fold_builtin_round): New function to constant fold
13991         round, roundf and roundl.
13992         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
13993
13994 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
13995
13996         PR optimization/13819
13997         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
13998         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
13999         (sh_handle_sp_switch_attribute): Remove warning.
14000
14001 2003-11-30  Jan Hubicka  <jh@suse.cz>
14002
14003         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
14004
14005 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
14006
14007         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
14008         may or may not return non-NIL.
14009         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
14010         check CANNOT_CHANGE_MODE_CLASS
14011
14012 2004-01-23  Jan Hubicka  <jh@suse.cz>
14013
14014         * basic-block.h (PROP_POSTRELOAD): New macro.
14015         (CLEANUP_LOG_LINKS): New.
14016         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
14017         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
14018
14019         * cselib.c (value_pool): New.
14020         (new_cselib_val): Use pool.
14021         (cselib_init): Initialize value_pool
14022         (cselib_finish): Free pool.
14023
14024 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
14025
14026         * config/sparc/sparc.c (scan_record_type): New function.
14027         (function_arg_slotno): Use it to determine which kinds of
14028         registers the record can be passed in.
14029
14030 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
14031
14032         * config/pa/fptr.c: Fix old-style definition.
14033
14034 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
14035
14036         PR optimization/13724
14037         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
14038         represents the zero bits produced by a ZERO_EXTEND operation.
14039
14040 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14041
14042         PR optimization/13821
14043         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
14044         correctly calculate the lowpart offset of the contracted subreg.
14045
14046 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
14047
14048         * doc/invoke.texi (Optimize Options): Note that --param arguments
14049         are subject to change without notice.
14050
14051 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14052
14053         * config.gcc (mips-sgi-irix6*o32): Removed.
14054         * config/mips/iris6-o32-as.h: Likewise.
14055         * config/mips/iris6-o32-gas.h: Likewise.
14056         * config/mips/iris6-o32.h: Likewise.
14057
14058 2004-01-22  Jan Hubicka  <jh@suse.cz>
14059
14060         * cfgcleanup.c (first_pass): New static variable.
14061         (try_forward_edges):  Add work limiting check for threading.
14062         (try_crossjump_bb):  Add work limiting check for crossjumping.
14063         (try_optimize_cfg):  Maintain first pass variable.
14064
14065 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
14066
14067         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
14068         handles complex and vector modes.
14069
14070 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14071
14072         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
14073         (REG_OK_FOR_BASE_P_STRICT): Likewise.
14074         (STRICT): Likewise.
14075
14076 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14077
14078         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
14079         (genrtl_for_stmt): Remove emit_nop calls.
14080
14081 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14082
14083         PR target/13713
14084         PR target/13324
14085         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
14086         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
14087         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
14088
14089 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14090
14091         * config/arm/arm.c: Include "debug.h".
14092         (thumb_pushpop): Take two new arguments.  Add some commentary.
14093         Output frame information when pushing.
14094         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
14095         thumb_pushpop.
14096         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
14097         offset, and pass it to thumb_pushpop.  Output CFI information.
14098         (thumb_expand_prologue): Add some frame-related markers and notes.
14099
14100 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
14101
14102         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
14103         for TARGET_64BIT.
14104         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
14105         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
14106
14107 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14108             Paolo Bonzini  <bonzini@gnu.org>
14109
14110         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
14111         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
14112         * rtl.h (subreg_lsb_1): Prototype here.
14113         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
14114         sign extensions.
14115
14116 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14117
14118         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
14119         macro need not be defined if jump-tables should contain
14120         relative addresses only when -fPIC or -fPIC is in effect.
14121
14122 2004-01-22  Jan Hubicka  <jh@suse.cz>
14123
14124         * alias.c (reg_base_value): Turn into varray.
14125         (reg_base_value_size): Kill.
14126         (old_reg_base_value): New deletable varray.
14127         (alias_invariant_size): New variable.
14128         (REG_BASE_VALUE): Update to use varray.
14129         (find_base_value): Likewise.
14130         (record_set): Likewise.
14131         (record_base_value): Likewise.
14132         (memrefs_conflict_p): Likewise.
14133         (record_set): Likewise
14134         (record_base_value): Likewise.
14135         (memrefs_conflict_p): Use alias_invariant_size.
14136         (init_alias_analysis): Use varray; set alias_invariant_size;
14137         rescale other arrays to be sized by maxreg.
14138         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
14139
14140 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14141
14142         * config/sparc/sparc.c (function_arg_slotno): Use
14143         FLOAT_TYPE_P to detect FP fields in structures.
14144         (function_arg_record_value_1): Likewise.
14145         (function_arg_record_value_2): Likewise.
14146
14147 2004-01-22  Jan Hubicka  <jh@suse.cz>
14148
14149         * function.c (allocate_struct_function): Do not initialize expr, emit
14150         and varasm.
14151         (prepare_function_start): Do it here.
14152         * c-parse.in (maybe_type_qual): Do not produce line number notes.
14153
14154 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14155
14156         PR target/13559
14157         * config/sparc/sparc.c (function_arg_record_value_3): Revert
14158         to 'word_mode' once the first slot has been filled.
14159
14160 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
14161
14162         * config/sparc/sparc.c (function_arg_record_value_1): Fix
14163         computation of the number of integer registers required.
14164
14165 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14166
14167         * config/i386/i386.md: Simplify certain comparisons of
14168         const_int.
14169
14170 2004-01-21  Andrew Pinski  <apinski@apple.com>
14171
14172         PR target/13785
14173         * config/rs6000/rs6000.md (call_value): Force operand
14174         1 not operand 0 into a register.
14175
14176 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14177
14178         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
14179         unwind-dw2-fde.h: Update copyright.
14180
14181 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14182
14183         * pa-protos.h: Update copyright.
14184         * pa.h: Likewise.
14185         * pa.md: Likewise.
14186
14187 2004-01-21  Caroline Tice  <ctice@apple.com>
14188
14189         PR target/12308
14190         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
14191         flags register.
14192         (fix_truncdfdi2): Likewise.
14193         (fix_truncsfdi2): Likewise.
14194         (*fix_truncdi_1): Likewise.
14195         (fix_truncxfsi2): Likewise.
14196         (fix_truncdfsi2): Likewise.
14197         (fix_truncsfsi2): Likewise.
14198         (*fix_truncsi_1): Likewise.
14199         (fix_truncxfhi2): Likewise.
14200         (fix_truncdfhi2): Likewise.
14201         (fix_truncsfhi2): Likewise.
14202         (*fix_trunchi_1): Likewise.
14203
14204 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14205
14206         * alias.c, basic-block.h, c-common.c, c-common.h,
14207         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
14208         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
14209         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
14210         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
14211         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
14212         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
14213         genautomata.c, genconditions.c, genemit.c, genflags.c,
14214         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
14215         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
14216         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
14217         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
14218         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
14219         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
14220         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
14221         unwind.h, varray.c, varray.h: Update copyright.
14222
14223 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14224
14225         * config/h8300/coff.h: Update copyright.
14226         * config/h8300/elf.h: Likewise.
14227         * config/h8300/h8300-protos.h: Likewise.
14228         * config/h8300/h8300.c: Likewise.
14229         * config/h8300/h8300.h: Likewise.
14230         * config/h8300/h8300.md: Likewise.
14231
14232 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14233
14234         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
14235         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
14236         ultrix_unistd): New hacks.
14237         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
14238         ULTRIX_CONST2_CHECK): Add checks.
14239         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
14240         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
14241         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
14242         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
14243         * fixinc/tests/base/locale.h: New file.
14244         * fixinc/fixincl.x: Rebuilt.
14245
14246 2004-01-21  Andreas Jaeger  <aj@suse.de>
14247             Michael Matz  <matz@suse.de>
14248
14249         * doc/extend.texi (Extended Asm): Clarify memory clobber.
14250
14251 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14252
14253         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
14254         _Jv_RegisterClasses through a function pointer.
14255
14256 2004-01-21  Falk Hueffner  <falk@debian.org>
14257
14258         PR target/12898
14259         * config/alpha/alpha.c (alpha_emit_set_const_1): If
14260         no_new_pseudos, use gen_rtx_SET directly for SImode constants
14261         which need multiple instructions to emit.
14262
14263 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
14264
14265         * config/m32r/m32r.h (CPP_SPEC): Define.
14266
14267 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
14268
14269         * c-decl.c (merge_decls): Kill different_binding_level and
14270         different_tu arguments; simplify throughout.
14271         (duplicate_decls): Likewise.
14272         (pushdecl, merge_translation_unit_decls): Update calls to
14273         duplicate_decls.
14274
14275 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14276
14277         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
14278         $(SYSTEM_H).
14279         (print-rtl1.o): Depend on $(SYSTEM_H).
14280
14281 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14282
14283         PR bootstrap/12730
14284         * configure.ac: Delete definition and subsitution of docdir.
14285         Add info, man, srcman and srcinfo to target hooks. Create doc/
14286         directory.
14287         * configure: Regenerate.
14288         * Makefile.in: Don't substitute docdir and delete all references
14289         throughout.
14290         (MAKEINFOFLAGS): Define.
14291         (stmp-docobjdir): Delete.
14292         (INFOFILES, MANFILES): Define.
14293         (info): Call lang.info, srcinfo and lang.srcinfo.
14294         (generated-manpages): Call lang.man, srcman and lang.srcman.
14295         (srcinfo, srcman): New rules to copy back files to source directory.
14296         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
14297         (install-man): Revamp rule.
14298         (clean): Update dvi directory.
14299         (distclean): Delete TAGS from front end directorys.
14300         (maintainer-clean): Delete all document files in source directory.
14301
14302         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
14303         (objc.srcman, objc.srcinfo): Likewise.
14304
14305 2004-01-20  Bruce Korb  <bkorb@gnu.org>
14306
14307         * fixinc/inclhack.def(math_exception): bypass only for glibc.
14308         (matherr_decl): rename & relocate as exception_structure.
14309         This fix must precede the math_exception fix.
14310
14311 2004-01-20  Roger Sayle  <roger@eyesopen.com>
14312
14313         * fold-const.c (fold_convert): Rename to fold_convert_const.
14314         (fold_convert_const): Change arguments to take a tree_code,
14315         a type and the operand/expression to be converted.  Return
14316         NULL_TREE if no simplification is possible.  Add support for
14317         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
14318         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
14319         Adjust call to fold_convert to match new fold_convert_const.
14320         Avoid modifying the tree passed to fold in-place.
14321
14322 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
14323
14324         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
14325         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
14326         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
14327
14328 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14329
14330         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
14331         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
14332         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
14333         (emit_move_sequence): Check scratch_reg first in various if statements.
14334         Extend source simplification to handle all 64-bit CONST_INTs.
14335         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
14336         frame size.
14337         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
14338         frame offset calculations.
14339         * pa.h (NEW_HP_ASSEMBLER): Add comment.
14340         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
14341         LEGITIMATE_64BIT_CONST_INT_P): Define.
14342         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
14343         any CONST_INT as legitimate during and after reload.
14344         (VAL_32_BITS_P, INT_32_BITS): Define.
14345         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
14346
14347 2004-01-20  Jan Hubicka  <jh@suse.cz>
14348
14349         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
14350         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
14351         containing hard regs are shared.
14352         (gen_hard_reg_clobber): New function.
14353         (hard_reg_clobbers): New array.
14354         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
14355         (copy_rtx): Do not copy clobbers containing hard regs.
14356         * rtl.h (gen_hard_reg_clobber): Declare.
14357
14358 2004-01-20  Jan Hubicka  <jh@suse.cz>
14359
14360         * varray.c:  Include hashtab.h
14361         (varray_descriptor): New structure.
14362         (hash_descriptor, eq_descriptor, varray_descriptor,
14363         print_statistics): New static functions
14364         (varray_init, varray_grow): Update statistics
14365         (dump_varray_statistics): New function.
14366         * varray.h (dump_varray_statistics): Declare.
14367         * toplev.c (finalize): Call it.
14368         * Makefile.in (varray.o): Add dependency.
14369
14370 2004-01-20  Jan Hubicka  <jh@suse.cz>
14371
14372         * cselib.c: Include alloc-pool.h
14373         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
14374         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
14375         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
14376         unchain_one_elt_loc_list_pool, unchain_one_value,
14377         new_cselib_val): Simplify using allocpool.
14378         (cselib_init): Initialize allocpools.
14379         (cselib_finish): Finish allocpools.
14380         * Makefile.in (cselib.o): Depend on alloc-pool.h
14381
14382 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
14383
14384         * config/mips/mips.c (mips_load_call_address): Make the call insn
14385         use $gp if it could be calling a lazy binding stub.
14386
14387 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
14388
14389         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
14390         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14391         (TARGET_STRUCT_VALUE_RTX): Likewise.
14392         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
14393         (PROMOTE_FUNCTION_RETURN): Remove.
14394         (STRUCT_VALUE): Remove.
14395
14396 2004-01-20  Denis Chertykov  <denisc@overta.ru>
14397
14398         PR bootstrap/13735
14399         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
14400         register as pointer after reload.
14401
14402 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14403
14404         PR optimization/12440
14405         * loop.c: Include ggc.h.
14406         (loop_optimize): Run garbage collector between optimization of loops.
14407         * Makefile.in (loop.o): Add GGC_H dependency.
14408
14409 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
14410
14411         * gcc/config/rs6000/rs6000.c (function_arg) Handle
14412         vector register special in function without prototype.
14413         (function_arg_advance): Vector parameters get always
14414         GPRs allocated for the linux64 target.
14415
14416 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14417
14418         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
14419         not TARGET_M32RX_MASK.
14420
14421 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
14422
14423         PR target/13557
14424         * config/sparc/sparc.c (function_arg): Reorder the cases.
14425
14426 2004-01-19  Per Bothner  <per@bothner.com>
14427
14428         Move cpp_reader's line_maps field to a shared global.
14429         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
14430         and change the type to a pointer rather than a struct.
14431         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
14432         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
14433         Likewise.
14434         * cppfiles.c (validate_pch):  Likewise.
14435         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
14436         Likewise.
14437         * cpperror.c (print_location):  Likewise.
14438         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
14439         * cppinit.c (cpp_create_reader):  Handle new parameter.
14440         (cpp_destroy):  Don't free line_maps - that's no longer our job.
14441         * input.h (line_table):  New variable.
14442         * toplev.c (line_table):  Declare variable.
14443         (general_init):  Initialize line_table.
14444         * c-opts.c (c_common_init_options):  Pass line_table to
14445         cpp_create_reader.
14446         * fix-header.c (read_scan_file):  New local variable line_table.
14447         Initialize, and pass it to cpp_create_reader.
14448         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
14449         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
14450
14451 2004-01-19  Per Bothner  <per@bothner.com>
14452
14453         Implement a cache for linemap_lookup.
14454         * line-map.h (struct_line_maps):  Add cache field.
14455         * line-map.c (linemap_init):  Zero cache field.
14456         (linemap_add):  Set cache field to offset of newly allocated map.
14457         (linemap_lookup):  Use and set cache field.
14458
14459 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14460
14461         PR optimization/13567
14462         * cse.c (cse_basic_block): Call cse_insn with a non-null
14463         libcall_insn for the last SET insn of a no-confilict block.
14464
14465 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14466
14467         * Makefile.in (target_noncanonical, program_transform_name): Use
14468         immediate define instead of deferred.
14469         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
14470         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
14471         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
14472         deferred backquote.
14473
14474 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
14475
14476         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
14477         true unconditionally.
14478         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
14479         Remove.
14480         (build_unary_op, build_modify_expr): Don't handle extended
14481         lvalues.
14482         (build_component_ref, build_conditional_expr): Call non_lvalue
14483         instead of pedantic_non_lvalue.
14484         (build_c_cast): Don't condition use of non_lvalue on pedantic.
14485         * fold-const.c (fold): Don't check pedantic directly for
14486         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
14487         passed to pedantic_non_lvalue.
14488         * doc/extend.texi: Remove documentation of extended lvalues.
14489
14490 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14491
14492         PR optimization/5263
14493         * simplify-rtx.c (associative_constant_p): Delete.
14494         (simplify_associative_operation): Rewrite to linearize terms, and
14495         attempt to simplify new term against both left and right subterms.
14496         (simplify_binary_operation): Call swap_commutative_operands_p on
14497         op0 and op1, not trueop0 and trueop1.  Move the initialization of
14498         trueop0 and trueop1 down to where first needed.
14499         (simplify_relational_operation): Likewise.
14500         * rtlanal.c (commutative_operand_precedence): Also order constant
14501         operands using avoid_constant_pool_reference.
14502
14503 2004-01-19  Richard Henderson  <rth@redhat.com>
14504
14505         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
14506         don't check memory mode.
14507         (unaligned_memory_operand): Likewise.
14508         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
14509         abort for op0 not MEM.
14510
14511         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
14512         is not a reg, copy to a scratch first.
14513         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
14514         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
14515         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
14516         (reload_inqi, reload_inhi): Fix mode of op0.
14517         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
14518         reload_outhi_help): Likewise.  Use define_insn_and_split.
14519
14520         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
14521         as well as $29 dead.
14522
14523 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
14524
14525         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
14526         "tls_object" for thread-local objects.
14527         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
14528         "#tls" for thread-local sections.
14529         * configure.ac (thread-local checks): Specify --fatal-warnings in
14530         every binutils-specific checks.  For sparc*-*-*, test whether the
14531         OS is Solaris and the tools are native and act accordingly.
14532         * configure: Rebuild.
14533
14534 2004-01-19  Jeff Law  <law@redhat.com>
14535
14536         * contrib.texi: Update Paolo Carlini's entry.  New entries for
14537         Jerry Quinn and Petur Runolfsson.
14538
14539 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14540
14541         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
14542         size, don't use the larger zero-extending loads.
14543
14544 2004-01-19  Richard Henderson  <rth@redhat.com>
14545
14546         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
14547         * alpha.md (UNSPEC_NT_LDA): Remove.
14548         (UNSPEC_CVTLQ, cvtlq): New.
14549         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
14550         (extendsidi2_fix): Remove.
14551         (extendsidi2 splitter): Use cvtlq.
14552         (extendsidi2 fp peepholes): Remove.
14553         (cvtql): Use SFmode instead of SImode.
14554         (fix_trunc?fsi): Update to match.
14555         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
14556         (movsi): Rename from movsi_nofix, remove f alternatives.
14557         (movsi_nt_vms): Similarly.
14558         (movsi_fix, movsi_nt_vms_fix): Remove.
14559         (nt_lda): Remove.
14560         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
14561
14562 2004-01-19  Jan Hubicka  <jh@suse.cz>
14563
14564         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
14565         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
14566         list.
14567         (cgraph_remove_unreachable_nodes): New function
14568         (cgraph_decide_inlining_of_small_function): Fix pasto.
14569         (cgraph_decide_inlining_incrementally): Fix pasto.
14570         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
14571
14572 2004-01-19  Steven Bosscher  <stevenb@suse.de>
14573
14574         * gengtype.c (header_file): Make it static.
14575         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
14576         * gengtype.h (header_file): No longer extern.
14577
14578 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14579
14580         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
14581         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
14582         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
14583
14584 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14585
14586         * stmt.c (HAVE_casesi): Define it not already defined.
14587         (HAVE_tablejump): Likewise.
14588         (expand_end_case_type): Resort to the binary tree method if
14589         neither casesi or tablejump is available.
14590
14591 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
14592
14593         * final.c (final_scan_insn): Make non-static again.
14594         * output.h (final_scan_insn): Re-add prototype.
14595         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
14596         to final_scan_insn call.
14597         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
14598         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
14599         * config/pa/pa.c (output_lbranch, output_call): Likewise.
14600         * config/sh/sh.c (print_slot): Likewise.
14601         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
14602         (output_sibcall, sparc_flat_function_epilogue): Likewise.
14603
14604 2004-01-18  Jan Hubicka  <jh@suse.cz>
14605
14606         * basic-block.h (try_redirect_by_replacing_jump): Declare.
14607         * cfgcleanup.c (try_optimize_cfg): Use it.
14608         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
14609         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
14610         Kill hack.
14611         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
14612
14613         Revert:
14614         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14615
14616                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
14617                 even after reload, just don't remove the actual jump tables.
14618
14619 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14620
14621         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
14622
14623 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14624
14625         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
14626         the size of a pointer in bytes.
14627
14628 2004-01-18  Roger Sayle  <roger@eyesopen.com>
14629
14630         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
14631         live "next" variable, which could lead to an infinite loop.
14632
14633 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
14634
14635         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
14636         block.
14637
14638         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14639         Check for NULL in the chain and remove repeated code.
14640
14641 2004-01-18  Jan Hubicka  <jh@suse.cz>
14642
14643         * coverage.c (checksum_string): Rename to ...
14644         (coverage_checksum_string): ... this one, Use crc32_string; recognize
14645         names containing random number and zero the number out in order to get
14646         match.
14647
14648 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
14649
14650         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
14651
14652 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14653
14654         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
14655         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
14656         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
14657         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
14658         doc/trouble.texi: Remove trailing whitespace.
14659
14660 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
14661
14662         PR target/7618
14663         * config/mips/mips.c: Include cfglayout.h.
14664         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
14665         (mips_unspec_offset_high): Add temporary register argument.
14666         (mips_load_call_address): New function, split out from...
14667         (mips_expand_call): ...here.
14668         (mips_output_cplocal): New function.
14669         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
14670         (mips_emit_loadgp): New function, split out from...
14671         (mips_expand_prologue): ...here.
14672         (mips_output_mi_thunk): New function.
14673
14674 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
14675
14676         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
14677         mcpu32): Remove redundant checks for implied target predefines.
14678
14679 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
14680
14681         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14682         Return type is unsigned int not int.
14683         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
14684         Likewise.
14685
14686 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14687
14688         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
14689         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
14690         "GNU/Linux" and "Microsoft Windows" terminology.
14691
14692 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14693
14694         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
14695         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
14696         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
14697         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
14698         @smallexample instead of @example.
14699
14700 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
14701
14702         * objc/objc-act.c (build_objc_method_call): Use target
14703         hooks instead of macros to determine if ..._stret
14704         dispatchers should be used (NeXT runtime only).
14705
14706 2004-01-17  Roger Sayle  <roger@eyesopen.com>
14707
14708         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
14709         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
14710
14711 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
14712
14713         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
14714         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
14715         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
14716         macros.
14717         * reload1.c (emit_reload_insns): Use them.
14718         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
14719         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
14720         for NULL PATTERN.
14721
14722 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
14723
14724         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
14725         (final_scan_insn): Update to take an additional SEEN argument.  Emit
14726         a line note after the prologue.  Make static.
14727         (line_note_exists): Remove.
14728         (final): Don't initialize line_note_exists.  Update call to
14729         final_scan_insn.
14730         * output.h (final_scan_insn): Remove prologue.
14731         * function.c (set_insn_locators): Update comment.
14732         (thread_prologue_and_epilogue_insns): Add a comment.
14733
14734 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
14735
14736         PR target/10781
14737         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
14738         Prototype.
14739         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14740         New function.
14741         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
14742         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
14743         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
14744
14745 2004-01-17  Jan Hubicka  <jh@suse.cz>
14746
14747         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
14748         commit.
14749
14750         * toplev.c (HAVE_conditional_execution): Provide default.
14751         (rest_of_handle_reorder_blocks): For conditional_execution target
14752         update liveness once after all transformations
14753         (rest_of_compilation): Do crossjumping before ce3.
14754
14755 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
14756
14757         * alias.c (new_alias_set): Mark last_alias_set for PCH.
14758         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
14759         for PCH.
14760         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
14761         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
14762         (get_TOC_alias_set): Mark 'set' for PCH.
14763
14764 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14765
14766         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
14767         even after reload, just don't remove the actual jump tables.
14768
14769 2004-01-17  J. Brobecker  <brobecker@gnat.com>
14770
14771         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
14772         Remove checks for is_ada() and TREE_UNSIGNED.
14773         (subrange_type_die): Emit a byte_size attribute if the subrange
14774         type size is different from the base type size.
14775         (modified_type_die): Replace call to is_ada_subrange_type() by
14776         call to is_subrange_type().
14777
14778 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
14779
14780         * config/sh/sh.c: Include ggc.h.
14781
14782 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14783
14784         * Makefile.in (MD5_H): New.
14785         (fold-const.o): Depend on md5.h.
14786         (dwarf2out.o): Likewise.
14787         (cppfiles.o): Likewise.
14788         * cppfiles.c: Include md5.h.
14789         (should_stack_file): Check against list read from PCH file.
14790         (struct pchf_data): New.
14791         (pchf): New variable.
14792         (struct pchf_adder_info): New.
14793         (pchf_adder): New.
14794         (pchf_save_compare): New.
14795         (_cpp_save_file_entries): New.
14796         (_cpp_read_file_entries): New.
14797         (struct pchf_compare_data): New.
14798         (pchf_compare): New.
14799         (check_file_against_entries): New.
14800         * cpphash.h (_cpp_save_file_entries): Prototype.
14801         (_cpp_read_file_entries): Prototype.
14802         * cpppch.c (cpp_write_pch_state): Write the list of headers.
14803         (cpp_read_state): Read the list of headers.
14804
14805 2004-01-17  Jan Hubicka  <jh@suse.cz>
14806
14807         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
14808         builtin_expect specially.
14809         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
14810         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
14811         * invoke.texi (max-inline-insns-single): Set to 100.
14812         (large-function-insns): Set to 3000.
14813
14814 2004-01-16  Eric Christopher  <echristo@redhat.com>
14815             Chandrakala Chavva <cchavva@redhat.com>
14816
14817         * cppcharset.c (one_iso88591_to_utf8): New function.
14818         (convert_iso88591_utf8): Ditto. Use.
14819         (conversion_tab): Use.
14820         (_cpp_input_to_utf8): New function.
14821         (_cpp_init_iconv_buffer): Ditto.
14822         (_cpp_close_iconv_buffer): Ditto.
14823         * cpphash.h: Prototype new functions.
14824         (cpp_buffer): Add input_cset_desc.
14825         * cppinit.c: Add input_charset default.
14826         * cpplib.c (cpp_push_buffer): Support init and
14827         close of iconv.
14828         * cpplib.h (cpp_options): Add input_charset.
14829
14830 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14831
14832         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
14833         * config/alpha/unicosmk.h: Remove a commented-out definition
14834         of ASM_OUTPUT_SECTION_NAME.
14835         * config/stormy16/stormy16.h: Likewise.
14836
14837 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14838
14839         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
14840         (alpha___extern_prefix_sys_stat): ... this.
14841         Apply to <sys/mount.h>, too.
14842         Tweak to match more variations.
14843         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
14844
14845         * fixinc/inclhack.def (alpha___extern_prefix,
14846         alpha___extern_prefix_standards): New hacks to obey
14847         __PRAGMA_EXTERN_PREFIX.
14848         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
14849         test.
14850         * fixinc/tests/base/standards.h: Likewise.
14851
14852         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
14853         variations.
14854         New testcase.
14855         * fixinc/tests/base/pthread.h: Handle it.
14856
14857         * fixincl/inclhack.def (bad_lval): Sort file list.
14858         Add many missing files up to Tru64 UNIX V5.1B.
14859         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
14860         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
14861         order.
14862
14863         * fixinc/fixincl.x: Regenerate.
14864
14865 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
14866
14867         * version.c (version_string): Change to 3.5.0.
14868         * doc/include/gcc-common.texi (version-GCC): Likewise.
14869
14870 2004-01-16  Jan Hubicka  <jh@suse.cz>
14871
14872         * i386.md (load_tp_di): Fix pasto.
14873
14874         PR opt/13608
14875         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
14876
14877         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
14878         pp_c_character_constant, pp_c_floating_constant,
14879         pp_c_additive_expression, pp_c_shift_expression,
14880         pp_c_equality_expression, pp_c_and_expression,
14881         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
14882         pp_c_logical_and_expression): Remove inline modifier.
14883         * dwarf2out.c (get_AT): Likewise.
14884         * et-forest.c (et_splay): Likewise.
14885         * ra.h (ra_alloc, ra_calloc): Likewise
14886
14887 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14888
14889         * config/frv/frv-protos.h: Fix comment formatting.
14890         * config/frv/frv.c: Likewise.
14891         * config/frv/frv.h: Likewise.
14892         * config/frv/frv.md: Likewise.
14893         * config/frv/frvbegin.c: Likewise.
14894         * config/frv/frvend.c: Likewise.
14895
14896 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14897
14898         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
14899         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
14900         LINKER_DOES_NOT_WORK_WITH_DWARF2.
14901         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
14902
14903 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
14904
14905         PR 11864
14906         * postreload.c (reload_cse_simplify_operands): Don't remove
14907         implicit extension from LOAD_EXTEND_OP.
14908
14909 2004-01-16  Jan Hubicka  <jh@suse.cz>
14910
14911         PR opt/11350
14912         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
14913         after reload.
14914         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
14915         rtl_try_redirect_by_replacing_branch): Likewise.
14916
14917 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
14918
14919         PR pch/13689
14920         * alias.c (struct alias_set_entry): Mark for GC.
14921         (alias_sets): Make static, mark for GC.
14922         (record_alias_subset): Use GC to allocate alias structures.
14923         * varray.c (element): Make generic varrays GCed.
14924
14925         PR pch/13361
14926         * c-typeck.c (constructor_asmspec): Delete.
14927         (struct initializer_stack): Delete field 'asmspec'.
14928         (start_init): Delete saving of asmspec.
14929         (finish_init): Don't update constructor_asmspec.
14930         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
14931         * stmt.c (expand_asm): Duplicate strings from tree.
14932         (expand_asm_operands): Likewise.
14933         * tree.c (tree_size): Update computation of size of STRING_CST.
14934         (make_node): Don't make STRING_CST nodes.
14935         (build_string): Allocate string with tree node.
14936         * tree.def (STRING_CST): Update comment.
14937         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
14938         (tree_string): Place contents of string in tree node.
14939         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
14940         from tree.
14941
14942         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
14943         altivec operands.
14944
14945 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14946
14947         * c-common.h: Fix comment formatting.
14948         * c-cppbuiltin.c: Likewise.
14949         * c-pragma.c: Likewise.
14950         * calls.c: Likewise.
14951         * collect2.c: Likewise.
14952         * cppcharset.c: Likewise.
14953         * cpptrad.c: Likewise.
14954         * dbxout.c: Likewise.
14955         * defaults.h: Likewise.
14956         * dwarf2out.c: Likewise.
14957         * fold-const.c: Likewise.
14958         * genautomata.c: Likewise.
14959         * genconditions.c: Likewise.
14960         * genflags.c: Likewise.
14961         * gengtype.c: Likewise.
14962         * integrate.c: Likewise.
14963         * loop.c: Likewise.
14964         * predict.c: Likewise.
14965         * sdbout.c: Likewise.
14966
14967 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
14968
14969         * config/ia64/ia64.md (*movti_internal): C output template
14970         extracted to ia64.c.
14971         (*movti_internal_reg): Delete.
14972         (reload_inti, reload_outti): Use the correct mode on operand 2
14973         in the first place, don't fix it up in the output template.
14974         (movtf, reload_ointf, reload_outtf): New expanders.
14975         (*movtf_internal): New define_insn_and_split.
14976         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
14977         make static; do not hand TFmode CONST_DOUBLEs to split_double.
14978         (ia64_split_tmode_move): New function, body mostly pulled
14979         from ia64.md:*movti_internal.
14980         (ia64_function_arg_words): New function, extracted common
14981         logic from ia64_function_arg et seq.
14982         (ia64_function_arg_offset): Likewise.  Handle correctly the
14983         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
14984         (ia64_function_arg, ia64_function_arg_partial_nregs)
14985         (ia64_function_arg_advance): Use ia64_function_arg_words and
14986         ia64_function_arg_offset.
14987         (ia64_function_value): TCmode does not go in float regs.
14988         (ia64_secondary_reload_class): Also handle TFmode.
14989         * config/ia64/ia64-protos.h: Remove prototype for
14990         ia64_split_timode; add prototype for ia64_split_tmode_move.
14991
14992 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
14993
14994         * Makefile.in (MAINT): Make it an immediate assignment.
14995
14996 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14997
14998         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
14999
15000 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15001
15002         * config/h8300/coff.h: Replace Hitachi with Renesas.
15003         * config/h8300/elf.h: Likewise.
15004         * config/h8300/h8300-protos.h: Likewise.
15005         * config/h8300/h8300.c: Likewise.
15006         * config/h8300/h8300.h: Likewise.
15007         * config/h8300/h8300.md: Likewise.
15008         * config/h8300/lib1funcs.asm: Likewise.
15009
15010 2004-01-15  Andrew Pinski  <apinski@apple.com>
15011
15012         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
15013         around it.
15014
15015 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15016
15017         * config/h8300/h8300.c (h8300_return_in_memory): New.
15018         (TARGET_STRUCT_VALUE_RTX): Likewise.
15019         (TARGET_RETURN_IN_MEMORY): Likewise.
15020         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
15021         (RETURN_IN_MEMORY): Likewise.
15022
15023 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15024
15025         PR optimization/13375
15026         * gcse.c (handle_avail_expr): Just return if the source is not a
15027         single set.
15028
15029 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15030             Daniel Jacobowitz  <drow@mvista.com>
15031
15032         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
15033         (EQUIV): Define.
15034         (ARM_FUNC_ALIAS): New macro.
15035         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
15036         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
15037
15038 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15039
15040         PR optimization/12372
15041         * calls.c (expand_call): Add call_fusage data for stack arguments in
15042         constant calls.
15043
15044 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
15045
15046         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
15047         (rs6000_elf_declare_function_name): Formatting.
15048         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
15049
15050 2004-01-15  Jan Hubicka  <jh@suse.cz>
15051
15052         PR bootstrap/13692
15053         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
15054         previous patch.
15055
15056 2004-01-15  Richard Henderson  <rth@redhat.com>
15057
15058         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
15059         integer regs of the same call-savedness.
15060
15061 2004-01-15  Andreas Schwab  <schwab@suse.de>
15062
15063         PR bootstrap/13562
15064         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
15065         status for NOTB/NOTW/NEGW methods.
15066
15067 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15068
15069         * doc/invoke.texi: Update dump file names.  Fix a typo.
15070
15071 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15072
15073         * builtins.c (expand_builtin_va_end): Don't use
15074         EXPAND_BUILTIN_VA_END.
15075         * system.h (EXPAND_BUILTIN_VA_END): Poison.
15076         * config/d30v/d30v.h: Remove a commented-out definition of
15077         EXPAND_BUILTIN_VA_END.
15078         * config/stormy16/stormy16.h: Likewise.
15079
15080 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15081
15082         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
15083         * targhooks.c (default_struct_value_rtx): Don't use
15084         STRUCT_VALUE_INCOMING_REGNUM.
15085
15086 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15087
15088         PR bootstrap/12744
15089         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
15090         GENINSRC and not parsedir.  Define srcextra as a langhook.
15091         * configure: Regenerate.
15092         * Makefile.in: Suppress default .l.c rule.  Don't substitute
15093         parsedir and delete all references throughout.  Conditionally define
15094         rule for srcextra dependent on GENINSRC.
15095         (stmp-docobjdir): Delete.
15096         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
15097         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
15098         and gengtype-yacc.h back to source directory.
15099         (maintainer-clean): Delete all parse files in source directory.
15100         (distclean): Delete generated files.
15101
15102         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
15103         (objc-parse.c, objc-parse.y): Don't use parsedir.
15104         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
15105         directory if requested.
15106         (po-generated): Don't use parsedir.
15107         (objc.maintainer-clean): Delete above files from source directory.
15108
15109 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15110
15111         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
15112
15113 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15114
15115         * doc/tm.texi: Replace RETURN_IN_MEMORY with
15116         TARGET_RETURN_IN_MEMORY.
15117
15118 2004-01-15  Jan Hubicka  <jh@suse.cz>
15119
15120         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
15121         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
15122         functions accepting SSE arguments
15123         (function_arg): Warn only when asked to warn.
15124         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
15125
15126 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
15127
15128         * c-parse.in (stmts_and_decls): Make label at end of compound
15129         statement a hard error.
15130
15131 2004-01-14  Jan Hubicka  <jh@suse.cz>
15132
15133         * cgraph.c (create_edge): Use local.redefined_extern_inline.
15134         * cgraph.h (cgraph_local_info): Sort fields by size; add
15135         redefined_extern_inline
15136         (cgraph_global_info): Sort fields by size.
15137         (cgraph_node): Likewise.
15138         * cgraphunit.c (cgraph_finalize_function): Se
15139         local.redefined_extern_inline on redefinition.
15140         (cgraph_analyze_function): Use it; fix formating.
15141
15142 2004-01-14  Jan Hubicka  <jh@suse.cz>
15143
15144         PR c++/10776
15145         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
15146         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
15147         bitmaps
15148         (cache_size): New variable
15149         (add_dependence): Update use; canonize early memory locations
15150         (sched_analyze_1): Likewise.
15151         (sched_analyze_2): Likewise.
15152         (init_dependency_caches): Initialize bitmaps.
15153         (free_dependency_caches): Free bitmaps
15154
15155 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15156
15157         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
15158         targetm.calls.strict_argument_naming().
15159         * target.h: Likewise.
15160
15161 2004-01-14  Richard Henderson  <rth@redhat.com>
15162
15163         PR debug/13231
15164         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
15165         instructions.
15166
15167 2004-01-14  Richard Henderson  <rth@redhat.com>
15168
15169         PR c++/12491
15170         * except.c (struct eh_region): Add u.fixup.resolved.
15171         (resolve_one_fixup_region): Split out from ...
15172         (resolve_fixup_regions): ... here.
15173
15174 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15175
15176         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
15177
15178 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15179
15180         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
15181         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
15182         (STRUCT_VALUE): Remove.
15183
15184 2004-01-14  Steven Bosscher  <stevenb@suse.de>
15185
15186         * system.h: Poison PROMOTED_MODE
15187         * integrate.c (expand_inline_function): Don't mention the
15188         PROMOTED_MODE.
15189         * loop.c (update_giv_derive): Same.
15190         * tree.h (DECL_RTL): Same.
15191
15192 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
15193
15194         PR target/9365
15195         * sh.c (gen_block_redirect): Add special handling of RETURN.
15196         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
15197         far branch target (i.e. it's a return).
15198
15199 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15200
15201         * regrename.c (find_oldest_value_reg): Fix a warning.
15202
15203 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15204
15205         PR bootstrap/12527
15206         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
15207         Move linux-gas.h and linux-elf.h before aout.h.
15208         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
15209         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
15210
15211 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15212
15213         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
15214         (CONST_INT, VOIDmode, ...).
15215
15216 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15217
15218         * regrename.c (find_oldest_value_reg): If the replacement uses
15219         multiple hard registers, check that all of them are in CLASS.
15220
15221 2004-01-14  Jan Hubicka  <jh@suse.cz>
15222
15223         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
15224         impossible.
15225
15226 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
15227
15228         * Makefile.in: Define MAINT from --enable-maintainer-mode.
15229
15230 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
15231
15232         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
15233         Calculate always vrsave_mask if TARGET_ALTIVEC.
15234         (rs6000_emit_prologue): Emit code for vrsave
15235         only if TARGET_ALTIVEC_VRSAVE.
15236         (rs6000_emit_epilogue): Likewise.
15237
15238 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
15239
15240         * config/sparc/sparc.md (tie_add32): Fix pasto.
15241         (tie_add64): Likewise.
15242
15243 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15244
15245         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
15246
15247 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15248
15249         * config/iq2000/iq2000-protos.h: Fix comment formatting.
15250         * config/iq2000/iq2000.c: Likewise.
15251         * config/iq2000/iq2000.md: Likewise.
15252
15253 2004-01-14  J. Brobecker  <brobecker@gnat.com>
15254
15255         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
15256         (subrange_type_die): Add handle for nameless subrange types.
15257
15258 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15259
15260         * config/h8300/h8300-protos.h: Replace do_movsi with
15261         h8300_expand_movsi.
15262         * config/h8300/h8300.c (do_movsi): Change to
15263         h8300_expand_movsi.
15264         * config/h8300/h8300.md (movsi): Replace do_movsi with
15265         h8300_expand_movsi.
15266         (movsf): Likewise.
15267
15268 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15269
15270         * config/h8300/h8300.c (dosize): Change to
15271         h8300_emit_stack_adjustment.  Update callers.
15272
15273 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15274
15275         * config/h8300/h8300.md (movstrictqi): Add an alternative with
15276         the source being post_inc.  Tighten the predicate for the
15277         destination to register_operand.
15278         (movstricthi): Likewise.
15279
15280 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15281
15282         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
15283         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
15284         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
15285
15286 2004-01-14  Jan Hubicka  <jh@suse.cz>
15287
15288         Partial fix PR c++/12850
15289         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
15290         at zero nest level.
15291
15292 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
15293
15294         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
15295         pseudo-register.
15296
15297 2004-01-13  Devang Patel <dpatel@apple.com
15298
15299         PR debug/7078
15300         * dbxout.c (dbxout_symbol_name): Emit mangled names for
15301         NAMESPACE_DECL memebers.
15302
15303 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
15304
15305         PR c++/12709
15306         * c-common.c (finish_fname_decls): Use the chain only if the
15307         tree is an expr_stmt.
15308
15309 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
15310
15311         * rtl.def: Add comment about new option in automata_option.
15312
15313         * genautomata.c (PROGRESS_OPTION): New macro.
15314         (progress_flag): New global variable.
15315         (gen_automata_option): Process `progress'.
15316         (transform_insn_regexps, check_unit_distributions_to_automata,
15317         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
15318         expand_automata, write_automata): Print about the progress only if
15319         progress_flag.  Remove fflush.
15320         (initiate_automaton_gen): Process command line flag `-progress'.
15321
15322         * doc/md.texi: Describe the new option.
15323
15324 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15325
15326         * cfg.c (dump_bb): Dump entry edges.
15327
15328 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
15329
15330         * arm.c (thumb_legitimate_address_p): Only allow constant pool
15331         references from SImode.
15332         * arm.md (thumb_movhi_insn): Don't allow minipool references.
15333
15334 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15335
15336         * system.h (TEXT_SECTION): Poison.
15337         * varasm.c (text_section): Don't use TEXT_SECTION.
15338         * config/sh/sh.c (sh_file_start): Fix a comment typo.
15339         * doc/tm.texi (TEXT_SECTION): Remove.
15340
15341 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
15342
15343         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
15344
15345 2004-01-12  James E Wilson  <wilson@specifixinc.com>
15346
15347         * unwind-libunwind.c: Delete.
15348
15349 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15350
15351         PR 13656
15352         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
15353         oldtype is set, set *newtypep or *oldtypep too.  Do not set
15354         them at the very end.
15355         (validate_proto_after_old_defn): Restructure for comprehensibility;
15356         make error messages clearer.
15357
15358 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15359
15360         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
15361         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
15362         * varray.c: No need to prototype error.
15363         (varray_check_failed): Wrap long string onto two lines.
15364         (varray_underflow): New function.
15365
15366 2004-01-13  Steven Bosscher  <stevenb@suse.de>
15367
15368         PR c++/13376
15369         * function.h (struct function): Kill `name' field.
15370         (current_function_name): Make it an extern function.
15371         * function.c (current_function_name): New function.
15372         * graph.c: Update all uses of current_function_name.
15373         * gcse.c: Likewise.
15374         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
15375         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
15376         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
15377         instead of a strcmp with "main".
15378
15379 2004-01-13  Jan Hubicka  <jh@suse.cz>
15380
15381         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
15382
15383         * cgraphunit.c (cgraph_optimize_function):  Always do
15384         optimize_inline_calls when there is always_inline callee.
15385         (cgraph_decide_inlining): Fix formating.
15386         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
15387         functions.
15388         (expand_call_inline): Likewise.
15389         * toplev.h (sorry): Fix prototype.
15390
15391 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15392
15393         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
15394         conditional jumps that drop through to unconditional jumps or the
15395         end of the sequence.
15396
15397 2004-01-13  Jan Hubicka  <jh@suse.cz>
15398
15399         * alias.c (new_alias_set): Construct the alias_set varray.
15400         (init_alias_once): Don't do it here.
15401
15402 2004-01-12  Marc Espie <espie@openbsd.org>
15403
15404         * system.h: handle YYBYACC like YYBISON.
15405
15406 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
15407
15408         PR target/10847
15409         * config.gcc: No longer includes conflicting header sparc/sol2.h when
15410         building on sparc64-*-openbsd*.
15411
15412 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
15413
15414         PR debug/13539
15415         * dbxout.c (dbxout_type): Protected inheritance is not
15416         private but protected.
15417
15418 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15419
15420         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
15421
15422 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
15423
15424         PR optimization/12508.
15425         * combine.c (try_combine): Remove a dead set in a parallel
15426         even if its destination is a subreg.
15427
15428         Revert:
15429         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
15430         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
15431         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
15432
15433 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
15434
15435         * real.c: Update copyright date.
15436         * emit-rtl.c: Likewise.
15437         * rtl.h: Likewise.
15438         * dwarf2out.c: Likewise.
15439         * config/rs6000/darwin-ldouble.c: Likewise.
15440         * config/rs6000/rs6000.md: Likewise.
15441
15442 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15443
15444         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
15445         TFmode to SImode libfuncs.
15446
15447 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15448
15449         PR middle-end/11397
15450         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
15451
15452 2004-01-12  Jan Hubicka  <jh@suse.cz>
15453
15454         PR opt/12826
15455         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
15456         stored.
15457
15458         PR opt/12863
15459         * cfgcleanup.c (label_is_jump_target_p): Move to...
15460         * rtlanal.c (label_is_jump_target_p): ... here.
15461         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
15462         edges unified with branch edges.
15463
15464 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
15465
15466         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
15467         high word of an integral CONST_DOUBLE.
15468
15469 2004-01-12  Paul Brook  <paul@codesourcery.com>
15470
15471         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
15472
15473 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
15474
15475         PR target/13585
15476         * sh-protos.h (check_use_sfunc_addr): Declare.
15477         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
15478         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
15479
15480 2004-01-12  Jan Hubicka  <jh@suse.cz>
15481
15482         * alias.c:  Invlude varray.h
15483         (alias_sets): Turn into varray.
15484         (get_alias_set_entry): Use VARRAY; mark inline.
15485         (mems_in_disjoint_alias_sets_p): Mark inline.
15486         (record_alias_subset): Use varray.
15487         (init_alias_once): Initialize varray.
15488         (new_alias_set): Grow array.
15489         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
15490
15491 2004-01-12  Jan Hubicka  <jh@suse.cz>
15492
15493         Partial fix for PR opt/10776 II
15494         * cselib.c: Include params.h
15495         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
15496         locations.
15497         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
15498         * Makefile.in (cselib.o): Depend on params.h
15499
15500 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15501
15502         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
15503         simplify_unary_operation if the operand has a known mode.
15504
15505 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
15506
15507         PR target/13534
15508         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
15509         predicate to handle 'ld' conform addresses.
15510         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
15511         contraint.
15512         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
15513         are memory contraints.
15514         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
15515         New prototype.
15516         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
15517         Change 'o' to 'Y' constraint.
15518         (*movdf_softfloat64): Ditto.
15519
15520 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
15521
15522         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
15523         brace-enclosed syntax in all C output statements.
15524
15525 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15526
15527         PR target/13401
15528         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
15529         Objective-C language type value is 14.
15530
15531 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
15532
15533         PR c/12148
15534         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
15535         `int' in a number of places to make sure we always have a SImode
15536         and not a HImode.  Add a 'L' suffix to a number of constants.
15537
15538 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15539
15540         * pa.c: Don't include obstack.h.
15541
15542         * pa.md: Correct constraint in pattern for loading PIC label address.
15543
15544 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
15545
15546         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
15547          before defining.
15548
15549 2004-01-11  Steven Bosscher  <stevenb@suse.de>
15550
15551         PR fortran/9972
15552         * toplev.c (rest_of_handle_inline): Also consider functions
15553         for deferral if the language is GNU F77.
15554
15555 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
15556
15557         * c-decl.c (diagnose_arglist_conflict): Add missing space to
15558         diagnostic messages.
15559
15560 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
15561
15562         PR middle-end/13392
15563         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
15564         to drop through label.  Don't fall back to SCC even when conditional
15565         jump has not been found.
15566
15567 2004-01-11  Jan Hubicka  <jh@suse.cz>
15568
15569         * invoke.texi: Fix syntax error in previous patch.
15570
15571         Partial fix for PR opt/10776
15572         * Makefile.in (reload.o): Include param.h
15573         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
15574         * reload.c: Include params.h.
15575         (find_equiv_reg): Work limiting check.
15576         * invoke.texi: Document.
15577
15578 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
15579
15580         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
15581         out-of-bounds accesses to string constants.  Simplify mips16
15582         case accordingly.
15583
15584 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
15585
15586         PR optimization/13469
15587         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
15588         reload_cse_regs (-fnon-call-exceptions only).
15589
15590 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
15591
15592         * config/mcore/lib1.asm: Fix comment formatting.
15593         * config/mcore/mcore-elf.h: Likewise.
15594         * config/mcore/mcore.c: Likewise.
15595         * config/mcore/mcore.h: Likewise.
15596         * config/mcore/mcore.md: Likewise.
15597
15598 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
15599
15600         * c-decl.c (duplicate_decls): Break apart into...
15601         (diagnose_arglist_conflict, validate_proto_after_old_defn)
15602         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
15603         ... these new functions.  Restructure for comprehensibility.
15604         Remove various archaic special cases.  Always report the
15605         location of the previous declaration when a diagnostic is issued.
15606         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
15607         (match_builtin_function_types): Delete unnecessary forward declaration.
15608
15609 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
15610
15611         * genautomata.c (make_automaton, NDFA_to_DFA):
15612         Print progress bars with '.' characters instead of '*'.
15613         (build_automaton): Change notes to match.
15614
15615 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15616
15617         * config/m32r/m32r.md: Use define_constants for unspec and
15618         unspec_volatile.
15619
15620 2004-01-10  Jan Hubicka  <jh@suse.cz>
15621
15622         PR opt/11635
15623         * expr.c (expand_expr_real):  More curefully expand union casts.
15624
15625 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15626
15627         * config/m32r/m32r.md (flush_icache): Use 1 for
15628         unspec_volatile.
15629
15630 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
15631             James E Wilson  <wilson@specifixinc.com>
15632
15633         PR debug/12860
15634         * dbxout.c (dbxout_symbol): Remove initialization of
15635         current_sym_code, current_sym_value, and current_sym_addr.
15636         (dbxout_symbol_location): Same.
15637         (dbxout_prepare_symbol): Zero current_sym_code,
15638         current_sym_value, and current_sym_addr.
15639
15640 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
15641
15642         * tree.c (get_unwidened): Reorder conditions so that the null pointer
15643         check is done first.
15644
15645 2004-01-09  Eric Christopher  <echristo@redhat.com>
15646
15647         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
15648         if we're running mark_constant_function.
15649
15650 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
15651
15652         PR target/12561
15653         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
15654
15655 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
15656
15657         PR debug/11231
15658         * dbxout.c (dbxout_type_fields): Return if any item is
15659         error_mark_node or the type is error_mark_node.
15660
15661 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
15662
15663         * config/rs6000/darwin-ldouble.c: Add big comment explaining
15664         exactly what is expected as a 'long double'.
15665         (_xlqadd): When a value to be returned is representable as a
15666         'double', just return it directly, do not construct it using a union.
15667         Also, correct final fixup.
15668         (_xlqmul): Likewise.
15669         (_xlqdiv): Likewise.
15670         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
15671
15672         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
15673
15674 2004-01-09  Richard Henderson  <rth@redhat.com>
15675
15676         * recog.c (constrain_operands): Validate mem operands.
15677
15678 2004-01-09   James E Wilson  <wilson@specifixinc.com>
15679
15680         * gcc.c (init_spec): Remove -lunwind from shared case.
15681         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
15682
15683 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
15684
15685         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
15686         * configure: Regenerate
15687
15688 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
15689
15690         PR c/11234
15691         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
15692         between function and object pointers.
15693         (digest_init): When comparing a pointer to function type to the
15694         target type, only apply TREE_TYPE once to the pointer to function
15695         type.
15696         * except.c (for_each_eh_label_1): Treat data as a pointer to a
15697         function pointer rather than casting it to a function pointer.
15698         (for_each_eh_label): Update caller.
15699         * recog.h (struct insn_data): Use a struct or union for output.
15700         * genoutput.c (output_insn_data): Update.
15701         * final.c (get_insn_template): Update.
15702
15703 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
15704
15705         * expr.h (expand_expr): Make it a macro, not a function.
15706         (expand_expr_real): New function.
15707         * expr.c (store_expr): Adjust logic for deciding whether or not to
15708         copy the value returned by expand_expr.
15709         (expand_expr): Rename to ...
15710         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
15711         calls to language hooks.
15712         * c-common.h (c_expand_expr): Adjust prototype.
15713         * c-common.c (c_expand_expr): Add alt_rtl parameter.
15714         * langhooks-def.h (lhd_expand_expr): Change prototype.
15715         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
15716         * langhooks.h (lang_hooks): Change type of expand_expr.
15717         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
15718         (last_expr_alt_rtl): Likewise.
15719         (expand_expr_stmt_value): Set last_expr_alt_rtl.
15720         (clear_last_expr): Clear it.
15721         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
15722         (expand_end_bindings): Save and restor last_expr_alt_rtl.
15723         * tree.def (RTL_EXPR): Give it an additional operand.
15724         * tree.h (RTL_EXPR_ALT_RTL): New macro.
15725
15726 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15727
15728         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
15729         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
15730
15731 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15732
15733         PR target/13380.
15734         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
15735         or (ne:SI (reg:CC 17) (const_int 0)).
15736         Be specific about modes wherever possible.
15737
15738 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15739
15740         * config/m32r/m32r.c (m32r_expand_block_move): Call
15741         gen_movestrsi_internal with two more arguments.
15742         (m32r_output_block_move): Adjust operand numbers.
15743         Properly update the source and destination pointers.
15744         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
15745         'r+'.  Change the set detinations to match_operand.
15746
15747 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15748
15749         * final.c (FIRST_INSN_ADDRESS): Remove.
15750         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
15751         * system.h (FIRST_INSN_ADDRESS): Poison.
15752         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
15753         * config/m32r/m32r-protos.h: Remove the prototype for
15754         m32r_first_insn_address.
15755         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
15756         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
15757         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
15758
15759 2004-01-09  J. Brobecker  <brobecker@gnat.com>
15760
15761         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
15762         we just created.
15763         (is_ada_subrange_type): DIEs for enumeration subtypes should be
15764         emitted as subrange types too.
15765         (subrange_type_die): Add handling of enumeration subtypes.
15766
15767 2004-01-08  Richard Henderson  <rth@redhat.com>
15768
15769         PR opt/12441
15770         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
15771         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
15772         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
15773         (ix86_address_cost): Be prepared for SUBREGed registers.
15774         (legitimate_address_p): Accept SUBREGed registers.
15775
15776 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
15777
15778         * Makefile.in: Rename configure.in to configure.ac
15779         * doc/sourcebuild.texi: Likewise.
15780         * configure: Regenerate.
15781         * config.in: Regenerate.
15782
15783 2004-01-08  Stuart Hastings  <stuart@apple.com>
15784
15785         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
15786
15787 2004-01-08  Jan Hubicka  <jh@suse.cz>
15788
15789         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
15790
15791 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
15792
15793         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
15794         (UNSPEC_FIX_TRUNC_TF): New constant.
15795         (movtf_internal): Make splitter active only when insn is active.
15796         (extenddftf2): Rewrite to properly load zero into low part.
15797         (extenddftf2_internal): New.
15798         (extendsftf2): Rewrite.
15799         (truncdftf2): Correct length.
15800         (floatditf2): Delete.
15801         (fix_trunc_helper): New.
15802         (fix_trunctfdi2): Use fix_trunc_helper.
15803         (fix_trunctfsi2): Likewise.fix_trunc
15804         (fix_trunctfsi2_internal): New.
15805
15806         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
15807         addresses are legitimate on Darwin even when flag_pic.
15808         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
15809         non-offsettable addresses for loads of TFmode constants.
15810
15811 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15812
15813         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
15814         variables in the appropriate bss section.
15815
15816 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
15817
15818         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
15819         target_flags has MASK_POWERPC64 when -m64.
15820         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
15821         to 620, 630, power3, power4 and rs64a entries.
15822         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
15823
15824 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
15825
15826         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
15827         floating-point constants.
15828
15829 2004-01-08  J. Brobecker  <brobecker@gnat.com>
15830
15831         * dwarf2out.c (subrange_type_die): Add context_die parameter.
15832         Create the subrange_type DIE using the given context DIE.
15833         (modified_type_die): Update call to subrange_type_die.
15834
15835 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
15836
15837         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
15838         Add multiple-include guard.
15839
15840 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
15841
15842         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
15843         all vector constant loadable by vsplt*.
15844         (output_vec_const_move): Likewise.
15845
15846 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
15847
15848         PR c/6024
15849         * c-typeck.c (comptypes): Only treat enumerated types in the same
15850         translation unit as compatible with each other when they are the
15851         same type.
15852         * doc/extend.texi: Update.
15853
15854 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
15855
15856         PR c/12165
15857         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
15858         array type from the array element type.
15859
15860 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
15861
15862         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
15863         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
15864         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
15865         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
15866         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
15867
15868 2004-01-06  Eric Christopher  <echristo@redhat.com>
15869
15870         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
15871         (DWARF2_DEBUGGING_INFO): Define.
15872         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
15873         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
15874         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
15875         for irix as.
15876         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
15877         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
15878         * config/mips/iris5gas.h: Ditto.
15879         (DBX_DEBUGGING_INFO): Remove.
15880         (DWARF2_DEBUGGING_INFO): Ditto.
15881         (MIPS_DEBUGGING_INFO): Ditto.
15882         (PREFERRED_DEBUGGING_TYPE): Ditto.
15883         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
15884         (PREFERRED_DEBUGGING_TYPE): Ditto.
15885         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
15886         * config/mips/elf64.h: Ditto.
15887
15888 2004-01-06  Jan Hubicka  <jh@suse.cz>
15889
15890         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
15891         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
15892
15893 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
15894
15895         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
15896         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
15897         * config/rs6000/darwin-ldouble.c: New.
15898
15899         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
15900         for constants.
15901         (constant_subword): Delete.
15902         * rtl.h (constant_subword): Delete prototype.
15903         (immed_double_const): Is not in varasm.c.
15904         * simplify-rtx.c (simplify_immed_subreg): New.
15905         (simplify_subreg): Use simplify_immed_subreg.
15906
15907         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
15908         than trying to generate RTL directly.
15909         (fix_trunctfsi2): Use expand_fix rather than trying to generate
15910         RTL directly.
15911
15912         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
15913
15914 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
15915
15916         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
15917         function into a separate macro.
15918         (read_only_data_section): Add void argument.
15919         (private_data_section): Same.
15920         (read_only_private_data_section): Same.
15921         (toc_section): Same.
15922
15923 2004-01-06  Jan Hubicka  <jh@suse.cz>
15924
15925         * invoke.texi:  Remove typo in last change.
15926
15927         PR target/10301
15928         * config.gcc: Accept opteron and athlon-64 as variants
15929         of k8.
15930         * i386.c (override_options): Likewise.
15931         * invoke.texi (i386 -mtune): Expand documentation.
15932
15933 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
15934
15935         * alias.c: Fix comment typos.
15936         * builtins.c: Likewise.
15937         * cfg.c: Likewise.
15938         * df.c: Likewise.
15939         * dominance.c: Likewise.
15940         * dwarf2out.c: Likewise.
15941         * emit-rtl.c: Likewise.
15942         * expr.c: Likewise.
15943         * final.c: Likewise.
15944         * fold-const.c: Likewise.
15945         * gcse.c: Likewise.
15946         * genattrtab.c: Likewise.
15947         * genrecog.c: Likewise.
15948         * gensupport.c: Likewise.
15949         * ggc-zone.c: Likewise.
15950         * integrate.c: Likewise.
15951         * local-alloc.c: Likewise.
15952         * loop.c: Likewise.
15953         * recog.c: Likewise.
15954         * regmove.c: Likewise.
15955         * reg-stack.c: Likewise.
15956         * reorg.c: Likewise.
15957         * rtlanal.c: Likewise.
15958         * rtl.h: Likewise.
15959         * sched-ebb.c: Likewise.
15960         * simplify-rtx.c: Likewise.
15961         * toplev.c: Likewise.
15962         * varasm.c: Likewise.
15963
15964 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
15965
15966         * doc/install.texi: Fix typos.
15967         * doc/invoke.texi: Likewise.
15968         * doc/md.texi: Likewise.
15969
15970 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15971
15972         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
15973
15974 2004-01-06  Jan Hubicka  <jh@suse.cz>
15975
15976         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
15977         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
15978         of MMX_REGPARM.
15979         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
15980         add MMX_REGPARM.
15981         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
15982         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
15983         (MMX_REGPARM_MAX): Similarly for -mmmx.
15984
15985 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
15986
15987         * config/sh/linux.h: Fix comment formatting.
15988         * config/sh/netbsd-elf.h: Likewise.
15989         * config/sh/sh.c: Likewise.
15990         * config/sh/sh.h: Likewise.
15991         * config/sh/vxworks.h: Likewise.
15992
15993 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
15994
15995         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
15996         * toplev.c (output_file_directive): Don't use
15997         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
15998
15999 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
16000
16001         * toplev.c: Fix broken checkin of 2003-12-30.
16002
16003 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
16004
16005         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
16006         (USING_MMAP): We don't support non-mmap.
16007         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
16008         large objects.
16009         (struct page_entry): Remove bytes_free.
16010         (struct page_table_chain): Remove.
16011         (struct globals): Remove page_table member.
16012         (loookup_page_table_entry): Function deleted.
16013         (set_page_table_entry): Ditto.
16014         (ggc_allocated_p): No longer need page table lookups.
16015         (ggc_marked_p): Ditto.
16016         (alloc_small_page): Don't care about bytes_free anymore.
16017         (alloc_large_page): Round up size.
16018         (ggc_alloc_zone_1): Mark large objects as such, and calculate
16019         their size the new way.
16020         Remove page table lookups and setting.
16021         (ggc_get_size): Calculate large object size the new way.
16022         (sweep_pages): Redo to account for fact that we no longer have
16023         bytes_free.
16024         (ggc_collect): No longer need to reincrement bytes_free.
16025         (ggc_pch_alloc_object): Handle new large objects properly.
16026         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
16027
16028 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16029
16030         * doc/invoke.texi: Remove a page break.
16031
16032 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16033
16034         * config/avr/avr.c (avr_output_function_prologue): Remove an
16035         extra pair of curly braces.
16036
16037 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16038
16039         * config/mn10300/mn10300.c: Fix comment formatting.
16040         * config/mn10300/mn10300.h: Likewise.
16041
16042 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16043
16044         * tree.h: Update documentation on nothrow_flag.
16045         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
16046         types.
16047
16048 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16049
16050         * doc/invoke.texi: Remove traces of dead ports.
16051
16052 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16053
16054         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
16055         option.
16056
16057 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16058
16059         PR target/12945
16060         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
16061         counter labels.
16062         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
16063         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
16064         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
16065         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
16066         (mips_symbol_insns): Don't trust the local/global classification.
16067         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
16068         (override_options): Make -mabicalls -fno-unit-at-a-time imply
16069         -mno-explicit-relocs.
16070         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
16071         between local and global symbols.
16072
16073 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16074
16075         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
16076         (mips_preferred_reload_class): Declare.
16077         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
16078         (EXTRA_CONSTRAINT): Update accordingly.
16079         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
16080         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
16081         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
16082         mips_dangerous_for_la25_p.
16083         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
16084         if mips_dangerous_for_la25_p.
16085
16086 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
16087
16088         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
16089         warning.
16090
16091 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
16092
16093         * configure.ac: Use AC_PROG_CPP_WERROR.
16094         * configure: Regenerate.
16095
16096 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
16097
16098         * .cvsignore: Add autom4te.cache.
16099
16100 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
16101
16102         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
16103         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
16104         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
16105         then architecture options, then ABI options.  General rewording.
16106
16107 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
16108
16109         PR c/3414
16110         * doc/extend.texi: Clarify definition of malloc attribute.
16111
16112 2004-01-04  Jan Hubicka  <jh@suse.cz>
16113
16114         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
16115         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
16116         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
16117         (cgraph_inline_p): Add extra argument reason.
16118         * cgraphunit.c: Minor formating fixes.
16119         cgraph_first_inlined_callee): New functions.
16120         (record_call_1): Record builtins too.
16121         (cgraph_analyze_function): Update inline_failed messages.
16122         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
16123         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
16124         (cgraph_check_inline_limits): Likewise; Add argument reason.
16125         (cgraph_set_inline_failed): New static function.
16126         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
16127         reasons.
16128         (cgraph_inline_p): Add new argument reason.
16129         * tree-inline.c (expand_call_inline):  Update warning.
16130
16131 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
16132
16133         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
16134         with modern equivalents.
16135         * configure: Regenerate.
16136
16137         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
16138         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
16139         * configure: Regenerate.
16140
16141         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
16142
16143         * configure.in: Rename to configure.ac.
16144         * configure.ac: Renamed from configure.in; make minimum necessary
16145         changes for autoconf 2.5x.
16146         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
16147         * configure: Regenerate with autoconf 2.57.
16148
16149 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
16150
16151         * config/mips/linux.h: Fix comment formatting.
16152         * config/mips/mips.c: Likewise.
16153         * config/mips/mips.h: Likewise.
16154         * config/mips/mips.md: Likewise.
16155         * config/mips/netbsd.h: Likewise.
16156         * config/mips/windiss.h: Likewise.
16157
16158 2004-01-02  Richard Henderson  <rth@redhat.com>
16159
16160         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
16161         for sse and 387; add suppression for mmx.
16162
16163 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
16164
16165         * loop.c (loop_optimize): Free all loops_info's mems.
16166
16167         * c-typeck.c (finish_init): Free spelling_base before
16168         setting it again.
16169
16170         * cfgloop.c (flow_loops_find): Always free the sbitmap
16171         headers.
16172
16173         * predict.c (estimate_probability): Free bbs after being
16174         done with it.
16175
16176 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16177
16178         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
16179         const_8bit_operand and call_address_operand.
16180
16181 2004-01-02  Jan Hubicka  <jh@suse.cz>
16182
16183         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
16184         when there is nothing to inline but warnings are requested.
16185         (cgraph_decide_inlining):  Fix memory leak.
16186
16187 2004-01-02  Jan Hubicka  <jh@suse.cz>
16188
16189         * expr.c (store_constructor):  Fix pasto in previous patch.
16190
16191 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16192
16193         * config/i386/cygming.h: Fix comment formatting.
16194         * config/i386/djgpp.h: Likewise.
16195         * config/i386/gthr-win32.c: Likewise.
16196         * config/i386/i386-interix.h: Likewise.
16197         * config/i386/i386.c: Likewise.
16198         * config/i386/i386.h: Likewise.
16199         * config/i386/openbsd.h: Likewise.
16200         * config/i386/winnt.c: Likewise.
16201         * config/i386/xm-mingw32.h: Likewise.
16202
16203 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
16204
16205         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
16206         copyright and last modification dates.
16207
16208 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
16209
16210         * doc/install.texi (Specific): Mention x86_64.
16211
16212 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
16213
16214         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
16215         Call force_operand on plus_constant result.
16216
16217 2004-01-01  Jan Hubicka  <jh@suse.cz>
16218
16219         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
16220         * expr.c (store_constructor): Use vec_init pattern.
16221         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
16222         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
16223         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
16224         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
16225         New patterns.
16226         (sse2_unpc?pd): Fix pattern.
16227         (sse2_movlpd): Kill.
16228         (sse2_movsd): Deal with movlpd too.
16229         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
16230         (ix86_expand_vector_init): New.
16231         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
16232         * md.texi (vec_set, vec_extract): Document
16233
16234 2003-12-31  Jan Hubicka  <jh@suse.cz>
16235
16236         PR opt/13473
16237         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
16238         ASM input operands
16239
16240         PR opt/12617
16241         * toplev.c (dump_file_index): Reorder ce3 and bbro.
16242         (dump_file): Likewise.
16243         (rest_of_compilation): Likewise.
16244
16245         PR debug/13367
16246         * cgraph.c (cgraph_function_possibly_inlined):  Even with
16247         flag_really_no_inline we inline always_inline functions.
16248         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
16249         for non-always_inline functions when there is flag_really_no_inline.
16250         (cgraph_decide_inlining): Limit work done when not inlining.
16251         (cgraph_decide_inlining_incrementally): Likewise.
16252         (cgraph_optimize_function): Check whether something got inlined.
16253         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
16254         extern inline functions when not inlining.
16255
16256         * opts.c (decode_options):  Disable crossjumping at -O1
16257         * invoke.texi (-O1): Document change.
16258
16259 See ChangeLog.10 for earlier changes.