OSDN Git Service

* pretty-print.c (pp_base_format_text): Support %< instead of %`
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2
3         * pretty-print.c (pp_base_format_text): Support %< instead of %`
4         and %> as well as %'.
5         * c-format.c: Use %< and %>.
6         (gcc_diag_char_table, gcc_cdiag_char_table,
7         gcc_cxxdiag_char_table): Update.
8
9 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
10
11         * c-typeck.c (common_type): Correct comment.
12
13 2004-05-29  Peter Barada  <peter@the-baradas.com>
14
15         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
16         * config/m68k/m68k.c (const_method): Likewise.
17         * config/m68k/m68k.c (const_int_cost): Likewise.
18         * config/m68k/m68k.c (const_int_cost): Likewise.
19         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
20
21 2004-05-29  Peter Barada  <peter@the-baradas.com>
22
23         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
24         addressing.
25         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
26         movsi,movhi,movqi insn patterns.
27
28 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
29
30         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
31
32         PR target/15720
33         * config/darwin.c (machopic_indirect_call_target): Copy
34         the SYMBOL_REF_DECL from the original RTX for the new
35         stub RTX.
36
37 2004-05-28  DJ Delorie  <dj@redhat.com>
38
39         * stor-layout.c (place_field): Revert erroneous commit.
40
41 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
42
43         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
44         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
45         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
46         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
47         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
48         vec_ste): Remove type checks for integral parameters and literals
49         from '..._args_eq' macros.
50
51 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
52
53         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
54
55 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
56
57         * testsuite/g++.dg/charset/function.cc: New.
58
59         * testsuite/gcc.dg/charset/function.c: New.
60
61         * c-decl.c (c_make_fname_decl): Free return value from
62         fname_as_string.
63
64         * cp/decl.c (cp_make_fname_decl): Free return value from
65         fname_as_string.
66
67         * c-common.c (fname_as_string): Translate if necessary.
68
69 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
70
71         * stringpool.c: Add comments to PCH saving/restoring routines.
72
73 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
74
75         * c-common.c (c_estimate_num_insns_1): Kill.
76         (c_estimate_num_insns): Kill.
77         * c-common.h (c_estimate_num_insns): Kill.
78
79         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
80         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
81         Remove comment about not checking for
82         _POSIX_PRIORITY_SCHEDULING.
83         * gthr-posix.c: Likewise.
84
85 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
86             Roger Sayle  <roger@eyesopen.com>
87
88         PR rtl-optimization/15649
89         Add LTGT_EXPR and improve pretty-printing of unordered
90         comparisons.
91         * c-common.c (c_common_truthvalue_conversion):
92         Handle LTGT_EXPR.
93         * c-typeck.c (build_binary_op): Likewise.
94         * dojump.c (do_jump): Likewise.
95         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
96         * predict.c (tree_predict_by_opcode): Likewise.
97         * real.c (real_compare): Likewise.
98         * tree-cfg.c (verify_expr): Likewise.
99         * tree-inline.c (estimate_num_insns_1): Likewise.
100         * tree-pretty-print.c (dump_generic_node): Likewise.
101         Handle ORDERED_EXPR, UNORDERED_EXPR.
102         (op_symbol): Print unordered comparisons differently
103         than ordered ones.
104         * tree.def (LTGT_EXPR): New '<' tree code.
105         * doc/c-tree.texi (Expressions): Document floating-point
106         comparison nodes.
107
108         Fold comparisons between floating point values.
109         * fold-const.c (enum comparison_code): New, from
110         #define'd constants.  Define compcodes for unordered
111         comparisons and for invalid transformations.
112         (invert_tree_comparison): Add "honor_nans" parameter.
113         (fold_truthop): Revamp to work on floating-point types too.
114         (comparison_to_compcode): Support unordered comparisons.
115         Use new enum comparison_code.
116         (compcode_to_comparison): Likewise.
117         (combine_compcodes): New function.
118         (invert_truthvalue): Let invert_tree_comparison decide
119         whether it is valid to fold the comparison.  Fold ORDERED
120         and UNORDERED even if flag_unsafe_math_optimizations is off,
121         and the remaining even if flag_unsafe_math_optimizations
122         is off but we are under -fno-trapping-math.
123         (fold_relational_const): Integer modes do not honor NaNs.
124         
125 2004-05-28  Paul Brook  <paul@codesourcery.com>
126
127         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
128
129 2004-05-28  Paul Brook  <paul@codesourcery.com>
130
131         * config/arm/arm.c (thumb_force_lr_save): New function.
132         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
133         thumb_output_function_prologue): Use it.
134         (thumb_expand_prologue): Set lr_save_eliminated.
135
136 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
137
138         * config/mips/mips.md (extendsidi2): Tie the source and destination
139         of the register alternative.  Split it into nothing.
140
141 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
142
143         * rtl.h (skip_consecutive_labels): Declare.
144         * emit-rtl.c (skip_consecutive_labels): New function.
145         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
146         * jump.c (follow_jumps): Say what null return values mean.
147
148 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
149
150         PR target/13250
151         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
152
153 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
154
155         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
156         libgcc-std.ver.
157         * config/sh/libgcc-std.ver: New file.
158
159 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
160
161         * except.c: Revert change of 2004-05-26.
162         * config/i386/i386.md: Revert change of 2004-05-27.
163
164 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
165
166         * configure.ac: Remove --enable-tree-browser option.
167         Define TREEBROWSER when ac_tree_checking is defined.
168         * configure: Rebuilt.
169
170 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
171
172         * expr.c (store_constructor): Restore sanity check on
173         the size of the type before clearing.
174
175 2004-05-27  Jan Hubicka  <jh@suse.cz>
176
177         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
178
179 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
180
181         * combine.c (gen_binary): Remove.
182         (known_cond, simplify_shift_const
183         find_split_point, combine_simplify_rtx,
184         simplify_if_then_else, simplify_set,
185         simplify_logical, expand_field_assignment,
186         extract_left_shift, force_to_mode,
187         if_then_else_cond, apply_distributive_law,
188         simplify_and_const_int, simplify_shift_const,
189         gen_lowpart_for_combine, simplify_comparison,
190         reversed_comparison): Replace with
191         simplify_gen_binary, simplify_gen_relational or
192         distribute_and_simplify_rtx.
193         (distribute_and_simplify_rtx): New function.
194         * simplify-rtx.c (simplify_binary_operation):
195         Use nonzero_bits to simplify ANDs where we are
196         turning off bits already known to be off in OP0.
197
198 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
199
200         PR target/14478
201         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
202
203 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
204
205         PR middle-end/14084
206         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
207         to size of decl.
208
209 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
210
211         PR/14924
212         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
213
214 2004-05-26  Roger Sayle  <roger@eyesopen.com>
215
216         * tree.h: Fix comment typo.
217
218 2004-05-27  Steven Bosscher  <stevenb@suse.de>
219
220         * gimplify.c (compare_case_labels): New function.
221         (gimplify_switch_expr): Sort case labels, and make sure the
222         last label in the label vector is the default case.
223         * tree-cfg.c (group_case_labels): New function.
224         (build_tree_cfg): Cleanup redundant labels and group case labels
225         before creating edges.
226         (cleanup_dead_labels): Handle GOTO_EXPRs.
227         (find_case_label_for_value): Use a binary search to find the
228         case label for the given value.
229         * tree-gimple.c: Mention that labels are sorted, and that the
230         last label must be the default.
231
232 2004-05-27  Jan Hubicka  <jh@suse.cz>
233
234         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
235
236 2004-05-27  Jan Hubicka  <jh@suse.cz>
237
238         * i386.md (UNSPECV_EH_RETURN): Kill.
239         (eh_return): Use jump_insn.
240         (eh_return_si, eh_return_di): Change pattern to jump instruction.
241
242 2004-05-26  Jan Hubicka  <jh@suse.cz>
243
244         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
245         not loop optimizing.
246
247 2004-05-26  Jan Hubicka  <jh@suse.cz>
248
249         * except.c (can_throw_internal):  Notice RESX instructions.
250
251 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
252
253         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
254         of the two sizes to assemble_integer.
255
256 2004-05-25  Paul Brook  <paul@codesourcery.com>
257
258         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
259         pointless #ifdef.
260
261 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
262
263         * Makefile.in (top_builddir): Define to .
264
265 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
266
267         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
268         top-level detects, except when in-tree ld is being cross-built.
269         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
270         then AS only if target is host.
271         * configure: Rebuilt.
272
273 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
274
275         * global.c (global_alloc): Call make_accurate_live_analysis.
276         (record_one_conflict): Remove dead code.
277         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
278         (bb_info): New structure.
279         (BB_INFO, BB_INFO_BY_INDEX): New macros.
280         (allocate_bb_info, free_bb_info, mark_reg_change,
281         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
282         modify_bb_reg_pav, calculate_reg_pav,
283         make_accurate_live_analysis): New functions.
284         
285 2004-05-25  Devang Patel  <dpatel@apple.com>
286
287         * alias.c (init_alias_analysis): Use ggc_calloc instead of
288         xrealloc.
289         (end_alias_analysis): Use ggc_free instead fo free.
290         
291 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
292
293         PR target/15546
294         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
295         as needed to be outputted.
296
297 2004-05-25  Jan Hubicka  <jh@suse.cz>
298
299         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
300
301 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
302         Mostafa Hagog  <mustafa@il.ibm.com>
303
304         * Makefile.in (modulo-sched.o, ddg.o): New.
305         * ddg.h, ddg.c, modulo-sched.c: New files.
306         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
307         internals to "dupicate_insn".
308         (duplicate_insn): New function.
309         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
310         declarations.
311         * common.opt (fmodulo-sched): New flag.
312         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
313         Remove static and forward declaration.
314         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
315         functions.
316         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
317         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
318         declarations.
319         * flags.h (flag_modulo_sched): New flag.
320         * opts.c (common_handle_option): Handle modulo-sched flag.
321         * params.def (max-sms-loop-number, sms-max-ii-factor,
322         sms-dfa-history, sms-loop-average-count-threshold): New
323         parameters.
324         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
325         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
326         parameters.
327         * passes.c ("sms", "sms-vcg"): New dumps.
328         (rest_of_handle_sched): Call sms_schedule.
329         * rtl.h (sms_schedule): New declaration.
330         * timevar.def (TV_SMS): New.
331         * toplev.c (flag_modulo_sched): Initialize.
332         (f_options): Handle -fmodulo-sched option.
333         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
334         * docs/passes.texi: Document new SMS pass.
335
336 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
337
338         * Makefile.in (OBJS): Add rtlhooks.o.
339         (rtlanal.o): Depend on function.h.
340         (cse.o): Depend on rtlhooks-def.h.
341         (combine.o): Depend on rtlhooks-def.h.
342         (rtlhooks.o): New rule.
343         * combine.c: Include rtlhooks-def.h.
344         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
345         num_sign_bit_copies, cached_num_sign_bit_copies,
346         num_sign_bit_copies1): Move most of the code to rtlanal.c.
347         (reg_nonzero_bits_for_combine,
348         reg_num_sign_bit_copies_for_combine): New functions holding
349         the remnants of the above.
350         (combine_rtl_hooks): New.
351         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
352         * cse.c: Include rtlhooks-def.h.
353         (cse_rtl_hooks): New.
354         (cse_main): Set rtl_hooks instead of gen_lowpart.
355         * emit-rtl.c (gen_lowpart): Remove.
356         (gen_lowpart_general): Move to rtlhooks.c.
357         * rtl.h (nonzero_bits, num_sign_bit_copies,
358         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
359         (gen_lowpart_general): Remove.
360         (gen_lowpart): Temporarily redefine as a macro.
361         * rtlanal.c: Include function.h.
362         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
363         num_sign_bit_copies, cached_num_sign_bit_copies,
364         num_sign_bit_copies1): New, from combine.c.
365         * rtlhooks.c: New file. 
366
367 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
368
369         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
370         to support 32-bit -mint8 mode.
371
372         * doc/invoke.texi (-mint8): Added documentation for the -mint8
373         option in the AVR architecture. 
374
375 2004-05-24  Mike Stump  <mrs@apple.com>
376
377         * doc/install.texi: Document that dejagnu 1.4.4 is required.
378
379 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
380
381         * intl.h (open_quote, close_quote): New.
382         * intl.c (open_quote, close_quote): New.
383         (gcc_init_libintl): Set them.
384         * pretty-print.c: Include "intl.h".
385         (pp_base_format_text): Support 'q' format flag and %` and %'
386         formats.  Use ' instead of ` in comments.
387         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
388         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
389         foramt_types_orig): Describe these new formats.
390         (decode_format_attr, check_function_format,
391         check_format_info_main): Use these new formats.
392         (status_warning): Use ATTRIBUTE_GCC_DIAG.
393         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
394         check these formats to 3.5.
395
396 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
397
398         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
399         (BACKEND): Reflect this.
400         (LIBDEPS): Move CPPLIB before LIBIBERTY.
401         (LIBS): Likewise.
402
403 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
404
405         PR tree-optimization/14197
406         * builtins.c: Include "tree-gimple.h"
407         (readonly_data_expr): Use get_base_address.  Make sure to call 
408         decl_readonly_section only on trees it can handle.
409         * tree-gimple.c (get_base_address): Accept STRING_CST and
410         CONSTRUCTOR expressions.
411         * Makefile.in: Update dependencies.
412
413 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
414
415         Move libcpp to the toplevel.
416         * Makefile.in: Remove references to libcpp files,
417         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
418         and change hashtable.h to that.
419         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
420         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
421         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
422         * configure: Regenerate.
423         * config.in: Regenerate.
424         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
425         * cppcharset.c: Removed.
426         * cpperror.c: Removed.
427         * cppexp.c: Removed.
428         * cppfiles.c: Removed.
429         * cpphash.c: Removed.
430         * cpphash.h: Removed.
431         * cppinit.c: Removed.
432         * cpplex.c: Removed.
433         * cpplib.c: Removed.
434         * cpplib.h: Removed.
435         * cppmacro.c: Removed.
436         * cpppch.c: Removed.
437         * cpptrad.c: Removed.
438         * cppucnid.h: Removed.
439         * cppucnid.pl: Removed.
440         * cppucnid.tab: Removed.
441         * hashtable.c: Removed.
442         * hashtable.h: Removed.
443         * line-map.c: Removed.
444         * line-map.h: Removed.
445         * mkdeps.c: Removed.
446         * mkdeps.h: Removed.
447         * stringpool.h: Include symtab.h instead of hashtable.h.
448         * tree.h: Include symtab.h instead of hashtable.h.
449         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
450
451 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
452
453         * gcc.c (struct prefix_list): Add forward declaration.
454         (do_spec_path): New function, extracted from...
455         (do_spec_1) <'D'>: ... here.  Drop support for
456         SPACE_AFTER_L_OPTION.
457         (do_spec_1) <'I'>: Use do_spec_path.
458         (process_command): Do not store the 'include' suffix
459         in include_prefixes.
460         * system.h: Poison SPACE_AFTER_L_OPTION.
461
462 2002-05-23  Roger Sayle  <roger@eyesopen.com>
463
464         * fold-const.c (non_lvalue): Explicitly list the tree codes that
465         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
466
467 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
468
469         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
470         Update based on printed manual.  Enable setting of offsets for
471         FSFPRINT and move it to gcc-common.texi.
472         * doc/gcc.texi: Update FSF printing details.
473         * doc/gccint.texi: Remove FSF printing details.
474
475 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
476
477         * config/rs6000/t-rs6000: Remove the disabling -Werror.
478
479 2004-05-22  Roger Sayle  <roger@eyesopen.com>
480
481         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
482         expand_builtin_strrchr, expand_builtin_strpbrk,
483         expand_builtin_mempcpy, expand_builtin_memcmp,
484         expand_builtin_strcmp, expand_builtin_strncmp,
485         expand_builtin_strcat, std_expand_builtin_va_start,
486         std_expand_builtin_va_arg, expand_builtin_va_copy,
487         expand_builtin_signbit, fold_builtin_cabs,
488         fold_builtin_logarithm, fold_builtin_mempcpy,
489         fold_builtin_signbit, fold_builtin_isascii,
490         fold_builtin_toascii, fold_builtin_isdigit,
491         fold_builtin_1, build_function_call_expr,
492         simplify_builtin_strchr, simplify_builtin_strrchr,
493         simplify_builtin_strpbrk, simplify_builtin_strncpy,
494         simplify_builtin_memcmp, simplify_builtin_strcmp,
495         simplify_builtin_strncmp, simplify_builtin_strncat,
496         simplify_builtin_strspn, simplify_builtin_strcspn,
497         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
498         to build with calls to build2, build3 or omit_one_operand.
499
500 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
501
502         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
503         section when generating EABI code.
504
505 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
506
507         PR 15546
508         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
509         Call mark_decl_referenced on the SYMBOL_REF_DECL.
510
511 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
512
513         * c-common.c (c_common_truthvalue_conversion): Handle
514         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
515         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
516         i.e. set the type to truthvalue_type_node and return.
517
518 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
519
520        * tree.h (struct tree_decl): Add possibly_inlined bit.
521         (DECL_POSSIBLY_INLINED): New accessor macro.
522         * cgraph.h: Remove declaration of cgraph_inline_hash.
523         * cgraph.c: Remove definition of cgraph_inline_hash.
524         (hash_node): Revert to hashing DECL_UID.
525         (eq_node): Take two pointers to cgraph_node structures.
526         Compare DECL_UIDs.
527         (cgraph_remove_node): Pass the node directly to htab_find_slot.
528         (cgraph_varpool_hash_node): Rename hash_varpool_node;
529         hash on DECL_UID.
530         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
531         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
532         (cgraph_node): Allocate a temporary node on the stack, fill in
533         its DECL field, and pass that to htab_find_slot.
534         (cgraph_varpool_node): Likewise.
535         (cgraph_function_possibly_inlined_p): If global info is ready,
536         return the DECL_POSSIBLY_INLINED bit.
537         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
538         instead of mucking with cgraph_inline_hash.
539
540 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
541
542         * doc/contrib.texi: Add g77 contributors.
543
544 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
545
546         * calls.c (initialize_argument_information): Forbid sibcalls if a
547         callee-copied argument is stored in the current function's frame.
548
549 2004-05-22  Eric Christopher  <echristo@redhat.com>
550
551         * fix-header.c (read_scan_file): Update for add_path change.
552
553 2004-05-22  Ben Elliston  <bje@au.ibm.com>
554
555         * c.opt (Wmissing-include-dirs): New.
556         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
557         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
558         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
559         * c-incpath.h (add_path): Add fourth (bool) argument.
560         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
561         (add_standard_paths): Likewise.
562         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
563         is used and the directory was user-supplied via -I.
564         (add_path): Set p->user_supplied_p.  Remove duplicated code by
565         using add_cpp_dir_path ().
566         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
567         (struct cpp_dir): Add user_supplied_p.
568         * doc/invoke.texi (Warning Options): Document new option.
569
570 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
571
572         * fold-const.c (fold_read_from_constant_string): Convert result to
573         requested type.
574
575 2004-05-21  Richard Henderson  <rth@redhat.com>
576
577         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
578         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
579         Don't mark VA_ARG_EXPRs volatile here.
580         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
581
582 2004-05-21  Richard Henderson  <rth@redhat.com>
583
584         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
585         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
586
587 2004-05-21  Roger Sayle  <roger@eyesopen.com>
588
589         * fold-const.c (fold, fold_relational_hi_lo,
590         nondestructive_fold_binary_to_constant,
591         fold_read_from_constant_string): Use fold_convert instead of convert.
592         * builtins.c (simplify_builtin, simplify_builtin_strstr,
593         simplify_builtin_strchr, simplify_builtin_strrchr,
594         simplify_builtin_strpbrk): Use fold_convert instead of convert.
595
596 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
597
598         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
599         is NULL.
600
601 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
602
603         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
604         override sparc.h definition.
605
606 2004-05-20  Roger Sayle  <roger@eyesopen.com>
607
608         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
609         get_unwidened, get_narrower): Replace build with build2.
610         * fold-const.c (negate_expr, associate_trees, size_binop,
611         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
612         pedantic_omit_one_operand, distribute_bit_expr,
613         make_bit_field_ref, optimize_bit_field_compare,
614         decode_field_reference, range_binop, make_range,
615         build_range_check, fold_range_test, fold_truthop,
616         optimize_minmax_comparison, extract_muldiv_1,
617         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
618         fold_inf_compare, fold_single_bit_test, fold,
619         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
620         Likewise replace build with either build2 or build3.
621
622 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
623
624         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
625         * calls.c (prepare_call_address): Don't test
626         NO_RECURSIVE_FUNCTION_CSE.
627         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
628         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
629         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
630         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
631         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
632         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
633         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
634         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
635         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
636         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
637         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
638         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
639         Likewise.
640         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
641         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
642         * doc/tm.texi (Costs): Remove documentation for
643         NO_RECURSIVE_FUNCTION_CSE.
644
645 2004-05-20  Paul Brook  <paul@codesourcery.com>
646
647         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
648         * unwind-dw2.c (extract_cie_info): Ditto.
649         (_Unwind_FrameState): Change retaddr_column to word type.
650
651 2004-05-20  Roger Sayle  <roger@eyesopen.com>
652
653         PR middle-end/3074
654         * fold-const.c (strip_compound_expr): Delete function.
655         (count_cond): Delete function.
656         (fold_binary_op_with_conditional_arg): Only perform transformations
657         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
658         when a is constant.  This greatly simplifies this routine.
659
660         * tree.c (saved_expr_p): Delete function.
661         * tree.h (saved_expr_p): Delete function prototype.
662
663 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
664
665         * common.opt (ftree-loop-optimize): Remove.
666
667 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
668
669         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
670         (NM_FOR_TARGET): Use := and $(shell).
671         (mainversion): Remove unused variable.
672
673 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
674
675         * reorg.c (delete_from_delay_slot): If we have a barrier after the
676         sequence containing the insn to be deleted, always reemit it.
677
678 2004-05-20  Richard Henderson  <rth@redhat.com>
679
680         PR 15454
681         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
682         * function.c (expand_function_start): Expand static_chain_decl by hand.
683         * gimplify.c (create_tmp_var_name): Export.
684         * tree-gimple.h (create_tmp_var_name): Declare.
685
686 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
687
688         * rs6000.c (print_operand) <case 'z'>: Call
689         mark_decl_referenced before assemble_name.
690
691 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
692
693         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
694         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
695         (cgraph_varpool_node): Hash on the pointer to the decl, not
696         the DECL_UID.  Fixes 64-bit bootstrap failure.
697
698 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
699
700         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
701         we don't earlyclobber operands used in the second insn.
702
703 2004-05-20  Steven Bosscher  <stevenb@suse.de>
704
705         * tree-mudflap.c: Formatting fixes.
706
707 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
708
709         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
710         * gengtype.c (open_base_files): Include reload.h in ifiles.
711         * reload.h (reg_equiv_memory_loc_varray): Declare.
712         * reload1.c (reg_equiv_memory_loc_varray): New variable.
713         (init_reload): Initialize it.
714         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
715         reg_equiv_memory_loc_varray to size 0.
716         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
717         growing reg_equiv_memory_loc_varray to the desired size.
718         * passes.c (rest_of_handle_old_regalloc): Likewise.
719         * reload.c: Amend comment on calling init_reload.
720
721 2004-05-20  Nick Clifton  <nickc@redhat.com>
722
723         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
724         with 'TRAMP' in the body of the macro definition.
725
726 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
727
728         PR target/15383
729         * config/ia64/ia64.c (ia64_expand_compare): Don't check
730         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
731         cmptf_libfunc isn't set.
732         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
733         conventions.
734         (ia64_sysv4_init_libfuncs): New.
735
736         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
737         ia64_sysv4_init_libfuncs.
738
739 2004-05-20  Falk Hueffner  <falk@debian.org>
740
741         PR other/15526
742         * libgcc2.c (__mulvsi3): Fix overflow test.
743
744 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
745
746         PR c/14171
747         * reg-stack.c (nan): Rename to ...
748         (not_a_num): Here.
749         (reg_to_stack): Rename nan to not_a_num.
750         (subst_stack_regs_pat): Likewise.
751         (convert_regs_entry): Likewise.
752         (convert_regs_1): Likewise.
753
754         * tree-cfg.c (find_case_label_for_value): Replace call to
755         simple_cst_equal with tree_int_cst_equal.
756
757 2004-05-19  Jeff Law <law@redhat.com>
758
759         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
760         If the operand is for a use, then strip away the SSA_NAME, do not
761         strip away the SSA_NAME for a set.  Never call release_ssa_name.
762         (mark_def_sites): Appropriately pass additional argument to
763         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
764         then set the VDEF_RESULT to the VDEF_OP.
765         (set_def_block): Strip away any SSA_NAME to get to the real
766         underlying variable.
767
768         * tree-ssa-phiopt.c (value_replacement): Handle the case where
769         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
770         BB directly.
771
772 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
773
774         PR c++/15463
775         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
776         result of inverse.
777
778         PR rtl-optimization/15274
779         * loop-iv.c (determine_max_iter, shorten_into_mode,
780         iv_number_of_iterations): Handle constants correctly.
781         * rtl.h (get_mode_bounds): Declaration changed.
782         * stor-layout.c (get_mode_bounds): Return a constant suitable for
783         the target mode.
784
785         PR rtl-optimization/14692
786         * loop-unswitch.c (may_unswitch_on): Try folding the result.
787         (unswitch_single_loop): Work correctly when may_unswitch_on
788         returns a folded constant.
789
790         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
791         * simplify-rtx.c (simplify_const_relational_operation): Optimize
792         comparisons with mode bounds.
793
794         * function.c (struct temp_slot): Add new field prev.
795         (free_after_compilation, init_temp_slots): Free new fields.
796         (cut_slot_from_list, insert_slot_to_list,
797         temp_slots_at_level, max_slot_level, move_slot_to_level,
798         make_slot_available): New functions.
799         (assign_stack_temp_for_type, combine_temp_slots,
800         find_temp_slot_from_address, preserve_temp_slots,
801         preserve_rtl_expr_result, free_temp_slots,
802         free_temps_for_rtl_expr, pop_temp_slots): Work with
803         the new structure of lists.
804         (mark_all_temps_used): Removed.
805         * function.h (struct function): Field x_temp_slots
806         replaced by x_used_temp_slots and x_avail_temp_slots.
807         (temp_slots): Replaced by ...
808         (used_temp_slots, avail_temp_slots): New.
809         * tree.h (mark_all_temps_used): Declaration removed.
810
811         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
812         simplify_using_assignment): Take the expression out of
813         the expr_list wrapper.
814
815         * loop-iv.c (iv_number_of_iterations): Improve clasification of
816         infinite loops.
817
818 2004-05-19  Roger Sayle  <roger@eyesopen.com>
819
820         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
821         costs should be based on code size when optimizing for size.
822
823 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
824
825         * fold-const.c: Remove non-printable character 160.
826
827 2004-05-19  Nick Clifton  <nickc@redhat.com>
828
829         * doc/invoke.texi (ARM Options): Fix typo.
830         Remove descrption of -mshort-load-bytes and
831         -mno-short-load-bytes.
832
833         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
834         missing parenthesis.
835         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
836         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
837
838 2004-05-19  Steven Bosscher  <stevenb@suse.de>
839
840         * expr.c (store_constructor): Build loop start and end by hand
841         instead of via loop functions from stmt.c.
842         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
843         Remove the code to expand them.
844
845         * stmt.c (loop_stack): Remove this and everything related.
846         (struct nesting, enum nesting_desc): Update.
847         (expand_fixup): Likewise.
848         (expand_loop_start, expand_start_loop_continue_elsewhere,
849         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
850         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
851         expand_exit_loop_if_false, expand_exit_loop_top_cond,
852         expand_exit_something): Remove.
853         * tree.h: Remove prototypes.
854
855 2004-05-18  Mike Stump  <mrs@apple.com>
856             Devang Patel  <dpatel@apple.com>
857
858         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
859         if this label is for eh.
860         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
861         * config/darwin.c (darwin_emit_unwind_label): Likewise.
862         * dwarf2out.c (output_call_frame_info): Likewise.
863         * output.h (default_emit_unwind_label): Likewise.
864         * target.h (unwind_label): Likewise.
865         * varasm.c (default_emit_unwind_label): Likewise.
866
867         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
868         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
869         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
870         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
871         DEBUG_RANGES_SECTION): Define.
872
873 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
874
875         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
876         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
877         (cgraph_varpool_node):
878         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
879         (cgraph_function_possibly_inlined_p): Use the decl itself for
880         the key, not DECL_ASSEMBLER_NAME.
881         (change_decl_assembler_name): No need to muck with the hash tables.
882         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
883         Delete.
884         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
885         for the key, not DECL_ASSEMBLER_NAME.
886         * cgraph.h: Remove prototypes of deleted functions.
887         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
888         (mark_decl_referenced): New function.
889         * tree.h: Prototype mark_decl_referenced.
890         * final.c (output_addr_const) <case SYMBOL_REF>: Call
891         mark_decl_referenced before assemble_name.
892         * c-decl.c (finish_decl): Use mark_decl_referenced.
893
894 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
895             Jeff Law <law@redhat.com>
896
897         * tree-ssa-phiopt.c (abs_replacement): New function.
898         (empty_block_p): New function extracted from...
899         (candidate_bb_for_phi_optimization): Break out empty block test.
900         (conditional_replacement): Use empty_block_p.
901         (value_replacement): Similarly.
902
903         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
904         * tree-ssa-phiopt.c: Include flags.h.
905         (conditional_replacement): Remove argument names from prototype.
906         Minor formatting and comment fixes.
907         (tree_ssa_phiopt): If conditional_replacement returns false, then
908         call value_replacement.
909         (value_replacement): New function.
910
911 2004-05-18  Jeff Law  <law@redhat.com>
912
913         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
914         from conditional_replacement.
915         (candidate_bb_for_phi_optimization): Similarly.
916         (conditional_replacement): Use replace_phi_with_stmt and
917         candidate_bb_for_phi_optimization.
918
919         * tree-ssa-phiopt.c: Fix various formatting issues.
920
921 2004-05-18  Steven Bosscher  <stevenb@suse.de>
922
923         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
924         s390_expand_cmpmem): Do not use expand_start_loop and
925         expand_end_loop, instead build the loop manually.
926
927 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
928
929         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
930         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
931
932 2004-05-17  Jeff Law  <law@redhat.com>
933
934         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
935         * flags.h (flag_delete_null_pointer_checks): Here.
936         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
937         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
938         (add_phi_arg, remove_phi_arg_num): Similarly.
939         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
940         property into PHI nodes.
941         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
942         (record_equivalences_from_phis): If all PHI arguments are known to be
943         nonzero, then the result must be nonzero as well.
944         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
945         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
946         appropriately.  Walk the USE-DEF chains and propagate nonzero property
947         as appropriate.
948         * tree.h (PHI_ARG_NONZERO): Define.
949         (phi_arg_d): Add nonzero flag.
950
951 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
952
953         * f: Entire directory removed
954
955         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
956         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
957         (g77_integer_type_node, g77_uinteger_type_node)
958         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
959         * c-common.c (c_common_nodes_and_builtins): Do not initialize
960         the above set of variables.
961
962         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
963         * doc/invoke.texi, doc/standards.texi: Remove cross-references
964         to g77 manual.
965
966 2004-05-17  Steven Bosscher  <stevenb@suse.de>
967
968         PR tree-optimization/15438
969         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
970         attributed functions as pure or const.
971
972 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
973
974         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
975         from source code with errors.
976
977 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
978
979         Enable tree browser for all front ends.
980         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
981         (BACKEND): ...to here.
982
983 2004-05-17  Jan Hubicka  <jh@suse.cz>
984
985         * i386.c (construct_container): Do not produce BLKmode registers.
986         (classify_argument): Properly compute alignment of complex types.
987
988 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
989
990         PR target/15084
991         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
992         and renamed to movdi_insv_1_rex64.
993         (insv): Support SImode for 32bit and DImode for 64bit.
994
995 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
996
997         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
998         (TARGET_SWITCHES): Remove debugg.
999         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
1000         TARGET_64BIT.
1001         (subdi3): Replace the define_expand with a define_insn, the latter
1002         renamed from subdi3_internal_3.
1003         (negdi2): Likewise negdi2_internal_2.
1004         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
1005         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
1006         and associated define_splits.
1007         (adddi3_internal): Renamed from adddi3_internal_3.
1008         (ashldi3_internal): Likewise ashldi3_internal4.
1009         (ashrdi3_internal): Likewise ashrdi3_internal4.
1010         (lshrdi3_internal): Likewise lshrdi3_internal4.
1011
1012 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1013
1014         * optabs.c (expand_unop): Try implementing negation using subtraction
1015         from zero.
1016
1017 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1018
1019         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
1020         SAR register.
1021
1022 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
1023
1024         PR target/10982
1025         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
1026         (ne_zeroextractsi_shifted): New pattern.
1027         (ite_ne_zeroextractsi): New pattern.
1028         (ite_ne_zeroextractsi_shifted): New pattern.
1029
1030 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1031
1032         * c-gimplify.c (c_genericize):
1033         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
1034         * c-parse.in <expr_no_commas>: Likewise.
1035         <if_prefix>: Likewise.
1036         <select_or_iter_stmt>: Likewise.
1037         * expr.c (expand_var, expand_expr_real_1): Likewise.
1038         * expr.h (expand_expr): Make it a static inline function.
1039         Move prototype for expand_expr_real up before this.
1040         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
1041         Likewise.
1042         * gimplify.c (gimple_boolify, gimplify_addr_expr,
1043         gimplify_asm_expr, gimplify_expr): Likewise.
1044         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
1045         dump_function_to_file): Likewise.
1046         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
1047         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
1048         * tree-into-ssa.c (dump_tree_ssa): Likewise.
1049         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
1050         Likewise.
1051         * tree-optimize.c (execute_one_pass): Likewise.
1052         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
1053         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
1054
1055         * objc/objc-act.c (objc_build_try_enter_fragment,
1056         objc_build_try_epilogue, objc_build_catch_stmt,
1057         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
1058         with lang_hooks.foo ().
1059
1060 2004-05-15  Roger Sayle  <roger@eyesopen.com>
1061
1062         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
1063         that simplify_builtin doesn't destructively modify its argument.
1064
1065 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1066
1067         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
1068         implementations for ARM and Thumb.
1069         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
1070
1071 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
1072
1073         * prefix.c (update_path): Replace PREFIX with KEY only
1074         when it matches a full directory name in PATH.
1075
1076 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1077
1078         * arm.h (TARGET_APCS_32): Delete.
1079         (TARGET_MMU_TRAPS): Delete.
1080         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
1081         define __APCS_26__.
1082         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
1083         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
1084         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
1085         (prog_mode_type): Delete.
1086         (PROMOTE_MODE): Always promote unsigned for HImode.
1087         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
1088         (MASK_RETURN_ADDR): Simplify.
1089         * arm.c (arm_prgmode): Delete.
1090         (arm_override_options, arm_gen_rotated_half_load): Simplify.
1091         (print_multi_reg, output_return_instruction): Simplify.
1092         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
1093         (arm_return_addr): Simplify.
1094         * arm.md (prog_mode): Delete.
1095         (conds): Simplify.
1096         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
1097         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
1098         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
1099         (loadhi_shiftpredec): Delete.
1100         (peephole for post-increment on HImode load): Delete.
1101         * arm/crtn.asm: (FUNC_END): Simplify.
1102         * arm/lib1funcs.asm: Remove APCS-26 return macros.
1103         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
1104         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
1105         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
1106         MULTILIB_DEFAULTS as required.
1107         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
1108         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
1109         variables as required.
1110         * doc/invoke.texi (ARM Options): Remove obsolete flags.
1111
1112 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
1113
1114         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
1115         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
1116         count to 8 to handle n_reg > 2.
1117
1118 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1119
1120         * doc/extend.texi: Update WG14 URL.
1121
1122 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1123
1124         * basic-block.h (life_analysis, delete_noop_moves):
1125         Update prototypes.
1126         * bt-load.c (branch_target_load_optimize): Don't take the
1127         insns stream as an argument.  Update the life_analysis calls.
1128         * combine.c (combine_instructions): Update delete_noop_moves
1129         calls.
1130         * flow.c (notice_stack_pointer_modification): Don't take the
1131         insns stream as an argument.  Work on the flow graph.
1132         (life_analysis): Likewise.
1133         (delete_noop_moves): Likewise.
1134         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
1135         (rest_of_handle_life): Update life_analysis call.
1136         (rest_of_compilation): Likewise, and also update
1137         branch_target_load_optimize call.
1138         * ra.c (reg_alloc): Update life_analysis call.
1139         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
1140         the insns stream as an argument.
1141         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
1142         call.
1143         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
1144         prototypes.
1145         * value-profile.c (branch_prob): Update life_analysis call.
1146         * web.c (web_main): Work on the CFG, not on the insns stream.
1147
1148         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
1149         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
1150         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1151
1152 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1153
1154         PR c/15444
1155         * c-format.c (avoid_dollar_number): New function.
1156         (check_format_info_main): Call avoid_dollar_number when operand
1157         numbers might occur but has_operand_number == 0.
1158
1159 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
1160
1161         * arm.md (all peephole2 patterns): Use predicates that validate
1162         register classes as appropriate.
1163
1164 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1165
1166         PR opt/14472
1167         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
1168         ignore type conversions that do not inhibit tail calling.
1169         (find_tail_calls): Likewise.
1170
1171 2004-05-14  Jeff Law  <law@redhat.com>
1172
1173         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
1174         bother marking bypassed virtuals for out-of-ssa.  Instead merge
1175         bypassed virtuals into vars_to_rename just before into-ssa pass.
1176
1177         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
1178         so that it picks up more opportunities to eliminate ABS expressions
1179         or turn them into negations.
1180
1181 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1182
1183         * passes.c (rest_of_handle_null_pointer): Remove.
1184         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
1185         (rest_of_compilation): Likewise.
1186         * rtl.h (delete_null_pointer_checks): Remove prototype.
1187         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
1188         Remove declarations.
1189         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
1190         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
1191         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
1192         expr_reaches_here_p, computing_insn, def_reaches_here_p,
1193         can_disregard_other_sets, handle_avail_expr, classic_gcse,
1194         one_classic_gcse_pass, invalidate_nonnull_info,
1195         delete_null_pointer_checks_1, delete_null_pointer_checks,
1196         expr_reached_here_p_work): Remove.
1197         (gcse_main): Do not perform classic GCSE when optimizing for size.
1198         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
1199         are never used.
1200
1201 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
1202
1203         PR optimization/14466
1204         * tree-complex.c (make_temp): Remove.
1205         (gimplify_val): Replace make_temp with make_rename_temp
1206         and add NULL as the second argument.
1207         (expand_complex_div_wide): Likewise.
1208         * tree-dfa.c (make_rename_temp): New function.
1209         * tree-flow.h (make_rename_temp): Declare.
1210         * tree-sra.c (make_temp): Remove.
1211         (lookup_scalar): Replace make_temp with make_rename_temp.
1212         (create_scalar_copies): Likewise.
1213         * tree-ssa-phiopt.c (conditional_replacement): When we
1214         get non gimple create a temporary variable to hold the
1215         casted expression.
1216
1217 2004-05-14  Paul Brook  <paul@codesourcery.com>
1218
1219         * stor-layout.c (update_alignment_for_field): Use
1220         targetm.align_anon_bitfield.
1221         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
1222         (TARGET_INITIALIZER): Use it.
1223         * target.h (struct gcc_target): Add align_anon_bitfield.
1224         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
1225         (TARGET_ALIGN_ANON_BITFIELD): Define.
1226         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
1227
1228 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
1229
1230         * tree.def (documentation): Remove mention of class 'b'.
1231         (BLOCK): Now in class 'x'.
1232         * c-common.c (verify_tree): Remove case 'b'.
1233         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
1234         * calls.c (calls_function_1): Control cannot get past the switch
1235         when exp is a BLOCK.
1236         * print-tree.c (print_node): Move code for class 'b' to the class
1237         'c'/'x' switch, as case BLOCK.
1238         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
1239         (unsafe_for_reeval, substitute_placeholder_in_expr)
1240         (stabilize_reference_1): Remove case 'b'.
1241         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
1242         of something being 'b' to tests for TREE_CODE of something being
1243         BLOCK.
1244         * tree-ssa-operands.c (get_expr_operands): Likewise.
1245
1246 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1247
1248         * tree-gimple.c: Rename from tree-simple.c.
1249         * tree-gimple.h: Rename from tree-simple.h.
1250         * c-gimplify.c: Rename from c-simplify.c
1251         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
1252         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
1253         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
1254         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
1255         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
1256         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
1257         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
1258         Update.
1259
1260 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
1261
1262         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
1263
1264 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1265
1266         * tree-ssa.c (delete_tree_ssa): XFREE
1267         bitmaps allocated with BITMAP_XMALLOC.
1268
1269         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
1270         idfs_cache at the end of the function.
1271
1272         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
1273         at the end of the function.
1274
1275         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
1276         el at the end of the function.
1277
1278         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
1279         bitmaps allocated with BITMAP_XMALLOC.
1280
1281         * loop-unswitch.c (unswitch_single_loop): Free bbs at
1282         the end.
1283
1284         * final.c (shorten_branches): Free uid_shuid before
1285         reallocating it.
1286
1287         * bb-reoder.c (connect_traces): Free cold_traces at the end.
1288
1289 2004-05-13  Jeff Law  <law@redhat.com>
1290
1291         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
1292         variables.  Simplify slightly by using USE_OP/DEF_OP instead
1293         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
1294
1295         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
1296         rather than iterating through the blocks testing each bit in
1297         livein to initialize the worklist.
1298         (mark_def_sites): Remove useless checks of KILLS for virtual
1299         operands.
1300
1301         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
1302         new parameters for the statement and variable worklist as well
1303         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
1304         worklist recording interesting variables in the variable worklist
1305         and bitmap.  Handle casts between integral and boolean types.
1306         (substitute_single_use_vars): Accept new parameters for the statement
1307         and variable worklist.  When a substitution is made add a new
1308         entry to the statement worklist.  Handle casts between integral
1309         and boolean types.
1310         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
1311         worklists to children.  Iterate until the statement worklist
1312         is empty.
1313
1314 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1315
1316         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
1317         the end of the block.
1318
1319         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
1320         with BITMAP_XMALLOC.
1321
1322         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
1323         with BITMAP_XMALLOC.
1324
1325         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
1326         Free nonzero_vars at the end of the function.
1327
1328         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
1329         need to generate code instead of a NOP_EXPR.
1330
1331 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
1332
1333         * gcc.c (default_compilers): Fill out initializers for new Fortran
1334         entries.
1335
1336 2004-05-13  Paul Brook  <paul@codesourcery.com>
1337
1338         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
1339
1340 2004-05-13  Paul Brook  <paul@codesourcery.com>
1341
1342         * config/arm/arm.c (arm_default_short_enums): New function.
1343         (TARGET_DEFAULT_SHORT_ENUMS): Define.
1344
1345 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1346
1347         Merge from tree-ssa-20020619-branch.
1348
1349         * Makefile.in (reload1.o-warn): Add.
1350         (tree-alias-ander.o-warn): Add.
1351         (GMPLIBS): Define.
1352         (GMPINC): Define.
1353         (BANSHEELIB): Define.
1354         (BANSHEEINC): Define.
1355         (TREE_DUMP_H): Define.
1356         (TREE_SIMPLE_H): Define.
1357         (TREE_FLOW_H): Define.
1358         (LIBDEPS): Add BANSHEELIB.
1359         (INCLUDES): Add BANSHEEINC and GMPINC.
1360         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
1361         c-mudflap.o and c-pretty-print.o.
1362         (C_OBJS): Remove c-pretty-print.o.
1363         (OBJS-common): Remove sibcall.o.
1364         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
1365         tree-ssa.o, tree-optimize.o, tree-simple.o,
1366         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
1367         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
1368         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
1369         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1370         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
1371         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
1372         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
1373         tree-tailcall.o, gimple-low.o, tree-iterator.o,
1374         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
1375         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
1376         tree-profile.o.
1377         (OBJC-archive): Add tree-nomudflap.o.
1378         (cc1): Add dependency on @TREEBROWSER@.
1379         (c-decl.o): Add dependency on TREE_DUMP_H.
1380         (c-dump.o): Likewise.
1381         (c-common.o): Add dependency on tree-iterator.h
1382         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
1383         (gtype-desc.o): Add dependency on TREE_FLOW_H.
1384         (tree.o): Add dependency on tree-iterator.h,
1385         BASIC_BLOCK_H and TREE_FLOW_H.
1386         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
1387         (langhooks.o): Add dependency on TREE_SIMPLE_H.
1388         (tree-alias-type.o, tree-alias-ander.o,
1389         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
1390         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
1391         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
1392         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
1393         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
1394         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
1395         tree-nested.o, tree-iterator.o, tree-dfa.o,
1396         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
1397         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
1398         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
1399         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
1400         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
1401         tree-sra.o, tree-complex.o, tree-profile.o,
1402         rtl-profile.o): New rules.
1403         (function.o): Add dependency on basic-block.h
1404         (expr.o): Add dependency on tree-iterator.h.
1405         (sibcall.o): Remove.
1406         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
1407         (cfg.o): Add dependency on TIMEVAR_H.
1408         (cfghooks.o): Add dependency on TREE_FLOW_H.
1409         (reg-stack.o): Add dependency on basic-block.h.
1410         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
1411         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
1412         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
1413         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
1414         tree-alias-type.h, tree-alias-common.h,
1415         tree-alias-type.c, tree-alias-common.c,
1416         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
1417         rtl-profile.c and tree-nested.c.
1418         (gt-tree-alias-common.h, gt-tree-mudflap.h,
1419         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
1420         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
1421         gt-tree-cfg.h, gt-tree-nested.h): New rules.
1422         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
1423         * basic-block.h: Include predict.h
1424         (struct edge_def): Add GTY marker.
1425         Change field 'insns' to be a union of tree and rtx.
1426         (EDGE_TRUE_VALUE): Define.
1427         (EDGE_FALSE_VALUE): Define.
1428         (EDGE_EXECUTABLE): Define.
1429         (struct bb_ann_d): Forward declare.
1430         (struct basic_block_def): Add GTY marker.
1431         Remove fields head_tree and end_tree.
1432         Add fields stmt_list, rbi and tree_annotations.
1433         (struct reorder_block_def): Define.
1434         (basic_block_info): Add GTY marker.
1435         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
1436         variables instead of macros.
1437         (flow_call_edges_add): Remove declaration.
1438         (make_eh_edge): Remove declaration.
1439         (brief_dump_cfg, find_edge, tree_predicted_by_p,
1440         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
1441         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
1442         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
1443         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
1444         (try_redirect_by_replacing_jump): Modfiy return type to
1445         edge instead of bool.
1446         * bb-reorder.c (copy_bb): Call duplicate_block
1447         instead of cfg_layout_duplicate_bb.
1448         (copy_bb_p): Call can_duplicate_block_p instead of
1449         cfg_layout_can_duplicate_bb_p.
1450         * bitmap.c (bitmap_first_set_bit): Abort if word
1451         wasn't found.
1452         (bitmap_last_set_bit): Likewise.
1453         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
1454         (DEF_FUNCTION_TYPE_3): Add.
1455         * builtins.c (c_strlen): Make extern.
1456         (builtin_save_expr): New.
1457         (expand_builtin_nonlocal_goto): New.
1458         (expand_builtin_constant_p): Remove.
1459         (expand_builtin_mathfn): Call builtin_save_expr instead
1460         of save_expr.
1461         (expand_builtin_mathfn_2): Likewise.
1462         (expand_builtin_strcmp): Likewise.
1463         (expand_builtin_strncmp): Likewise.
1464         (expand_builtin_strcat): Likewise.
1465         (fold_builtin_cabs): Likewise.
1466         (expand_builtin_alloca): Don't trigger if -fmudflap is
1467         given.
1468         (build_string_literal): Set TREE_INVARIANT on new node.
1469         (expand_builtin_profile_fun): New.
1470         (round_trampoline_addr): New.
1471         (expand_builtin_init_trampoline): New.
1472         (expand_builtin_adjust_trampoline): New.
1473         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
1474         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
1475         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
1476         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
1477         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
1478         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
1479         Handle.
1480         (fold_builtin_expect): New.
1481         (fold_builtin_isascii): Don't return non-constant results
1482         in GIMPLE form.
1483         (fold_builtin_isdigit): Likewise.
1484         (fold_builtin_1): New.
1485         (fold_builtin): Call it.
1486         (build_function_call_expr): Update call to build a new
1487         CALL_EXPR.
1488         (purge_builtin_constant_p): Remove.
1489         (simplify_builtin, simplify_builtin_memcmp,
1490         simplify_builtin_strcmp, simplify_builtin_strncmp,
1491         simplify_builtin_strpbrk, simplify_builtin_strstr,
1492         simplify_builtin_strchr, simplify_builtin_strrchr,
1493         simplify_builtin_strcat, simplify_builtin_strncat,
1494         simplify_builtin_strspn, simplify_builtin_strcspn,
1495         simplify_builtin_next_arg, simplify_builtin_va_start,
1496         simplify_builtin_sprintf): New.
1497         * builtins.def (BUILT_IN_STACK_ALLOC,
1498         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
1499         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
1500         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
1501         BUILT_IN_PROFILE_FUNC_EXIT): Define.
1502         * c-common.c: Include tree-iterator.h and hashtab.h.
1503         (lang_statement_code_p): Declare.
1504         (lang_gimplify_stmt): Declare.
1505         (fix_string_type): Set TREE_INVARIANT for value.
1506         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
1507         (c_type_hash): New.
1508         (c_common_get_alias_set): Handle multiple type nodes
1509         referring to "the same" type, currently for C90 only.
1510         (c_add_case_label): Use create_artificial_label.
1511         (finish_label_address_expr): Don't set TREE_CONSTANT on
1512         result.
1513         (c_expand_expr): Don't handle STMT_EXPR.
1514         (handle_alias_attribute): Marke aliased variables to be
1515         TREE_STATIC.
1516         (handle_nonnull_attribute): Initialize arg_num.
1517         (check_function_nonnull): Likewise.
1518         (c_walk_subtrees): New.
1519         (c_estimate_num_insns_1): Don't handle
1520         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
1521         (c_decl_uninit_1): Remove.
1522         (c_decl_uninit): Remove.
1523         (c_warn_unused_result): New.
1524         * c-common.def (ASM_STMT): Change number of operands
1525         to 4.
1526         (FILE_STMT): Remove.
1527         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
1528         Remove.
1529         (lang_gimplify_stmt): Add.
1530         (expand_stmt): Remove.
1531         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
1532         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
1533         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
1534         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
1535         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
1536         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1537         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1538         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
1539         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
1540         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
1541         genrtl_compound_stmt, genrtl_asm_stmt,
1542         genrtl_cleanup_stmt, c_decl_uninit): Remove.
1543         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
1544         c_tree_chain_matters_p, c_warn_unused_result,
1545         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
1546         Declare.
1547         * c-convert.c (convert): Make convert work when
1548         converting to compatible types across translation unit.
1549         * c-decl.c: Include langhooks.h, tree-mudflap.h,
1550         tree-simple.h, diagnostic.h and tree-dump.h
1551         (merge_decls): Initialize oldtype to NULL.
1552         (finish_decl): Use DECL_HARD_REGISTER instead of
1553         DECL_C_HARD_REGISTER.
1554         (check_bitfield_type_and_width): Check for null
1555         lang_type_specific when check the precision of an enum.
1556         (grokdeclarator): Immediately layout an ARRAY_TYPE used
1557         in a pointer-to-array declarator.
1558         (finish_struct): Clear allocated struct lang_type.
1559         (finish_enum): Set enum_min and enum_max.  Set
1560         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
1561         not to the enumerators.
1562         (set_decl_nonlocal): New.
1563         (store_parm_decls): Use it via walk_tree.
1564         (c_finalize): New.
1565         (finish_function): When !targetm.have_ctors_dtors,
1566         record static constructors and destructors here...
1567         (c_expand_body_1): ... not here.
1568         (c_expand_decl): Rename from c_expand_decl_stmt.
1569         Handle all C-specific expansion semantics.
1570         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
1571         STMT_LINENO.
1572         * c-format.c (handle_format_arg_attribute): Initialize
1573         format_num.
1574         * c-lang.c: Include tree-inline.h
1575         (LANG_HOOKS_EXPAND_DECL,
1576         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1577         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
1578         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
1579         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
1580         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
1581         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
1582         (c_types_compatible_p): New.
1583         * c-mudflap.c: New file.
1584         * c-objc-common.c: Include tree-mudflap.h
1585         (start_cdtor, finish_cdtor): Collapse
1586         together into
1587         (build_cdtor): ...here.  Update to construct a complete tree
1588         for the function.  No need to call push_scope, pop_scope, or
1589         clear_last_expr, or set current_function_cannot_inline.
1590         (c_missing_noreturn_ok_p): Change prototype to return
1591         bool.
1592         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
1593         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
1594         opts.c.
1595         (c_common_post_options): Don't ever use rtl inlining.
1596         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
1597         * c-pragma.c (handle_pragma_redefine_extname): Define
1598         always.
1599         (init_pragma): Activate #pragma redefine_extname for mudflap.
1600         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
1601         (pp_c_initializer): Accept any type CONSTRUCTOR.
1602         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
1603         COMPLEX_TYPE.
1604         (decl_name_str): New local function.
1605         (pp_c_direct_declarator): Call it.
1606         (pp_c_primary_expression): Call it.
1607         (pp_c_id_expression): Call it.
1608         (pp_c_statement): Call it.
1609         (print_c_tree): Create new pp object.
1610         * c-pretty-print.h (pp_c_tree_decl_identifier,
1611         print_c_tree): Declare.
1612         * c-semantics.c: Include langhooks.h
1613         (lang_expand_stmt, lang_expand_decl_stmt,
1614         find_reachable_label_1, find_reachable_label,
1615         expand_unreachable_if_stmt, expand_unreachable_stmt,
1616         genrtl_do_stmt_1): Remove.
1617         (begin_stmt_tree): Don't check for changed filename.
1618         Call annotate_with_locus.
1619         (finish_stmt_tree): Don't set line for end of function.
1620         (build_stmt): Don't check type nodes for
1621         side effects.
1622         (build_stmt): Set TREE_SIDE_EFFECTS.
1623         Set EXPR_LOCUS instead of STMT_LINENO.
1624         (lang_expand_stmt, lang_expand_decl_stmt,
1625         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1626         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1627         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
1628         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
1629         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
1630         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
1631         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
1632         find_reachable_label_1, expand_unreachable_if_stmt,
1633         expand_unreachable_stmt): Remove.
1634         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
1635         * c-simplify.c: New file.
1636         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
1637         (struct lang_type): Add fields enum_min and enum_max.
1638         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
1639         (c_expand_decl, c_missing_noreturn_ok_p,
1640         c_types_compatible_p): Declare.
1641         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
1642         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
1643         (default_function_array_conversion): Rely on build to
1644         set TREE_CONSTANT.
1645         (parser_build_binary_op, pointer_diff): Likewise.
1646         (build_unary_op, build_binary_op): Likewise.
1647         (build_array_ref):
1648         (build_external_ref): Set TREE_INVARIANT.
1649         (build_c_cast, pop_init_level): Likewise.
1650         (process_init_element): Use ASM_VOLATILE_P.
1651         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
1652         (c_finish_case): Call c_do_switch_warnings.
1653         * c.opt (fdump-): Remove.
1654         * calls.c (try_to_integrate): Remove.
1655         (prepare_call_address): Replace fndecl arg with a
1656         precomputed static chain value.
1657         (emit_call_1): New argument for full call expr.
1658         (flags_from_decl_or_type): Call special_function_p.
1659         (initialize_argument_information): Add argument
1660         may_tailcall.
1661         (purge_reg_equiv_notes): New.
1662         (expand_call): Do not try to expand calls inline.
1663         (fixup_tail_calls): New.
1664         * cfg.c: Include timevar.h and ggc.h.
1665         (bb_pool, edge_pool): Remove.
1666         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
1667         (entry_exit_blocks): Remove.
1668         (rbi_pool): Declare.
1669         (init_flow): Do not create pools.
1670         Allocate entry/exit block.
1671         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
1672         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
1673         (unlink_block): Clear b->prev_bb and b->next_bb.
1674         (compact_blocks): Clear all slots of BASIC_BLOCK array.
1675         (dump_flow_info): Work on trees too.
1676         (dump_cfg_bb_info): New.
1677         (brief_dump_cfg): New.
1678         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
1679         (find_edge): New.
1680         * cfgbuild.c (rtl_make_eh_edge): Rename from
1681         make_eh_edge.  Update all users.
1682         (find_basic_blocks): Don't call VARRAY_FREE on
1683         basic_block_info.
1684         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
1685         and newpos2.
1686         (delete_unreachable_blocks): Return changed status.
1687         (merge_seq_blocks): New.
1688         * cfghooks.c: Include tree-flow.h
1689         (tree_register_cfg_hooks, ir_type): New.
1690         (redirect_edge_and_branch): Change return type to edge.
1691         (predict_edge, predicted_by_p, can_duplicate_block_p,
1692         duplicate_block, block_ends_with_call_p,
1693         block_ends_with_condjump_p, flow_call_edges_add): New.
1694         * cfghooks.h (redirect_edge_and_branch): Change return
1695         type to edge.
1696         (predict_edge, predicted_by_p, can_duplicate_block_p,
1697         duplicate_block, block_ends_with_call_p,
1698         block_ends_with_condjump_p, flow_call_edges_add): Declare.
1699         (redirect_edge_and_branch): Change return type to edge.
1700         (struct cfg_hooks): Add fields block_ends_with_call_p,
1701         block_ends_with_condjump_p, flow_call_edges_add,
1702         predict_edge, predicted_by_p, can_duplicate_block_p and
1703         duplicate_block.
1704         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
1705         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
1706         (fixup_reorder_chain): Use initialize_bb_rbi.
1707         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
1708         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
1709         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
1710         (insn_locators_initialize): Use new info about blocks.
1711         * cfglayout.h (typedef struct reorder_block_def): Moved to
1712         basic_block.h.
1713         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
1714         removed.
1715         * cfgloop.c: Include tree.h and tree-flow.h.
1716         * cfgloop.h (create_loop_notes): Declare.
1717         * cfgloopmanip.c (create_loop_notes): New.
1718         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
1719         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
1720         and duplicate_block fields.
1721         (create_basic_block_structure): Don't look at
1722         RTX_INTEGRATED_P.
1723         (rtl_block_ends_with_call_p): New.
1724         (rtl_block_ends_with_condjump_p): New.
1725         (need_fake_edge_p): Moved from cfganal.c.
1726         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
1727         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
1728         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
1729         (cfg_layout_rtl_cfg_hooks): Ditto.
1730         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
1731         functions to be reachable.
1732         * cgraphunit.c (decide_is_function_needed):
1733         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
1734         inline functions don't need to be output.
1735         (cgraph_assemble_pending_functions): Don't do anything
1736         special for nested functions.
1737         (cgraph_mark_functions_to_output): Likewise.
1738         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
1739         (cgraph_analyze_function): Use estimate_num_insns.
1740         (cgraph_mark_functions_to_output): Likewise.
1741         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
1742         (cgraph_expand_function): Allow functions to not be
1743         emitted.
1744         (cgraph_remove_unreachable_nodes):
1745         (cgraph_recursive_inlining_p): Simplify.
1746         (lookup_recursive_calls,
1747         cgraph_decide_recursive_inlining): New.
1748         (cgraph_decide_inlining_*): Update calls of
1749         cgraph_mark_inline.
1750         * combine.c (get_pos_from_mask): Always set *plen.
1751         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
1752         ftree-based-profiling, ftree-ccp, ftree-ch,
1753         ftree-combine-temps, ftree-copyrename, ftree-dce,
1754         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
1755         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
1756         ftree-lrs): Add.
1757         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
1758         Undefine.
1759         * configure.ac: Add --enable-tree-browser option.
1760         Add --with-libbanshee option.
1761         Add GMPLIBS and GMPINC.
1762         * configure: Regenerate.
1763         * coverage.c (tree_ctr_tables): New.
1764         (coverage_counter_alloc): Use it.
1765         (build_ctr_info_value): Ditto.
1766         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
1767         (tree_coverage_counter_ref): New.
1768         * coverage.h (coverage_counter_ref): Remove declaration.
1769         (rtl_coverage_counter_ref): Declare.
1770         (tree_coverage_counter_ref): Declare.
1771         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
1772         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
1773         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
1774         (struct cse_basic_block_data): Rename enum values to not
1775         conflict with profile.h; update all uses.
1776         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
1777         in comments.
1778         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
1779         * diagnostic.h (debug_output_buffer, dump_generic_node,
1780         print_generic_stmt, print_generic_stmt_indented,
1781         print_generic_expr, print_generic_decl,
1782         debug_generic_expr, debug_generic_stmt, debug_c_tree):
1783         Declare.
1784         * dominance.c: Cache immediate dominators.
1785         * domwalk.c: New file.
1786         * domwalk.h: New file.
1787         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
1788         (gen_subprogram_die): Generate a DIE for a named
1789         return value.
1790         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
1791         (add_location_or_const_value_attribute): Likewise.
1792         (add_bound_info): Likewise.
1793         (gen_decl_die): Likewise.
1794         * emit-rtl.c (maybe_set_first_label_num): New.
1795         (copy_most_rtx): Don't copy the integrated flag.
1796         Copy the new return_val flag.
1797         * et-forest.c (MAX_NODES): Define.
1798         (record_path_before_1): Abort if len is greater than
1799         MAX_NODES.
1800         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
1801         gen_eh_region_catch, gen_eh_region_allowed,
1802         gen_eh_region_must_not_throw, get_eh_region_number,
1803         get_eh_region_may_contain_throw, get_eh_region_tree_label,
1804         set_eh_region_tree_label, expand_resx_expr): New.
1805         (expand_eh_region_start, expand_start_catch): Use them.
1806         (expand_end_catch): Tidy.
1807         (note_eh_region_may_contain_throw): Take region argument.
1808         (note_current_region_may_contain_throw): New.
1809         (get_exception_filter): Export.
1810         (collect_eh_region_array): Export.
1811         (remove_unreachable_regions): Check ERT_TRY based on reachability
1812         of catches, not reachability of continue_label.  Never remove
1813         ERT_MUST_NOT_THROW regions.
1814         (collect_rtl_labels_from_trees): New.
1815         (convert_from_eh_region_ranges): Use it.
1816         (connect_post_landing_pads): Handle dying cleanups.
1817         (struct reachable_info): Add callback data.
1818         (add_reachable_handler): Invoke the callback.
1819         (foreach_reachable_handler): New.
1820         (reachable_handlers): Use it.
1821         (arh_to_landing_pad, arh_to_label): New.
1822         (can_throw_internal_1): Split out from can_throw_internal.
1823         (can_throw_external_1): Similarly.
1824         * except.h: Update.
1825         * explow.c (emit_stack_save): Remove savearea mode check.
1826         (update_nonlocal_goto_save_area): New.
1827         (allocate_dynamic_stack_space): Use it.
1828         (probe_stack_range): Never emit loop notes.
1829         * expmed.c (extract_fixed_bit_field): Always propagate the
1830         target for the shift if it is a REG.
1831         * expr.c: Include tree-iterator.h
1832         (is_zeros_p): Remove.
1833         (categorize_ctor_elements_1, categorize_ctor_elements): New.
1834         (count_type_elements): New.
1835         (mostly_zeros_p): Use them.
1836         (expr_wfl_stack): Remove.
1837         (convert_move): Do nothing if to and from are the same.
1838         (emit_block_move_via_loop): Don't emit LOOP notes.
1839         (emit_move_insn): Don't handle CONSTANT_P_RTX.
1840         (emit_move_insn_1): Don't generate inline warnings.
1841         (expand_vars, expand_var): Split from ...
1842         (expand_expr_1): ... here.
1843         (expand_expr_real, expand_expr_real_1):  Use new macros
1844         EXPR_LOCATION and EXPR_HAS_LOCATION.
1845         * expr.h (simplify_builtin_fputs,
1846         simplify_builtin_strcpy, simplify_builtin_strncpy,
1847         expand_var, fixup_tail_calls,
1848         update_nonlocal_goto_save_area): Declare.
1849         (lookup_static_chain, expand_inline_function,
1850         mark_seen_cases): Remove.
1851         (prepare_call_address): Change type of 2nd argument to
1852         rtx.
1853         * final.c (profile_function): Update static chain test.
1854         (final): Don't look at RTX_INTEGRATED_P.
1855         * flags.h (flag_mudflap, flag_mudflap_threads,
1856         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
1857         flag_tree_dce, flag_tree_combine_temps,
1858         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
1859         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
1860         flag_tree_points_to): Declare.
1861         (enum pta_type): Declare.
1862         * flow.c (lang_missing_noreturn_ok_p): Remove.
1863         (check_function_return_warnings): Remove.
1864         (update_life_info): Update comments.
1865         (free_basic_block_vars): Don't call VARRAY_FREE for
1866         basic_block_info.
1867         (regno_uninitialized): Remove.
1868         * fold-const.c (int_const_binop): Make extern.
1869         (non_lvalue): Rely on build to set TREE_CONSTANT.
1870         (operand_equal_p): Replace only_const argument with
1871         flags.  Allow pure functions if OEP_PURE_SAME.
1872         (fold): Use OEP_ONLY_CONST.
1873         (invert_truthvalue) <NOP_EXPR> Break if argument is of
1874         boolean type.
1875         (fold_relational_hi_lo,
1876         nondestructive_fold_binary_to_constant,
1877         nondestructive_fold_unary_to_constant,
1878         fold_read_from_constant_string): New.
1879         * function.c (struct function): Remove calls_constant_p.
1880         (current_function_calls_constant_p): Remove.
1881         (inline_function_decl): Remove.
1882         (put_var_into_stack): Don't use it.
1883         (fix_lexical_addr): Likewise.
1884         (inline_function_decl): Remove extern declaration.
1885         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
1886         (trampolines_created): Move to varasm.c.
1887         (free_after_compilation): Update for removed fields.
1888         (allocate_struct_function): Likewise.
1889         (delete_handlers, lookup_static_chain): Remove.
1890         (fix_lexical_addr): Don't consider non-local variable refs.
1891         (trampoline_address): Remove.
1892         (round_trampoline_addr): Move to builtins.c.
1893         (adjust_trampoline_addr): Remove.
1894         (expand_function_start): Update for changes to static chain
1895         and nonlocal goto handling.
1896         (initial_trampoline): Move to varasm.c.
1897         (expand_function_end): Don't build trampolines or kill
1898         unreferenced nonlocal goto labels.
1899         (free_after_compilation): Don't set it.
1900         (expand_function_end): Likewise.
1901         (setjmp_vars_warning): Rename from
1902         uninitialized_vars_warning, remove uninitialized vars warning.
1903         (uninitialized_vars_warning): Remove old comment
1904         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
1905         and do not call the langhook.
1906         (expand_function_start, expand_function_end): Don't do
1907         function instrumentation here.
1908         (clear_block_marks): Rename from reorder_blocks_0, export.
1909         (blocks_nreverse): Export.
1910         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
1911         of rtl.
1912         (reset_block_changes, record_block_change, finalize_block_changes,
1913         check_block_change, free_block_changes): New functions.
1914         (assign_parms): Setting of current_function_stdarg
1915         moved ...
1916         (allocate_struct_function): ... here.
1917         * function.h (struct function): Remove x_nonlocal_labels,
1918         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
1919         x_context_display, x_trampoline_list, needs_context.
1920         Add static_chain_decl, nonlocal_goto_save_area.
1921         (struct function): Remove x_clobber_return_insn.
1922         Add tail_call_emit field, last_label_uid,
1923         unexpanded_var_list, dont_emit_block_notes,
1924         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
1925         (clear_block_marks): Declare.
1926         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
1927         (mfwrap_spec, mflib_spec): Declare.
1928         (cpp_unique_options, cc1_options): Ditto.
1929         (default_compilers): Add .F and .f90.
1930         (static_specs): Add mfwrap and mflib.
1931         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
1932         CONSTANT_RTX_P.
1933         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
1934         Update to match insns field in struct edge_def.
1935         * gdbinit.in (pgs, pge): Define.
1936         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
1937         instead of the integrated flag.
1938         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
1939         * gengtype-yacc.y (bitfieldlen): Add empty action.
1940         (struct_fields): Accept unnamed bitfields.
1941         (bitfieldlen): Split from ...
1942         (bitfieldopt): ... here.
1943         * gengtype.c (ifiles): Add tree-alias-type.h and
1944         tree-flow.h.
1945         * genrecog.c (validate_pattern): Do not handle
1946         CONSTANT_P_RTX.
1947         * gimple-low.c: New file.
1948         * gimplify.c: New file.
1949         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
1950         (restore_line_notes): Do not set RTX_INTEGRATED_P.
1951         * ifcvt.c (dead_or_predicable): Initialize local variable
1952         'earliest'.
1953         * input.h (expr_wfl_stack): Remove.
1954         * integrate.c (INTEGRATE_THRESHOLD): Remove.
1955         (setup_initial_hard_reg_value_integration): Likewise.
1956         (initialize_for_inline): Likewise.
1957         (note_modified_parmregs): Likewise.
1958         (integrate_parm_decls): Likewise.
1959         (process_reg_param): Likewise.
1960         (save_parm_insns): Likewise.
1961         (copy_insn_list): Likewise.
1962         (copy_insn_notes): Likewise.
1963         (compare_blocks): Likewise.
1964         (find_block): Likewise.
1965         (inlining): Likewise.
1966         (function_cannot_inline_p): Likewise.
1967         (parmdecl_map): Likewise.
1968         (in_nonparam_insns): Likewise.
1969         (save_for_inline): Likewise.
1970         (FIXED_BASE_PLUS): Likewise.
1971         (expand_inline_function): Likewise.
1972         (copy_rtx_and_substitute): Don't look at map->integrating,
1973         map->inline_target, and inlining, since we are never copying
1974         for integrating.
1975         Don't abort on RTX_INTEGRATED_P.
1976         (old_fun): Remove.
1977         (output_inline_function): Remove.
1978         * integrate.h (struct inline_map): Remove fields integrating,
1979         block_map, leaf_reg_map, inline_target, and local_return_label.
1980         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
1981         copy_loop_headers, never_reached_warning): Removed.
1982         (any_uncondjump_p): Reject nonlocal goto.
1983         * langhooks-def.h (lhd_types_compatible_p,
1984         lhd_expand_decl, lhd_gimplify_expr): Declare.
1985         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
1986         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1987         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
1988         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1989         LANG_HOOKS_GIMPLIFY_EXPR,
1990         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
1991         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
1992         LANG_HOOKS_GIMPLIFY_EXPR,
1993         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
1994         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
1995         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
1996         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
1997         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
1998         LANG_HOOKS_DECL_UNINIT,
1999         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
2000         * langhooks.c: Include tree-simple.h.
2001         (lhd_expand_decl): New.
2002         (lhd_types_compatible_p): New.
2003         (lhd_decl_uninit): Remove.
2004         (lhd_gimplify_expr): New.
2005         * langhooks.h (struct lang_hooks_for_rtl_expansion):
2006         Remove.
2007         (struct lang_hooks_for_functions): Add field
2008         missing_noreturn_ok_p.
2009         (struct lang_hooks): Add field expand_decl,
2010         types_compatible_p, gimplify_expr and
2011         gimple_before_inlining.
2012         Remove fields decl_uninit and rtl_expand
2013         * opts.c (decode_options): Set flag_tree_ccp,
2014         flag_tree_dce, flag_tree_dom, flag_tree_dse,
2015         flag_tree_pre, flag_tree_ter,
2016         flag_tree_live_range_split, flag_tree_sra,
2017         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
2018         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
2019         OPT_fmudflapth, OPT_fmudflapir,
2020         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
2021         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
2022         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
2023         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
2024         OPT_ftree_points_to_ and OPT_ftree_pre.
2025         * output.h (regno_uninitialized, find_basic_blocks,
2026         cleanup_cfg, delete_unreachable_blocks,
2027         check_function_return_warnings): Remove.
2028         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
2029         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
2030         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
2031         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
2032         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
2033         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
2034         Define.
2035         * passes.c (rest_of_decl_compilation):
2036         (rest_of_handle_sibling_calls): Remove.
2037         (rest_of_handle_inlining): Remove.
2038         (rest_of_handle_gcse): Do not run
2039         purge_builtin_constant_p.
2040         (rest_of_compilation): Update.
2041         Do not call copy_loop_headers.
2042         Do rtl-based profiling only when
2043         !flag_tree_based_profiling.  Register rtl-based profiling
2044         hooks.
2045         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
2046         (predicted_by_p): Rename to ...
2047         (rtl_predicted_by_p): .. this one; make global
2048         (tree_predicted_by_p): New.
2049         (dump_prediction): Add FILE argument.
2050         (predict_edge): Rename to ...
2051         (rtl_predict_edge): .. this one.
2052         (tree_predict_edge): New.
2053         (combine_predictions_for_insn): Update calls of predict_edge.
2054         (predict_loops): Break out from ...
2055         (estimate_probability): ... here; update comments; move updating
2056         of unknown probabilities from ...
2057         (estimate_bb_frequencies): ... here.
2058         (combine_predictions_for_bb): New.
2059         (tree_predict_by_opcode): New.
2060         (tree_estimate_probability): New.
2061         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
2062         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
2063         * predict.h: Add include guard.
2064         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
2065         * pretty-print.c (pp_write_text_to_stream): Make extern.
2066         * pretty-print.h (pp_write_text_to_stream): Declare.
2067         * print-rtl.c (print_rtx): Don't print the integrated flag.
2068         Print the return_val flag.
2069         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
2070         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
2071         Remove support for EXPR_WITH_FILE_LOCATION nodes.
2072         (print_node): Print TREE_INVARIANT and TREE_VISITED.
2073         * profile.c: Include cfghooks.h, tree-flow.h.
2074         (profile_hooks): New.
2075         (profile_dump_file): New.
2076         (instrument_edges): Use hooks instead of RTL-specific code.
2077         (instrument_values): Ditto.
2078         (get_exec_counts): Ditto.
2079         (compute_branch_probabilities): Ditto.
2080         (compute_value_histograms): Ditto.
2081         (branch_prob): Ditto.
2082         (find_spanning_tree): Ditto.
2083         (end_branch_prob): Ditto.
2084         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
2085         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
2086         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
2087         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
2088         (tree_register_profile_hooks): New.
2089         (rtl_register_profile_hooks): New.
2090         * ra-rewrite.c (rewrite_program): Clear variable info.
2091         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
2092         * regs.h: Add include guards.
2093         * reload.c (decompose): Clear val using memset.
2094         * rtl.def (CONSTANT_P_RTX): Remove.
2095         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
2096         (copy_loop_headers): Remove.
2097         (struct rtx_def): Replace the integrated flag with the
2098         return_val flag.
2099         (maybe_set_first_label_num): Declare.
2100         (init_branch_prob): Move declaration to value-prof.h.
2101         (end_branch_prob): Ditto.
2102         (branch_prob): Ditto.
2103         (never_reached_warning): Don't declare it.
2104         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
2105         (hoist_insn_to_edge): Update to match field insns in
2106         struct edge_def.
2107         * sbitmap.c (sbitmap_realloc): New.
2108         * sbitmap.h (sbitmap_realloc): Declare.
2109         * sibcall.c: Remove file.
2110         * simplify-rtx.c (simplify_rtx): Do not handle
2111         CONSTANT_P_RTX.
2112         * stmt.c (parse_output_constraint): Don't warn for read-write
2113         memory operand.
2114         (tail_recursion_args): Use types_compatible_p langhook.
2115         (force_label_rtx): Don't look at inline_function_decl.
2116         (label_rtx): Set LABEL_PRESERVE_P appropriately.
2117         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
2118         (declare_nonlocal_label): Remove.
2119         (expand_goto): Don't handle nonlocal gotos.
2120         (expand_nl_handler_label): Remove.
2121         (expand_nl_goto_receivers): Remove.
2122         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
2123         update_nonlocal_goto_save_area.
2124         (expand_expr_stmt_value): Check TREE_NO_WARNING.
2125         (warn_if_unused_value): Likewise.
2126         (expand_start_loop, expand_loop_continue_here,
2127         expand_end_loop): Don't create loop notes.
2128         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
2129         mark_seen_cases, check_for_full_enumeration_handling): Remove.
2130         (expand_end_case_type): Don't do warn_switch handling.
2131         (pushcase, pushcase_range) Update add_case_node calls.
2132         (add_case_node): Add dont_expand_label argument.
2133         (same_case_target_p): Don't search rtl.
2134         (expand_start_bindings_and_block, expand_end_bindings):
2135         Don't emit block notes when dont_emit_block_notes.
2136         (using_eh_for_cleanups_p): Export.
2137         (expand_return): Allow any typed rhs.
2138         (expand_stack_alloc): New.
2139         (expand_stack_save, expand_stack_restore): New.
2140         (containing_blocks_have_cleanups_or_stack_level): New
2141         function.
2142         (asm_op_is_mem_input): New fn.
2143         (expand_asm_expr): New fn.
2144         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
2145         nodes.
2146         * stor-layout.c (layout_type): Just return if type is
2147         error_mark_node.
2148         (update_alignment_for_field): Export.
2149         (variable_size): We don't care about global_bindings_p if
2150         the frontend doesn't want a list of the expressions.
2151         * system.h: Poison INTEGRATE_THRESHOLD.
2152         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
2153         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
2154         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
2155         TV_TREE_SSA_OTHER, TV_TREE_OPS,
2156         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
2157         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
2158         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
2159         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
2160         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
2161         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
2162         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
2163         TV_CONTROL_DEPENDENCES): Define.
2164         * toplev.c: Include tree-alias-common.h
2165         (current_file_decl, flag_mudflap, flag_mudflap_threads,
2166         flag_mudflap_ignore_reads, flag_tree_based_profiling,
2167         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
2168         flag_tree_dce, flag_tree_ch, flag_tree_sra,
2169         flag_tree_combine_temps, flag_tree_ter,
2170         flag_tree_live_range_split, flag_tree_dom,
2171         flag_tree_copyrename, flag_tree_dse): Declare.
2172         (f_options): Add tree-based-profiling, tree-gvn,
2173         tree-pre, tree-ccp, tree-dce,
2174         tree-dominator-opts, tree-copyrename, tree-dse,
2175         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
2176         (wrapup_global_declarations): Don't output nested inlined functions.
2177         (general_init): Call init_tree_optimization_passes.
2178         (process_options): Sorry for -ftree-based-profiling plus
2179         -ftest-coverage or -fprofile-values.
2180         * toplev.h (init_tree_optimization_passes,
2181         flag_tree_based_profiling): Declare.
2182         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
2183         * tree-alias-ander.c: New file.
2184         * tree-alias-ander.h: New file.
2185         * tree-alias-common.c: New file.
2186         * tree-alias-common.h: New file.
2187         * tree-alias-type.c: New file.
2188         * tree-alias-type.h: New file.
2189         * tree-browser.c: New file.
2190         * tree-browser.def: New file.
2191         * tree-cfg.c: New file.
2192         * tree-complex.c: New file.
2193         * tree-dfa.c: New file.
2194         * tree-dump.c (dump_enable_all): New.
2195         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
2196         (dump_node): Remove const from field suffix and swtch.
2197         (dump_files): Add null entry, .generic, .nested, .vcg,
2198         .xml and a match-all entry.
2199         (extra_dump_files, extra_dump_files_in_use,
2200         extra_dump_files_alloced): Declare
2201         (dump_option_value_info): Add raw, details, stats,
2202         blocks, vops, lineno, uid and all.
2203         (dump_register): New.
2204         (get_dump_file_info): New.
2205         (dump_begin): Call it.
2206         Do nothing for TDI_none.
2207         (dump_begin): Include phase number in dump filename.
2208         (dump_enable_all): New.
2209         (dump_switch_p_1): Split out from dump_switch_p.
2210         (dump_switch_p): Handle extra_dump_files.
2211         Start our scan at TDI_none + 1.
2212         If -fdump-tree-all was given, call dump_enable_all.
2213         * tree-dump.h: Include splay-tree.h.
2214         (dump_function, dump_function_to_file, dump_register):
2215         Declare.
2216         * tree-eh.c: New file.
2217         * tree-flow-inline.h: New file.
2218         * tree-flow.h: New file.
2219         * tree-inline.c: Re-write to handle inlining on GIMPLE.
2220         * tree-inline.h (walk_tree,
2221         walk_tree_without_duplicates): Move to tree.h.
2222         (estimate_num_insns): Declare.
2223         * tree-into-ssa.c: New file.
2224         * tree-iterator.c: New file.
2225         * tree-iterator.h: New file.
2226         * tree-mudflap.c: New file.
2227         * tree-mudflap.h: New file.
2228         * tree-nested.c: New file.
2229         * tree-nomudflap.c: New file.
2230         * tree-nrv.c: New file.
2231         * tree-optimize.c (dump_flags, vars_to_rename,
2232         in_gimple_form, all_passes, pass_gimple,
2233         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
2234         (execute_gimple, execute_rebuild_bind,
2235         gate_all_optimizations, execute_del_cfg,
2236         register_one_dump_file, register_dump_files, dup_pass_1,
2237         init_tree_optimization_passes, execute_todo,
2238         execute_one_pass, execute_pass_list): New.
2239         (clear_decl_rtl): Remove.
2240         (tree_rest_of_compilation): Update to use tree
2241         optimizers.
2242         * tree-outof-ssa.c: New file.
2243         * tree-pass.h: New file.
2244         * tree-phinodes.c: New file.
2245         * tree-pretty-print.c: New file.
2246         * tree-profile.c: New file.
2247         * tree-simple.c: New file.
2248         * tree-simple.h: New file.
2249         * tree-sra.c: New file.
2250         * tree-ssa-alias.c: New file.
2251         * tree-ssa-ccp.c: New file.
2252         * tree-ssa-copy.c: New file.
2253         * tree-ssa-copyrename.c: New file.
2254         * tree-ssa-dce.c: New file.
2255         * tree-ssa-dom.c: New file.
2256         * tree-ssa-dse.c: New file.
2257         * tree-ssa-forwprop.c: New file.
2258         * tree-ssa-live.c: New file.
2259         * tree-ssa-live.h: New file.
2260         * tree-ssa-loop.c: New file.
2261         * tree-ssa-operands.c: New file.
2262         * tree-ssa-operands.h: New file.
2263         * tree-ssa-phiopt.c: New file.
2264         * tree-ssa-pre.c: New file.
2265         * tree-ssa.c: New file.
2266         * tree-ssanames.c: New file.
2267         * tree-tailcall.c: New file.
2268         * tree.c: Include tree-iterator.h, basic-block.h and
2269         tree-flow.h.
2270         (tree_node_kind): Add phi_nodes and ssa names.
2271         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
2272         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
2273         (make_node_stat): Handle PHI_NODE and SSA_NAME.
2274         <'c'> Set TREE_INVARIANT.
2275         (copy_node_stat): Abort if trying to copy a
2276         STATEMENT_LIST.
2277         Clear TREE_VISITED.
2278         Clear annotation field.
2279         (build_constructor): Copy TREE_INVARIANT from vals.
2280         Don't clear TREE_CONSTANT.
2281         (expr_first, expr_last, expr_length): Remove.
2282         (staticp): Pass unknown component references to the language.
2283         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
2284         (skip_simple_arithmetic): Likewise.
2285         (stabilize_reference_1): Likewise.
2286         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
2287         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
2288         STATEMENT_LIST.
2289         (lhd_unsave_expr_now): Remove.
2290         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
2291         (recompute_tree_invarant_for_addr_expr): New.
2292         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
2293         Call recompute_tree_invarant_for_addr_expr.
2294         Set TREE_INVARIANT accordingly.
2295         (build2_stat): Don't handle CALL_EXPR.
2296         (build3_stat): Don't call build2_stat for CALL_EXPRs.
2297         (build_expr_wfl): Remove.
2298         (annotate_with_file_line, annotate_with_locus): New.
2299         (simple_cst_equal): Call simple_cst_list_equal to compare
2300         CONSTRUCTOR_ELTS pointers.
2301         (iterative_hash_expr): Don't hash types associated
2302         with conversions.  Instead hash on the signedness of the
2303         toplevel object and the operand of the conversion.
2304         (dump_tree_statistics): Call ssanames_print_statistics
2305         and phinodes_print_statistics.
2306         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
2307         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
2308         needs_to_live_in_memory): New.
2309         (initializer_zerop): Handle VECTOR_CST.  Don't check
2310         AGGREGATE_TYPE_P for CONSTRUCTOR.
2311         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
2312         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
2313         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
2314         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
2315         (CALL_EXPR): Add another operand.
2316         (EXPR_WITH_FILE_LOCATION): Remove.
2317         (SWITCH_EXPR): Add another operand.
2318         * tree.h: Update various comments.
2319         (union tree_ann_d): Forward declare.
2320         (struct tree_common): Add fields nowarning_flag,
2321         invariant_flag and visited.
2322         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
2323         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
2324         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
2325         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
2326         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
2327         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
2328         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
2329         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
2330         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
2331         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
2332         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
2333         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
2334         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
2335         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
2336         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
2337         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
2338         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
2339         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
2340         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
2341         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
2342         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
2343         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
2344         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
2345         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
2346         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
2347         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
2348         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
2349         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
2350         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
2351         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
2352         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
2353         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
2354         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
2355         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
2356         TDF_UID,): Define.
2357         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
2358         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
2359         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
2360         EXPR_WFL_SET_LINECOL): Remove.
2361         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
2362         make_phi_node, init_phinodes, fini_phinodes,
2363         release_phi_node, phinodes_print_statistics,
2364         init_ssanames, fini_ssanames, make_ssa_name,
2365         release_ssa_name, ssanames_print_statistics,
2366         annotate_with_file_line, build_empty_stmt,
2367         annotate_with_locus, expr_only, categorize_ctor_elements,
2368         count_type_elements, add_var_to_bind_expr, is_essa_node,
2369         expand_stack_alloc, expand_stack_save,
2370         expand_stack_restore, add_case_node, operand_equal_p,
2371         nondestructive_fold_unary_to_constant,
2372         nondestructive_fold_binary_to_constant,
2373         fold_read_from_constant_string, int_const_binop,
2374         strip_float_extensions, simplify_builtin, c_strlen,
2375         recompute_tree_invarant_for_addr_expr,
2376         needs_to_live_in_memory, make_vector,
2377         setjmp_vars_warning, update_alignment_for_field,
2378         expand_asm_expr, asm_op_is_mem_input,
2379         containing_blocks_have_cleanups_or_stack_level,
2380         create_artificial_label, gimplify_function_tree,
2381         get_name, unshare_expr, walk_tree,
2382         walk_tree_without_duplicates, in_gimple_form): Declare.
2383         (struct tree_exp): Add fields locus and block.
2384         (struct tree_ssa_name, struct edge_def, struct
2385         tree_phi_node, struct tree_eref_common, struct
2386         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
2387         union alias_var_def, struct tree_statement_list_node,
2388         struct tree_statement_list, enum operand_equal_flag): Declare.
2389         (enum tree_node_structure_enum): Add TS_SSA_NAME,
2390         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
2391         TS_STATEMENT_LIST.
2392         (union tree_node): Add fields ssa_name, phi, eref, ephi,
2393         euse and stmt_list.
2394         (function_cannot_inline_p, uninitialized_vars_warning,
2395         save_for_inline, output_inline_function, all_cases_count,
2396         check_for_full_enumeration_handling,
2397         declare_nonlocal_label): Remove.
2398         (enum tree_dump_index): Add TDI_none, TDI_tu,
2399         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
2400         * unroll.c (unroll_loop): Don't clear map->inline_target.
2401         * unwind-sjlj.c (uw_install_context): Make a proper static inline
2402         function.
2403         * value-prof.c (value_prof_hooks): New.
2404         (find_values_to_profile): Rename to rtl_find_values_to_profile.
2405         Move rtl-specific bits in from branch_prob.
2406         (value_profile_transformations): Rename to
2407         rtl_value_profile_transformations.
2408         (struct value_prof_hooks): New.
2409         (rtl_value_prof_hooks): New.
2410         (rtl_register_value_prof_hooks): New.
2411         (tree_find_values_to_profile): New stub.
2412         (tree_value_profile_transformations): New stub.
2413         (tree_value_prof_hooks): New stub.
2414         (tree_register_value_prof_hooks): New stub.
2415         (find_values_to_profile): New.
2416         (value_profile_transformations): New.
2417         * value-prof.h: Add multiple inclusion guard.
2418         (struct histogram_value): Change rtx fields to void *.
2419         (rtl_register_value_prof_hooks): New declaration.
2420         (tree_register_value_prof_hooks): New declaration.
2421         (find_values_to_profile): New declaration.
2422         (free_profiled_values): New declaration.
2423         (value_profile_transformations): New declaration.
2424         (struct profile_hooks): New declaration.
2425         (init_branch_prob): Declaration moved from rtl.h.
2426         (branch_prob): Declaration moved from rtl.h.
2427         (end_branch_prob): Declaration mooved from rtl.h.
2428         (tree_register_profile_hooks): New declaration.
2429         (rtl_register_profile_hooks): New declaration.
2430         (tree_profile_hooks): New declaration.
2431         (rtl_profile_hooks): New declaration.
2432         * varasm.c: Include tree-mudflap.h.
2433         (TRAMPOLINE_ALIGNMENT): Remove.
2434         (make_decl_rtl): Call mudflap_enqueue_decl.
2435         (assemble_static_space):
2436         (assemble_trampoline_template): Set and return
2437         TRAMPOLINE_ALIGNMENT.
2438         * varray.c (element): Add GENERIC_PTR_NOGC entry.
2439         Add entry for 'tree *'.
2440         Add entry for struct edge_def *.
2441         (varray_copy): New.
2442         * varray.h (enum varray_data_enum): Add
2443         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
2444         VARRAY_DATA_TREE_PTR.
2445         (union varray_data_tag): Corresponding changes.
2446         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
2447         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
2448         VARRAY_EDGE, VARRAY_TREE_PTR,
2449         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
2450         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
2451         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
2452
2453         * config/*/*: Various updates for changed macros, tree
2454         codes, etc.  Check ChangeLog.tree-ssa.
2455
2456         * doc/cfg.texi: New file.
2457         * doc/tree-ssa.texi: New file.
2458         * doc/c-tree.texi: Document new codes.
2459         * doc/gccint.texi: Include new files.
2460         * doc/install.texi: Document new features.
2461         * doc/invoke.texi: Document new switches.
2462         * doc/passes.texi: Document new passes.
2463         * doc/rtl.texi: Update changed RTL codes.
2464         * doc/sourcebuild.texi: Update build instructions.
2465         * doc/standards.texi: Document Fortran changes.
2466         * doc/tm.texi: Update.
2467
2468 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
2469
2470         Replace several arrays with a struct of arrays.
2471         * combine.c (struct reg_stat): New.
2472         (init_reg_last_arrays): Renamed to...
2473         (init_reg_last): ...this.  Callers adjusted.
2474         (reg_stat): New.
2475         (combine_instructions): Allocate it and use it.
2476         (reg_last_death, reg_last_set, reg_last_set_value,
2477         reg_last_set_label, reg_last_set_table_tick,
2478         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
2479         reg_last_set_mode, reg_last_set_nonzero_bits,
2480         reg_last_set_sign_bit_copies): Replace throughout
2481         with items of reg_stat.
2482
2483 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2484
2485         PR optimization/15100
2486         * combine.c (distribute_notes): Don't create a dangling
2487         REG_LIBCALL/REG_RETVAL note.
2488
2489 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2490
2491         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
2492
2493         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
2494         negv2si2.
2495
2496 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2497
2498         * doc/md.texi (Standard Names): Fix typo in vec_init description.
2499
2500 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
2501
2502         * doc/gty.texi (GTY Options): Clarify example.
2503
2504 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
2505
2506         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
2507         Add const qualifier to altivec vector type if one is needed.
2508
2509 2004-05-11  Paul Brook  <paul@codesourcery.com>
2510
2511         * flags.h (flag_short_enums): Update comment.
2512         * opts.c (decode_options): Set flag_short_enums to 2.
2513         * toplev.c (flag_short_enums): Update comment.
2514         (process_options): Call default_short_enums target hook.
2515
2516 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
2517
2518         PR target/14063
2519         * config/rs6000/altivec.md (altivec_dssall):
2520         Change to unspec_volatile.
2521         (altivec_dss): Likewise.
2522
2523 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
2524
2525         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
2526         vnor.
2527         ("one_cmplv8hi2"): Same.
2528         ("one_cmplv4si2"): Same.
2529
2530 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2531
2532         PR target/15130
2533         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
2534         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
2535         into account.  Compute the correct number of general registers
2536         for the return value.  Generate a special push/pop sequence when
2537         failing to get a temporary register for non SHmedia epilogue.
2538         (sh_expand_epilogue): Add an argument to show whether it's for
2539         sibcall or not.  Set the 3rd argument of output_stack_adjust to
2540         -1 if needed.
2541         (sh_need_epilogue): Call sh_expand_epilogue with 0.
2542         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
2543         with 1.
2544         (epilogue): Call sh_expand_epilogue with 0.
2545
2546 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
2547
2548         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
2549         goto a cleanup label.  After the cleanup, free the allocated memory.
2550
2551 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
2552
2553         * config/rs6000/altivec.h (vec_sld): Add overloads for
2554         argument/return types of 'vector bool int', 'vector bool short'
2555         and 'vector bool char'.
2556
2557 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
2558
2559         * c-decl.c (store_parm_decls_newstyle): Correct test for a
2560         nested function.
2561
2562 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
2563
2564         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
2565         treating missing ones as "".
2566         * config/mips/mips.md: Remove constraints from match_operands and
2567         match_scratches if they appear in define_expands (except reload*),
2568         define_peephole2s, define_splits or attribute specifications.
2569         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
2570         constraint strings.
2571
2572 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
2573
2574         * config/rs6000/rs6000.c (function_arg_boundary): Always align
2575         AltiVec vectors.
2576         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
2577         vectors by refererence.  Align the same for TARGET_64BIT to a 16
2578         byte boundary.  Remove useless code.  Add function comment.
2579         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
2580         call to where it belongs.
2581         (function_arg_partial_nregs): Return true for all TARGET_32BIT
2582         -mabi=no-altivec AltiVec vectors.  Fix debug output.
2583         (rs6000_va_arg): Adjust for AltiVec change.
2584
2585 2004-05-10  Paul Brook  <paul@codesourcery.com>
2586
2587         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
2588         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
2589         (TARGET_DOUBLEWORD_ALIGN): Use it.
2590         (WCHAR_TYPE): Define.
2591         (WCHAR_SIZE_TYPE): Define.
2592         (SIZE_TYPE): Define.
2593
2594 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
2595
2596         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
2597         when size is 8 bytes.
2598         (function_arg_advance): Account for stack space used by AltiVec
2599         args when -mabi=altivec.  Simplify alignment calculations.  For
2600         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
2601         (function_arg): Similarly.
2602         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
2603         not AltiVec ABI.
2604         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
2605         Correct alignment, and align before testing reg count.  Remove
2606         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
2607         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
2608         TARGET_FPRS here..
2609         (rs6000_function_value): .. not here before call.
2610
2611 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
2612
2613         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
2614
2615 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
2616
2617         PR 15007
2618         * c-decl.c (current_file_decl): Rename to all_translation_units,
2619         adjust comment.
2620         (pop_scope): If popping file_scope, construct a
2621         TRANSLATION_UNIT_DECL and make it the context of all the
2622         symbols in the scope.
2623         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
2624         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
2625         anything to current_file_decl.
2626         (pushdecl_top_level): Likewise.
2627         (store_parm_decls_newstyle): Adjust check for nested function.
2628         (c_write_global_declarations): Update for renamed variable.
2629
2630 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
2631
2632         * config/rs6000/rs6000-protos.h
2633         (rs6000_conditional_register_usage): Protoize.
2634
2635         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
2636
2637         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
2638         function.
2639
2640 2004-05-08  Roger Sayle  <roger@eyesopen.com>
2641
2642         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
2643         where op is a comparison operator and C1 and C2 are integer constants
2644         into a range check.
2645         (fold): Call fold_div_compare.
2646
2647 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2648
2649         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
2650         problems with earlier versions of the GNU compiler.
2651
2652 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
2653
2654         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
2655         Declare.
2656
2657         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
2658         (rs6000_hard_regno_mode_ok): New.
2659         (rs6000_init_hard_regno_mode_ok): New.
2660         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
2661
2662         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
2663         result.
2664
2665 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
2666
2667         * config/rs6000/altivec.h (vector, pixel, bool): Do not
2668         define as macros #ifdef __APPLE_ALTIVEC__.
2669
2670 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
2671
2672         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
2673         Generate appropriate parallels for vector arguments
2674         passed to vararg functions. (function_arg): make the call
2675         to rs6000_mixed_function_arg for vector args as needed.
2676
2677 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2678
2679         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
2680         EABI_FLOAT_VARARGS_P.
2681
2682 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2683
2684         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
2685         * config/mips/mips.c (override_options): Disable branch likely
2686         instructions if TUNE_MIPS5500.
2687
2688 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2689
2690         * config/mips/mips.c (override_options): Allow the hi and lo registers
2691         to store any integral mode, not just MODE_INTs.
2692
2693 2004-05-07  Paul Brook  <paul@codesourcery.com>
2694
2695         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
2696         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
2697         (TARGET_DOUBLEWORD_ALIGN): Use it.
2698         (WCHAR_TYPE): Define.
2699         (WCHAR_SIZE_TYPE): Define.
2700         (SIZE_TYPE): Define.
2701
2702 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
2703
2704         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
2705         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
2706
2707 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
2708
2709         * loop-doloop.c (doloop_valid_p): Make sure that body
2710         gets freed.
2711
2712 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
2713
2714         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
2715         declaration.
2716         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
2717         (sparc_skip_caller_unimp): New global variable.
2718         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
2719         Use it instead of SKIP_CALLERS_UNIMP_P.
2720         * config/sparc/sparc.md (call expander): Add sanity check.
2721         (call_address_struct_value_sp32): Re-sync with expander.
2722         (call_symbolic_struct_value_sp32): Likewise.
2723         (return peepholes): Use 'sparc_skip_caller_unimp' instead
2724         of custom predicate.
2725
2726 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2727
2728         PR c++/14962
2729         * c-pragma.c (handle_pragma_redefine_extname): Only change
2730         the assembler name of FUNCTION_DECLs and VAR_DECLs.
2731
2732 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
2733
2734         * optabs.h (enum optab_index): Add new OTI_log1p.
2735         (log1p_optab): Define corresponding macro.
2736         * optabs.c (init_optabs): Initialize log1p_optab.
2737         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
2738         patterns.
2739         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
2740         using log1p_optab.
2741         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
2742         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2743
2744         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
2745
2746         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
2747         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
2748         Prototype here.
2749         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
2750         x87's fyl2xp1 instruction.
2751         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
2752         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
2753         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
2754         log1p  and log1pl built-ins as inline x87 intrinsics.
2755
2756 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
2757
2758         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
2759         * config/arm/freebsd.h: Likewise.
2760         * config/ia64/freebsd.h: Likewise.
2761         * config/sparc/freebsd.h: Likewise.
2762
2763 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
2764
2765         PR optimization/15296
2766         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
2767         getting last consecutive label at a branch.
2768         (relax_delay_slots): Similar, near top of loop.
2769
2770 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2771
2772         PR target/15202
2773         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
2774         register to general register.
2775
2776 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
2777
2778         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
2779         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
2780         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
2781         (STACK_BOUNDARY): Delete.
2782
2783 2004-05-06  Stuart Hastings  <stuart@apple.com>
2784
2785         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
2786         mistakenly clobbered by 1.423.
2787
2788 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
2789
2790         * doc/invoke.texi: Document -mvr4130-align.
2791         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
2792         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
2793         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
2794         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
2795         * config/mips/mips.md: Include sched-int.h.
2796         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
2797         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
2798         (override_options): Enable -mvr4130-align at -O3 and above.
2799         (mips_sim_insn): New variable.
2800         (mips_sim): New structure.
2801         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
2802         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
2803         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
2804         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
2805         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
2806         (mips_reorg): Call vr4130_align_insns.
2807         (vr4130_last_insn): New variable.
2808         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
2809         (vr4130_swap_insns_p, vr4130_reorder): New functions.
2810         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
2811         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
2812         (mips_use_dfa_pipeline_interface): Return true for the same.
2813         * config/mips/4130.md: New file.
2814         * config/mips/mips.md: Include it.  Add a peephole2 to convert
2815         "mult;mflo" into "mtlo;macc".
2816         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
2817         target of maccs.
2818         (*msac_using_macc): New pattern.
2819
2820 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
2821
2822         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
2823         (ir_vr55_hilo): Split into...
2824         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
2825         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
2826         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
2827         Add various multiplication bypasses.
2828         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
2829         multiplication.
2830
2831 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
2832
2833         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
2834         attribute to "XF".
2835
2836 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
2837
2838         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
2839         (fmod_optab, drem_optab): Define corresponding macros.
2840         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
2841         * genopinit.c (optabs): Implement fmod_optab and drem_optab
2842         using fmod?f3 and drem?f3 patterns.
2843         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
2844         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
2845         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
2846         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
2847         flag_unsafe_math_optimizations is set.
2848
2849         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
2850         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
2851
2852         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
2853         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
2854         Prototype here.
2855         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
2856         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
2857         fprem and fprem1 instructions.
2858         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
2859         Rename insn definition to x86_fnstsw_1.
2860         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
2861         x87 instructions.
2862         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
2863         and fmodl built-ins as inline x87 intrinsics.
2864         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
2865         and dreml built-ins as inline x87 intrinsics.
2866
2867 2004-05-05  Roger Sayle  <roger@eyesopen.com>
2868
2869         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
2870
2871 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
2872
2873         PR driver/9822
2874         * doc/invoke.texi (Spec Files): Remove documentation of %c.
2875
2876 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
2877
2878         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
2879         representation.
2880
2881 2004-05-06  Paul Brook  <paul@codesourcery.com>
2882
2883         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
2884         (arm_coproc_mem_operand): ... To this.
2885         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
2886         (arm_legitimate_index_p): Ditto.
2887         (vfp_mem_operand): Rename ...
2888         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
2889         (vfp_secondary_reload_class): Use it.
2890         (output_move_double): Use doubleword load/store instructions.
2891         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
2892         * config/arm/arm.h (TARGET_LDRD): Define.
2893         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
2894         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
2895         New splitter for invalid doubleword loads.
2896         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
2897         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
2898         * doc/md.texi: Document Uy constraint.
2899
2900 2004-05-05  Jan Hubicka  <jh@suse.cz>
2901
2902         PR opt/14980
2903         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
2904         inline clones.
2905
2906 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2907
2908         PR target/15290
2909         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
2910         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
2911
2912 2004-05-05  Mike Stump  <mrs@apple.com>
2913
2914         * config/darwin-c.c (add_framework): Copy the directory name as it
2915         can be freed later.  Also, ensure we always allocate enough room
2916         for the cached framework information.
2917         (find_subframework_header): Keep track of the directory where the
2918         subframework header was found.
2919         (framework_construct_pathname): Speed up by not trying to re-add a
2920         framework.
2921         * cppfiles.c (search_path_exhausted): Arrange for the missing
2922         header callback to be able to set the directory where the header
2923         was found.
2924         (cpp_get_dir): Add.
2925         * cpplib.h (missing_header_cb): Add a parameter.
2926         (cpp_get_dir): Add.
2927
2928 2004-05-03  Mike Stump  <mrs@apple.com>
2929
2930         * doc/invoke.texi (Directory Options): Document -iquote.
2931         * doc/cpp.texi: Likewise.
2932         * doc/cppopts.texi: Likewise.
2933         * c-opts.c (c_common_missing_argument): Add -iquote processing.
2934         (c_common_handle_option): Likewise.
2935         * c.opt (iquote): Add.
2936         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
2937         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
2938
2939         * c-opts.c (case OPT_I): Deprecate -I- support.
2940         * doc/invoke.texi: Likewise.
2941         * doc/cpp.texi: Likewise.
2942         * doc/cppopts.texi: Likewise.
2943
2944 2004-05-05  Steven Bosscher  <stevenb@suse.de>
2945
2946         * basic-block.h (free_basic_block_vars): Update prototype.
2947         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
2948         argument.
2949         (life_analysis): Update call.
2950         * ifcvt.c (if_convert): Likewise.
2951         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
2952         * passes.c (rest_of_handle_final): Likewise.
2953         (rest_of_compilation): Likewise.
2954         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2955
2956         * emit-rtl.c (next_real_insn): Use INSN_P.
2957         (prev_real_insn): Likewise.
2958
2959 2004-05-05  Eric Christopher  <echristo@redhat.com>
2960
2961         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
2962         representation.
2963
2964 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
2965
2966         * config/rs6000/rs6000.c (build_opaque_vector_type):
2967         New function.
2968         (rs6000_init_builtins): Use it.
2969
2970 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
2971
2972         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
2973         (func_table): Change type from char ** to vms_func_ref.
2974         (write_rtnbeg):  Update to reflect func_table change.  Use
2975         fde->funcdef_number instead of rtnnum in output.
2976         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
2977
2978 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
2979             Richard Henderson  <rth@redhat.com>
2980
2981         PR target/14899
2982
2983         * c-common.c (vector_types_convertible_p): New function.
2984         * c-typeck.c (comptypes): Recurse on vector types.
2985         (convert_for_assignment): Use vector_types_convertible_p.
2986         (digest_init): Use vector_types_convertible_p to check
2987         validness of constant vector initializers; otherwise treat
2988         them as scalars.
2989         * tree.c (make_or_reuse_type): New.
2990         (build_common_tree_nodes): Use it.
2991         * cp/call.c (standard_conversion): Likewise.
2992         * cp/typeck.c (comptypes): Recurse on vector types.
2993         (convert_for_assignment): Use vector_types_convertible_p.
2994
2995 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
2996
2997         * config/mips/mips.c (override_options): Default to no
2998         generation of branch-likely operations when tuning for
2999         CPUs where they tend to have a negative performance impact
3000         (e.g., SB-1).
3001
3002 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3003
3004         * expr.c (store_constructor_field): Don't call store_constructor
3005         if bitsize is not a multiple of a byte.
3006
3007 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
3008
3009         * reload1.c (inherit_piecemeal_p): New function.
3010         (emit_reload_insns): When reloading a group of hard registers, use
3011         inherit_piecemeal_p to decide whether the values of individual hard
3012         registers can be inherited.
3013
3014 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3015
3016         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
3017         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
3018         * config/t-linux (LIB2ADDEHDEP): Likewise.
3019
3020 2004-05-04  Paul Brook  <paul@codesourcery.com>
3021
3022         * config/arm/crti.asm: Push an even number of registers.
3023         * config/arm/crtn.asm: And restore them.  Load via sp.
3024
3025 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3026
3027         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
3028         Collect overhead information.
3029         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
3030         parameter and pass it through.
3031         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
3032         MEM_STAT_DECL parameter and pass it through.
3033         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
3034         MEM_STAT_DECL parameter and pass it through.
3035
3036 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3037
3038         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
3039
3040         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
3041
3042         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
3043         rs6000_hard_regno_nregs.
3044
3045 2004-05-03  Eric Christopher  <echristo@redhat.com>
3046
3047         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
3048         prologue insn instead of setting up call.
3049         (s390_emit_epilogue): Ditto.
3050         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
3051         (define_constants): Add numbers for above patterns.
3052
3053 2004-05-03  Eric Christopher  <echristo@redhat.com>
3054
3055         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
3056         * config/s390/s390.c (s390_conditional_register_usage): ...here.
3057         * config/s390/s390-protos.h: Prototype.
3058
3059 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
3060
3061         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
3062         assignment.
3063
3064 2004-05-03  Eric Christopher  <echristo@redhat.com>
3065
3066         * config/mips/mips.md: Fix branch length attribute definition.
3067
3068 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3069
3070         * config.gcc: Remove --enable-altivec support.
3071
3072         * config/rs6000/altivec-defs.h: Remove.
3073
3074 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3075
3076         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
3077         * fixinc/fixincl.x: Regenerate.
3078
3079 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3080
3081         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
3082         definition.
3083         (log?f2, log10?f2, log2?f2): Reimplement expanders with
3084         float_truncate insn.
3085         (*fxtractsf3, *fxtractdf3): Remove insn definition.
3086         (logb?f2): Reimplement expanders with float_truncate insn.
3087
3088 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
3089
3090         PR 14718
3091         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
3092         force_type_die for CONST_DECL.
3093
3094 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3095             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3096
3097         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
3098         tm-dwarf2.h to tm_file.
3099         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
3100         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
3101         (ASM_DEBUG_SPEC): Delete.
3102
3103 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3104
3105         * optabs.h (enum optab_index): Add new OTI_expm1.
3106         (expm1_optab): Define corresponding macro.
3107         * optabs.c (init_optabs): Initialize expm1_optab.
3108         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
3109         patterns.
3110         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
3111         using expm1_optab.
3112         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
3113         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3114
3115         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
3116         to implement expm1, expm1f and expm1l built-ins as inline x87
3117         intrinsics.
3118
3119 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3120
3121         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
3122         * config/frv/frv.md (*return_true, *return_false): New patterns.
3123
3124 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3125
3126         * rtl.h (PHI_NODE_P): Remove.
3127
3128 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
3129
3130         PR middle-end/14988
3131         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
3132         when passed -2 as 'align'.
3133         (put_var_into_stack): Use 'bool' as the type for the three local
3134         predicates.  Adjust calls to put_reg_into_stack.
3135         When passed a CONCAT, instruct put_reg_into_stack to use
3136         a consecutive stack slot for the second part.
3137         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
3138         'consecutive_p' parameter.  Turn the three predicates into 'bool'
3139         parameters.  Retrieve the register mode from 'reg'.
3140         When consecutive_p is true, instruct assign_stack_local_1 to use
3141         BITS_PER_UNIT alignment.
3142         (put_addressof_into_stack): Use 'bool' as the type for the two
3143         local predicates. Adjust call to put_reg_into_stack.
3144
3145 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3146
3147         * fold-const.c (fold_convert_const, fold): Add missing
3148         FIX_ROUND_EXPR case.
3149
3150 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3151
3152         * configure.ac (FLEX, BISON): Only use tools from the build tree
3153         if build equals host.
3154         * configure: Rebuilt.
3155
3156         * config/frv/frv-protos.h (frv_expand_epilogue,
3157         frv_expand_fdpic_call): Add bool argument.
3158         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
3159         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
3160         (frv_expand_epilogue): Use new argument to decide whether to emit
3161         return instruction or copy the return address to LR.
3162         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
3163         sibcalls.
3164         (sibcall_operand): New.
3165         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
3166         PLUS nor LABEL_REF.  Add sibcall_operand.
3167         * config/frv/frv.md (call, call_value): Pass false to
3168         frv_expand_fdpic_call.
3169         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
3170         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
3171         sibcall_value_internal, sibcall_value_fdpicdi): New.
3172         (return_unsigned_true, return_unsigned_false): New.
3173         (epilogue): Adjust call to frv_expand_epilogue.
3174         (sibcall_epilogue): New.
3175
3176         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
3177         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
3178         before redefining them.
3179
3180 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3181
3182         * builtins.c (fold_fixed_mathfn): New function.
3183         (fold_builtin_lround, fold_builtin): Use it.
3184
3185 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
3186
3187         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
3188         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
3189
3190 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3191
3192         * config/cris/cris.h: Revert my "fix comment typos" patch.
3193
3194 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
3195
3196         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
3197
3198 2004-05-01  Falk Hueffner  <falk@debian.org>
3199
3200         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
3201         builtin_insll): Disallow 0 as first input operand.
3202
3203 2004-05-01  Falk Hueffner  <falk@debian.org>
3204
3205         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
3206
3207 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
3208
3209         PR middle-end/15054
3210         * expr.c (expand_expr_real): Do not call preserve_temp_slots
3211         on a TARGET_EXPR temp.
3212         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
3213         TARGET_EXPR temp slots.
3214
3215 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
3216
3217         * simplify-rtx.c (simplify_ternary_operation): When
3218         converting an IF_THEN_ELSE to a relational op, return
3219         correct mode.
3220
3221 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3222
3223         * builtins.c (fold_builtin_round): Fix comment typo.
3224         (fold_builtin_lround): New function.
3225         (fold_builtin): Use it.
3226
3227 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
3228
3229         PR target/11608
3230         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
3231         more like the one in config/dbxelf.h.
3232
3233 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
3234
3235         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
3236         and adjust definition accordingly.
3237         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
3238         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
3239         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
3240         VECTOR_TYPE.
3241
3242 2004-04-30  Jason Merrill  <jason@redhat.com>
3243
3244         PR c++/14587
3245         * config/i386/winnt.c (associated_type): Look for attributes on
3246         the TYPE_MAIN_VARIANT of *this.
3247         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
3248         apply the attributes to the variants.
3249
3250 2004-04-30  Paul Brook  <paul@codesourcery.com>
3251
3252         * config.gcc: Simplify arm --with-{cpu,tune} test.
3253         * config/arm/arm-cores.def: Document whitespace restrictions.
3254
3255 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3256
3257         PR other/1963
3258         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
3259
3260 2004-04-30  Brian Ford  <ford@vss.fsi.com>
3261             DJ Delorie  <dj@redhat.com>
3262
3263         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3264         (DWARF2_DEBUGGING_INFO): Define to enable.
3265         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
3266         DWARF2.
3267         * configure.ac (Target-specific assembler checks)
3268         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
3269         relocs.
3270         * configure: Regenerate.
3271         * config.in: Likewise.
3272
3273         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3274         (ASM_OUPUT_DWARF_OFFSET): Define.
3275
3276 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
3277
3278         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
3279         (s390_emit_call): New function prototype added.
3280         (s390_tls_get_offset): Function removed.
3281         * config/s390/s390.c (s390_function_ok_for_sibcall,
3282         s390_call_saved_register_used_p): New functions.
3283         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
3284         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
3285         (s390_emit_tls_call_insn): New function.
3286         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
3287         emit_call_insn.
3288         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
3289         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
3290         added.
3291         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
3292         register number used to hold the target address for sibcalls.
3293         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
3294         New expanders.
3295         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
3296         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
3297         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
3298         Expanders removed.
3299         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
3300         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
3301         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
3302         ("epilogue"): Changed the call to s390_emit_epilogue to use the
3303         new parameter.
3304
3305 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3306
3307         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
3308         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
3309         reg-stack.c, varasm.c, config/alpha/ev4.md,
3310         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
3311         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
3312         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
3313         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
3314         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
3315         config/ia64/itanium2.md, config/ip2k/ip2k.c,
3316         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
3317         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
3318         comment typos.
3319
3320 2004-04-30  Paul Brook  <paul@codesourcery.com>
3321
3322         * config.gcc: Default ep9312 to hard-float.
3323         * config/arm/arm-cores.def: Add ARCH field.
3324         * config/arm/arm.c (FL_FOR_ARCH*): Define.
3325         (arm_arch_cirrus): New variable.
3326         (all_cores): Set and use arch.
3327         (all_architectures): Ditto.
3328         (arm_arch_name): New variable.
3329         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
3330         Set and use arm_arch_cirrus.
3331         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
3332         (enum processor_type): Update ARM_CORE define.
3333         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
3334         (CPP_SPEC): Remove %(cpp_cpu_arch).
3335         (CPP_ARCH_DEFAULT_SPEC): Remove.
3336         (CPP_CPU_ARCH_SPEC): Remove.
3337         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
3338         (FPUTYPE_DEFAULT): Don't define here.
3339
3340 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
3341
3342         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
3343         updates too.
3344
3345 2004-04-30  Paul Brook  <paul@codesourcery.com>
3346
3347         * arm.c (arm_needs_doubleword_align): Use mode alignment.
3348
3349 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
3350
3351         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
3352         vec_sububs.
3353         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
3354         duplicates.
3355
3356 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3357
3358         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
3359         atan2?f3 expanders.
3360
3361 2004-04-29  Nick Clifton  <nickc@redhat.com>
3362
3363         Bug 14093
3364         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
3365         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
3366         Delete static from definition.
3367         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
3368
3369 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3370
3371         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
3372         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
3373         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
3374         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
3375
3376 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
3377
3378         * commom.opt (Wfatal-errors): Add it.
3379         * diagnostic.c (flag_fatal_errors): Define it.
3380         (diagnostic_action_after_output): Check for flag_fatal_errors.
3381         * flags.h (flag_fatal_errors): Declare it.
3382         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
3383         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
3384
3385 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
3386
3387         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
3388         blocks which have kill flag set.
3389
3390 2004-04-29  Ben Elliston  <bje@au.ibm.com>
3391
3392         * configure.ac (--with-as): Abort if user-supplied assembler
3393         cannot be executed.
3394         (--with-ld): Likewise for the linker.
3395         * configure: Regenerate.
3396
3397 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3398
3399         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
3400         isn't NULL before using it.
3401
3402 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
3403
3404         PR target/15189
3405         * config/mips/mips.md (load_df_low): Use default length.
3406         (load_df_high, store_df_high): Likewise.
3407
3408 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3409
3410         * config/mips/mips.md, config/mips/sb1.md,
3411         config/rs6000/rs6000.c: Fix comment typos.
3412
3413 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3414
3415         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
3416         Fix comment typos.
3417
3418 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
3419
3420         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
3421         (delete_if_ordinary): Use above macro.
3422         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
3423         Update copyright.
3424         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
3425
3426 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
3427
3428         * c-decl.c (get_parm_info): Use the correct tag keywords when
3429         warning about type declarations in prototypes.
3430
3431 2004-04-29  Paul Brook  <paul@codesourcery.com>
3432
3433         * config.gcc: Pull list of cores from arm-cores.def.
3434
3435 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3436
3437         * combine.c (combine_simplify_rtx): Adjust call to use
3438         simplify_relational_operation.  Do not use SELECT_CC_MODE
3439         when a comparison already has a MODE_CC mode.
3440
3441 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3442
3443         (simplify_set): simplify_relational_operation may now
3444         return another relational expression.
3445         * cse.c (fold_rtx): simplify_relational_operation now
3446         takes of computing the comparison mode.
3447         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
3448         remove dead code.
3449         (do_compare_rtx_and_jump): Likewise.
3450         * integrate.c (subst_constants): simplify_relational_operation
3451         may now return another relational expression.
3452         * simplify-rtx.c (simplify_gen_relational): Move most code to
3453         the new simplify_relational_operation and
3454         simplify_relational_operation_1 functions.
3455         (simplify_relational_operation): Rewritten.
3456         (simplify_relational_operation_1): New function.
3457         (simplify_ternary_operation): simplify_relational_operation
3458         may now return another relational expression.
3459         (simplify_rtx): Remove unnecessary temp variable.
3460
3461 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
3462
3463         * reg-stack.c (swap_to_top): New function.
3464         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
3465         swap_to_top().
3466         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
3467         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
3468         UNSPEC_FSCALE_EXP.
3469
3470         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
3471         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
3472         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
3473         x87's fscale insn.
3474         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
3475         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
3476         patterns.
3477
3478 2004-04-28  Serge Belyshev  <1319@bot.ru>
3479
3480         PR 14944
3481         * coverage.c (read_counts_file): Fix usage of warning () call.
3482         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
3483
3484 2004-04-28  Ben Elliston  <bje@au.ibm.com>
3485
3486         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
3487         options with "-" in the option index.
3488         (SPARC Options): Likewise.
3489         (M32R/D Options): Likewise.
3490
3491 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3492
3493         * convert.c (convert_to_integer): Convert (long)round -> lround,
3494         etc.
3495
3496 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
3497
3498         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
3499         Return false if we do not have fp register.
3500         (addrs_ok_for_quad_peep): Rename to ...
3501         (mems_ok_for_quad_peep): this.
3502         Add check for volatile memory.
3503         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
3504         Rename to ...
3505         (mems_ok_for_quad_peep): this.
3506         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
3507         to peephole2's.
3508         (lfq_power2): New instruction.
3509         (stfq_power2): Likewise.
3510
3511 2004-04-28  Jan Hubicka  <jh@suse.cz>
3512
3513         PR c/15004
3514         * function.c (do_warn_unused_parameter): Break out form ...
3515         (expand_function_end): ... here; warn only when not using cgraphunit.
3516         * function.h (do_warn_unused_parameter): Declare.
3517         * cgraphunit.c: Include function.h.
3518         (cgraph_finalize_function): Do unused parameter warning.
3519         * Makefile.in (cgraphunit.o): Depend on function.h
3520
3521 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
3522
3523         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
3524         calling install-info on $(DESTDIR)$(infodir)/dir already being
3525         present.
3526
3527 2004-04-28  Paul Brook  <paul@codesourcery.com>
3528
3529         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
3530
3531 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
3532
3533         * gcse.c (find_moveable_store): Do not accept store insns with
3534         REG_EH_REGION note.
3535
3536 2004-04-28  Paul Brook  <paul@codesourcery.com>
3537
3538         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
3539         * function.c (assign_temp): Ditto.
3540         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
3541
3542 2004-04-28  Paul Brook  <paul@codesourcery.com>
3543
3544         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
3545
3546 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
3547
3548         * var-tracking.c (variable_different_p): Add a parameter
3549         compare_current_location, compare current location of variable parts
3550         if it is true.
3551         (dataflow_set_different_1): Pass compare_current_location == false.
3552         (dataflow_set_different_2): Pass compare_current_location == false.
3553         (emit_notes_for_differences_1): Pass compare_current_location == true.
3554
3555 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
3556
3557         * config/s390/s390.md ("casesi"): Mark jump table access as
3558         non-trapping and unchanging.
3559
3560 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3561
3562         PR debug/14829
3563         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
3564         callers.
3565         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
3566         number for indexing hard_regno_nregs array.
3567
3568 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
3569
3570         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
3571         * config/darwin-crt2.c: Only have contents on __ppc__.
3572
3573 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
3574
3575         * config/xtensa/xtensa.c (call_insn_operand): Check
3576         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
3577         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
3578         * config/xtensa/xtensa.md (call, call_value): Likewise.
3579
3580 2004-04-27  Wu Yongwei  <adah@sh163.net>
3581
3582         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
3583         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
3584         (__gthread_mutex_init_function): Replace CreateMutex with
3585         initialization of custom mutex using CreateSemaphore.
3586         (__gthread_mutex_lock): Use InterlockedIncrement.
3587         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
3588         (__gthread_mutex_unlock): Use InterlockedDecrement and
3589         ReleaseSemaphore to unlock
3590         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
3591         __gthread_mutex_lock, __gthread_mutex_trylock,
3592         __gthread_mutex_unlock): Adjust to match inline versions in
3593         gthr-win32.h.
3594
3595 2004-04-27  Paul Brook  <paul@codesourcery.com>
3596
3597         * config/arm/arm.c (arm_promote_prototypes): New function.
3598         (TARGET_PROMOTE_PROTOTYPES): Use it.
3599
3600 2004-04-27  Paul Brook  <paul@codesourcery.com>
3601
3602         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
3603
3604 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
3605
3606         * config/alpha.c (alpha_end_function): For OpenVMS gas,
3607         correctly output .pdesc directive before .end.
3608
3609 2004-04-26  James E Wilson  <wilson@specifixinc.com>
3610
3611         Bug 14927
3612         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
3613         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
3614
3615 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
3616
3617         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
3618         * config/pa/pa-hpux10.h: Likewise.
3619         * config/pa/pa-hpux11.h: Likewise.
3620
3621 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
3622
3623         * doc/invoke.texi (Overall Options): Document default for -o
3624         for PCH files.
3625
3626 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3627
3628         * builtins.c (expand_builtin_update_setjmp_buf): New function.
3629         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
3630         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
3631
3632 2004-04-26  Paul Brook  <paul@codesourcery.com>
3633
3634         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
3635
3636 2004-04-26  Paul Brook  <paul@codesourcery.com>
3637
3638         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
3639
3640 2004-04-25  Roger Sayle  <roger@eyesopen.com>
3641
3642         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
3643         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
3644         X % -1 as 0.
3645
3646 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
3647
3648         PR bootstrap/15141
3649         * except.c (connect_post_landing_pads): Delete insns after the
3650         barrier when generating a unwind_resume_libfunc call.
3651
3652 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3653
3654         PR/c++ 15119
3655         * tree.c (substitute_placeholder_in_expr, case 4): New case,
3656         for TARGET_EXPR.
3657
3658 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3659
3660         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3661         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
3662         inhibit_libc is defined.
3663
3664 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
3665
3666         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
3667         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
3668         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
3669         (TARGET_SCHED_VARIABLE_ISSUE): Define.
3670         (mips_adjust_cost): Move later in file, next to other sched hooks.
3671         (mips_macc_chains_last_hilo): New variable.
3672         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
3673         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
3674         * config/mips/mips.md (may_clobber_hilo): New attribute.
3675
3676 2004-04-24  Roger Sayle  <roger@eyesopen.com>
3677             Bruce Korb  <bkorb@gnu.org>
3678
3679         * fixinc/inclhack.def (aix_syswait_2): New fix.
3680         * fixinc/fixincl.x: Regenerate.
3681         * fixinc/tests/base/sys/wait.h: Update for new test.
3682
3683 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
3684
3685         PR target/14960
3686         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
3687         to non_fixed_size, and leave out fixed_size from the sum.
3688         (generate_set_vrsave): Correct clobbers.
3689         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
3690         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
3691         (rs6000_libcall_value): Likewise.
3692         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
3693         (FUNCTION_ARG_REGNO_P): Likewise.
3694
3695 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
3696
3697         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
3698         is a CONST_INT.
3699         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
3700         with NARROW_OP1 instead of OP1.
3701
3702 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
3703
3704         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
3705         and __s390x__ hosts.
3706
3707 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3708
3709         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
3710         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
3711         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
3712         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
3713         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
3714         * builtins.c (expand_builtin_fork_or_exec): New.
3715         (expand_builtin): Call it.
3716         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
3717         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
3718         * c-common.c (PID_TYPE): New macro.
3719         (c_common_nodes_and_builtins): Initialize pid_type_node.
3720         * calls.c (special_function_p): Do not handle fork and exec.
3721         (expand_call): Do not handle ECF_FORK_OR_EXEC.
3722         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3723         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
3724         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3725         __gcov_execv, __gcov_execvp, __gcov_execve): New.
3726         * tree.h (enum tree_index): Add TI_PID_TYPE.
3727         (pid_type_node): New macro.
3728         (ECF_FORK_OR_EXEC): Removed.
3729
3730 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
3731
3732         PR optimization/13985
3733         * cfgloopmanip.c (fix_loop_placements): New prototype.
3734         Call fix_bb_placements on the preheader of loops that have
3735         been reparented.
3736         (remove_path): Adjust call to fix_loop_placements.
3737
3738 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
3739
3740         * config/darwin7.h: New file.
3741         * config.gcc (*-*-darwin*): Add darwin7.h if the
3742         version is greater than 6.
3743         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
3744         (MATH_LIBRARY): Wrap in ifdefs.
3745
3746 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
3747
3748         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
3749         loading iWMMXt registers with a frame pointer.  Use post-increment
3750         without a frame pointer.
3751         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
3752
3753 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
3754
3755         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
3756         mode" rather than "-funit-at-a-time" since -O2 enables it
3757         without requiring -f* options.  Refer to -fprofile-generate and
3758         -fprofile-use correctly.  Move -funit-at-a-time among options
3759         enabled by -O.  Add information about unit-at-a-time caveats.
3760
3761 2004-04-22  Per Bothner  <per@bothner.com>
3762
3763         * line-map.h (struct line_maps):  New field highest_line.
3764         (linemap_position_for_column):  Make non-inline function.
3765         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
3766         * line-map.c (linemap_init):  Clear highest_line field.
3767         (linemap_add):  Set highest_line field.
3768         (linemap_line_start):  Minor optimization - use highest_line field.
3769         Reduce maximum column hint to 10000.  Update highest_line field.
3770         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
3771         * cpphash.h (struct cpp_reader):  Remove line field - instead use
3772         line_table->highest_line.
3773         (saved_line):  Remove unused field.
3774         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
3775         Use  line_table's highest_line field instead of cpp_reader's line.
3776         * cpplib.c (start_directive):  Likewise use highest_line field.
3777         (do_line, do_linemarker):  Likewise just use newest map.
3778         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
3779         * cpperror.c (cpp_error):  Likewise use highest_line field.
3780         * cppfiles.c (open_file_failed:  Likewise.
3781         (cpp_make_system_header):  Likewise use newest map and highest_line.
3782         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
3783         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
3784         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
3785         _cpp_lex_direct):  Likewise use highest_line.
3786         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
3787         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
3788         and use newest map.
3789         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
3790         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
3791         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
3792
3793 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
3794
3795         PR bootstrap/14992
3796         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
3797         * config/linux.h (USE_LD_AS_NEEDED): Define.
3798         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
3799         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
3800         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
3801         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
3802         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
3803         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
3804         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
3805
3806 2004-04-22  Per Bothner  <per@bothner.com>
3807
3808         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
3809         Fixes PR preprocessor/15067.
3810
3811 2004-04-23  Andreas Schwab  <schwab@suse.de>
3812
3813         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
3814         avoid aliasing warning.
3815
3816 2004-04-22  Jan Hubicka  <jh@suse.cz>
3817             Mostafa Hagog <mustafa@il.ibm.com>
3818
3819       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
3820       * cfgloopanal.c (expected_loop_iterations): Change the return value
3821
3822 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
3823
3824         * cselib.h (struct elt_loc_list): Remove canon_loc field.
3825         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
3826         (cselib_invalidate_mem): Remove all canon_loc and canon_x
3827         traces.
3828
3829 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
3830
3831         Revert
3832         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
3833
3834                 * var-tracking.c (variable_part_different_p): Variable parts
3835                 differ when the most recent locations differ.
3836
3837 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
3838
3839         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
3840         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
3841         (embedded_pic_offset): Delete.
3842         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
3843         MASK_* constants.
3844         (TARGET_EMBEDDED_PIC): Delete.
3845         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
3846         (ASM_SPEC): Remove -membedded-pic.
3847         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
3848         (ASM_OUTPUT_CASE_LABEL): Likewise.
3849         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
3850         * config/mips/windiss.h (ASM_SPEC): Likewise.
3851         * config/mips/mips.c (struct machine_function): Remove
3852         embedded_pic_fnaddr_rtx.
3853         (TARGET_ENCODE_SECTION_INFO): Remove override.
3854         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
3855         (override_options): Remove -membedded-pic handling.
3856         (print_operand): Remove handling of '%S'.
3857         (mips_select_section: Remove -membedded-pic handling.
3858         (mips_encode_section_info): Delete.
3859         (mips_output_conditional_branch): Remove mention of -membedded-pic.
3860         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
3861         -membedded-pic handling.
3862         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
3863
3864 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
3865
3866         * var-tracking.c (frame_base_decl): Remove useless GTY.
3867
3868 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
3869
3870         * config/rs6000/rs6000.c (rs6000_override_options): Error when
3871         user wants altivec and e500 instructions.
3872
3873 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
3874
3875         PR target/14813
3876         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
3877         in .init_array section to ...
3878         * config/ia64/crtbegin.asm: Here.
3879
3880         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
3881         and hidden if HAVE_INITFINI_ARRAY is defined.
3882
3883 2004-04-21  James E Wilson  <wilson@specifixinc.com>
3884
3885         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
3886         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
3887         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
3888         (fp_register_operand, lo_operand): New.
3889         (mips_rtx_costs): Add TUNE_SB1 support.
3890         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
3891         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
3892         (mips_multipass_dfa_lookahead): New.
3893         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
3894         TUNE_SB1): New.
3895         (TARGET_SWITCHES): Add -mfp-exceptions support.
3896         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
3897         (BRANCH_COST): Fix whitespace.
3898         * config/mips/mips.md: Include sb1.md.
3899         * config/mips/sb1.md: New file.
3900         * doc/invoke.texi: Document -mfp-exceptions.
3901
3902         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
3903         comment.
3904         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
3905         (fixincl.o-warn): Delete.
3906
3907 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
3908
3909         * config/rs6000/rs6000 (print_operand) ['z']:
3910         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
3911
3912 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
3913
3914         * config.gcc: Support --with-arch=iwmmxt for ARM.
3915
3916 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3917
3918         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
3919         in two more places; remove unneeded force_reg
3920
3921 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
3922
3923         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
3924         for TARGET_MACHO.
3925         (print_operand): For TARGET_MACHO check to see if we need a stub
3926         and output one if we need it.
3927
3928         PR debug/15033
3929         * dwarf2out.c (rtl_for_decl_location): Check for NULL
3930         rtl.
3931
3932 2004-04-20  James E Wilson  <wilson@specifixinc.com>
3933
3934         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
3935         (vall_value_gp): Likewise.
3936
3937 2004-04-20  DJ Delorie  <dj@redhat.com>
3938
3939         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
3940         variables stored in word registers, then in memory.
3941
3942 2004-04-20  Eric Christopher  <echristo@redhat.com>
3943
3944         * cp/parser.c (cp_parser_declaration): Move translate
3945         up before tokens are lexed.
3946
3947 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
3948
3949         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
3950         (asin_optab, acos_optab): Define corresponding macros.
3951         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
3952         * genopinit.c (optabs): Implement asin_optab and acos_optab
3953         using asin?f2 and acos?f2 patterns.
3954         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
3955         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
3956         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
3957         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3958
3959         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
3960         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
3961         acos, acosf and acosl built-ins as inline x87 intrinsics.
3962
3963 2004-04-20  Paul Brook  <paul@codesourcery.com>
3964
3965         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
3966
3967 2004-04-20  Paul Brook  <paul@codesourcery.com>
3968
3969         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
3970
3971 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
3972
3973         Revert part of 2004-04-17 change that moved -frename-registers
3974         to -O1.  -frename-registers is buggy.
3975
3976         * toplev.c (flag_rename_registers): Initialize to 0.
3977         * doc/invoke.texi (Optimize options): Move -frename-registers
3978         to "Not triggered by any -O level" section.  Adjust commentary
3979         accordingly.
3980
3981 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
3982
3983         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
3984
3985 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
3986
3987         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
3988         for mflo and mfhi instructions.
3989         (mips_output_move): Remove mflo and mfhi handling.
3990         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
3991         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
3992         Likewise various define_peephole2s.
3993         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
3994         alternatives.
3995         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
3996         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
3997         (mfhilo_di, mfhilo_si): New patterns.
3998
3999 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4000
4001         * function.c (assign_parms): Force
4002         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
4003
4004 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4005
4006         * var-tracking.c (variable_part_different_p): Variable parts differ
4007         when the most recent locations differ.
4008
4009 2004-04-19  James E Wilson  <wilson@specifixinc.com>
4010
4011         * rtl.h (reg_set_last): Delete declaration.
4012         * rtlanal.c (reg_set_last): Delete.
4013
4014 2004-04-19  Roger Sayle  <roger@eyesopen.com>
4015
4016         * fold-const.c (fold_convert): Make function extern/public.
4017         * tree.h (fold_convert): Prototype here.
4018         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4019         expand_builtin_strrchr, expand_builtin_strpbrk,
4020         expand_builtin_mempcpy, expand_builtin_bcopy,
4021         expand_builtin_bzero, expand_builtin_memcmp,
4022         expand_builtin_strcmp, expand_builtin_strncmp,
4023         stabilize_va_list, expand_builtin_sprintf,
4024         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
4025         fold_builtin_exponent, fold_builtin_mempcpy,
4026         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
4027         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
4028         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
4029
4030 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
4031
4032         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
4033         (move_from_CR_gt_bit): New.
4034         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
4035         E500.
4036         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
4037         E500.
4038
4039         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
4040         (tstsfeq_gpr): Same.
4041         (cmpsfgt_gpr): Same.
4042         (tstsfgt_gpr): Same.
4043         (cmpsflt_gpr): Same.
4044         (tstsflt_gpr): Same.
4045         (e500_cceq_ior_compare): New.
4046         (e500_flip_gt_bit): New.
4047
4048         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
4049         (print_operand): Add 'c' and 'D'.
4050         (rs6000_generate_compare): Rewrite to generate correct rtl.
4051         (rs6000_emit_sCOND): Handle E500.
4052         (output_cbranch): Adjust for changes in rs6000_generate_compare.
4053         (output_e500_flip_gt_bit): New.
4054
4055         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
4056         Protoize.
4057
4058 2004-04-19  Eric Christopher  <echristo@redhat.com>
4059
4060         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
4061
4062 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
4063
4064         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
4065         fix information.
4066
4067 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4068
4069         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
4070         download URL.
4071
4072 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
4073
4074         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
4075         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
4076
4077 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
4078
4079         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
4080         (fold_builtin): Update caller to match.
4081
4082         PR bootstrap/15009
4083         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
4084
4085         PR bootstrap/14999
4086         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
4087
4088 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4089
4090         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
4091
4092         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
4093         (expand_mult_highpart_optab): Likewise.
4094         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
4095
4096 2004-04-19  Paul Brook  <paul@codesourcery.com>
4097
4098         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
4099         floatunssisf2, floatunssidf2): New patterns.
4100
4101 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
4102
4103         PR other/14918
4104         * doc/invoke.texi (-fprofile-generate): Document requirement to
4105         use -fprofile-generate when linking.
4106
4107         * doc/extend.texi (Strong Using): Warn users against using this
4108         feature.
4109
4110 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
4111
4112         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
4113         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
4114         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
4115         * config/mips/mips.c (struct mips16_constant): Renamed from struct
4116         constant.  Propogate change throughout file.
4117         (struct machine_function): Remove insns_len.
4118         (mips_string_length, mips16_strings, string_constants): Delete.
4119         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
4120         when generating mips16 code.  Remove special mips16 treatment of
4121         string constants.
4122         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
4123         to have the form LABEL+CONSTANT.
4124         (mips_symbolic_address_p): Fix comment.
4125         (m16_usym8_4, m16_usym5_4): Delete.
4126         (mips_output_function_epilogue): Remove mips16 string handling.
4127         (mips_output_mi_thunk): Call mips16_lay_out_constants.
4128         (mips_select_section, mips_encode_section_info): Remove mips16
4129         string handling.
4130         (struct mips16_constant_pool): New.
4131         (add_constant): Take a mips16_constant_pool structure.  Keep pool
4132         sorted into order of ascending mode size.  Keep track of the highest
4133         possible start address, taking padding and the masking of the base PC
4134         value into account.
4135         (dump_constants_1): New function, split out from dump_constants.
4136         Handle vector constants.  Use gen_consttable_{int,float} rather than
4137         separate functions for each mode.
4138         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
4139         rather than separate functions for each alignment.
4140         (mips_find_symbol): Delete.
4141         (mips16_insn_length): New function, split out from
4142         mips16_lay_out_constants.
4143         (mips16_rewrite_pool_refs): New function.
4144         (mips16_lay_out_constants): Rework. Remove string handling.
4145         Always create an inline constant pool.
4146         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
4147         (UNSPEC_ALIGN): New constants.
4148         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
4149         (UNSPEC_ALIGN_[248]): Delete.
4150         (consttable_int, consttable_float, align): New patterns.
4151         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
4152
4153 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
4154
4155         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
4156         __unn_args_eq.
4157
4158 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
4159
4160         PR target/14715
4161         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
4162         with STARTING_FRAME_OFFSET.
4163
4164 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4165
4166         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
4167         * config/mips/mips.c (macc_msac_operand): New function.
4168         * config/mips/mips.md (*msac): Move after *macc.
4169         (*msac2): New.  Generalize macc-related peepholes so that they apply
4170         to msac too.
4171
4172 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
4173
4174         * opts.c (decode_options): Do not enable flag_rename_registers
4175         and flag_web at -O3.
4176         * toplev.c (flag_rename_registers): Initialize
4177         flag_rename_registers and flag_web to
4178         AUTODETECT_FLAG_VAR_TRACKING.
4179         (default_debug_hooks): New global.
4180         (process_options): Initialize default_debug_hooks.  Warn if
4181         -fvar-tracking specified but not supported by the current
4182         debug format.  Do not run var tracking at -O0 or if not
4183         supported by the current debug format, even if
4184         -fvar-tracking was given.  If -fno-rename-registers
4185         is not specified, always run register renaming if var
4186         tracking is supported by the default debugging information
4187         format for the target, and we are at -O1 or higher; similarly
4188         for -fweb, but only at -O2 or higher.
4189         * doc/invoke.texi (Optimize Options): Document this.
4190
4191 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4192
4193         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
4194         * configure: Regenerate.
4195
4196 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4197
4198         * gcc.c (used_arg): Check whether an option has been removed.
4199
4200 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4201
4202         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
4203         debugging on Solaris 7 and up.
4204
4205 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4206
4207         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
4208         IRIX 5 port.
4209         Remove -save-temps workaround, handled automatically.
4210         Require GNU binutils 2.15 for debugging.
4211         Remove SGI make warnings since GNU make is now required.
4212         (Specific, mips-sgi-irix6): Some markup fixes.
4213         Describe MIPSpro C problems and workarounds.
4214         Mention working O32 ABI support.
4215         Recommend GNU as 2.15 for O32 with debugging.
4216         Remove description of fixed structure pass/return bug.
4217
4218 2004-04-16  DJ Delorie  <dj@redhat.com>
4219
4220         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
4221         TYPE_FIELDS.
4222         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
4223
4224 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4225
4226         * pa.md: Remove unnecessary declarations for asm_out_file.
4227
4228         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
4229         SAR register.  Fix comment.
4230         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
4231         (%cr11).
4232
4233         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
4234
4235 2004-04-16  Nick Clifton  <nickc@redhat.com>
4236
4237         * config/arm/arm.c (arm_override_options): Revert previous patch.
4238         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
4239         be safely built.
4240
4241 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
4242
4243         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
4244         bug.
4245         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
4246         TARGET_DEFAULT): Changed. Ditto.
4247         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
4248         TARGET_ENDIAN_DEFAULT): Added. Ditto.
4249         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
4250         (TARGET_ENDIAN_DEFAULT): Added.
4251
4252 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4253
4254         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
4255         ATTR_CONST_NOTHROW_LIST.
4256
4257 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4258
4259         PR/middle-end 14915
4260         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
4261         BITS_BIG_ENDIAN.
4262
4263 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4264
4265         * ra-debug.c (ra_print_rtx): Add break's to case legs.
4266
4267 2004-04-14  James E Wilson  <wilson@specifixinc.com>
4268
4269         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
4270
4271 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
4272
4273         * libada-mk.in: New file.
4274         * configure.ac: Create libada-mk from libada-mk.in.
4275         * configure: Regenerate.
4276
4277 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
4278
4279         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
4280         (logb_optab, ilogb_optab): Define corresponding macros.
4281         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
4282         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
4283         using logb?f2 and ilogb?i2 patterns.
4284         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
4285         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
4286         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
4287         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4288
4289         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
4290         and UNSPEC_XTRACT_EXP.
4291
4292         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
4293         patterns to implement fxtract x87 instruction.
4294         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
4295         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
4296         intrinsics.
4297         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
4298         x87's fxtract insn.
4299
4300 2004-04-14  Eric Christopher  <echristo@redhat.com>
4301
4302         * config/mips/t-elf: Enable multilibs by default.
4303
4304 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
4305
4306         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
4307         previous fix to check HAVE_return at runtime too.
4308
4309 2004-04-14  Nick Clifton  <nickc@redhat.com>
4310
4311         * config/arm/arm.c (arm_override_options): If the user has not
4312         specified an ABI, then default to AAPCS for the iWMMXt processor.
4313         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
4314         * config/arm/t-xscale-coff: Likewise.
4315
4316 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4317
4318         * builtins.c (fold_builtin_isdigit): New.
4319         (fold_builtin): Handle BUILT_IN_ISDIGIT.
4320         * defaults.h: Add TARGET_DIGIT0 and sort.
4321         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
4322
4323 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4324
4325         * builtins.c (fold_builtin_cabs, fold_builtin): Use
4326         `mathfn_built_in' to determine the new builtin.
4327         * fold-const.c (fold): Likewise.
4328
4329 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
4330
4331         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
4332         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
4333         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
4334         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
4335         (ASM_SPEC): Update accordingly.
4336         * config/mips/mips.c: Update after above renaming.
4337         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
4338         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
4339
4340 2004-04-13  James E Wilson  <wilson@specifixinc.com>
4341
4342         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
4343         increment errorcount and return false instead of true.
4344
4345 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
4346
4347         * optabs.c (expand_twoval_unop): Reorder function arguments.
4348         * builtins.c (expand_builtin_mathfn_3): Update calls to
4349         expand_twoval_unop.
4350
4351         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
4352         and UNSPEC_TAN_TAN. Add missing comment.
4353
4354         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
4355         patterns to implement fptan x87 instruction.
4356         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
4357         and tanl built-ins as inline x87 intrinsics. Define corresponding
4358         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
4359         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
4360         x87's fptan insn.
4361
4362 2004-03-13  Richard Henderson  <rth@redhat.com>
4363
4364         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
4365         for LABEL_REFs.
4366
4367         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
4368         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
4369         * doc/invoke.texi: Update to match.
4370
4371         * varasm.c (unlikely_text_section): Use assemble_align instead of
4372         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
4373         correct alignment argument.
4374
4375 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
4376
4377         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
4378         after setting reg_last_reload_reg for optional output reloads.
4379
4380 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
4381
4382         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
4383         Definition of these two macros are corrected by adding
4384         matchine right paren.
4385
4386 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
4387
4388         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
4389
4390 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4391
4392         * config/i386/i386.c (output_387_reg_move): New function.
4393         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
4394         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
4395         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
4396         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
4397         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
4398
4399 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4400
4401         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
4402         TYPE_DECL.
4403         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
4404         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
4405         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
4406         Use skip_simple_arithmetic to find SAVE_EXPR.
4407         (force_type_save_exprs, force_type_save_exprs_1): New functions.
4408         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
4409         Properly chain multiple pointers.
4410         (copy_tree_r): Copy a TYPE_DECL.
4411         * tree.c (variably_modified_type_p): Add some missing tests and
4412         make some other minor changes.
4413         * tree.h (force_type_save_exprs): New declaration.
4414
4415 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4416
4417         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
4418         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
4419         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
4420         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
4421         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
4422         x%-1 into 0 (or x&0 if x has side-effects).
4423
4424 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4425
4426         * config/rs6000/rs6000.md: Document why a pattern is not
4427         available.
4428
4429         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
4430         of floats on the E500.
4431         (branch_positive_comparison_operator): Do not allow NE even on the
4432         E500.
4433
4434 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4435
4436         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
4437         in_text_unlikely_section to in_unlikely_text_section.
4438
4439 2004-04-11  Roger Sayle  <roger@eyesopen.com>
4440
4441         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
4442         calling convention to allow a NULL_TREE to be returned.  Factor
4443         sanity checks from callers, return NULL_TREE when appropriate.
4444         (fold): Handle COMPOUND_EXPR operands of binary expressions
4445         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
4446         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
4447         calls to fold_binary_op_with_conditional_arg.
4448
4449 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4450
4451         * config/mips/iris5.h (current_section_flags):  Add
4452         in_unlikely_executed_text and default case.
4453
4454 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
4455
4456         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
4457         failure on solaris. Place ifdef HAVE_return around gen_ret call.
4458         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
4459         HAVE_return and place it around the place where it is needed.
4460
4461 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
4462
4463         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
4464         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
4465         and NORMAL_TEXT_SECTION_NAME.
4466         (unlikely_text_section): Check targetm.have_named_sections
4467         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
4468         instead of SECTION_FORMAT_STRING.
4469         * config/mips/iris5.h (current_section_name): Add
4470         in_unlikely_executed_text case and move the abort into the switch.
4471         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
4472         (NORMAL_TEXT_SECTION_NAME): Remove.
4473         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
4474         (SECTION_FORMAT_STRING): Remove.
4475         * defaults.h (SECTION_FORMAT_STRING): Remove.
4476         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
4477         (SECTION_FORMAT_STRING): Remove.
4478
4479 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
4480
4481         * c-typeck.c (common_type): Prefer long long to long when same
4482         precision.
4483
4484 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
4485
4486         PR 14887
4487         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
4488         mode argument.
4489         * config/ia64/ia64.c (ia64_hpux_file_end): Check
4490         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
4491
4492 2004-04-09  Roger Sayle  <roger@eyesopen.com>
4493
4494         * simplify-rtx.c (mode_signbit_p): New function to check whether
4495         an RTX is an immediate constant that represents the most significant
4496         bit of a given machine mode.
4497         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
4498         C is the sign bit.
4499         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
4500         when C2 is the sign bit.
4501         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
4502         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
4503         sign bit.
4504
4505 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4506
4507         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
4508         TYPE_MODE.
4509
4510 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
4511
4512         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
4513         of TREE_READONLY for types.
4514
4515 2004-04-09  Caroline Tice  <ctice@apple.com>
4516
4517         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
4518         (struct basic_block_def):  Add new field, partition.
4519         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
4520         definitions.
4521         (partition_hot_cold_basic_blocks): Add extern function
4522         declaration.
4523         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
4524         include statements.
4525         (N_ROUNDS): Increase the maximum number of rounds by 1.
4526         (branch_threshold): Add array value for new round.
4527         (exec_threshold): Add array value for new round.
4528         (push_to_next_round_p): New function.
4529         (add_unlikely_executed_notes): New function.
4530         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
4531         (mark_bb_for_unlikely_executed_section): New function.
4532         (add_labels_and_missing_jumps): New function.
4533         (add_reg_crossing_jump_notes): New function.
4534         (fix_up_fall_thru_edges): New function.
4535         (find_jump_block): New function.
4536         (fix_crossing_conditional_branches): New function.
4537         (fix_crossing_unconditional_branches): New function.
4538         (fix_edges_for_rarely_executed_code): New function.
4539         (partition_hot_cold_basic_blocks): New function.
4540         (find_traces):  Add an extra round for partitioning hot/cold
4541         basic blocks.
4542         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
4543         and only cold blocks, into the last (extra) round of collecting traces.
4544         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
4545         over crossing edges.
4546         (bb_to_key):  Add code to correctly identify cold blocks when
4547         doing partitioning.
4548         (connect_traces): Modify to connect all the non-cold traces first, then
4549         go back and connect up all the cold traces.
4550         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
4551         * cfg.c (entry_exit_blocks): Add initialization for partition field in
4552         entry and exit blocks.
4553         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
4554         if we are doing hot/cold partitioning.
4555         * cfgcleanup.c (cfglayout.h): Add new include statement.
4556         (try_simplify_condjump): Modify to not attempt on blocks with jumps
4557         that cross section boundaries.
4558         (try_forward_edges): Likewise.
4559         (merge_blocks_move_predecessor_nojumps): Likewise.
4560         (merge_blocks_move_successor_nojumps): Likewise.
4561         (merge_blocks_move): Likewise.
4562         (try_crossjump_to_edge): Modify to not attempt after we have done
4563         the block partitioning.
4564         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
4565         cross section boundaries.
4566         (try_optimize_cfg): Likewise.
4567         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
4568         jumps that cross section boundaries.
4569         * cfglayout.c (flags.h): Add new include statement.
4570         (update_unlikely_executed_notes):  New function.
4571         (fixup_reorder_chain):  Add code so when a new jumping basic block is
4572         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
4573         updated appropriately.
4574         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
4575         introduced by this optimization.
4576         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
4577         extern function declaration.
4578         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
4579         list of notes that can be deleted.
4580         (create_basic_block_structure):  Add initialization for partition field.
4581         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
4582         section boundaries.
4583         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
4584         cross section boundaries.
4585         (commit_one_edge_insertion): Add code so newly created basic block
4586         ends up in correct (hot or cold) section.  Modify to disallow
4587         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
4588         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
4589         crosses section boundaries.
4590         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
4591         cross section boundaries.
4592         (force_nonfallthru_and_redirect): Modify to make sure new basic block
4593         ends up in correct section, with correct notes attached.
4594         * common.opt (freorder-blocks-and-partition):  Add new flag for this
4595         optimization.
4596         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
4597         the end of functions are written into the correct (hot or cold)
4598         section.
4599         (dbx_source_file): Add code so writing debug file information
4600         doesn't incorrectly change sections.
4601         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
4602         in partitioning hot/cold basic blocks into separate sections.
4603         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
4604         section partitioning.
4605         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
4606         conditional branches can span all of memory.
4607         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
4608         unconditional branches can span all of memory.
4609         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
4610         (final_scan_insn):  Add code to check for NOTE instruction indicating
4611         whether basic block belongs in hot or cold section, and to make sure
4612         the current basic block is being written to the appropriate section.
4613         Also added code to ensure that jump table basic blocks end up in the
4614         correct section.
4615         * flags.h (flag_reorder_blocks_and_partition):  New flag.
4616         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
4617         one of the branches has a jump that crosses between sections.
4618         (find_if_case_2): Likewise.
4619         (ifcvt): Modify to not attempt to mark loop exit edges after
4620         hot/cold partitioning has occurred.
4621         * opts.c (decode_options): Code to handle new flag,
4622         flag_reorder_blocks_and_partition; also to turn it off if
4623         flag_exceptions is on.
4624         (common_handle_option): Code to handle new flag,
4625         flag_reorder_blocks_and_partition.
4626         * output.h (unlikely_text_section): New extern function declaration.
4627         (in_unlikely_text_section): New extern function declaration.
4628         * passes.c (rest_of_handle_stack_regs):  Add
4629         flag_reorder_blocks_and_partition as an 'or' condition for calling
4630         reorder_basic_blocks.
4631         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
4632         as an 'or' condition for calling reorder_basic_blocks.
4633         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
4634         * print-rtl.c (print_rtx): Add code for handling new note,
4635         NOTE_INSN_UNLIKELY_EXECUTED_CODE
4636         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
4637         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
4638         cross between section boundaries.
4639         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
4640         indicating the basic block containing it belongs in the cold section.
4641         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
4642         between hot and cold sections.
4643         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
4644         initialize this flag, and to tie it to the command-line option
4645         freorder-blocks-and-partition.
4646         * varasm.c (cfglayout.h):  Add new include statement.
4647         (unlikely_section_label_printed):  New global variable, used for
4648         determining when to output section name labels for cold sections.
4649         (in_section):  Add in_unlikely_executed_text to enum data structure.
4650         (text_section):  Modify code to use SECTION_FORMAT_STRING and
4651         NORMAL_TEXT_SECTION_NAME macros.
4652         (unlikely_text_section):  New function.
4653         (in_unlikely_text_section):  New function.
4654         (function_section):  Add code to make sure beginning of function is
4655         written into correct section (hot or cold).
4656         (assemble_start_function):  Add code to make sure stuff is written to
4657         the correct section.
4658         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
4659         to an if statement that was checking 'in_text_section'.
4660         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
4661         condition to an if statement that was checking 'in_text_section'.
4662         (default_section_type_flags_1):  Add check: if in cold section
4663         flags = SECTION_CODE.
4664         * config/darwin.c (darwin_asm_named_section):  Modify to use
4665         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
4666         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
4667         specifically for the i386.
4668         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
4669         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
4670         text string to something more informative.
4671         (NORMAL_TEXT_SECTION_NAME): Add new definition.
4672         (SECTION_FORMAT_STRING):  Add new definition.
4673         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
4674         '!in_unlikely_text_section' as an 'and' condition to an if statement
4675         that was already checking '!in_text_section'.
4676         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
4677         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
4678         sure these are properly defined for linux on ppc.
4679         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
4680         for this new flag.
4681         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
4682         reg_note.
4683         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
4684         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
4685         these new macros.
4686
4687 2004-04-08  Roger Sayle  <roger@eyesopen.com>
4688
4689         * function.c (gen_mem_addressof): When changing the RTX from a REG
4690         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
4691
4692 2004-04-08  Roger Sayle  <roger@eyesopen.com>
4693
4694         PR target/14888
4695         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
4696         truncxfdf2_noop): Provide dummy "fmov" implementations.
4697
4698 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
4699
4700         * gcc.c (default_compilers): Add missing initializers.
4701
4702         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
4703         Return 1 if file was successfully mapped.
4704
4705 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
4706
4707         PR pch/13419
4708         PR pch/14137
4709         Radar #: 3315288
4710         * doc/invoke.texi (Precompiled Headers): Suggest -o
4711         to put an output file in a particular place.  Be more detailed
4712         about which options affect PCH validity and which options
4713         might not work.
4714         * c-pch.c (pch_matching): New.
4715         (MATCH_SIZE): New.
4716         (struct c_pch_validity): New field 'match'.
4717         (pch_init): Handle pch_matching.
4718         (c_common_valid_pch): Check pch_matching.
4719
4720         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
4721
4722 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
4723
4724         * doc/invoke.texi (Precompiled Headers): Warn about known
4725         problems.
4726
4727 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
4728
4729         PR c++/14808
4730         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
4731         to 1 if ASM_OUTPUT_DEF is defined.
4732         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
4733         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
4734         Set to non-zero iff not a one_only decl.
4735
4736 2004-04-08  Paul Brook  <paul@codesourcery.com>
4737
4738         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
4739
4740 2004-04-08  Paul Brook  <paul@codesourcery.com>
4741
4742         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
4743         PROMOTE_FOR_CALL_ONLY.
4744         * config/arm/arm-protos.h (arm_function_value): Declare.
4745         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
4746         (TARGET_PROMOTE_PROTOTYPES): Return false.
4747         (arm_function_value): New function.
4748         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
4749         (FUNCTION_VALUE): Call arm_function_value.
4750         * config/cris/cris.h (PROMOTE_MODE): Rename ...
4751         (PROMOTE_FUNCTION_MODE): ... to this.
4752         (PROMOTE_FOR_CALL_ONLY): Remove.
4753         * config/mmix/mmix.h: Likewise.
4754         * config/s390/s390.h: Likewise.
4755         * config/sparc/sparc.h: Likewise.
4756         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
4757         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
4758         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
4759         (PROMOTE_FOR_CALL_ONLY): Remove.
4760
4761 2004-04-08  Joel Sherrill <joel@oarcorp.com>
4762
4763         PR ada/14538
4764         * ada/5rosinte.adb: Remove fake mprotect() body.
4765         * ada/5rosinte.ads: Add SA_SIGINFO.
4766         * ada/5rtpopsp.adb: Rewrite to use new interface.
4767         * ada/init.c: Reorder so the simple single OS conditional __rtems__
4768         is tested before more complex ones which mix UNIX and embedded
4769         systems in the conditional.
4770
4771 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
4772
4773         PR ada/14665
4774         * ada/osint.adb (Find_Program_Name): Rework to properly handle
4775         filenames which end in .exe or have versioning suffixes like VMS.
4776
4777 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
4778
4779         PR target/10129
4780         * config/darwin.c (darwin_encode_section_info): When the decl has
4781         a DECL_INITIAL, it is only defined also when it is not a common.
4782
4783 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4784
4785         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
4786         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
4787
4788 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
4789
4790         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
4791         global register variables.
4792
4793 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
4794
4795         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
4796         rpc_xdr_lvalue_cast_b): New fixes.
4797         * fixinc/fixincl.x: Regenerate.
4798         * fixinc/tests/base/rpc/xdr.h: Add new tests.
4799
4800 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
4801
4802         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
4803         to power4 and power5 entries.
4804
4805 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
4806
4807         * c-common.h (pending_lang_change): Mark for PCH.
4808
4809 2004-04-07  Caroline Tice  <ctice@apple.com>
4810
4811         * gcc.c (main): Move 'break' in main loops (on an error)
4812         to wait until error processing has occurred.
4813
4814 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
4815
4816         * config.gcc: Stop changing enable_threads midstream.
4817         Replace uses of enable_threads_flag with enable_threads.
4818         * configure.ac: Replace uses of enable_threads_flag with
4819         enable_threads.  Improve autoconf quotation in one place.
4820         * configure: Regenerate.
4821
4822 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
4823
4824         * builtins.c: Implement support for sincos function.
4825         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
4826         BUILT_IN_COS{,F,L}.
4827         (expand_builtin_mathfn_3): New function.
4828         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
4829         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
4830         flag_unsafe_math_optimization is set.
4831
4832         * optabs.h (enum optab_index): Add new OTI_sincos.
4833         (sincos_optab): Define corresponding macro.
4834
4835         * optabs.c (init_optabs): Initialize sincos_optab.
4836         (expand_twoval_unop): New function.
4837
4838         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
4839         patterns.
4840
4841         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
4842         and UNSPEC_SINCOS_SIN.
4843
4844         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
4845         sincosxf3): New patterns to implement sincos, sincosf and sincosl
4846         built-ins as inline x87 intrinsics. Define splits for
4847         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
4848         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
4849         sincos patterns.
4850         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
4851         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
4852
4853         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
4854         x87's fsincos insn.
4855
4856 2004-04-06  Devang Patel  <dpatel@apple.com>
4857
4858         PR 14467
4859         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
4860
4861 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4862
4863         * doc/install.texi: Update HP-UX 11 installation procedure.
4864
4865 2004-04-06  Paul Brook  <paul@codesourcery.com>
4866
4867         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
4868
4869 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
4870
4871         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
4872         when the TLS address is generated by a function call.
4873         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
4874         (tls_local_dynamic): Likewise.
4875
4876 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
4877
4878         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
4879         and TYPE_VOLATILE.
4880
4881 2004-04-05  Caroline Tice  <ctice@apple.com>
4882
4883         * gcc.c (combine_flag): New global variable, for new driver option.
4884         (struct compiler): Add two new fields, to be used when
4885         combining multiple input files in a single pass (IMA).
4886         (default_compilers):  Add values for the new fields to all
4887         compiler entries. Modify the "@c" compiler entry for doing IMA
4888         properly with "-save-temps" and the "combine" flag.
4889         (option_map):  Add new driver option, "--combine", to tell driver
4890         to pass multiple input files to compiler at one time.
4891         (have_o_argbuf_index): New global variable.
4892         (store_arg): Modify to assign value to have_o_argbuf_index.
4893         (struct infile):  Add three new fields, to help with IMA.
4894         (display_help): Add help for new "combine" option.
4895         (process_command): Remove local variable have_o; add code to check
4896         for new "combine" option; remove assignment to combine_inputs.
4897         (do_spec_1):  Modify to deal with IMA better.
4898         (main): Make variable 'lang_n_infiles' local to entire function
4899         rather than to a single block.  Use flag combine_flag to
4900         determine whether to do IMA or not; Modify loop initializing
4901         infiles to deal properly with linker files.
4902         Add code for doing preprocessing in presence of
4903         IMA with "-save-temps" flag.  Modify "main" loop to handle
4904         multiple input files, in multiple languages, with or without
4905         preprocessing,  gracefully.
4906         * toplev.c (set_src_pwd): Modify to not complain if attempting to
4907         re-set it to same directory it's previously been set to (avoid
4908         irritating, meaningless warning messages when doing IMA with
4909         save-temps).
4910         * doc/invoke.texi: Add "-combine" to list of Overall Options;
4911         remove documentation about IMA that is no longer accurate; Add
4912         documentation explaining what "-combine" does.
4913         * ada/lang-specs.h: Add initialization values for new fields in
4914         "struct compiler".
4915         * cp/lang-specs.h: Likewise.
4916         * f/lang-specs.h: Likewise.
4917         * java/lang-specs.h: Likewise.
4918         * objc/lang-specs.h: Likewise.
4919         * treelang/lang-specs.h: Likewise.
4920
4921 2004-04-05  David Edelsohn
4922
4923         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
4924         symbol handling.
4925
4926 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
4927             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4928
4929         PR optimization/13424 (hppa), bootstrap/14462, c/14828
4930         * pa.md: Use replace_equiv_address to retain the attributes of the
4931         memory operands used in the split and peephole2 patterns for optimizing
4932         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
4933
4934 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4935
4936         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
4937         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
4938         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
4939         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
4940         PARM_DECL.
4941         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
4942         for a type.
4943         * print-tree.c (print_node): Properly handle side-effects, readonly,
4944         and constant flags.
4945         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
4946         and TREE_CONSTANT if not a type.
4947         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
4948         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
4949         (NON_TYPE_CHECK): New macro.
4950         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
4951
4952 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
4953
4954         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
4955         to DWARF2_DEBUG unconditionally.
4956         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
4957
4958 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
4959             Nathanael Nerode  <neroden@gcc.gnu.org>
4960
4961         PR target/14548
4962         * config.host: Set the shell variable host_can_use_collect2.
4963         Set it to yes by default, and to no for alpha*-dec-*vms*,
4964         i[34567]86-*-mingw32*, and powerpc-*-beos*.
4965         * configure.ac: Set and substitute the shell variable collect2.
4966         Give an error if use_collect2 is yes and host_can_use_collect2 is
4967         no.
4968         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
4969         uses.  Initialize to @collect2@.
4970         (STAGESTUFF): Remove $(USE_COLLECT2).
4971         * config/alpha/x-vms (USE_COLLECT2): Don't set.
4972         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
4973         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
4974         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
4975         * configure: Regenerate.
4976
4977 2004-04-04  Roger Sayle  <roger@eyesopen.com>
4978
4979         * simplify-rtx.c (simplify_binary_operation): Constant fold
4980         DIV, MOD, UDIV and UMOD using div_and_round_double.
4981
4982 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
4983
4984         PR c++/14804
4985         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
4986         RECORD_TYPEs.
4987
4988 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
4989
4990         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
4991         documentation.
4992
4993 2004-04-04  Roger Sayle  <roger@eyesopen.com>
4994
4995         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
4996         updating the REG_EQUAL note on an insn's libcall_insn.
4997
4998 2004-04-04  Roger Sayle  <roger@eyesopen.com>
4999
5000         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
5001
5002 2004-04-03  Roger Sayle  <roger@eyesopen.com>
5003
5004         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
5005         with reorder_operands_p.
5006
5007 2004-04-03  Jan Hubicka  <jh@suse.cz>
5008
5009         * md.texi (vec_set, vec_extract, vec_init): Document.
5010
5011 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
5012
5013        * opts.c (decode_options): Do function inlining with very small
5014        max-inline-insns-* parameters when optimizing for size.
5015
5016 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
5017
5018         * config/i386/i386.h (TARGET_NOCONA): New macro.
5019         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
5020         (processor_type): Add PROCESSOR_NOCONA.
5021
5022         * config/i386/i386.md (cpu): Add nocona to the attribute values.
5023
5024         * config/i386/i386.c (nocona_cost): New variable.
5025         (m_NOCONA): New macro.
5026         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
5027         x86_branch_hints, x86_use_sahf, x86_single_stringop,
5028         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
5029         x86_integer_DFmode_moves, x86_partial_reg_dependency,
5030         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
5031         x86_decompose_lea, x86_arch_always_fancy_math_387,
5032         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
5033         x86_ext_80387_constants, x86_four_jump_limit):
5034         (override_options): Add nocona_cost to processor_target_table.
5035         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
5036         (incdec_operand): Prevent inc/dec generation for Nocona too.
5037         (ix86_issue_rate): Add PROCESSOR_NOCONA.
5038
5039 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
5040
5041         * rtlanal.c (find_reg_note): Manually
5042         unswitch the loop.
5043
5044 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
5045
5046         * genemit.c (gen_split): Change prototype of generated code.
5047         * genrecog.c (write_action): Adjust prototype for and calls to
5048         gen_split_*.
5049         * gensupport.c (struct queue_elem): Add split field.
5050         (queue_pattern): Return a value.  Clear the split field.
5051         (process_rtx): Maintain an association between an insn and the
5052         split generated from it for a define_insn_and_split.
5053         (process_one_cond_exec): Generate a new split for a
5054         define_insn_and_split.
5055         * config/arm/arm-protos.h (arm_split_constant): Add insn
5056         parameter.
5057         (emit_constant_insn): New function.
5058         (arm_gen_constant): Use it.
5059         * config/arm/arm.md: Adjust calls to arm_split_constant.
5060
5061 2004-04-02  Jan Hubicka  <jh@suse.cz>
5062
5063         * cgraph.c: Add overall comment.
5064         (cgraph_inline_hash): New global variable.
5065         (cgraph_create_node): Break out from ...
5066         (cgraph_node): ... here.
5067         (cgraph_edge): New function.
5068         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
5069         (cgraph_remove_edge): Accept edge, intead of source and destination.
5070         (cgraph_redirect_edge_callee): New.
5071         (cgraph_remove_node): Update all new datastructures.
5072         (cgraph_record_call, cgraph_remove_call): Kill.
5073         (dump_cgraph_node): Break out from ... ; dump new datastructures.
5074         (dump_cgraph): ... here.
5075         (cgraph_function_possibly_inlined_p): Use new hashtable.
5076         (cgraph_clone_edge, cgraph_clone_node): New.
5077         * cgraph.h: Include hashtab.h
5078         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
5079         fields, add inlined_to pointer.
5080         (cgraph_node): Add pointer to next_clone.
5081         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
5082         (cgraph_remove_call, cgraph_record_call): Kill.
5083         (cgraph_inline_hash): Declare.
5084         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
5085         cgraph_redirect_edge_callee): Declare.
5086         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
5087         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
5088         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
5089         * cgraphunit.c: Add overall comment.
5090         (cgraph_optimize_function): Kill.
5091         (cgraph_assemble_pending_functions): Do not assemble inline clones.
5092         (cgraph_finalize_function): Update call of cgraph_remove_node
5093         (record_call_1): Record call sites.
5094         (cgraph_create_edges): Accept node instead of decl argument.
5095         (error_found): New static variable.
5096         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
5097         (cgraph_analyze_function): Update for new datastructures.
5098         (cgraph_finalize_compilation_unit): Plug memory leak.
5099         (cgraph_optimize_function): Kill.
5100         (cgraph_expand_function): Do not use cgraph_optimize_function.
5101         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
5102         cgraph_inlined_callees): Kill.
5103         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
5104         clones.
5105         (estimate_growth): Simplify.
5106         (cgraph_clone_inlined_nodes): New function.
5107         (cgraph_mark_inline_edge): Re-implement.
5108         (cgraph_mark_inline): Likewise.
5109         (cgraph_check_inline_limits): Simplify.
5110         (cgraph_recursive_inlining_p): New.
5111         (update_callee_keys): Break out from ...
5112         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
5113         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
5114         Likewise.
5115         (cgraph_expand_all_functions):  Remove inline clones from the ordered
5116         list.
5117         (cgraph_preserve_function_body_p): New predicate.
5118         (cgraph_optimize): Verify cgraph.
5119         * function.h (struct function): Add fields saved_tree/saved_args.
5120         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
5121         * toplev.c (rest_of_compilation): Do not free cfun.
5122         * tree-inline.c: Include function.h
5123         (struct inline_data): Add saving_p field; replace decl/current_decl by
5124         node/current_node.
5125         (insert_decl_map): New function.
5126         (copy_body_r): Handle saving; update cgraph datastructure.
5127         (copy_body): Handle recursive inlining.
5128         (initialize_inlined_parameters): Likewise.
5129         (expand_call_inline): Propagate node attributes; update cgraph.
5130         (optimize_inline_calls): Verify that datastructure still match.
5131         (save_body): New function.
5132         * tree-inline.h (save_body): New.
5133         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
5134         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
5135         * langhooks.c (lang_hooks): Add update_decl_after_saving.
5136
5137 2004-04-01  Serge Belyshev  <1319@bot.ru>
5138
5139         PR target/14702
5140         * config/i386/i386.md: fix source operand constraints in
5141         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
5142
5143 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5144
5145         * fold-const.c (folda): Preserve types of comparisons.
5146
5147 2004-04-01  Richard Henderson  <rth@redhat.com>
5148
5149         * toplev.c (backend_init): Move init_optimization_passes call ...
5150         (lang_dependent_init): ... here.
5151
5152 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
5153             Jakub Jelinek  <jakub@redhat.com>
5154
5155         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
5156         -lgcc --as-needed -lgcc_s --no-as-needed by default.
5157         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
5158         * configure: Rebuilt.
5159         * config.in: Rebuilt.
5160         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
5161         (stage2-start, stage3-start, stage4-start): Likewise.
5162         (stageprofile-start, stagefeedback-start): Likewise.
5163
5164 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5165
5166         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
5167         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5168         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5169         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5170         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
5171         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
5172         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
5173         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
5174         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
5175         * config/sparc/t-linux: Removed.
5176
5177 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5178
5179         PR c++/14755
5180         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
5181         "bitfld++ == const" to "++bitfld == const + incr" transformations.
5182
5183 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5184
5185         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
5186         * stor-layout.c (layout_decl): Likewise.
5187         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
5188         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
5189         * print-tree.c (print_node): Handle various used of unsigned_flag.
5190         * tree.def (BIT_FIELD_REF): Update comment.
5191         * tree.h (TREE_UNSIGNED): Deleted.
5192         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
5193
5194 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5195
5196         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
5197         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
5198         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
5199         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
5200         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
5201         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
5202         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
5203         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
5204         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
5205         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
5206         REAL_TYPE, not INTEGER_TYPE.
5207         (layout_type, case VECTOR_TYPE): Simplify code.
5208         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
5209         * tree.h: Update comments.
5210         (STRIP_NOPS): Use TYPE_UNSIGNED.
5211         (TYPE_UNSIGNED): New macro.
5212         (TYPE_TRAP_SIGNED): Remove now redundant check.
5213         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
5214
5215 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5216
5217         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
5218
5219 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
5220
5221         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
5222         Add darwin-fpsave.asm, darwin-vecsave.asm,
5223         and darwin-world.asm.
5224         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
5225         as the asm files contain altivec instructions.
5226         * config/rs6000/darwin-fpsave.asm: New file.
5227         * config/rs6000/darwin-vecsave.asm: New file.
5228         * config/rs6000/darwin-world.asm: New file.
5229
5230 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
5231
5232         * gengtype-yacc.y (option, stringseq): Add missing
5233         terminating semicolon.
5234
5235 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
5236
5237         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
5238         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
5239         tls_dtprel_ha_32, tls_dtprel_ha_64,
5240         tls_dtprel_lo_32, tls_dtprel_lo_64,
5241         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
5242         tls_tprel_ha_32, tls_tprel_ha_64,
5243         tls_tprel_lo_32, tls_tprel_lo_64,
5244         tls_got_tprel_32, tls_got_tprel_64,
5245         tls_tls_32, tls_tls_64): Replace register_operand with
5246         gpc_reg_operand.
5247
5248 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
5249
5250         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
5251         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
5252         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
5253         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
5254         *ctrdi_internal6): Replace register_operand with
5255         nonimmediate_operand.
5256
5257 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
5258
5259         * fold-const.c (fold): Reassociate multiply expression
5260         with an adjacent non-multiply expression to use
5261         architecture's multiply-add instruction.
5262
5263 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
5264
5265         * gengtype.c (create_option): New function.
5266         * gengtype.h: Prototype it.
5267         * gengtype-yacc.y (stringseq): New rule.
5268         (option): Use create_option.  Add new bare ID production.  Use
5269         stringseq, not STRING directly.
5270
5271         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
5272         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
5273         * varray.h, config/alpha/alpha.c:
5274         Use new shorter form of GTY markers.
5275
5276         * doc/gty.texi: Rewrite.
5277
5278 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
5279
5280         * config/darwin.c (machopic_function_base_name):
5281         Remove current_name and getting the name of the
5282         current function.
5283
5284 2004-03-30  Nick Clifton  <nickc@redhat.com>
5285
5286         * config/arm/arm.md (thumb_jump): Reduce the backward branch
5287         range, and increase the forward branch range, to allow for
5288         the fact that the PC will be off by 4.
5289
5290 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
5291
5292         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
5293
5294 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5295
5296         * config/rs6000/rs6000.c (output_vec_const_move):
5297         Find all cases of EASY_VECTOR_15_ADD_SELF.
5298         (easy_vector_constant_add_self): Accept
5299         all vector constant loadable by vsplt* and vadd*.
5300         (easy_vector_same): Use easy_vector_splat_const.
5301         (easy_vector_const): Use easy_vector_splat_const.
5302         (easy_vector_splat_const): New function.
5303         (gen_easy_vector_constant_add_self): New function.
5304
5305         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
5306         New prototype.
5307
5308         * config/rs6000/altivec.md (movv4si splitter): Change to
5309         emit move insn with halfed vector constant.
5310         (*movv8hi splitter): Likewise.
5311         (*movv16qi splitter): Likewise.
5312
5313 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5314
5315         PR 11591
5316         * config/rs6000/rs6000.c (rs6000_legitimate_address):
5317         Allow any offset to argument pointer in no-strict case.
5318
5319 2004-03-30  Jan Hubicka  <jh@suse.cz>
5320
5321         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
5322         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
5323         dump file in non-unit-at-a-time mode.
5324
5325 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
5326
5327         * config/cris/cris.h: Correct #ifdef to test for
5328         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
5329         HAVE_AS_MUL_BUG_ABORT_OPTION.
5330
5331 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5332
5333         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
5334         the address inside the old RTL.
5335
5336 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
5337
5338         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
5339         (struct c_binding, struct c_scope): Add chain_next
5340         attributes to GTY markers.
5341         (struct lang_identifier, struct lang_tree_node): Define
5342         here...
5343         * c-tree.h: ... not here.  No longer need to declare struct
5344         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5345         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
5346         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5347
5348         PR 14734, 11944
5349         * c-decl.c (get_parm_info): If error_mark_node is encountered
5350         in the bindings chain, unbind and discard it; don't abort.
5351
5352 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
5353             Dorit Naishlos <dorit@il.ibm.com>
5354
5355         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
5356         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
5357
5358 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
5359
5360         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
5361
5362         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
5363         (m68hc11_attribute_table): New attribute "page0" to mark a global
5364         variable as being allocated from within page0 section.
5365         (m68hc11_encode_label): New function.
5366         (m68hc11_strip_name_encoding): New function.
5367         (m68hc11_page0_symbol_p): New function.
5368         (m68hc11_indirect_p): Accept global variables marked in page0.
5369         (m68hc11_encode_section_info): Lookup "page0" attribute.
5370
5371         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
5372         represents access to page0 variables.
5373
5374         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
5375         ("*logicalsi3_silshl16_zext"): Likewise.
5376         ("*ashldi3_const32"): Likewise.
5377         (peephole2 ashift): Likewise.
5378
5379 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5380
5381         * c-tree.h (C_DECL_REGISTER): New.
5382         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
5383         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
5384         (build_array_ref, c_mark_addressable): Set and use it.
5385         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
5386         Allow structures with volatile fields to be declared register.
5387         Don't check TREE_ADDRESSABLE before warning about taking address
5388         of register.
5389         * c-decl.c (finish_decl): Don't allow structures with volatile
5390         fields to be placed in named register.
5391         * doc/trouble.texi: Remove reference to structures with volatile
5392         fields in registers.
5393
5394 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5395
5396         * function.c (thread_prologue_and_epilogue): Move
5397         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
5398         before the epilogue.
5399
5400 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5401
5402         * expr.c (store_constructor): Use gen_int_mode to correctly
5403         sign-extend CONST_INT value.
5404
5405 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5406
5407         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
5408         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
5409         * doc/extend.texi: Likewise.
5410
5411 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
5412
5413         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
5414           with TYPE_ORIG_SIZE_TYPE.
5415
5416 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
5417
5418         PR 14219
5419         * c-typeck.c (build_binary_op): Do not allow comparisons of
5420         vectors.
5421
5422 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
5423
5424         * config.gcc: Remove sparc-tti-*.
5425         * config/sparc/pbd.h: Delete.
5426
5427         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
5428         * config/sparc/aout.h: Likewise.
5429
5430         * config/sparc/sparc.h: Remove if 0'd code.
5431         * config/sparc/sparc.md (call): Remove if 0'd code.
5432         (call_value): Likewise.
5433         (nonlocal_goto): Likewise.
5434         (unimp_insn): Delete.
5435
5436 2004-03-25  Roger Sayle  <roger@eyesopen.com>
5437
5438         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
5439         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
5440
5441 2004-03-25  Richard Henderson  <rth@redhat.com>
5442
5443         PR 11527
5444         * c-typeck.c (pop_init_level): Emit pending init elements earlier
5445         rather than later.
5446
5447 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5448
5449         * builtins.c (fold_builtin): Fix error in last change.
5450
5451 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
5452
5453         * config/mips/mips.h: Formatting fix.
5454
5455 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5456
5457         * builtins.def: Add ctype builtins.
5458         * doc/extend.texi: Likewise.
5459
5460 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5461
5462         * builtins.c (fold_builtin): Add new builtin optimizations for
5463         sqrt and/or cbrt.
5464         * fold-const.c (fold): Likewise.
5465
5466 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
5467
5468         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
5469         (rs6000_sched_groups): New variable.
5470         (processor_target_table): Add power5.
5471         (rs6000_override_options): Set rs6000_sched_insert_nops,
5472         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
5473         from rs6000_sched_groups.
5474         (output_cbranch): Use rs6000_always_hint.
5475         (rs6000_variable_issue): Use rs6000_sched_groups.
5476         (rs6000_adjust_cost): Add CPU_POWER5.
5477         (is_microcoded_insn): Use rs6000_sched_groups.
5478         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
5479         Return 2 for POWER5 cracked instructions.
5480         (is_cracked_insn): Use rs6000_sched_groups.
5481         (is_branch_slot_insn): Use rs6000_sched_groups.
5482         (rs6000_issue_rate): Add CPU_POWER5.
5483         (rs6000_sched_finish): Use rs6000_sched_groups.
5484         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
5485         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
5486         (DEFAULT_SCHED_COSTLY_DEP): Delete.
5487         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
5488         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
5489         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
5490         * config/rs6000/power5.md: New file.
5491         * doc/invoke.texi: Add power5 option.
5492
5493 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5494
5495         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
5496         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
5497         * doc/invoke.texi: Fix a typo.
5498
5499 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5500
5501         PR optimization/9707.
5502         * stmt.c (emit_case_nodes): Emit equality comparisons instead
5503         of recursing if both children are single-valued cases with no
5504         children.
5505
5506 2004-03-25  Paul Brook  <paul@codesourcery.com>
5507
5508         * config/arm/arm.c (vfp_print_multi): Remove.
5509         (arm_output_fldmx): New function.
5510         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
5511         (arm_expand_prologue): Update to match.
5512         (arm_get_vfp_saved_size): New Function.
5513         (arm_get_frame_offsets): Use it.
5514         (arm_output_epilogue): Use new functions.
5515
5516 2004-03-24  Richard Henderson  <rth@redhat.com>
5517
5518         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
5519         (reg_known_value, reg_known_value_size): Likewise; make static.
5520         (reg_known_equiv_p): Make static.
5521         (clear_reg_alias_info): Update for new indexing.
5522         (get_reg_known_value, set_reg_known_value): New.
5523         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
5524         (canon_rtx): Use them.
5525         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
5526         Don't play queer offsetting games with reg_known_value and
5527         reg_known_equiv_p.
5528         (end_alias_analysis): Free reg_known_value with gc.
5529         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
5530         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
5531         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
5532         functions instead.
5533
5534 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
5535
5536         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
5537         config/i386/mmintrin.h: Update copyright.
5538
5539 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5540
5541         * configure.ac: Add --enable-werror-always (for top level bootstrap
5542         support).
5543         * configure: Regenerate.
5544
5545 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
5546
5547         * objc/objc-act.c (objc_comptypes): Treat comparisons
5548         between 'Class' and '<class> *' as explicitly invalid.
5549
5550 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
5551
5552         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
5553         (-fprofile-values): Add enabled with profile-{generate,use}.
5554         (-fvpt): Same.
5555         (-ftracer): Add enabled with profile-use.
5556         (-funit-at-a-time): Add enabled at -O2,-O3.
5557         (-funroll-loops): Add enabled with profile-use.
5558         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
5559         (max-gcse-passes): Mention default.
5560         (max-cse-path-length): Mention default.
5561
5562 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5563
5564         * Makefile.in (STRICT2_WARN): Reorder.
5565         * configure.ac: Check for -Wold-style-definition, and use it
5566         in strict1_warn if it's available.
5567         * configure: Regnerate.
5568
5569 2004-03-24  Paul Brook  <paul@nowt.org>
5570
5571         * config.gcc <arm>: Add --with-abi=
5572         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
5573         thumb_far_jump_used): Remove prototypes.
5574         (arm_needs_doubleword_align): Add prototype.
5575         (thumb_compute_initial_elimination_offset): Ditto.
5576         * config/arm/arm.c (arm_get_frame_offsets): New function.
5577         (use_return_insn, output_return_instruction, arm_output_epilogue,
5578         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
5579         arm_expand_prologue, thumb_expand_epilogue): Use it.
5580         (arm_abi, target_abi_name, all_arm_abis): New variables.
5581         (arm_override_options): Set them.  Set structure padding for AAPCS.
5582         (arm_return_in_memory): Update ABI check.
5583         (arm_init_cumulative_args): Initialize can_split.
5584         (arm_needs_doubleword_align): New function.
5585         (arm_function_arg): Don't split args after pushing to stack. Handle
5586         doubleword/even reg alignment.
5587         (arm_va_arg): Handle all doubleword aligned args.
5588         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
5589         on ABI, not CPU.
5590         (arm_compute_save_reg0_reg12_mask): Fix comment.
5591         (thumb_get_frame_size, thumb_get_frame_size): Remove.
5592         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
5593         value for alignment.
5594         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
5595         to match.
5596         (thumb_compute_initial_elimination_offset): New function.
5597         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
5598         unneccessary rounding.
5599         * config/arm/arm.h (target_abi_name): Declare.
5600         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
5601         arm_abi_type, ARM_DEFAULT_ABI): Define.
5602         (ARM_FLAG_ATPCS): Remove.
5603         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
5604         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
5605         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
5606         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
5607         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
5608         Contitionalize on ABI, not CPU.
5609         (struct arm_stack_offsets): Define.
5610         (struct machine_function): Add stack_offsets.  Remove frame_size.
5611         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
5612         pushed.
5613         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
5614         doubleword alignment.
5615         (THUMB_INITIAL_ELIMINATION_OFFSET,
5616         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
5617         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
5618         * config/arm/arm.md (align_8): Enable for all targets.
5619         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
5620         (ARM_DEFAULT_ABI): Define.
5621         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
5622         -mstructure-size-boundary.
5623
5624 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5625
5626         * configure.ac: Check for -Wno-variadic-macros; don't use
5627         -pedantic (in stage 1 or a simple 'make all') unless it's available,
5628         and if it's available, use it.  Also, clean up check for
5629         -Wno-long-long.
5630         * configure: Regenerate.
5631
5632 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
5633
5634         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
5635         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
5636         (MULTILIB_DEFAULTS): Use it.
5637         (MIPS_CPU_STRING_DEFAULT): Remove.
5638         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
5639         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
5640         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
5641         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
5642         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
5643         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
5644         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
5645         accordingly.
5646
5647 2004-03-24  DJ Delorie  <dj@redhat.com>
5648             Richard Sandiford  <rsandifo@redhat.com>
5649
5650         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
5651         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
5652         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
5653         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
5654         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
5655         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
5656         if TARGET_FIX_VR4122.
5657         * config/mips/mips.md (define_attr length): Account for nops inserted
5658         after macc and dmult when using -mfix-vr4122-bugs.
5659         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
5660         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
5661         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
5662         * config/mips/vr4122-div.S: New file.
5663         * doc/invoke.texi: Document -mfix-vr4122-bugs.
5664
5665 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
5666
5667         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
5668         (TARGET_MIPS4130): New macro.
5669         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
5670         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
5671         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
5672         with PROCESSOR_R4130.
5673         * config/mips/mips.md (define_attr cpu): Add r4130.
5674         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
5675
5676 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5677             Richard Sandiford  <rsandifo@redhat.com>
5678
5679         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
5680
5681 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
5682
5683         PR preprocessor/14438
5684         * cpplib.c (do_pragma): Remove line_change call after pragma
5685         handler.
5686
5687 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
5688
5689         * doc/extend.texi (ARM Built-in Functions): Replace with correct
5690         declarations.
5691
5692 2004-03-23  Roger Sayle  <roger@eyesopen.com>
5693
5694         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
5695         if flag_unsafe_math_optimizations.
5696         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
5697         and TARGET_80387 expand using truncdfsf2_noop pattern.
5698         (truncxfsf2): Likewise using truncxfsf2_noop.
5699         (truncxfdf2): Likewise using truncxfdf2_noop.
5700         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
5701
5702 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
5703
5704         * hooks.c (hook_constcharptr_tree_null): New hook.
5705         * hooks.h (hook_constcharptr_tree_null): New prototype.
5706         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
5707         * target.h (mangle_fundamental_type): New target hook.
5708         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
5709         target hook at rs6000_mangle_fundamental_type.
5710         (rs6000_mangle_fundamental_type): New function.
5711         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
5712
5713 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
5714
5715         PR 12267, 12391, 12560, 13129, 14114, 14133
5716         * c-tree.h: Forward declare struct c_binding.  Declare
5717         c_override_bindings_to_false.  Update prototypes.
5718         (struct lang_identifier): Update comments.  Change fields to be
5719         struct c_binding *.
5720         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
5721         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
5722         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
5723         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
5724         * c-common.h: Update prototypes.
5725         * c-decl.c (struct c_scope): Update commentary.  Remove names,
5726         names_last, parms, parms_last, tags, and shadowed fields.  Add
5727         bindings and depth fields.
5728         (scope_freelist): Move to more appropriate location.
5729         (c_print_identifier): Update for changes to struct lang_identifier.
5730         (objc_mark_locals_volatile): Update for new bindings structures.
5731         (global_bindings_p): Honor c_override_global_bindings_to_false.
5732         (pushlevel): Rename to push_scope; take no arguments; use the
5733         scope_freelist; initialize scope->depth and check for overflow.
5734         (poplevel): Rename to pop_scope; totally rewritten for new bindings
5735         structures.
5736         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
5737         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
5738         Improve some commentary.  Adjust handling of forward parm decls.
5739         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
5740         Preserve C_DECL_IN_EXTERNAL_SCOPE.
5741         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
5742         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
5743         decls.  Rewrite for new bindings structures.  Improve commentary.
5744         Eliminate the copy_node call.
5745         (implicit_decl_warning): Use the "diag" idiom (as seen in
5746         locate_old_decl) to reduce code duplication; call locate_old_decl
5747         if appropriate.  Relocate to remove need for forward declaration.
5748         (implicitly_declare): Adjust for new bindings structures.  Kludge
5749         around Objective-C not-really-builtin functions.
5750         (undeclared_variable): Improve diagnostics.  If current_function_decl
5751         is nonnull but current_function_scope is null, use current_scope.
5752         Use bind.
5753         (lookup_tag): Adjust for new bindings structures.  Kludge around
5754         Objective-C's tag declarations that wind up in the external scope.
5755         (lookup_name): Adjust for new bindings structures.  Kludge around
5756         c-common.c's pseudo-typedefs that wind up in the external scope.
5757         (lookup_name_current_level): Rename lookup_name_in_scope; take a
5758         second argument indicating the scope to examine; rewrite for
5759         new bindings structures.
5760         (c_init_decl_processing): Adjust for renamed functions.  Do not
5761         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
5762         First scope pushed is the external scope, not the global scope.
5763         (builtin_function): Use bind, not pushdecl.  Adjust other bits
5764         for new data structures.  Keep track of builtins that should be
5765         made visible automatically.
5766         (start_decl): Adjust diagnostics.  Remove unnecessary call to
5767         expand_decl.
5768         (grokparms): Return 0 if arg_types is error_mark_node.
5769         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
5770         reversed sense.  Rewrite for new bindings structures.  Do not
5771         leave any decls in the scope, to prevent pop_scope from doing
5772         contradictory things with them.
5773         (finish_struct, finish_enum): Remove redundant diagnostics.
5774         (build_enumerator): Don't cascade diagnostics for error_mark_node.
5775         Mark location where -pedantic changes the meaning of the program.
5776         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
5777         parameter decls into the function's scope structure using bind.
5778         Warn here about function definitions in the wrong style.
5779         Adjust diagnostics.
5780         (store_parm_decls): Correct the determination of whether a
5781         function was defined with a prototype.
5782         (c_write_global_declarations): Operate on all file decls and on
5783         the external scope.  Split body of the loop to...
5784         (c_write_global_declarations_1): ... this new function, to avoid
5785         code duplication.
5786         (truly_local_externals, first_builtin_decl, last_builtin_decl)
5787         (make_scope, pop_scope, in_parm_level_p, set_block)
5788         (any_external_decl, record_external_decl, bind_label, getdecls)
5789         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
5790         (c_reset_state): Delete.
5791         (visible_builtins, c_override_global_bindings_to_false)
5792         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
5793         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
5794         (external_scope, binding_freelist, bind, free_binding_and_advance)
5795         (push_file_scope, pop_file_scope): New.
5796         (pushtag, pushdecl_top_level, lookup_label, declare_label)
5797         (define_label, c_make_fname_decl, finish_decl)
5798         (mark_forward_parm_decls, build_compound_literal)
5799         (grokdeclarator, start_function, check_for_loop_decls)
5800         (identifier_global_value, record_builtin_type): Minor adjustments
5801         for new bindings structures.  Improve diagnostics and commentary.
5802         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
5803         pushlevel/poplevel respectively.
5804         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
5805         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
5806         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
5807         correct loop over multiple translation units; call fatal_error if
5808         requested to compile more than one file at once.  (This disables
5809         IMA temporarily - an up-front error being preferable to a crash.)
5810         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
5811         (all actions): Adjust calls to pushlevel/poplevel.
5812         (parsing_iso_function_signature): Delete.
5813         (extdef_1): Fold into extdef.
5814         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
5815         warn here about function definitions in the wrong style.
5816         (after_tyle_declarator, parm_declarator_starttypename)
5817         (parm_declarator_nostarttypename, notype_declarator): Remove
5818         commented-out productions.
5819         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
5820         an empty TREE_LIST node.  Adjust calls to get_parm_info.
5821         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
5822         to suppress -Wold-style-definition after this error.
5823         (c_parse_file): Don't clear the binding stack or call
5824         finish_fname_decls here.  Correct comment.
5825         * c-typeck.c (same_translation_unit_p): Export.
5826         (common_type): Use c_override_global_bindings_to_false, not
5827         pushlevel/poplevel/declare_parm_level.
5828         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
5829         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
5830         and LANG_HOOKS_GETDECLS with do-nothing stubs.
5831         * objc/objc-lang.c: Likewise.
5832         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
5833         get_parm_info.
5834         (OBJC_VOID_AT_END): Delete; replace all uses
5835         with void_list_node.
5836         (generate_forward_declaration_to_string_table): Delete.
5837         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
5838
5839         * coverage.c (create_coverage): Don't pushdecl anything.
5840         * langhooks.c (lhd_clear_binding_stack): Call
5841         lang_hooks.decls.poplevel, not poplevel.
5842         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
5843         circular list rather than going into an infinite loop.
5844
5845 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
5846
5847         * optabs.c (expand_binop): When synthesizing double word rotates
5848         from single word shifts, use a new register target if the provided
5849         target is not a REG already.
5850
5851 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5852
5853         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
5854         * c-common.c (handle_mode_attribute): Add extra arg to
5855         build_pointer_type_for_mode and build_reference_type_for_mode.
5856         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
5857         for INTEGER_CST.
5858         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
5859         Chain pointers via TYPE_NEXT_PTR_TO.
5860         (build_reference_type_for_mode): Similarly.
5861         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
5862         and build_reference_type_for_mode.
5863         (tree_check4_failed): New function.
5864         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
5865         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
5866         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
5867         Add check.
5868
5869 2004-03-23  Roger Sayle  <roger@eyesopen.com>
5870
5871         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
5872         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
5873         when both A and B are nonnegative.
5874         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
5875         nonzero.
5876
5877 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
5878
5879         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
5880         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
5881
5882 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
5883
5884         PR optimization/14669
5885         * fold-const.c (fold): Only unwiden integer comparisons for equality
5886         and inequality operators, or when the signedness doesn't change.
5887
5888 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
5889
5890         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
5891         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
5892         * config/sparc/t-linux: New file.
5893
5894 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
5895
5896         * gcse.c (can_assign_to_reg_p): New function, split out from...
5897         (want_to_gcse_p): ...here.
5898         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
5899         the rhs of a store.
5900
5901 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
5902
5903         * c-typeck.c (same_translation_unit_p): Fix pasto.
5904
5905 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
5906
5907         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
5908         (PARAM_MAX_SCHED_REGION_INSNS): New.
5909         * sched-rgn.c: Include params.h
5910         (MAX_RGN_BLOCKS): Delete.
5911         (MAX_RGN_INSNS): Delete.
5912         (too_large): Return bool.  Convert to PARAM_VALUE.
5913         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
5914         * doc/invoke.texi (param): Document max-sched-region-blocks and
5915         max-sched-region-insns.
5916
5917 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
5918
5919         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
5920         for base types.
5921
5922 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
5923
5924         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
5925         change.
5926
5927 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
5928
5929         PR c/14069
5930         * c-decl.c (finish_struct): Change type of incorrect flexible array
5931         field into error_mark_node.
5932
5933 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
5934
5935         PR target/14580
5936         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
5937         who are not local for Darwin PIC.
5938
5939 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
5940
5941         * regrename.c (regrename_optimize): Set regs_ever_live for all
5942         registers introduced as replacement.
5943
5944 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
5945
5946         PR middle-end/14470
5947         * expr.c (mark_queue): New function.
5948         (emit_insns_enqueued_after_mark): New function replacing
5949         emit_queue.  Clear the body of emitted queued insns.
5950         (emit_queue): Call emit_insns_enqueued_after_mark.
5951         (store_expr): Mark the increment queue on entry.  Emit
5952         only the incrementations queued when expanding the source.
5953
5954 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
5955
5956         * configure.ac: Allow --disable-coverage-flags (for the future benefit
5957         of top level bootstrap, and consistency).  Reindent.
5958         * configure: Regenerate.
5959
5960 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
5961
5962         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
5963         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
5964         unnecessary casts.
5965
5966 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
5967
5968         PR target/14291
5969         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
5970         __MINGW32__.
5971
5972 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
5973
5974         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
5975         to nonimmediate_operand.
5976         ("*doloop_di"): Likewise.
5977
5978 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
5979
5980         * real.h (struct real_value): Use the same type for all
5981         bitfields.  Rename exp to uexp.
5982         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
5983         Adjust all uses of exp...
5984         * builtins.c: ... here, ...
5985         * emit-rtl.c: ... here, and ...
5986         * real.c: ... and here.
5987
5988 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5989
5990         * pretty-print.c (pp_base_maybe_space): New function.
5991         * pretty-print.h (pp_base_maybe_space): Declare.
5992         (pp_maybe_space): New macro.
5993
5994 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
5995
5996         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
5997
5998 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
5999
6000         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
6001         of using register multiplication cost.
6002         (expand_mult): Adapt choose_mult_variant call.
6003         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
6004         of MODE; pass appropriate cost bound.  Adjust result when
6005         performing signed multiplication by a negative constant.
6006         Don't use intermediate modes larger than word_mode.
6007
6008 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6009
6010         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
6011         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
6012         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
6013         * explow.c (expr_size): Likewise.
6014         * expr.h (placeholder_list, find_placeholder): Deleted.
6015         * expr.c (store_constructor): Likewise.
6016         (get_inner_reference): Likewise.  Also don't call find_placeholder.
6017         (placeholder_list, find_placeholder): Deleted.
6018         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
6019         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
6020         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
6021         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
6022         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
6023         Likewise.
6024         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
6025         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
6026         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
6027         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
6028         Clean up by using first_rtl_op.
6029         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
6030         (substitute_placeholder_in_expr): New function.
6031         * tree.def (WITH_RECORD_EXPR): Deleted.
6032         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
6033         (substitute_placeholder_in_expr): New.
6034
6035 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
6036
6037         * dojump.c (prefer_and_bit_test): Fix which part of
6038         the and_test is replaced.
6039
6040 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
6041
6042         * frontends.texi: Add missing line.
6043
6044 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
6045             Chris Devers  <cdevers@pobox.com>
6046             Joseph S. Myers  <jsm@polyomino.org.uk>
6047
6048         * doc/frontends.texi: Rewrite.
6049         * doc/gcc.texi: Update last modification date.
6050
6051 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
6052
6053         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
6054         message before redirecting the edge.
6055
6056 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6057
6058         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
6059         flag.
6060         * explow.c (force_not_mem): Set REG_POINTER flag according to
6061         MEM_POINTER one.
6062         * rtl.h (MEM_POINTER): New macro.
6063         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
6064         for MEM_POINTER.
6065
6066 2004-03-20  Roger Sayle  <roger@eyesopen.com>
6067
6068         PR target/13889
6069         * cse.c (fold_rtx): Avoid substituting constants into unary
6070         conversion operations.
6071
6072 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6073
6074         * fold-const.c (fold): Replace "expr" with "t".
6075
6076 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
6077
6078         PR c/12373
6079         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
6080         DECL_ORIGINAL_TYPE if there isn't one.
6081
6082 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6083
6084         * fold-const.c (fold): Replace "final_type" with "type".
6085         Remove variable "final_type".
6086
6087 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6088
6089         * fold-const.c (fold): Constify "type".
6090         Replace "TREE_TYPE (t)" with "type".
6091
6092 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6093
6094         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
6095         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
6096         via (*targetm.foo) () with targetm.foo ().
6097
6098 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6099
6100         PR other/14630
6101         * doc/install.texi: Add info directory category and entry.
6102
6103 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6104
6105         * fold-const.c (fold): Replace "t" with "tem" where it is used
6106         as a temporary variable.  Remove "orig_t" and all of its uses.
6107
6108 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6109
6110         * fold-const.c (fold): Remove variable "invert".
6111         Move the handling of relational expressions that can be folded
6112         to a constant ...
6113         (fold_relational_const): ... here.
6114         (tree_expr_nonzero_p): New.
6115
6116 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6117
6118         PR c/14635
6119         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
6120         DEF_GCC_BUILTIN.
6121
6122 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
6123
6124         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
6125         (GTFILES): Add $(srcdir)/dojump.h.
6126         (gt-dojump.h): New dependency.
6127         * dojump.c (and_reg, and_test, shift_test): New static variables.
6128         (prefer_and_bit_test): New function.
6129         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
6130
6131 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6132
6133         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
6134         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
6135         reorg.c, tree.h: Fix comment typos.
6136
6137 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6138
6139         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
6140         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
6141         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
6142         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
6143         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
6144         vmsdbgout.c: Replace calls via (*targetm.foo) () with
6145         targetm.foo ().
6146
6147 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
6148
6149         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
6150         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
6151         always_inline attribute.
6152         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
6153         Treat expansion as completed even if literal argument is
6154         invalid (so that other expansions are not tried in vain).
6155
6156 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6157
6158         * loop-doloop.c (add_test): Replace GEN_INT (0) with
6159         const0_rtx.
6160
6161 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6162
6163         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
6164         ...
6165         (fold_abs_const): ... here.
6166
6167 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6168
6169         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
6170
6171 2004-03-19  Denis Chertykov  <denisc@overta.ru>
6172
6173         PR target/11520
6174         * config/avr/avr.md ("call_insn"): Handle explicit integer
6175         specially.
6176         (call_value_insn): Likewise.
6177
6178 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6179
6180         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
6181
6182 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6183
6184         * fold-const.c (negate_expr): Move the handling of constants
6185         ...
6186         (fold_negate_const): ... here.
6187
6188 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6189
6190         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
6191         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
6192         * tree.c (debug_no_type_hash): Deleted.
6193         (type_hash_canon): Abort if passed a variant.
6194         Check lang_hooks.types.hash_types.
6195         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
6196         (build_array_type): Remove unnecessary allocation of pointer type.
6197         (build_complex_type): Properly qualify resulting type.
6198
6199 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
6200
6201         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
6202
6203 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
6204
6205         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
6206         (expand_mult): ...here.
6207         (extract_high_half): New, split out from expand_mult_highpart.
6208         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
6209         (expand_highpart): Evaluate the cost of a shift/add sequence,
6210         then see if any of the specialized optabs are cheaper.
6211
6212 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
6213
6214         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
6215
6216 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6217
6218         * convert.c (convert_to_real): Add more math builtins.
6219
6220 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6221
6222         * convert.c (convert_to_real): Reformat using switch stmt.
6223
6224 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6225
6226         * c-common.c (pointer_int_sum): Do not complain about using
6227         pointers to pointers-to-members.
6228
6229 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
6230
6231         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
6232         have moved to the target hooks structure".
6233
6234 2004-03-18  James E Wilson  <wilson@specifixinc.com>
6235
6236         * config/mips/mips.md (type): Split move into arith and fmove.  Split
6237         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
6238         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
6239         Likewise.
6240         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
6241         Likewise.
6242         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
6243         rm7_fp_quick): Likewise.
6244         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
6245         rm9k_fquick): Likewise.
6246         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
6247         Likewise.
6248         (ir_sr70_icmp): Delete.
6249
6250 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6251
6252         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
6253         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
6254         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
6255         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
6256         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
6257         Protect with proper check.
6258         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
6259         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
6260         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
6261         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
6262         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
6263         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
6264         not TYPE_FIELDS.
6265         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
6266
6267 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
6268
6269         * gcse.c (eliminate_partially_redundant_loads): Reject change if
6270         dest is set between beginning and current insn.
6271
6272 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6273
6274         * c-decl.c (grokdeclarator): Do not complain about redeclaring
6275         visible "static" identifiers "extern" in a local scope.
6276         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
6277         post-increments/decrements.
6278
6279 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
6280
6281         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
6282         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
6283         (xtensa_va_start): Remove assignment to current_function_arg_words.
6284
6285 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
6286
6287         * alias.c (record_set): Detect the case where a register is assigned
6288         a new value that has the same base term as the old one.
6289
6290 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6291
6292         * doloop.c: Removed.
6293         * loop-doloop.c: New file.
6294         * Makefile.in (doloop.o): Remove.
6295         (loop-doloop.o): New.
6296         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
6297         * cfgloopanal.c (get_loop_level): New function.
6298         * loop-iv.c (iv_number_of_iterations): Handle case when loop
6299         is leaved immediatelly.
6300         * loop.c (strength_reduce): Do not call doloop optimization.
6301         * loop.h (LOOP_BCT): Removed.
6302         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
6303         (rest_of_handle_loop2): Call doloop_optimize_loops.
6304         (rest_of_compilation): Test for optimizations moved to
6305         rest_of_handle_loop2.
6306
6307 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
6308
6309         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
6310         for mixed mode.
6311         (rs6000_emit_prologue): Ditto.
6312         (rs6000_emit_epilogue): Ditto.
6313         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
6314         macro for mixed mode.
6315
6316 2004-03-18  Jan Hubicka  <jh@suse.cz>
6317
6318         * predict.c (propagate_freq): Compute correctly frequency of
6319         EXIT_BLOCK.
6320
6321 2004-03-17  Eric Christopher  <echristo@redhat.com>
6322
6323         * builtins.c (apply_args_size): Use reg_raw_mode.
6324         (apply_result_size): Ditto.
6325
6326 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6327
6328         PR target/14620
6329         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
6330
6331 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
6332
6333         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
6334         32-bit builds when defaulting to 32-bit.
6335
6336 2004-03-17  Jan Hubicka  <jh@suse.cz>
6337
6338         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
6339         array.
6340
6341 2004-03-17  James E Wilson  <wilson@specifixinc.com>
6342
6343         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
6344         (hazard_nop): Change type to nop.
6345         (type): Split arith into arith, shift, slt, clz.  Delete darith.
6346         Fix all uses.  Change arith to multi if more than one insn emitted.
6347         * config/mips/5400.md (ir_vr54_arith): Likewise.
6348         * config/mips/5500.md (ir_vr55_arith): Likewise.
6349         * config/mips/7000.md (rm7_int_other): Likewise.
6350         * config/mips/9000.md (rm9k_int): Likewise.
6351         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
6352
6353 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
6354
6355         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
6356         to hold the subtype tree instead of recomputing it several times.
6357
6358 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
6359
6360         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
6361         CC_INVERT.
6362         * config/mn10300/mn10300.md (cc): Remove "invert".
6363
6364 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6365
6366         * builtins.c (integer_valued_real_p): Add builtin rint.
6367         (fold_builtin): Likewise.
6368         * convert.c (convert_to_real): Likewise.
6369
6370         * convert.c (convert_to_real): Fix typos in `long double'
6371         builtins.
6372
6373 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
6374
6375         PR c++/14481
6376         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
6377         generated COMPOUND_EXPRs.
6378
6379 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6380
6381         * config/h8300/t-rtems (h8300-*-rtems*): New.
6382
6383 2004-03-16  Eric Christopher  <echristo@redhat.com>
6384
6385         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
6386
6387 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6388
6389         * config/i386/i386-protos.h: Add a prototype for
6390         ix86_reverse_condition.
6391         * config/i386/i386.c (ix86_reverse_condition): New.
6392         * config/i386/i386.h (REVERSE_CONDITION): Use
6393         ix86_reverse_condition.
6394         * config/i386/i386.md: Use ix86_reverse_condition instead of
6395         REVERSE_CONDITION.
6396
6397 2004-03-16  J. Brobecker  <brobecker@gnat.com>
6398
6399         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
6400
6401 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
6402
6403         PR bootstrap/12974
6404         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
6405
6406 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6407
6408         * c-common.c (c_common_type_for_mode): Build vector types on
6409         demand.
6410         (handle_mode_attribute): Deprecate using the mode attribute
6411         to create vector types.  Fix indentation.
6412         (vector_type_node_list): Remove.
6413         (handle_vector_size_attribute): Create vector types on demand.
6414         Strip a NON_LVALUE_EXPR from the attribute if there is one.
6415         * c-typeck.c (comptypes): Make vector types compatible if they
6416         have the same underlying mode.
6417         (convert_for_assignment): Use comptypes to convert between
6418         vector types.
6419         * tree.c (build_common_tree_nodes_2): Do not create vector types.
6420         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
6421         vector types.
6422         * tree.h: Remove vector types.
6423         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
6424         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
6425         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
6426         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
6427         * doc/extend.texi (Vector Types): Document how to use the
6428         vector_size attribute to create vectors, rather than mode.
6429
6430         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
6431         * config/i386/emmintrin.h: Likewise.
6432         * config/i386/mmintrin.h: Likewise.
6433         * config/i386/xmmintrin.h: Likewise.
6434         * config/sh/ushmedia.h: Likewise.
6435
6436 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6437
6438         * config/freebsd-spec.h, config/arc/arc-protos.h,
6439         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
6440         config/arm/linux-gas.h, config/arm/semi.h,
6441         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
6442         config/ia64/freebsd.h, config/mips/7000.md,
6443         config/mips/9000.md, config/ns32k/ns32k-protos.h,
6444         config/sparc/pbd.h: Update copyright.
6445
6446 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6447
6448         PR target/14577
6449         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
6450
6451 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6452
6453         * combine.c (combine_simplify_rtx): Remove the "last"
6454         parameter and its documentation.  Adjust recursive calls.
6455         (simplify_logical): Always perform the only simplification
6456         controlled by "last", if the simplified expression is
6457         actually different.
6458         (try_combine): Do not pass the "last" parameter to
6459         combine_simplify_rtx.
6460
6461 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
6462
6463         PR target/14599
6464         * config/mips/mips.md (UNSPEC_GP): New constant.
6465         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
6466         an UNSPEC instead of (reg $gp).
6467         (mips16_gp_pseudo_reg): Change accordingly.
6468         (print_operand): Print $gp directly when handling CONST_GP_P.
6469
6470 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6471
6472         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
6473         * longlong.h: Make code 68060 clean when compiling for m68060.
6474
6475 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6476
6477         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
6478         * doc/md.texi: Clarify description of "i" constraint.
6479
6480 2004-03-15  James E Wilson  <wilson@specifixinc.com>
6481
6482         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
6483         Split store into store, fpstore, fpidxstore.  Fix all uses.
6484         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
6485         Likewise.
6486         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
6487         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
6488         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
6489         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
6490         ir_sr70_fstore): Likewise.
6491
6492 2004-03-15  Richard Henderson  <rth@redhat.com>
6493
6494         PR middle-end/14535
6495         * except.c (collect_one_action_chain): Record action for cleanup
6496         outer of exception spec.
6497
6498 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
6499
6500         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6501         Fix the check for abort and only do the mmap if we can.
6502
6503 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
6504
6505         * config/sparc/sparc.h: Rework comments about the code model
6506         in 64-bit environment and the mode 'Pmode'.
6507         * doc/invoke.texi (SPARC options): Rework description of the
6508         different code models supported in 64-bit environment.
6509
6510 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6511
6512         * defaults.h (REVERSIBLE_CC_MODE): Define.
6513         * jump.c (reversed_comparison_code_parts): Don't check if
6514         REVERSIBLE_CC_MODE is defined.
6515
6516 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6517
6518         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
6519         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
6520         hosthooks.h, params.h, ra-colorize.c, web.c,
6521         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
6522         config/avr/avr-protos.h, config/avr/avr.md,
6523         config/fr30/fr30-protos.h, config/fr30/fr30.md,
6524         config/h8300/fixunssfsi.c, config/i386/darwin.h,
6525         config/i386/freebsd.h, config/i386/freebsd64.h,
6526         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
6527         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
6528         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
6529         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
6530         config/pa/pa64-regs.h, config/rs6000/aix41.h,
6531         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
6532         config/sparc/aout.h, config/sparc/freebsd.h,
6533         config/sparc/litecoff.h, config/vax/vax-protos.h,
6534         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
6535         copyright.
6536
6537 2004-03-15  Paul Brook  <paul@codesourcery.com>
6538
6539         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
6540
6541 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6542
6543         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
6544         (pp_c_cv_qualifier): Document.
6545         (pp_c_space_for_pointer_operator): Likewise.
6546         (pp_c_integer_constant): Likewise.
6547         (pp_c_identifier): Likewise.
6548         (pp_c_init_declarator): Don't print function body.
6549
6550 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
6551
6552         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
6553         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
6554         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
6555         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
6556         wording and grammar.
6557
6558 2004-03-14  Roger Sayle  <roger@eyesopen.com>
6559
6560         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
6561         with lang_hooks.foo ().
6562         * builtins.c (expand_builtin_va_arg): Likewise.
6563         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
6564         c_common_type_for_mode, c_common_nodes_and_builtins,
6565         handle_mode_attribute, handle_vector_size_attribute): Likewise.
6566         * c-convert.c (convert): Likewise.
6567         * c-format.c (check_format_types): Likewise.
6568         * c-objc-common.c (c_tree_printer): Likewise.
6569         * c-typeck.c (build_unary_op, build_conditional_expr,
6570         build_binary_op): Likewise.
6571         * calls.c (try_to_integrate, expand_call,
6572         emit_library_call_value_1): Likewise.
6573         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
6574         Likewise.
6575         * cgraphunit.c (record_call_1, cgraph_analyze_function,
6576         cgraph_expand_function): Likewise.
6577         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
6578         * coverage.c (build_fn_info_type, build_ctr_info_type,
6579         build_gcov_info, create_coverage): Likewise.
6580         * dbxout.c (dbxout_init): Likewise.
6581         * diagnostic.c (diagnostic_report_current_function): Likewise.
6582         * dojump.c (do_jump): Likewise.
6583         * dwarf2out.c (dwarf2_name): Likewise.
6584         * except.c (init_eh): Likewise.
6585         * explow.c (expr_size, int_expr_size): Likewise.
6586         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
6587         Likewise.
6588         * expr.c (store_expr, store_constructor, safe_from_p,
6589         expand_expr_real, do_store_flag, try_casesi): Likewise.
6590         * function.c (push_function_context_to, pop_function_context_from,
6591         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
6592         put_var_into_stack, allocate_struct_function, current_function_name):
6593         Likewise.
6594         * integrate.c (copy_decl_for_inlining, expand_inline_function):
6595         Likewise.
6596         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
6597         lhd_print_error_function): Likewise.
6598         * opts.c (handle_option, decode_options): Likewise.
6599         * passes.c (open_dump_file): Likewise.
6600         * print-tree.c (print_node): Likewise.
6601         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
6602         expand_decl_cleanup, emit_case_nodes): Likewise.
6603         * stor-layout.c (variable_size): Likewise.
6604         * toplev.c (announce_function, wrapup_global_declarations,
6605         check_global_declarations, compile_file, default_tree_printer,
6606         process_options, lang_dependent_init, finalize): Likewise.
6607         * tree-dump.c (dequeue_and_dump): Likewise.
6608         * tree-inline.c (remap_decl, remap_block, copy_body_r,
6609         initialize_inlined_parameters, declare_return_variable,
6610         inlinable_function_p, expand_call_inline, optimize_inline_calls,
6611         walk_tree, copy_tree_r): Likewise.
6612         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6613         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
6614         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
6615         variably_modified_type_p, dump_tree_statistics): Likewise.
6616         * varasm.c (assemble_variable, compare_constant, copy_constant,
6617         force_const_mem, compute_reloc_for_constant, output_constant,
6618         output_addressed_constants, initializer_constant_valid_p): Likewise.
6619
6620 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
6621
6622         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
6623
6624 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
6625
6626         * doc/install.texi: Reflect autoconf and automake version for
6627         libffi. Update autoconf version to 2.59.
6628
6629 2004-03-13  Roger Sayle  <roger@eyesopen.com>
6630
6631         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
6632         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
6633         make_range, build_range_check, fold_range_test, unextend,
6634         constant_boolean_node, fold_binary_op_with_conditional_arg,
6635         fold_truthop, fold_mathfn_compare, fold_inf_compare,
6636         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
6637         with lang_hooks.foo ().
6638
6639 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
6640
6641         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
6642
6643 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
6644
6645         * doc/install.texi: Note status of -fnew-ra.
6646
6647 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
6648
6649         PR middle-end/14470
6650         * expr.c (store_expr): Call emit_queue before generating the move
6651         from the temporary to the original target.  Protect the temporary
6652         from emit_queue.
6653
6654 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
6655
6656         PR target/14533
6657         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
6658         other than UNSPEC_GOTOFF.
6659
6660 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
6661
6662         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
6663         to arm_legitimate_index_p.  Update all callers with SET as default
6664         value.
6665         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
6666         range if OUTER is a sign-extend operation on QImode.  Correctly
6667         reject shift operations on sign-extended QImode addresses.
6668         (bad_signed_byte_operand): Delete.
6669         (arm_extendqisi_mem_op): New function.
6670         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
6671         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
6672         constraints.
6673         (CONSTRAINT_LEN): New.
6674         (EXTRA_CONSTRAINT): Delete.  Replace with...
6675         (EXTRA_CONSTRAINT_STR): ... this.
6676         (PREDICATE_CODES): Remove bad_signed_byte_operand.
6677         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
6678         is now always default.
6679         (define_splits for bad sign-extend loads): Delete.
6680         (arm_extendqisi, arm_extendqisi_v5): Likewise.
6681         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
6682         Rework 'U' constraint to 'Uv'.
6683         * arm-protos.h: Remove bad_signed_byte_operand.  Add
6684         arm_extendqisi_mem_op.
6685         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
6686         Add Uq constraint.
6687
6688 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
6689
6690         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
6691         with targetm version.
6692
6693         PR target/14567
6694         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
6695         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
6696         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
6697         Update all users of RS6000_ARG_SIZE.
6698         (function_arg_advance): Count fregno using mode size.
6699         (function_arg): Handle long double split over regs and memory.
6700         (function_arg_partial_nregs): Likewise.
6701         (rs6000_va_arg): Repackage complex args.
6702
6703 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
6704
6705         PR target/14047
6706         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
6707         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
6708         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
6709
6710 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
6711
6712         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
6713         prototype.
6714         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
6715         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
6716
6717 2003-03-12  Andrew Pinski  <apinski@apple.com>
6718
6719         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6720         Use ret instead of result. Use addr instead of base.
6721
6722 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
6723
6724         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
6725         fixes required by libstdc++ and update installation instructions
6726         for libstdc++.a.
6727
6728 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
6729
6730         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
6731         leading '@' on fastcall symbols before stripping suffix.
6732
6733 2004-03-12  Roger Sayle  <roger@eyesopen.com>
6734
6735         * combine.c (unmentioned_reg_p): New function to check whether an
6736         expression is a "specialization" of another, i.e. that there are
6737         no registers or memory references mentioned in the first that don't
6738         appear in the second.
6739         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
6740         (combine_instructions): Also try combining instructions using the
6741         REG_EQUAL note from a preceding log-linked instruction.
6742
6743 2004-03-12  Roger Sayle  <roger@eyesopen.com>
6744
6745         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
6746
6747 2004-03-12  Matt Austern  <austern@apple.com>
6748
6749         * target.h (struct gcc_target): New target hook, unwind_label.
6750         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
6751         * output.h (default_emit_unwind_label): New function.
6752         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
6753         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
6754         (TARGET_SUPPORTS_HIDDEN): New target macro.
6755         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
6756         that corresponds to this FDE.
6757         (FRAME_BEGIN_LABEL): Allow target to override default label.
6758         (output_call_frame_info): If FDEs are linknonce, then use extra
6759         indirection for FDE encoding, output a label for each FDE, and
6760         output an empty label for each function without an FDE.
6761         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
6762         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
6763         decls with DECL_ONE_ONLY set, if that macro is defined.
6764         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
6765         for a SUPPORTS_ONE_ONLY target.
6766         * config/darwin-protos.h (darwin_unique_section): Declare.
6767         (darwin_asm_named_section): Likewise.
6768         (darwin_section_type_flags): Likewise.
6769         (darwin_non_lazy_pcrel): Likewise.
6770         (darwin_emit_unwind_label): Likewise.
6771         (darwin_make_decl_one_only): Likewise.
6772         * config/darwin.c (machopic_finish): Get rid of tweak that
6773         eliminate stubs for symbols that are defined.
6774         (darwin_encode_section_info): Don't treat weak functions as defined.
6775         (darwin_make_decl_one_only): Define.
6776         (darwin_asm_named_section): Likewise.
6777         (darwin_section_type_flags): Likewise.
6778         (darwin_unique_section): Likewise.
6779         (darwin_emit_unwind_label): Likewise.
6780         (darwin_non_lazy_pcrel): Likewise.
6781         (darwin_asm_output_dwarf_delta): Difference between two labels is
6782         local only if both labels are local.
6783         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
6784         (ASM_MAKE_LABEL_LINKONCE): Likewise.
6785         (TARGET_SUPPORTS_HIDDEN): Likewise.
6786         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
6787         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
6788         (FRAME_BEGIN_LABEL): Likewise.
6789         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
6790         (ASM_DECLARE_FUNCTION_NAME): Likewise.
6791         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
6792         (TARGET_ASM_UNIQUE_SECTION): Define.
6793         (EH_FRAME_SECTION_NAME): Define.
6794         (EH_FRAME_SECTION_ATTR): Likewise.
6795         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
6796         (TARGET_ASM_NAMED_SECTION): Likewise.
6797         (TARGET_SECTION_TYPE_FLAGS): Likewise.
6798         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
6799         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
6800         TARGET_ASM_EMIT_UNWIND_LABEL.
6801
6802 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6803
6804         * builtins.c (expand_builtin_mathfn): Add pow10* to the
6805         existing exp10* case.
6806         (expand_builtin): Likewise.
6807
6808 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
6809
6810         * doc/tm.texi (registers) <Values in Registers>: Add
6811         entry for REGMODE_NATURAL_SIZE.
6812
6813 2004-03-12  Richard Henderson  <rth@redhat.com>
6814
6815         PR target/14547
6816         * target.h (struct gcc_target): Move calls substructure before
6817         booleans.  Add split_complex_arg.
6818         * function.c (assign_parms, split_complex_args): Use it.
6819         * calls.c (expand_call): Likewise.
6820         (split_complex_values): Likewise.  Check for splittable types
6821         before allocating memory.
6822         (split_complex_types): Likewise.
6823         * system.h (SPLIT_COMPLEX_ARGS): Poison.
6824         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
6825         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
6826         * config/alpha/alpha.c (alpha_split_complex_arg): New.
6827         (TARGET_SPLIT_COMPLEX_ARG): New.
6828         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
6829         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
6830         (rs6000_override_options): Zap it for non-AIX.
6831         (rs6000_function_value): Use targetm.calls.split_complex_arg.
6832         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
6833         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
6834         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
6835         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
6836         SPLIT_COMPLEX_ARGS entry.
6837
6838 2004-03-11  Richard Henderson  <rth@redhat.com>
6839
6840         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
6841         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
6842         (alpha_emit_xfloating_arith): Update to match.
6843         (alpha_emit_xfloating_compare): Likewise.
6844         (alpha_emit_xfloating_cvt): Likewise.
6845         (alpha_emit_xfloating_libcall): Take already built symbol,
6846         mark call const.
6847         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
6848         op1 in a register.
6849
6850 2004-03-11  Richard Henderson  <rth@redhat.com>
6851
6852         PR target/14539
6853         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
6854
6855         * simplify-rtx.c (simplify_relational_operation): Fix typo.
6856
6857 2004-03-11  Richard Henderson  <rth@redhat.com>
6858
6859         PR middle-end/14477
6860         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
6861
6862 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
6863
6864         PR target/14262
6865         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
6866         defined, pass small BLKmode values in registers in the low-order part.
6867
6868 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
6869
6870         * combine.c (if_then_else_cond): Check for NULL return value of
6871         simplify_gen_subreg.
6872
6873 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
6874
6875         PR target/14496
6876         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
6877         TARGET_SINGLE_FLOAT.
6878
6879 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
6880
6881         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
6882         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
6883         * config/ia64/ia64.c (ia64_init_libfuncs): New.
6884         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
6885
6886 2004-03-11  Roger Sayle  <roger@eyesopen.com>
6887
6888         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
6889         -((int)X>>C) where C is an integer constant one bit less than the
6890         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
6891         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
6892
6893         * simplify-rtx.c (simplify_unary_operation): Also implement the
6894         above transformations at the RTL level.
6895
6896 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
6897
6898         * real.c (encode_ibm_extended): Do round low word.
6899
6900 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
6901
6902         * config/arm/arm.md (is_xscale): Comment this attribute and move
6903         it a bit further up in the file, closer to related attributes.
6904
6905 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
6906
6907         * config/host-solaris.c (sol_gt_pch_use_address): Add
6908         missing terminating marker to comment.
6909
6910 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
6911
6912         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
6913         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
6914         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
6915         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
6916         move_operand as source predicate in all cases.
6917         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
6918         Test reg_or_0_operand.  Use move_operand as source predicate.
6919         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
6920         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
6921         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
6922         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
6923         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
6924         Use move_operand as source predicate.  Remove 'K' constraint.
6925         (*movqi_internal): Likewise movqi_internal.
6926         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
6927         reg_or_0_operand.  Use move_operand as source predicate.
6928         (*movsf_softfloat): Likewise movsf_internal2.
6929         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
6930         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
6931         (*movdf_softfloat): Likewise movdf_internal2.
6932         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
6933         for DImode if !TARGET_64BIT.
6934         (mips_legitimize_move): Simplify accordingly.
6935
6936 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
6937
6938         PR/14362
6939         * var-tracking.c (struct variable_def): Added field refcount.
6940         (variable_htab_free): Decrease the refcount and delete variable
6941         only if there are no more references.
6942         (unshare_variable): New function.
6943         (vars_copy_1): Increase refcount instead of copying the variable.
6944         (variable_union): Share the variables where possible, unshare
6945         the variables if needed.
6946         (variable_different_p): Return false if var1 and var2 are
6947         the same structure.
6948         (variable_was_changed): Init the refcount of new variable.
6949         (set_frame_base_location): Unshare variable if needed.
6950         (set_variable_part): Init the refcount of new variable.
6951         Unshare the variables if needed.
6952         (delete_variable_part): Unshare the variables if needed.
6953         (emit_notes_for_differences_1): Init the refcount of new variable.
6954         (vt_add_function_parameters): Do not add function parameters to
6955         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
6956         (vt_initialize): Do not add frame_base_decl to IN set of
6957         ENTRY_BLOCK_PTR because it is unused anyway.
6958
6959 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
6960
6961         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
6962         (vars_copy): Likewise.
6963         (variable_union): Likewise.
6964         (set_variable_part): Likewise.
6965         (delete_variable_part): Likewise.
6966
6967 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
6968
6969         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
6970         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
6971         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
6972         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
6973         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
6974         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
6975         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
6976         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
6977         config/stormy16/stormy16.c: Fix comment typos and formatting.
6978
6979 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
6980
6981         * configure: Regenerate, since I forgot to while committing Paolo's
6982         changes.
6983
6984 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
6985
6986         PR ada/14131
6987         Move language detection to the top level.
6988         * configure.ac: Remove code to detect languages,
6989         it now lives exclusively in the top level.
6990         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
6991         top level, renamed to ACX_PROG_GNAT.
6992
6993 2004-03-10  Richard Henderson  <rth@redhat.com>
6994
6995         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
6996         extra arguments.
6997         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
6998         and host_xmake_file fragments.
6999         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
7000         (gt_pch_restore): Similarly for gt_pch_use_address.
7001         (default_gt_pch_get_address): New.
7002         (mmap_gt_pch_get_address): Split out of gt_pch_save.
7003         (default_gt_pch_use_address): Split out of gt_pch_restore.
7004         (mmap_gt_pch_use_address): Likewise.
7005         * hooks.c (hook_voidp_size_t_null): Remove.
7006         (hook_bool_voidp_size_t_false): Remove.
7007         * hooks.h: Likewise.
7008         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
7009         default_ or mmap_ definitions.
7010         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
7011         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
7012         and gt_pch_use_address.
7013         * config/host-linux.c, config/host-solaris.c: New files.
7014         * config/x-linux, config/x-solaris: New files.
7015         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
7016         Update for changed definition.
7017         (darwin_rs6000_gt_pch_use_address): Likewise.
7018         * doc/hostconfig.texi: Update docs.
7019
7020 2004-03-10  Richard Henderson  <rth@redhat.com>
7021
7022         PR c/14517
7023         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
7024         except for pedantic c90 mode.
7025
7026 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
7027
7028         * configure.ac: Bump AC_PREREQ to 2.59.
7029         * configure: Regenerate.
7030
7031 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
7032
7033         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
7034         (exp10_optab, exp2_optab): Define corresponding macros.
7035         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
7036         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
7037         using exp10?f2 and exp2?f2 patterns.
7038         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
7039         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
7040         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
7041         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7042
7043         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
7044         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
7045         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
7046
7047 2004-03-10  Anthony Green  <green@redhat.com>
7048
7049         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
7050
7051 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7052
7053         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
7054         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
7055         __LONGDOUBLE128.
7056         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
7057         TARGET_OS_AIX_CPP_BUILTINS.
7058         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
7059         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
7060         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
7061         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
7062         previous change.
7063
7064 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7065
7066         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
7067
7068 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7069
7070         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7071         __LONGDOUBLE128 on AIX.
7072
7073 2004-03-10  Andrew Haley  <aph@redhat.com>
7074
7075         PR optimization/14381
7076         * function.c (expand_function_end): Emit a blockage insn before
7077         the epilogue when -fnon-call-exceptions is used.
7078
7079         * except.c (expand_start_all_catch): Make comment more accurate.
7080
7081 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7082
7083         PR target/14480
7084         * config/rs6000/t-rtems: Add missing file on branch.
7085
7086 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
7087
7088         * dbxout.c (dbxout_symbol_location): Do not output references
7089         to optimized-out constant pool symbols.
7090
7091 2004-03-10  Andreas Schwab  <schwab@suse.de>
7092
7093         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
7094         twon34_r.
7095
7096 2004-03-09  James E Wilson  <wilson@specifixinc.com>
7097
7098         * alias.c (alias_sets_might_conflict_p): New.
7099         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
7100         * common.opt (Wstrict-aliasing=): New.
7101         * flags.h (warn_strict_aliasing): Change type to int.
7102         * opts.c (warn_strict_aliasing): Change type to int.
7103         (common_handle_option): Handle OPT_Wstrict_aliasing_.
7104         * tree.h (alias_sets_might_conflict_p): Declare it.
7105         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
7106
7107 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
7108
7109         PR bootstrap/12371
7110         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
7111         (CALL_USED_REGISTERS): Likewise.
7112         (REG_CLASS_CONTENTS): Likewise.
7113         (REG_ALLOC_ORDER): New.
7114         (REGNO_REG_CLASS): Use regno_reg_class.
7115         * config/m68k/m68k.c: Add regno_reg_class array.
7116
7117 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
7118
7119         * config/ia64/ia64.md (divsi3): Fix algorithm.
7120           (udivsi3): Ditto.
7121           (setf_exp_xf): Remove '*' from name.
7122         * testsuite/gcc.dg/20040309-1.c: New test.
7123
7124 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
7125
7126         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
7127         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
7128         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
7129         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
7130         (sparc_aout_select_rtx_section): Don't check
7131         SUNOS4_SHARED_LIBRARIES.
7132         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
7133
7134 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
7135
7136         PR other/14474
7137         * doc/md.texi (Pattern Ordering, Dependent Patterns)
7138         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
7139         INTERNALS".
7140
7141 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7142
7143         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
7144         (LIBGCC_SPEC): Update to match.
7145
7146 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7147
7148         * c-decl.c (last_function_parms, last_function_parm_tags)
7149         (last_function_parm_others, current_function_parms)
7150         (current_function_parm_tags, current_function_parm_others):
7151         Delete.
7152         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
7153         New macros.
7154         (grokdeclarator): For function definitions, save the arg-info
7155         block from the declarator in DECL_ARGUMENTS.
7156         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
7157         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
7158         contains only PARM_DECLs.  Improve diagnostics.
7159         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
7160         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
7161         (store_parm_decls_newstyle): Take the function to operate on,
7162         and an arg-info block, as arguments; don't get anything from
7163         current_function_* globals.
7164         (store_parm_decls_oldstyle): Likewise.
7165         (store_parm_decls): Pass fndecl and its arg-info block down to
7166         store_parm_decls_newstyle/oldstyle.  Send functions with empty
7167         argument lists through store_parm_decls_newstyle to reduce
7168         overhead.
7169         (pushdecl): Comment on the problems with the call to copy_node.
7170         Clear DECL_ARGUMENTS of the old node after copying it, if it
7171         is an arg-info block instead of a chain of decls.
7172         (start_function): Do not manipulate current_function_parm* or
7173         last_function_parm*.
7174
7175 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7176             Andrew Pinski  <pinskia@physics.uc.edu>
7177
7178         * ifcvt.c (noce_try_sign_mask): New function to transform
7179         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
7180         (noce_process_if_block): Call noce_try_sign_mask.
7181
7182 2004-03-09  Andrew Pinski  <apinski@apple.com>
7183
7184         * c-typeck.c (tagged_types_tu_compatible_p):
7185         Fix typo.
7186
7187 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7188
7189         * simplify-rtx.c (simplify_const_relational_operation): New function
7190         renamed from simplify_relational_operation.
7191         (simplify_relational_operation): Change prototype to accept an
7192         additional mode argument.  Call simplify_const_relational_operation.
7193         (simplify_gen_relational): Update simplify_relational_operation call.
7194         (simplify_ternary_operation): Update simplify_relational_operation
7195         subroutine call to use simplify_const_relational_operation instead.
7196
7197         * rtl.h (simplify_const_relational_operation): Prototype here.
7198         (simplify_relational_operation): Add addtional mode argument.
7199
7200         * combine.c (combine_simplify_rtx): Update calls to
7201         simplify_relational_operation.
7202         (simplify_set): Likewise.
7203         (gen_binary): Likewise.
7204         * cse.c (fold_rtx): Likewise.
7205         * dojump.c (compare_from_rtx): Likewise.
7206         (do_compare_rtx_and_jump): Likewise.
7207         * integrate.c (subst_constants): Likewise.
7208         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
7209
7210 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
7211
7212         * config/m32r/m32r.md: Remove all define_peephole's.
7213
7214 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
7215
7216         * config/rs6000/rs6000.md: Remove trailing whitespace.
7217
7218 2004-03-08  Eric Christopher  <echristo@redhat.com>
7219
7220         * Makefile.in (site.exp): Add libiconv variable definition.
7221
7222 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
7223
7224         * configure: Regenerate for config/accross.m4 correction.
7225
7226 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7227
7228         PR target/14480
7229         * config/rs6000/t-rtems: Add missing file on branch.
7230
7231 2004-03-08  Roger Sayle  <roger@eyesopen.com>
7232
7233         PR middle-end/14289
7234         * c-typeck.c (c_mark_addressable): A register variable should
7235         be considered global if its not automatic, i.e. TREE_PUBLIC,
7236         TREE_STATIC or DECL_EXTERNAL.
7237         * function.c (put_var_into_stack): Call abort when placing a
7238         hard register into the stack, if x_parm_reg_stack_loc is NULL.
7239
7240 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
7241
7242         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
7243         ("*extendqisi2_short_displ"): Likewise.
7244
7245 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
7246
7247         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
7248         (comp_operator): Likewise.
7249         * config/pdp11/pdp11-protos.h: Remove corresponding
7250         prototypes.
7251
7252 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
7253
7254         * expr.c (highest_pow2_factor_for_type): Rename into
7255         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
7256         TYPE_ALIGN when the target is a COMPONENT_REF.
7257         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
7258
7259 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7260
7261         * config/rs6000/rs6000.c: Formatting fix.
7262         (legitimate_offset_address_p): Correct offset range check.
7263
7264         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
7265         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
7266         and MASK_STRING.
7267
7268 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7269
7270         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
7271         for little endian.
7272         ("ashrdi3_no_power"): Disable for little endian.
7273         (ashrdi3): Same.
7274
7275 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7276
7277         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
7278         builtins.
7279
7280 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
7281
7282         PR target/14471
7283         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
7284         case, checking for -no-mul-bug-abort option.
7285         * configure, config.in: Regenerate.
7286         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
7287         and -mno-mul-bug-workaround.
7288         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
7289         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
7290         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
7291         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
7292         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
7293         sure mulu.d is not last on cache-line.
7294         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
7295         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
7296         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
7297         (TARGET_SWITCHES): New options -mmul-bug-workaround and
7298         -mno-mul-bug-workaround.
7299         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
7300         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
7301         * config/cris/cris.c (cris_operand_extend_operator): Clarify
7302         relation to MULT in head comment.
7303         (cris_op_str): Abort for MULT.
7304         (cris_print_operand) <case '!'>: New case.
7305
7306 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7307
7308         PR debug/11983
7309         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
7310         dw_val_class_vec.  Replace use throughout file.
7311         (dw_float_const): Delete.
7312         (dw_vec_const): New.
7313         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
7314         throughout file.
7315         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
7316         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
7317         (size_of_die): Adjust dw_val_class_vec sizing.
7318         (output_die): Output dw_val_class_vec.
7319         (insert_int, extract_int, insert_float): New functions.
7320         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
7321         Handle CONST_VECTOR.
7322         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
7323
7324 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7325
7326         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
7327         AltiVec abi cannot co-exist.
7328
7329         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
7330
7331 2004-03-07  Jan Hubicka  <jh@suse.cz>
7332
7333         * except.c (emit_to_new_bb_before):  Break fallthru edges.
7334
7335 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
7336
7337         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
7338         ("*lshrsi3"): Also accept an immediate for 68HC12.
7339         ("*ashrsi3_const"): Likewise.
7340         ("*ashrsi3"): Likewise.
7341         ("*ashlsi3_const"): Likewise.
7342         ("*ashlsi3"): Likewise.
7343         ("cmphi_1_hc12"): Compare two hard register by pushing them and
7344         comparing with a pop; don't use a split for that.
7345         ("cmphi split"): Disable compare split for 68HC12.
7346
7347         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
7348         the status operands if they have side effects.
7349
7350 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
7351
7352         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
7353         definition.
7354         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
7355         config/h8300/h8300.h, config/ia64/ia64.h,
7356         config/mcore/mcore.h, config/mmix/mmix.h,
7357         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7358         config/stormy16/stormy16.h, config/v850/v850.h,
7359         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
7360         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
7361         definition.
7362
7363 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7364
7365         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
7366         <XOR_EXPR>: Fold x ^ x as zero.
7367         <AND_EXPR>: Fold x & x as x.
7368
7369 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7370
7371         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
7372         "foo++ == const" into "++foo == const+incr".
7373
7374 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
7375
7376         * config/mips/mips.c (mips_in_small_data_p): Return false if
7377         TARGET_ABICALLS.
7378
7379 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
7380
7381         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
7382         the stack register.
7383         (expand_prologue): Don't make an interrupt or a trap handler a far
7384         symbol.
7385         (m68hc11_initial_elimination_offset): Likewise.
7386
7387 2004-03-06  Richard Henderson  <rth@redhat.com>
7388
7389         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
7390
7391 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7392
7393         * config/ns32k/ns32k-protos.h: Add a prototype for
7394         ns32k_notice_update_cc.
7395         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
7396         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
7397         ns32k_notice_update_cc.
7398
7399 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
7400
7401         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
7402         "*load_multiple_si"): Allow only if reload_completed.
7403         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
7404         Likewise.
7405
7406 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7407
7408         * config/vax/vax-protos.h: Add a prototype for
7409         vax_notice_update_cc.
7410         * config/vax/vax.c (vax_notice_update_cc): New.
7411         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
7412         vax_notice_update_cc.
7413
7414 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
7415
7416         * collect2.c (main): Only export initfunc and finifunc if
7417         LD_INIT_SWITCH not defined.
7418         (scan_prog_file): Only export constructors and destructors if
7419         LD_INIT_SWITCH not defined.  Only export symbols not found in
7420         shared objects.
7421
7422 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7423
7424         * pa.md (icacheflush): Reorder operands to make match_scratch operand
7425         last.
7426         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
7427         from calls to gen_icacheflush.
7428
7429 2004-03-06  Richard Henderson  <rth@redhat.com>
7430
7431         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
7432         (TARGET_LONG_DOUBLE_128): New.
7433         (TARGET_SWITCHES): Add long-double-{128,64}.
7434         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
7435         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
7436         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
7437         (WIDEST_HARDWARE_FP_SIZE): New.
7438         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
7439         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
7440         if TARGET_VAX_FLOAT.
7441         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
7442         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
7443
7444 2004-03-06  Richard Henderson  <rth@redhat.com>
7445
7446         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
7447         botched rtx class conversion.
7448
7449 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7450
7451         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
7452         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
7453
7454         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
7455         macros.
7456         * fold-const.c (fold_mathfn_compare, fold): Likewise.
7457
7458 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7459
7460         PR target/14343
7461         * config/i386/i386.md (movv2di_internal): Conditionalize on
7462         TARGET_SSE, not TARGET_SSE2.
7463
7464 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
7465
7466         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
7467         duplicated line.
7468
7469 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7470
7471         * builtins.c: Consistently use logN not log* in comments.
7472
7473 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7474
7475         * rtl.h (mem_expr_equal_p): Function prototype added.
7476         * cfgcleanup.c (merge_memattrs): New function.
7477         (flow_find_cross_jump): Call merge_memattrs for matching insns.
7478         * emit-rtl.c (mem_expr_equal_p): New function.
7479
7480 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
7481
7482         * objc/objc-act.c (synth_module_prologue): Const-qualify
7483         objc_selector type if using the GNU runtime; fix generated
7484         signatures for objc_msg_lookup and objc_msg_lookup_super
7485         to match what GNU ObjC headers provide; reformat and clean up.
7486         (synth_self_and_ucmd_args): Use previously constructed (and
7487         hence possibly const-qualified) objc_selector type.
7488
7489 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7490
7491         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
7492
7493 2004-03-05  Jason Merrill  <jason@redhat.com>
7494
7495         * tree.h (TYPE_HASH): Use TYPE_UID.
7496         (TREE_HASH): New macro with old definition of TYPE_HASH.
7497         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
7498         (build_array_type, build_function_type): Likewise.
7499         (build_method_type_directly): Likewise.
7500         (build_offset_type, build_complex_type): Likewise.
7501         (type_hash_list, attribute_hash_list): Likewise. Now static.
7502         * except.c: s/TYPE_HASH/TREE_HASH/.
7503
7504 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
7505
7506         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
7507         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
7508         __va_ndx by 2 words when referencing an argument on the stack.
7509         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
7510         words when an arg on the stack is first seen.
7511
7512 2004-03-05  Paul Brook  <paul@codesourcery.com>
7513
7514         * arm.h (ARM_FLAG_VFP): Remove.
7515         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
7516         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
7517
7518 2004-03-05  Paul Brook  <paul@codesourcery.com>
7519
7520         * function.c (assign_parms): Include pretend alignment offset.
7521
7522 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7523
7524         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
7525         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
7526
7527 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
7528
7529         * configure.ac: When passing --enable-languages to subdir
7530         configure when host != build, make sure we don't pass an empty
7531         value.
7532         * configure: Regenerate.
7533
7534 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
7535
7536         PR 13577
7537         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
7538         options.
7539
7540 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
7541
7542         * simplify-rtx.c (simplify_relational_operation): If
7543         flag_wrapv is set, do not move terms between the two
7544         side of a relational operator.
7545
7546 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
7547
7548         * rtlanal.c: Include target.h and output.h
7549         (rtx_cost, address_cost, default_address_cost): Move from...
7550         * cse.c (rtx_cost, address_cost, default_address_cost):
7551         ... this file.
7552         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
7553         * Makefile.in: Adjust dependencies.
7554
7555 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
7556
7557         * cse.c (cse_end_of_basic_block): Make static.
7558         * local-alloc.c (function_invariant_p): Move to
7559         reload1.c.
7560         * loop.c (libcall_other_reg, record_excess_regs):
7561         Make static.
7562         * reload1.c (function_invariant_p): Moved here
7563         from local-alloc.c, made static.
7564         * rtl.h (cse_end_of_basic_block, function_invariant_p,
7565         libcall_other_reg, record_excess_regs): Remove
7566         declarations.
7567
7568 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7569
7570         * config/m32r/m32r.c (signed_comparison_operator): Add a
7571         missing parenthesis.
7572
7573 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
7574
7575         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
7576         going to call mmap again.  Read the file into the right place.
7577         Give a fatal error if we have to relocate.
7578
7579 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
7580
7581         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
7582         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
7583
7584 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
7585
7586         PR other/14354
7587         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
7588         round the same.  When rounding, clear bits that would cause a
7589         second rounding in pack_d.
7590         (_fpmul_parts): Ditto.  Remove #if 0:d code.
7591
7592 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
7593
7594         PR c++/14425, c++/14426
7595         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
7596         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
7597         Change C++ definitions to accept a 'const int' argument;
7598         the prototypes already do.
7599         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
7600         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
7601         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
7602         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
7603         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
7604         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
7605         end in ..._int; change them to accept an int instead of a char
7606         as the last parameter.
7607
7608 2004-03-04  Phil Edwards  <phil@codesourcery.com>
7609
7610         * genmultilib:  Change '=' to '-' when translating option names
7611         to directory names.
7612
7613 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7614
7615         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
7616         stack slot for temp used for result of BLKmode but in integral mode.
7617
7618 2004-03-04  Jan Hubicka  <jh@suse.cz>
7619
7620         * reload.c (find_reloads): Reorganize if seqeunce to switch.
7621
7622         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
7623         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
7624
7625 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
7626
7627         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
7628         * testsuite/gcc.dg/20040303-1.c: New test.
7629
7630 2004-03-04  Steven Bosscher  <stevenb@suse.de>
7631
7632         * ppro.md: Rewrite as a DFA pipeline description.
7633         * i386.md: Remove all uses of the ppro_uops attribute.
7634         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
7635         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
7636         ix86_sched_reorder, ix86_variable_issue,
7637         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
7638         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
7639         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
7640         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
7641         * athlon.md (athlon_ssecmp_load): Fix comment
7642
7643 2004-03-04  Stuart Hastings  <stuart@apple.com>
7644
7645         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
7646
7647 2004-03-04  Stuart Hastings  <stuart@apple.com>
7648
7649         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
7650         686, tell Darwin assembler to allow prefetch insns, non-empty def
7651         of SUBTARGET_OPTION_TRANSLATE_TABLE.
7652
7653 2004-03-04  DJ Delorie  <dj@redhat.com>
7654
7655         PR optimization/14282
7656         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
7657         between a call and the assignment of its return value.
7658
7659 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
7660
7661         * config/h8300/h8300.c: Put a comment for every function.
7662
7663 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
7664
7665         * config/h8300/h8300.md: Add comments about peephole2's.
7666
7667 2004-03-04  Steven Bosscher  <stevenb@suse.de>
7668
7669         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
7670
7671 2004-03-04  Jan Hubicka  <jh@suse.cz>
7672
7673         * cfgcleanup.c (thread_jump): Update call of cselib_init.
7674         * cselib.c (cselib_record_memory): New static variable.
7675         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
7676         Give up on memories when asked for.
7677         (cselib_init): Accept new argument.
7678         * cselib.h (cselib_init): Update prototype.
7679         * gcse.c (local_cprop_pass): Update call of cselib_init.
7680         * loop.c (load_mems): Update call of cselib_init.
7681         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
7682         * sched-deps.c (sched_analyze): Update call of cselib_init.
7683
7684 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
7685             GP <gp@qnx.com>
7686
7687         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
7688         when compiling PIC.
7689
7690 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
7691
7692         PR/14362
7693         * var-tracking.c (track_expr_p): Do not track variables which
7694         should be ignored for debugging purposes.
7695
7696 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7697
7698         * real.c (encode_ibm_extended): Don't bother rounding low double.
7699         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
7700         when fmt->pnan < fmt->p.
7701
7702 2004-03-04  Eric Christopher  <echristo@redhat.com>
7703
7704         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
7705         only range of valid arg registers and fixed_regs.
7706
7707 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7708
7709         PR target/14406
7710         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
7711         (abstf2, abstf2_internal): New define_expand.
7712
7713 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7714
7715         PR optimization/14235
7716         * expr.c (convert_move): Copy the source to a new pseudo
7717         when converting from a sub-word source to a larger-than-word
7718         register which conflicts with the source.
7719
7720 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
7721
7722         PR 13728
7723         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
7724         parameters with the same name, unless one is a forward decl.
7725         Do not issue a redundant-redeclaration warning for forward
7726         decls of parameters.
7727
7728 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
7729
7730         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
7731         configuration.
7732
7733 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
7734
7735         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
7736
7737 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7738
7739         * target-def.h (TARGET_OPTF): Delete.
7740         * c-opts.c (TARGET_OPTF): Define.
7741
7742 2004-03-04  Jan Hubicka  <jh@suse.cz>
7743
7744         * cselib.c (cselib_finish): Fix another miss-application of my previous
7745         patch.
7746
7747 2004-03-03  Mike Stump  <mrs@apple.com>
7748
7749         Add framework support for darwin.
7750
7751         * c-incpath.c: Include target.h and machmode.h.
7752         (add_path): Use a consistent style for cpp_dir.  Initialize
7753         p->construct to 0.
7754         (add_cpp_dir_path): New.
7755         (register_include_chains): Add use of extra_includes callback.
7756         (hook_void_int): Add.
7757         (target_c_incpath): Add.
7758         * c-incpath.h (add_cpp_dir_path): New.
7759         (target_c_incpath_s): Add.
7760         (target_c_incpath): Add.
7761         (C_INCPATH_INIT): Add.
7762         * c-opts.c (c_common_missing_argument,
7763         c_common_handle_option): Add -F argument processing.
7764         * c.opt: Add -F argument processing.
7765         * gcc.c (trad_capable_cpp): Add -F argument processing.
7766         * cppfiles.c (find_file_in_dir): Update to use construct
7767         callback.
7768         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
7769         cpp_get_prev): New.
7770         (_cpp_find_file): Use search_path_exhausted.
7771         (make_cpp_dir): Initialize construct to 0.
7772         * cpplib.h (missing_header_cb
7773         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
7774         (cpp_callbacks): Add missing_header
7775         (cpp_dir): Add construct.
7776         * target-def.h: (TARGET_OPTF): New.
7777         * hooks.c (hook_void_int, hook_void_charptr): Add.
7778         * hooks.h (hook_void_int, hook_void_charptr): Add.
7779         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
7780         $(MACHMODE_H) dependencies.
7781         * doc/invoke.texi (Darwin Options): Document -F.
7782         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
7783         (TARGET_OPTF): Add.
7784         * fix-header.c (target_c_incpath): Add.
7785
7786         * config/darwin-c.c: Add c-incpath.h include.
7787         (using_frameworks, find_subframework_file,
7788         find_subframework_header, add_system_framework_path,
7789         frameworks_in_use, num_frameworks, max_frameworks,
7790         add_framework, find_framework, struct framework_header,
7791         framework_header_dirs, framework_construct_pathname,
7792         find_subframework_file, add_system_framework_path,
7793         add_framework_path, framework_defaults,
7794         darwin_register_frameworks, find_subframework_header): Add.
7795         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
7796         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
7797         (CPP_SPEC): Add __APPLE_CC__ support.
7798         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
7799
7800 2004-03-04  Jan Hubicka  <jh@suse.cz>
7801
7802         * cselib.c (cselib_finish): Fix miss-application of my previous
7803         patch.
7804
7805 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7806
7807         * hooks.c (hook_tree_tree_identity): New.
7808         * hooks.h: Add a prototype for hook_tree_tree_identity.
7809         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
7810         instead of MD_ASM_CLOBBERS.
7811         * system.h (MD_ASM_CLOBBERS): Poison.
7812         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
7813         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
7814         * target.h (gcc_target): Add md_asm_clobbers.
7815         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
7816         (ix86_md_asm_clobbers): New.
7817         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
7818         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
7819         TARGET_MD_ASM_CLOBBERS.
7820
7821 2004-03-03  Stuart Hastings  <stuart@apple.com>
7822
7823         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
7824
7825 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7826
7827         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
7828
7829         * config/sparc/sparc.h (ASM_FLOAT): Delete.
7830         (ASM_DOUBLE): Likewise.
7831         (ASM_LONGDOUBLE): Likewise.
7832         * config/sparc/pbd.h (ASM_INT_OP): Delete.
7833
7834 2003-03-03  Richard Henderson  <rth@redhat.com>
7835
7836         PR opt/13862
7837         * cselib.c (cselib_record_sets): Don't record multiple sets in
7838         asm insns.
7839
7840 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
7841
7842         * common.opt: Add description of the new -fgcse-after-reload flag.
7843
7844         * flags.h (flag_gcse_after_reload): Declaration of global variable.
7845
7846         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
7847         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
7848         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
7849         get_bb_avail_insn, hash_scan_set_after_reload,
7850         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
7851         gcse_after_reload, get_bb_avail_insn): New functions to implement
7852         gcse-after-reload.
7853         (gcse_after_reload_main): New function, the main entry point to
7854         gcse-after-reload.
7855
7856         * rtl.h (gcse_after_reload_main): Declaration of the new function.
7857
7858         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
7859
7860         * toplev.c (flag_gcse_after_reload): Initialization.
7861
7862         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
7863
7864         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
7865         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
7866         the gcse after reload optimization.
7867
7868         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
7869         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
7870         parameters.
7871
7872         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
7873
7874 2004-03-03  Nicolas Pitre <nico@cam.org>
7875
7876         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
7877         small negative values.
7878
7879 2004-03-03  Jan Hubicka  <jh@suse.cz>
7880
7881         * cselib.c (hash_table):  Remove GTY marker.
7882         (reg_values): Turn into array.
7883         (used_regs): Likewise.
7884         (n_used_regs): New static variable.
7885         (reg_values_old): Kill.
7886         (clear_table): Update uses of arrays.
7887         (cselib_lookup): Likewise.
7888         (cselib_record_set): Likewise.
7889         (cselib_init): Likewise.
7890         (cselib_finish): Likewise.
7891         (cselib_udpate_varray_sizes): Kill.
7892         * cselib.h (cselib_update_varray_sizes): Kill.
7893
7894 2004-03-03  Paul Brook  <paul@codesourcery.com>
7895
7896         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
7897
7898 2004-03-03  Jan Hubicka  <jh@suse.cz>
7899
7900         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
7901         Rename from ...; make statistics transparent.
7902         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
7903         (loc_descriptor): New structure.
7904         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
7905         add_statistics):
7906         New static function.
7907         (ggc_record_overhead, dump_statistics): New global function.
7908         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
7909         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
7910         from ...; accept locations
7911         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
7912         ggc_realloc, ggc_alloc_typed):  ... this one.
7913         from ...; accept locations
7914         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
7915         ggc_alloc_stat): Rename from ... ; pass locations
7916         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
7917         ... this one.
7918         (ggc_alloc_stat): Record overehead.
7919         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
7920         ggc_realloc, ggc_alloc_typed):  Turn to macros
7921         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
7922         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
7923         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
7924         * langhooks.h (lhd_make_node): Declare.
7925         (LANG_HOOKS_MAKE_TYPE): Default to new function,
7926         * langhooks.c (lhd_make_node): New.
7927         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
7928         locations.
7929         (rtx_alloc, swallow_copy_rtx): ... this one.
7930         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
7931         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
7932         * toplpev.c (finalize): Dump stats.
7933         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
7934         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
7935         Rename from ... ; pass locators.
7936         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
7937         build?,  build_decl): Declare.
7938         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
7939         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
7940         Declare.
7941         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
7942         build?,  build_decl): New macros.
7943         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
7944         * statistics.h: New file.
7945
7946 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7947             Richard Sandiford  <rsandifo@redhat.com>
7948
7949         * config/mips/mips.h (MASK_FIX_SB1): Bump.
7950         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
7951         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
7952         * config/mips/mips.c (mips_output_division): Fill the branch delay
7953         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
7954         TARGET_FIX_R4400.
7955         (mips_output_division): Adjust accordingly.
7956         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
7957         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
7958
7959 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
7960
7961         * alias.c (rtx_equal_for_memref_p): Use predicates
7962         to test rtx classes and new rtx class codes, possibly
7963         splitting conditionals that tested against '<' and 'o'.
7964         * caller-save.c (save_call_clobbered_regs): Likewise.
7965         * combine.c (contains_muldiv, find_split_point, subst,
7966         combine_simplify_rtx, simplify_if_then_else,
7967         simplify_set, simplify_logical, expand_compound_operation,
7968         make_compound_operation, if_then_else_cond, known_cond,
7969         apply_distributive_law, cached_nonzero_bits,
7970         cached_num_sign_bit_copies, simplify_shift_const,
7971         gen_binary, simplify_comparison, update_table_tick,
7972         record_value_for_reg, get_lsat_value_validate): Likewise.
7973         * cse.c (mention_regs, find_best_addr, find_comparison_args,
7974         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
7975         Likewise.
7976         * emit-rtl.c (copy_insn_1): Likewise.
7977         * expr.c (force_operand): Likewise.
7978         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
7979         * flow.c (notice_stack_pointer_modification_1,
7980         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
7981         and_reg_cond, elim_reg_cond): Likewise.
7982         * function.c (update_epilogue_consts): Likewise.
7983         * genattrtab.c (attr_rtx_1): Likewise.
7984         * genopinit.c (gen_insn): Likewise.
7985         * integrate.c (subst_constants): Likewise.
7986         * jump.c (reversed_comparison_code_parts,
7987         reversed_comparison_code, delete_related_insns,
7988         rtx_renumbered_equal_p): Likewise.
7989         * local-alloc.c (block_alloc): Likewise.
7990         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
7991         canonicalize_condition): Likewise.
7992         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
7993         Likewise.
7994         * optabs.c (add_equal_node, expand_binop): Likewise.
7995         * predict.c (estimate_probability): Likewise.
7996         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
7997         * recog.c (validate_replace_rtx_1, comparison_operator,
7998         offsettable_address_p, constrain_operands): Likewise.
7999         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
8000         Likewise.
8001         * regclass.c (scan_one_insn): Likewise.
8002         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
8003         * regrename.c (kill_autoinc_value): Likewise.
8004         * reload.c (find_reusable_reload, find_reloads,
8005         reg_overlap_mentioned_for_reload_p): Likewise.
8006         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
8007         * rtl.c (copy_rtx): Likewise.
8008         * rtl.h (CONSTANT_P, INSN_P): Likewise.
8009         * rtlanal.c (commutative_operand_precedence): Likewise.
8010         * sched-deps.c (conditions_mutex_p): Likewise.
8011         * sched-rgn.c (is_cfg_nonregular): Likewise.
8012         * simplify-rtx.c (simplify_gen_binary,
8013         simplify_gen_relational, simplify_replace_rtx,
8014         simplify_unary_operation, simplify_binary_operation,
8015         simplify_ternary_operation, simplify_rtx): Likewise.
8016         * unroll.c (reg_dead_after_loop): Likewise.
8017         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
8018         print_operand): Likewise.
8019         * config/arc/arc.c (proper_comparison_operator): Likewise.
8020         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
8021         Likewise.
8022         * config/avr/avr.c (_reg_unused_after): Likewise.
8023         * config/frv/frv.c (frv_ifcvt_modify_tests,
8024         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
8025         * config/i386/i386.c (ix86_comparison_operator,
8026         ix86_carry_flag_operator, fcmov_comparison_operator,
8027         arith_or_logical_operator, print_operand,
8028         ix86_expand_binary_operator, ix86_binary_operator_ok):
8029         Likewise.
8030         * config/i386/i386.md: Likewise.
8031         * config/ia64/ia64.c (not_postinc_memory_operand,
8032         ia64_print_operand, update_set_flags, errata_emit_nops):
8033         Likewise.
8034         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
8035         CONSTRAINT_OK_FOR_S): Likewise.
8036         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
8037         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
8038         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
8039         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
8040         Likewise.
8041         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
8042         eqne_comparison_operator, signed_comparison_operator):
8043         Likewise.
8044         * config/mips/mips.c (cmp_op, symbolic_expression_p):
8045         Likewise.
8046         * config/mmix/mmix (mmix_foldable_comparison_operator,
8047         mmix_comparison_operator): Likewise.
8048         * config/pa/pa.c (hppa_legitimize_address): Likewise.
8049         * config/rs6000/rs6000.c (stmw_operation,
8050         branch_comparison_operator, trap_comparison_operator,
8051         ccr_bit): Likewise.
8052         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
8053         * config/s390/s390.c (s390_alc_comparison,
8054         s390_slb_comparison):L Likewise.
8055         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
8056         Likewise.
8057         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
8058         noov_compare_op, noov_compare64_op, v9_regcmp_op,
8059         emit_hard_tfmode_operation, reg_unused_after)
8060         * doc/md.texi, doc/rtl.texi: Likewise.
8061
8062         * ra-debug.c: Add 2004 to list of copyright years.
8063         * unroll.c: Likewise.
8064
8065         * combine.c (simplify_logical): Remove dummy test,
8066         (apply_distributive_law): Fix typo in comment.
8067         GET_CODE (x) == AND so x is a commutative binary op.
8068         * jump.c (delete_related_insns): simplify loop
8069         condition, move testing of RTX codes inside the loop.
8070         (rtx_renumbered_equal_p): do not use RTX_CODE.
8071         * rtl.c (rtx_class): Declare as enum rtx_class.
8072         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
8073         Move to RTX_COMM_COMPARE class.
8074         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
8075         Move to RTX_CONST_OBJ class.
8076         * rtl.h (enum rtx_class): New declaration,
8077         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
8078         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
8079         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
8080         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
8081         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
8082         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
8083         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
8084         OBJECT_P): New macros.
8085         * config/sparc/sparc.c (noov_compare_op): Remove register
8086         from parameter.
8087
8088 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8089
8090         * target.h: Remove texi jargons in comments.
8091
8092 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8093
8094         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
8095         threshold to 0x4f.
8096
8097         Revert:
8098         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8099         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8100         as well.
8101         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8102         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8103
8104 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8105
8106         * doc/md.texi (cbranchmode4): New.
8107
8108 2004-03-02  Eric Christopher  <echristo@redhat.com>
8109
8110         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
8111         fix_trunc.
8112         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
8113         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
8114         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
8115         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
8116
8117 2004-03-02  Richard Henderson  <rth@redhat.com>
8118
8119         PR middle-end/11767
8120         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
8121         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
8122         before the compare, if flag_non_call_exceptions.
8123
8124 2004-03-02  Richard Henderson  <rth@redhat.com>
8125
8126         PR middle-end/14327
8127         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
8128         emitting the label, not after.
8129
8130 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8131
8132         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
8133         (m68hc11_mov_addr_mode): Likewise.
8134         (m68hc11_override_options): Initialize them based on target.
8135         (register_indirect_p): Allow a MEM for indirect addressing modes and
8136         use flags to control what is allowed.
8137         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
8138         supported addressing modes.
8139         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
8140         (go_if_legitimate_address_internal): Likewise.
8141         (m68hc11_indirect_p): Likewise and check the mode.
8142         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
8143
8144 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8145
8146         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
8147         (expand_builtin_setjmp_setup): Use
8148         targetm.builtin_setjmp_frame_value instead of
8149         BUILTIN_SETJMP_FRAME_VALUE.
8150         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
8151         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
8152         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8153         * target.h (gcc_target): Add builtin_setjmp_frame_value.
8154         * targhooks.c (default_builtin_setjmp_frame_value): New.
8155         * targhooks.h: Add a prototype for
8156         default_builtin_setjmp_frame_value.
8157         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
8158         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8159
8160 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8161
8162         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
8163         sequences of moves.
8164         (add peepholes): New peepholes to optimize sequences adding small
8165         constants.
8166         (bset peepholes): New peepholes to transform an OR in a bset form
8167         (bclr peepholes): Likewise for bclr form.
8168         (cmp peepholes): New peepholes to avoid register copies when comparing.
8169
8170 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8171
8172         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
8173         to separate push from moves.
8174         ("*pushdf_internal"): Likewise.
8175         ("*pushsf_internal"): Likewise.
8176         ("*pushsi_internal"): Likewise.
8177         ("movdi_internal"): Use define_insn_and_split; non push operand.
8178         ("movdf_internal"): Likewise.
8179         ("movsf_internal"): Likewise.
8180         ("movsi_internal"): Likewise.
8181         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
8182         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
8183         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
8184
8185 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8186
8187         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
8188         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
8189         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
8190         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
8191         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
8192         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
8193         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
8194         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
8195         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
8196         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
8197         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
8198
8199 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8200
8201         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
8202         (SOFT_XY_REGNUM): Define.
8203         (cmp split): Use the above instead of hard coded numbers.
8204         (8-bit op split): No need to check the mode; allow Q_REG.
8205         (ashift split): Adjust the first operand if it uses the SP and we
8206         are pushing the shifted value.
8207         (plus shift split): Fix when a source is in register D+X.
8208         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
8209
8210 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8211
8212         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
8213         comparing with Z register.
8214
8215 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8216
8217         * cfgloop.h (struct loop_desc): Removed.
8218         (struct loop): Fields simple, desc and has_desc removed.
8219         (simple_loop_p, count_loop_iterations): Declaration removed.
8220         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
8221         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
8222         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
8223         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
8224         simple_loop_exit_p, variable_initial_value, variable_initial_values,
8225         simple_condition_p, simple_increment, count_strange_loop_iterations,
8226         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
8227         Removed.
8228         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
8229
8230 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8231
8232         * genattrtab.c: Don't handle MATCH_INSN.
8233         * genrecog.c: Likewise.
8234         * gensupport.c: Likewise.
8235         * rtl.def (match_insn): Remove.
8236         * doc/md.texi (match_insn, match_insn2): Remove.
8237
8238 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
8239
8240         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
8241         macro results in memory allocation.
8242
8243 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
8244
8245         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
8246         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
8247         %(fbsd_dynamic_linker),
8248         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
8249         config/i386/freebsd.h
8250         * config/arm/freebsd.h: Ditto.
8251         * config/i386/freebsd.h: Ditto.
8252         * config/i386/freebsd64.h: Ditto.
8253         * config/ia64/freebsd.h: Ditto.
8254         * config/rs6000/sysv4.h: Ditto.
8255         * config/sparc/freebsd.h: Ditto.
8256
8257 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
8258
8259         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
8260
8261 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8262
8263         * rtl.def (define_combine): Remove.
8264
8265 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8266
8267         * config/h8300/h8300.md: Tweak formatting.
8268
8269 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8270
8271         * config/h8300/h8300.md (*cmphi_h8300): Rename to
8272         *cmphi_h8300_znvc.
8273         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
8274
8275 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
8276
8277         PR bootstrap/14356
8278         * gcc.c (process_command): Remove const-qualification from argv.
8279         (main): Likewise.
8280
8281 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8282
8283         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
8284         pushqi1_h8300hs_advanced.  Adjust its caller.
8285         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
8286         Adjust its caller.
8287
8288 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
8289
8290         * Makefile.in (install-libgcc, install-multilib): Pass
8291         mkinstalldirs var to libgcc.mk.
8292
8293 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8294
8295         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
8296         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
8297
8298 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8299
8300         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
8301         * config/h8300/h8300.md: Split several peephole2's, each into
8302         two.
8303
8304 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8305
8306         * dominance.c (recount_dominator): Handle postdominators.
8307
8308 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8309
8310         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
8311         (NUM_SYMBOL_TYPES): Likewise.
8312         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
8313         (mips_unspec_address): Declare.
8314         (mips_gotoff_page, mips_gotoff_global): Delete.
8315         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
8316         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
8317         (mips_symbolic_constant_p, mips_symbolic_address_p)
8318         (mips_symbol_insns): Handle new symbol types.
8319         (general_symbolic_operand): New predicate.
8320         (mips_unspec_address): Make extern.
8321         (mips_gotoff_page, mips_gotoff_global): Delete.
8322         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
8323         Handle new symbol types.
8324         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
8325         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
8326         mips_unspec_address directly.
8327         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
8328         the documentation of -mexplicit-relocs.
8329
8330 2004-03-01  Jeff Law  <law@redhat.com>
8331
8332         * fold-const.c (fold): An equality comparison of a non-weak object
8333         against zero has a known result.  Similarly an equality comparison
8334         of the address of two non-weak, unaliased symbols has a known result.
8335
8336         * ggc-page.c (struct page_entry): New field PREV.
8337         (ggc_alloc): Update PREV field appropriately.
8338         (sweep_pages): Likewise.
8339         (ggc_free): Likewise.  Use PREV field rather than loop to
8340         improve ggc_free performance.
8341
8342 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8343
8344         * config/mips/mips.c (mips_output_division): Use the division
8345         instruction to fill the delay slot of a zero check.
8346         (mips_idiv_insns): Adjust accordingly.
8347
8348 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
8349
8350         * config.gcc: Create a default tmake_file for linux, and use
8351         it in all but two linux clauses.  Comment those two.
8352
8353 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
8354
8355         * combine.c (try_combine):  Do not refer to is_replaced.
8356         (gen_lowpart_for_combine):  Perverse subregs now have a
8357         more politically correct name.
8358         * cse.c (cse_insn): Likewise.
8359         * jump.c: Fix bogus reference to delete_insn.
8360
8361 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
8362
8363         PR debug/14328
8364         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
8365         constants as signed values.
8366
8367         PR middle-end/13448
8368         * c-tree.h (readonly_warning): Rename to ...
8369         (readonly_error): ... this.
8370         * c-typeck.c (build_unary_op): Adjust accordingly.
8371         (readonly_warning): Rename to ...
8372         (readonly_error): ... this and issue errors, not warnings.
8373         (build_modify_expr): Call readonly_error, not readonly_warning.
8374         (c_expand_asm_operands): Likewise.
8375         * tree-inline.c (optimize_inline_calls): Do not inline functions
8376         after errors have occurred.
8377
8378 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8379
8380         * configure.ac: Rearrange some threading code for clarity;
8381         add section comment.
8382         * configure: Regenerate.
8383
8384 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8385
8386         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
8387         typos.
8388         * doc/cppopts.texi: Fix a typo.
8389
8390 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8391
8392         * config/i386/i386.md: Fix formatting.
8393
8394 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8395
8396         * configure.ac: Add some comments delineating sections of code.
8397
8398         * doc/install.texi: Note that libada uses autoconf 2.57 also.
8399
8400         * doc/install.texi: Fix idiot typo in previous commit.
8401
8402         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
8403
8404 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8405
8406         * config/h8300/h8300.md: Add comments about peephole2's.
8407
8408 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8409
8410         * config/h8300/h8300.md: Tweak operand numbers of some
8411         peephole2's.
8412
8413 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8414
8415         * config/h8300/h8300.md: Tweak comments about peephole2's.
8416
8417 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
8418
8419         PR middle-end/14203
8420         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
8421         instead of testing whether DECL_RTL is not NULL.
8422
8423 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8424
8425         * config/sh/sh.c: Fix formatting.
8426
8427 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8428
8429         * config/sh/sh.c: Convert to ISO-C.
8430
8431 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
8432
8433         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
8434         my previous patch.
8435
8436         * config/darwin.h (machopic_finish): Output stub even if the
8437         symbol is already defined.
8438
8439 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8440
8441         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
8442
8443 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8444
8445         * genattr.c (main): Don't define
8446         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
8447         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
8448         (DFA_PIPELINE_INTERFACE): Likewise.
8449         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
8450         (DFA_PIPELINE_INTERFACE): Likewise.
8451
8452 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
8453
8454         * config/mips/mips.md (tstsi, tstdi): Delete.
8455
8456 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8457
8458         * config/mips/mips.c (override_options): Remove an obsolete
8459         duplicate definition of the "e" constraint.
8460         * config/mips/mips.h: Update a comment accordingly.
8461
8462 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8463
8464         * config/mips/mips.md: Complete the unfinished R4000
8465         multiply/shift errata workaround.  Improve documentation.
8466         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
8467         has a hilo hazard.
8468         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
8469         (muldi3, muldi3_internal): Likewise.
8470         (muldi3_internal2): Remove, replacing with...
8471         (muldi3_mult3, muldi3_r4000): ...these new patterns.
8472         (mulsidi3): Take the errata into account.
8473         (mulsidi3_32bit): Remove, replacing with...
8474         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
8475         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
8476         (umulsidi3): Take the errata into account.
8477         (umulsidi3_32bit): Remove, replacing with..
8478         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
8479         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
8480         TARGET_FIX_R4000.
8481         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
8482         (smuldi3_highpart, umuldi3_highpart): Likewise.
8483         * doc/invoke.texi: Document the errata workaround.
8484
8485 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8486
8487         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
8488         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8489         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
8490         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
8491         * config/mips/mips.c (mips_idiv_insns): New function.
8492         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
8493         (mips_output_division): Add a workaround for the R4000 divide/shift
8494         errata.
8495         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
8496         the length of an "idiv" instruction.
8497         * doc/invoke.texi: Document the new switches.
8498
8499 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8500
8501         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
8502         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
8503
8504 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8505
8506         PR optimization/14229
8507         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
8508
8509 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
8510
8511         * fold-const.c (fold): Strip NOPs that change the signedness
8512         for RSHIFT too.  Expand comment.
8513
8514 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
8515
8516         PR optimization/7871
8517         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
8518         from or to call insns.
8519
8520 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8521
8522         PR optimization/7871
8523         * flow.c (propagate_one_insn): Interpret calls as setting global
8524         registers, not merely clobbering them.
8525
8526 2004-02-27  Dale Johannesen  <dalej@apple.com>
8527
8528         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
8529         config/darwin-protos.h:  Ditto.
8530         config/darwin.h:  Remove call to it.
8531         * combine.c (distribute_notes): Do not place a REG_DEAD note
8532         when value is both set and used.
8533
8534 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8535
8536         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8537         as well.
8538         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8539         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8540
8541 2004-02-27  Andrew Pinski  <apinski@apple.com>
8542
8543         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
8544         Speedup common case of the type values being in the same order.
8545
8546 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
8547
8548         * config/ia64/ia64.h (no-inline-float-divide): New option.
8549         * config/ia64/ia64.h (no-inline-int-divide): New option.
8550         * config/ia64/ia64.h (no-inline-sqrt): New option.
8551         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
8552         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
8553         * config/ia64/ia64.c (ia64_override_options): Modify error
8554         checking for inlined division/sqrt.
8555
8556 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8557
8558         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
8559         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
8560         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
8561         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
8562         copyright.
8563
8564 2004-02-27  Paul Brook  <paul@codesourcery.com>
8565
8566         * function.c (assign_parms): Don't count pretend args for alignment.
8567
8568 2004-02-27  Richard Henderson  <rth@redhat.com>
8569
8570         * passes.c: New file.
8571         * Makefile.in (OBJS-common): Add it.
8572         * diagnostic.c (rtl_dump_and_exit): Move decl ...
8573         * flags.h (rtl_dump_and_exit): ... here.
8574         * output.h (size_directive_output, last_assemble_variable_decl):
8575         Move from toplev.c.
8576         * rtl.h (reg_alloc): Move from toplev.c.
8577         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
8578         struct dump_file_info, enum dump_file_index, dump_file_tbl,
8579         open_dump_file, close_dump_file, rest_of_decl_compilation,
8580         rest_of_type_compilation, rest_of_handle_final,
8581         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
8582         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
8583         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
8584         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
8585         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
8586         rest_of_handle_tracer, rest_of_handle_if_conversion,
8587         rest_of_handle_if_after_combine, rest_of_handle_web,
8588         rest_of_handle_branch_prob,
8589         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
8590         rest_of_handle_addressof, rest_of_handle_sibling_calls,
8591         rest_of_handle_jump_bypass, rest_of_handle_inlining,
8592         rest_of_handle_null_pointer, rest_of_handle_combine,
8593         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
8594         rest_of_handle_gcse, rest_of_handle_loop_optimize,
8595         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
8596         (decode_d_option): Use enable_rtl_dump_file.
8597         (compile_file, finalize, do_compile): Move profile+combine+graph
8598         cleanup to finish_optimization_passes.
8599         * toplev.h (init_optimization_passes, finish_optimization_passes,
8600         enable_rtl_dump_file): Declare.
8601
8602 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
8603             Roger Sayle  <roger@eyesopen.com>
8604
8605         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
8606         operands to build a tree with swapped operands.
8607         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
8608         'unsignedp' predicate to specify the signedness.
8609
8610 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8611
8612         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
8613         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
8614         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
8615         comment typos and formatting.  Follow spelling conventions.
8616
8617 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
8618
8619         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
8620         fix_truncsfsi2.
8621
8622         * config/rs6000/spe.md: Delete spe_efsctuiz.
8623         Add spe_fixuns_truncsfsi2.
8624         Add spe_fix_truncsfsi2.
8625
8626 2004-02-26  Eric Christopher  <echristo@redhat.com>
8627
8628         * c-lex.c (c_lex_string_translate): New variable.
8629         (lex_string): Use to determine string translation.
8630         * c-pragma.h: Prototype.
8631         * c-parse.in (start_string_translation): New. Set above.
8632         (stop_string_translation): Ditto.
8633         (attribute, attribute_list, asm_def, asm_stmt,
8634         asm_operand): Use above functions.
8635         * cp/parser.c (cp_parser_declaration): Translate strings
8636         unless token is RID_EXTERN. Set c_lex_string_translate
8637         for recursive use.
8638         (cp_parser_asm_definition): Only translate argument strings
8639         to asms.
8640         (cp_parser_asm_operand_list): Ditto.
8641         (cp_parser_attribute_list): Do not translate attribute strings.
8642
8643 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8644
8645         * stmt.c (expand_start_case_dummy): Remove.
8646         * tree.h: Remove the corresponding prototype.
8647
8648 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8649
8650         * builtins.c (apply_args_register_offset): Remove.
8651         * tree.h: Remove the corresponding prototype.
8652
8653 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8654
8655         * stor-layout.c (is_pending_size): Remove.
8656         * tree.h: Remove the corresponding prototype.
8657
8658 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8659
8660         * recog.c (validate_replace_src): Remove.
8661         * recog.h: Remove the corresponding prototype.
8662
8663 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8664
8665         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
8666         MAYBE_REG_PARM_STACK_SPACE.
8667         * function.c: Likewise.
8668         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
8669         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
8670         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
8671         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
8672
8673 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8674
8675         * c-decl.c (c_expand_deferred_function): Remove.
8676         * c-tree.h: Remove the corresponding prototype.
8677
8678 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8679
8680         * postreload.c (reload_cse_move2add): Generate just a PLUS
8681         instead of an entire SET.
8682
8683 2004-02-26  Jan Hubicka  <jh@suse.cz>
8684
8685         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
8686         /pentium4m.
8687         * i386.c (override_options): Add support for new CPUs.
8688         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
8689         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
8690         constants.
8691         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
8692
8693 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
8694
8695         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
8696
8697 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
8698
8699         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
8700         (sparc_emit_fixunsdi): New prototype.
8701         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
8702         (sparc_emit_fixunsdi): New function.
8703         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
8704         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
8705         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
8706         to sparc_emit_floatunsdi.
8707         (fixuns_truncsfdi2): New expander.
8708         (fixuns_truncdfdi2): Likewise.
8709
8710 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
8711
8712         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
8713         unless HAVE_cc0.
8714
8715 2004-02-25  Richard Henderson  <rth@redhat.com>
8716
8717         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
8718         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
8719         use (op0-op1) == 0 if op0 is a pointer.
8720         * config/alpha/alpha.md (cmpdi): Use some_operand.
8721         (three comparison combine splits): Remove.
8722
8723 2004-02-25  Richard Henderson  <rth@redhat.com>
8724
8725         PR c/12794
8726         * c-common.c (handle_alias_attribute): Reject the attribute if
8727         current_function_decl is set.
8728
8729 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
8730
8731         * config.gcc: Add comment describing extra_gcc_objs.
8732         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
8733         * configure.ac (extra_gcc_objs): New substitution variable.
8734         (host_extra_gcc_objs): Don't substitute.
8735         * configure: Regenerate.
8736         * Makefile.in: Use extra_gcc_objs.
8737
8738 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
8739
8740         * doc/contrib.texi: Add an entry for myself.
8741
8742 2004-02-25  Jan Hubicka  <jh@suse.cz>
8743
8744         * basic-block.h (make_eh_edge, break_superblocks): Declare.
8745         * cfgbuild.c (make_eh_edge):  Make global.
8746         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
8747         * except.c (build_post_landing_pads, connect_post_landing_pads,
8748         dw2_build_landing_pads, sjlj_emit_function_enter,
8749         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
8750         sjlj_build_landing_pads): Update CFG.
8751         (emit_to_new_bb_before): New function.
8752         (finish_eh_generation): Do not rebuild the CFG.
8753
8754 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8755
8756         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
8757         target_cpu_default defines.
8758         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
8759         * pa.h (TARGET_DEFAULT): Likewise.
8760
8761 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
8762
8763         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
8764         comparisons with regard to signedness.
8765
8766 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
8767
8768         * arm.c (thumb_legitimize_address): New function.
8769         * arm-protos.h: Prototype it.
8770         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
8771         (LEGITIMIZE_ADDRESS): Use it.
8772
8773 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
8774
8775         * reload1.c (reload): Only spill eliminable register with multiple
8776         adjacent elimination alternatives if all alternatives fail.
8777
8778 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
8779
8780         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
8781         is -4095...+4095 inclusive.
8782
8783 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
8784
8785         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
8786         the bootstrap failure with Sun CC 5.4 and 5.5.
8787
8788 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
8789
8790         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
8791         which modifies NEWREG.
8792         (cse_condition_code_reg): Update the mode of CC_REG in
8793         CC_SRC_INSN on our own.
8794
8795 2004-02-24  Michael Matz  <matz@suse.de>
8796
8797         * config/i386/i386.c (ix86_comp_type_attributes): Check for
8798         regparm attributes.
8799
8800 2004-02-24  Richard Henderson  <rth@redhat.com>
8801
8802         * toplev.c (dump_file_tbl): Rename from dump_file.
8803         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
8804         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
8805         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
8806         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
8807         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
8808         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
8809         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
8810         s/rtl_dump_file/dump_file/g.
8811
8812 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
8813
8814         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
8815         (spe_fixuns_truncsfsi2): Delete.
8816
8817         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
8818         (fixuns_truncsfsi2): Delete.
8819
8820 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
8821
8822         PR/14240
8823         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
8824
8825 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
8826
8827         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
8828
8829 2004-02-24  Jason Merrill  <jason@redhat.com>
8830
8831         * tree.c (check_qualified_type): New fn.
8832         (get_qualified_type): Use it.  If type already has the desired
8833         quals, just return it.
8834         * tree.h: Declare it.
8835
8836 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
8837
8838         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
8839         TARGET_SCHED_FINISH_GLOBAL): New macros.
8840
8841         * target.h (md_init_global, md_finish_global): Function
8842         declarations corresponding to new target macros.
8843
8844         * haifa-sched.c (sched_init, sched_finish): Allow target to
8845         call the new schedular hooks.
8846
8847         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
8848         call to update_life_info.
8849
8850         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
8851         flag_schedule_insns for SH4.
8852
8853         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
8854         find_set_regmode_weight, find_insn_regmode_weight,
8855         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
8856         sh_variable_issue, high_pressure, ready_reorder,
8857         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
8858         functions used to throttle the insn movement in first
8859         scheduling pass for SH.
8860
8861         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
8862         TARGET_SCHED_FINISH_GLOBAL.
8863
8864 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
8865
8866         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
8867         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
8868         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
8869         symbols in sections named by the user.
8870         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
8871         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
8872         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
8873         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
8874         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
8875         the above.
8876         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
8877         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
8878         one more pseudo to further improve code generation.
8879         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
8880         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
8881         inside UNSPEC.
8882         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
8883         * config/frv/frv.c (frv_legitimate_address_p): Added
8884         allow_double_reg_p argument.  Adjust all callers.  Use it to
8885         decide whether to enable double-register indirect addressing.
8886         (frv_funcdesc_alias_set): Remove.
8887         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
8888         register.  Emit movdi_ldd.
8889         (ldd_address_operand): New.
8890         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
8891         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
8892         (PREDICATE_CODES): Add ldd_address_operand.
8893         * config/frv/frv.md (movdi_ldd): New.
8894         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
8895         intermediate computations if possible.
8896         (symGOTOFF2reg_i): Fix harmless typo.
8897         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
8898         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
8899         relocated p_vaddr to vaddr type.
8900         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
8901         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
8902         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
8903         MEM, or use a funcdesc alias set.  Use regular move instead of
8904         ldd.
8905         (dbl_memory_one_insn_operand): Recognize function descriptors by
8906         type or by alias set, and don't split them.
8907         * config/frv/frv.md (call, call_value): Never use call_internal
8908         for fdpic.
8909         (call_internal, call_value_internal): Never match for FDPIC.
8910         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
8911         call_value_fdpicsi): Require FDPIC.
8912         (ldd): Removed.
8913         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
8914         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
8915         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
8916         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
8917         FDPIC.  Compute data base address.
8918         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
8919         before the other self-specs are processed.
8920         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
8921         Build with -fPIC.
8922         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
8923         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
8924         inhibit_libc is defined.
8925         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
8926         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
8927         __FRV_FDPIC__.
8928         (__RELOC_POINTER): Define.
8929         (_Unwind_IteratePhdrCallback): Use it.
8930         * config/frv/frv.h (Twrite): Define.
8931         (TRANSFER_FROM_TRAMPOLINE): Use it.
8932         * config/frv/linux.h (INVOKE__main): Undefine.
8933         (Twrite): Override.
8934         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
8935         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
8936         (-mlibrary-pic): Emphasize that this option generates EABI code.
8937         (-mcpu): Add fr550.
8938         (-mpack): Remove.
8939         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
8940         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
8941         and CONSTs in FDPIC mode.
8942         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
8943         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
8944         * config/frv/frv.c (move_source_operand): Don't accept symbolic
8945         constants.
8946         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
8947         rather than 'i' constraint for the 2-instruction alternative.
8948         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
8949         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
8950         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
8951         EXTRA_CONSTRAINT_FOR_Y.
8952         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
8953         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
8954         (addsi3): Change 'Y' constraint to 'Q'.
8955         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
8956         * reload.c (CONST_POOL_OK_P): New macro.
8957         (find_reloads): Use it to decide whether a constant can be forced
8958         into memory.
8959         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
8960         constant satisfies got12_operand.
8961         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
8962         (frv_legitimate_address_p): Check for valid unspec offsets using
8963         got12_operand rather than frv_legitimate_fdpic_operand_p.
8964         (frv_legitimate_fdpic_operand_p): Delete.
8965         (frv_emit_movsi): Abort if we try to use the FDPIC register during
8966         or after reload.
8967         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
8968         TARGET_FDPIC.
8969         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
8970         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
8971         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
8972         (frv_fdpic_fptr_operand): Don't declare here.
8973         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
8974         rather than fdpic_got12_operand.
8975         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
8976         got12_operand and const_unspec_operand.
8977         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
8978         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
8979         (symbolic_operand): Remove.
8980         (const_unspec_operand): New predicate.
8981         * config/frv/frv.md (*movsi_got): Use got12_operand.
8982         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
8983         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
8984         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
8985         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
8986         * config/frv/frv.c (frv_unspec): New structure.
8987         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
8988         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
8989         validate CONST indices.  Use frv_output_const_unspec to print them.
8990         (frv_print_operand): Update call to unspec_got_name.  Use
8991         frv_output_const_unspec to print constant unspecs.
8992         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
8993         Reject UNSPECs otherwise.
8994         (unspec_got_name): Take the relocation number as argument, not an
8995         rtx containing it.
8996         (frv_output_addr_const_extra): Remove, replacing with...
8997         (frv_output_const_unspec): ...this new function.
8998         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
8999         (gpr_or_int12_operand): Use fdpic_got12_operand.
9000         (dbl_memory_one_insn_operand): Likewise.
9001         (fdpic_got12_operand): Use frv_const_unspec_p.
9002         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
9003         are already legitimate.  Use frv_small_data_reloc_p when deciding
9004         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
9005         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
9006         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
9007         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
9008         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9009         label, for real this time.
9010         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
9011         representation of visibility.
9012         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
9013         such.
9014         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
9015         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
9016         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
9017         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
9018         it was explicitly disabled.
9019         (frv_stack_info): There is no need to save the link register in every
9020         frame unless TARGET_LINKED_FP is true.
9021         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
9022         frame pointer if the stack pointer might change value.
9023         (frv_return_addr_rtx): Check and process "count" argument.
9024         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
9025         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
9026         (frv_find_base_term): Declare.
9027         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
9028         (FIND_BASE_TERM): Define.
9029         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
9030         small_data_register_operand, small_data_symbolic_operand.  Add
9031         symbolic_operand.
9032         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
9033         (frv_print_operand_memory_reference, output_move_single): Remove
9034         special handling for unlegitimized sdata addresses.
9035         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
9036         and symbolic addresses.
9037         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
9038         (frv_find_base_term): New function.
9039         (int_2word_operand): Check specifically for symbolic address constants.
9040         (pic_register_operand, pic_symbolic_operand): Delete.
9041         (small_data_register_operand, small_data_symbolic_operand): Delete.
9042         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
9043         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
9044         (move_source_operand): Only accept CONSTs if they're a two-insn
9045         symbolic constant.
9046         (fdpic_got12_operand): Don't require TARGET_FDPIC.
9047         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
9048         using gen_symGOTOFF2reg*.
9049         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
9050         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
9051         themselves a cost of 3 insns.
9052         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
9053         Change predicate to symbolic_operand.
9054         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
9055         (*movsi_lda_sdata): Delete.
9056         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
9057         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
9058         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
9059         frv-*-*linux*.
9060         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9061         label.
9062         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
9063         -multilib-library-pic.
9064         (LINK_SPEC): Add -z text for -mfdpic.
9065         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
9066         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
9067         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
9068         Override.
9069         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
9070         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
9071         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
9072         crtstuff-generated files.
9073         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
9074         * config.gcc: Add frv-*-*linux*.
9075         * config/frv/linux.h, config/frv/t-linux: New.
9076         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
9077         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
9078         when -mfdpic even if a linker script is explicitly listed.
9079         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9080         * config/frv/frv.c (frv_override_options): Clear asm_out
9081         unaligned_op for SImode on FDPIC.
9082         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
9083         argument passed to decl_readonly_section.
9084         (frv_assemble_integer): Revert 2003-09-30's change, but make the
9085         whole block run with FDPIC even with -fno-PIC.
9086         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9087         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
9088         symbol or label plus offset to memory.
9089         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
9090         GOTOFF and GPREL for LABEL_REF.
9091         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
9092         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
9093         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
9094         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
9095         * doc/invoke.texi: Document them.
9096         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
9097         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
9098         (frv_splittable_got_operand): Removed.
9099         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
9100         LO_SUM.  Add comments.
9101         (frv_override_options): Moved enabling of FDPIC to
9102         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
9103         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
9104         (frv_legitimize_fdpic_address): Don't duplicate logic in
9105         frv_emit_movsi.
9106         (frv_gen_GPsym2reg): New.
9107         (unspec_got_name): Added gprel.
9108         (frv_expand_fdpic_call): Add support for inlining PLTs.
9109         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
9110         (gpr_or_int12_operand): Added GPREL12.
9111         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
9112         (small_data_symbolic_operand): Fail if FDPIC.
9113         (fdpic_splittable_got_operand): Removed.
9114         (fdpic_got12_operand): Added GPREL12.
9115         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
9116         when appropriate.  Fix sdata GOTOFF.
9117         (frv_legitimate_constant_p): Require legitimate PIC operand for
9118         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
9119         (frv_assemble_integer): Move FDPIC funcdesc handling out of
9120         flag_pic case.
9121         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
9122         frv_assemble_integer fails.
9123         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
9124         (SUBTARGET_DRIVER_SELF_SPECS): New.
9125         (ASM_SPEC): Don't pass -mno-fdpic.
9126         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
9127         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
9128         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
9129         -multilib-library-pic.
9130         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
9131         condexec_si_media_operator, condexec_sf_add_operator and
9132         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
9133         and condexec_sf_unary_operator.
9134         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
9135         New.
9136         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
9137         movsi_internal.  Give them internal names.  movsi_got has type
9138         int.
9139         (fdpic got splitters): Remove.
9140         (symGPREL2reg, symGPREL2reg_hilo): New.
9141         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
9142         to -mlibrary-pic.  Map -multilib-library-pic to it.
9143         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
9144         Document.
9145         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
9146         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
9147         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
9148         (frv_cannot_force_const_mem): New function.
9149         (const_small_data_p, plus_small_data_p): Update comments on sdata
9150         on FDPIC.
9151         (frv_override_options): Set flag_pie for FDPIC too.
9152         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
9153         call-saved registers on FDPIC.
9154         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
9155         don't force LR to be preserved.
9156         (frv_expand_prologue): Likewise.
9157         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
9158         (frv_frame_pointer_required): Don't force it just because the
9159         FDPIC register is used.
9160         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
9161         operand only if !condexec_p.
9162         (frv_legitimize_address): Return the FDPIC-legitimized address.
9163         Don't match small data here on FDPIC.
9164         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
9165         symbols.  Use TRUE/FALSE instead of 1/0.
9166         (frv_local_funcdesc_p): New.
9167         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
9168         immediates when possible.
9169         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
9170         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
9171         an UNSPEC_GOT.
9172         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
9173         12-bit immediates when possible.
9174         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
9175         are not legitimate pic operands.
9176         (frv_in_small_data_p): Re-enable for FDPIC.
9177         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
9178         (FRV_GLOBAL_P): Removed.
9179         * config/frv/frv.md: Add modes to CONSTs.
9180         (movsi_got): New.
9181         (movsi_lo_sum_got): Use separate matches instead of match_dup.
9182         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
9183         (fdpic splittable operations): Match on flag_pic != 1.
9184         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
9185         * config/frv/frv.c (frv_asm_out_constructor,
9186         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
9187         bytes, not bits.
9188         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
9189         * config/frv/frv.c (frv_assemble_integer): Reject complex
9190         expressions referencing function SYMBOL_REFs.
9191         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
9192         (move_source_operand): Reject CONSTs that reference function
9193         SYMBOL_REFs on FDPIC.
9194         (frv_emit_movsi): If we get such a CONST, break it up.
9195         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
9196         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
9197         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
9198         MEM.
9199         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
9200         (frv_trampoline_size): Increase for FDPIC.
9201         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
9202         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
9203         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
9204         Disable use of GOTOFF for now.
9205         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
9206         Disable use of small data in FDPIC for now.
9207         (frv_asm_output_mi_thunk): Implement for FDPIC.
9208         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
9209         * config/frv/frv.c (frv_asm_out_constructor): Use
9210         frv_assemble_integer for FDPIC pointers.
9211         (frv_asm_out_destructor): Likewise.
9212         * config/frv/frv.md (ldd): Fix order of operands.  Use
9213         address_operand for input.
9214         2003-09-18  DJ Delorie  <dj@redhat.com>
9215         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
9216         (unspec_got_name): Correct typo.
9217         (frv_emit_movsi): Pre-expand splittable GOTs.
9218         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
9219         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
9220         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
9221         * config/frv/t-frv: Add -mfdpic multilibs.
9222         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
9223         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
9224         * config/frv/frv.c (frv_override_options): -mfdpic assumes
9225         flag_pic, default to 32-bit pics, require DWORD ops.
9226         (frv_override_options): Add W and Z constraints.
9227         (frv_expand_prologue): No pic prologue for -mfdpic.
9228         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
9229         (frv_print_operand_memory_reference): Handle GOT constants.
9230         (frv_legitimate_address_p): Allow GOT constants.
9231         (frv_legitimize_address): Handle GOT addresses too.
9232         (frv_legitimate_fdpic_operand_p): New.
9233         (frv_legitimize_fdpic_address): New.
9234         (unspec_got_name): New.
9235         (frv_output_addr_const_extra): New.
9236         (frv_expand_fdpic_call): New.
9237         (frv_fdpic_fptr_operand): New.
9238         (gpr_or_int12_operand): Handle GOT operands.
9239         (int_2word_operand): Handle GOT operands.
9240         (fdpic_operand): New.
9241         (fdpic_splittable_got_operand): New.
9242         (fdpic_got12_operand): New.
9243         (frv_emit_movsi): Handle GOT operands.
9244         (frv_assemble_integer): -mfdpic doesn't use rofixups.
9245         (frv_print_operand): Support 'g' code for GOT operands.
9246         * config/frv/frv-protos.h: Add prototypes as needed.
9247         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
9248         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
9249         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
9250         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
9251         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
9252         R_FRV_GOTOFFLO): New.
9253         (movsi_high_got, movsi_lo_sum_got): New.
9254         (*movsi_pic): Don't use this splitter for -mfdpic.
9255         (addsi3): Allow GOT references also.
9256         (call, call_value): Handle -mfdpic separately.
9257         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
9258         call_value_fdpicsi): New.
9259         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
9260         symGOTOFF2reg_i): New.
9261         * config/frv/frv.h (MASK_FDPIC): New.
9262         (TARGET_FDPIC): New.
9263         (TARGET_SWITCHES): Add -mfdpic.
9264         (FDPIC_FPTR_REGNO): New.
9265         (FDPIC_REGNO): New.
9266         (OUR_FDPIC_REG): New.
9267         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
9268         FDPIC_CALL_REGS.
9269         (REG_CLASS_NAMES): Likewise.
9270         (REG_CLASS_CONTENTS): Likewise.
9271         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
9272         (EXTRA_CONSTRAINT): Add it here.
9273         (FRV_GLOBAL_P): New.
9274         (OUTPUT_ADDR_CONST_EXTRA): New.
9275
9276 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9277
9278         * config/sparc/sparc.h: Remove commented-out definitions of
9279         TARGET_EDOM and GEN_ERRNO_RTX.
9280
9281 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9282
9283         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
9284         df_analyse with df_analyze.
9285
9286 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
9287
9288         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
9289         beginning of block.
9290
9291 2004-02-23  James E Wilson  <wilson@specifixinc.com>
9292
9293         * calls.c (precompute_arguments): Update comment.
9294
9295 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9296
9297         * et-forest.c: Replace et_occurences with et_occurrences.
9298
9299 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9300
9301         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
9302         with iv_analyze.
9303
9304 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
9305
9306         * config/i386/i386.c: Rename pni to sse3.
9307         * config/i386/i386.h: Likewise.
9308         * config/i386/i386.md: Likewise.
9309         * config/i386/pmmintrin.h: Likewise.
9310         * doc/extend.texi: Likewise.
9311         * doc/invoke.texi: Likewise.
9312
9313 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
9314             Kazu Hirata  <kazu@cs.umass.edu>
9315
9316         Remove -fwritable-strings.
9317         * c-common.c (fix_string_type): Don't check
9318         flag_writable_strings.
9319         (fix_string_type): Likewise.
9320         * c-opts.c (set_std_c89): Don't initialize
9321         flag_writable_strings.
9322         (set_std_c99): Likewise.
9323         * common.opt (fwritable-strings): Remove.
9324         * flags.h: Remove the external declaration of
9325         flag_writable_strings.
9326         * opts.c (common_handle_option) <OPT_fwritable_strings>:
9327         Remove.
9328         * toplev.c (flag_writable_strings): Remove.
9329         (f_options): Remove an entry for writable-strings.
9330         * varasm.c (const_hash_1) <STRING_CST>: Don't check
9331         flag_writable_strings.
9332         (compare_constant) <STRING_CST>: Likewise.
9333         (build_constant_desc): Likewise.
9334         * config/darwin.c (machopic_select_section): Likewise.
9335         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
9336         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
9337         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
9338         * config/mips/mips.c (mips_select_section): Likewise.
9339         (mips_encode_section_info): Likewise.
9340         * config/pa/pa.c (pa_select_section): Likewise.
9341         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
9342         * config/v850/v850.c (v850_select_section): Likewise.
9343         * doc/invoke.texi (-fwritable-strings): Remove.
9344         (-fno-const-strings): Don't mention -fwritable-strings.
9345         * doc/trouble.texi: Don't mention -fwritable-strings.
9346
9347 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
9348
9349         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
9350
9351 2004-02-23  Dale Johannesen  <dalej@apple.com>
9352
9353         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
9354         (movdf_hardfloat64):  Ditto.
9355         (movdf_softfloat64):  Ditto.
9356
9357 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
9358         * config/rs6000/rs6000.c (function_arg): call to
9359         rs6000_mixed_function_arg for DFmode moved to allow
9360         normal DFmode incoming register assignment.
9361
9362 2004-02-23  Dale Johannesen  <dalej@apple.com>
9363
9364         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
9365         (movdf_hardfloat64):  Ditto.
9366
9367 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9368
9369         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
9370         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
9371         copyright.
9372
9373 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
9374
9375         PR c/14156
9376         * c-typeck.c (c_expand_return): Change check for VAR_DECL
9377         to use DECL_P instead.
9378
9379         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
9380         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
9381
9382 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9383
9384         * Makefile.in (opts.o): Depend on target.h.
9385         * opts.c (decode_options): Use targetm.default_short_enums
9386         instead of DEFAULT_SHORT_ENUMS.
9387         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9388         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
9389         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
9390         * target.h (gcc_target): Add default_short_enums.
9391         * config/cris/cris.h: Remove a comment about
9392         DEFAULT_SHORT_ENUMS.
9393         * config/ip2k/ip2k.h: Likewise.
9394         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
9395         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
9396
9397 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9398             Falk Hueffner  <falk@debian.org>
9399
9400         PR c/14188
9401         * builtins.c (expand_builtin_va_arg): Emit an informative message
9402         if a trap is generated.
9403         * c-typeck.c (build_function_call): Likewise.
9404
9405 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9406
9407         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
9408         fopen.
9409         * libgcov.c: Include sys/stat.h.
9410         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
9411         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
9412         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
9413         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
9414
9415 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
9416
9417         * reorg.c: Remove comments about dead ports.
9418
9419 2004-02-22  Christopher Faylor  <cgf@redhat.com>
9420
9421         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
9422         extra host object file when targetting cygwin rather than generic
9423         object files.
9424
9425 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
9426
9427         Merge from tree-ssa:
9428         2003-11-20  Richard Henderson  <rth@redhat.com>
9429
9430                 * tree-inline.c (insert_decl_map): New.
9431                 (remap_decl, remap_type, remap_block, copy_body_r,
9432                 initialize_inlined_parameters, declare_return_variable,
9433                 remap_save_expr): Use it.
9434
9435         * function.c (copy_body_r): Add mapping from id->ret_label to
9436         id->ret_label.  Revert test for ret_label.
9437
9438 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9439
9440         * genoutput.c (process_template): Strip trailing whitespace in @
9441         templates and issue a warning if there was any.
9442
9443 2004-02-21  Christopher Faylor  <cgf@redhat.com>
9444
9445         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
9446         object file when targetting cygwin.
9447         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
9448         overridden by top-level Makefile.
9449
9450 2004-02-21  Roger Sayle  <roger@eyesopen.com>
9451
9452         * config/i386/i386.c (standard_80387_constant_p): Also prefer
9453         the x87's load constant instructions when optimizing for size.
9454
9455 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
9456
9457         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
9458         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
9459         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
9460         * fold-const.c: Likewise.
9461         * simplify-rtx.c: Likewise.
9462
9463 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
9464
9465         * combine.c (can_combine_p): Don't ignore SETs marked with
9466         REG_EH_REGION notes.
9467         (try_combine): When attemting to fix unrecognized insns, don't
9468         split a PARALLEL that contains the original i2.
9469
9470 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
9471
9472         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
9473         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
9474         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
9475         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
9476         (vector, pixel, bool): #define to __vector, __pixel and __bool.
9477         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
9478         portion of header.
9479         (__altivec_link_error_invalid_argument): Remove prototype; will use
9480         __builtin_altivec_compiletime_error("vec_*") instead.
9481         (vec_*): Fix/complete set of available operation overloads given the
9482         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
9483         cv-correctness of pointer arguments; in C, always check for correct
9484         argument types before macro expansion.
9485         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
9486         defining Darwin/PowerPC-specific '-f[no-]altivec' and
9487         '-W[no-]altivec-long-deprecated' switches.
9488         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
9489         '__vector', '__pixel' and '__bool' macros using
9490         '__attribute__((altivec(...)))' types.
9491         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
9492         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
9493         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
9494         New type nodes.
9495         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
9496         handling '-W[no-]altivec-long-deprecated'.
9497         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
9498         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
9499         altivec_expand_dst_builtin): Remove casts from integer literals.
9500         (altivec_expand_builtin): Likewise; handle expansion of new
9501         '__builtin_altivec_compiletime_error' function.
9502         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
9503         types, and make them distinct from other vector types; register
9504         '__builtin_altivec_compiletime_error' function.
9505         (print_operand): For 'P', print a full target register name instead of
9506         merely its number.
9507         (rs6000_attribute_table): Add "altivec" attribute.
9508         (rs6000_handle_altivec_attribute): New function.
9509         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
9510         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
9511         maps to).
9512         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
9513         declare.
9514         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
9515
9516 2004-02-20  James E Wilson  <wilson@specifixinc.com>
9517
9518         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
9519         check.
9520         (shift_mix4left+2): Delete redundant pattern.
9521
9522 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9523
9524         * alias.c (OUTGOING_REGNO): Don't define the default.
9525         * builtins.c (OUTGOING_REGNO): Likewise.
9526         (INCOMING_REGNO): Likewise.
9527         (apply_args_register_offset): Always use OUTGOING_REGNO.
9528         * combine.c (OUTGOING_REGNO): Likewise.
9529         * sibcall.c (OUTGOING_REGNO): Likewise.
9530         * defaults.h (INCOMING_REGNO): Provide the default.
9531         (OUTGOING_REGNO): Likewise.
9532
9533 2004-02-21  Jan Hubicka  <jh@suse.cz>
9534
9535         * params.def (max-peeled-insns, max-completely-peeled-insns,
9536         max-once-peeled-insns): Set to 400.
9537
9538 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9539
9540         PR c++/12007
9541         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
9542         are set for parameters before outputing debugging information.
9543
9544 2004-02-20  Falk Hueffner  <falk@debian.org>
9545
9546         PR target/14201
9547         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
9548         numbers.
9549
9550 2004-02-20  Per Bothner  <per@bothner.com>
9551
9552         * input.h:  Don't #include line-map.h.  It may cause link problems
9553         with undefined linemap_line_start when line-map.h is included but
9554         line-map.o is not linked, as currently happens with gengtype on
9555         compilers that don't support inline.
9556         * toplev.c:  So we do have to explicitly #include line-map.h here.
9557
9558 2004-02-20  Richard Henderson  <rth@redhat.com>
9559
9560         * doc/invoke.texi: Add -Wvariadic-macros.
9561
9562 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9563
9564         * haifa-sched.c (sched_emit_insn): Remove.
9565         * sched-int.h: Remove the corresponding prototype.
9566
9567 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9568
9569         Revert:
9570         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9571         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
9572         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9573         * config/cris/cris.h: Remove a comment about
9574         DEFAULT_SHORT_ENUMS.
9575         * config/ip2k/ip2k.h: Likewise.
9576         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
9577
9578 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
9579             Tom Tromey  <tromey@redhat.com>
9580
9581         * doc/install.texi: Moved --disable-libgcj and
9582         --with-system-zlib documentation to new section for
9583         Java-specific options.
9584         Added explicit Cross-Compiler-Specific Options subheading.
9585         Added section for Java-specific options.
9586
9587 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
9588
9589         * doc/install.texi (Building the Ada compiler): Remove
9590         example.
9591
9592 2004-02-20  James E Wilson  <wilson@specifixinc.com>
9593
9594         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
9595
9596 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9597
9598         * gcc.c (process_command): Allow translation of the copyright
9599         symbol but not the rest of the copyright message.
9600         * gcov.c (print_version): Likewise.  Allow translation of the
9601         message about warranty.
9602
9603 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
9604
9605         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
9606         predicate.
9607         ("*andsi_clear"): Tweak constraints to not match postincrement.
9608         Adjust the predicate to exclude a volatile memory reference.
9609         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
9610         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
9611
9612 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
9613
9614         * move-if-change: Remove.
9615         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
9616         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
9617         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
9618         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
9619         (s-gtyp-gen, s-iov): Use the top level move-if-change.
9620         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
9621
9622 2004-02-19  James E Wilson  <wilson@specifixinc.com>
9623
9624         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
9625         for operand2.  Add condition that requires register_operand operand2
9626         before reload.
9627
9628 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
9629             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9630
9631         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
9632         * config/mips/mips.md: Expand comment above unaligned loads and stores.
9633
9634 2004-02-19  Richard Henderson  <rth@redhat.com>
9635
9636         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
9637         * tree.c (build0, build1, build2, build3, build4): Split out from...
9638         (build): ... here.  Call them.
9639         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
9640
9641         * convert.c (convert_to_integer): Remove extra build argument.
9642         * tree-inline.c (expand_call_inline): Likewise.
9643
9644 2004-02-19  Richard Henderson  <rth@redhat.com>
9645
9646         * c-opts.c (warn_variadic_macros): New.
9647         (c_common_handle_option): Set it.
9648         (sanitize_cpp_opts): Copy it to cpp_opts.
9649         * c.opt (Wvariadic-macros): New.
9650         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
9651         * cppinit.c (cpp_create_reader): Initialize it.
9652         * cppmacro.c (parse_params): Check it.
9653
9654 2004-02-19  David Daney <ddaney@avtrex.com>
9655
9656         PR preprocessor/14198
9657         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
9658         builtin_assert ("machine=mips")
9659
9660 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9661
9662         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
9663         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9664         * config/cris/cris.h: Remove a comment about
9665         DEFAULT_SHORT_ENUMS.
9666         * config/ip2k/ip2k.h: Likewise.
9667         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
9668
9669 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
9670
9671         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
9672         when passing single SFmode quantities in general registers,
9673         put them in the high half.
9674
9675 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
9676
9677         * doc/md.texi (Standard Names): Document additional dependency on
9678         fix pattern.
9679
9680         * optabs.c (ftruncify): Remove.
9681         (expand_fix): Manually inline ftruncify above.
9682         (can_fix_p): Add FIXME note.
9683
9684 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
9685
9686         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
9687         spe_fixuns_truncsfsi2.
9688
9689         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
9690         fixuns_truncsfsi2.
9691
9692 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
9693
9694         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
9695         * testsuite/gcc.dg/20040219-1.c: New test.
9696
9697 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
9698
9699         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
9700         "*subsf3_cconly"): Subtraction is not commutative.
9701
9702 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
9703
9704         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
9705         (sdbout_symbol): If called before sdbout_init, queue DECL for
9706         later and return.
9707         (sdbout_init): Set sdbout_initialized true, process decls
9708         queued earlier by sdbout_symbol.
9709         (sdbout_finish): Use size_t for index variable.
9710
9711 2004-02-19  Jeff Law  <law@redhat.com>
9712
9713         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
9714         for unordered comparison codes.
9715
9716 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
9717
9718         * reload1.c (reload): Correct comment.
9719         (scan_paradoxical_subregs): Remove #if 0 and old comment.
9720         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
9721         register variables are not used by reload.
9722
9723 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
9724
9725         PR target/14209
9726         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
9727         constraints to not match postincrement.  Adjust the predicate to
9728         exclude a volatile memory reference.
9729
9730 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9731
9732         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
9733
9734 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9735
9736         * hooks.c (hook_void_tree_int): Remove.
9737         (hook_void_constcharptr): Likewise.
9738         (hook_int_void_0): Likewise.
9739         * hooks.h: Remove the prototypes for the above three
9740         functions.
9741         * targhooks.c (hook_bool_machine_mode_true): Remove.
9742         * targhooks.h: Remove the prototype for
9743         hook_bool_machine_mode_true.
9744
9745 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9746
9747         * emit-rtl.c (subreg_realpart_p): Remove.
9748         (reorder_insns_with_line_notes): Likewise.
9749         (end_full_sequence): Likewise.
9750         * rtl.h: Remove the prototype for the above functions.
9751
9752 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9753
9754         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
9755         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
9756         config/iq2000/iq2000.h, config/m32r/m32r.h,
9757         config/pdp11/pdp11.h, config/sparc/sparc.h,
9758         config/xtensa/xtensa.h: Remove commented-out or useless
9759         definitions of CASE_VECTOR_PC_RELATIVE.
9760
9761 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9762
9763         * loop.c (all_sets_invariant_p): Remove.
9764
9765 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
9766
9767         PR target/12916
9768         * config/sparc/sparc.h (NPARM_REGS): Delete.
9769         (BASE_RETURN_VALUE_REG): Likewise.
9770         (BASE_OUTGOING_VALUE_REG): Likewise.
9771         (BASE_PASSING_ARG_REG): Likewise.
9772         (BASE_INCOMING_ARG_REG): Likewise.
9773         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
9774         TARGET_ARCH64, not TARGET_V9.
9775         (function_arg_slotno): Dispatch based on the mode class.
9776         Handle vector modes like floating-point modes.
9777         (function_arg_record_value_1): Handle vector types like
9778         floating-point types.
9779         (function_arg_record_value_2): Likewise.
9780         Calculate regno after mode transformation.
9781         (function_arg): Handle vector modes like floating-point modes.
9782         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
9783         If ARCH64, do not recheck alignment.
9784         (function_arg_pass_by_reference): Reorder the conditions.
9785         (sparc_return_in_memory): Move after function_arg_padding.
9786         Implement calling conventions for vector modes.
9787         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
9788         (function_value): Move scope of 'regbase'.
9789         Implement calling conventions for vector modes.
9790         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
9791         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
9792         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
9793         the argument is passed by reference.
9794         (sparc_type_code): Handle vector types.
9795
9796 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
9797
9798         * function.c (assign_parms): When building decl_rtl for
9799         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
9800
9801 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
9802
9803         * expr.c (is_aligning_offset): Check if we are aligning the
9804         expressions's address over BIGGEST_ALIGNMENT in bytes, not
9805         in bits.
9806
9807 2003-02-18  Matt Austern  <austern@apple.com>
9808
9809         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
9810         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
9811         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
9812         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
9813         spec string.
9814         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
9815
9816 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
9817
9818         * dwarf2out.c (loclabel_num): Move outside #ifdef
9819         DWARF2_DEBUGGING_INFO and mark with GTY(()).
9820         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
9821         Mark with GTY(()).
9822         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
9823         Allocate memory with ggc_alloc.  No need to copy anything.
9824         (ia64_hpux_file_end): Update to match.
9825
9826 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
9827
9828         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
9829         by default.
9830
9831 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
9832
9833         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
9834         ("divmodtisi3"): Likewise.
9835         ("udivmoddi4", "udivmodtidi3"): Likewise.
9836         ("divmodsi4", "divmoddisi3"): Likewise.
9837         ("udivmodsi4", "udivmoddisi3"): Likewise.
9838         ("udivsi3", "umodsi3"): Likewise.
9839
9840 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
9841
9842         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
9843         placeholder insn when chunkifying the pool.
9844
9845 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9846
9847         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
9848         generating PIC code.
9849
9850 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9851
9852         * config/h8300/h8300-protos.h: Add a prototype for
9853         h8300_expand_branch.
9854         * config/h8300/h8300.c (h8300_expand_branch): New.
9855         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
9856         bgtu, beq, bne): Call h8300_expand_branch().
9857
9858 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9859
9860         * config/h8300/h8300-protos.h: Add prototypes for
9861         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
9862         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
9863         (h8300_hard_regno_mode_ok): Likewise.
9864         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
9865         h8300_hard_regno_nregs().
9866         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
9867
9868 2004-02-18  Per Bothner  <per@bothner.com>
9869
9870         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
9871         partly reverts my 2003-10-01 change, because we're back to logically
9872         including <command line> inside the main line.
9873         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
9874         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
9875         Fixes PR preprocessor/14103.
9876
9877         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
9878         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
9879         (cpp_push_include):  Don't need to increment pfile's line field.
9880         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
9881
9882         * c-ppoutput.c (print struct):  New first_time field.
9883         (init_pp_output):  Set print.first_time.
9884         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
9885         which is set also for (say) <command line>.  Clear print.first_time.
9886
9887         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
9888         does not match the code, so fix both.
9889         (should_stack_file):  Inline include_pch_p function.
9890         (include_pch_p):  Remove pointless function.
9891
9892         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
9893
9894 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9895
9896         * config/h8300/h8300.md (four define_peephole2's): Use
9897         h8300_regs_ok_for_stm().
9898
9899 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9900
9901         * config/h8300/h8300-protos.h: Update the prototype for
9902         expand_a_rotate().
9903         * config/h8300/h8300.c (expand_a_rotate): Remove the first
9904         argument.
9905         * config/h8300/h8300.md: Update all callers.
9906
9907 2004-02-18  Jan Hubicka  <jh@suse.cz>
9908
9909         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
9910         floats.
9911         (simplify_binary_operation): Deal with logicals on floats.
9912
9913         * i386.md (SSE fabs splitters): Emit new patterns.
9914         (SSE cmov splitters): Likewise.
9915         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
9916         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
9917         subregs.
9918         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
9919         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
9920
9921 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9922
9923         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
9924         by hand.
9925         (output_a_rotate): Tweak a comment.
9926         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
9927         (*rotlhi3_1): Change to rotlhi3_1.
9928         (*rotlsi3_1): Change to rotlsi3_1.
9929
9930 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
9931
9932         PR target/13866
9933         * arm.c (load_multiple_operation): Don't insist that the source reg
9934         of a post-increment component is the same as the destination.
9935         (store_multiple_operation): Likewise.
9936
9937 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9938
9939         * config/h8300/h8300.md: Move movsf patterns into one section
9940         of the file.
9941
9942 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9943
9944         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
9945         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
9946         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
9947         config/mips/linux64.h, config/pa/pa-64.h,
9948         config/rs6000/aix51.h, config/rs6000/aix52.h,
9949         config/rs6000/spe.md, config/sparc/linux.h,
9950         config/sparc/linux64.h: Update copyright.
9951
9952 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9953
9954         * config/h8300/h8300.md: Move push patterns into one
9955         section of the file.
9956
9957 2004-02-18  Mark Mitchell <mark@codesourcery.com>
9958
9959         PR c++/11326
9960         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
9961         fntype.
9962
9963 2004-02-18  Paul Brook  <paul@codesourcery.com>
9964
9965         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
9966
9967 2004-02-18  Paul Brook  <paul@codesourcery.com>
9968
9969         PR debug/12934
9970         * dwarf2out.c (loc_descriptor_from_tree): Handle
9971         EXPR_WITH_FILE_LOCATION.
9972
9973 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
9974
9975         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
9976         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
9977         trailing whitespace from instructions.
9978
9979 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
9980
9981         * configure.ac: When generating auto-build.h, pass
9982         --enable-languages to the sub-configure.
9983         Put quotes around ${program_transform_name} when generating
9984         name of as, ld, nm, objdump.
9985         * configure: Regenerate.
9986
9987 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
9988
9989         * Makefile.in (s-check, s-config, s-conditions, s-flags)
9990         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
9991         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
9992         (s-preds, s-iov): Do not depend on move-if-change.
9993
9994 2004-02-17  James E Wilson  <wilson@specifixinc.com>
9995
9996         * caller-save.c (insert_restore): Pass mem through copy_rtx.
9997         (insert_save): Likewise.
9998
9999 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10000
10001         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
10002         warning.
10003
10004 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10005
10006         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
10007         *one_cmplsi2_h8300.
10008         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
10009
10010 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10011
10012         * config/h8300/h8300-protos.h: Update the prototype of
10013         fix_bit_operand().
10014         * config/h8300/h8300.c (fix_bit_operand): Remove the second
10015         argument "what".
10016         * config/h8300/h8300.md: Update all callers.
10017
10018 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10019
10020         * config/h8300/h8300.c (fix_bit_operand): Change the name of
10021         the last argument to "code" from "type".
10022
10023 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10024
10025         * config/h8300/h8300.c: Remove an extern declaration of
10026         rtx_equal_function_value_matters.
10027
10028 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10029
10030         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
10031         by hand.
10032         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
10033         (*iorqi3_1): Change to iorqi3_1.
10034         (*xorqi3_1): Change to xorqi3_1.
10035
10036 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10037
10038         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
10039         typos.
10040
10041 2004-02-17  Jan Hubicka  <jh@suse.cz>
10042
10043         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
10044
10045 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
10046
10047         PR optimization/14119
10048         * combine.c (try_combine): When attemting to fix unrecognized insns,
10049         don't delete SETs marked with REG_EH_REGION notes.
10050
10051 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
10052
10053         * combine.c (simplify_if_then_else): Do not replace
10054         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
10055         modes differ.
10056
10057 2004-02017  Steven Bosscher  <stevenb@suse.de>
10058
10059         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
10060         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
10061         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
10062         * ada/utils.c: Likewise.
10063         * cp/decl.c: Likewise.
10064         * f/com.c: Likewise.
10065         * java/class.c: Likewise.
10066
10067 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10068
10069         * config/h8300/h8300.md: Fix comment typos.
10070
10071 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10072
10073         * config/mips/t-iris6gld: Renamed to ...
10074         * config/mips/t-irix-gld: ... this.
10075         * config.gcc (mips-sgi-irix6*): Reflect this
10076         (mips-sgi-irix5*): Use it with GNU ld.
10077
10078         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
10079         to ...
10080         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
10081         * config/mips/t-irix-gld: Reflect this.
10082         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10083
10084         * config/mips/iris5gld.h: New file.
10085         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
10086         Only use collect2 without gas.
10087
10088         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
10089         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10090         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
10091         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10092
10093         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
10094         * config/mips/iris5.h: ... here.
10095
10096         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
10097         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10098         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
10099
10100         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
10101         using irix_startfile_spec, irix_endfile_spec.
10102
10103 2004-02-16  Gunther Nikl  <gni@gecko.de>
10104
10105         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
10106
10107 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10108
10109         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
10110         insns by hand.
10111
10112 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10113
10114         * cfghooks.c (split_edge): Speed up updating of dominators.
10115
10116 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
10117
10118         PR c++/11326
10119         * c-common.c (flag_abi_version): Remove.
10120         * c-common.h (flag_abi_version): Likewise.
10121         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
10122         * c.opt (fabi-version): Remove.
10123         * calls.c (expand_call): Always pass a function type to
10124         struct_value_rtx.  Use convert_memory_address.
10125         * common.opt (fabi-version): Add it.
10126         * flags.h (flag_abi_version): Likewise.
10127         (abi_version_at_least): New macro.
10128         * opts.c (common_handle_option): Add OPT_fabi_version.
10129         * toplev.c (flag_abi_version): Define it.
10130         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
10131         New function.
10132         (ia64_output_mi_thunk): Use it.
10133         (ia64_struct_value_rtx): Likewise.
10134
10135 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10136
10137         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
10138         Don't generate insns by hand.
10139
10140 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
10141
10142         PR c++/14178
10143         * doc/invoke.texi (fabi-version): The default is 2 now.
10144
10145 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10146
10147         * loop-iv.c: New file.
10148         * Makefile.in (loop-iv.o): New.
10149         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
10150         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
10151         num_loop_branches): New functions.
10152         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
10153         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
10154         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
10155         get_simple_loop_desc, free_simple_loop_desc): Declare.
10156         (simple_loop_desc): New inline function.
10157         (struct rtx_iv, struct niter_desc): New.
10158         * cfgloopmanip.c (loopify): Specify semantics more precisely.
10159         * expr.c (force_operand): Handle subregs of expressions created by
10160         loop unroller.
10161         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
10162         parts of the initialization to toplev.c
10163         * loop-unroll.c (loop_exit_at_end_p): New.
10164         (unroll_and_peel_loops): Call iv_analysis_done.
10165         (decide_peel_once_rolling, decide_peel_completely,
10166         decide_unroll_stupid, decide_unroll_constant_iterations,
10167         decide_unroll_runtime_iterations, decide_peel_simple,
10168         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
10169         unroll_loop_runtime_iterations): Use new simple loop analysis.
10170         * loop-unswitch.c (compare_and_jump_seq): New.
10171         (may_unswitch_on_p): Renamed to ...
10172         (may_unswitch_on): Use new iv analysis.
10173         (reversed_condition): Export.
10174         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
10175         * predict.c (estimate_probability): Use new simple loop analysis.
10176         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
10177         canon_condition, simplify_using_condition): Declare.
10178         * stor-layout.c (get_mode_bounds): New.
10179         * toplev.c (rest_of_handle_loop2): Some parts of
10180         initialization/finalization moved here from loop-init.c.
10181
10182 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10183
10184         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
10185         pointer.
10186         (CALL_USED_REGISTERS): Likewise.
10187         (REG_ALLOC_ORDER): Likewise.
10188         (REG_CLASS) <GENERAL_REGS>: Likewise.
10189
10190 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
10191
10192         * doc/md.texi (Insn Canonicalizations): Document left-chaining
10193         in associative operators.
10194         * rtlanal.c (commutative_operand_precedence): Create some new
10195         variables.  Prefer a commutative operand on the left, then
10196         binary expressions, then NEG and NOT.
10197
10198 2004-02-16  Matthias Klose  <doko@debian.org>
10199
10200         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
10201         in terms of SHLIB_SOVERSION.
10202         * config/m68k/t-slibgcc-elf-ver: New file.
10203         * config/pa/t-slibgcc-elf-ver: New file.
10204         * config.gcc (m68k-linux, parisc-linux): Use them when not
10205         sjlj exceptions are not configured.
10206
10207 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
10208
10209         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
10210
10211 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
10212
10213         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
10214
10215 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
10216
10217         * doc/sourcebuild.texi: Mention backends.html.
10218
10219 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
10220
10221         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
10222         line-map.c, line-map.h, var-tracking.c: Fix comment
10223         formatting.
10224
10225 2004-02-16  Richard Henderson  <rth@redhat.com>
10226
10227         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
10228
10229         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
10230
10231 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10232
10233         * config/h8300/h8300.md: Remove unnecessary parallels from
10234         all define_insn and define_split patterns.
10235
10236 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10237
10238         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
10239         "clobber").
10240
10241 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
10242
10243         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
10244         '%#'.
10245
10246 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10247
10248         * config/ia64/ia64.c, config/mips/mips.c,
10249         config/mmix/mmix-modes.def: Fix comment typos.
10250
10251 2004-02-15  Roger Sayle  <roger@eyesopen.com>
10252
10253         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
10254         (get_directive_line): Remove unused function prototype.
10255
10256 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10257
10258         * tree-inline.c (copy_body_r): Do not replace ret_label.
10259
10260 2004-02-14  Jan Hubicka  <jh@suse.cz>
10261
10262         * i386.c (x86_four_jump_limit): New variable.
10263         (k8_avoid_jump_misspredicts): Rename to ...
10264         (ix86_avoid_jump_misspredicts): .. this one.
10265         (ix86_pad_returns): Break out from ...
10266         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
10267         to.
10268         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
10269
10270 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10271
10272         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
10273         PARALLEL is NULL.
10274
10275 2004-02-14  Per Bothner  <per@bothner.com>
10276
10277         * fix-header.c (line_table):  Move local variable in main to global.
10278         * scan.h (line_table):  Use it.
10279         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
10280         line (recently renamed to src_loc) before calling recognized_function.
10281
10282 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
10283
10284         * Makefile.in: Fix comment typos.
10285
10286 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
10287
10288         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
10289         for start_value when it is directly moved into reg, and factorize
10290         the retrieval of GET_MODE (reg).
10291
10292 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10293
10294         * config/mips/mips-protos.h (mips_load_got_page): Delete.
10295         (mips_load_got_global): Delete.
10296         (mips_gotoff_page): Declare.
10297         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
10298         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
10299         UNSPEC_LOAD_GOT pattern rather than a MEM.
10300         (*load_got[sd]i): New patterns.
10301         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
10302         (mips_load_got_page, mips_load_got_global): Delete.
10303         (mips_gotoff_page): New function.
10304         (override_options): Don't initialize mips_got_alias_set.
10305
10306 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10307
10308         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
10309         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
10310         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
10311         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
10312         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
10313         * config/mips/mips.c: Fix some overly-long lines.
10314         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
10315         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
10316
10317 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10318
10319         * configure.ac: Search for as, ld below libexec/gcc.
10320         * configure: Regenerate.
10321
10322 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10323
10324         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
10325         __builtin_arm_setwcx ().
10326         * config/arm/arm.c (arm_expand_builtin): Generate operands
10327         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
10328
10329 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10330
10331         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
10332         and "wmuluh" to "wmulsm" and "wmulum", respectively.
10333         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
10334         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
10335         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
10336         (_mm_mulhi_pu16): Likewise.
10337
10338 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
10339
10340         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
10341         DECL_NAME != 0 before dereferencing.
10342
10343 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
10344
10345         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
10346         (s390_output_addr_const_extra): Declare.
10347         (s390_output_pool_entry): Remove FILE * argument.
10348         * config/s390/s390.c (s390_output_symbolic_const): Remove.
10349         (s390_output_addr_const_extra): New function.
10350         (print_operand_address): Call output_addr_const instead of
10351         s390_output_symbolic_const.
10352         (print_operand): Likewise.
10353         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
10354         Remove FILE * argument.
10355         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
10356         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
10357         call.
10358
10359 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10360
10361         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
10362         (struct edge, struct vertex, struct graph): New.
10363         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
10364         free_graph): New functions.
10365
10366 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
10367
10368         * config/mips/mips.md (casesi_internal, casesi_internal_di):
10369         Use ".set macro" to avoid warnings about multi-instruction
10370         macros, since they're intentional.
10371
10372 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
10373
10374         * config/darwin.h: Add include guards.  Remove old, now incorrect,
10375         comment about STANDARD_EXEC_PREFIX.
10376
10377         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
10378         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
10379         for installing .1 manpages.  Add rules for installing cpp
10380         and gcov manpages under their installed names.
10381
10382 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
10383
10384         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
10385         host, but try LD_FOR_TARGET first.
10386         * configure: Rebuilt.
10387
10388 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10389
10390         * dbxout.c: Move declaration of dbxout_type_decl outside
10391         #ifdef DBX_DEBUGGING_INFO.
10392         * c-parse.in: Don't give the asmdef production a type.
10393
10394 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10395
10396         * debug.h (struct gcc_debug_hooks): Add type_decl field.
10397         (debug_nothing_tree_int): Prototype.
10398         (dwarf_debug_hooks): Delete, unused.
10399         * debug.c (do_nothing_debug_hooks): Update.
10400         (debug_nothing_tree_int): New function.
10401         * langhooks.h (struct lang_hooks_for_decls):
10402         Remove builtin_type_decls field.
10403         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
10404         (LANG_HOOKS_DECLS): Update.
10405         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
10406         Use debug_hooks->type_decl.
10407         * dbxout.c (preinit_symbols): New static.
10408         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10409         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
10410         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
10411         for symbols to output.
10412         (dbxout_type_decl): New function.
10413         (dbxout_symbol): If called before dbxout_init has run, queue
10414         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
10415         to TYPE_DECLs before emitting them.
10416         * xcoffout.c (assign_type_number): Delete.
10417         (xcoff_type_numbers): New static table.
10418         (xcoff_assign_fundamental_type_number): New function.
10419         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
10420         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
10421         * sdbout.c: Include varray.h.
10422         (deferred_global_decls): New static.
10423         (sdb_debug_hooks): Update.
10424         (sdbout_global_decl): If we can't emit something right now,
10425         remember it in deferred_global_decls.
10426         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
10427         (sdbout_init): Initialize deferred_global_decls.
10428         * Makefile.in: Update dependencies of sdbout.o.
10429         * dwarf2out.c (dwarf2out_type_decl): New function.
10430         (dwarf2_debug_hooks): Update.
10431         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
10432         * c-decl.c (getdecls): Just return 0.
10433         (check_for_loop_decls): Don't use getdecls.
10434         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
10435         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
10436
10437 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
10438
10439         * config/s390/s390.c (s390_sched_reorder2): Remove.
10440         (TARGET_SCHED_REORDER2): Do not redefine.
10441
10442 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10443
10444         * c-parse.in (maybe_type_qual): Delete.
10445         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
10446         (asm_argument): New grammar rules.
10447         (extdef_1): Use asmdef.
10448         (maybeasm): Move down with other asm rules; use simple_asm_expr.
10449         (xexpr): Move up with other expression rules.
10450         (stmt): Use asm_stmt.
10451
10452         * c-typeck.c (build_asm_expr): New function - body mostly
10453         pulled from build_asm_stmt.
10454         (build_asm_stmt): Just handle tacking on the volatile qualifier.
10455         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
10456
10457 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
10458
10459         PR bootstrap/13617
10460         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
10461         (mips_declare_object): Make variadic.
10462         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
10463         mips_output_aligned_decl_common.
10464         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
10465         (mips_declare_object): Make variadic.
10466
10467 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10468
10469         * function.c (update_epilogue_consts): Teach about binary operations.
10470
10471         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
10472         previous MEM_VOLATILE in REF.
10473         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
10474         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
10475
10476 2004-02-12  Gunther Nikl  <gni@gecko.de>
10477
10478         * config.gcc: Restore support for m68k-openbsd.
10479
10480 2004-02-12  Jan Hubicka  <jh@suse.cz>
10481
10482         * tree-optimize.c (tree_rest_of_compilation): Do not release
10483         DECL_ARGUMENTS.
10484
10485 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
10486
10487         * doc/install.texi: Fix the spelling of "explicitly".
10488
10489 2004-02-11  Eric Christopher  <echristo@redhat.com>
10490
10491         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
10492         duplicate argument structure of cpp_interpret_string.
10493         * cpphash.h: Move prototype...
10494         * cpplib.h: Here.
10495         * cpplib.c: Fix calls to match new function signature.
10496
10497 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10498
10499         PR c/456
10500         * cppexp.c (num_binary_op): Don't allow comma operators in #if
10501         constant expressions at all outside C99 mode if pedantic.
10502
10503 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
10504
10505         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
10506         (log10_optab, log2_optab): Define corresponding macros.
10507         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
10508         * genopinit.c (optabs): Implement log10_optab and log2_optab
10509         using log10?f2 and log2?f2 patterns.
10510         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
10511         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
10512         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
10513         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
10514
10515         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
10516         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
10517         log2, log2f and log2l built-ins as inline x87 intrinsics.
10518
10519 2004-02-11  Richard Henderson  <rth@redhat.com>
10520
10521         PR target/1532
10522         * flow.c (insn_dead_p): A clobber of a dead hard register is a
10523         dead insn after reload.
10524
10525 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
10526
10527         * tree.h (frame_base_decl): Add GTY marker.
10528         * var-tracking.c (frame_base_decl): Likewise.
10529
10530 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
10531
10532         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
10533         incorrect, hunk.
10534         (add_location_or_const_value_attribute): Use text_section_label,
10535         not TEXT_SECTION_NAME.
10536
10537 2004-02-11  Per Bothner  <per@bothner.com>
10538
10539         Represent column numbers using line-map's source_location.
10540         The "next available source_location" is now managed internally by
10541         line-maps.c rather than by clients.
10542         * line-map.h (struct line_map):  New field column_bits.
10543         <from_line>:  Rename field to start_location.
10544         (struct line_maps):  New fields highest_location and max_column_hint.
10545         (linemap_check_files_exited):  New declaration.
10546         (linemap_line_start):  New declaration.
10547         (linemap_add):  Remove from_line parameter; use highest_location field.
10548         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
10549         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
10550         (CURRENT_LINE_MAP):  Remove macro.
10551         (linemap_position_for_column):  New inline function.
10552         * line-map.c (linemap_init):  Clear new fields.
10553         (linemap_check_files_exited):  New function, extracted from ...
10554         (linemap_free):  Use linemap_check_files_exited.
10555         (linemap_add):  Remove from_line parameter.  Various updates.
10556         (linemap_line_start):  New function.
10557         (linemap_lookeup):  Update for new field names.
10558         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
10559         linemap_position_for_column may unpredictably change the current map,
10560         it is cleaner and simpler for us to not cache it in cpp_reader.
10561         (struct cpp_buffer):  New sysp field.
10562         Changed warned_cplusplus_comments and from_stage3 to bitfields.
10563         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
10564         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
10565         current map using linemap_lookup.
10566         (do_linemarker):  Also set buffer's sysp field.
10567         (destringize_and_run):  No longer need to decrement current line.
10568         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
10569         (search_path_head, open_file_failed):  Use buffer's sysp.
10570         (cpp_make_system_header):  Get current map using linemap_lookup.
10571         Also set buffer's sysp flag.
10572         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
10573         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
10574         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
10575         (struct cpp_reader):  ... and adding saved_line_base field.
10576         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
10577         Update accordingly.  Don't adjust line.
10578         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
10579         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
10580         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
10581         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
10582         * cpplex.c (_cpp_lex_direct):  Likewise.
10583         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
10584         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
10585         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
10586         Remove col field as it is now subsumed by src_loc.
10587         * cpperror.c:  Update various field, parameter, and macro names.
10588         (print_location):  If col==0, try SOURCE_COLUMN of line.
10589         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
10590         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
10591         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
10592         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
10593         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
10594         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
10595         (_cpp_lex_direct):  Use linemap_position_for_column.
10596         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
10597         parameter.  Instead get it from the line_table global.  Adjust callers.
10598         (print):  Remove map field.  Replace line field to src_line.
10599         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
10600         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
10601         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
10602         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
10603         * cpptrad.c (copy_comment):  Rename variable.
10604         * c-lex.c (map):  Remove static variable, for same reason we removed
10605         cpp_reader's map field.
10606         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
10607         to call linemap_lookup.
10608         (cb_line_change):  Token's line field replaced by src_loc.
10609         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
10610         Don't save new_map.
10611
10612         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
10613         source_location.
10614
10615 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
10616
10617         * config/rs6000/altivec.md (*movv4si_internal): At least one
10618         operand must be register_operand.
10619         (*movv8hi_internal1): Likewise.
10620         (*movv16qi_internal1): Likewise.
10621         (*movv4sf_internal1): Likewise.
10622
10623 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
10624
10625         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
10626         operand.
10627         (movv4hi_internal): Same.
10628         (movv2sf_internal): Same.
10629         (movv1di_internal): Same.
10630
10631 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
10632
10633         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
10634         TARGET_OLDABI consistently.
10635         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
10636         mips_va_arg,override_options,compute_frame_size,
10637         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
10638         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
10639         and TARGET_OLDABI consistently.
10640         * config/mips/mips.md (exception_receiver): Likewise.
10641         * config/mips/linux64.h: Likewise.
10642
10643 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
10644
10645         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
10646         Set AltiVec ABI and vrsave as default for ppc64 linux.
10647         (init_cumulative_args): Post error, if try to return
10648         value in AltiVec register without enable AltiVec.
10649         (function_arg_advance): Ditto for passing arguments.
10650
10651 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
10652
10653         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
10654         a label before updating its usage count.
10655
10656 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
10657
10658         * doc/install.texi: Remove extra cd.
10659
10660 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
10661
10662         * c-common.c (vector_size_helper): Remove; call
10663         reconstruct_complex_type() instead.
10664         * tree.c (reconstruct_complex_type): New function
10665         (formerly vector_size_helper() in c-common.c).
10666         (make_vector): Make externally visible.
10667         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
10668
10669 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
10670
10671         * config/h8300/h8300-protos.h: Add a prototype for
10672         h8300_regs_ok_for_stm.
10673         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
10674         * config/h8300/h8300.md (stm_h8300s_2_advanced,
10675         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
10676         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
10677         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
10678         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
10679         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
10680         ldm_h8300s_4_normal, ldm_h8300s_4): Use
10681         h8300_regs_ok_for_stm().
10682
10683 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10684
10685         PR c/14088
10686         * real.c (real_from_string): Look for 'X' as well as 'x' in
10687         hexfloat strings.
10688
10689 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
10690
10691         * config/h8300/h8300.md: Remove an incorrect comment about
10692         peephole2.  Add comments.
10693
10694 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
10695
10696         PR/14058
10697         * emit-rtl.c (set_decl_incoming_rtl): New.
10698         * tree.h (set_decl_incoming_rtl): New.
10699         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
10700         DECL_INCOMING_RTL.
10701         * ada/misc.c (adjust_decl_rtl): Likewise.
10702
10703 2004-02-10  Per Bothner  <per@bothner.com>
10704
10705         * c-opts.c (c_common_post_options):   Don't emit working directory
10706         in cpp output if -P was specified.
10707
10708 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
10709
10710         PR c/14092
10711         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
10712         negate_expr back to the original type.
10713
10714 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
10715
10716         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
10717         bump retaddr here.
10718
10719 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
10720
10721         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
10722         gen_lowpart_SUBREG): Move under the file in which they
10723         are actually declared.
10724
10725 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
10726
10727         * doc/sourcebuild.texi: Add libada documentation.
10728
10729         * doc/install.texi: Update documentation on Ada build, now
10730         that the GNAT lib and tools are built automatically.
10731
10732 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
10733
10734         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
10735         && TARGET_IRIX.
10736
10737 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
10738
10739         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
10740         boundaries outside build_component_ref() call (a macro in ObjC++).
10741
10742 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
10743
10744         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
10745         (init_cumulative_args): Likewise.
10746         (a7_overlap_mentioned_p): Delete prototype.
10747         * config/xtensa/xtensa.c (struct machine_function): Replace
10748         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
10749         Add set_frame_ptr_insn field.
10750         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
10751         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
10752         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
10753         at the function entry and replace the operand with the pseudo.
10754         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
10755         argument and record this flag in CUMULATIVE_ARGS.
10756         (function_arg): Remove result_mode and special-case code to handle
10757         arguments in a7.  Instead, set need_a7_copy flag when there is an
10758         incoming argument in a7.
10759         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
10760         and use the value recorded in cfun->machine->set_frame_ptr_insn.
10761         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
10762         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
10763         special-case code.
10764         (a7_overlap_mentioned_p): Delete.
10765         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
10766         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
10767         arguments to init_cumulative_args and pass "incoming" flag instead.
10768         (BLOCK_REG_PADDING): Delete.
10769         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
10770         checks for reload_in_progress and reload_completed.  Update calls to
10771         xtensa_copy_incoming_a7.
10772         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
10773         to call xtensa_copy_incoming_a7.
10774
10775 2004-02-09  DJ Delorie  <dj@redhat.com>
10776
10777         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
10778         longer modify standard_exec_prefix, standard_bindir_prefix, or
10779         standard_startfile_prefix.
10780
10781 2004-02-09  James E Wilson  <wilson@specifixinc.com>
10782
10783         PR c++/11295
10784         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
10785         to expand_expr_real call, and pass in alt_rtl as last argument.
10786
10787         PR libstdc++/5625
10788         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
10789         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
10790         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
10791         * except.c (expand_builtin_extend_pointer): New.
10792         * except.h (expand_builtin_extend_pointer): Declare.
10793
10794 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
10795
10796         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
10797         unaligned loads and stores.
10798
10799 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10800
10801         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
10802         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
10803
10804         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
10805         * config/mips/iris5.h: ... here.
10806         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
10807
10808         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
10809         * config/mips/iris5.h: ... here.
10810
10811 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10812
10813         * configure.ac: Remove default executable files before AC_PROG_CC.
10814         * configure: Regenerate.
10815
10816 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
10817
10818         PR target/13721
10819         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
10820         print a operand other than a register.
10821
10822 2004-02-09  Roger Sayle  <roger@eyesopen.com>
10823
10824         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
10825         tree code rather than call fold_convert, which doesn't specify a
10826         default floating point to integer conversion.
10827
10828 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
10829
10830         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
10831         code to support SGS assembler.  Reformat adjacent code where possible.
10832         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
10833         definition.
10834         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
10835         for '%#'.
10836         * config/m68k/linux.h, config/m68k/m68k.c,
10837         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
10838         macros and asm_printf() format strings.
10839         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
10840         * config/m68k/linux.h: Update copyright.
10841         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
10842
10843 2004-02-08  Andreas Schwab  <schwab@suse.de>
10844             Bernardo Innocenti  <bernie@develer.com>
10845
10846         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
10847         REGISTER_PREFIX.
10848         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
10849         frame pointer register, overridable by OS targets.
10850         * (M68K_REGNAME): Macro to obtain register name for asm output,
10851         eventually replacing %a6 with M68K_FP_REG_NAME.
10852         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
10853         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
10854         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
10855         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
10856         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
10857
10858 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
10859
10860         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
10861         hook_rtx_tree_int_null.
10862         * targhooks.c (default_struct_value_rtx): Remove.
10863         * targhooks.h: Remove the prototype for
10864         default_struct_value_rtx.
10865         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
10866         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
10867         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
10868         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
10869         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
10870         config/rs6000/rs6000.c, config/s390/s390.c,
10871         config/stormy16/stormy16.c, config/v850/v850.c,
10872         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
10873         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
10874
10875 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
10876
10877         * README.Portability: Change "ISO C89" to "ISO C90".
10878         * c-parse.in (primary, initelt): Likewise.
10879
10880 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
10881
10882         * real.c (encode_ibm_extended): Normalize the input value before
10883         converting it to a double.  Handle the case where a normal value
10884         rounds to infinity.
10885
10886 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
10887
10888         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
10889         warning.
10890         * cse.c (preferrable): Change to preferable. Update all of its
10891         callers.
10892         * genautomata.c (ainsn): Change
10893         first_ainsn_with_given_equialence_num to
10894         first_ainsn_with_given_equivalence_num.  Update all of its
10895         references.
10896
10897 2004-02-08  Jan Hubicka  <jh@suse.cz>
10898
10899         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
10900
10901 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
10902
10903         * function.c (assign_parms): Fix formatting.
10904
10905 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
10906
10907         * default.h (PROMOTE_PROTOTYPES): Remove.
10908         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
10909         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
10910         EXPAND_BUILTIN_SAVEREGS): Poison.
10911         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
10912         hook_bool_tree_false.
10913         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10914         * target.h: Replace SETUP_INCOMING_VARARGS with
10915         targetm.calls.setup_incoming_varargs().
10916         * targhooks.c (default_promote_function_return): Remove.
10917         (default_promote_prototypes): Likewise.
10918         (default_struct_value_rtx): Always abort().
10919         (default_expand_builtin_saveregs): Always print an error
10920         message.
10921         (default_setup_incoming_varargs): Do nothing.
10922         (default_pretend_outgoing_varargs_named): Don't depend on
10923         SETUP_INCOMING_VARARGS.
10924         * targhooks.h: Remove the prototype for
10925         default_promote_function_return and
10926         default_promote_prototypes.
10927
10928 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
10929
10930         * system.h (SHARED_SECTION_ASM_OP): Poison.
10931         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
10932         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
10933
10934 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
10935
10936         Bug 13856
10937         * c-decl.c (diagnose_mismatched_decls): Only give special
10938         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
10939         is also true.
10940         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
10941         DECL_FUNCTION_CODE when defining a built-in function.
10942         Don't update DECL_ESTIMATED_INSNS.
10943         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
10944         FUNCTION_DECLs.
10945         * tree.h: Delete DECL_ESTIMATED_INSNS.
10946         * tree-inline.c (struct inline_data): Delete inlined_insns field.
10947         (expand_call_inline, optimize_inline_calls): Don't update
10948         DECL_ESTIMATED_INSNS nor inlined_insns.
10949         * cgraphunit.c (cgraph_analyze_function): Don't update
10950         DECL_ESTIMATED_INSNS.
10951
10952 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
10953
10954         * c-common.c (shadow_warning): Delete.
10955         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
10956         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
10957         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
10958         * c-parse.in (free_parser_stacks): Delete.
10959
10960 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
10961
10962         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
10963         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
10964         Use the top level mkinstalldirs, not the one in the gcc subdir.
10965         * mkinstalldirs: Remove (from the gcc subdir).
10966
10967 2004-02-07  Roger Sayle  <roger@eyesopen.com>
10968
10969         PR middle-end/13696
10970         * fold-const.c (fold_convert): New function to provide type
10971         conversion to the middle-end without using convert.
10972         (negate_expr, associate_trees, size_diffop, omit_one_operand,
10973         operand_equal_for_comparison_p, pedantic_omit_one_operand,
10974         invert_truthvalue, optimize_bit_field_compare, range_binop,
10975         decode_field_reference, make_range, build_range_check, unextend,
10976         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
10977         fold_binary_op_with_conditional_arg, fold_inf_compare,
10978         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
10979         convert with calls to fold_convert.
10980
10981 2004-02-07  Jan Hubicka  <jh@suse.cz>
10982
10983         * genrecog.c (find_operand): add extra argument stop.
10984         (validate_pattern): Verify that mach_dup is duplicating operand
10985         defined lexically earlier.
10986
10987 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
10988
10989         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
10990         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
10991         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
10992         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
10993         config/ia64/ia64.h, config/ip2k/ip2k.h,
10994         config/iq2000/iq2000.h, config/mips/iris5.h,
10995         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
10996         config/rs6000/aix51.h, config/rs6000/aix52.h,
10997         config/rs6000/darwin.h, config/rs6000/rs6000.h,
10998         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
10999         config/sparc/linux.h, config/sparc/linux64.h,
11000         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
11001         config/xtensa/xtensa.h: Remove the definitions of
11002         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
11003         MAX_WCHAR_TYPE_SIZE.
11004         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11005         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
11006
11007 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
11008
11009         PR bootstrap/13990
11010         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
11011         gen_rtx_NE.
11012
11013 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
11014
11015         * var-tracking.c (vt_add_function_parameters): Surround checkings by
11016         #ifdef ENABLE_CHECKING and #endif.
11017
11018 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11019
11020         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
11021         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
11022         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
11023         integer types and floating point with unsafe_math_optimizations.
11024         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
11025         Optimize A - B as A + (-B), if B is easily negated.
11026
11027 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11028
11029         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
11030         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
11031         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
11032         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
11033         Update copyright.
11034
11035 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11036
11037         * c-ppoutput.c, var-tracking.c: Fix comment typos.
11038
11039 2004-02-06  James E Wilson  <wilson@specifixinc.com>
11040
11041         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
11042         glibc 2.3 or better.
11043
11044 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11045
11046         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
11047         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
11048
11049 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
11050
11051         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11052         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
11053         (SHLIB_MKMAP_OPTS): Delete.
11054         (TARGET_LIBGCC2_CFLAGS): Add -specs.
11055         (bispecs): Add rule.
11056         * config/rs6000/libgcc-ppc64.ver: New file.
11057         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
11058         (__floatdidf, __floatdisf): Optimize multiply.
11059         (__fixunstfdi): New function.
11060         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
11061         real and imag parts larger than one register.
11062         (function_arg): Correct type of reg used when fp arg split partially
11063         to stack.
11064         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
11065         and __MACH__ or __powerpc64__.
11066
11067 2004-02-06  Roger Sayle  <roger@eyesopen.com>
11068             Ulrich Weigand  <uweigand@de.ibm.com>
11069
11070         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
11071         of gen_highpart or gen_lowpart when the floating point format is
11072         wider than the result mode.
11073
11074 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
11075
11076         * dwarf2out.c (loclabel_num): Move into #ifdef
11077         DWARF2_DEBUGGING_INFO.
11078
11079 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
11080
11081         * objc/objc-act.c (build_super_template) the 'class' field of
11082         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
11083         (get_super_receiver): Likewise.
11084
11085 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11086
11087         * reload1.c (check_eliminable_occurrences): Optimize the reset
11088         of can_eliminate.
11089         (eliminate_regs_in_insn): Likewise.
11090
11091 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
11092             Josef Zlomek  <zlomekj@suse.cz>
11093
11094         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
11095         at the beginning of function, call dwarf2out_var_location for
11096         NOTE_INSN_VAR_LOCATION note.
11097         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
11098         decl_loc_table): New.
11099         (lookup_decl_loc): New function.
11100         (add_var_loc_to_decl): New function.
11101         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
11102         only if can_use_fbreg.
11103         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
11104         functions.
11105         (loc_descriptor): Likewise. Process VAR_LOCATION.
11106         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
11107         (loc_descriptor_from_tree): Call mem_loc_descriptor with
11108         can_use_fbreg == true.
11109         (add_location_or_const_value_attribute): Added parameter enum
11110         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
11111         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
11112         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
11113         with attr == DW_AT_location.
11114         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
11115         if frame_base_decl is defined and has a location list.
11116         (gen_variable_die): Call add_location_or_const_value_attribute with
11117         attr == DW_AT_location.
11118         (dwarf2out_var_location): New function.
11119         (dwarf2out_begin_function): New function.
11120         (dwarf2out_init): Create decl_loc_table.
11121
11122 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11123
11124         * loop.c (force_movables): Transitively increase the priorities of
11125         all insns forces by an insn, not just the first one.
11126
11127 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
11128             Daniel Berlin <dberlin@dberlin.org>
11129
11130         Josef Zlomek  <zlomekj@suse.cz>
11131         * Makefile.in (var-tracking.o): New.
11132         * common.opt (fvar-tracking): New.
11133         * flags.h (flag_var_tracking): New.
11134         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
11135         * opts.c (common_handle_option): Add OPT_fvar_tracking.
11136         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
11137         * rtl.c (note_insn_name): Likewise.
11138         * rtl.def (VAR_LOCATION): New.
11139         * rtl.h (NOTE_VAR_LOCATION): New.
11140         (NOTE_VAR_LOCATION_DECL): New.
11141         (NOTE_VAR_LOCATION_LOC): New.
11142         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
11143         (variable_tracking_main): New exported function.
11144         * timevar.def (TV_VAR_TRACKING): New.
11145         * toplev.c (enum dump_file_index): Added DFI_vartrack.
11146         (dump_file): "vartrack" was added (-dV).
11147         (flag_var_tracking): New.
11148         (f_options): "var-tracking" was added.
11149         (rest_of_handle_variable_tracking): New function.
11150         (rest_of_compilation): Run variable tracking.
11151         (process_options): If user has not specified flag_var_tracking set it
11152         according to optimize, debug_info_level and debug_hooks.
11153         * tree.h (frame_base_decl): New.
11154         * var-tracking.c: New file.
11155         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
11156         (ia64_override_options): Set flags to run variable tracking in machine
11157         dependent reorg instead of toplev.c.
11158         (ia64_reorg): Run variable tracking if wanted.
11159         * doc/invoke.texi: Mention variable tracking in -dV,
11160         add and -fvar-tracking.
11161         * doc/passes.texi: Added variable tracking pass.
11162
11163         Daniel Berlin <dberlin@dberlin.org>
11164         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
11165         * dbxout.c (dbx_debug_hooks): Likewise.
11166         (xcoff_debug): Likewise.
11167         * debug.c (do_nothing_debug_hooks): Likewise.
11168         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
11169         * dwarfout.c (dwarf_debug_hooks): Likewise.
11170         * sdbout.c (sdb_debug_hooks): Likewise.
11171         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11172         * final.c (final_scan_insn): Call var_location debug hook for each
11173         NOTE_INSN_VAR_LOCATION.
11174
11175 2004-02-06  Jan Hubicka  <jh@suse.cz>
11176
11177         * flow.c (update_life_info): Allocate reg_deaths when called from
11178         scheudler.
11179         (attempt_auto_inc):  Update life ranges accordingly.
11180
11181 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11182
11183         PR debug/11816
11184         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
11185
11186 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11187
11188         * cfganal.c (flow_call_edges_add): Never split a libcall block.
11189
11190 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
11191
11192         * dwarf2out.c (output_loc_list): Don't use deltas if we have
11193         a separate line info table in use.
11194         Use the correct size for terminators.
11195         (output_die): Use offset, not delta.
11196
11197 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
11198
11199         * doc/invoke.texi: Remove the pni option from -mfpmath=.
11200
11201 2004-02-06  Jan Hubicka  <jh@suse.cz>
11202
11203         * recog.c (split_all_insns): Do not update reg info.
11204         * regrename.c (regrename_optimize): Likewise.
11205         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
11206         * flow.c (struct propagate_block_info): Add insn_num field.
11207         (reg_deaths): New array.
11208         (life_analysis): Free reg_deaths info.
11209         (allocate_reg_life_data): Allocate reg_deaths array.
11210         (propagate_one_insn): Use new array.
11211         (init_propagate_block): Initialize it.
11212         (free_propagate_block_info): Finish compuation of
11213         REG_LIVE_LENGTH
11214         (attempt_auto_inc): Sanity check that REG_INFO is not
11215         computed at same time.
11216         (mark_used_regs): Update new array.
11217
11218         * reg-stack.c (subst_stack_regs): Unshare clobbers before
11219         substitution.
11220
11221 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11222
11223         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
11224         *extendqisi2_short_displ.
11225
11226 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
11227
11228         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
11229         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
11230         (emit_library_call_value_1): Likewise pass nargs.
11231         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
11232         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
11233         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
11234         parameter instead of scanning TYPE_ARGS_TYPES to count args.
11235         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
11236         prototype.
11237         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
11238         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
11239         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
11240         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
11241         INIT_CUMULATIVE_ARGS.
11242         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
11243         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
11244         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
11245         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
11246         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11247         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
11248         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
11249         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
11250         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
11251         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
11252         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
11253         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
11254
11255 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11256
11257         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
11258         possible.
11259
11260 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11261
11262         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
11263         note containing (plus (reg) (const_int)), where reg is an
11264         eliminable reg, then perform the register elimination without
11265         depending on eliminate_regs().
11266
11267 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11268
11269         * config/arc/arc.c (arc_return_in_memory): Check the return
11270         value of int_size_in_bytes against -1.  Don't check
11271         TREE_ADDRESSABLE.
11272         * config/avr/avr.c (avr_return_in_memory): Check the return
11273         value of int_size_in_bytes against -1.
11274         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
11275         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
11276         Likewise.
11277         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
11278         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
11279         Likewise.
11280
11281 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11282
11283         * config/frv/frv-protos.h: Remove the prototype for
11284         frv_setup_incoming_varargs.
11285         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
11286         (frv_setup_incoming_varargs): Make it static.
11287         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
11288
11289 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11290
11291         * config/fr30/fr30-protos.h: Remove the prototype for
11292         fr30_setup_incoming_varargs.
11293         Update the prototypes for fr30_num_arg_regs and
11294         fr30_function_arg_partial_nregs.
11295         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
11296         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11297         (fr30_setup_incoming_varargs): Make it static.
11298         Add argument second_time.  Don't do anything when second_time
11299         is nonzero.
11300         (fr30_num_arg_regs): Change the type of the first argument to
11301         enum machine_mode.
11302         (fr30_function_arg_partial_nregs): Change the type of the
11303         second argument to enum machine_mode.
11304         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
11305         (SETUP_INCOMING_VARARGS): Remove.
11306
11307 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11308
11309         * config/arc/arc-protos.h: Remove the prototype for
11310         arc_setup_incoming_varargs.
11311         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
11312         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11313         (arc_setup_incoming_varargs): Make it static.
11314         (arc_external_libcall): Likewise.
11315         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
11316         Remove the commented-out definition of
11317         ASM_OUTPUT_EXTERNAL_LIBCALL.
11318
11319 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
11320
11321         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
11322         to $$(slibdir) in the installation commands.
11323
11324 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11325
11326         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
11327         with inner_regno, not regno.
11328         * rtlanal.c (refers_to_regno_p): Same.
11329
11330 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11331
11332         * config.gcc: Remove i370 support.
11333
11334 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11335
11336         * doc/install.texi:  Update automake and autoconf version
11337         requirements.  Note where to find gcj automake version.
11338
11339 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11340
11341         * Makefile.in (generate-manpages): Move dependencies to ...
11342         (man): here.
11343         * doc/makefile.texi: Document new targets.
11344         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
11345
11346 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11347
11348         PR/13485
11349         Makefile.in (srcextra):  Add a level of indirection to ...
11350         (gcc.srcextra): ... here.
11351         (po-generated): Delete.
11352         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
11353         options.c.
11354         (start.encap): Remove superfluous lang.srcextra dependency.
11355         objc/Make-lang.in (po-generated):  Delete.
11356
11357 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11358
11359         * config/ia64/ia64.c (REG_GP): Remove.
11360
11361 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11362
11363         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
11364
11365 2004-02-05  Devang Patel  <dpatel@apple.com>
11366
11367         * dwarf2out.c (force_type_die): Look up input type itself
11368         instead of root_type() of type.
11369
11370 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
11371
11372         * config/s390/s390.md ("*tmqidi_ext"): New insn.
11373         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
11374         pre-reload splitters are transformed to post-reload
11375         define_insn_and_split patterns.
11376         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
11377
11378 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11379
11380         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
11381         TARGET_PROMOTE_PROTOTYPES.
11382
11383 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11384
11385         PR middle-end/13750
11386         Revert:
11387         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
11388         PR pch/13361
11389         * c-typeck.c (constructor_asmspec): Delete.
11390         (struct initializer_stack): Delete field 'asmspec'.
11391         (start_init): Delete saving of asmspec.
11392         (finish_init): Don't update constructor_asmspec.
11393         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11394         * stmt.c (expand_asm): Duplicate strings from tree.
11395         (expand_asm_operands): Likewise.
11396         * tree.c (tree_size): Update computation of size of STRING_CST.
11397         (make_node): Don't make STRING_CST nodes.
11398         (build_string): Allocate string with tree node.
11399         * tree.def (STRING_CST): Update comment.
11400         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11401         (tree_string): Place contents of string in tree node.
11402         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11403         from tree.
11404
11405 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11406
11407         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
11408         msgid.
11409
11410 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
11411
11412         * config/rs6000/altivec.md (*movv4si_internal): At least one
11413         operand must be altivec_register_operand.
11414         (*movv8hi_internal1): Likewise.
11415         (*movv16qi_internal1): Likewise.
11416         (*movv4sf_internal1): Likewise.
11417
11418 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11419
11420         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
11421         * configure: Regenerate.
11422
11423 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
11424
11425         * doc/install.texi: Update description of --gxx-include-dir to
11426         give correct default value.
11427
11428 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11429
11430         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
11431         8 with MAC_REG.
11432
11433 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11434
11435         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
11436         gen_rtx_PARALLEL.
11437
11438 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11439
11440         * emit-rtl.c: Update the comment about the file.
11441
11442 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11443
11444         * sourcebuild.texi (Test Idioms): Update testcase naming
11445         conventions.
11446
11447 2004-02-04  Per Bothner  <per@bothner.com>
11448
11449         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
11450         * c-ppoutput.c (pp_dir_change):  New function.
11451         * c-common.h (pp_dir_change):  New declaration.
11452         * cpplib.h (struct cpp_options):  Remove working_directory field.
11453         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
11454         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
11455         Don't handle -fworking_directory here, but in c_common_post_options.
11456         (read_original_directory): Don't back up when done.
11457         Don't clear no-longer used working_directory flag.
11458         * cpplib.h:  Update declarations to match.
11459         * c-lex.c (cb_dir_change):  Move to c-opts.c.
11460         (init_c_lex):  Don't set dir_change callback here, since we want
11461         to set it even if flag_preprocess_only.
11462         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
11463         (c_common_post_options):  Set dir_change callback.
11464         Call pp_dir_change if approporiate.
11465         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
11466         unneeded parameter and result. Do LC_RENAME for <built-in>.
11467         (c_common_post_options):  Call cpp_read_main_file here instead.
11468         (c_common_init):  Update accordingly.
11469         (push_command_line_include):  Don't cpp_push_main_file.
11470         Do LC_RENAME rather than LC_LEASE to get back to main file.
11471         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
11472         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
11473         files, but call finish_options for all files.
11474         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
11475         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
11476         cpp_find_main_file + cpp_push_main_file.
11477         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
11478         * opts.c (handle_options):  Only set main_input_filename first time.
11479
11480 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
11481
11482         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
11483
11484 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
11485
11486         * reload.c (find_equiv_reg): When checking for register overlap,
11487         don't index hard_regno_nregs with a pseudo-reg.
11488
11489 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11490
11491         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
11492
11493 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
11494
11495         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
11496         against FIRST_PSEUDO_REGISTER.
11497
11498 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11499
11500         * Makefile.in: Move target, host overrides after per-language
11501         fragments.
11502
11503         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
11504         (GNATLIBCFLAGS): Remove -g.
11505
11506 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11507
11508         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
11509         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11510         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11511         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
11512         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
11513         config/sparc/sparc.c, config/vax/vax.c: Revert the
11514         replacements of "FALLTHRU" with "Fall through" done in the
11515         previous patch.
11516
11517 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11518
11519         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
11520         config/arm/arm.c, config/arm/arm.md,
11521         config/cris/cris-protos.h, config/fr30/fr30.c,
11522         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
11523         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
11524         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
11525         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
11526         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
11527         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
11528         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
11529         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
11530         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
11531         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
11532         config/s390/s390.md, config/sparc/netbsd-elf.h,
11533         config/sparc/openbsd.h, config/sparc/sparc.c,
11534         config/xtensa/lib2funcs.S: Fix comment formatting.
11535
11536 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11537
11538         * config/alpha/alpha.c, config/arc/arc.c,
11539         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
11540         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
11541         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
11542         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
11543         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11544         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11545         config/iq2000/iq2000.c, config/m32r/m32r.c,
11546         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
11547         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
11548         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
11549         config/rs6000/rs6000.h, config/sparc/sparc.c,
11550         config/vax/vax.c: Fix comment typos.  Follow spelling
11551         conventions.
11552
11553 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11554
11555         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
11556         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
11557         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
11558         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
11559         config/arm/fpa.md, config/arm/iwmmxt.md,
11560         config/arm/netbsd-elf.h, config/arm/netbsd.h,
11561         config/m68hc11/m68hc11.md, config/mips/iris5.h,
11562         config/mn10300/mn10300.md, config/rs6000/altivec.md,
11563         config/sparc/netbsd-elf.h: Update copyright.
11564
11565 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
11566
11567         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
11568         for all modes whose size is greater than 8 bytes if ARCH32.
11569         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
11570         by reference if ARCH32.
11571
11572 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
11573
11574         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
11575
11576 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11577
11578         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
11579         to before adddi3 insn patterns.
11580         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
11581         "reload_insi"): Move to before addsi3 insn patterns.
11582
11583 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
11584
11585         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
11586         parameter.  Use it instead of current_function_is_thunk.
11587         * function.h (struct function): Update documentation for is_thunk.
11588         * tree.h (CALL_FROM_THUNK_P): New macro.
11589         * config/alpha/alpha.c (alpha_sa_mask): Do not check
11590         no_new_pseudos when testing current_function_is_thunk.
11591         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
11592
11593 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11594
11595         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
11596         TARGET_SETUP_INCOMING_VARARGS.
11597
11598 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11599
11600         * emit-rtl.c (gen_rtx): Remove.
11601         * genattrtab.c: Don't mention gen_rtx in a comment.
11602         * rtl.h: Remove the prototype for gen_rtx.
11603         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
11604
11605 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11606
11607         * config/arc/arc.h, config/fr30/fr30.h
11608         (SETUP_INCOMING_VARARGS): Remove the target-independent
11609         comments.
11610         * doc/tm.texi: Don't mention deprecated target macros.
11611
11612 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11613
11614         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
11615         target-independent comment.
11616
11617 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11618
11619         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
11620         mention deprecated target macros.
11621
11622 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11623
11624         * config.gcc: Remove obsolete ports and configurations.
11625         * config/linux-aout.h, config/netware.h,
11626         config/t-linux-gnulibc1, config/d30v/abi,
11627         config/d30v/d30v-protos.h, config/d30v/d30v.c,
11628         config/d30v/d30v.h, config/d30v/d30v.md,
11629         config/d30v/libgcc1.asm, config/d30v/t-d30v,
11630         config/dsp16xx/dsp16xx-modes.def,
11631         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
11632         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
11633         config/i370/README, config/i370/i370-c.c,
11634         config/i370/i370-protos.h, config/i370/i370.c,
11635         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
11636         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
11637         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
11638         config/i386/moss.h, config/i386/netware.h,
11639         config/i386/svr3.ifile, config/i386/svr3dbx.h,
11640         config/i386/svr3gas.h, config/i386/svr3z.ifile,
11641         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
11642         config/i960/i960-c.c, config/i960/i960-coff.h,
11643         config/i960/i960-modes.def, config/i960/i960-protos.h,
11644         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
11645         config/i960/rtems.h, config/i960/t-960bare,
11646         config/m68k/hp310.h, config/m68k/hp320.h,
11647         config/m68k/hp320base.h, config/m68k/m68kv4.h,
11648         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
11649         Remove.
11650         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
11651         doc/md.texi: Remove mentions of obsolete ports.
11652
11653 2004-02-04  Jan Hubicka  <jh@suse.cz>
11654
11655         * alias.c (find_base_term, get_addr):  Do not dereference NULL
11656         pointer when all VALUE's locations has been invalidated.
11657         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
11658
11659 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
11660
11661         * doc/invoke.texi (x86 options): Fix spelling/wording.
11662
11663 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
11664
11665         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
11666         put the original string in a comment.
11667         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
11668         * config/mips/mips.c (mips_output_ascii): Likewise.
11669         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
11670
11671 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
11672
11673         * system.h (GIV_SORT_CRITERION): Poison.
11674         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
11675         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
11676
11677 2004-02-03  Roger Sayle  <roger@eyesopen.com>
11678
11679         PR target/9348
11680         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
11681         multiplies with a multiplication of the wrong signedness, its the
11682         signedness of the multiplication that we've performed that needs to
11683         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
11684         if expand_mult_highpart_adjust places the result in target.
11685
11686 2004-02-03  Richard Henderson  <rth@redhat.com>
11687
11688         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
11689
11690 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
11691
11692         * config.gcc (sh[234]l): Use little endian fragments.
11693
11694 2004-02-03  Paul Koning  <pkoning@equallogic.com>
11695
11696         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
11697         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
11698         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
11699         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
11700         floating point format.
11701         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
11702         the above functions.
11703         (output_move_quad): Output float values in correct target format.
11704         (legitimate_const_double_p): New function.
11705         * config/pdp11/pdp11.h: Fix typos.
11706         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
11707         (TARGET_FLOAT_FORMAT): Ditto.
11708         (pdp11_f_format, pdp11_d_format): Add external declarations.
11709         (MAX_REGS_PER_ADDRESS): Corrected.
11710         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
11711         (PRINT_OPERAND): Output float literals in target format.
11712
11713 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
11714
11715         PR c++/13975
11716         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
11717         TI_PRIVATE.
11718         (access_public_node): Redefine.
11719         (access_protected_node): Likewise.
11720         (access_private_node): Likewise.
11721         * tree.c (build_common_tree_nodes): Create access_public_node,
11722         access_protected_node, and access_private_node.
11723
11724 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
11725
11726         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
11727         (MASK_INLINE_INT_DIV_THR): Ditto.
11728         (MASK_INLINE_SQRT_LAT): Ditto.
11729         (MASK_INLINE_SQRT_THR): Ditto.
11730         (MASK_DWARF2_ASM): Ditto.
11731         (MASK_EARLY_STOP_BITS): Ditto.
11732
11733 2004-02-02  Paul Brook  <paul@codesourcery.com>
11734
11735         Merge from csl-arm-branch.
11736
11737         2004-01-30  Paul Brook  <paul@codesourcery.com>
11738
11739         * aof.h (REGISTER_NAMES): Add vfp reg names
11740         (ADDITIONAL_REGISTER_NAMES): Ditto.
11741         * aout.h (REGISTER_NAMES): Ditto.
11742         (ADDITIONAL_REGISTER_NAMES): Ditto.
11743         * arm-protos.h: Update/Add Prototypes.
11744         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
11745         Only allow 0.0 for VFP.
11746         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
11747         (values_fp): Rename from values_fpa.  Update Users.
11748         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
11749         Update users.  Only check valid constants for this hardware.
11750         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
11751         Only allow consts for FPA.
11752         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
11753         Only allow consts for FPA.
11754         (use_return_insn): Check for saved VFP regs.
11755         (arm_legitimate_address_p): Handle VFP DFmode addressing.
11756         (arm_legitimize_address): Ditto.
11757         (arm_general_register_operand): New function.
11758         (vfp_mem_operand): New function.
11759         (vfp_compare_operand): New function.
11760         (vfp_secondary_reload_class): New function.
11761         (arm_float_compare_operand): New function.
11762         (vfp_print_multi): New function.
11763         (vfp_output_fstmx): New function.
11764         (vfp_emit_fstm): New function.
11765         (arm_output_epilogue): Output VPF reg restore code.
11766         (arm_expand_prologue): Output VFP reg save code.
11767         (arm_print_operand): Add 'P'.
11768         (arm_hard_regno_mode_ok): Return modes for VFP regs.
11769         (arm_regno_class): Return classes for VFP regs.
11770         (arm_compute_initial_elimination_offset): Include space for VFP regs.
11771         (arm_get_frame_size): Ditto.
11772         * arm.h (FIXED_REGISTERS): Add VFP regs.
11773         (CALL_USED_REGISTERS): Ditto.
11774         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
11775         (FIRST_VFP_REGNUM): Define.
11776         (LAST_VFP_REGNUM): Define.
11777         (IS_VFP_REGNUM): Define.
11778         (FIRST_PSEUDO_REGISTER): Include VFP regs.
11779         (HARD_REGNO_NREGS): Handle VFP regs.
11780         (REG_ALLOC_ORDER): Add VFP regs.
11781         (enum reg_class): Add VFP_REGS.
11782         (REG_CLASS_NAMES): Ditto.
11783         (REG_CLASS_CONTENTS): Ditto.
11784         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
11785         (REG_CLASS_FROM_LETTER): Add 'w'.
11786         (EXTRA_CONSTRAINT_ARM): Add 'U'.
11787         (EXTRA_MEMORY_CONSTRAINT): Define.
11788         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
11789         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
11790         (REGISTER_MOVE_COST): Ditto.
11791         (PREDICATE_CODES): Add arm_general_register_operand,
11792         arm_float_compare_operand and vfp_compare_operand.
11793         * arm.md (various): Rename as above.
11794         (divsf3): Enable when TARGET_VFP.
11795         (divdf3): Ditto.
11796         (movdfcc): Ditto.
11797         (sqrtsf2): Ditto.
11798         (sqrtdf2): Ditto.
11799         (arm_movdi): Disable when TARGET_VFP.
11800         (arm_movsi_insn): Ditto.
11801         (movsi): Only split with general regs.
11802         (cmpsf): Use arm_float_compare_operand.
11803         (push_fp_multi): Restrict to TARGET_FPA.
11804         (vfp.md): Include.
11805         * vfp.md: New file.
11806         * fpa.md (various): Rename as above.
11807         * doc/md.texi: Document ARM w and U constraints.
11808
11809         2004-01-15  Paul Brook  <paul@codesourcery.com>
11810
11811         * config.gcc: Add with_fpu.  Allow with-float=softfp.
11812         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
11813         Break out of loop when we find a float-abi.  Fix typo.
11814         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
11815         Set -mfloat-abi=.
11816         * doc/install.texi: Document --with-fpu.
11817
11818         2003-01-14  Paul Brook  <paul@codesourcery.com>
11819
11820         * config.gcc (with_arch): Add armv6.
11821         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
11822         * config/arm/arm.c (arm_overrride_options): Ditto.
11823
11824         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
11825
11826         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
11827         (FL_ARCH6): Renamed from FL_ARCH6J.
11828         (arm_arch3m): Renamed from arm_fast_multiply.
11829         (arm_arch6): Renamed from arm_arch6j.
11830         * arm.h: Update all uses of above.
11831         * arm-cores.def: Likewise.
11832         * arm.md: Likewise.
11833
11834         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
11835         not arm6j.  Add entry for arch armv6.
11836
11837         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
11838
11839         * arm.c (arm_emit_extendsi): Delete.
11840         * arm-protos.h (arm_emit_extendsi): Delete.
11841         * arm.md (zero_extendhisi2): Also handle zero-extension of
11842         non-subregs.
11843         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
11844         (thumb_zero_extendhisi2): Only match if not v6.
11845         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
11846         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
11847         (thumb_extendqisi2): Likewise.
11848         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
11849         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
11850         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
11851         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
11852         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
11853         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
11854         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
11855         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
11856         (arm_extendqisi2addsi): Likewise.
11857
11858         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
11859
11860         Revert this change:
11861         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
11862         + REG addressing modes.
11863
11864         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
11865         + REG addressing modes.
11866
11867         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
11868
11869         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
11870         CONSTANT_P_RTX.
11871
11872         2003-30-12  Paul Brook  <paul@codesourcery.com>
11873
11874         * longlong.h: protect arm inlines with !defined (__thumb__)
11875
11876         2003-30-12  Paul Brook  <paul@codesourcery.com>
11877
11878         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
11879
11880         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
11881
11882         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
11883         change.
11884
11885         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
11886
11887         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
11888         to the virtual incoming args pointer for downward stacks.
11889
11890         2003-12-29  Paul Brook  <paul@codesourcery.com>
11891
11892         * config/arm/arm-cores.def: Add cost function.
11893         * config/arm/arm.c (arm_*_rtx_costs): New functions.
11894         (arm_rtx_costs): Remove
11895         (struct processors): Add rtx_costs field.
11896         (all_cores, all_architectures): Ditto.
11897         (arm_override_options): Set targetm.rtx_costs.
11898         (thumb_rtx_costs): New function.
11899         (arm_rtx_costs_1): Remove cases handled elsewhere.
11900         * config/arm/arm.h (processor_type): Add COSTS parameter.
11901
11902         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
11903
11904         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
11905         (arm926ejs.md): Include it.
11906         * config/arm/arm926ejs.md: New pipeline description.
11907
11908         2003-12-24  Paul Brook  <paul@codesourcery.com>
11909
11910         * config/arm/arm.c (arm_arch6j): New variable.
11911         (arm_override_options): Set it.
11912         (arm_emit_extendsi): New function.
11913         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
11914         * config/arm/arm.h (arm_arch6j): Declare.
11915         * config/arm/arm.md: Add sign/zero extend insns.
11916
11917         2003-12-23  Paul Brook  <paul@codesourcery.com>
11918
11919         * config/arm/arm.c (all_architectures): Add armv6.
11920         * doc/invoke.texi: Document it.
11921
11922         2003-12-19  Paul Brook  <paul@codesourcery.com>
11923
11924         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
11925         insn patterns to match.
11926         * config/arm/arm-generic.md: Ditto.
11927         * config/arm/cirrus.md: Ditto.
11928         * config/arm/fpa.md: Ditto.
11929         * config/amm/iwmmxt.md: Ditto.
11930         * config/arm/arm1026ejs.md: Ditto.
11931         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
11932         for 11_loadb.
11933
11934         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
11935
11936         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
11937         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
11938         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
11939         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
11940         arm_no_early_mul_dep): Correctly deal with conditional execution,
11941         parallels and single shift operations.
11942         (arm_no_early_alu_shift_value_dep): Define.
11943         * arm.md (attr type): Replace 'normal' with 'alu',
11944         'alu_shift' and 'alu_shift_reg'.
11945         (attr core_cycles): Adjust.
11946         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
11947         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
11948         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
11949         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
11950         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
11951         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
11952         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
11953         attribute appropriately.
11954         * config/arm/arm1026ejs.md (alu_op): Adjust.
11955         (alu_shift_op, alu_shift_reg_op): New.
11956         * config/arm/arm1136.md: Add better bypasses for early
11957         registers. Remove load[234] and store[234] bypasses.
11958         (11_alu_op): Adjust.
11959         (11_alu_shift_op, 11_alu_shift_reg_op): New.
11960
11961         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
11962
11963         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
11964         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
11965         * config/arm/arm.c (arm_no_early_store_addr_dep,
11966         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
11967         * config/arm/arm1026ejs.md: Add load-store bypass.
11968         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
11969         Add bypasses between instructions.
11970
11971         2003-12-10  Paul Brook  <paul@codesourcery.com>
11972
11973         * config/arm/arm.c (arm_fpu_model): New variable.
11974         (arm_fload_abi): New variable.
11975         (target_fpe_name): Rename from target_fp_name.
11976         (target_fpu_name): New variable.
11977         (arm_is_cirrus): Remove.
11978         (fpu_desc): New struct.
11979         (all_fpus): Define.
11980         (pf_model_for_fpu): Define.
11981         (all_loat_abis): Define.
11982         (arm_override_options): Set fp arch flags based on -mfpu=
11983         and -float-abi=.
11984         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
11985         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
11986         (*): Use new TARGET_* flags.
11987         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
11988         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
11989         (TARGET_SOFT_FLOAT): Ditto.
11990         (TARGET_SOFT_FLOAT_ABI): New.
11991         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
11992         TARGET_HARD_FLOAT.
11993         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
11994         (TARGET_OPTIONS): Add -mfpu=.
11995         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
11996         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
11997         (arm_pf_model): Define.
11998         (arm_float_abi_type): Define.
11999         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
12000         * config/arm/arm.md: Use new TARGET_* flags.
12001         * config/arm/cirrus.md: Ditto.
12002         * config/arm/fpa.md: Ditto.
12003         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
12004         * config/arm/semi.h (ASM_SPEC): Ditto.
12005         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
12006         (FPUTYPE_DEFAULT): Set to VFP.
12007         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
12008
12009         2003-11-22  Phil Edwards  <phil@codesourcery.com>
12010
12011         PR target/12476
12012         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
12013         'bx' instead of 'b' to avoid branch range restrictions.  Output
12014         the thunk immediately before the thunked-to function.
12015         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
12016         .thumb_func if a thunk is being generated.  Emit .code 16 along
12017         with .thumb_func if a thunk is not being generated.
12018
12019         2003-11-15  Nicolas Pitre <nico@cam.org>
12020
12021         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
12022         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
12023         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
12024         (lshrdi3_iwmmxt): Renamed from lshrdi3.
12025         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
12026
12027         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
12028             Ian Lance Taylor  <ian@wasabisystems.com>
12029
12030         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
12031         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
12032
12033         2003-11-05  Phil Edwards  <phil@codesourcery.com>
12034
12035         * config/arm/arm.md (insn):  Add new V6 instruction names.
12036         (generic_sched):  New attr.
12037         * config/arm/arm-generic.md:  Use generic_sched here.
12038         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
12039         stages of pipeline.  Adjust latency counts accordingly.
12040         * config/arm/arm1136jfs.md:  New file.
12041
12042         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
12043
12044         * config/arm/arm.h (processor_type): New enumeration type.
12045         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
12046         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
12047         (CPP_CPU_ARCH_SPEC): Likewise.
12048         * config/arm/arm.c (arm_tune): New variable.
12049         (all_cores): Use cores.def.
12050         (all_architectures): Add representative processor.
12051         (arm_override_options): Restructure way in which tuning
12052         information is deduced.
12053         * arm.md: Update "insn" and "type" attributes throughout.
12054         (insn): New attribute.
12055         (type): Compute "mult" from "insn" attribute.  Add load2,
12056         load3, load4 alternatives.
12057         (arm automaton): Move to arm-generic.md.
12058         * config/arm/arm-cores.def: New file.
12059         * config/arm/arm-generic.md: Likewise.
12060         * config/arm/arm1026ejs.md: Likewise.
12061
12062 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12063
12064         * doc/invoke.texi (SPARC options): Remove -mflat and
12065         all -mxxx (xxx:chip) options.
12066         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
12067         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
12068         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
12069         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
12070         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
12071         * config/sparc/sparc.c: Likewise.
12072         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
12073         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
12074         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
12075         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
12076         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
12077         (sparc_flat_must_save_register_p): Likewise.
12078         (sparc_flat_compute_frame_size): Likewise.
12079         (sparc_flat_save_restore): Likewise.
12080         (sparc_flat_function_prologue): Likewise.
12081         (sparc_flat_function_epilogue): Likewise.
12082         (sparc_flat_epilogue_delay_slots): Likewise.
12083         (sparc_flat_eligible_for_epilogue_delay): Likewise.
12084         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
12085         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
12086         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
12087         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
12088         (CONDITIONAL_REGISTER_USAGE): Likewise.
12089         (FRAME_POINTER_REQUIRED): Likewise.
12090         (INITIAL_ELIMINATION_OFFSET): Likewise.
12091         (BASE_RETURN_VALUE_REG): Likewise.
12092         (BASE_OUTGOING_VALUE_REG): Likewise.
12093         (BASE_PASSING_ARG_REG): Likewise.
12094         (BASE_INCOMING_ARG_REG): Likewise.
12095         (INCOMING_REGNO): Likewise.
12096         (OUTGOING_REGNO): Likewise.
12097         (LOCAL_REGNO): Likewise.
12098         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
12099         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
12100         (EPILOGUE_USES): Likewise.
12101         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
12102         ("flat" attribute): Delete.
12103         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
12104         handling.
12105         (call followed by jump define_peephole's): Delete.
12106         (exception_receiver): Likewise.
12107         (builtin_setjmp_receiver): Likewise.
12108         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
12109
12110 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
12111
12112         PR c/11658
12113         PR c/13994
12114         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
12115         on langhooks.h.
12116         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
12117         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
12118         Include langhooks.h.  Replace c_common_truthvalue_conversion
12119         with the truthvalue_conversion language hook throughout.
12120         (expr_no_commas): Call default_conversion before save_expr
12121         for the first term of the production 'x ? : y'.
12122         * c-common.c (c_common_truthvalue_conversion): Remove
12123         obsolete block.  Invoke recursively the hook instead
12124         of this function.
12125         * c-convert.c (convert): handle ERROR_MARK_NODE.
12126         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
12127         returned by the truthvalue_conversion language hook.
12128         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12129         c_objc_common_truthvalue_conversion.
12130         * c-objc-common.c (c_objc_common_truthvalue_conversion):
12131         New function.
12132         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
12133         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12134         c_objc_common_truthvalue_conversion.
12135
12136 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12137
12138         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
12139         of gen_rtx.
12140         (LIBCALL_VALUE): Likewise.
12141         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
12142         gen_rtx_CC0 instead of gen_rtx.
12143         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
12144         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
12145         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
12146         gen_rtx.
12147         (m68hc11_emit_logical): Likewise.
12148
12149 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12150
12151         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
12152         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
12153         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
12154         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
12155         config/mips/mips.md, config/mmix/mmix.c,
12156         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
12157         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
12158         config/rs6000/altivec.md, config/s390/s390.c,
12159         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
12160         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
12161         Use const0_rtx instead of GEN_INT (0).  Do the same for other
12162         constants that are readily available.
12163
12164 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12165
12166         * doloop.c, optabs.c, regmove.c, sched-deps.c,
12167         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
12168         instead of GEN_INT (0).  Do the same for other constants that
12169         are readily available.
12170
12171 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12172
12173         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
12174         gen_rtx.
12175         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
12176         instead of gen_rtx.
12177         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
12178         gen_rtx.
12179         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
12180         gen_rtx_ASHIFT instead of gen_rtx.
12181         (udivmodqi4): Likewise.
12182
12183 2004-02-02  Richard Henderson  <rth@redhat.com>
12184
12185         PR target/13789
12186         * expr.c (store_expr): Use force_operand before emit_move_insn.
12187
12188 2004-02-02  Jeff Law  <law@redhat.com>
12189             Roger Sayle  <roger@eyesopen.com>
12190
12191         * tree.c (commutative_tree_code, associative_tree_code): New
12192         functions.
12193         (iterative_hash_expr): Use commutative_tree_code.
12194         * tree.h (commutative_tree_code, associative_tree_code): Declare.
12195         * fold-const.c (operand_equal_p): Use commutative_tree_code
12196         rather than inlining the commutativity check.
12197         (fold): Likewise.
12198
12199 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12200
12201         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
12202         * config/frv/frv-protos.h: Remove the prototype for
12203         frv_function_arg_keep_as_reference.
12204         * config/frv/frv.c (frv_function_arg_keep_as_reference):
12205         Remove.
12206         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
12207         * config/stormy16/stormy16.h: Remove the commented-out
12208         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
12209
12210 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
12211
12212         PR target/13914
12213         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
12214         for retaddr_column.
12215
12216 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12217
12218         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
12219         gen_rtx.
12220
12221 2004-02-02  Eric Christopher  <echristo@redhat.com>
12222             Zack Weinberg  <zack@codesourcery.com>
12223
12224         * c-opts.c (c_common_handle_option): Add -finput-charset.
12225         * c.opt: Ditto.
12226         * cppcharset.c (one_iso88591_to_utf8): Remove.
12227         (convert_iso88591_utf8): Ditto.
12228         (conversion_tab): Remove 8859-1 converter.
12229         (_cpp_input_to_utf8): Remove.
12230         (_cpp_init_iconv_buffer): Ditto.
12231         (_cpp_close_iconv_buffer): Ditto.
12232         (_cpp_convert_input): New function.
12233         (_cpp_default_encoding): Ditto.
12234         * cpphash.h: Add/remove prototypes for above.
12235         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
12236         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
12237         for narrow execution and input character sets.
12238         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
12239         * doc/cppopts.texi: Document -finput-charset.
12240
12241 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
12242
12243         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
12244         against FIRST_PSEUDO_REGISTER.
12245
12246 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12247
12248         * doc/invoke.texi (SPARC options): Further improve.
12249
12250 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12251
12252         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
12253         config/h8300/h8300.c, config/ip2k/ip2k.md,
12254         config/iq2000/iq2000.c, config/mips/mips.c,
12255         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
12256         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
12257         config/v850/v850.md: Fix indentation.
12258
12259 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12260
12261         * config/sparc/sparc.c (function_arg_slotno): Align TImode
12262         arguments on a 16-byte boundary in the parameter array if ARCH64.
12263         Split handling of TFmode.
12264
12265 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
12266
12267         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
12268         Don't test CONSTANT_P (x).
12269         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
12270         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
12271         Fix misindentation.
12272
12273 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12274
12275         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
12276
12277 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12278
12279         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
12280         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
12281         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
12282         config/iq2000/iq2000.c, config/m32r/m32r.c,
12283         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
12284         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
12285         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
12286         config/stormy16/stormy16.c, config/v850/v850.md,
12287         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
12288
12289 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12290
12291         * config/mcore/mcore.c (block_move_sequence): Replace
12292         gen_rtx_CONST_INT with GEN_INT.
12293
12294 2004-02-02  Jan Hubicka  <jh@suse.cz>
12295
12296         * alias.c (record_set): Use hard_regno_nregs.
12297         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
12298         * builtins.c (apply_args_size): Likewise.
12299         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
12300         mark_set_regs, add_stored_regs, mark_referenced_regs,
12301         insert_restore, insert_save, insert_one_insn): Likewise.
12302         * cfgcleanup.c: Include regs.h
12303         (mark_effect, mentions_nonequal_regs): Likewise.
12304         * cfgrtl.c (mark_killed_regs): Likewise
12305         * combine.c (update_table_tick, record_value_for_reg,
12306         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
12307         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
12308         reg_bitfield_target_p, distribute_notes): Likewise.
12309         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
12310         exp_equiv_p, cse_insn): Likewise.
12311         * cselib.c (cselib_lookup): Likewise.
12312         (cselib_invalidate_regno, cselib_record_set): Likewise.
12313         * df.c (df_ref_record): Likewise.
12314         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
12315         Likewise.
12316         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
12317         count_or_remove_death_notes_bb): Likewise.
12318         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
12319         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
12320         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
12321         * integrate.c (mark_stores): Likewise.
12322         * jump.c (delete_prior_computation): Likewise.
12323         * lcm.c (reg_dies, reg_becomes_live): Likewise.
12324         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
12325         * loop.c (LOOP_REGNO_NREGS): Likewise.
12326         * postreload.c (reload_combine, reload_combine_note_store,
12327         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
12328         * ra-colorize.c (combine, color_usable_p, get_free_reg,
12329         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
12330         try_recolor_web, insert_coalesced_conflicts, check_colors,
12331         break_precolored_alias): Likewise.
12332         * ra-debug.c: Include regs.h
12333         (ra_print_rtx_object): Likewise.
12334         * ra-rewrite (choose_spill_colors): Likewise.
12335         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
12336         * ra.c (init_ra): Likewise.
12337         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
12338         peep2_find_free_register): Likewise.
12339         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
12340         * regclass.c (hard_regno_nregs): New array.
12341         (init_reg_modes_once): Initialize it.
12342         (choose_hard_reg_mode): Use it.
12343         (record_reg_classes): Likewise.
12344         * regmove.c (mark_flags_life_zones): Likewise.
12345         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
12346         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
12347         copy_value, maybe_mode_change, find_oldest_value_reg,
12348         copyprop_hardreg_forward_1):
12349         * regs.h (hard_regno_nregs): Declare.
12350         * realod.c (reload_inner_reg_of_subreg): Use it.
12351         (push_reload, combine_reloads, find_dummy_reload,
12352         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
12353         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
12354         reload_adjust_reg_for_mode): Likewise.
12355         * reload1.c (compute_use_by_pseudos, count_pseudo,
12356         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
12357         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
12358         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
12359         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
12360         delete_output_reload): Likewise.
12361         * resource.c (update_live_status, mark_referenced_resources,
12362         mark_set_resources, mark_target_live_regs): Likewise.
12363         * rtlanal.c:  Include regs.h
12364         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
12365         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
12366         subreg_regno_offset, subreg_offset_representable_p,
12367         hoist_test_store): Likewise.
12368         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
12369         * sched-rgn.c (check_live_1, update_live_1): Likewise.
12370         * stmt.c: Include regs.h
12371         (decl_conflicts_with_clobbers_p): Likewise.
12372         * varasm.c (make_decl_rtl): Likewise.
12373         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
12374
12375 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12376
12377         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
12378         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
12379         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
12380         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
12381         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
12382         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12383         config/iq2000/iq2000.h, config/m32r/m32r.c,
12384         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
12385         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
12386         config/mcore/mcore.c, config/mcore/mcore.h,
12387         config/mcore/mcore.md, config/mips/mips.c,
12388         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
12389         config/rs6000/rs6000.c, config/s390/s390.c,
12390         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
12391         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
12392         "gen_rtx (FOO, " with "gen_rtx_FOO (".
12393
12394 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12395
12396         * config/h8300/h8300.md (two peephole2's): New.
12397
12398 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
12399
12400         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
12401         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
12402         (ASM_CPU_SPEC): Likewise
12403         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
12404         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
12405
12406 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12407
12408         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
12409         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
12410         (expand_builtin): Always call expand_builtin_pow.
12411
12412 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12413
12414         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
12415         BUILT_IN_SIGNBITL): New GCC builtins.
12416         * builtins.c (expand_builtin_signbit): New function to RTL expand
12417         calls to signbit, signbitf and signbitl as inline intrinsics.
12418         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
12419         (fold_builtin_signbit): New function to perform constant folding
12420         of signbit, signbitf and signbitl.
12421         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
12422
12423         * doc/extend.texi: Document new signbit{,f,l} builtins.
12424
12425 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
12426
12427         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
12428
12429 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
12430
12431         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
12432         "mips_const_double_ok" and "simple_memory_operand", which were
12433         removed from the MIPS port with the mips-3_4-rewrite branch merge.
12434         * config/mips/mips.c (mips16_lay_out_constants): Update comment
12435         for removal of simple_memory_operand.
12436
12437 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12438
12439         * config/c4x/c4x.md: Use GEN_INT instead of
12440         gen_rtx (CONST_INT, ...).
12441
12442 2004-01-31  Richard Henderson  <rth@redhat.com>
12443
12444         * varasm.c (output_constant_pool): Don't zap the pool.
12445
12446 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12447
12448         * genrecog.c (decision_type): Add DT_const_int.
12449         (write_cond) [DT_const_int]: Print a comparison against small
12450         constant.
12451         (write_node): Simplify comparisons against small constants
12452         before printing tests.
12453
12454 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12455
12456         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
12457         instead of gen_rtx_CONST_INT.
12458
12459 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12460
12461         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
12462         instead of gen_rtx_CONST_INT.
12463
12464 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12465
12466         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
12467         hook_bool_CUMULATIVE_ARGS_false.
12468         * targhooks.c (default_strict_argument_naming): Rename to
12469         hook_bool_CUMULATIVE_ARGS_false.
12470         * targhooks.h: Update the prototype for
12471         default_strict_argument_naming.
12472
12473 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12474
12475         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12476         * config/sh/sh.h: Likewise.
12477         * config/sh/sh.md: Likewise.
12478
12479 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
12480
12481         * doc/invoke.texi (SPARC options): Restructure and update.
12482
12483 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12484
12485         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
12486         STRICT_ARGUMENT_NAMING): Poison.
12487         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
12488         hook_bool_tree_false.
12489         * targhooks.c (default_promote_function_args): Remove.
12490         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
12491         Don't check incoming.
12492         (default_strict_argument_naming): Don't use
12493         STRICT_ARGUMENT_NAMING.
12494         * targhooks.h: Remove the prototype for
12495         default_promote_function_args.
12496
12497 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12498
12499         * config/i386/i386-protos.h: Remove the prototype for
12500         ix86_setup_incoming_varargs.
12501         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
12502         (ix86_setup_incoming_varargs): Make it static.
12503         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
12504
12505 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12506
12507         * alloc-pool.c: Fix comment typos.
12508         * builtin-types.def: Likewise.
12509         * builtins.def: Likewise.
12510         * c-pretty-print.c: Likewise.
12511         * df.h: Likewise.
12512         * reload1.c: Likewise.
12513
12514 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12515
12516         * doc/invoke.texi: Follow spelling conventions.
12517         * doc/tm.texi: Likewise.
12518
12519 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12520
12521         * doc/install.texi: Fix typos.
12522         * doc/invoke.texi: Likewise.
12523
12524 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
12525
12526         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
12527         registers as pointers.
12528         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
12529
12530 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
12531
12532         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
12533         and restore it to gen_lowpart_general on exit.
12534         (gen_lowpart_for_combine): Adjust all callers to go through
12535         gen_lowpart.
12536         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
12537         and restore it to gen_lowpart_general on exit.
12538         (gen_lowpart_if_possible): Adjust all callers to go through
12539         gen_lowpart.
12540         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
12541         (gen_lowpart): Declare as pointer to function, initialized to
12542         gen_lowpart_general.
12543         * rtl.h (gen_lowpart): Declare as pointer to function.
12544
12545 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12546
12547         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12548         * calls.c: Likewise.
12549         * emit-rtl.c: Likewise.
12550         * function.c: Likewise.
12551         * reload1.c: Likewise.
12552         * config/i386/cygming.h: Likewise.
12553         * config/i386/i386.c: Likewise.
12554         * config/i386/winnt.c: Likewise.
12555
12556 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
12557
12558         PR bootstrap/9249
12559         * doc/install.texi: document --enable-__cxa_atexit option.
12560         * configure.ac: Disable __cxa_atexit if not supported.
12561         * configure: Regenerate.
12562
12563 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
12564
12565         * ggc-zone.c (ggc_free): New function.
12566
12567 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12568
12569         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
12570         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
12571         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
12572         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
12573         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
12574         config/alpha/alpha.c, config/alpha/alpha.h,
12575         config/alpha/alpha.md, config/alpha/unicosmk.h,
12576         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
12577         config/c4x/c4x-protos.h, config/c4x/c4x.md,
12578         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
12579         config/frv/frvend.c, config/i386/cygming.h,
12580         config/i386/djgpp.h, config/i386/emmintrin.h,
12581         config/i386/gthr-win32.c, config/i386/i386-interix.h,
12582         config/i386/i386-protos.h, config/i386/openbsd.h,
12583         config/i386/winnt.c, config/i386/xm-mingw32.h,
12584         config/i386/xmmintrin.h, config/ia64/ia64.md,
12585         config/iq2000/iq2000.md, config/m32r/m32r.md,
12586         config/m68k/m68k.md, config/mcore/mcore-elf.h,
12587         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
12588         config/mips/iris5gas.h, config/mips/iris6.h,
12589         config/mips/iris6gas.h, config/mips/linux.h,
12590         config/mips/mips.md, config/mips/netbsd.h,
12591         config/mips/openbsd.h, config/mips/windiss.h,
12592         config/pa/fptr.c, config/rs6000/aix.h,
12593         config/rs6000/altivec.h, config/rs6000/darwin.h,
12594         config/rs6000/xcoff.h, config/s390/s390-protos.h,
12595         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
12596         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
12597         config/sparc/sol2.h: Update copyright.
12598
12599 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
12600
12601         * Makefile.in (abs_docdir, abs_srcdir): Define.
12602         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
12603
12604 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12605
12606         * genconfig.c (main): Have CC0_P check its operand even on a
12607         target without cc0.
12608
12609 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12610
12611         * config/alpha/alpha.c: Remove mentions of deprecates macros
12612         in comments, remove some target-independent comments about target
12613         macros, and/or add minimal function comments for target hook
12614         implementations.
12615         * config/avr/avr.c: Likewise.
12616         * config/ia64/ia64.h: Likewise.
12617         * config/ip2k/ip2k.c: Likewise.
12618         * config/iq2000/iq2000.c: Likewise.
12619         * config/m32r/m32r.h: Likewise.
12620         * config/m68hc11/m68hc11.c: Likewise.
12621         * config/mcore/mcore.c: Likewise.
12622         * config/mmix/mmix.c: Likewise.
12623         * config/mn10300/mn10300.c: Likewise.
12624         * config/pa/pa.c: Likewise.
12625         * config/pdp11/pdp11.c: Likewise.
12626         * config/rs6000/rs6000.h: Likewise.
12627         * config/sh/sh.c: Likewise.
12628         * config/sh/sh.h: Likewise.
12629         * config/sparc/sparc.c: Likewise.
12630         * config/sparc/sparc.h: Likewise.
12631         * config/stormy16/stormy16.c: Likewise.
12632         * config/xtensa/xtensa.c: Likewise.
12633
12634 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
12635
12636         PR optimization/12147
12637         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
12638         RELOAD_FOR_OPADDR_ADDR.
12639         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
12640         might be reused as RELOAD_FOR_OPADDR_ADDR register.
12641
12642 2004-01-30  Jan Hubicka  <jh@suse.cz>
12643
12644         * reload.c (get_secondary_mem): Fix updating of
12645         secondary_memlocs_elim_used.
12646
12647 2004-01-30  Richard Henderson  <rth@redhat.com>
12648
12649         * varasm.c (struct rtx_const, struct pool_constant): Remove.
12650         (MAX_RTX_HASH_TABLE): Remove.
12651         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
12652         (first_pool, last_pool, pool_offset): Remove.
12653         (struct rtx_constant_pool): Split out from ...
12654         (struct varasm_status): ... here.  Reference one via pointer.
12655         (struct constant_descriptor_rtx): Merge struct pool_constant.
12656         (SYMHASH): Remove.
12657         (decode_rtx_const): Remove.
12658         (const_hash_rtx, compare_constant_rtx): Remove.
12659         (record_constant_rtx): Remove.
12660         (const_desc_rtx_hash, const_desc_rtx_eq): New.
12661         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
12662         (const_rtx_hash_1, const_rtx_hash): New.
12663         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
12664         (simplify_subtraction): Use simplify_rtx.
12665         (force_const_mem): Rewrite to use new data structures.
12666         (find_pool_constant): Likewise.
12667         (get_pool_constant, get_pool_constant_mark,
12668         get_pool_constant_for_function, get_pool_mode,
12669         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
12670         (output_constant_pool_2): Split out from output_constant_pool.
12671         (output_constant_pool_1): Likewise.  Use new pool datastructures.
12672         (output_constant_pool): Zap entire pool datastructure.
12673         (mark_constant): Use new pool datastructures.
12674         (mark_constants): Use for_each_rtx.
12675         (mark_constant_pool): Use new pool datastructures.
12676
12677 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
12678
12679         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
12680         Copy operands[1] to pseudo for simplify_gen_subreg.
12681
12682 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12683
12684         * gcse.c (bypass_block): Fix a typo in the previous check-in
12685         to the file.
12686
12687 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
12688
12689         * toplev.c: Include alloc-pool.h.
12690         * Makefile.in (toplev.c): Update dependencies.
12691
12692 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12693
12694         * combine.c (simplify_shift_const, case XOR): Be careful when
12695         commuting XOR with ASHIFTRT.
12696
12697 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12698             Eric Botcazou  <ebotcazou@libertysurf.fr>
12699
12700         * config/sparc/sparc-protos.h: Remove the prototype for
12701         sparc_builtin_saveregs.
12702         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12703         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12704         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12705         (TARGET_STRUCT_VALUE_RTX): Likewise.
12706         (TARGET_RETURN_IN_MEMORY): Likewise.
12707         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12708         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12709         (sparc_builtin_saveregs): Make it static.
12710         (sparc_promote_prototypes): New.
12711         (sparc_struct_value_rtx): Likewise.
12712         (sparc_return_in_memory): Likewise.
12713         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
12714         (PROMOTE_FUNCTION_RETURN): Likewise.
12715         (RETURN_IN_MEMORY): Likewise.
12716         (STRUCT_VALUE): Likewise.
12717         (STRUCT_VALUE_INCOMING): Likewise.
12718         (EXPAND_BUILTIN_SAVEREGS): Likewise.
12719         (STRICT_ARGUMENT_NAMING): Likewise.
12720         (PROMOTE_PROTOTYPES): Likewise.
12721
12722         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
12723
12724 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
12725
12726         PR c/12818
12727         * varasm.c (const_hash_1) <STRING_CST>: Use the
12728         address to compute the hash value if flag_writable_strings.
12729         (compare_constant) <STRING_CST>: Compare the addresses
12730         if flag_writable_strings.
12731         (build_constant_desc): Do not copy the expression for a
12732         STRING_CST if flag_writable_strings.
12733
12734 2004-01-30  Jan Hubicka  <jh@suse.cz>
12735
12736         * alloc-pool.c: Include hashtab.h
12737         (alloc_pool_descriptor): New structure
12738         (alloc_pool_hash): New global variable.
12739         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
12740         (create_alloc_pool): Update statistics.
12741         (free_alloc_pool): Likewise.
12742         (pool_alloc): Likewise.
12743         (output_info): New structure
12744         (print_statistics, dump_alloc_pool_statistics): New function.
12745         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
12746         (dump_alloc_pool_statistics): Declare.
12747         * toplev.c (finalize):  Dump statistics.
12748
12749         * reload.c (secondary_memlocs_elim_used): New static variable.
12750         (get_secondary_mem): Update it.
12751         (find_reloads): Use it.
12752
12753 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
12754
12755         * toplev.c: Fix broken checkin of 2003-12-30, again.
12756
12757 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
12758
12759         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
12760         s390*-*-* targets by specifying a 'nop' insn.
12761         * configure: Regenerate.
12762
12763 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
12764
12765         PR target/11475
12766         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
12767
12768 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
12769
12770         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
12771         of addr when creating MEM copy.
12772
12773 2004-01-29  Devang Patel  <dpatel@apple.com>
12774
12775         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
12776
12777 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
12778
12779         PR inline-asm/6162
12780         * reload.c (find_reloads): Only support one pair of commutative
12781         operands.
12782
12783 2004-01-29  Roger Sayle  <roger@eyesopen.com>
12784
12785         PR java/13824
12786         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
12787         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
12788         recursion.
12789
12790 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
12791
12792         * config/frv/frv.c: Don't mention deprecated macros in
12793         comments.  Remove some target-independent comments about
12794         target macros.
12795         * config/frv/frv.h: Likewise.
12796
12797 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12798
12799         * cfghooks.c (split_block): Set probability and count of the
12800         new edge.
12801
12802 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
12803
12804         * dwarf2out.c (struct die_struct): Added field decl_id.
12805         (decl_die_table): Changed to hash table.
12806         (decl_die_table_allocated): Deleted.
12807         (decl_die_table_in_use): Deleted.
12808         (DECL_DIE_TABLE_INCREMENT): Deleted.
12809         (decl_die_table_hash): New function.
12810         (decl_die_table_eq): New function.
12811         (lookup_decl_die): Lookup in a hash table.
12812         (equate_decl_number_to_die): Insert into a hash table.
12813         (dwarf2out_init): Init hash table decl_die_table.
12814
12815 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
12816
12817         PR optimization/13424
12818         * expr.c (store_constructor): Revert 2003-12-03 change.
12819
12820         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
12821         expected before returning early.  Avoid sharing RTL if they
12822         need to be changed.
12823
12824         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
12825         handling so that memory attributes are preserved.  Don't call
12826         ix86_set_move_mem_attrs.
12827         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
12828         (ix86_expand_clrstr): Rename src argument to
12829         dst.  Rework rep_stos and strset handling so that memory attributes
12830         are preserved.
12831         (ix86_expand_strlen): Pass src argument to
12832         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
12833         memory attributes are preserved.
12834         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
12835         change_address instead of gen_rtx_MEM.
12836         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
12837         expanders.
12838         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
12839         strmovqi, strmovqi_rex64): Remove.
12840         (rep_mov*, strmov*): Prefix insn names with *.
12841         (strset, strset_singleop, rep_stos): New expanders.
12842         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
12843         strsetqi, strsetqi_rex64): Remove.
12844         (rep_stos*, strset*): Prefix insn names with *.
12845         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
12846         to SImode.
12847         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
12848         are preserved.
12849         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
12850         Prefix insn names with *.
12851         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
12852         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
12853         (strlenqi_1): New expander.
12854         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
12855
12856 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12857
12858         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
12859         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
12860         verify_flow_info): Declaration removed.
12861         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
12862         (debug_bb, debug_bb_n): Add argument to dump_bb call.
12863         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
12864         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
12865         instead of delete_block.
12866         * cfghooks.c: Include timevar.h and toplev.h.
12867         (cfg_hooks): Define here.
12868         (verify_flow_info, dump_bb): Moved from cfg.c.
12869         (redirect_edge_and_branch, redirect_edge_and_branch_force,
12870         split_block, split_block_after_labels, move_block_after,
12871         delete_basic_block, split_edge, create_basic_block,
12872         create_empty_bb, can_merge_blocks_p, merge_blocks,
12873         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
12874         New functions.
12875         * cfghooks.h (struct cfg_hooks): Added fields name,
12876         make_forwarder_block, tidy_fallthru_edge and
12877         move_block_after. Changed type of verify_flow_info, dump_bb,
12878         split_block fields. Renamed cfgh_split_edge and delete_block
12879         fields.
12880         (redirect_edge_and_branch, redirect_edge_and_branch_force,
12881         split_block, delete_block, split_edge, create_basic_block,
12882         can_merge_blocks_p, merge_blocks): Macros removed.
12883         (cfg_hooks): Do not export.
12884         (verify_flow_info, dump_bb, redirect_edge_and_branch,
12885         redirect_edge_and_branch_force, split_block, split_block_after_labels,
12886         move_block_after, delete_basic_block, split_edge, create_basic_block,
12887         create_empty_bb, can_merge_blocks_p, merge_blocks,
12888         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
12889         Declare.
12890         (cfg_layout_rtl_cfg_hooks): Declare.
12891         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
12892         New functions.
12893         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
12894         (redirect_edge_with_latch_update): Removed.
12895         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
12896         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
12897         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
12898         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
12899         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
12900         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
12901         cfghooks.c.
12902         (rtl_create_basic_block): Coding style fix.
12903         (rtl_tidy_fallthru_edge, rtl_move_block_after,
12904         rtl_make_forwarder_block): New functions.
12905         (update_cfg_after_block_merging): Removed.
12906         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
12907         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
12908         to dump_bb.
12909         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
12910         find_if_case_2): Don't update dominators.
12911         * timevar.def (TV_CFG_VERIFY): New.
12912         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
12913         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
12914         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
12915         (remove_bbs): Don't call remove_bbs.
12916         (create_preheader): Use make_forwarder_block.
12917         (mfb_keep_just, mfb_update_loops): New static functions.
12918
12919 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
12920
12921         * config/avr/avr.h: Remove target-independent comments about
12922         target macros.
12923
12924 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
12925
12926         * timevar.c (timevar_print): Mention when checking is enabled.
12927
12928 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
12929
12930         * c-lex.c (c_lex): Rename to...
12931         (c_lex_with_flags): Add new parameter to get CPP flags.
12932         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
12933         * c-pragma.h (c_lex_with_flags): Declare.
12934
12935 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12936
12937         * config/mcore/mcore.c (mcore_external_libcall): Add a
12938         comment.
12939         (mcore_return_in_memory): Likewise.
12940
12941 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12942
12943         * config/mcore/mcore-protos.h: Remove the prototype for
12944         mcore_setup_incoming_varargs.
12945         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12946         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
12947         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12948         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12949         (TARGET_STRUCT_VALUE_RTX): Likewise.
12950         (TARGET_RETURN_IN_MEMORY): Likewise.
12951         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12952         (mcore_setup_incoming_varargs): Make it static.  Receive the
12953         first argument by reference.  Add argument second_time.
12954         (mcore_external_libcall): New.
12955         (mcore_return_in_memory): Likewise.
12956         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
12957         (PROMOTE_FUNCTION_RETURN): Likewise.
12958         (STRUCT_VALUE): Likewise.
12959         (RETURN_IN_MEMORY): Likewise.
12960         (SETUP_INCOMING_VARARGS): Likewise.
12961         (PROMOTE_PROTOTYPES): Likewise.
12962         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
12963
12964 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12965
12966         * config/m32r/m32r-protos.h: Remove the prototype for
12967         m32r_setup_incoming_varargs.
12968         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
12969         (TARGET_STRUCT_VALUE_RTX): Likewise.
12970         (TARGET_RETURN_IN_MEMORY): Likewise.
12971         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12972         (m32r_return_in_memory): New.
12973         (m32r_setup_incoming_varargs): Make it static.
12974         * config/m32r/m32r.h: Remove #undef of
12975         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
12976         definitions of PROMOTE_FUNCTION_ARGS and
12977         PROMOTE_FUNCTION_RETURN.
12978         (PROMOTE_PROTOTYPES): Remove.
12979         (RETURN_IN_MEMORY): Likewise.
12980         (STRUCT_VALUE): Likewise.
12981
12982 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12983
12984         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
12985         (TARGET_STRUCT_VALUE_RTX): Likewise.
12986         (m68k_struct_value_rtx): Likewise.
12987         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
12988         STRUCT_VALUE_REGNUM.
12989         (PROMOTE_PROTOTYPES): Remove.
12990         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
12991         STRUCT_VALUE_REGNUM.
12992         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
12993         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
12994
12995 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12996
12997         * config/stormy16/stormy16.c
12998         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
12999         TARGET_BUILD_BUILTIN_VA_LIST.
13000
13001 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13002
13003         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
13004         (TARGET_STRUCT_VALUE_RTX): Likewise.
13005         (TARGET_RETURN_IN_MEMORY): Likewise.
13006         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13007         (v850_return_in_memory): Likewise.
13008         (v850_setup_incoming_varargs): Likewise.
13009         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
13010         (SETUP_INCOMING_VARARGS): Likewise.
13011         (RETURN_IN_MEMORY): Likewise.
13012         (STRUCT_VALUE): Likewise.
13013
13014 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13015
13016         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
13017         (fr30_setup_incoming_varargs): Don't use
13018         STRICT_ARGUMENT_NAMING.
13019         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
13020         (STRICT_ARGUMENT_NAMING): Likewise.
13021
13022 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13023
13024         * config/frv/frv-protos.h: Remove the prototype for
13025         frv_expand_builtin_saveregs.
13026         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
13027         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13028         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
13029         STRUCT_VALUE_REGNUM.
13030         (frv_expand_builtin_saveregs): Make it static.
13031         (frv_struct_value_rtx): New.
13032         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
13033
13034 2004-01-29  Jan Hubicka  <jh@suse.cz>
13035
13036         PR c++/12850
13037         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
13038         initial pointers.
13039         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
13040         for functions that will be only inlined.
13041         (cgraph_mark_function_to_output): Likewise.
13042         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
13043         do not clear function body.
13044         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
13045         (tree_rest_of_compilation): Reorganize the logic releasing function
13046         body to use callgraph datastructure.
13047
13048 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13049
13050         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
13051         to register_operand.
13052
13053 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13054
13055         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
13056         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
13057         match_operand expressions so that all match_dups appear
13058         lexically after their corresponding match_operands.
13059
13060 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13061
13062         * config/h8300/h8300.c (WORD_REG_USED): Use
13063         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
13064         (compute_saved_regs): Likewise.
13065         (h8300_expand_prologue): Likewise.  Allocate locals after
13066         saving registers.
13067         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
13068         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
13069         registers.
13070         (h8300_initial_elimination_offset): Adjust for the new frame
13071         layout, which swaps flips the order of locals and saved
13072         registers.
13073         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
13074         (HARD_FRAME_POINTER_REGNUM): New.
13075         (ELIMINABLE_REGS): Add an elimination rule from
13076         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
13077         (REGISTER_NAMES): Add fp.
13078         * config/h8300/h8300.md (FP_REG): Change to 11.
13079         (HFP_REG): New.
13080
13081 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13082
13083         * genrecog.c (write_node): Remove a useless local variable.
13084
13085 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13086
13087         * Makefile.in (options.c options.h): Use stamp file s-options to
13088         avoid unnecessary rebuilds.
13089         (options.o): New target listing dependencies.
13090         (gtyp-gen.h): Use stamp file s-gtyp-gen.
13091         (STAGESTUFF): Add s-gtyp-gen.
13092
13093 2004-01-28  Richard Henderson  <rth@redhat.com>
13094
13095         * ggc.h (ggc_free): Declare.
13096         * ggc-common.c (ggc_realloc): Use it.
13097         * ggc-page.c: Remove lots of inline markers.
13098         (globals): Add free_object_list.
13099         (ggc_alloc): Tidy.
13100         (ggc_free, validate_free_objects): New.
13101         (poison_pages): Provide default.
13102         (ggc_collect): Call validate_free_objects; emit markers to
13103         the debug file.
13104
13105 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13106             Jim Wilson  <wilson@specifixinc.com>
13107
13108         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
13109         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
13110         scratch pointer.
13111         (ia64_secondary_reload_class): Delete case GR_REGS.
13112         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
13113         Do not allocate a scratch register.
13114         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
13115
13116 2004-01-28  Jan Hubicka  <jh@suse.cz>
13117
13118         * gcse.c (bypass_block): Prevent edges to be unified when we are
13119         about to emit compenstation code.
13120
13121 2004-01-28  Nick Clifton  <nickc@redhat.com>
13122
13123         * config/arm/arm.c (arm_expand_builtin): Force second argument of
13124         the setcwx insn into a register.
13125
13126 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
13127
13128         * config/fp-bit.c (pack_d): When using paired doubles to implement
13129         a long double, round the high part separately.
13130         (unpack_d): Fix the case in which the high part is a power of two
13131         and the low part is a nonzero value of the opposite sign.
13132
13133 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13134
13135         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13136         (TARGET_STRUCT_VALUE_RTX): Likewise.
13137         (c4x_external_libcall): Likewise.
13138         (c4x_struct_value_rtx): Likewise.
13139         * config/c4x/c4x.h: Remove.
13140         (STRUCT_VALUE_REGNUM): Likewise.
13141         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13142
13143 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13144
13145         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
13146         (TARGET_STRUCT_VALUE_RTX): Likewise.
13147         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
13148         (STRUCT_VALUE): Likewise.
13149         (PROMOTE_PROTOTYPES): Likewise.
13150
13151 2004-01-27  Roger Sayle  <roger@eyesopen.com>
13152
13153         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
13154         CONST_INT before using INTVAL.
13155
13156 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
13157
13158         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
13159         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
13160         frame if !TARGET_BACKCHAIN.
13161         * config/s390/s390.md ("allocate_stack"): Use pattern only if
13162         TARGET_BACKCHAIN.
13163         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
13164
13165 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13166
13167         * ia64.c (ia64_function_arg): When placing HFAs in integer
13168         registers, do not special case the mode used for complex
13169         types.  Do not advance int_regs until the current register
13170         is full.
13171
13172 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
13173
13174         PR target/7297
13175         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
13176
13177 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13178
13179         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
13180         slow, unaligned loads and stores while debugging.  Fix formatting.
13181
13182 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13183
13184         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
13185         of computing wmode.
13186         (restore_stack_nonlocal): Same.
13187
13188 2004-01-27  Devang Patel <dpatel@apple.com>
13189
13190         * Makefile.in (dwarf2out.o): Depend on input.h
13191         * dbxout.c (dbx_debug_hooks): Add new empty hook for
13192         imported_module_or_decl.
13193         (xcoff_debug_hooks): Same.
13194         * sdbout.c (sdb_debug_hooks): Same.
13195         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
13196         * debug.c (do_nothing_debug_hooks): Same.
13197         (debug_nothing_tree_tree): New function.
13198         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
13199         * dwarf2out.c: Include input.h.
13200         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
13201         (remove_child_TAG): New function.
13202         (dwarf_tag_name): Handle DW_TAG_imported_module.
13203         (gen_subprogram_die): Equate decl number to declaration die. Do not
13204         remove all children dies while reusing declaration die for definition.
13205         Instead, selectively remove only formal parameters.
13206         (gen_variable_die): Equate variable decl to declaration die.
13207         (gen_field_die): Equate field decl to line number.
13208         (force_namespace_die): Replace it with ...
13209         (force_decl_die): ... this.
13210         (force_type_die): New function.
13211         (setup_namespace_context): Replace use of force_namespace_die() with
13212         force_decl_die().
13213         (gen_namespace_die): Same.
13214         (dwarf2out_imported_module_or_decl): New function.
13215
13216 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
13217
13218         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
13219         on CQImode and CHImode incoming arguments in register a7.
13220         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
13221         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
13222         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
13223         xtensa_copy_incoming_a7 before reload.
13224
13225 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13226
13227         * coverage.c (get_coverage_counts): Give a different message
13228         if flag_guess_branch_prob is set.
13229         * predict.c (counts_to_freqs): Return an int.
13230         (estimate_bb_frequencies): If counts_to_freqs returns zero,
13231         calculate estimates.
13232
13233 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
13234
13235         * config/iq2000/iq2000-protos.h: Remove the prototype for
13236         iq2000_setup_incoming_varargs.
13237         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13238         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13239         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13240         (TARGET_STRUCT_VALUE_RTX): Likewise.
13241         (TARGET_RETURN_IN_MEMORY): Likewise.
13242         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13243         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13244         (iq2000_return_in_memory): Likewise.
13245         (iq2000_setup_incoming_varargs): Make it static.  Receive the
13246         first argument by reference.
13247         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
13248         (PROMOTE_FUNCTION_RETURN): Likewise.
13249         (PROMOTE_PROTOTYPES): Likewise.
13250         (RETURN_IN_MEMORY): Likewise.
13251         (STRUCT_VALUE): Likewise.
13252         (SETUP_INCOMING_VARARGS): Likewise.
13253         (STRICT_ARGUMENT_NAMING): Likewise.
13254
13255 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
13256
13257         * fixinc/fixinc.c (test_test): Initialize res.
13258         (start_flexer): Initialize pz_cmd_save.
13259
13260 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13261
13262         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
13263         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
13264
13265 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13266
13267         PR 7198
13268         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
13269         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
13270         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
13271         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
13272         Possibly rename pattern for consistency.
13273         Remove ??? comments suggesting that this be done.
13274         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
13275         New patterns.
13276         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
13277         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
13278         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
13279         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
13280         Update to match.
13281
13282 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
13283
13284         * config/arm/arm.c (output_return_instruction): Only restore IP
13285         into SP if frame_pointer_needed.
13286
13287 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13288
13289         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13290         for SCmode and DCmode if ARCH32.
13291         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
13292         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
13293         if ARCH32.
13294         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
13295         if ARCH32.
13296         (BASE_OUTGOING_VALUE_REG): Likewise.
13297
13298 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13299
13300         PR target/10904
13301         PR target/13058
13302         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
13303         Forbid mode changes from SImode for lower FP regs if ARCH64.
13304
13305 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13306
13307         * Makefile.in (bt-load.o): Depend on except.h.
13308         * bt-load.c (except.h): #include.
13309         (compute_defs_uses_and_gen): If insn at end of BB can throw
13310         within this function, consider registers used by it unavailable for
13311         btr migration.
13312         (move_btr_def): If insn at end of BB can throw, insert before rather
13313         than after.
13314
13315         * flags.h (flag_btr_bb_exclusive): Declare.
13316         * toplev.c (flag_btr_bb_exclusive): New variable.
13317         (f_options): Add btr-bb-exclusive.
13318         * bt-load.c (augment_live_range): Restore old behaviour if
13319         flag_btr_bb_exclusive is set.
13320         * common.opt: Add entry for -fbtr-bb-exclusive.
13321         * opts.c (common_handle_options): Same.
13322         * doc/invoke.texi: Document -fbtr-bb-exclusive.
13323
13324         * bt-load.c (btrs_live_at_end): New variable.
13325         (compute_defs_uses_and_gen): Compute its pointed-to array.
13326         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
13327         (augment_live_range): When augmenting with a new dominator,
13328         use only its btrs_live_at_end set, but also add in the full set
13329         of the old dominator.
13330         (btr_def_live_range): Use btrs_live_at_end.
13331         (move_btr_def): Set other_btr_uses_before_def, and move new set
13332         to the end of the basic block, if appropriate.
13333         (migrate_btr_defs): Allocate and free btrs_live_at_end.
13334
13335         * bt-load.c (basic_block_freq): Remove outdated comment.
13336
13337 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
13338
13339         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
13340         (PREDICATE_CODES): Remove duplicate.
13341         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
13342         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
13343         (MASK_PROFILE_KERNEL): Adjust define.
13344
13345 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
13346
13347         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
13348         of long string literals from 32 bytes to sizeof (void *) when !-Os
13349         and to 1 with -Os.
13350
13351 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13352
13353         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
13354         constant addresses in the normal mode.
13355
13356 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13357
13358         * system.h (CHAR_BITFIELD): Delete.
13359         (BOOL_BITFIELD): New.
13360         * c-decl.c (c_scope): Use BOOL_BITFIELD.
13361         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
13362
13363 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13364
13365         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13366         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13367         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13368         (TARGET_STRUCT_VALUE_RTX): Likewise.
13369         (TARGET_RETURN_IN_MEMORY): Likewise.
13370         (arc_return_in_memory): Likewise.
13371         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
13372         (PROMOTE_FUNCTION_RETURN): Likewise.
13373         (RETURN_IN_MEMORY): Likewise.
13374         (STRUCT_VALUE): Likewise.
13375
13376 2004-01-26  Richard Henderson  <rth@redhat.com>
13377
13378         * c-parse.in (extension): Use itype.
13379         (SAVE_EXT_FLAGS): Don't allocate a tree.
13380         (RESTORE_EXT_FLAGS): Don't read a tree.
13381
13382 2004-01-26  Jan Hubicka  <jh@suse.cz>
13383
13384         * cselib.c (discard_useless_values):  Clear out value pointer pointing
13385         to datastructure to be recycled.
13386
13387 2004-01-25  Jan Hubicka  <jh@suse.cz>
13388
13389         * genextract.c (main): Do not output the memset when not checking.
13390
13391 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13392
13393         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
13394         switch statement instead of a chain of if statements.
13395
13396 2004-01-26  Jeff Law  <law@redhat.com>
13397
13398         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
13399         acute accents for Petur Runolfsson's entry.
13400
13401 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13402
13403         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
13404         (TARGET_RETURN_IN_MEMORY): Likewise.
13405         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
13406         (RETURN_IN_MEMORY): Likewise.
13407
13408 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13409
13410          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
13411          unaligned load/store into smaller loads and stores.
13412
13413 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13414
13415         * function.c (assign_parms): Do not assign
13416         long long argument to memory in prologue if
13417         is it loaded into register.
13418
13419 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13420
13421          PR middle-end/13779
13422          * expr.c (emit_group_load): split constant
13423          correctly into register components of PARALLEL insn.
13424
13425 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13426
13427         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
13428         Use adjust_address_nv directly with appropriate mode.
13429         (restore_stack_nonlocal): Ditto.
13430
13431 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13432
13433         * config/xtensa/xtensa-protos.h: Remove the prototype for
13434         xtensa_builtin_saveregs.
13435         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13436         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13437         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13438         (TARGET_STRUCT_VALUE_RTX): Likewise.
13439         (TARGET_RETURN_IN_MEMORY): Likewise.
13440         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13441         (xtensa_builtin_saveregs): Make it static.
13442         (xtensa_return_in_memory): New.
13443         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
13444         (PROMOTE_FUNCTION_RETURN): Likewise.
13445         (PROMOTE_PROTOTYPES): Likewise.
13446         (STRUCT_VALUE): Likewise.
13447         (RETURN_IN_MEMORY): Likewise.
13448         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13449
13450 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13451
13452         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
13453         (arm_setup_incoming_varargs): Likewise.
13454         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
13455
13456 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13457
13458         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
13459         (cris_setup_incoming_varargs): Likewise.
13460         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
13461
13462 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13463
13464         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
13465         (ns32k_struct_value_rtx): Likewise.
13466         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
13467         NS32K_STRUCT_VALUE_REGNUM.
13468
13469 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13470
13471         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13472         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13473         (TARGET_STRUCT_VALUE_RTX): Likewise.
13474         (arm_struct_value_rtx): Likewise.
13475         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
13476         (STRUCT_VALUE): Likewise.
13477         (STRUCT_VALUE_REGNUM): Likewise.
13478         (PROMOTE_PROTOTYPES): Likewise.
13479
13480 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13481
13482         * config/ia64/ia64-protos.h: Remove the prototype for
13483         ia64_setup_incoming_varargs and ia64_return_in_memory.
13484         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
13485         (TARGET_RETURN_IN_MEMORY): Likewise.
13486         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13487         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13488         (ia64_setup_incoming_varargs): Adjust the arguments to meet
13489         the requirement of TARGET_SETUP_INCOMING_VARARGS.
13490         (ia64_return_in_memory): Make it static.  Change the return
13491         type to bool from int.  Add an argument.
13492         (ia64_struct_value_rtx): New.
13493         * config/ia64/ia64.h: Remove commented-out definitions of
13494         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
13495         PROMOTE_PROTOTYPES.
13496         (RETURN_IN_MEMORY): Remove.
13497         (STRUCT_VALUE_REGNUM): Likewise.
13498         (STRICT_ARGUMENT_NAMING): Likewise.
13499
13500 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
13501
13502         PR target/13666
13503         * config/sparc/sparc.c (function_arg_union_value): New function.
13504         (function_arg): Use it to deal with unions.
13505         (function_value): Likewise.  Define 'regbase' only for ARCH64.
13506         Replace a conditional statement by a simpler one.
13507
13508 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
13509
13510         * config/mips/mips.c (mips16_optimize_gp): Delete.
13511         (mips_reorg): Don't call it.
13512
13513 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13514
13515         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
13516         (floatunsqihf2): Remove operand 6.
13517         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
13518         fix patterns.
13519         (ldi_conditional, ldf_conditional): Validate operands.
13520
13521 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13522
13523         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
13524         (HAVE_GAS_HIDDEN): Undefine as interim measure.
13525
13526 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13527
13528         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
13529         memory references if TARGET_EXPOSE_LDP nonzero.
13530
13531 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13532
13533         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
13534
13535 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13536
13537         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
13538         invalid operand combinations.
13539
13540 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13541
13542         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
13543         c4x_legitimate_address_p.  Fix post_modify check.
13544
13545         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
13546         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
13547
13548 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13549
13550         * config/pa/pa-protos.h: Remove the prototype for
13551         hppa_builtin_saveregs.  Add a prototype for
13552         pa_return_in_memory.
13553         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
13554         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13555         (TARGET_STRUCT_VALUE_RTX): Likewise.
13556         (TARGET_RETURN_IN_MEMORY): Likewise.
13557         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13558         (pa_struct_value_rtx): Likewise.
13559         (pa_return_in_memory): Likewise.
13560         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
13561         PA_STRUCT_VALUE_REGNUM.
13562         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
13563         (EXPAND_BUILTIN_SAVEREGS): Remove.
13564         (PROMOTE_PROTOTYPES): Likewise.
13565         (PROMOTE_FUNCTION_RETURN): Likewise.
13566
13567 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13568
13569         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
13570         (TARGET_STRUCT_VALUE_RTX): Likewise.
13571         (vax_struct_value_rtx): Likewise.
13572         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
13573         VAX_STRUCT_VALUE_REGNUM.
13574         (PROMOTE_PROTOTYPES): Remove.
13575
13576 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13577
13578         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
13579
13580 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
13581
13582         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
13583         and MIPS64 have HI/LO interlocks.  Update comment.
13584
13585 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13586
13587         * config/stormy16/stormy16-protos.h: Remove the prototype for
13588         xstormy16_setup_incoming_varargs.
13589         * config/stormy16/stormy16.c
13590         (xstormy16_setup_incoming_varargs): Remove.
13591         (xstormy16_return_in_memory): New.
13592         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13593         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13594         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13595         (TARGET_STRUCT_VALUE_RTX): Likewise.
13596         (TARGET_RETURN_IN_MEMORY): Likewise.
13597         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
13598         (PROMOTE_FUNCTION_RETURN): Likewise
13599         (PROMOTE_PROTOTYPES): Likewise
13600         (RETURN_IN_MEMORY): Likewise
13601         (STRUCT_VALUE): Likewise
13602         (SETUP_INCOMING_VARARGS): Likewise
13603
13604 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
13605
13606         * config/mips/mips.c (mips_offset_within_object_p): New function.
13607         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
13608         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
13609         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
13610
13611 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13612
13613         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
13614         (PROMOTE_FUNCTION_RETURN): Likewise.
13615
13616 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13617
13618         * config/mn10300/mn10300-protos.h: Remove the prototype for
13619         mn10300_builtin_saveregs.
13620         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
13621         (TARGET_STRUCT_VALUE_RTX): Likewise.
13622         (TARGET_RETURN_IN_MEMORY): Likewise.
13623         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13624         (mn10300_return_in_memory): Likewise.
13625         (mn10300_builtin_saveregs): Make it static.
13626         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
13627         (RETURN_IN_MEMORY): Likewise.
13628         (STRUCT_VALUE): Likewise.
13629         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13630
13631 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
13632
13633         PR bootstrap/13853
13634         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
13635
13636 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13637
13638         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
13639         using ccr.
13640
13641 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13642
13643         * config/i860/i860-protos.h: Remove the prototype for
13644         i860_saveregs.
13645         * config/i860/i860.c (i860_saveregs): Make it static.
13646         (i860_struct_value_rtx): New.
13647         (TARGET_STRUCT_VALUE_RTX): Likewise.
13648         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13649         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
13650         I860_STRUCT_VALUE_REGNUM.
13651         (EXPAND_BUILTIN_SAVEREGS): Remove.
13652
13653 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13654
13655         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
13656         (TARGET_RETURN_IN_MEMORY): Likewise.
13657         (m68hc11_struct_value_rtx): Likewise.
13658         (m68hc11_return_in_memory): Likewise.
13659         * config/m68hc11/m68hc11.h: Remove a commented-out definition
13660         of PROMOTE_PROTOTYPES.
13661         (RETURN_IN_MEMORY): Remove.
13662         (STRUCT_VALUE_REGNUM): Likewise.
13663
13664 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13665
13666         * config/mmix/mmix-protos.h: Remove the prototype for
13667         mmix_setup_incoming_varargs.
13668         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13669         (TARGET_STRUCT_VALUE_RTX): Likewise.
13670         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13671         (mmix_setup_incoming_varargs): Make it static.
13672         (mmix_struct_value_rtx): New.
13673         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
13674         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
13675         (STRUCT_VALUE_REGNUM): Remove.
13676         (SETUP_INCOMING_VARARGS): Likewise.
13677
13678 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13679
13680         * config/mips/mips-protos.h: Remove the prototypes for
13681         mips_setup_incoming_varargs and mips_return_in_memory.
13682         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13683         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13684         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13685         (TARGET_STRUCT_VALUE_RTX): Likewise.
13686         (TARGET_RETURN_IN_MEMORY): Likewise.
13687         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13688         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13689         (mips_setup_incoming_varargs): Match the prototype for
13690         TARGET_SETUP_INCOMING_VARARGS.
13691         (mips_return_in_memory): Make it static.  Add argument fntype.
13692         (mips_strict_argument_naming): New.
13693         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
13694         (PROMOTE_FUNCTION_ARGS): Likewise.
13695         (PROMOTE_FUNCTION_RETURN): Likewise.
13696         (STRUCT_VALUE): Likewise.
13697         (RETURN_IN_MEMORY): Likewise.
13698         (SETUP_INCOMING_VARARGS): Likewise.
13699         (STRICT_ARGUMENT_NAMING): Likewise.
13700
13701 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13702
13703         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
13704         (TARGET_RETURN_IN_MEMORY): Likewise.
13705         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13706         (ip2k_return_in_memory): Likewise.
13707         (ip2k_setup_incoming_varargs): Likewise.
13708         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
13709         (STRUCT_VALUE): Likewise.
13710         (STRUCT_VALUE_INCOMING): Likewise.
13711         (SETUP_INCOMING_VARARGS): Likewise.
13712
13713 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13714
13715         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
13716         (TARGET_RETURN_IN_MEMORY): Likewise.
13717         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13718         (avr_return_in_memory): Remove.
13719         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
13720         (STRUCT_VALUE): Likewise.
13721         (STRUCT_VALUE_INCOMING): Likewise.
13722         (STRICT_ARGUMENT_NAMING): Likewise.
13723
13724 2004-01-25  Jan Hubicka  <jh@suse.cz>
13725
13726         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
13727
13728 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
13729
13730         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
13731         (mips_regno_mode_ok_for_base_p): Declare.
13732         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
13733         (FRAME_POINTER_REGNUM): Renumber to 78.
13734         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
13735         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
13736         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
13737         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
13738         (REG_MODE_OK_FOR_BASE_P): Likewise.
13739         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
13740         entry for 77 to "$arg" and entry for 78 to "$frame".
13741         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
13742         (mips_reg_mode_ok_for_base_p): Remove.
13743         (mips_regno_mode_ok_for_base_p): New function, derived from old
13744         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
13745         restrictions unless we're being strict.
13746         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
13747
13748 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13749
13750         * c-common.h: Fix comment typos.
13751         * c-decl.c: Likewise.
13752         * cgraphunit.c: Likewise.
13753         * combine.c: Likewise.
13754         * et-forest.c: Likewise.
13755         * flow.c: Likewise.
13756         * function.c: Likewise.
13757         * ifcvt.c: Likewise.
13758         * integrate.c: Likewise.
13759         * jump.c: Likewise.
13760         * postreload.c: Likewise.
13761         * varray.c: Likewise.
13762
13763 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13764
13765         * doc/frontends.texi: Update copyright.
13766         * doc/gcov.texi: Likewise.
13767         * doc/gty.texi: Likewise.
13768         * doc/sourcebuild.texi: Likewise.
13769         * doc/standards.texi: Likewise.
13770
13771 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
13772
13773         PR target/12978
13774         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
13775         Remove movstrqi_small because it conflicts with movstrqi_large.
13776
13777 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13778
13779         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13780         (TARGET_STRUCT_VALUE_RTX): Likewise.
13781         (cris_struct_value_rtx): Likewise.
13782         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
13783         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
13784         STRUCT_VALUE_REGNUM.
13785         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
13786
13787 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
13788
13789         PR bootstrap/13848
13790         * cse.c (cse_cc_succs): Change the mode of the source expression
13791         as soon as decide we need a new mode.  Don't permit changing modes
13792         if we found a match in a successor block.
13793         (cse_condition_code_reg): Save original mode of source expression
13794         so that we know whether we have to change the mode in other
13795         insns.
13796
13797 2004-01-24  Jan Hubicka  <jh@suse.cz>
13798
13799         * emit-rtl.c (change_address, adjust_address_1, offset_address,
13800         widen_memory_access):  Return early when there is nothing to change.
13801
13802 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
13803
13804         * simplify-rtx.c (simplify_relational_operation): Don't
13805         simplify address == constant into address + -constant == 0.
13806
13807 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13808
13809         * gcc.c (process_command): Don't internationalize the
13810         Copyright message.
13811         * mips-tfile.c (main): Likewise.
13812
13813 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
13814
13815         * cse.c: (cse_cc_succs) Fix comparison warning.
13816
13817 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13818
13819         * config/h8300/h8300.md: Remove extraneous USE in expanders.
13820
13821 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13822
13823         * config/h8300/h8300-protos.h: Provide prototypes for
13824         h8300_legitimate_constant_p and h8300_legitimate_address_p.
13825         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
13826         (h8300_rtx_ok_for_base_p): Likewise.
13827         (h8300_legitimate_address_p): Likewise.
13828         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
13829         h8300_legitimate_constant_p.
13830         (RTX_OK_FOR_BASE_P): Remove.
13831         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
13832
13833 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13834
13835         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
13836         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
13837         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
13838         (REG_OK_FOR_BASE_STRICT_P): Likewise.
13839         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
13840         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
13841         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
13842         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
13843
13844 2004-01-24  Jan Hubicka  <jh@suse.cz>
13845
13846         * cselib.c (remove_useless_values):  Do not access discarded values.
13847
13848 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
13849
13850         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
13851         arrays.
13852
13853 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
13854
13855         * recog.c: Fix a typo in copyright.
13856
13857 2004-01-23  Andrew Pinski  <apinski@apple.com>
13858
13859         * config/rs6000/rs6000.md (call): Fix misappiled patch.
13860         (call_value): Likewise.
13861
13862 2004-01-23  Richard Henderson  <rth@redhat.com>
13863
13864         PR opt/12941
13865         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
13866         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
13867         if SHIFT_COUNT_TRUNCATED is set.
13868
13869 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
13870
13871         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
13872         separate real and imaginary parts.
13873         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
13874
13875 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
13876
13877         PR target/13674
13878         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
13879         loading into GPR.
13880
13881 2004-01-23  Jan Hubicka  <jh@suse.cz>
13882
13883         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
13884         change.
13885
13886         * alloc-pool.c (align_four): Kill.
13887         (create_alloc_pool): Align size to eight.
13888         (free_alloc_pool, free_pool): Invalidate deallocated data.
13889
13890 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
13891
13892         PR gcc/1532
13893         * cse.c (cse_change_cc_mode): New static function.
13894         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
13895         (cse_condition_code_reg): New function.
13896         * rtl.h (cse_condition_code_reg): Declare.
13897         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
13898         * target.h (struct gcc_target): Add fixed_condition_code_regs and
13899         cc_modes_compatible.
13900         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
13901         (TARGET_CC_MODES_COMPATIBLE): Define.
13902         (TARGET_INITIALIZER): Add new initializers.
13903         * targhooks.c (default_cc_modes_compatible): New function.
13904         * targhooks.c (default_cc_modes_compatible): Declare.
13905         * hooks.c (hook_bool_intp_intp_false): New function.
13906         * hooks.h (hook_bool_intp_intp_false): Declare.
13907         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
13908         (TARGET_CC_MODES_COMPATIBLE): Define.
13909         (ix86_fixed_condition_code_regs): New static function.
13910         (ix86_cc_modes_compatible): Likewise.
13911         * doc/tm.texi (Condition Code): Document new hooks.
13912
13913 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13914
13915         * fixinc/inclhack.def (bad_lval): Renamed to ...
13916         (alpha_bad_lval): ... this.
13917         Removed file list.
13918         Restrict to alpha*-dec-osf*.
13919         * fixinc/fixincl.x: Regenerate.
13920         * fixinc/tests/base/dirent.h: Remove, moving test ...
13921         * fixinc/tests/base/testing.h: ... here, reflecting new name.
13922
13923 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
13924
13925         PR c/13814
13926         * c-decl.c (diagnose_mismatched_decls): Also discard a
13927         built-in if we encounter an old-style definition with the
13928         same name.
13929
13930 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
13931
13932         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
13933         set to default{32,64}.
13934
13935 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
13936
13937         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
13938         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
13939
13940 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
13941             Olivier Hainque  <hainque@act-europe.fr>
13942
13943         * fold-const.c (fold_binary_op_with_conditional_arg): Only
13944         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
13945
13946 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
13947
13948         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
13949         size for minipool references.
13950
13951 2004-01-23  Roger Sayle  <roger@eyesopen.com>
13952
13953         * real.c (real_floor, real_ceil): Tweak to allow input and output
13954         arguments to overlap.
13955         (real_round): New function to implement round(3m) semantics.
13956         * real.h (real_round): Prototype here.
13957         * builtins.c (fold_builtin_round): New function to constant fold
13958         round, roundf and roundl.
13959         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
13960
13961 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
13962
13963         PR optimization/13819
13964         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
13965         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
13966         (sh_handle_sp_switch_attribute): Remove warning.
13967
13968 2003-11-30  Jan Hubicka  <jh@suse.cz>
13969
13970         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
13971
13972 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
13973
13974         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
13975         may or may not return non-NIL.
13976         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
13977         check CANNOT_CHANGE_MODE_CLASS
13978
13979 2004-01-23  Jan Hubicka  <jh@suse.cz>
13980
13981         * basic-block.h (PROP_POSTRELOAD): New macro.
13982         (CLEANUP_LOG_LINKS): New.
13983         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
13984         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
13985
13986         * cselib.c (value_pool): New.
13987         (new_cselib_val): Use pool.
13988         (cselib_init): Initialize value_pool
13989         (cselib_finish): Free pool.
13990
13991 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
13992
13993         * config/sparc/sparc.c (scan_record_type): New function.
13994         (function_arg_slotno): Use it to determine which kinds of
13995         registers the record can be passed in.
13996
13997 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
13998
13999         * config/pa/fptr.c: Fix old-style definition.
14000
14001 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
14002
14003         PR optimization/13724
14004         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
14005         represents the zero bits produced by a ZERO_EXTEND operation.
14006
14007 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14008
14009         PR optimization/13821
14010         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
14011         correctly calculate the lowpart offset of the contracted subreg.
14012
14013 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
14014
14015         * doc/invoke.texi (Optimize Options): Note that --param arguments
14016         are subject to change without notice.
14017
14018 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14019
14020         * config.gcc (mips-sgi-irix6*o32): Removed.
14021         * config/mips/iris6-o32-as.h: Likewise.
14022         * config/mips/iris6-o32-gas.h: Likewise.
14023         * config/mips/iris6-o32.h: Likewise.
14024
14025 2004-01-22  Jan Hubicka  <jh@suse.cz>
14026
14027         * cfgcleanup.c (first_pass): New static variable.
14028         (try_forward_edges):  Add work limiting check for threading.
14029         (try_crossjump_bb):  Add work limiting check for crossjumping.
14030         (try_optimize_cfg):  Maintain first pass variable.
14031
14032 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
14033
14034         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
14035         handles complex and vector modes.
14036
14037 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14038
14039         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
14040         (REG_OK_FOR_BASE_P_STRICT): Likewise.
14041         (STRICT): Likewise.
14042
14043 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14044
14045         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
14046         (genrtl_for_stmt): Remove emit_nop calls.
14047
14048 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14049
14050         PR target/13713
14051         PR target/13324
14052         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
14053         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
14054         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
14055
14056 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14057
14058         * config/arm/arm.c: Include "debug.h".
14059         (thumb_pushpop): Take two new arguments.  Add some commentary.
14060         Output frame information when pushing.
14061         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
14062         thumb_pushpop.
14063         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
14064         offset, and pass it to thumb_pushpop.  Output CFI information.
14065         (thumb_expand_prologue): Add some frame-related markers and notes.
14066
14067 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
14068
14069         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
14070         for TARGET_64BIT.
14071         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
14072         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
14073
14074 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14075             Paolo Bonzini  <bonzini@gnu.org>
14076
14077         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
14078         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
14079         * rtl.h (subreg_lsb_1): Prototype here.
14080         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
14081         sign extensions.
14082
14083 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14084
14085         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
14086         macro need not be defined if jump-tables should contain
14087         relative addresses only when -fPIC or -fPIC is in effect.
14088
14089 2004-01-22  Jan Hubicka  <jh@suse.cz>
14090
14091         * alias.c (reg_base_value): Turn into varray.
14092         (reg_base_value_size): Kill.
14093         (old_reg_base_value): New deletable varray.
14094         (alias_invariant_size): New variable.
14095         (REG_BASE_VALUE): Update to use varray.
14096         (find_base_value): Likewise.
14097         (record_set): Likewise.
14098         (record_base_value): Likewise.
14099         (memrefs_conflict_p): Likewise.
14100         (record_set): Likewise
14101         (record_base_value): Likewise.
14102         (memrefs_conflict_p): Use alias_invariant_size.
14103         (init_alias_analysis): Use varray; set alias_invariant_size;
14104         rescale other arrays to be sized by maxreg.
14105         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
14106
14107 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14108
14109         * config/sparc/sparc.c (function_arg_slotno): Use
14110         FLOAT_TYPE_P to detect FP fields in structures.
14111         (function_arg_record_value_1): Likewise.
14112         (function_arg_record_value_2): Likewise.
14113
14114 2004-01-22  Jan Hubicka  <jh@suse.cz>
14115
14116         * function.c (allocate_struct_function): Do not initialize expr, emit
14117         and varasm.
14118         (prepare_function_start): Do it here.
14119         * c-parse.in (maybe_type_qual): Do not produce line number notes.
14120
14121 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14122
14123         PR target/13559
14124         * config/sparc/sparc.c (function_arg_record_value_3): Revert
14125         to 'word_mode' once the first slot has been filled.
14126
14127 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
14128
14129         * config/sparc/sparc.c (function_arg_record_value_1): Fix
14130         computation of the number of integer registers required.
14131
14132 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14133
14134         * config/i386/i386.md: Simplify certain comparisons of
14135         const_int.
14136
14137 2004-01-21  Andrew Pinski  <apinski@apple.com>
14138
14139         PR target/13785
14140         * config/rs6000/rs6000.md (call_value): Force operand
14141         1 not operand 0 into a register.
14142
14143 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14144
14145         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
14146         unwind-dw2-fde.h: Update copyright.
14147
14148 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14149
14150         * pa-protos.h: Update copyright.
14151         * pa.h: Likewise.
14152         * pa.md: Likewise.
14153
14154 2004-01-21  Caroline Tice  <ctice@apple.com>
14155
14156         PR target/12308
14157         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
14158         flags register.
14159         (fix_truncdfdi2): Likewise.
14160         (fix_truncsfdi2): Likewise.
14161         (*fix_truncdi_1): Likewise.
14162         (fix_truncxfsi2): Likewise.
14163         (fix_truncdfsi2): Likewise.
14164         (fix_truncsfsi2): Likewise.
14165         (*fix_truncsi_1): Likewise.
14166         (fix_truncxfhi2): Likewise.
14167         (fix_truncdfhi2): Likewise.
14168         (fix_truncsfhi2): Likewise.
14169         (*fix_trunchi_1): Likewise.
14170
14171 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14172
14173         * alias.c, basic-block.h, c-common.c, c-common.h,
14174         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
14175         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
14176         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
14177         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
14178         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
14179         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
14180         genautomata.c, genconditions.c, genemit.c, genflags.c,
14181         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
14182         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
14183         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
14184         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
14185         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
14186         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
14187         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
14188         unwind.h, varray.c, varray.h: Update copyright.
14189
14190 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14191
14192         * config/h8300/coff.h: Update copyright.
14193         * config/h8300/elf.h: Likewise.
14194         * config/h8300/h8300-protos.h: Likewise.
14195         * config/h8300/h8300.c: Likewise.
14196         * config/h8300/h8300.h: Likewise.
14197         * config/h8300/h8300.md: Likewise.
14198
14199 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14200
14201         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
14202         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
14203         ultrix_unistd): New hacks.
14204         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
14205         ULTRIX_CONST2_CHECK): Add checks.
14206         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
14207         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
14208         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
14209         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
14210         * fixinc/tests/base/locale.h: New file.
14211         * fixinc/fixincl.x: Rebuilt.
14212
14213 2004-01-21  Andreas Jaeger  <aj@suse.de>
14214             Michael Matz  <matz@suse.de>
14215
14216         * doc/extend.texi (Extended Asm): Clarify memory clobber.
14217
14218 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14219
14220         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
14221         _Jv_RegisterClasses through a function pointer.
14222
14223 2004-01-21  Falk Hueffner  <falk@debian.org>
14224
14225         PR target/12898
14226         * config/alpha/alpha.c (alpha_emit_set_const_1): If
14227         no_new_pseudos, use gen_rtx_SET directly for SImode constants
14228         which need multiple instructions to emit.
14229
14230 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
14231
14232         * config/m32r/m32r.h (CPP_SPEC): Define.
14233
14234 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
14235
14236         * c-decl.c (merge_decls): Kill different_binding_level and
14237         different_tu arguments; simplify throughout.
14238         (duplicate_decls): Likewise.
14239         (pushdecl, merge_translation_unit_decls): Update calls to
14240         duplicate_decls.
14241
14242 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14243
14244         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
14245         $(SYSTEM_H).
14246         (print-rtl1.o): Depend on $(SYSTEM_H).
14247
14248 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14249
14250         PR bootstrap/12730
14251         * configure.ac: Delete definition and subsitution of docdir.
14252         Add info, man, srcman and srcinfo to target hooks. Create doc/
14253         directory.
14254         * configure: Regenerate.
14255         * Makefile.in: Don't substitute docdir and delete all references
14256         throughout.
14257         (MAKEINFOFLAGS): Define.
14258         (stmp-docobjdir): Delete.
14259         (INFOFILES, MANFILES): Define.
14260         (info): Call lang.info, srcinfo and lang.srcinfo.
14261         (generated-manpages): Call lang.man, srcman and lang.srcman.
14262         (srcinfo, srcman): New rules to copy back files to source directory.
14263         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
14264         (install-man): Revamp rule.
14265         (clean): Update dvi directory.
14266         (distclean): Delete TAGS from front end directorys.
14267         (maintainer-clean): Delete all document files in source directory.
14268
14269         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
14270         (objc.srcman, objc.srcinfo): Likewise.
14271
14272 2004-01-20  Bruce Korb  <bkorb@gnu.org>
14273
14274         * fixinc/inclhack.def(math_exception): bypass only for glibc.
14275         (matherr_decl): rename & relocate as exception_structure.
14276         This fix must precede the math_exception fix.
14277
14278 2004-01-20  Roger Sayle  <roger@eyesopen.com>
14279
14280         * fold-const.c (fold_convert): Rename to fold_convert_const.
14281         (fold_convert_const): Change arguments to take a tree_code,
14282         a type and the operand/expression to be converted.  Return
14283         NULL_TREE if no simplification is possible.  Add support for
14284         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
14285         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
14286         Adjust call to fold_convert to match new fold_convert_const.
14287         Avoid modifying the tree passed to fold in-place.
14288
14289 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
14290
14291         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
14292         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
14293         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
14294
14295 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14296
14297         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
14298         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
14299         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
14300         (emit_move_sequence): Check scratch_reg first in various if statements.
14301         Extend source simplification to handle all 64-bit CONST_INTs.
14302         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
14303         frame size.
14304         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
14305         frame offset calculations.
14306         * pa.h (NEW_HP_ASSEMBLER): Add comment.
14307         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
14308         LEGITIMATE_64BIT_CONST_INT_P): Define.
14309         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
14310         any CONST_INT as legitimate during and after reload.
14311         (VAL_32_BITS_P, INT_32_BITS): Define.
14312         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
14313
14314 2004-01-20  Jan Hubicka  <jh@suse.cz>
14315
14316         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
14317         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
14318         containing hard regs are shared.
14319         (gen_hard_reg_clobber): New function.
14320         (hard_reg_clobbers): New array.
14321         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
14322         (copy_rtx): Do not copy clobbers containing hard regs.
14323         * rtl.h (gen_hard_reg_clobber): Declare.
14324
14325 2004-01-20  Jan Hubicka  <jh@suse.cz>
14326
14327         * varray.c:  Include hashtab.h
14328         (varray_descriptor): New structure.
14329         (hash_descriptor, eq_descriptor, varray_descriptor,
14330         print_statistics): New static functions
14331         (varray_init, varray_grow): Update statistics
14332         (dump_varray_statistics): New function.
14333         * varray.h (dump_varray_statistics): Declare.
14334         * toplev.c (finalize): Call it.
14335         * Makefile.in (varray.o): Add dependency.
14336
14337 2004-01-20  Jan Hubicka  <jh@suse.cz>
14338
14339         * cselib.c: Include alloc-pool.h
14340         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
14341         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
14342         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
14343         unchain_one_elt_loc_list_pool, unchain_one_value,
14344         new_cselib_val): Simplify using allocpool.
14345         (cselib_init): Initialize allocpools.
14346         (cselib_finish): Finish allocpools.
14347         * Makefile.in (cselib.o): Depend on alloc-pool.h
14348
14349 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
14350
14351         * config/mips/mips.c (mips_load_call_address): Make the call insn
14352         use $gp if it could be calling a lazy binding stub.
14353
14354 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
14355
14356         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
14357         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14358         (TARGET_STRUCT_VALUE_RTX): Likewise.
14359         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
14360         (PROMOTE_FUNCTION_RETURN): Remove.
14361         (STRUCT_VALUE): Remove.
14362
14363 2004-01-20  Denis Chertykov  <denisc@overta.ru>
14364
14365         PR bootstrap/13735
14366         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
14367         register as pointer after reload.
14368
14369 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14370
14371         PR optimization/12440
14372         * loop.c: Include ggc.h.
14373         (loop_optimize): Run garbage collector between optimization of loops.
14374         * Makefile.in (loop.o): Add GGC_H dependency.
14375
14376 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
14377
14378         * gcc/config/rs6000/rs6000.c (function_arg) Handle
14379         vector register special in function without prototype.
14380         (function_arg_advance): Vector parameters get always
14381         GPRs allocated for the linux64 target.
14382
14383 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14384
14385         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
14386         not TARGET_M32RX_MASK.
14387
14388 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
14389
14390         PR target/13557
14391         * config/sparc/sparc.c (function_arg): Reorder the cases.
14392
14393 2004-01-19  Per Bothner  <per@bothner.com>
14394
14395         Move cpp_reader's line_maps field to a shared global.
14396         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
14397         and change the type to a pointer rather than a struct.
14398         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
14399         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
14400         Likewise.
14401         * cppfiles.c (validate_pch):  Likewise.
14402         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
14403         Likewise.
14404         * cpperror.c (print_location):  Likewise.
14405         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
14406         * cppinit.c (cpp_create_reader):  Handle new parameter.
14407         (cpp_destroy):  Don't free line_maps - that's no longer our job.
14408         * input.h (line_table):  New variable.
14409         * toplev.c (line_table):  Declare variable.
14410         (general_init):  Initialize line_table.
14411         * c-opts.c (c_common_init_options):  Pass line_table to
14412         cpp_create_reader.
14413         * fix-header.c (read_scan_file):  New local variable line_table.
14414         Initialize, and pass it to cpp_create_reader.
14415         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
14416         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
14417
14418 2004-01-19  Per Bothner  <per@bothner.com>
14419
14420         Implement a cache for linemap_lookup.
14421         * line-map.h (struct_line_maps):  Add cache field.
14422         * line-map.c (linemap_init):  Zero cache field.
14423         (linemap_add):  Set cache field to offset of newly allocated map.
14424         (linemap_lookup):  Use and set cache field.
14425
14426 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14427
14428         PR optimization/13567
14429         * cse.c (cse_basic_block): Call cse_insn with a non-null
14430         libcall_insn for the last SET insn of a no-confilict block.
14431
14432 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14433
14434         * Makefile.in (target_noncanonical, program_transform_name): Use
14435         immediate define instead of deferred.
14436         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
14437         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
14438         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
14439         deferred backquote.
14440
14441 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
14442
14443         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
14444         true unconditionally.
14445         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
14446         Remove.
14447         (build_unary_op, build_modify_expr): Don't handle extended
14448         lvalues.
14449         (build_component_ref, build_conditional_expr): Call non_lvalue
14450         instead of pedantic_non_lvalue.
14451         (build_c_cast): Don't condition use of non_lvalue on pedantic.
14452         * fold-const.c (fold): Don't check pedantic directly for
14453         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
14454         passed to pedantic_non_lvalue.
14455         * doc/extend.texi: Remove documentation of extended lvalues.
14456
14457 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14458
14459         PR optimization/5263
14460         * simplify-rtx.c (associative_constant_p): Delete.
14461         (simplify_associative_operation): Rewrite to linearize terms, and
14462         attempt to simplify new term against both left and right subterms.
14463         (simplify_binary_operation): Call swap_commutative_operands_p on
14464         op0 and op1, not trueop0 and trueop1.  Move the initialization of
14465         trueop0 and trueop1 down to where first needed.
14466         (simplify_relational_operation): Likewise.
14467         * rtlanal.c (commutative_operand_precedence): Also order constant
14468         operands using avoid_constant_pool_reference.
14469
14470 2004-01-19  Richard Henderson  <rth@redhat.com>
14471
14472         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
14473         don't check memory mode.
14474         (unaligned_memory_operand): Likewise.
14475         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
14476         abort for op0 not MEM.
14477
14478         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
14479         is not a reg, copy to a scratch first.
14480         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
14481         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
14482         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
14483         (reload_inqi, reload_inhi): Fix mode of op0.
14484         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
14485         reload_outhi_help): Likewise.  Use define_insn_and_split.
14486
14487         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
14488         as well as $29 dead.
14489
14490 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
14491
14492         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
14493         "tls_object" for thread-local objects.
14494         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
14495         "#tls" for thread-local sections.
14496         * configure.ac (thread-local checks): Specify --fatal-warnings in
14497         every binutils-specific checks.  For sparc*-*-*, test whether the
14498         OS is Solaris and the tools are native and act accordingly.
14499         * configure: Rebuild.
14500
14501 2004-01-19  Jeff Law  <law@redhat.com>
14502
14503         * contrib.texi: Update Paolo Carlini's entry.  New entries for
14504         Jerry Quinn and Petur Runolfsson.
14505
14506 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14507
14508         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
14509         size, don't use the larger zero-extending loads.
14510
14511 2004-01-19  Richard Henderson  <rth@redhat.com>
14512
14513         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
14514         * alpha.md (UNSPEC_NT_LDA): Remove.
14515         (UNSPEC_CVTLQ, cvtlq): New.
14516         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
14517         (extendsidi2_fix): Remove.
14518         (extendsidi2 splitter): Use cvtlq.
14519         (extendsidi2 fp peepholes): Remove.
14520         (cvtql): Use SFmode instead of SImode.
14521         (fix_trunc?fsi): Update to match.
14522         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
14523         (movsi): Rename from movsi_nofix, remove f alternatives.
14524         (movsi_nt_vms): Similarly.
14525         (movsi_fix, movsi_nt_vms_fix): Remove.
14526         (nt_lda): Remove.
14527         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
14528
14529 2004-01-19  Jan Hubicka  <jh@suse.cz>
14530
14531         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
14532         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
14533         list.
14534         (cgraph_remove_unreachable_nodes): New function
14535         (cgraph_decide_inlining_of_small_function): Fix pasto.
14536         (cgraph_decide_inlining_incrementally): Fix pasto.
14537         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
14538
14539 2004-01-19  Steven Bosscher  <stevenb@suse.de>
14540
14541         * gengtype.c (header_file): Make it static.
14542         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
14543         * gengtype.h (header_file): No longer extern.
14544
14545 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14546
14547         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
14548         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
14549         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
14550
14551 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14552
14553         * stmt.c (HAVE_casesi): Define it not already defined.
14554         (HAVE_tablejump): Likewise.
14555         (expand_end_case_type): Resort to the binary tree method if
14556         neither casesi or tablejump is available.
14557
14558 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
14559
14560         * final.c (final_scan_insn): Make non-static again.
14561         * output.h (final_scan_insn): Re-add prototype.
14562         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
14563         to final_scan_insn call.
14564         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
14565         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
14566         * config/pa/pa.c (output_lbranch, output_call): Likewise.
14567         * config/sh/sh.c (print_slot): Likewise.
14568         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
14569         (output_sibcall, sparc_flat_function_epilogue): Likewise.
14570
14571 2004-01-18  Jan Hubicka  <jh@suse.cz>
14572
14573         * basic-block.h (try_redirect_by_replacing_jump): Declare.
14574         * cfgcleanup.c (try_optimize_cfg): Use it.
14575         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
14576         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
14577         Kill hack.
14578         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
14579
14580         Revert:
14581         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14582
14583                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
14584                 even after reload, just don't remove the actual jump tables.
14585
14586 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14587
14588         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
14589
14590 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14591
14592         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
14593         the size of a pointer in bytes.
14594
14595 2004-01-18  Roger Sayle  <roger@eyesopen.com>
14596
14597         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
14598         live "next" variable, which could lead to an infinite loop.
14599
14600 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
14601
14602         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
14603         block.
14604
14605         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14606         Check for NULL in the chain and remove repeated code.
14607
14608 2004-01-18  Jan Hubicka  <jh@suse.cz>
14609
14610         * coverage.c (checksum_string): Rename to ...
14611         (coverage_checksum_string): ... this one, Use crc32_string; recognize
14612         names containing random number and zero the number out in order to get
14613         match.
14614
14615 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
14616
14617         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
14618
14619 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14620
14621         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
14622         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
14623         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
14624         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
14625         doc/trouble.texi: Remove trailing whitespace.
14626
14627 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
14628
14629         PR target/7618
14630         * config/mips/mips.c: Include cfglayout.h.
14631         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
14632         (mips_unspec_offset_high): Add temporary register argument.
14633         (mips_load_call_address): New function, split out from...
14634         (mips_expand_call): ...here.
14635         (mips_output_cplocal): New function.
14636         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
14637         (mips_emit_loadgp): New function, split out from...
14638         (mips_expand_prologue): ...here.
14639         (mips_output_mi_thunk): New function.
14640
14641 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
14642
14643         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
14644         mcpu32): Remove redundant checks for implied target predefines.
14645
14646 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
14647
14648         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14649         Return type is unsigned int not int.
14650         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
14651         Likewise.
14652
14653 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14654
14655         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
14656         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
14657         "GNU/Linux" and "Microsoft Windows" terminology.
14658
14659 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14660
14661         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
14662         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
14663         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
14664         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
14665         @smallexample instead of @example.
14666
14667 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
14668
14669         * objc/objc-act.c (build_objc_method_call): Use target
14670         hooks instead of macros to determine if ..._stret
14671         dispatchers should be used (NeXT runtime only).
14672
14673 2004-01-17  Roger Sayle  <roger@eyesopen.com>
14674
14675         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
14676         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
14677
14678 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
14679
14680         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
14681         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
14682         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
14683         macros.
14684         * reload1.c (emit_reload_insns): Use them.
14685         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
14686         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
14687         for NULL PATTERN.
14688
14689 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
14690
14691         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
14692         (final_scan_insn): Update to take an additional SEEN argument.  Emit
14693         a line note after the prologue.  Make static.
14694         (line_note_exists): Remove.
14695         (final): Don't initialize line_note_exists.  Update call to
14696         final_scan_insn.
14697         * output.h (final_scan_insn): Remove prologue.
14698         * function.c (set_insn_locators): Update comment.
14699         (thread_prologue_and_epilogue_insns): Add a comment.
14700
14701 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
14702
14703         PR target/10781
14704         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
14705         Prototype.
14706         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14707         New function.
14708         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
14709         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
14710         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
14711
14712 2004-01-17  Jan Hubicka  <jh@suse.cz>
14713
14714         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
14715         commit.
14716
14717         * toplev.c (HAVE_conditional_execution): Provide default.
14718         (rest_of_handle_reorder_blocks): For conditional_execution target
14719         update liveness once after all transformations
14720         (rest_of_compilation): Do crossjumping before ce3.
14721
14722 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
14723
14724         * alias.c (new_alias_set): Mark last_alias_set for PCH.
14725         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
14726         for PCH.
14727         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
14728         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
14729         (get_TOC_alias_set): Mark 'set' for PCH.
14730
14731 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14732
14733         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
14734         even after reload, just don't remove the actual jump tables.
14735
14736 2004-01-17  J. Brobecker  <brobecker@gnat.com>
14737
14738         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
14739         Remove checks for is_ada() and TREE_UNSIGNED.
14740         (subrange_type_die): Emit a byte_size attribute if the subrange
14741         type size is different from the base type size.
14742         (modified_type_die): Replace call to is_ada_subrange_type() by
14743         call to is_subrange_type().
14744
14745 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
14746
14747         * config/sh/sh.c: Include ggc.h.
14748
14749 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14750
14751         * Makefile.in (MD5_H): New.
14752         (fold-const.o): Depend on md5.h.
14753         (dwarf2out.o): Likewise.
14754         (cppfiles.o): Likewise.
14755         * cppfiles.c: Include md5.h.
14756         (should_stack_file): Check against list read from PCH file.
14757         (struct pchf_data): New.
14758         (pchf): New variable.
14759         (struct pchf_adder_info): New.
14760         (pchf_adder): New.
14761         (pchf_save_compare): New.
14762         (_cpp_save_file_entries): New.
14763         (_cpp_read_file_entries): New.
14764         (struct pchf_compare_data): New.
14765         (pchf_compare): New.
14766         (check_file_against_entries): New.
14767         * cpphash.h (_cpp_save_file_entries): Prototype.
14768         (_cpp_read_file_entries): Prototype.
14769         * cpppch.c (cpp_write_pch_state): Write the list of headers.
14770         (cpp_read_state): Read the list of headers.
14771
14772 2004-01-17  Jan Hubicka  <jh@suse.cz>
14773
14774         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
14775         builtin_expect specially.
14776         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
14777         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
14778         * invoke.texi (max-inline-insns-single): Set to 100.
14779         (large-function-insns): Set to 3000.
14780
14781 2004-01-16  Eric Christopher  <echristo@redhat.com>
14782             Chandrakala Chavva <cchavva@redhat.com>
14783
14784         * cppcharset.c (one_iso88591_to_utf8): New function.
14785         (convert_iso88591_utf8): Ditto. Use.
14786         (conversion_tab): Use.
14787         (_cpp_input_to_utf8): New function.
14788         (_cpp_init_iconv_buffer): Ditto.
14789         (_cpp_close_iconv_buffer): Ditto.
14790         * cpphash.h: Prototype new functions.
14791         (cpp_buffer): Add input_cset_desc.
14792         * cppinit.c: Add input_charset default.
14793         * cpplib.c (cpp_push_buffer): Support init and
14794         close of iconv.
14795         * cpplib.h (cpp_options): Add input_charset.
14796
14797 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14798
14799         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
14800         * config/alpha/unicosmk.h: Remove a commented-out definition
14801         of ASM_OUTPUT_SECTION_NAME.
14802         * config/stormy16/stormy16.h: Likewise.
14803
14804 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14805
14806         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
14807         (alpha___extern_prefix_sys_stat): ... this.
14808         Apply to <sys/mount.h>, too.
14809         Tweak to match more variations.
14810         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
14811
14812         * fixinc/inclhack.def (alpha___extern_prefix,
14813         alpha___extern_prefix_standards): New hacks to obey
14814         __PRAGMA_EXTERN_PREFIX.
14815         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
14816         test.
14817         * fixinc/tests/base/standards.h: Likewise.
14818
14819         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
14820         variations.
14821         New testcase.
14822         * fixinc/tests/base/pthread.h: Handle it.
14823
14824         * fixincl/inclhack.def (bad_lval): Sort file list.
14825         Add many missing files up to Tru64 UNIX V5.1B.
14826         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
14827         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
14828         order.
14829
14830         * fixinc/fixincl.x: Regenerate.
14831
14832 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
14833
14834         * version.c (version_string): Change to 3.5.0.
14835         * doc/include/gcc-common.texi (version-GCC): Likewise.
14836
14837 2004-01-16  Jan Hubicka  <jh@suse.cz>
14838
14839         * i386.md (load_tp_di): Fix pasto.
14840
14841         PR opt/13608
14842         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
14843
14844         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
14845         pp_c_character_constant, pp_c_floating_constant,
14846         pp_c_additive_expression, pp_c_shift_expression,
14847         pp_c_equality_expression, pp_c_and_expression,
14848         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
14849         pp_c_logical_and_expression): Remove inline modifier.
14850         * dwarf2out.c (get_AT): Likewise.
14851         * et-forest.c (et_splay): Likewise.
14852         * ra.h (ra_alloc, ra_calloc): Likewise
14853
14854 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14855
14856         * config/frv/frv-protos.h: Fix comment formatting.
14857         * config/frv/frv.c: Likewise.
14858         * config/frv/frv.h: Likewise.
14859         * config/frv/frv.md: Likewise.
14860         * config/frv/frvbegin.c: Likewise.
14861         * config/frv/frvend.c: Likewise.
14862
14863 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14864
14865         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
14866         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
14867         LINKER_DOES_NOT_WORK_WITH_DWARF2.
14868         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
14869
14870 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
14871
14872         PR 11864
14873         * postreload.c (reload_cse_simplify_operands): Don't remove
14874         implicit extension from LOAD_EXTEND_OP.
14875
14876 2004-01-16  Jan Hubicka  <jh@suse.cz>
14877
14878         PR opt/11350
14879         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
14880         after reload.
14881         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
14882         rtl_try_redirect_by_replacing_branch): Likewise.
14883
14884 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
14885
14886         PR pch/13689
14887         * alias.c (struct alias_set_entry): Mark for GC.
14888         (alias_sets): Make static, mark for GC.
14889         (record_alias_subset): Use GC to allocate alias structures.
14890         * varray.c (element): Make generic varrays GCed.
14891
14892         PR pch/13361
14893         * c-typeck.c (constructor_asmspec): Delete.
14894         (struct initializer_stack): Delete field 'asmspec'.
14895         (start_init): Delete saving of asmspec.
14896         (finish_init): Don't update constructor_asmspec.
14897         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
14898         * stmt.c (expand_asm): Duplicate strings from tree.
14899         (expand_asm_operands): Likewise.
14900         * tree.c (tree_size): Update computation of size of STRING_CST.
14901         (make_node): Don't make STRING_CST nodes.
14902         (build_string): Allocate string with tree node.
14903         * tree.def (STRING_CST): Update comment.
14904         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
14905         (tree_string): Place contents of string in tree node.
14906         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
14907         from tree.
14908
14909         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
14910         altivec operands.
14911
14912 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14913
14914         * c-common.h: Fix comment formatting.
14915         * c-cppbuiltin.c: Likewise.
14916         * c-pragma.c: Likewise.
14917         * calls.c: Likewise.
14918         * collect2.c: Likewise.
14919         * cppcharset.c: Likewise.
14920         * cpptrad.c: Likewise.
14921         * dbxout.c: Likewise.
14922         * defaults.h: Likewise.
14923         * dwarf2out.c: Likewise.
14924         * fold-const.c: Likewise.
14925         * genautomata.c: Likewise.
14926         * genconditions.c: Likewise.
14927         * genflags.c: Likewise.
14928         * gengtype.c: Likewise.
14929         * integrate.c: Likewise.
14930         * loop.c: Likewise.
14931         * predict.c: Likewise.
14932         * sdbout.c: Likewise.
14933
14934 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
14935
14936         * config/ia64/ia64.md (*movti_internal): C output template
14937         extracted to ia64.c.
14938         (*movti_internal_reg): Delete.
14939         (reload_inti, reload_outti): Use the correct mode on operand 2
14940         in the first place, don't fix it up in the output template.
14941         (movtf, reload_ointf, reload_outtf): New expanders.
14942         (*movtf_internal): New define_insn_and_split.
14943         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
14944         make static; do not hand TFmode CONST_DOUBLEs to split_double.
14945         (ia64_split_tmode_move): New function, body mostly pulled
14946         from ia64.md:*movti_internal.
14947         (ia64_function_arg_words): New function, extracted common
14948         logic from ia64_function_arg et seq.
14949         (ia64_function_arg_offset): Likewise.  Handle correctly the
14950         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
14951         (ia64_function_arg, ia64_function_arg_partial_nregs)
14952         (ia64_function_arg_advance): Use ia64_function_arg_words and
14953         ia64_function_arg_offset.
14954         (ia64_function_value): TCmode does not go in float regs.
14955         (ia64_secondary_reload_class): Also handle TFmode.
14956         * config/ia64/ia64-protos.h: Remove prototype for
14957         ia64_split_timode; add prototype for ia64_split_tmode_move.
14958
14959 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
14960
14961         * Makefile.in (MAINT): Make it an immediate assignment.
14962
14963 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14964
14965         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
14966
14967 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14968
14969         * config/h8300/coff.h: Replace Hitachi with Renesas.
14970         * config/h8300/elf.h: Likewise.
14971         * config/h8300/h8300-protos.h: Likewise.
14972         * config/h8300/h8300.c: Likewise.
14973         * config/h8300/h8300.h: Likewise.
14974         * config/h8300/h8300.md: Likewise.
14975         * config/h8300/lib1funcs.asm: Likewise.
14976
14977 2004-01-15  Andrew Pinski  <apinski@apple.com>
14978
14979         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
14980         around it.
14981
14982 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14983
14984         * config/h8300/h8300.c (h8300_return_in_memory): New.
14985         (TARGET_STRUCT_VALUE_RTX): Likewise.
14986         (TARGET_RETURN_IN_MEMORY): Likewise.
14987         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
14988         (RETURN_IN_MEMORY): Likewise.
14989
14990 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
14991
14992         PR optimization/13375
14993         * gcse.c (handle_avail_expr): Just return if the source is not a
14994         single set.
14995
14996 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
14997             Daniel Jacobowitz  <drow@mvista.com>
14998
14999         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
15000         (EQUIV): Define.
15001         (ARM_FUNC_ALIAS): New macro.
15002         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
15003         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
15004
15005 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15006
15007         PR optimization/12372
15008         * calls.c (expand_call): Add call_fusage data for stack arguments in
15009         constant calls.
15010
15011 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
15012
15013         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
15014         (rs6000_elf_declare_function_name): Formatting.
15015         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
15016
15017 2004-01-15  Jan Hubicka  <jh@suse.cz>
15018
15019         PR bootstrap/13692
15020         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
15021         previous patch.
15022
15023 2004-01-15  Richard Henderson  <rth@redhat.com>
15024
15025         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
15026         integer regs of the same call-savedness.
15027
15028 2004-01-15  Andreas Schwab  <schwab@suse.de>
15029
15030         PR bootstrap/13562
15031         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
15032         status for NOTB/NOTW/NEGW methods.
15033
15034 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15035
15036         * doc/invoke.texi: Update dump file names.  Fix a typo.
15037
15038 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15039
15040         * builtins.c (expand_builtin_va_end): Don't use
15041         EXPAND_BUILTIN_VA_END.
15042         * system.h (EXPAND_BUILTIN_VA_END): Poison.
15043         * config/d30v/d30v.h: Remove a commented-out definition of
15044         EXPAND_BUILTIN_VA_END.
15045         * config/stormy16/stormy16.h: Likewise.
15046
15047 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15048
15049         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
15050         * targhooks.c (default_struct_value_rtx): Don't use
15051         STRUCT_VALUE_INCOMING_REGNUM.
15052
15053 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15054
15055         PR bootstrap/12744
15056         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
15057         GENINSRC and not parsedir.  Define srcextra as a langhook.
15058         * configure: Regenerate.
15059         * Makefile.in: Suppress default .l.c rule.  Don't substitute
15060         parsedir and delete all references throughout.  Conditionally define
15061         rule for srcextra dependent on GENINSRC.
15062         (stmp-docobjdir): Delete.
15063         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
15064         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
15065         and gengtype-yacc.h back to source directory.
15066         (maintainer-clean): Delete all parse files in source directory.
15067         (distclean): Delete generated files.
15068
15069         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
15070         (objc-parse.c, objc-parse.y): Don't use parsedir.
15071         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
15072         directory if requested.
15073         (po-generated): Don't use parsedir.
15074         (objc.maintainer-clean): Delete above files from source directory.
15075
15076 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15077
15078         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
15079
15080 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15081
15082         * doc/tm.texi: Replace RETURN_IN_MEMORY with
15083         TARGET_RETURN_IN_MEMORY.
15084
15085 2004-01-15  Jan Hubicka  <jh@suse.cz>
15086
15087         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
15088         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
15089         functions accepting SSE arguments
15090         (function_arg): Warn only when asked to warn.
15091         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
15092
15093 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
15094
15095         * c-parse.in (stmts_and_decls): Make label at end of compound
15096         statement a hard error.
15097
15098 2004-01-14  Jan Hubicka  <jh@suse.cz>
15099
15100         * cgraph.c (create_edge): Use local.redefined_extern_inline.
15101         * cgraph.h (cgraph_local_info): Sort fields by size; add
15102         redefined_extern_inline
15103         (cgraph_global_info): Sort fields by size.
15104         (cgraph_node): Likewise.
15105         * cgraphunit.c (cgraph_finalize_function): Se
15106         local.redefined_extern_inline on redefinition.
15107         (cgraph_analyze_function): Use it; fix formating.
15108
15109 2004-01-14  Jan Hubicka  <jh@suse.cz>
15110
15111         PR c++/10776
15112         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
15113         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
15114         bitmaps
15115         (cache_size): New variable
15116         (add_dependence): Update use; canonize early memory locations
15117         (sched_analyze_1): Likewise.
15118         (sched_analyze_2): Likewise.
15119         (init_dependency_caches): Initialize bitmaps.
15120         (free_dependency_caches): Free bitmaps
15121
15122 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15123
15124         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
15125         targetm.calls.strict_argument_naming().
15126         * target.h: Likewise.
15127
15128 2004-01-14  Richard Henderson  <rth@redhat.com>
15129
15130         PR debug/13231
15131         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
15132         instructions.
15133
15134 2004-01-14  Richard Henderson  <rth@redhat.com>
15135
15136         PR c++/12491
15137         * except.c (struct eh_region): Add u.fixup.resolved.
15138         (resolve_one_fixup_region): Split out from ...
15139         (resolve_fixup_regions): ... here.
15140
15141 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15142
15143         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
15144
15145 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15146
15147         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
15148         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
15149         (STRUCT_VALUE): Remove.
15150
15151 2004-01-14  Steven Bosscher  <stevenb@suse.de>
15152
15153         * system.h: Poison PROMOTED_MODE
15154         * integrate.c (expand_inline_function): Don't mention the
15155         PROMOTED_MODE.
15156         * loop.c (update_giv_derive): Same.
15157         * tree.h (DECL_RTL): Same.
15158
15159 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
15160
15161         PR target/9365
15162         * sh.c (gen_block_redirect): Add special handling of RETURN.
15163         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
15164         far branch target (i.e. it's a return).
15165
15166 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15167
15168         * regrename.c (find_oldest_value_reg): Fix a warning.
15169
15170 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15171
15172         PR bootstrap/12527
15173         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
15174         Move linux-gas.h and linux-elf.h before aout.h.
15175         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
15176         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
15177
15178 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15179
15180         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
15181         (CONST_INT, VOIDmode, ...).
15182
15183 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15184
15185         * regrename.c (find_oldest_value_reg): If the replacement uses
15186         multiple hard registers, check that all of them are in CLASS.
15187
15188 2004-01-14  Jan Hubicka  <jh@suse.cz>
15189
15190         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
15191         impossible.
15192
15193 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
15194
15195         * Makefile.in: Define MAINT from --enable-maintainer-mode.
15196
15197 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
15198
15199         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
15200         Calculate always vrsave_mask if TARGET_ALTIVEC.
15201         (rs6000_emit_prologue): Emit code for vrsave
15202         only if TARGET_ALTIVEC_VRSAVE.
15203         (rs6000_emit_epilogue): Likewise.
15204
15205 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
15206
15207         * config/sparc/sparc.md (tie_add32): Fix pasto.
15208         (tie_add64): Likewise.
15209
15210 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15211
15212         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
15213
15214 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15215
15216         * config/iq2000/iq2000-protos.h: Fix comment formatting.
15217         * config/iq2000/iq2000.c: Likewise.
15218         * config/iq2000/iq2000.md: Likewise.
15219
15220 2004-01-14  J. Brobecker  <brobecker@gnat.com>
15221
15222         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
15223         (subrange_type_die): Add handle for nameless subrange types.
15224
15225 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15226
15227         * config/h8300/h8300-protos.h: Replace do_movsi with
15228         h8300_expand_movsi.
15229         * config/h8300/h8300.c (do_movsi): Change to
15230         h8300_expand_movsi.
15231         * config/h8300/h8300.md (movsi): Replace do_movsi with
15232         h8300_expand_movsi.
15233         (movsf): Likewise.
15234
15235 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15236
15237         * config/h8300/h8300.c (dosize): Change to
15238         h8300_emit_stack_adjustment.  Update callers.
15239
15240 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15241
15242         * config/h8300/h8300.md (movstrictqi): Add an alternative with
15243         the source being post_inc.  Tighten the predicate for the
15244         destination to register_operand.
15245         (movstricthi): Likewise.
15246
15247 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15248
15249         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
15250         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
15251         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
15252
15253 2004-01-14  Jan Hubicka  <jh@suse.cz>
15254
15255         Partial fix PR c++/12850
15256         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
15257         at zero nest level.
15258
15259 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
15260
15261         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
15262         pseudo-register.
15263
15264 2004-01-13  Devang Patel <dpatel@apple.com
15265
15266         PR debug/7078
15267         * dbxout.c (dbxout_symbol_name): Emit mangled names for
15268         NAMESPACE_DECL memebers.
15269
15270 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
15271
15272         PR c++/12709
15273         * c-common.c (finish_fname_decls): Use the chain only if the
15274         tree is an expr_stmt.
15275
15276 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
15277
15278         * rtl.def: Add comment about new option in automata_option.
15279
15280         * genautomata.c (PROGRESS_OPTION): New macro.
15281         (progress_flag): New global variable.
15282         (gen_automata_option): Process `progress'.
15283         (transform_insn_regexps, check_unit_distributions_to_automata,
15284         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
15285         expand_automata, write_automata): Print about the progress only if
15286         progress_flag.  Remove fflush.
15287         (initiate_automaton_gen): Process command line flag `-progress'.
15288
15289         * doc/md.texi: Describe the new option.
15290
15291 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15292
15293         * cfg.c (dump_bb): Dump entry edges.
15294
15295 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
15296
15297         * arm.c (thumb_legitimate_address_p): Only allow constant pool
15298         references from SImode.
15299         * arm.md (thumb_movhi_insn): Don't allow minipool references.
15300
15301 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15302
15303         * system.h (TEXT_SECTION): Poison.
15304         * varasm.c (text_section): Don't use TEXT_SECTION.
15305         * config/sh/sh.c (sh_file_start): Fix a comment typo.
15306         * doc/tm.texi (TEXT_SECTION): Remove.
15307
15308 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
15309
15310         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
15311
15312 2004-01-12  James E Wilson  <wilson@specifixinc.com>
15313
15314         * unwind-libunwind.c: Delete.
15315
15316 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15317
15318         PR 13656
15319         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
15320         oldtype is set, set *newtypep or *oldtypep too.  Do not set
15321         them at the very end.
15322         (validate_proto_after_old_defn): Restructure for comprehensibility;
15323         make error messages clearer.
15324
15325 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15326
15327         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
15328         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
15329         * varray.c: No need to prototype error.
15330         (varray_check_failed): Wrap long string onto two lines.
15331         (varray_underflow): New function.
15332
15333 2004-01-13  Steven Bosscher  <stevenb@suse.de>
15334
15335         PR c++/13376
15336         * function.h (struct function): Kill `name' field.
15337         (current_function_name): Make it an extern function.
15338         * function.c (current_function_name): New function.
15339         * graph.c: Update all uses of current_function_name.
15340         * gcse.c: Likewise.
15341         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
15342         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
15343         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
15344         instead of a strcmp with "main".
15345
15346 2004-01-13  Jan Hubicka  <jh@suse.cz>
15347
15348         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
15349
15350         * cgraphunit.c (cgraph_optimize_function):  Always do
15351         optimize_inline_calls when there is always_inline callee.
15352         (cgraph_decide_inlining): Fix formating.
15353         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
15354         functions.
15355         (expand_call_inline): Likewise.
15356         * toplev.h (sorry): Fix prototype.
15357
15358 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15359
15360         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
15361         conditional jumps that drop through to unconditional jumps or the
15362         end of the sequence.
15363
15364 2004-01-13  Jan Hubicka  <jh@suse.cz>
15365
15366         * alias.c (new_alias_set): Construct the alias_set varray.
15367         (init_alias_once): Don't do it here.
15368
15369 2004-01-12  Marc Espie <espie@openbsd.org>
15370
15371         * system.h: handle YYBYACC like YYBISON.
15372
15373 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
15374
15375         PR target/10847
15376         * config.gcc: No longer includes conflicting header sparc/sol2.h when
15377         building on sparc64-*-openbsd*.
15378
15379 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
15380
15381         PR debug/13539
15382         * dbxout.c (dbxout_type): Protected inheritance is not
15383         private but protected.
15384
15385 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15386
15387         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
15388
15389 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
15390
15391         PR optimization/12508.
15392         * combine.c (try_combine): Remove a dead set in a parallel
15393         even if its destination is a subreg.
15394
15395         Revert:
15396         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
15397         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
15398         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
15399
15400 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
15401
15402         * real.c: Update copyright date.
15403         * emit-rtl.c: Likewise.
15404         * rtl.h: Likewise.
15405         * dwarf2out.c: Likewise.
15406         * config/rs6000/darwin-ldouble.c: Likewise.
15407         * config/rs6000/rs6000.md: Likewise.
15408
15409 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15410
15411         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
15412         TFmode to SImode libfuncs.
15413
15414 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15415
15416         PR middle-end/11397
15417         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
15418
15419 2004-01-12  Jan Hubicka  <jh@suse.cz>
15420
15421         PR opt/12826
15422         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
15423         stored.
15424
15425         PR opt/12863
15426         * cfgcleanup.c (label_is_jump_target_p): Move to...
15427         * rtlanal.c (label_is_jump_target_p): ... here.
15428         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
15429         edges unified with branch edges.
15430
15431 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
15432
15433         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
15434         high word of an integral CONST_DOUBLE.
15435
15436 2004-01-12  Paul Brook  <paul@codesourcery.com>
15437
15438         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
15439
15440 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
15441
15442         PR target/13585
15443         * sh-protos.h (check_use_sfunc_addr): Declare.
15444         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
15445         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
15446
15447 2004-01-12  Jan Hubicka  <jh@suse.cz>
15448
15449         * alias.c:  Invlude varray.h
15450         (alias_sets): Turn into varray.
15451         (get_alias_set_entry): Use VARRAY; mark inline.
15452         (mems_in_disjoint_alias_sets_p): Mark inline.
15453         (record_alias_subset): Use varray.
15454         (init_alias_once): Initialize varray.
15455         (new_alias_set): Grow array.
15456         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
15457
15458 2004-01-12  Jan Hubicka  <jh@suse.cz>
15459
15460         Partial fix for PR opt/10776 II
15461         * cselib.c: Include params.h
15462         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
15463         locations.
15464         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
15465         * Makefile.in (cselib.o): Depend on params.h
15466
15467 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15468
15469         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
15470         simplify_unary_operation if the operand has a known mode.
15471
15472 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
15473
15474         PR target/13534
15475         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
15476         predicate to handle 'ld' conform addresses.
15477         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
15478         contraint.
15479         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
15480         are memory contraints.
15481         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
15482         New prototype.
15483         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
15484         Change 'o' to 'Y' constraint.
15485         (*movdf_softfloat64): Ditto.
15486
15487 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
15488
15489         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
15490         brace-enclosed syntax in all C output statements.
15491
15492 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15493
15494         PR target/13401
15495         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
15496         Objective-C language type value is 14.
15497
15498 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
15499
15500         PR c/12148
15501         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
15502         `int' in a number of places to make sure we always have a SImode
15503         and not a HImode.  Add a 'L' suffix to a number of constants.
15504
15505 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15506
15507         * pa.c: Don't include obstack.h.
15508
15509         * pa.md: Correct constraint in pattern for loading PIC label address.
15510
15511 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
15512
15513         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
15514          before defining.
15515
15516 2004-01-11  Steven Bosscher  <stevenb@suse.de>
15517
15518         PR fortran/9972
15519         * toplev.c (rest_of_handle_inline): Also consider functions
15520         for deferral if the language is GNU F77.
15521
15522 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
15523
15524         * c-decl.c (diagnose_arglist_conflict): Add missing space to
15525         diagnostic messages.
15526
15527 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
15528
15529         PR middle-end/13392
15530         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
15531         to drop through label.  Don't fall back to SCC even when conditional
15532         jump has not been found.
15533
15534 2004-01-11  Jan Hubicka  <jh@suse.cz>
15535
15536         * invoke.texi: Fix syntax error in previous patch.
15537
15538         Partial fix for PR opt/10776
15539         * Makefile.in (reload.o): Include param.h
15540         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
15541         * reload.c: Include params.h.
15542         (find_equiv_reg): Work limiting check.
15543         * invoke.texi: Document.
15544
15545 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
15546
15547         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
15548         out-of-bounds accesses to string constants.  Simplify mips16
15549         case accordingly.
15550
15551 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
15552
15553         PR optimization/13469
15554         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
15555         reload_cse_regs (-fnon-call-exceptions only).
15556
15557 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
15558
15559         * config/mcore/lib1.asm: Fix comment formatting.
15560         * config/mcore/mcore-elf.h: Likewise.
15561         * config/mcore/mcore.c: Likewise.
15562         * config/mcore/mcore.h: Likewise.
15563         * config/mcore/mcore.md: Likewise.
15564
15565 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
15566
15567         * c-decl.c (duplicate_decls): Break apart into...
15568         (diagnose_arglist_conflict, validate_proto_after_old_defn)
15569         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
15570         ... these new functions.  Restructure for comprehensibility.
15571         Remove various archaic special cases.  Always report the
15572         location of the previous declaration when a diagnostic is issued.
15573         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
15574         (match_builtin_function_types): Delete unnecessary forward declaration.
15575
15576 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
15577
15578         * genautomata.c (make_automaton, NDFA_to_DFA):
15579         Print progress bars with '.' characters instead of '*'.
15580         (build_automaton): Change notes to match.
15581
15582 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15583
15584         * config/m32r/m32r.md: Use define_constants for unspec and
15585         unspec_volatile.
15586
15587 2004-01-10  Jan Hubicka  <jh@suse.cz>
15588
15589         PR opt/11635
15590         * expr.c (expand_expr_real):  More curefully expand union casts.
15591
15592 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15593
15594         * config/m32r/m32r.md (flush_icache): Use 1 for
15595         unspec_volatile.
15596
15597 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
15598             James E Wilson  <wilson@specifixinc.com>
15599
15600         PR debug/12860
15601         * dbxout.c (dbxout_symbol): Remove initialization of
15602         current_sym_code, current_sym_value, and current_sym_addr.
15603         (dbxout_symbol_location): Same.
15604         (dbxout_prepare_symbol): Zero current_sym_code,
15605         current_sym_value, and current_sym_addr.
15606
15607 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
15608
15609         * tree.c (get_unwidened): Reorder conditions so that the null pointer
15610         check is done first.
15611
15612 2004-01-09  Eric Christopher  <echristo@redhat.com>
15613
15614         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
15615         if we're running mark_constant_function.
15616
15617 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
15618
15619         PR target/12561
15620         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
15621
15622 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
15623
15624         PR debug/11231
15625         * dbxout.c (dbxout_type_fields): Return if any item is
15626         error_mark_node or the type is error_mark_node.
15627
15628 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
15629
15630         * config/rs6000/darwin-ldouble.c: Add big comment explaining
15631         exactly what is expected as a 'long double'.
15632         (_xlqadd): When a value to be returned is representable as a
15633         'double', just return it directly, do not construct it using a union.
15634         Also, correct final fixup.
15635         (_xlqmul): Likewise.
15636         (_xlqdiv): Likewise.
15637         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
15638
15639         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
15640
15641 2004-01-09  Richard Henderson  <rth@redhat.com>
15642
15643         * recog.c (constrain_operands): Validate mem operands.
15644
15645 2004-01-09   James E Wilson  <wilson@specifixinc.com>
15646
15647         * gcc.c (init_spec): Remove -lunwind from shared case.
15648         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
15649
15650 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
15651
15652         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
15653         * configure: Regenerate
15654
15655 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
15656
15657         PR c/11234
15658         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
15659         between function and object pointers.
15660         (digest_init): When comparing a pointer to function type to the
15661         target type, only apply TREE_TYPE once to the pointer to function
15662         type.
15663         * except.c (for_each_eh_label_1): Treat data as a pointer to a
15664         function pointer rather than casting it to a function pointer.
15665         (for_each_eh_label): Update caller.
15666         * recog.h (struct insn_data): Use a struct or union for output.
15667         * genoutput.c (output_insn_data): Update.
15668         * final.c (get_insn_template): Update.
15669
15670 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
15671
15672         * expr.h (expand_expr): Make it a macro, not a function.
15673         (expand_expr_real): New function.
15674         * expr.c (store_expr): Adjust logic for deciding whether or not to
15675         copy the value returned by expand_expr.
15676         (expand_expr): Rename to ...
15677         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
15678         calls to language hooks.
15679         * c-common.h (c_expand_expr): Adjust prototype.
15680         * c-common.c (c_expand_expr): Add alt_rtl parameter.
15681         * langhooks-def.h (lhd_expand_expr): Change prototype.
15682         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
15683         * langhooks.h (lang_hooks): Change type of expand_expr.
15684         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
15685         (last_expr_alt_rtl): Likewise.
15686         (expand_expr_stmt_value): Set last_expr_alt_rtl.
15687         (clear_last_expr): Clear it.
15688         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
15689         (expand_end_bindings): Save and restor last_expr_alt_rtl.
15690         * tree.def (RTL_EXPR): Give it an additional operand.
15691         * tree.h (RTL_EXPR_ALT_RTL): New macro.
15692
15693 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15694
15695         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
15696         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
15697
15698 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15699
15700         PR target/13380.
15701         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
15702         or (ne:SI (reg:CC 17) (const_int 0)).
15703         Be specific about modes wherever possible.
15704
15705 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15706
15707         * config/m32r/m32r.c (m32r_expand_block_move): Call
15708         gen_movestrsi_internal with two more arguments.
15709         (m32r_output_block_move): Adjust operand numbers.
15710         Properly update the source and destination pointers.
15711         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
15712         'r+'.  Change the set detinations to match_operand.
15713
15714 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15715
15716         * final.c (FIRST_INSN_ADDRESS): Remove.
15717         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
15718         * system.h (FIRST_INSN_ADDRESS): Poison.
15719         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
15720         * config/m32r/m32r-protos.h: Remove the prototype for
15721         m32r_first_insn_address.
15722         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
15723         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
15724         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
15725
15726 2004-01-09  J. Brobecker  <brobecker@gnat.com>
15727
15728         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
15729         we just created.
15730         (is_ada_subrange_type): DIEs for enumeration subtypes should be
15731         emitted as subrange types too.
15732         (subrange_type_die): Add handling of enumeration subtypes.
15733
15734 2004-01-08  Richard Henderson  <rth@redhat.com>
15735
15736         PR opt/12441
15737         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
15738         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
15739         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
15740         (ix86_address_cost): Be prepared for SUBREGed registers.
15741         (legitimate_address_p): Accept SUBREGed registers.
15742
15743 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
15744
15745         * Makefile.in: Rename configure.in to configure.ac
15746         * doc/sourcebuild.texi: Likewise.
15747         * configure: Regenerate.
15748         * config.in: Regenerate.
15749
15750 2004-01-08  Stuart Hastings  <stuart@apple.com>
15751
15752         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
15753
15754 2004-01-08  Jan Hubicka  <jh@suse.cz>
15755
15756         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
15757
15758 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
15759
15760         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
15761         (UNSPEC_FIX_TRUNC_TF): New constant.
15762         (movtf_internal): Make splitter active only when insn is active.
15763         (extenddftf2): Rewrite to properly load zero into low part.
15764         (extenddftf2_internal): New.
15765         (extendsftf2): Rewrite.
15766         (truncdftf2): Correct length.
15767         (floatditf2): Delete.
15768         (fix_trunc_helper): New.
15769         (fix_trunctfdi2): Use fix_trunc_helper.
15770         (fix_trunctfsi2): Likewise.fix_trunc
15771         (fix_trunctfsi2_internal): New.
15772
15773         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
15774         addresses are legitimate on Darwin even when flag_pic.
15775         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
15776         non-offsettable addresses for loads of TFmode constants.
15777
15778 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15779
15780         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
15781         variables in the appropriate bss section.
15782
15783 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
15784
15785         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
15786         target_flags has MASK_POWERPC64 when -m64.
15787         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
15788         to 620, 630, power3, power4 and rs64a entries.
15789         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
15790
15791 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
15792
15793         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
15794         floating-point constants.
15795
15796 2004-01-08  J. Brobecker  <brobecker@gnat.com>
15797
15798         * dwarf2out.c (subrange_type_die): Add context_die parameter.
15799         Create the subrange_type DIE using the given context DIE.
15800         (modified_type_die): Update call to subrange_type_die.
15801
15802 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
15803
15804         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
15805         Add multiple-include guard.
15806
15807 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
15808
15809         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
15810         all vector constant loadable by vsplt*.
15811         (output_vec_const_move): Likewise.
15812
15813 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
15814
15815         PR c/6024
15816         * c-typeck.c (comptypes): Only treat enumerated types in the same
15817         translation unit as compatible with each other when they are the
15818         same type.
15819         * doc/extend.texi: Update.
15820
15821 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
15822
15823         PR c/12165
15824         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
15825         array type from the array element type.
15826
15827 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
15828
15829         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
15830         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
15831         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
15832         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
15833         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
15834
15835 2004-01-06  Eric Christopher  <echristo@redhat.com>
15836
15837         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
15838         (DWARF2_DEBUGGING_INFO): Define.
15839         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
15840         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
15841         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
15842         for irix as.
15843         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
15844         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
15845         * config/mips/iris5gas.h: Ditto.
15846         (DBX_DEBUGGING_INFO): Remove.
15847         (DWARF2_DEBUGGING_INFO): Ditto.
15848         (MIPS_DEBUGGING_INFO): Ditto.
15849         (PREFERRED_DEBUGGING_TYPE): Ditto.
15850         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
15851         (PREFERRED_DEBUGGING_TYPE): Ditto.
15852         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
15853         * config/mips/elf64.h: Ditto.
15854
15855 2004-01-06  Jan Hubicka  <jh@suse.cz>
15856
15857         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
15858         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
15859
15860 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
15861
15862         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
15863         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
15864         * config/rs6000/darwin-ldouble.c: New.
15865
15866         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
15867         for constants.
15868         (constant_subword): Delete.
15869         * rtl.h (constant_subword): Delete prototype.
15870         (immed_double_const): Is not in varasm.c.
15871         * simplify-rtx.c (simplify_immed_subreg): New.
15872         (simplify_subreg): Use simplify_immed_subreg.
15873
15874         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
15875         than trying to generate RTL directly.
15876         (fix_trunctfsi2): Use expand_fix rather than trying to generate
15877         RTL directly.
15878
15879         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
15880
15881 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
15882
15883         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
15884         function into a separate macro.
15885         (read_only_data_section): Add void argument.
15886         (private_data_section): Same.
15887         (read_only_private_data_section): Same.
15888         (toc_section): Same.
15889
15890 2004-01-06  Jan Hubicka  <jh@suse.cz>
15891
15892         * invoke.texi:  Remove typo in last change.
15893
15894         PR target/10301
15895         * config.gcc: Accept opteron and athlon-64 as variants
15896         of k8.
15897         * i386.c (override_options): Likewise.
15898         * invoke.texi (i386 -mtune): Expand documentation.
15899
15900 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
15901
15902         * alias.c: Fix comment typos.
15903         * builtins.c: Likewise.
15904         * cfg.c: Likewise.
15905         * df.c: Likewise.
15906         * dominance.c: Likewise.
15907         * dwarf2out.c: Likewise.
15908         * emit-rtl.c: Likewise.
15909         * expr.c: Likewise.
15910         * final.c: Likewise.
15911         * fold-const.c: Likewise.
15912         * gcse.c: Likewise.
15913         * genattrtab.c: Likewise.
15914         * genrecog.c: Likewise.
15915         * gensupport.c: Likewise.
15916         * ggc-zone.c: Likewise.
15917         * integrate.c: Likewise.
15918         * local-alloc.c: Likewise.
15919         * loop.c: Likewise.
15920         * recog.c: Likewise.
15921         * regmove.c: Likewise.
15922         * reg-stack.c: Likewise.
15923         * reorg.c: Likewise.
15924         * rtlanal.c: Likewise.
15925         * rtl.h: Likewise.
15926         * sched-ebb.c: Likewise.
15927         * simplify-rtx.c: Likewise.
15928         * toplev.c: Likewise.
15929         * varasm.c: Likewise.
15930
15931 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
15932
15933         * doc/install.texi: Fix typos.
15934         * doc/invoke.texi: Likewise.
15935         * doc/md.texi: Likewise.
15936
15937 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15938
15939         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
15940
15941 2004-01-06  Jan Hubicka  <jh@suse.cz>
15942
15943         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
15944         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
15945         of MMX_REGPARM.
15946         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
15947         add MMX_REGPARM.
15948         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
15949         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
15950         (MMX_REGPARM_MAX): Similarly for -mmmx.
15951
15952 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
15953
15954         * config/sh/linux.h: Fix comment formatting.
15955         * config/sh/netbsd-elf.h: Likewise.
15956         * config/sh/sh.c: Likewise.
15957         * config/sh/sh.h: Likewise.
15958         * config/sh/vxworks.h: Likewise.
15959
15960 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
15961
15962         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
15963         * toplev.c (output_file_directive): Don't use
15964         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
15965
15966 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
15967
15968         * toplev.c: Fix broken checkin of 2003-12-30.
15969
15970 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
15971
15972         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
15973         (USING_MMAP): We don't support non-mmap.
15974         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
15975         large objects.
15976         (struct page_entry): Remove bytes_free.
15977         (struct page_table_chain): Remove.
15978         (struct globals): Remove page_table member.
15979         (loookup_page_table_entry): Function deleted.
15980         (set_page_table_entry): Ditto.
15981         (ggc_allocated_p): No longer need page table lookups.
15982         (ggc_marked_p): Ditto.
15983         (alloc_small_page): Don't care about bytes_free anymore.
15984         (alloc_large_page): Round up size.
15985         (ggc_alloc_zone_1): Mark large objects as such, and calculate
15986         their size the new way.
15987         Remove page table lookups and setting.
15988         (ggc_get_size): Calculate large object size the new way.
15989         (sweep_pages): Redo to account for fact that we no longer have
15990         bytes_free.
15991         (ggc_collect): No longer need to reincrement bytes_free.
15992         (ggc_pch_alloc_object): Handle new large objects properly.
15993         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
15994
15995 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
15996
15997         * doc/invoke.texi: Remove a page break.
15998
15999 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16000
16001         * config/avr/avr.c (avr_output_function_prologue): Remove an
16002         extra pair of curly braces.
16003
16004 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16005
16006         * config/mn10300/mn10300.c: Fix comment formatting.
16007         * config/mn10300/mn10300.h: Likewise.
16008
16009 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16010
16011         * tree.h: Update documentation on nothrow_flag.
16012         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
16013         types.
16014
16015 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16016
16017         * doc/invoke.texi: Remove traces of dead ports.
16018
16019 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16020
16021         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
16022         option.
16023
16024 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16025
16026         PR target/12945
16027         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
16028         counter labels.
16029         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
16030         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
16031         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
16032         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
16033         (mips_symbol_insns): Don't trust the local/global classification.
16034         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
16035         (override_options): Make -mabicalls -fno-unit-at-a-time imply
16036         -mno-explicit-relocs.
16037         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
16038         between local and global symbols.
16039
16040 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16041
16042         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
16043         (mips_preferred_reload_class): Declare.
16044         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
16045         (EXTRA_CONSTRAINT): Update accordingly.
16046         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
16047         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
16048         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
16049         mips_dangerous_for_la25_p.
16050         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
16051         if mips_dangerous_for_la25_p.
16052
16053 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
16054
16055         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
16056         warning.
16057
16058 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
16059
16060         * configure.ac: Use AC_PROG_CPP_WERROR.
16061         * configure: Regenerate.
16062
16063 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
16064
16065         * .cvsignore: Add autom4te.cache.
16066
16067 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
16068
16069         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
16070         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
16071         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
16072         then architecture options, then ABI options.  General rewording.
16073
16074 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
16075
16076         PR c/3414
16077         * doc/extend.texi: Clarify definition of malloc attribute.
16078
16079 2004-01-04  Jan Hubicka  <jh@suse.cz>
16080
16081         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
16082         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
16083         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
16084         (cgraph_inline_p): Add extra argument reason.
16085         * cgraphunit.c: Minor formating fixes.
16086         cgraph_first_inlined_callee): New functions.
16087         (record_call_1): Record builtins too.
16088         (cgraph_analyze_function): Update inline_failed messages.
16089         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
16090         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
16091         (cgraph_check_inline_limits): Likewise; Add argument reason.
16092         (cgraph_set_inline_failed): New static function.
16093         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
16094         reasons.
16095         (cgraph_inline_p): Add new argument reason.
16096         * tree-inline.c (expand_call_inline):  Update warning.
16097
16098 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
16099
16100         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
16101         with modern equivalents.
16102         * configure: Regenerate.
16103
16104         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
16105         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
16106         * configure: Regenerate.
16107
16108         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
16109
16110         * configure.in: Rename to configure.ac.
16111         * configure.ac: Renamed from configure.in; make minimum necessary
16112         changes for autoconf 2.5x.
16113         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
16114         * configure: Regenerate with autoconf 2.57.
16115
16116 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
16117
16118         * config/mips/linux.h: Fix comment formatting.
16119         * config/mips/mips.c: Likewise.
16120         * config/mips/mips.h: Likewise.
16121         * config/mips/mips.md: Likewise.
16122         * config/mips/netbsd.h: Likewise.
16123         * config/mips/windiss.h: Likewise.
16124
16125 2004-01-02  Richard Henderson  <rth@redhat.com>
16126
16127         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
16128         for sse and 387; add suppression for mmx.
16129
16130 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
16131
16132         * loop.c (loop_optimize): Free all loops_info's mems.
16133
16134         * c-typeck.c (finish_init): Free spelling_base before
16135         setting it again.
16136
16137         * cfgloop.c (flow_loops_find): Always free the sbitmap
16138         headers.
16139
16140         * predict.c (estimate_probability): Free bbs after being
16141         done with it.
16142
16143 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16144
16145         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
16146         const_8bit_operand and call_address_operand.
16147
16148 2004-01-02  Jan Hubicka  <jh@suse.cz>
16149
16150         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
16151         when there is nothing to inline but warnings are requested.
16152         (cgraph_decide_inlining):  Fix memory leak.
16153
16154 2004-01-02  Jan Hubicka  <jh@suse.cz>
16155
16156         * expr.c (store_constructor):  Fix pasto in previous patch.
16157
16158 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16159
16160         * config/i386/cygming.h: Fix comment formatting.
16161         * config/i386/djgpp.h: Likewise.
16162         * config/i386/gthr-win32.c: Likewise.
16163         * config/i386/i386-interix.h: Likewise.
16164         * config/i386/i386.c: Likewise.
16165         * config/i386/i386.h: Likewise.
16166         * config/i386/openbsd.h: Likewise.
16167         * config/i386/winnt.c: Likewise.
16168         * config/i386/xm-mingw32.h: Likewise.
16169
16170 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
16171
16172         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
16173         copyright and last modification dates.
16174
16175 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
16176
16177         * doc/install.texi (Specific): Mention x86_64.
16178
16179 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
16180
16181         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
16182         Call force_operand on plus_constant result.
16183
16184 2004-01-01  Jan Hubicka  <jh@suse.cz>
16185
16186         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
16187         * expr.c (store_constructor): Use vec_init pattern.
16188         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
16189         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
16190         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
16191         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
16192         New patterns.
16193         (sse2_unpc?pd): Fix pattern.
16194         (sse2_movlpd): Kill.
16195         (sse2_movsd): Deal with movlpd too.
16196         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
16197         (ix86_expand_vector_init): New.
16198         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
16199         * md.texi (vec_set, vec_extract): Document
16200
16201 2003-12-31  Jan Hubicka  <jh@suse.cz>
16202
16203         PR opt/13473
16204         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
16205         ASM input operands
16206
16207         PR opt/12617
16208         * toplev.c (dump_file_index): Reorder ce3 and bbro.
16209         (dump_file): Likewise.
16210         (rest_of_compilation): Likewise.
16211
16212         PR debug/13367
16213         * cgraph.c (cgraph_function_possibly_inlined):  Even with
16214         flag_really_no_inline we inline always_inline functions.
16215         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
16216         for non-always_inline functions when there is flag_really_no_inline.
16217         (cgraph_decide_inlining): Limit work done when not inlining.
16218         (cgraph_decide_inlining_incrementally): Likewise.
16219         (cgraph_optimize_function): Check whether something got inlined.
16220         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
16221         extern inline functions when not inlining.
16222
16223         * opts.c (decode_options):  Disable crossjumping at -O1
16224         * invoke.texi (-O1): Document change.
16225
16226 See ChangeLog.10 for earlier changes.