OSDN Git Service

* doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2
3         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
4         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
5         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
6         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
7         Add missing (but documented) tree nodes to the index.
8
9 2004-05-30  Steven Bosscher  <stevenb@suse.de>
10
11         PR tree-optimization/14819
12         * builtins.c (fold_builtin_strchr): New.
13         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
14         with fold_builtin_strchr().
15
16 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
17
18         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
19         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
20         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
21         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
22         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
23         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
24         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
25         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
26         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
27         formatting.
28
29 2004-05-30  Steven Bosscher  <stevenb@suse.de>
30
31         * gimplify.c (sort_case_labels): New.  Split out from...
32         (gimplify_switch_expr): ...here.  Use it.
33         * tree-eh.c (lower_try_finally_switch): Sort the labels of
34         the SWITCH_EXPR created here before leaving the function.
35         * tree.c (sort_case_labels): Add prototype.
36
37 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
38
39         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
40         of BOOLEAN_TYPE.
41
42 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
43
44         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
45         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
46         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
47         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
48         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
49         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
50         comment typos.  Follow spelling conventions.
51
52 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
53
54         * gengtype-yacc.y: Add NESTED_PTR token.
55         (option): Record `nested_ptr' option.
56         * gengtype-lex.l: Handle `nested_ptr' keyword.
57         * gengtype.c (walk_type): Process `nested_ptr' option.
58         * gengtype.h (struct nested_ptr_data): New.
59         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
60         * stringpool.c (struct string_pool_data): Make 'entries' point to
61         ht_identifier instead of tree.
62         (gt_pch_save_stringpool): Don't adjust pointers.
63         (gt_pch_restore_stringpool): Call ht_load.
64
65 2004-05-29  Jason Merrill  <jason@redhat.com>
66
67         * gimplify.c (gimplify_expr): Don't build a statement list
68         if no gimplification was necessary.
69
70 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
71
72         * pretty-print.c (pp_base_format_text): Support %< instead of %`
73         and %> as well as %'.
74         * c-format.c: Use %< and %>.
75         (gcc_diag_char_table, gcc_cdiag_char_table,
76         gcc_cxxdiag_char_table): Update.
77
78 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
79
80         * c-typeck.c (common_type): Correct comment.
81
82 2004-05-29  Peter Barada  <peter@the-baradas.com>
83
84         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
85         * config/m68k/m68k.c (const_method): Likewise.
86         * config/m68k/m68k.c (const_int_cost): Likewise.
87         * config/m68k/m68k.c (const_int_cost): Likewise.
88         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
89
90 2004-05-29  Peter Barada  <peter@the-baradas.com>
91
92         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
93         addressing.
94         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
95         movsi,movhi,movqi insn patterns.
96
97 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
98
99         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
100
101         PR target/15720
102         * config/darwin.c (machopic_indirect_call_target): Copy
103         the SYMBOL_REF_DECL from the original RTX for the new
104         stub RTX.
105
106 2004-05-28  DJ Delorie  <dj@redhat.com>
107
108         * stor-layout.c (place_field): Revert erroneous commit.
109
110 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
111
112         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
113         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
114         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
115         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
116         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
117         vec_ste): Remove type checks for integral parameters and literals
118         from '..._args_eq' macros.
119
120 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
121
122         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
123
124 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
125
126         * testsuite/g++.dg/charset/function.cc: New.
127
128         * testsuite/gcc.dg/charset/function.c: New.
129
130         * c-decl.c (c_make_fname_decl): Free return value from
131         fname_as_string.
132
133         * cp/decl.c (cp_make_fname_decl): Free return value from
134         fname_as_string.
135
136         * c-common.c (fname_as_string): Translate if necessary.
137
138 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
139
140         * stringpool.c: Add comments to PCH saving/restoring routines.
141
142 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
143
144         * c-common.c (c_estimate_num_insns_1): Kill.
145         (c_estimate_num_insns): Kill.
146         * c-common.h (c_estimate_num_insns): Kill.
147
148         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
149         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
150         Remove comment about not checking for
151         _POSIX_PRIORITY_SCHEDULING.
152         * gthr-posix.c: Likewise.
153
154 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
155             Roger Sayle  <roger@eyesopen.com>
156
157         PR rtl-optimization/15649
158         Add LTGT_EXPR and improve pretty-printing of unordered
159         comparisons.
160         * c-common.c (c_common_truthvalue_conversion):
161         Handle LTGT_EXPR.
162         * c-typeck.c (build_binary_op): Likewise.
163         * dojump.c (do_jump): Likewise.
164         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
165         * predict.c (tree_predict_by_opcode): Likewise.
166         * real.c (real_compare): Likewise.
167         * tree-cfg.c (verify_expr): Likewise.
168         * tree-inline.c (estimate_num_insns_1): Likewise.
169         * tree-pretty-print.c (dump_generic_node): Likewise.
170         Handle ORDERED_EXPR, UNORDERED_EXPR.
171         (op_symbol): Print unordered comparisons differently
172         than ordered ones.
173         * tree.def (LTGT_EXPR): New '<' tree code.
174         * doc/c-tree.texi (Expressions): Document floating-point
175         comparison nodes.
176
177         Fold comparisons between floating point values.
178         * fold-const.c (enum comparison_code): New, from
179         #define'd constants.  Define compcodes for unordered
180         comparisons and for invalid transformations.
181         (invert_tree_comparison): Add "honor_nans" parameter.
182         (fold_truthop): Revamp to work on floating-point types too.
183         (comparison_to_compcode): Support unordered comparisons.
184         Use new enum comparison_code.
185         (compcode_to_comparison): Likewise.
186         (combine_compcodes): New function.
187         (invert_truthvalue): Let invert_tree_comparison decide
188         whether it is valid to fold the comparison.  Fold ORDERED
189         and UNORDERED even if flag_unsafe_math_optimizations is off,
190         and the remaining even if flag_unsafe_math_optimizations
191         is off but we are under -fno-trapping-math.
192         (fold_relational_const): Integer modes do not honor NaNs.
193         
194 2004-05-28  Paul Brook  <paul@codesourcery.com>
195
196         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
197
198 2004-05-28  Paul Brook  <paul@codesourcery.com>
199
200         * config/arm/arm.c (thumb_force_lr_save): New function.
201         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
202         thumb_output_function_prologue): Use it.
203         (thumb_expand_prologue): Set lr_save_eliminated.
204
205 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
206
207         * config/mips/mips.md (extendsidi2): Tie the source and destination
208         of the register alternative.  Split it into nothing.
209
210 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
211
212         * rtl.h (skip_consecutive_labels): Declare.
213         * emit-rtl.c (skip_consecutive_labels): New function.
214         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
215         * jump.c (follow_jumps): Say what null return values mean.
216
217 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
218
219         PR target/13250
220         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
221
222 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
223
224         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
225         libgcc-std.ver.
226         * config/sh/libgcc-std.ver: New file.
227
228 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
229
230         * except.c: Revert change of 2004-05-26.
231         * config/i386/i386.md: Revert change of 2004-05-27.
232
233 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
234
235         * configure.ac: Remove --enable-tree-browser option.
236         Define TREEBROWSER when ac_tree_checking is defined.
237         * configure: Rebuilt.
238
239 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
240
241         * expr.c (store_constructor): Restore sanity check on
242         the size of the type before clearing.
243
244 2004-05-27  Jan Hubicka  <jh@suse.cz>
245
246         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
247
248 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
249
250         * combine.c (gen_binary): Remove.
251         (known_cond, simplify_shift_const
252         find_split_point, combine_simplify_rtx,
253         simplify_if_then_else, simplify_set,
254         simplify_logical, expand_field_assignment,
255         extract_left_shift, force_to_mode,
256         if_then_else_cond, apply_distributive_law,
257         simplify_and_const_int, simplify_shift_const,
258         gen_lowpart_for_combine, simplify_comparison,
259         reversed_comparison): Replace with
260         simplify_gen_binary, simplify_gen_relational or
261         distribute_and_simplify_rtx.
262         (distribute_and_simplify_rtx): New function.
263         * simplify-rtx.c (simplify_binary_operation):
264         Use nonzero_bits to simplify ANDs where we are
265         turning off bits already known to be off in OP0.
266
267 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
268
269         PR target/14478
270         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
271
272 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
273
274         PR middle-end/14084
275         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
276         to size of decl.
277
278 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
279
280         PR/14924
281         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
282
283 2004-05-26  Roger Sayle  <roger@eyesopen.com>
284
285         * tree.h: Fix comment typo.
286
287 2004-05-27  Steven Bosscher  <stevenb@suse.de>
288
289         * gimplify.c (compare_case_labels): New function.
290         (gimplify_switch_expr): Sort case labels, and make sure the
291         last label in the label vector is the default case.
292         * tree-cfg.c (group_case_labels): New function.
293         (build_tree_cfg): Cleanup redundant labels and group case labels
294         before creating edges.
295         (cleanup_dead_labels): Handle GOTO_EXPRs.
296         (find_case_label_for_value): Use a binary search to find the
297         case label for the given value.
298         * tree-gimple.c: Mention that labels are sorted, and that the
299         last label must be the default.
300
301 2004-05-27  Jan Hubicka  <jh@suse.cz>
302
303         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
304
305 2004-05-27  Jan Hubicka  <jh@suse.cz>
306
307         * i386.md (UNSPECV_EH_RETURN): Kill.
308         (eh_return): Use jump_insn.
309         (eh_return_si, eh_return_di): Change pattern to jump instruction.
310
311 2004-05-26  Jan Hubicka  <jh@suse.cz>
312
313         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
314         not loop optimizing.
315
316 2004-05-26  Jan Hubicka  <jh@suse.cz>
317
318         * except.c (can_throw_internal):  Notice RESX instructions.
319
320 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
321
322         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
323         of the two sizes to assemble_integer.
324
325 2004-05-25  Paul Brook  <paul@codesourcery.com>
326
327         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
328         pointless #ifdef.
329
330 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
331
332         * Makefile.in (top_builddir): Define to .
333
334 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
335
336         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
337         top-level detects, except when in-tree ld is being cross-built.
338         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
339         then AS only if target is host.
340         * configure: Rebuilt.
341
342 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
343
344         * global.c (global_alloc): Call make_accurate_live_analysis.
345         (record_one_conflict): Remove dead code.
346         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
347         (bb_info): New structure.
348         (BB_INFO, BB_INFO_BY_INDEX): New macros.
349         (allocate_bb_info, free_bb_info, mark_reg_change,
350         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
351         modify_bb_reg_pav, calculate_reg_pav,
352         make_accurate_live_analysis): New functions.
353         
354 2004-05-25  Devang Patel  <dpatel@apple.com>
355
356         * alias.c (init_alias_analysis): Use ggc_calloc instead of
357         xrealloc.
358         (end_alias_analysis): Use ggc_free instead fo free.
359         
360 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
361
362         PR target/15546
363         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
364         as needed to be outputted.
365
366 2004-05-25  Jan Hubicka  <jh@suse.cz>
367
368         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
369
370 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
371         Mostafa Hagog  <mustafa@il.ibm.com>
372
373         * Makefile.in (modulo-sched.o, ddg.o): New.
374         * ddg.h, ddg.c, modulo-sched.c: New files.
375         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
376         internals to "dupicate_insn".
377         (duplicate_insn): New function.
378         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
379         declarations.
380         * common.opt (fmodulo-sched): New flag.
381         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
382         Remove static and forward declaration.
383         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
384         functions.
385         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
386         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
387         declarations.
388         * flags.h (flag_modulo_sched): New flag.
389         * opts.c (common_handle_option): Handle modulo-sched flag.
390         * params.def (max-sms-loop-number, sms-max-ii-factor,
391         sms-dfa-history, sms-loop-average-count-threshold): New
392         parameters.
393         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
394         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
395         parameters.
396         * passes.c ("sms", "sms-vcg"): New dumps.
397         (rest_of_handle_sched): Call sms_schedule.
398         * rtl.h (sms_schedule): New declaration.
399         * timevar.def (TV_SMS): New.
400         * toplev.c (flag_modulo_sched): Initialize.
401         (f_options): Handle -fmodulo-sched option.
402         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
403         * docs/passes.texi: Document new SMS pass.
404
405 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
406
407         * Makefile.in (OBJS): Add rtlhooks.o.
408         (rtlanal.o): Depend on function.h.
409         (cse.o): Depend on rtlhooks-def.h.
410         (combine.o): Depend on rtlhooks-def.h.
411         (rtlhooks.o): New rule.
412         * combine.c: Include rtlhooks-def.h.
413         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
414         num_sign_bit_copies, cached_num_sign_bit_copies,
415         num_sign_bit_copies1): Move most of the code to rtlanal.c.
416         (reg_nonzero_bits_for_combine,
417         reg_num_sign_bit_copies_for_combine): New functions holding
418         the remnants of the above.
419         (combine_rtl_hooks): New.
420         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
421         * cse.c: Include rtlhooks-def.h.
422         (cse_rtl_hooks): New.
423         (cse_main): Set rtl_hooks instead of gen_lowpart.
424         * emit-rtl.c (gen_lowpart): Remove.
425         (gen_lowpart_general): Move to rtlhooks.c.
426         * rtl.h (nonzero_bits, num_sign_bit_copies,
427         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
428         (gen_lowpart_general): Remove.
429         (gen_lowpart): Temporarily redefine as a macro.
430         * rtlanal.c: Include function.h.
431         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
432         num_sign_bit_copies, cached_num_sign_bit_copies,
433         num_sign_bit_copies1): New, from combine.c.
434         * rtlhooks.c: New file. 
435
436 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
437
438         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
439         to support 32-bit -mint8 mode.
440
441         * doc/invoke.texi (-mint8): Added documentation for the -mint8
442         option in the AVR architecture. 
443
444 2004-05-24  Mike Stump  <mrs@apple.com>
445
446         * doc/install.texi: Document that dejagnu 1.4.4 is required.
447
448 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
449
450         * intl.h (open_quote, close_quote): New.
451         * intl.c (open_quote, close_quote): New.
452         (gcc_init_libintl): Set them.
453         * pretty-print.c: Include "intl.h".
454         (pp_base_format_text): Support 'q' format flag and %` and %'
455         formats.  Use ' instead of ` in comments.
456         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
457         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
458         foramt_types_orig): Describe these new formats.
459         (decode_format_attr, check_function_format,
460         check_format_info_main): Use these new formats.
461         (status_warning): Use ATTRIBUTE_GCC_DIAG.
462         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
463         check these formats to 3.5.
464
465 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
466
467         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
468         (BACKEND): Reflect this.
469         (LIBDEPS): Move CPPLIB before LIBIBERTY.
470         (LIBS): Likewise.
471
472 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
473
474         PR tree-optimization/14197
475         * builtins.c: Include "tree-gimple.h"
476         (readonly_data_expr): Use get_base_address.  Make sure to call 
477         decl_readonly_section only on trees it can handle.
478         * tree-gimple.c (get_base_address): Accept STRING_CST and
479         CONSTRUCTOR expressions.
480         * Makefile.in: Update dependencies.
481
482 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
483
484         Move libcpp to the toplevel.
485         * Makefile.in: Remove references to libcpp files,
486         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
487         and change hashtable.h to that.
488         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
489         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
490         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
491         * configure: Regenerate.
492         * config.in: Regenerate.
493         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
494         * cppcharset.c: Removed.
495         * cpperror.c: Removed.
496         * cppexp.c: Removed.
497         * cppfiles.c: Removed.
498         * cpphash.c: Removed.
499         * cpphash.h: Removed.
500         * cppinit.c: Removed.
501         * cpplex.c: Removed.
502         * cpplib.c: Removed.
503         * cpplib.h: Removed.
504         * cppmacro.c: Removed.
505         * cpppch.c: Removed.
506         * cpptrad.c: Removed.
507         * cppucnid.h: Removed.
508         * cppucnid.pl: Removed.
509         * cppucnid.tab: Removed.
510         * hashtable.c: Removed.
511         * hashtable.h: Removed.
512         * line-map.c: Removed.
513         * line-map.h: Removed.
514         * mkdeps.c: Removed.
515         * mkdeps.h: Removed.
516         * stringpool.h: Include symtab.h instead of hashtable.h.
517         * tree.h: Include symtab.h instead of hashtable.h.
518         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
519
520 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
521
522         * gcc.c (struct prefix_list): Add forward declaration.
523         (do_spec_path): New function, extracted from...
524         (do_spec_1) <'D'>: ... here.  Drop support for
525         SPACE_AFTER_L_OPTION.
526         (do_spec_1) <'I'>: Use do_spec_path.
527         (process_command): Do not store the 'include' suffix
528         in include_prefixes.
529         * system.h: Poison SPACE_AFTER_L_OPTION.
530
531 2002-05-23  Roger Sayle  <roger@eyesopen.com>
532
533         * fold-const.c (non_lvalue): Explicitly list the tree codes that
534         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
535
536 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
537
538         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
539         Update based on printed manual.  Enable setting of offsets for
540         FSFPRINT and move it to gcc-common.texi.
541         * doc/gcc.texi: Update FSF printing details.
542         * doc/gccint.texi: Remove FSF printing details.
543
544 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
545
546         * config/rs6000/t-rs6000: Remove the disabling -Werror.
547
548 2004-05-22  Roger Sayle  <roger@eyesopen.com>
549
550         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
551         expand_builtin_strrchr, expand_builtin_strpbrk,
552         expand_builtin_mempcpy, expand_builtin_memcmp,
553         expand_builtin_strcmp, expand_builtin_strncmp,
554         expand_builtin_strcat, std_expand_builtin_va_start,
555         std_expand_builtin_va_arg, expand_builtin_va_copy,
556         expand_builtin_signbit, fold_builtin_cabs,
557         fold_builtin_logarithm, fold_builtin_mempcpy,
558         fold_builtin_signbit, fold_builtin_isascii,
559         fold_builtin_toascii, fold_builtin_isdigit,
560         fold_builtin_1, build_function_call_expr,
561         simplify_builtin_strchr, simplify_builtin_strrchr,
562         simplify_builtin_strpbrk, simplify_builtin_strncpy,
563         simplify_builtin_memcmp, simplify_builtin_strcmp,
564         simplify_builtin_strncmp, simplify_builtin_strncat,
565         simplify_builtin_strspn, simplify_builtin_strcspn,
566         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
567         to build with calls to build2, build3 or omit_one_operand.
568
569 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
570
571         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
572         section when generating EABI code.
573
574 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
575
576         PR 15546
577         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
578         Call mark_decl_referenced on the SYMBOL_REF_DECL.
579
580 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
581
582         * c-common.c (c_common_truthvalue_conversion): Handle
583         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
584         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
585         i.e. set the type to truthvalue_type_node and return.
586
587 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
588
589        * tree.h (struct tree_decl): Add possibly_inlined bit.
590         (DECL_POSSIBLY_INLINED): New accessor macro.
591         * cgraph.h: Remove declaration of cgraph_inline_hash.
592         * cgraph.c: Remove definition of cgraph_inline_hash.
593         (hash_node): Revert to hashing DECL_UID.
594         (eq_node): Take two pointers to cgraph_node structures.
595         Compare DECL_UIDs.
596         (cgraph_remove_node): Pass the node directly to htab_find_slot.
597         (cgraph_varpool_hash_node): Rename hash_varpool_node;
598         hash on DECL_UID.
599         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
600         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
601         (cgraph_node): Allocate a temporary node on the stack, fill in
602         its DECL field, and pass that to htab_find_slot.
603         (cgraph_varpool_node): Likewise.
604         (cgraph_function_possibly_inlined_p): If global info is ready,
605         return the DECL_POSSIBLY_INLINED bit.
606         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
607         instead of mucking with cgraph_inline_hash.
608
609 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
610
611         * doc/contrib.texi: Add g77 contributors.
612
613 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
614
615         * calls.c (initialize_argument_information): Forbid sibcalls if a
616         callee-copied argument is stored in the current function's frame.
617
618 2004-05-22  Eric Christopher  <echristo@redhat.com>
619
620         * fix-header.c (read_scan_file): Update for add_path change.
621
622 2004-05-22  Ben Elliston  <bje@au.ibm.com>
623
624         * c.opt (Wmissing-include-dirs): New.
625         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
626         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
627         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
628         * c-incpath.h (add_path): Add fourth (bool) argument.
629         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
630         (add_standard_paths): Likewise.
631         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
632         is used and the directory was user-supplied via -I.
633         (add_path): Set p->user_supplied_p.  Remove duplicated code by
634         using add_cpp_dir_path ().
635         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
636         (struct cpp_dir): Add user_supplied_p.
637         * doc/invoke.texi (Warning Options): Document new option.
638
639 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
640
641         * fold-const.c (fold_read_from_constant_string): Convert result to
642         requested type.
643
644 2004-05-21  Richard Henderson  <rth@redhat.com>
645
646         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
647         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
648         Don't mark VA_ARG_EXPRs volatile here.
649         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
650
651 2004-05-21  Richard Henderson  <rth@redhat.com>
652
653         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
654         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
655
656 2004-05-21  Roger Sayle  <roger@eyesopen.com>
657
658         * fold-const.c (fold, fold_relational_hi_lo,
659         nondestructive_fold_binary_to_constant,
660         fold_read_from_constant_string): Use fold_convert instead of convert.
661         * builtins.c (simplify_builtin, simplify_builtin_strstr,
662         simplify_builtin_strchr, simplify_builtin_strrchr,
663         simplify_builtin_strpbrk): Use fold_convert instead of convert.
664
665 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
666
667         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
668         is NULL.
669
670 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
671
672         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
673         override sparc.h definition.
674
675 2004-05-20  Roger Sayle  <roger@eyesopen.com>
676
677         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
678         get_unwidened, get_narrower): Replace build with build2.
679         * fold-const.c (negate_expr, associate_trees, size_binop,
680         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
681         pedantic_omit_one_operand, distribute_bit_expr,
682         make_bit_field_ref, optimize_bit_field_compare,
683         decode_field_reference, range_binop, make_range,
684         build_range_check, fold_range_test, fold_truthop,
685         optimize_minmax_comparison, extract_muldiv_1,
686         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
687         fold_inf_compare, fold_single_bit_test, fold,
688         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
689         Likewise replace build with either build2 or build3.
690
691 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
692
693         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
694         * calls.c (prepare_call_address): Don't test
695         NO_RECURSIVE_FUNCTION_CSE.
696         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
697         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
698         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
699         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
700         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
701         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
702         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
703         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
704         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
705         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
706         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
707         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
708         Likewise.
709         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
710         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
711         * doc/tm.texi (Costs): Remove documentation for
712         NO_RECURSIVE_FUNCTION_CSE.
713
714 2004-05-20  Paul Brook  <paul@codesourcery.com>
715
716         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
717         * unwind-dw2.c (extract_cie_info): Ditto.
718         (_Unwind_FrameState): Change retaddr_column to word type.
719
720 2004-05-20  Roger Sayle  <roger@eyesopen.com>
721
722         PR middle-end/3074
723         * fold-const.c (strip_compound_expr): Delete function.
724         (count_cond): Delete function.
725         (fold_binary_op_with_conditional_arg): Only perform transformations
726         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
727         when a is constant.  This greatly simplifies this routine.
728
729         * tree.c (saved_expr_p): Delete function.
730         * tree.h (saved_expr_p): Delete function prototype.
731
732 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
733
734         * common.opt (ftree-loop-optimize): Remove.
735
736 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
737
738         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
739         (NM_FOR_TARGET): Use := and $(shell).
740         (mainversion): Remove unused variable.
741
742 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
743
744         * reorg.c (delete_from_delay_slot): If we have a barrier after the
745         sequence containing the insn to be deleted, always reemit it.
746
747 2004-05-20  Richard Henderson  <rth@redhat.com>
748
749         PR 15454
750         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
751         * function.c (expand_function_start): Expand static_chain_decl by hand.
752         * gimplify.c (create_tmp_var_name): Export.
753         * tree-gimple.h (create_tmp_var_name): Declare.
754
755 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
756
757         * rs6000.c (print_operand) <case 'z'>: Call
758         mark_decl_referenced before assemble_name.
759
760 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
761
762         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
763         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
764         (cgraph_varpool_node): Hash on the pointer to the decl, not
765         the DECL_UID.  Fixes 64-bit bootstrap failure.
766
767 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
768
769         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
770         we don't earlyclobber operands used in the second insn.
771
772 2004-05-20  Steven Bosscher  <stevenb@suse.de>
773
774         * tree-mudflap.c: Formatting fixes.
775
776 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
777
778         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
779         * gengtype.c (open_base_files): Include reload.h in ifiles.
780         * reload.h (reg_equiv_memory_loc_varray): Declare.
781         * reload1.c (reg_equiv_memory_loc_varray): New variable.
782         (init_reload): Initialize it.
783         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
784         reg_equiv_memory_loc_varray to size 0.
785         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
786         growing reg_equiv_memory_loc_varray to the desired size.
787         * passes.c (rest_of_handle_old_regalloc): Likewise.
788         * reload.c: Amend comment on calling init_reload.
789
790 2004-05-20  Nick Clifton  <nickc@redhat.com>
791
792         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
793         with 'TRAMP' in the body of the macro definition.
794
795 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
796
797         PR target/15383
798         * config/ia64/ia64.c (ia64_expand_compare): Don't check
799         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
800         cmptf_libfunc isn't set.
801         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
802         conventions.
803         (ia64_sysv4_init_libfuncs): New.
804
805         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
806         ia64_sysv4_init_libfuncs.
807
808 2004-05-20  Falk Hueffner  <falk@debian.org>
809
810         PR other/15526
811         * libgcc2.c (__mulvsi3): Fix overflow test.
812
813 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
814
815         PR c/14171
816         * reg-stack.c (nan): Rename to ...
817         (not_a_num): Here.
818         (reg_to_stack): Rename nan to not_a_num.
819         (subst_stack_regs_pat): Likewise.
820         (convert_regs_entry): Likewise.
821         (convert_regs_1): Likewise.
822
823         * tree-cfg.c (find_case_label_for_value): Replace call to
824         simple_cst_equal with tree_int_cst_equal.
825
826 2004-05-19  Jeff Law <law@redhat.com>
827
828         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
829         If the operand is for a use, then strip away the SSA_NAME, do not
830         strip away the SSA_NAME for a set.  Never call release_ssa_name.
831         (mark_def_sites): Appropriately pass additional argument to
832         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
833         then set the VDEF_RESULT to the VDEF_OP.
834         (set_def_block): Strip away any SSA_NAME to get to the real
835         underlying variable.
836
837         * tree-ssa-phiopt.c (value_replacement): Handle the case where
838         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
839         BB directly.
840
841 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
842
843         PR c++/15463
844         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
845         result of inverse.
846
847         PR rtl-optimization/15274
848         * loop-iv.c (determine_max_iter, shorten_into_mode,
849         iv_number_of_iterations): Handle constants correctly.
850         * rtl.h (get_mode_bounds): Declaration changed.
851         * stor-layout.c (get_mode_bounds): Return a constant suitable for
852         the target mode.
853
854         PR rtl-optimization/14692
855         * loop-unswitch.c (may_unswitch_on): Try folding the result.
856         (unswitch_single_loop): Work correctly when may_unswitch_on
857         returns a folded constant.
858
859         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
860         * simplify-rtx.c (simplify_const_relational_operation): Optimize
861         comparisons with mode bounds.
862
863         * function.c (struct temp_slot): Add new field prev.
864         (free_after_compilation, init_temp_slots): Free new fields.
865         (cut_slot_from_list, insert_slot_to_list,
866         temp_slots_at_level, max_slot_level, move_slot_to_level,
867         make_slot_available): New functions.
868         (assign_stack_temp_for_type, combine_temp_slots,
869         find_temp_slot_from_address, preserve_temp_slots,
870         preserve_rtl_expr_result, free_temp_slots,
871         free_temps_for_rtl_expr, pop_temp_slots): Work with
872         the new structure of lists.
873         (mark_all_temps_used): Removed.
874         * function.h (struct function): Field x_temp_slots
875         replaced by x_used_temp_slots and x_avail_temp_slots.
876         (temp_slots): Replaced by ...
877         (used_temp_slots, avail_temp_slots): New.
878         * tree.h (mark_all_temps_used): Declaration removed.
879
880         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
881         simplify_using_assignment): Take the expression out of
882         the expr_list wrapper.
883
884         * loop-iv.c (iv_number_of_iterations): Improve clasification of
885         infinite loops.
886
887 2004-05-19  Roger Sayle  <roger@eyesopen.com>
888
889         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
890         costs should be based on code size when optimizing for size.
891
892 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
893
894         * fold-const.c: Remove non-printable character 160.
895
896 2004-05-19  Nick Clifton  <nickc@redhat.com>
897
898         * doc/invoke.texi (ARM Options): Fix typo.
899         Remove descrption of -mshort-load-bytes and
900         -mno-short-load-bytes.
901
902         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
903         missing parenthesis.
904         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
905         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
906
907 2004-05-19  Steven Bosscher  <stevenb@suse.de>
908
909         * expr.c (store_constructor): Build loop start and end by hand
910         instead of via loop functions from stmt.c.
911         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
912         Remove the code to expand them.
913
914         * stmt.c (loop_stack): Remove this and everything related.
915         (struct nesting, enum nesting_desc): Update.
916         (expand_fixup): Likewise.
917         (expand_loop_start, expand_start_loop_continue_elsewhere,
918         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
919         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
920         expand_exit_loop_if_false, expand_exit_loop_top_cond,
921         expand_exit_something): Remove.
922         * tree.h: Remove prototypes.
923
924 2004-05-18  Mike Stump  <mrs@apple.com>
925             Devang Patel  <dpatel@apple.com>
926
927         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
928         if this label is for eh.
929         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
930         * config/darwin.c (darwin_emit_unwind_label): Likewise.
931         * dwarf2out.c (output_call_frame_info): Likewise.
932         * output.h (default_emit_unwind_label): Likewise.
933         * target.h (unwind_label): Likewise.
934         * varasm.c (default_emit_unwind_label): Likewise.
935
936         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
937         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
938         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
939         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
940         DEBUG_RANGES_SECTION): Define.
941
942 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
943
944         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
945         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
946         (cgraph_varpool_node):
947         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
948         (cgraph_function_possibly_inlined_p): Use the decl itself for
949         the key, not DECL_ASSEMBLER_NAME.
950         (change_decl_assembler_name): No need to muck with the hash tables.
951         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
952         Delete.
953         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
954         for the key, not DECL_ASSEMBLER_NAME.
955         * cgraph.h: Remove prototypes of deleted functions.
956         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
957         (mark_decl_referenced): New function.
958         * tree.h: Prototype mark_decl_referenced.
959         * final.c (output_addr_const) <case SYMBOL_REF>: Call
960         mark_decl_referenced before assemble_name.
961         * c-decl.c (finish_decl): Use mark_decl_referenced.
962
963 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
964             Jeff Law <law@redhat.com>
965
966         * tree-ssa-phiopt.c (abs_replacement): New function.
967         (empty_block_p): New function extracted from...
968         (candidate_bb_for_phi_optimization): Break out empty block test.
969         (conditional_replacement): Use empty_block_p.
970         (value_replacement): Similarly.
971
972         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
973         * tree-ssa-phiopt.c: Include flags.h.
974         (conditional_replacement): Remove argument names from prototype.
975         Minor formatting and comment fixes.
976         (tree_ssa_phiopt): If conditional_replacement returns false, then
977         call value_replacement.
978         (value_replacement): New function.
979
980 2004-05-18  Jeff Law  <law@redhat.com>
981
982         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
983         from conditional_replacement.
984         (candidate_bb_for_phi_optimization): Similarly.
985         (conditional_replacement): Use replace_phi_with_stmt and
986         candidate_bb_for_phi_optimization.
987
988         * tree-ssa-phiopt.c: Fix various formatting issues.
989
990 2004-05-18  Steven Bosscher  <stevenb@suse.de>
991
992         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
993         s390_expand_cmpmem): Do not use expand_start_loop and
994         expand_end_loop, instead build the loop manually.
995
996 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
997
998         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
999         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
1000
1001 2004-05-17  Jeff Law  <law@redhat.com>
1002
1003         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
1004         * flags.h (flag_delete_null_pointer_checks): Here.
1005         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
1006         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
1007         (add_phi_arg, remove_phi_arg_num): Similarly.
1008         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
1009         property into PHI nodes.
1010         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
1011         (record_equivalences_from_phis): If all PHI arguments are known to be
1012         nonzero, then the result must be nonzero as well.
1013         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
1014         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
1015         appropriately.  Walk the USE-DEF chains and propagate nonzero property
1016         as appropriate.
1017         * tree.h (PHI_ARG_NONZERO): Define.
1018         (phi_arg_d): Add nonzero flag.
1019
1020 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
1021
1022         * f: Entire directory removed
1023
1024         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
1025         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
1026         (g77_integer_type_node, g77_uinteger_type_node)
1027         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
1028         * c-common.c (c_common_nodes_and_builtins): Do not initialize
1029         the above set of variables.
1030
1031         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
1032         * doc/invoke.texi, doc/standards.texi: Remove cross-references
1033         to g77 manual.
1034
1035 2004-05-17  Steven Bosscher  <stevenb@suse.de>
1036
1037         PR tree-optimization/15438
1038         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
1039         attributed functions as pure or const.
1040
1041 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
1042
1043         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
1044         from source code with errors.
1045
1046 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
1047
1048         Enable tree browser for all front ends.
1049         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
1050         (BACKEND): ...to here.
1051
1052 2004-05-17  Jan Hubicka  <jh@suse.cz>
1053
1054         * i386.c (construct_container): Do not produce BLKmode registers.
1055         (classify_argument): Properly compute alignment of complex types.
1056
1057 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
1058
1059         PR target/15084
1060         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
1061         and renamed to movdi_insv_1_rex64.
1062         (insv): Support SImode for 32bit and DImode for 64bit.
1063
1064 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1065
1066         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
1067         (TARGET_SWITCHES): Remove debugg.
1068         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
1069         TARGET_64BIT.
1070         (subdi3): Replace the define_expand with a define_insn, the latter
1071         renamed from subdi3_internal_3.
1072         (negdi2): Likewise negdi2_internal_2.
1073         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
1074         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
1075         and associated define_splits.
1076         (adddi3_internal): Renamed from adddi3_internal_3.
1077         (ashldi3_internal): Likewise ashldi3_internal4.
1078         (ashrdi3_internal): Likewise ashrdi3_internal4.
1079         (lshrdi3_internal): Likewise lshrdi3_internal4.
1080
1081 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1082
1083         * optabs.c (expand_unop): Try implementing negation using subtraction
1084         from zero.
1085
1086 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1087
1088         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
1089         SAR register.
1090
1091 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
1092
1093         PR target/10982
1094         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
1095         (ne_zeroextractsi_shifted): New pattern.
1096         (ite_ne_zeroextractsi): New pattern.
1097         (ite_ne_zeroextractsi_shifted): New pattern.
1098
1099 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1100
1101         * c-gimplify.c (c_genericize):
1102         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
1103         * c-parse.in <expr_no_commas>: Likewise.
1104         <if_prefix>: Likewise.
1105         <select_or_iter_stmt>: Likewise.
1106         * expr.c (expand_var, expand_expr_real_1): Likewise.
1107         * expr.h (expand_expr): Make it a static inline function.
1108         Move prototype for expand_expr_real up before this.
1109         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
1110         Likewise.
1111         * gimplify.c (gimple_boolify, gimplify_addr_expr,
1112         gimplify_asm_expr, gimplify_expr): Likewise.
1113         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
1114         dump_function_to_file): Likewise.
1115         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
1116         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
1117         * tree-into-ssa.c (dump_tree_ssa): Likewise.
1118         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
1119         Likewise.
1120         * tree-optimize.c (execute_one_pass): Likewise.
1121         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
1122         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
1123
1124         * objc/objc-act.c (objc_build_try_enter_fragment,
1125         objc_build_try_epilogue, objc_build_catch_stmt,
1126         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
1127         with lang_hooks.foo ().
1128
1129 2004-05-15  Roger Sayle  <roger@eyesopen.com>
1130
1131         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
1132         that simplify_builtin doesn't destructively modify its argument.
1133
1134 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1135
1136         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
1137         implementations for ARM and Thumb.
1138         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
1139
1140 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
1141
1142         * prefix.c (update_path): Replace PREFIX with KEY only
1143         when it matches a full directory name in PATH.
1144
1145 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1146
1147         * arm.h (TARGET_APCS_32): Delete.
1148         (TARGET_MMU_TRAPS): Delete.
1149         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
1150         define __APCS_26__.
1151         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
1152         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
1153         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
1154         (prog_mode_type): Delete.
1155         (PROMOTE_MODE): Always promote unsigned for HImode.
1156         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
1157         (MASK_RETURN_ADDR): Simplify.
1158         * arm.c (arm_prgmode): Delete.
1159         (arm_override_options, arm_gen_rotated_half_load): Simplify.
1160         (print_multi_reg, output_return_instruction): Simplify.
1161         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
1162         (arm_return_addr): Simplify.
1163         * arm.md (prog_mode): Delete.
1164         (conds): Simplify.
1165         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
1166         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
1167         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
1168         (loadhi_shiftpredec): Delete.
1169         (peephole for post-increment on HImode load): Delete.
1170         * arm/crtn.asm: (FUNC_END): Simplify.
1171         * arm/lib1funcs.asm: Remove APCS-26 return macros.
1172         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
1173         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
1174         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
1175         MULTILIB_DEFAULTS as required.
1176         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
1177         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
1178         variables as required.
1179         * doc/invoke.texi (ARM Options): Remove obsolete flags.
1180
1181 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
1182
1183         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
1184         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
1185         count to 8 to handle n_reg > 2.
1186
1187 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1188
1189         * doc/extend.texi: Update WG14 URL.
1190
1191 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1192
1193         * basic-block.h (life_analysis, delete_noop_moves):
1194         Update prototypes.
1195         * bt-load.c (branch_target_load_optimize): Don't take the
1196         insns stream as an argument.  Update the life_analysis calls.
1197         * combine.c (combine_instructions): Update delete_noop_moves
1198         calls.
1199         * flow.c (notice_stack_pointer_modification): Don't take the
1200         insns stream as an argument.  Work on the flow graph.
1201         (life_analysis): Likewise.
1202         (delete_noop_moves): Likewise.
1203         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
1204         (rest_of_handle_life): Update life_analysis call.
1205         (rest_of_compilation): Likewise, and also update
1206         branch_target_load_optimize call.
1207         * ra.c (reg_alloc): Update life_analysis call.
1208         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
1209         the insns stream as an argument.
1210         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
1211         call.
1212         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
1213         prototypes.
1214         * value-profile.c (branch_prob): Update life_analysis call.
1215         * web.c (web_main): Work on the CFG, not on the insns stream.
1216
1217         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
1218         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
1219         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1220
1221 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1222
1223         PR c/15444
1224         * c-format.c (avoid_dollar_number): New function.
1225         (check_format_info_main): Call avoid_dollar_number when operand
1226         numbers might occur but has_operand_number == 0.
1227
1228 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
1229
1230         * arm.md (all peephole2 patterns): Use predicates that validate
1231         register classes as appropriate.
1232
1233 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1234
1235         PR opt/14472
1236         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
1237         ignore type conversions that do not inhibit tail calling.
1238         (find_tail_calls): Likewise.
1239
1240 2004-05-14  Jeff Law  <law@redhat.com>
1241
1242         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
1243         bother marking bypassed virtuals for out-of-ssa.  Instead merge
1244         bypassed virtuals into vars_to_rename just before into-ssa pass.
1245
1246         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
1247         so that it picks up more opportunities to eliminate ABS expressions
1248         or turn them into negations.
1249
1250 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1251
1252         * passes.c (rest_of_handle_null_pointer): Remove.
1253         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
1254         (rest_of_compilation): Likewise.
1255         * rtl.h (delete_null_pointer_checks): Remove prototype.
1256         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
1257         Remove declarations.
1258         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
1259         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
1260         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
1261         expr_reaches_here_p, computing_insn, def_reaches_here_p,
1262         can_disregard_other_sets, handle_avail_expr, classic_gcse,
1263         one_classic_gcse_pass, invalidate_nonnull_info,
1264         delete_null_pointer_checks_1, delete_null_pointer_checks,
1265         expr_reached_here_p_work): Remove.
1266         (gcse_main): Do not perform classic GCSE when optimizing for size.
1267         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
1268         are never used.
1269
1270 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
1271
1272         PR optimization/14466
1273         * tree-complex.c (make_temp): Remove.
1274         (gimplify_val): Replace make_temp with make_rename_temp
1275         and add NULL as the second argument.
1276         (expand_complex_div_wide): Likewise.
1277         * tree-dfa.c (make_rename_temp): New function.
1278         * tree-flow.h (make_rename_temp): Declare.
1279         * tree-sra.c (make_temp): Remove.
1280         (lookup_scalar): Replace make_temp with make_rename_temp.
1281         (create_scalar_copies): Likewise.
1282         * tree-ssa-phiopt.c (conditional_replacement): When we
1283         get non gimple create a temporary variable to hold the
1284         casted expression.
1285
1286 2004-05-14  Paul Brook  <paul@codesourcery.com>
1287
1288         * stor-layout.c (update_alignment_for_field): Use
1289         targetm.align_anon_bitfield.
1290         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
1291         (TARGET_INITIALIZER): Use it.
1292         * target.h (struct gcc_target): Add align_anon_bitfield.
1293         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
1294         (TARGET_ALIGN_ANON_BITFIELD): Define.
1295         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
1296
1297 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
1298
1299         * tree.def (documentation): Remove mention of class 'b'.
1300         (BLOCK): Now in class 'x'.
1301         * c-common.c (verify_tree): Remove case 'b'.
1302         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
1303         * calls.c (calls_function_1): Control cannot get past the switch
1304         when exp is a BLOCK.
1305         * print-tree.c (print_node): Move code for class 'b' to the class
1306         'c'/'x' switch, as case BLOCK.
1307         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
1308         (unsafe_for_reeval, substitute_placeholder_in_expr)
1309         (stabilize_reference_1): Remove case 'b'.
1310         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
1311         of something being 'b' to tests for TREE_CODE of something being
1312         BLOCK.
1313         * tree-ssa-operands.c (get_expr_operands): Likewise.
1314
1315 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1316
1317         * tree-gimple.c: Rename from tree-simple.c.
1318         * tree-gimple.h: Rename from tree-simple.h.
1319         * c-gimplify.c: Rename from c-simplify.c
1320         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
1321         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
1322         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
1323         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
1324         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
1325         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
1326         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
1327         Update.
1328
1329 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
1330
1331         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
1332
1333 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1334
1335         * tree-ssa.c (delete_tree_ssa): XFREE
1336         bitmaps allocated with BITMAP_XMALLOC.
1337
1338         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
1339         idfs_cache at the end of the function.
1340
1341         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
1342         at the end of the function.
1343
1344         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
1345         el at the end of the function.
1346
1347         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
1348         bitmaps allocated with BITMAP_XMALLOC.
1349
1350         * loop-unswitch.c (unswitch_single_loop): Free bbs at
1351         the end.
1352
1353         * final.c (shorten_branches): Free uid_shuid before
1354         reallocating it.
1355
1356         * bb-reoder.c (connect_traces): Free cold_traces at the end.
1357
1358 2004-05-13  Jeff Law  <law@redhat.com>
1359
1360         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
1361         variables.  Simplify slightly by using USE_OP/DEF_OP instead
1362         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
1363
1364         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
1365         rather than iterating through the blocks testing each bit in
1366         livein to initialize the worklist.
1367         (mark_def_sites): Remove useless checks of KILLS for virtual
1368         operands.
1369
1370         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
1371         new parameters for the statement and variable worklist as well
1372         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
1373         worklist recording interesting variables in the variable worklist
1374         and bitmap.  Handle casts between integral and boolean types.
1375         (substitute_single_use_vars): Accept new parameters for the statement
1376         and variable worklist.  When a substitution is made add a new
1377         entry to the statement worklist.  Handle casts between integral
1378         and boolean types.
1379         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
1380         worklists to children.  Iterate until the statement worklist
1381         is empty.
1382
1383 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1384
1385         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
1386         the end of the block.
1387
1388         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
1389         with BITMAP_XMALLOC.
1390
1391         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
1392         with BITMAP_XMALLOC.
1393
1394         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
1395         Free nonzero_vars at the end of the function.
1396
1397         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
1398         need to generate code instead of a NOP_EXPR.
1399
1400 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
1401
1402         * gcc.c (default_compilers): Fill out initializers for new Fortran
1403         entries.
1404
1405 2004-05-13  Paul Brook  <paul@codesourcery.com>
1406
1407         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
1408
1409 2004-05-13  Paul Brook  <paul@codesourcery.com>
1410
1411         * config/arm/arm.c (arm_default_short_enums): New function.
1412         (TARGET_DEFAULT_SHORT_ENUMS): Define.
1413
1414 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1415
1416         Merge from tree-ssa-20020619-branch.
1417
1418         * Makefile.in (reload1.o-warn): Add.
1419         (tree-alias-ander.o-warn): Add.
1420         (GMPLIBS): Define.
1421         (GMPINC): Define.
1422         (BANSHEELIB): Define.
1423         (BANSHEEINC): Define.
1424         (TREE_DUMP_H): Define.
1425         (TREE_SIMPLE_H): Define.
1426         (TREE_FLOW_H): Define.
1427         (LIBDEPS): Add BANSHEELIB.
1428         (INCLUDES): Add BANSHEEINC and GMPINC.
1429         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
1430         c-mudflap.o and c-pretty-print.o.
1431         (C_OBJS): Remove c-pretty-print.o.
1432         (OBJS-common): Remove sibcall.o.
1433         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
1434         tree-ssa.o, tree-optimize.o, tree-simple.o,
1435         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
1436         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
1437         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
1438         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1439         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
1440         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
1441         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
1442         tree-tailcall.o, gimple-low.o, tree-iterator.o,
1443         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
1444         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
1445         tree-profile.o.
1446         (OBJC-archive): Add tree-nomudflap.o.
1447         (cc1): Add dependency on @TREEBROWSER@.
1448         (c-decl.o): Add dependency on TREE_DUMP_H.
1449         (c-dump.o): Likewise.
1450         (c-common.o): Add dependency on tree-iterator.h
1451         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
1452         (gtype-desc.o): Add dependency on TREE_FLOW_H.
1453         (tree.o): Add dependency on tree-iterator.h,
1454         BASIC_BLOCK_H and TREE_FLOW_H.
1455         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
1456         (langhooks.o): Add dependency on TREE_SIMPLE_H.
1457         (tree-alias-type.o, tree-alias-ander.o,
1458         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
1459         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
1460         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
1461         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
1462         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
1463         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
1464         tree-nested.o, tree-iterator.o, tree-dfa.o,
1465         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
1466         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
1467         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
1468         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
1469         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
1470         tree-sra.o, tree-complex.o, tree-profile.o,
1471         rtl-profile.o): New rules.
1472         (function.o): Add dependency on basic-block.h
1473         (expr.o): Add dependency on tree-iterator.h.
1474         (sibcall.o): Remove.
1475         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
1476         (cfg.o): Add dependency on TIMEVAR_H.
1477         (cfghooks.o): Add dependency on TREE_FLOW_H.
1478         (reg-stack.o): Add dependency on basic-block.h.
1479         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
1480         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
1481         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
1482         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
1483         tree-alias-type.h, tree-alias-common.h,
1484         tree-alias-type.c, tree-alias-common.c,
1485         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
1486         rtl-profile.c and tree-nested.c.
1487         (gt-tree-alias-common.h, gt-tree-mudflap.h,
1488         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
1489         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
1490         gt-tree-cfg.h, gt-tree-nested.h): New rules.
1491         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
1492         * basic-block.h: Include predict.h
1493         (struct edge_def): Add GTY marker.
1494         Change field 'insns' to be a union of tree and rtx.
1495         (EDGE_TRUE_VALUE): Define.
1496         (EDGE_FALSE_VALUE): Define.
1497         (EDGE_EXECUTABLE): Define.
1498         (struct bb_ann_d): Forward declare.
1499         (struct basic_block_def): Add GTY marker.
1500         Remove fields head_tree and end_tree.
1501         Add fields stmt_list, rbi and tree_annotations.
1502         (struct reorder_block_def): Define.
1503         (basic_block_info): Add GTY marker.
1504         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
1505         variables instead of macros.
1506         (flow_call_edges_add): Remove declaration.
1507         (make_eh_edge): Remove declaration.
1508         (brief_dump_cfg, find_edge, tree_predicted_by_p,
1509         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
1510         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
1511         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
1512         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
1513         (try_redirect_by_replacing_jump): Modfiy return type to
1514         edge instead of bool.
1515         * bb-reorder.c (copy_bb): Call duplicate_block
1516         instead of cfg_layout_duplicate_bb.
1517         (copy_bb_p): Call can_duplicate_block_p instead of
1518         cfg_layout_can_duplicate_bb_p.
1519         * bitmap.c (bitmap_first_set_bit): Abort if word
1520         wasn't found.
1521         (bitmap_last_set_bit): Likewise.
1522         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
1523         (DEF_FUNCTION_TYPE_3): Add.
1524         * builtins.c (c_strlen): Make extern.
1525         (builtin_save_expr): New.
1526         (expand_builtin_nonlocal_goto): New.
1527         (expand_builtin_constant_p): Remove.
1528         (expand_builtin_mathfn): Call builtin_save_expr instead
1529         of save_expr.
1530         (expand_builtin_mathfn_2): Likewise.
1531         (expand_builtin_strcmp): Likewise.
1532         (expand_builtin_strncmp): Likewise.
1533         (expand_builtin_strcat): Likewise.
1534         (fold_builtin_cabs): Likewise.
1535         (expand_builtin_alloca): Don't trigger if -fmudflap is
1536         given.
1537         (build_string_literal): Set TREE_INVARIANT on new node.
1538         (expand_builtin_profile_fun): New.
1539         (round_trampoline_addr): New.
1540         (expand_builtin_init_trampoline): New.
1541         (expand_builtin_adjust_trampoline): New.
1542         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
1543         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
1544         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
1545         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
1546         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
1547         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
1548         Handle.
1549         (fold_builtin_expect): New.
1550         (fold_builtin_isascii): Don't return non-constant results
1551         in GIMPLE form.
1552         (fold_builtin_isdigit): Likewise.
1553         (fold_builtin_1): New.
1554         (fold_builtin): Call it.
1555         (build_function_call_expr): Update call to build a new
1556         CALL_EXPR.
1557         (purge_builtin_constant_p): Remove.
1558         (simplify_builtin, simplify_builtin_memcmp,
1559         simplify_builtin_strcmp, simplify_builtin_strncmp,
1560         simplify_builtin_strpbrk, simplify_builtin_strstr,
1561         simplify_builtin_strchr, simplify_builtin_strrchr,
1562         simplify_builtin_strcat, simplify_builtin_strncat,
1563         simplify_builtin_strspn, simplify_builtin_strcspn,
1564         simplify_builtin_next_arg, simplify_builtin_va_start,
1565         simplify_builtin_sprintf): New.
1566         * builtins.def (BUILT_IN_STACK_ALLOC,
1567         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
1568         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
1569         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
1570         BUILT_IN_PROFILE_FUNC_EXIT): Define.
1571         * c-common.c: Include tree-iterator.h and hashtab.h.
1572         (lang_statement_code_p): Declare.
1573         (lang_gimplify_stmt): Declare.
1574         (fix_string_type): Set TREE_INVARIANT for value.
1575         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
1576         (c_type_hash): New.
1577         (c_common_get_alias_set): Handle multiple type nodes
1578         referring to "the same" type, currently for C90 only.
1579         (c_add_case_label): Use create_artificial_label.
1580         (finish_label_address_expr): Don't set TREE_CONSTANT on
1581         result.
1582         (c_expand_expr): Don't handle STMT_EXPR.
1583         (handle_alias_attribute): Marke aliased variables to be
1584         TREE_STATIC.
1585         (handle_nonnull_attribute): Initialize arg_num.
1586         (check_function_nonnull): Likewise.
1587         (c_walk_subtrees): New.
1588         (c_estimate_num_insns_1): Don't handle
1589         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
1590         (c_decl_uninit_1): Remove.
1591         (c_decl_uninit): Remove.
1592         (c_warn_unused_result): New.
1593         * c-common.def (ASM_STMT): Change number of operands
1594         to 4.
1595         (FILE_STMT): Remove.
1596         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
1597         Remove.
1598         (lang_gimplify_stmt): Add.
1599         (expand_stmt): Remove.
1600         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
1601         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
1602         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
1603         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
1604         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
1605         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1606         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1607         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
1608         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
1609         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
1610         genrtl_compound_stmt, genrtl_asm_stmt,
1611         genrtl_cleanup_stmt, c_decl_uninit): Remove.
1612         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
1613         c_tree_chain_matters_p, c_warn_unused_result,
1614         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
1615         Declare.
1616         * c-convert.c (convert): Make convert work when
1617         converting to compatible types across translation unit.
1618         * c-decl.c: Include langhooks.h, tree-mudflap.h,
1619         tree-simple.h, diagnostic.h and tree-dump.h
1620         (merge_decls): Initialize oldtype to NULL.
1621         (finish_decl): Use DECL_HARD_REGISTER instead of
1622         DECL_C_HARD_REGISTER.
1623         (check_bitfield_type_and_width): Check for null
1624         lang_type_specific when check the precision of an enum.
1625         (grokdeclarator): Immediately layout an ARRAY_TYPE used
1626         in a pointer-to-array declarator.
1627         (finish_struct): Clear allocated struct lang_type.
1628         (finish_enum): Set enum_min and enum_max.  Set
1629         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
1630         not to the enumerators.
1631         (set_decl_nonlocal): New.
1632         (store_parm_decls): Use it via walk_tree.
1633         (c_finalize): New.
1634         (finish_function): When !targetm.have_ctors_dtors,
1635         record static constructors and destructors here...
1636         (c_expand_body_1): ... not here.
1637         (c_expand_decl): Rename from c_expand_decl_stmt.
1638         Handle all C-specific expansion semantics.
1639         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
1640         STMT_LINENO.
1641         * c-format.c (handle_format_arg_attribute): Initialize
1642         format_num.
1643         * c-lang.c: Include tree-inline.h
1644         (LANG_HOOKS_EXPAND_DECL,
1645         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1646         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
1647         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
1648         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
1649         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
1650         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
1651         (c_types_compatible_p): New.
1652         * c-mudflap.c: New file.
1653         * c-objc-common.c: Include tree-mudflap.h
1654         (start_cdtor, finish_cdtor): Collapse
1655         together into
1656         (build_cdtor): ...here.  Update to construct a complete tree
1657         for the function.  No need to call push_scope, pop_scope, or
1658         clear_last_expr, or set current_function_cannot_inline.
1659         (c_missing_noreturn_ok_p): Change prototype to return
1660         bool.
1661         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
1662         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
1663         opts.c.
1664         (c_common_post_options): Don't ever use rtl inlining.
1665         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
1666         * c-pragma.c (handle_pragma_redefine_extname): Define
1667         always.
1668         (init_pragma): Activate #pragma redefine_extname for mudflap.
1669         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
1670         (pp_c_initializer): Accept any type CONSTRUCTOR.
1671         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
1672         COMPLEX_TYPE.
1673         (decl_name_str): New local function.
1674         (pp_c_direct_declarator): Call it.
1675         (pp_c_primary_expression): Call it.
1676         (pp_c_id_expression): Call it.
1677         (pp_c_statement): Call it.
1678         (print_c_tree): Create new pp object.
1679         * c-pretty-print.h (pp_c_tree_decl_identifier,
1680         print_c_tree): Declare.
1681         * c-semantics.c: Include langhooks.h
1682         (lang_expand_stmt, lang_expand_decl_stmt,
1683         find_reachable_label_1, find_reachable_label,
1684         expand_unreachable_if_stmt, expand_unreachable_stmt,
1685         genrtl_do_stmt_1): Remove.
1686         (begin_stmt_tree): Don't check for changed filename.
1687         Call annotate_with_locus.
1688         (finish_stmt_tree): Don't set line for end of function.
1689         (build_stmt): Don't check type nodes for
1690         side effects.
1691         (build_stmt): Set TREE_SIDE_EFFECTS.
1692         Set EXPR_LOCUS instead of STMT_LINENO.
1693         (lang_expand_stmt, lang_expand_decl_stmt,
1694         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1695         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1696         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
1697         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
1698         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
1699         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
1700         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
1701         find_reachable_label_1, expand_unreachable_if_stmt,
1702         expand_unreachable_stmt): Remove.
1703         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
1704         * c-simplify.c: New file.
1705         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
1706         (struct lang_type): Add fields enum_min and enum_max.
1707         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
1708         (c_expand_decl, c_missing_noreturn_ok_p,
1709         c_types_compatible_p): Declare.
1710         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
1711         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
1712         (default_function_array_conversion): Rely on build to
1713         set TREE_CONSTANT.
1714         (parser_build_binary_op, pointer_diff): Likewise.
1715         (build_unary_op, build_binary_op): Likewise.
1716         (build_array_ref):
1717         (build_external_ref): Set TREE_INVARIANT.
1718         (build_c_cast, pop_init_level): Likewise.
1719         (process_init_element): Use ASM_VOLATILE_P.
1720         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
1721         (c_finish_case): Call c_do_switch_warnings.
1722         * c.opt (fdump-): Remove.
1723         * calls.c (try_to_integrate): Remove.
1724         (prepare_call_address): Replace fndecl arg with a
1725         precomputed static chain value.
1726         (emit_call_1): New argument for full call expr.
1727         (flags_from_decl_or_type): Call special_function_p.
1728         (initialize_argument_information): Add argument
1729         may_tailcall.
1730         (purge_reg_equiv_notes): New.
1731         (expand_call): Do not try to expand calls inline.
1732         (fixup_tail_calls): New.
1733         * cfg.c: Include timevar.h and ggc.h.
1734         (bb_pool, edge_pool): Remove.
1735         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
1736         (entry_exit_blocks): Remove.
1737         (rbi_pool): Declare.
1738         (init_flow): Do not create pools.
1739         Allocate entry/exit block.
1740         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
1741         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
1742         (unlink_block): Clear b->prev_bb and b->next_bb.
1743         (compact_blocks): Clear all slots of BASIC_BLOCK array.
1744         (dump_flow_info): Work on trees too.
1745         (dump_cfg_bb_info): New.
1746         (brief_dump_cfg): New.
1747         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
1748         (find_edge): New.
1749         * cfgbuild.c (rtl_make_eh_edge): Rename from
1750         make_eh_edge.  Update all users.
1751         (find_basic_blocks): Don't call VARRAY_FREE on
1752         basic_block_info.
1753         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
1754         and newpos2.
1755         (delete_unreachable_blocks): Return changed status.
1756         (merge_seq_blocks): New.
1757         * cfghooks.c: Include tree-flow.h
1758         (tree_register_cfg_hooks, ir_type): New.
1759         (redirect_edge_and_branch): Change return type to edge.
1760         (predict_edge, predicted_by_p, can_duplicate_block_p,
1761         duplicate_block, block_ends_with_call_p,
1762         block_ends_with_condjump_p, flow_call_edges_add): New.
1763         * cfghooks.h (redirect_edge_and_branch): Change return
1764         type to edge.
1765         (predict_edge, predicted_by_p, can_duplicate_block_p,
1766         duplicate_block, block_ends_with_call_p,
1767         block_ends_with_condjump_p, flow_call_edges_add): Declare.
1768         (redirect_edge_and_branch): Change return type to edge.
1769         (struct cfg_hooks): Add fields block_ends_with_call_p,
1770         block_ends_with_condjump_p, flow_call_edges_add,
1771         predict_edge, predicted_by_p, can_duplicate_block_p and
1772         duplicate_block.
1773         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
1774         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
1775         (fixup_reorder_chain): Use initialize_bb_rbi.
1776         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
1777         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
1778         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
1779         (insn_locators_initialize): Use new info about blocks.
1780         * cfglayout.h (typedef struct reorder_block_def): Moved to
1781         basic_block.h.
1782         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
1783         removed.
1784         * cfgloop.c: Include tree.h and tree-flow.h.
1785         * cfgloop.h (create_loop_notes): Declare.
1786         * cfgloopmanip.c (create_loop_notes): New.
1787         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
1788         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
1789         and duplicate_block fields.
1790         (create_basic_block_structure): Don't look at
1791         RTX_INTEGRATED_P.
1792         (rtl_block_ends_with_call_p): New.
1793         (rtl_block_ends_with_condjump_p): New.
1794         (need_fake_edge_p): Moved from cfganal.c.
1795         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
1796         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
1797         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
1798         (cfg_layout_rtl_cfg_hooks): Ditto.
1799         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
1800         functions to be reachable.
1801         * cgraphunit.c (decide_is_function_needed):
1802         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
1803         inline functions don't need to be output.
1804         (cgraph_assemble_pending_functions): Don't do anything
1805         special for nested functions.
1806         (cgraph_mark_functions_to_output): Likewise.
1807         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
1808         (cgraph_analyze_function): Use estimate_num_insns.
1809         (cgraph_mark_functions_to_output): Likewise.
1810         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
1811         (cgraph_expand_function): Allow functions to not be
1812         emitted.
1813         (cgraph_remove_unreachable_nodes):
1814         (cgraph_recursive_inlining_p): Simplify.
1815         (lookup_recursive_calls,
1816         cgraph_decide_recursive_inlining): New.
1817         (cgraph_decide_inlining_*): Update calls of
1818         cgraph_mark_inline.
1819         * combine.c (get_pos_from_mask): Always set *plen.
1820         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
1821         ftree-based-profiling, ftree-ccp, ftree-ch,
1822         ftree-combine-temps, ftree-copyrename, ftree-dce,
1823         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
1824         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
1825         ftree-lrs): Add.
1826         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
1827         Undefine.
1828         * configure.ac: Add --enable-tree-browser option.
1829         Add --with-libbanshee option.
1830         Add GMPLIBS and GMPINC.
1831         * configure: Regenerate.
1832         * coverage.c (tree_ctr_tables): New.
1833         (coverage_counter_alloc): Use it.
1834         (build_ctr_info_value): Ditto.
1835         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
1836         (tree_coverage_counter_ref): New.
1837         * coverage.h (coverage_counter_ref): Remove declaration.
1838         (rtl_coverage_counter_ref): Declare.
1839         (tree_coverage_counter_ref): Declare.
1840         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
1841         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
1842         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
1843         (struct cse_basic_block_data): Rename enum values to not
1844         conflict with profile.h; update all uses.
1845         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
1846         in comments.
1847         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
1848         * diagnostic.h (debug_output_buffer, dump_generic_node,
1849         print_generic_stmt, print_generic_stmt_indented,
1850         print_generic_expr, print_generic_decl,
1851         debug_generic_expr, debug_generic_stmt, debug_c_tree):
1852         Declare.
1853         * dominance.c: Cache immediate dominators.
1854         * domwalk.c: New file.
1855         * domwalk.h: New file.
1856         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
1857         (gen_subprogram_die): Generate a DIE for a named
1858         return value.
1859         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
1860         (add_location_or_const_value_attribute): Likewise.
1861         (add_bound_info): Likewise.
1862         (gen_decl_die): Likewise.
1863         * emit-rtl.c (maybe_set_first_label_num): New.
1864         (copy_most_rtx): Don't copy the integrated flag.
1865         Copy the new return_val flag.
1866         * et-forest.c (MAX_NODES): Define.
1867         (record_path_before_1): Abort if len is greater than
1868         MAX_NODES.
1869         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
1870         gen_eh_region_catch, gen_eh_region_allowed,
1871         gen_eh_region_must_not_throw, get_eh_region_number,
1872         get_eh_region_may_contain_throw, get_eh_region_tree_label,
1873         set_eh_region_tree_label, expand_resx_expr): New.
1874         (expand_eh_region_start, expand_start_catch): Use them.
1875         (expand_end_catch): Tidy.
1876         (note_eh_region_may_contain_throw): Take region argument.
1877         (note_current_region_may_contain_throw): New.
1878         (get_exception_filter): Export.
1879         (collect_eh_region_array): Export.
1880         (remove_unreachable_regions): Check ERT_TRY based on reachability
1881         of catches, not reachability of continue_label.  Never remove
1882         ERT_MUST_NOT_THROW regions.
1883         (collect_rtl_labels_from_trees): New.
1884         (convert_from_eh_region_ranges): Use it.
1885         (connect_post_landing_pads): Handle dying cleanups.
1886         (struct reachable_info): Add callback data.
1887         (add_reachable_handler): Invoke the callback.
1888         (foreach_reachable_handler): New.
1889         (reachable_handlers): Use it.
1890         (arh_to_landing_pad, arh_to_label): New.
1891         (can_throw_internal_1): Split out from can_throw_internal.
1892         (can_throw_external_1): Similarly.
1893         * except.h: Update.
1894         * explow.c (emit_stack_save): Remove savearea mode check.
1895         (update_nonlocal_goto_save_area): New.
1896         (allocate_dynamic_stack_space): Use it.
1897         (probe_stack_range): Never emit loop notes.
1898         * expmed.c (extract_fixed_bit_field): Always propagate the
1899         target for the shift if it is a REG.
1900         * expr.c: Include tree-iterator.h
1901         (is_zeros_p): Remove.
1902         (categorize_ctor_elements_1, categorize_ctor_elements): New.
1903         (count_type_elements): New.
1904         (mostly_zeros_p): Use them.
1905         (expr_wfl_stack): Remove.
1906         (convert_move): Do nothing if to and from are the same.
1907         (emit_block_move_via_loop): Don't emit LOOP notes.
1908         (emit_move_insn): Don't handle CONSTANT_P_RTX.
1909         (emit_move_insn_1): Don't generate inline warnings.
1910         (expand_vars, expand_var): Split from ...
1911         (expand_expr_1): ... here.
1912         (expand_expr_real, expand_expr_real_1):  Use new macros
1913         EXPR_LOCATION and EXPR_HAS_LOCATION.
1914         * expr.h (simplify_builtin_fputs,
1915         simplify_builtin_strcpy, simplify_builtin_strncpy,
1916         expand_var, fixup_tail_calls,
1917         update_nonlocal_goto_save_area): Declare.
1918         (lookup_static_chain, expand_inline_function,
1919         mark_seen_cases): Remove.
1920         (prepare_call_address): Change type of 2nd argument to
1921         rtx.
1922         * final.c (profile_function): Update static chain test.
1923         (final): Don't look at RTX_INTEGRATED_P.
1924         * flags.h (flag_mudflap, flag_mudflap_threads,
1925         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
1926         flag_tree_dce, flag_tree_combine_temps,
1927         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
1928         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
1929         flag_tree_points_to): Declare.
1930         (enum pta_type): Declare.
1931         * flow.c (lang_missing_noreturn_ok_p): Remove.
1932         (check_function_return_warnings): Remove.
1933         (update_life_info): Update comments.
1934         (free_basic_block_vars): Don't call VARRAY_FREE for
1935         basic_block_info.
1936         (regno_uninitialized): Remove.
1937         * fold-const.c (int_const_binop): Make extern.
1938         (non_lvalue): Rely on build to set TREE_CONSTANT.
1939         (operand_equal_p): Replace only_const argument with
1940         flags.  Allow pure functions if OEP_PURE_SAME.
1941         (fold): Use OEP_ONLY_CONST.
1942         (invert_truthvalue) <NOP_EXPR> Break if argument is of
1943         boolean type.
1944         (fold_relational_hi_lo,
1945         nondestructive_fold_binary_to_constant,
1946         nondestructive_fold_unary_to_constant,
1947         fold_read_from_constant_string): New.
1948         * function.c (struct function): Remove calls_constant_p.
1949         (current_function_calls_constant_p): Remove.
1950         (inline_function_decl): Remove.
1951         (put_var_into_stack): Don't use it.
1952         (fix_lexical_addr): Likewise.
1953         (inline_function_decl): Remove extern declaration.
1954         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
1955         (trampolines_created): Move to varasm.c.
1956         (free_after_compilation): Update for removed fields.
1957         (allocate_struct_function): Likewise.
1958         (delete_handlers, lookup_static_chain): Remove.
1959         (fix_lexical_addr): Don't consider non-local variable refs.
1960         (trampoline_address): Remove.
1961         (round_trampoline_addr): Move to builtins.c.
1962         (adjust_trampoline_addr): Remove.
1963         (expand_function_start): Update for changes to static chain
1964         and nonlocal goto handling.
1965         (initial_trampoline): Move to varasm.c.
1966         (expand_function_end): Don't build trampolines or kill
1967         unreferenced nonlocal goto labels.
1968         (free_after_compilation): Don't set it.
1969         (expand_function_end): Likewise.
1970         (setjmp_vars_warning): Rename from
1971         uninitialized_vars_warning, remove uninitialized vars warning.
1972         (uninitialized_vars_warning): Remove old comment
1973         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
1974         and do not call the langhook.
1975         (expand_function_start, expand_function_end): Don't do
1976         function instrumentation here.
1977         (clear_block_marks): Rename from reorder_blocks_0, export.
1978         (blocks_nreverse): Export.
1979         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
1980         of rtl.
1981         (reset_block_changes, record_block_change, finalize_block_changes,
1982         check_block_change, free_block_changes): New functions.
1983         (assign_parms): Setting of current_function_stdarg
1984         moved ...
1985         (allocate_struct_function): ... here.
1986         * function.h (struct function): Remove x_nonlocal_labels,
1987         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
1988         x_context_display, x_trampoline_list, needs_context.
1989         Add static_chain_decl, nonlocal_goto_save_area.
1990         (struct function): Remove x_clobber_return_insn.
1991         Add tail_call_emit field, last_label_uid,
1992         unexpanded_var_list, dont_emit_block_notes,
1993         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
1994         (clear_block_marks): Declare.
1995         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
1996         (mfwrap_spec, mflib_spec): Declare.
1997         (cpp_unique_options, cc1_options): Ditto.
1998         (default_compilers): Add .F and .f90.
1999         (static_specs): Add mfwrap and mflib.
2000         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
2001         CONSTANT_RTX_P.
2002         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
2003         Update to match insns field in struct edge_def.
2004         * gdbinit.in (pgs, pge): Define.
2005         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
2006         instead of the integrated flag.
2007         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
2008         * gengtype-yacc.y (bitfieldlen): Add empty action.
2009         (struct_fields): Accept unnamed bitfields.
2010         (bitfieldlen): Split from ...
2011         (bitfieldopt): ... here.
2012         * gengtype.c (ifiles): Add tree-alias-type.h and
2013         tree-flow.h.
2014         * genrecog.c (validate_pattern): Do not handle
2015         CONSTANT_P_RTX.
2016         * gimple-low.c: New file.
2017         * gimplify.c: New file.
2018         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
2019         (restore_line_notes): Do not set RTX_INTEGRATED_P.
2020         * ifcvt.c (dead_or_predicable): Initialize local variable
2021         'earliest'.
2022         * input.h (expr_wfl_stack): Remove.
2023         * integrate.c (INTEGRATE_THRESHOLD): Remove.
2024         (setup_initial_hard_reg_value_integration): Likewise.
2025         (initialize_for_inline): Likewise.
2026         (note_modified_parmregs): Likewise.
2027         (integrate_parm_decls): Likewise.
2028         (process_reg_param): Likewise.
2029         (save_parm_insns): Likewise.
2030         (copy_insn_list): Likewise.
2031         (copy_insn_notes): Likewise.
2032         (compare_blocks): Likewise.
2033         (find_block): Likewise.
2034         (inlining): Likewise.
2035         (function_cannot_inline_p): Likewise.
2036         (parmdecl_map): Likewise.
2037         (in_nonparam_insns): Likewise.
2038         (save_for_inline): Likewise.
2039         (FIXED_BASE_PLUS): Likewise.
2040         (expand_inline_function): Likewise.
2041         (copy_rtx_and_substitute): Don't look at map->integrating,
2042         map->inline_target, and inlining, since we are never copying
2043         for integrating.
2044         Don't abort on RTX_INTEGRATED_P.
2045         (old_fun): Remove.
2046         (output_inline_function): Remove.
2047         * integrate.h (struct inline_map): Remove fields integrating,
2048         block_map, leaf_reg_map, inline_target, and local_return_label.
2049         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
2050         copy_loop_headers, never_reached_warning): Removed.
2051         (any_uncondjump_p): Reject nonlocal goto.
2052         * langhooks-def.h (lhd_types_compatible_p,
2053         lhd_expand_decl, lhd_gimplify_expr): Declare.
2054         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2055         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2056         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2057         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2058         LANG_HOOKS_GIMPLIFY_EXPR,
2059         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
2060         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2061         LANG_HOOKS_GIMPLIFY_EXPR,
2062         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
2063         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
2064         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
2065         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2066         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
2067         LANG_HOOKS_DECL_UNINIT,
2068         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
2069         * langhooks.c: Include tree-simple.h.
2070         (lhd_expand_decl): New.
2071         (lhd_types_compatible_p): New.
2072         (lhd_decl_uninit): Remove.
2073         (lhd_gimplify_expr): New.
2074         * langhooks.h (struct lang_hooks_for_rtl_expansion):
2075         Remove.
2076         (struct lang_hooks_for_functions): Add field
2077         missing_noreturn_ok_p.
2078         (struct lang_hooks): Add field expand_decl,
2079         types_compatible_p, gimplify_expr and
2080         gimple_before_inlining.
2081         Remove fields decl_uninit and rtl_expand
2082         * opts.c (decode_options): Set flag_tree_ccp,
2083         flag_tree_dce, flag_tree_dom, flag_tree_dse,
2084         flag_tree_pre, flag_tree_ter,
2085         flag_tree_live_range_split, flag_tree_sra,
2086         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
2087         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
2088         OPT_fmudflapth, OPT_fmudflapir,
2089         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
2090         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
2091         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
2092         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
2093         OPT_ftree_points_to_ and OPT_ftree_pre.
2094         * output.h (regno_uninitialized, find_basic_blocks,
2095         cleanup_cfg, delete_unreachable_blocks,
2096         check_function_return_warnings): Remove.
2097         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
2098         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
2099         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
2100         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
2101         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
2102         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
2103         Define.
2104         * passes.c (rest_of_decl_compilation):
2105         (rest_of_handle_sibling_calls): Remove.
2106         (rest_of_handle_inlining): Remove.
2107         (rest_of_handle_gcse): Do not run
2108         purge_builtin_constant_p.
2109         (rest_of_compilation): Update.
2110         Do not call copy_loop_headers.
2111         Do rtl-based profiling only when
2112         !flag_tree_based_profiling.  Register rtl-based profiling
2113         hooks.
2114         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
2115         (predicted_by_p): Rename to ...
2116         (rtl_predicted_by_p): .. this one; make global
2117         (tree_predicted_by_p): New.
2118         (dump_prediction): Add FILE argument.
2119         (predict_edge): Rename to ...
2120         (rtl_predict_edge): .. this one.
2121         (tree_predict_edge): New.
2122         (combine_predictions_for_insn): Update calls of predict_edge.
2123         (predict_loops): Break out from ...
2124         (estimate_probability): ... here; update comments; move updating
2125         of unknown probabilities from ...
2126         (estimate_bb_frequencies): ... here.
2127         (combine_predictions_for_bb): New.
2128         (tree_predict_by_opcode): New.
2129         (tree_estimate_probability): New.
2130         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
2131         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
2132         * predict.h: Add include guard.
2133         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
2134         * pretty-print.c (pp_write_text_to_stream): Make extern.
2135         * pretty-print.h (pp_write_text_to_stream): Declare.
2136         * print-rtl.c (print_rtx): Don't print the integrated flag.
2137         Print the return_val flag.
2138         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
2139         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
2140         Remove support for EXPR_WITH_FILE_LOCATION nodes.
2141         (print_node): Print TREE_INVARIANT and TREE_VISITED.
2142         * profile.c: Include cfghooks.h, tree-flow.h.
2143         (profile_hooks): New.
2144         (profile_dump_file): New.
2145         (instrument_edges): Use hooks instead of RTL-specific code.
2146         (instrument_values): Ditto.
2147         (get_exec_counts): Ditto.
2148         (compute_branch_probabilities): Ditto.
2149         (compute_value_histograms): Ditto.
2150         (branch_prob): Ditto.
2151         (find_spanning_tree): Ditto.
2152         (end_branch_prob): Ditto.
2153         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
2154         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
2155         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
2156         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
2157         (tree_register_profile_hooks): New.
2158         (rtl_register_profile_hooks): New.
2159         * ra-rewrite.c (rewrite_program): Clear variable info.
2160         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
2161         * regs.h: Add include guards.
2162         * reload.c (decompose): Clear val using memset.
2163         * rtl.def (CONSTANT_P_RTX): Remove.
2164         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
2165         (copy_loop_headers): Remove.
2166         (struct rtx_def): Replace the integrated flag with the
2167         return_val flag.
2168         (maybe_set_first_label_num): Declare.
2169         (init_branch_prob): Move declaration to value-prof.h.
2170         (end_branch_prob): Ditto.
2171         (branch_prob): Ditto.
2172         (never_reached_warning): Don't declare it.
2173         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
2174         (hoist_insn_to_edge): Update to match field insns in
2175         struct edge_def.
2176         * sbitmap.c (sbitmap_realloc): New.
2177         * sbitmap.h (sbitmap_realloc): Declare.
2178         * sibcall.c: Remove file.
2179         * simplify-rtx.c (simplify_rtx): Do not handle
2180         CONSTANT_P_RTX.
2181         * stmt.c (parse_output_constraint): Don't warn for read-write
2182         memory operand.
2183         (tail_recursion_args): Use types_compatible_p langhook.
2184         (force_label_rtx): Don't look at inline_function_decl.
2185         (label_rtx): Set LABEL_PRESERVE_P appropriately.
2186         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
2187         (declare_nonlocal_label): Remove.
2188         (expand_goto): Don't handle nonlocal gotos.
2189         (expand_nl_handler_label): Remove.
2190         (expand_nl_goto_receivers): Remove.
2191         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
2192         update_nonlocal_goto_save_area.
2193         (expand_expr_stmt_value): Check TREE_NO_WARNING.
2194         (warn_if_unused_value): Likewise.
2195         (expand_start_loop, expand_loop_continue_here,
2196         expand_end_loop): Don't create loop notes.
2197         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
2198         mark_seen_cases, check_for_full_enumeration_handling): Remove.
2199         (expand_end_case_type): Don't do warn_switch handling.
2200         (pushcase, pushcase_range) Update add_case_node calls.
2201         (add_case_node): Add dont_expand_label argument.
2202         (same_case_target_p): Don't search rtl.
2203         (expand_start_bindings_and_block, expand_end_bindings):
2204         Don't emit block notes when dont_emit_block_notes.
2205         (using_eh_for_cleanups_p): Export.
2206         (expand_return): Allow any typed rhs.
2207         (expand_stack_alloc): New.
2208         (expand_stack_save, expand_stack_restore): New.
2209         (containing_blocks_have_cleanups_or_stack_level): New
2210         function.
2211         (asm_op_is_mem_input): New fn.
2212         (expand_asm_expr): New fn.
2213         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
2214         nodes.
2215         * stor-layout.c (layout_type): Just return if type is
2216         error_mark_node.
2217         (update_alignment_for_field): Export.
2218         (variable_size): We don't care about global_bindings_p if
2219         the frontend doesn't want a list of the expressions.
2220         * system.h: Poison INTEGRATE_THRESHOLD.
2221         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
2222         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
2223         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
2224         TV_TREE_SSA_OTHER, TV_TREE_OPS,
2225         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
2226         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
2227         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
2228         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
2229         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
2230         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
2231         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
2232         TV_CONTROL_DEPENDENCES): Define.
2233         * toplev.c: Include tree-alias-common.h
2234         (current_file_decl, flag_mudflap, flag_mudflap_threads,
2235         flag_mudflap_ignore_reads, flag_tree_based_profiling,
2236         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
2237         flag_tree_dce, flag_tree_ch, flag_tree_sra,
2238         flag_tree_combine_temps, flag_tree_ter,
2239         flag_tree_live_range_split, flag_tree_dom,
2240         flag_tree_copyrename, flag_tree_dse): Declare.
2241         (f_options): Add tree-based-profiling, tree-gvn,
2242         tree-pre, tree-ccp, tree-dce,
2243         tree-dominator-opts, tree-copyrename, tree-dse,
2244         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
2245         (wrapup_global_declarations): Don't output nested inlined functions.
2246         (general_init): Call init_tree_optimization_passes.
2247         (process_options): Sorry for -ftree-based-profiling plus
2248         -ftest-coverage or -fprofile-values.
2249         * toplev.h (init_tree_optimization_passes,
2250         flag_tree_based_profiling): Declare.
2251         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
2252         * tree-alias-ander.c: New file.
2253         * tree-alias-ander.h: New file.
2254         * tree-alias-common.c: New file.
2255         * tree-alias-common.h: New file.
2256         * tree-alias-type.c: New file.
2257         * tree-alias-type.h: New file.
2258         * tree-browser.c: New file.
2259         * tree-browser.def: New file.
2260         * tree-cfg.c: New file.
2261         * tree-complex.c: New file.
2262         * tree-dfa.c: New file.
2263         * tree-dump.c (dump_enable_all): New.
2264         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
2265         (dump_node): Remove const from field suffix and swtch.
2266         (dump_files): Add null entry, .generic, .nested, .vcg,
2267         .xml and a match-all entry.
2268         (extra_dump_files, extra_dump_files_in_use,
2269         extra_dump_files_alloced): Declare
2270         (dump_option_value_info): Add raw, details, stats,
2271         blocks, vops, lineno, uid and all.
2272         (dump_register): New.
2273         (get_dump_file_info): New.
2274         (dump_begin): Call it.
2275         Do nothing for TDI_none.
2276         (dump_begin): Include phase number in dump filename.
2277         (dump_enable_all): New.
2278         (dump_switch_p_1): Split out from dump_switch_p.
2279         (dump_switch_p): Handle extra_dump_files.
2280         Start our scan at TDI_none + 1.
2281         If -fdump-tree-all was given, call dump_enable_all.
2282         * tree-dump.h: Include splay-tree.h.
2283         (dump_function, dump_function_to_file, dump_register):
2284         Declare.
2285         * tree-eh.c: New file.
2286         * tree-flow-inline.h: New file.
2287         * tree-flow.h: New file.
2288         * tree-inline.c: Re-write to handle inlining on GIMPLE.
2289         * tree-inline.h (walk_tree,
2290         walk_tree_without_duplicates): Move to tree.h.
2291         (estimate_num_insns): Declare.
2292         * tree-into-ssa.c: New file.
2293         * tree-iterator.c: New file.
2294         * tree-iterator.h: New file.
2295         * tree-mudflap.c: New file.
2296         * tree-mudflap.h: New file.
2297         * tree-nested.c: New file.
2298         * tree-nomudflap.c: New file.
2299         * tree-nrv.c: New file.
2300         * tree-optimize.c (dump_flags, vars_to_rename,
2301         in_gimple_form, all_passes, pass_gimple,
2302         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
2303         (execute_gimple, execute_rebuild_bind,
2304         gate_all_optimizations, execute_del_cfg,
2305         register_one_dump_file, register_dump_files, dup_pass_1,
2306         init_tree_optimization_passes, execute_todo,
2307         execute_one_pass, execute_pass_list): New.
2308         (clear_decl_rtl): Remove.
2309         (tree_rest_of_compilation): Update to use tree
2310         optimizers.
2311         * tree-outof-ssa.c: New file.
2312         * tree-pass.h: New file.
2313         * tree-phinodes.c: New file.
2314         * tree-pretty-print.c: New file.
2315         * tree-profile.c: New file.
2316         * tree-simple.c: New file.
2317         * tree-simple.h: New file.
2318         * tree-sra.c: New file.
2319         * tree-ssa-alias.c: New file.
2320         * tree-ssa-ccp.c: New file.
2321         * tree-ssa-copy.c: New file.
2322         * tree-ssa-copyrename.c: New file.
2323         * tree-ssa-dce.c: New file.
2324         * tree-ssa-dom.c: New file.
2325         * tree-ssa-dse.c: New file.
2326         * tree-ssa-forwprop.c: New file.
2327         * tree-ssa-live.c: New file.
2328         * tree-ssa-live.h: New file.
2329         * tree-ssa-loop.c: New file.
2330         * tree-ssa-operands.c: New file.
2331         * tree-ssa-operands.h: New file.
2332         * tree-ssa-phiopt.c: New file.
2333         * tree-ssa-pre.c: New file.
2334         * tree-ssa.c: New file.
2335         * tree-ssanames.c: New file.
2336         * tree-tailcall.c: New file.
2337         * tree.c: Include tree-iterator.h, basic-block.h and
2338         tree-flow.h.
2339         (tree_node_kind): Add phi_nodes and ssa names.
2340         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
2341         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
2342         (make_node_stat): Handle PHI_NODE and SSA_NAME.
2343         <'c'> Set TREE_INVARIANT.
2344         (copy_node_stat): Abort if trying to copy a
2345         STATEMENT_LIST.
2346         Clear TREE_VISITED.
2347         Clear annotation field.
2348         (build_constructor): Copy TREE_INVARIANT from vals.
2349         Don't clear TREE_CONSTANT.
2350         (expr_first, expr_last, expr_length): Remove.
2351         (staticp): Pass unknown component references to the language.
2352         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
2353         (skip_simple_arithmetic): Likewise.
2354         (stabilize_reference_1): Likewise.
2355         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
2356         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
2357         STATEMENT_LIST.
2358         (lhd_unsave_expr_now): Remove.
2359         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
2360         (recompute_tree_invarant_for_addr_expr): New.
2361         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
2362         Call recompute_tree_invarant_for_addr_expr.
2363         Set TREE_INVARIANT accordingly.
2364         (build2_stat): Don't handle CALL_EXPR.
2365         (build3_stat): Don't call build2_stat for CALL_EXPRs.
2366         (build_expr_wfl): Remove.
2367         (annotate_with_file_line, annotate_with_locus): New.
2368         (simple_cst_equal): Call simple_cst_list_equal to compare
2369         CONSTRUCTOR_ELTS pointers.
2370         (iterative_hash_expr): Don't hash types associated
2371         with conversions.  Instead hash on the signedness of the
2372         toplevel object and the operand of the conversion.
2373         (dump_tree_statistics): Call ssanames_print_statistics
2374         and phinodes_print_statistics.
2375         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
2376         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
2377         needs_to_live_in_memory): New.
2378         (initializer_zerop): Handle VECTOR_CST.  Don't check
2379         AGGREGATE_TYPE_P for CONSTRUCTOR.
2380         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
2381         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
2382         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
2383         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
2384         (CALL_EXPR): Add another operand.
2385         (EXPR_WITH_FILE_LOCATION): Remove.
2386         (SWITCH_EXPR): Add another operand.
2387         * tree.h: Update various comments.
2388         (union tree_ann_d): Forward declare.
2389         (struct tree_common): Add fields nowarning_flag,
2390         invariant_flag and visited.
2391         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
2392         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
2393         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
2394         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
2395         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
2396         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
2397         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
2398         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
2399         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
2400         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
2401         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
2402         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
2403         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
2404         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
2405         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
2406         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
2407         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
2408         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
2409         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
2410         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
2411         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
2412         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
2413         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
2414         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
2415         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
2416         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
2417         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
2418         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
2419         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
2420         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
2421         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
2422         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
2423         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
2424         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
2425         TDF_UID,): Define.
2426         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
2427         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
2428         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
2429         EXPR_WFL_SET_LINECOL): Remove.
2430         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
2431         make_phi_node, init_phinodes, fini_phinodes,
2432         release_phi_node, phinodes_print_statistics,
2433         init_ssanames, fini_ssanames, make_ssa_name,
2434         release_ssa_name, ssanames_print_statistics,
2435         annotate_with_file_line, build_empty_stmt,
2436         annotate_with_locus, expr_only, categorize_ctor_elements,
2437         count_type_elements, add_var_to_bind_expr, is_essa_node,
2438         expand_stack_alloc, expand_stack_save,
2439         expand_stack_restore, add_case_node, operand_equal_p,
2440         nondestructive_fold_unary_to_constant,
2441         nondestructive_fold_binary_to_constant,
2442         fold_read_from_constant_string, int_const_binop,
2443         strip_float_extensions, simplify_builtin, c_strlen,
2444         recompute_tree_invarant_for_addr_expr,
2445         needs_to_live_in_memory, make_vector,
2446         setjmp_vars_warning, update_alignment_for_field,
2447         expand_asm_expr, asm_op_is_mem_input,
2448         containing_blocks_have_cleanups_or_stack_level,
2449         create_artificial_label, gimplify_function_tree,
2450         get_name, unshare_expr, walk_tree,
2451         walk_tree_without_duplicates, in_gimple_form): Declare.
2452         (struct tree_exp): Add fields locus and block.
2453         (struct tree_ssa_name, struct edge_def, struct
2454         tree_phi_node, struct tree_eref_common, struct
2455         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
2456         union alias_var_def, struct tree_statement_list_node,
2457         struct tree_statement_list, enum operand_equal_flag): Declare.
2458         (enum tree_node_structure_enum): Add TS_SSA_NAME,
2459         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
2460         TS_STATEMENT_LIST.
2461         (union tree_node): Add fields ssa_name, phi, eref, ephi,
2462         euse and stmt_list.
2463         (function_cannot_inline_p, uninitialized_vars_warning,
2464         save_for_inline, output_inline_function, all_cases_count,
2465         check_for_full_enumeration_handling,
2466         declare_nonlocal_label): Remove.
2467         (enum tree_dump_index): Add TDI_none, TDI_tu,
2468         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
2469         * unroll.c (unroll_loop): Don't clear map->inline_target.
2470         * unwind-sjlj.c (uw_install_context): Make a proper static inline
2471         function.
2472         * value-prof.c (value_prof_hooks): New.
2473         (find_values_to_profile): Rename to rtl_find_values_to_profile.
2474         Move rtl-specific bits in from branch_prob.
2475         (value_profile_transformations): Rename to
2476         rtl_value_profile_transformations.
2477         (struct value_prof_hooks): New.
2478         (rtl_value_prof_hooks): New.
2479         (rtl_register_value_prof_hooks): New.
2480         (tree_find_values_to_profile): New stub.
2481         (tree_value_profile_transformations): New stub.
2482         (tree_value_prof_hooks): New stub.
2483         (tree_register_value_prof_hooks): New stub.
2484         (find_values_to_profile): New.
2485         (value_profile_transformations): New.
2486         * value-prof.h: Add multiple inclusion guard.
2487         (struct histogram_value): Change rtx fields to void *.
2488         (rtl_register_value_prof_hooks): New declaration.
2489         (tree_register_value_prof_hooks): New declaration.
2490         (find_values_to_profile): New declaration.
2491         (free_profiled_values): New declaration.
2492         (value_profile_transformations): New declaration.
2493         (struct profile_hooks): New declaration.
2494         (init_branch_prob): Declaration moved from rtl.h.
2495         (branch_prob): Declaration moved from rtl.h.
2496         (end_branch_prob): Declaration mooved from rtl.h.
2497         (tree_register_profile_hooks): New declaration.
2498         (rtl_register_profile_hooks): New declaration.
2499         (tree_profile_hooks): New declaration.
2500         (rtl_profile_hooks): New declaration.
2501         * varasm.c: Include tree-mudflap.h.
2502         (TRAMPOLINE_ALIGNMENT): Remove.
2503         (make_decl_rtl): Call mudflap_enqueue_decl.
2504         (assemble_static_space):
2505         (assemble_trampoline_template): Set and return
2506         TRAMPOLINE_ALIGNMENT.
2507         * varray.c (element): Add GENERIC_PTR_NOGC entry.
2508         Add entry for 'tree *'.
2509         Add entry for struct edge_def *.
2510         (varray_copy): New.
2511         * varray.h (enum varray_data_enum): Add
2512         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
2513         VARRAY_DATA_TREE_PTR.
2514         (union varray_data_tag): Corresponding changes.
2515         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
2516         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
2517         VARRAY_EDGE, VARRAY_TREE_PTR,
2518         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
2519         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
2520         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
2521
2522         * config/*/*: Various updates for changed macros, tree
2523         codes, etc.  Check ChangeLog.tree-ssa.
2524
2525         * doc/cfg.texi: New file.
2526         * doc/tree-ssa.texi: New file.
2527         * doc/c-tree.texi: Document new codes.
2528         * doc/gccint.texi: Include new files.
2529         * doc/install.texi: Document new features.
2530         * doc/invoke.texi: Document new switches.
2531         * doc/passes.texi: Document new passes.
2532         * doc/rtl.texi: Update changed RTL codes.
2533         * doc/sourcebuild.texi: Update build instructions.
2534         * doc/standards.texi: Document Fortran changes.
2535         * doc/tm.texi: Update.
2536
2537 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
2538
2539         Replace several arrays with a struct of arrays.
2540         * combine.c (struct reg_stat): New.
2541         (init_reg_last_arrays): Renamed to...
2542         (init_reg_last): ...this.  Callers adjusted.
2543         (reg_stat): New.
2544         (combine_instructions): Allocate it and use it.
2545         (reg_last_death, reg_last_set, reg_last_set_value,
2546         reg_last_set_label, reg_last_set_table_tick,
2547         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
2548         reg_last_set_mode, reg_last_set_nonzero_bits,
2549         reg_last_set_sign_bit_copies): Replace throughout
2550         with items of reg_stat.
2551
2552 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2553
2554         PR optimization/15100
2555         * combine.c (distribute_notes): Don't create a dangling
2556         REG_LIBCALL/REG_RETVAL note.
2557
2558 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2559
2560         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
2561
2562         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
2563         negv2si2.
2564
2565 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2566
2567         * doc/md.texi (Standard Names): Fix typo in vec_init description.
2568
2569 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
2570
2571         * doc/gty.texi (GTY Options): Clarify example.
2572
2573 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
2574
2575         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
2576         Add const qualifier to altivec vector type if one is needed.
2577
2578 2004-05-11  Paul Brook  <paul@codesourcery.com>
2579
2580         * flags.h (flag_short_enums): Update comment.
2581         * opts.c (decode_options): Set flag_short_enums to 2.
2582         * toplev.c (flag_short_enums): Update comment.
2583         (process_options): Call default_short_enums target hook.
2584
2585 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
2586
2587         PR target/14063
2588         * config/rs6000/altivec.md (altivec_dssall):
2589         Change to unspec_volatile.
2590         (altivec_dss): Likewise.
2591
2592 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
2593
2594         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
2595         vnor.
2596         ("one_cmplv8hi2"): Same.
2597         ("one_cmplv4si2"): Same.
2598
2599 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2600
2601         PR target/15130
2602         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
2603         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
2604         into account.  Compute the correct number of general registers
2605         for the return value.  Generate a special push/pop sequence when
2606         failing to get a temporary register for non SHmedia epilogue.
2607         (sh_expand_epilogue): Add an argument to show whether it's for
2608         sibcall or not.  Set the 3rd argument of output_stack_adjust to
2609         -1 if needed.
2610         (sh_need_epilogue): Call sh_expand_epilogue with 0.
2611         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
2612         with 1.
2613         (epilogue): Call sh_expand_epilogue with 0.
2614
2615 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
2616
2617         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
2618         goto a cleanup label.  After the cleanup, free the allocated memory.
2619
2620 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
2621
2622         * config/rs6000/altivec.h (vec_sld): Add overloads for
2623         argument/return types of 'vector bool int', 'vector bool short'
2624         and 'vector bool char'.
2625
2626 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
2627
2628         * c-decl.c (store_parm_decls_newstyle): Correct test for a
2629         nested function.
2630
2631 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
2632
2633         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
2634         treating missing ones as "".
2635         * config/mips/mips.md: Remove constraints from match_operands and
2636         match_scratches if they appear in define_expands (except reload*),
2637         define_peephole2s, define_splits or attribute specifications.
2638         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
2639         constraint strings.
2640
2641 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
2642
2643         * config/rs6000/rs6000.c (function_arg_boundary): Always align
2644         AltiVec vectors.
2645         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
2646         vectors by refererence.  Align the same for TARGET_64BIT to a 16
2647         byte boundary.  Remove useless code.  Add function comment.
2648         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
2649         call to where it belongs.
2650         (function_arg_partial_nregs): Return true for all TARGET_32BIT
2651         -mabi=no-altivec AltiVec vectors.  Fix debug output.
2652         (rs6000_va_arg): Adjust for AltiVec change.
2653
2654 2004-05-10  Paul Brook  <paul@codesourcery.com>
2655
2656         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
2657         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
2658         (TARGET_DOUBLEWORD_ALIGN): Use it.
2659         (WCHAR_TYPE): Define.
2660         (WCHAR_SIZE_TYPE): Define.
2661         (SIZE_TYPE): Define.
2662
2663 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
2664
2665         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
2666         when size is 8 bytes.
2667         (function_arg_advance): Account for stack space used by AltiVec
2668         args when -mabi=altivec.  Simplify alignment calculations.  For
2669         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
2670         (function_arg): Similarly.
2671         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
2672         not AltiVec ABI.
2673         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
2674         Correct alignment, and align before testing reg count.  Remove
2675         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
2676         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
2677         TARGET_FPRS here..
2678         (rs6000_function_value): .. not here before call.
2679
2680 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
2681
2682         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
2683
2684 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
2685
2686         PR 15007
2687         * c-decl.c (current_file_decl): Rename to all_translation_units,
2688         adjust comment.
2689         (pop_scope): If popping file_scope, construct a
2690         TRANSLATION_UNIT_DECL and make it the context of all the
2691         symbols in the scope.
2692         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
2693         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
2694         anything to current_file_decl.
2695         (pushdecl_top_level): Likewise.
2696         (store_parm_decls_newstyle): Adjust check for nested function.
2697         (c_write_global_declarations): Update for renamed variable.
2698
2699 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
2700
2701         * config/rs6000/rs6000-protos.h
2702         (rs6000_conditional_register_usage): Protoize.
2703
2704         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
2705
2706         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
2707         function.
2708
2709 2004-05-08  Roger Sayle  <roger@eyesopen.com>
2710
2711         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
2712         where op is a comparison operator and C1 and C2 are integer constants
2713         into a range check.
2714         (fold): Call fold_div_compare.
2715
2716 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2717
2718         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
2719         problems with earlier versions of the GNU compiler.
2720
2721 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
2722
2723         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
2724         Declare.
2725
2726         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
2727         (rs6000_hard_regno_mode_ok): New.
2728         (rs6000_init_hard_regno_mode_ok): New.
2729         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
2730
2731         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
2732         result.
2733
2734 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
2735
2736         * config/rs6000/altivec.h (vector, pixel, bool): Do not
2737         define as macros #ifdef __APPLE_ALTIVEC__.
2738
2739 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
2740
2741         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
2742         Generate appropriate parallels for vector arguments
2743         passed to vararg functions. (function_arg): make the call
2744         to rs6000_mixed_function_arg for vector args as needed.
2745
2746 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2747
2748         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
2749         EABI_FLOAT_VARARGS_P.
2750
2751 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2752
2753         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
2754         * config/mips/mips.c (override_options): Disable branch likely
2755         instructions if TUNE_MIPS5500.
2756
2757 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2758
2759         * config/mips/mips.c (override_options): Allow the hi and lo registers
2760         to store any integral mode, not just MODE_INTs.
2761
2762 2004-05-07  Paul Brook  <paul@codesourcery.com>
2763
2764         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
2765         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
2766         (TARGET_DOUBLEWORD_ALIGN): Use it.
2767         (WCHAR_TYPE): Define.
2768         (WCHAR_SIZE_TYPE): Define.
2769         (SIZE_TYPE): Define.
2770
2771 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
2772
2773         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
2774         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
2775
2776 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
2777
2778         * loop-doloop.c (doloop_valid_p): Make sure that body
2779         gets freed.
2780
2781 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
2782
2783         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
2784         declaration.
2785         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
2786         (sparc_skip_caller_unimp): New global variable.
2787         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
2788         Use it instead of SKIP_CALLERS_UNIMP_P.
2789         * config/sparc/sparc.md (call expander): Add sanity check.
2790         (call_address_struct_value_sp32): Re-sync with expander.
2791         (call_symbolic_struct_value_sp32): Likewise.
2792         (return peepholes): Use 'sparc_skip_caller_unimp' instead
2793         of custom predicate.
2794
2795 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2796
2797         PR c++/14962
2798         * c-pragma.c (handle_pragma_redefine_extname): Only change
2799         the assembler name of FUNCTION_DECLs and VAR_DECLs.
2800
2801 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
2802
2803         * optabs.h (enum optab_index): Add new OTI_log1p.
2804         (log1p_optab): Define corresponding macro.
2805         * optabs.c (init_optabs): Initialize log1p_optab.
2806         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
2807         patterns.
2808         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
2809         using log1p_optab.
2810         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
2811         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2812
2813         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
2814
2815         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
2816         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
2817         Prototype here.
2818         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
2819         x87's fyl2xp1 instruction.
2820         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
2821         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
2822         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
2823         log1p  and log1pl built-ins as inline x87 intrinsics.
2824
2825 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
2826
2827         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
2828         * config/arm/freebsd.h: Likewise.
2829         * config/ia64/freebsd.h: Likewise.
2830         * config/sparc/freebsd.h: Likewise.
2831
2832 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
2833
2834         PR optimization/15296
2835         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
2836         getting last consecutive label at a branch.
2837         (relax_delay_slots): Similar, near top of loop.
2838
2839 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2840
2841         PR target/15202
2842         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
2843         register to general register.
2844
2845 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
2846
2847         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
2848         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
2849         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
2850         (STACK_BOUNDARY): Delete.
2851
2852 2004-05-06  Stuart Hastings  <stuart@apple.com>
2853
2854         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
2855         mistakenly clobbered by 1.423.
2856
2857 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
2858
2859         * doc/invoke.texi: Document -mvr4130-align.
2860         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
2861         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
2862         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
2863         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
2864         * config/mips/mips.md: Include sched-int.h.
2865         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
2866         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
2867         (override_options): Enable -mvr4130-align at -O3 and above.
2868         (mips_sim_insn): New variable.
2869         (mips_sim): New structure.
2870         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
2871         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
2872         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
2873         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
2874         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
2875         (mips_reorg): Call vr4130_align_insns.
2876         (vr4130_last_insn): New variable.
2877         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
2878         (vr4130_swap_insns_p, vr4130_reorder): New functions.
2879         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
2880         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
2881         (mips_use_dfa_pipeline_interface): Return true for the same.
2882         * config/mips/4130.md: New file.
2883         * config/mips/mips.md: Include it.  Add a peephole2 to convert
2884         "mult;mflo" into "mtlo;macc".
2885         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
2886         target of maccs.
2887         (*msac_using_macc): New pattern.
2888
2889 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
2890
2891         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
2892         (ir_vr55_hilo): Split into...
2893         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
2894         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
2895         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
2896         Add various multiplication bypasses.
2897         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
2898         multiplication.
2899
2900 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
2901
2902         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
2903         attribute to "XF".
2904
2905 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
2906
2907         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
2908         (fmod_optab, drem_optab): Define corresponding macros.
2909         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
2910         * genopinit.c (optabs): Implement fmod_optab and drem_optab
2911         using fmod?f3 and drem?f3 patterns.
2912         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
2913         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
2914         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
2915         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
2916         flag_unsafe_math_optimizations is set.
2917
2918         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
2919         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
2920
2921         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
2922         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
2923         Prototype here.
2924         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
2925         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
2926         fprem and fprem1 instructions.
2927         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
2928         Rename insn definition to x86_fnstsw_1.
2929         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
2930         x87 instructions.
2931         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
2932         and fmodl built-ins as inline x87 intrinsics.
2933         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
2934         and dreml built-ins as inline x87 intrinsics.
2935
2936 2004-05-05  Roger Sayle  <roger@eyesopen.com>
2937
2938         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
2939
2940 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
2941
2942         PR driver/9822
2943         * doc/invoke.texi (Spec Files): Remove documentation of %c.
2944
2945 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
2946
2947         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
2948         representation.
2949
2950 2004-05-06  Paul Brook  <paul@codesourcery.com>
2951
2952         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
2953         (arm_coproc_mem_operand): ... To this.
2954         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
2955         (arm_legitimate_index_p): Ditto.
2956         (vfp_mem_operand): Rename ...
2957         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
2958         (vfp_secondary_reload_class): Use it.
2959         (output_move_double): Use doubleword load/store instructions.
2960         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
2961         * config/arm/arm.h (TARGET_LDRD): Define.
2962         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
2963         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
2964         New splitter for invalid doubleword loads.
2965         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
2966         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
2967         * doc/md.texi: Document Uy constraint.
2968
2969 2004-05-05  Jan Hubicka  <jh@suse.cz>
2970
2971         PR opt/14980
2972         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
2973         inline clones.
2974
2975 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2976
2977         PR target/15290
2978         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
2979         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
2980
2981 2004-05-05  Mike Stump  <mrs@apple.com>
2982
2983         * config/darwin-c.c (add_framework): Copy the directory name as it
2984         can be freed later.  Also, ensure we always allocate enough room
2985         for the cached framework information.
2986         (find_subframework_header): Keep track of the directory where the
2987         subframework header was found.
2988         (framework_construct_pathname): Speed up by not trying to re-add a
2989         framework.
2990         * cppfiles.c (search_path_exhausted): Arrange for the missing
2991         header callback to be able to set the directory where the header
2992         was found.
2993         (cpp_get_dir): Add.
2994         * cpplib.h (missing_header_cb): Add a parameter.
2995         (cpp_get_dir): Add.
2996
2997 2004-05-03  Mike Stump  <mrs@apple.com>
2998
2999         * doc/invoke.texi (Directory Options): Document -iquote.
3000         * doc/cpp.texi: Likewise.
3001         * doc/cppopts.texi: Likewise.
3002         * c-opts.c (c_common_missing_argument): Add -iquote processing.
3003         (c_common_handle_option): Likewise.
3004         * c.opt (iquote): Add.
3005         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
3006         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
3007
3008         * c-opts.c (case OPT_I): Deprecate -I- support.
3009         * doc/invoke.texi: Likewise.
3010         * doc/cpp.texi: Likewise.
3011         * doc/cppopts.texi: Likewise.
3012
3013 2004-05-05  Steven Bosscher  <stevenb@suse.de>
3014
3015         * basic-block.h (free_basic_block_vars): Update prototype.
3016         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
3017         argument.
3018         (life_analysis): Update call.
3019         * ifcvt.c (if_convert): Likewise.
3020         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
3021         * passes.c (rest_of_handle_final): Likewise.
3022         (rest_of_compilation): Likewise.
3023         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3024
3025         * emit-rtl.c (next_real_insn): Use INSN_P.
3026         (prev_real_insn): Likewise.
3027
3028 2004-05-05  Eric Christopher  <echristo@redhat.com>
3029
3030         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
3031         representation.
3032
3033 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
3034
3035         * config/rs6000/rs6000.c (build_opaque_vector_type):
3036         New function.
3037         (rs6000_init_builtins): Use it.
3038
3039 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
3040
3041         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
3042         (func_table): Change type from char ** to vms_func_ref.
3043         (write_rtnbeg):  Update to reflect func_table change.  Use
3044         fde->funcdef_number instead of rtnnum in output.
3045         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
3046
3047 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3048             Richard Henderson  <rth@redhat.com>
3049
3050         PR target/14899
3051
3052         * c-common.c (vector_types_convertible_p): New function.
3053         * c-typeck.c (comptypes): Recurse on vector types.
3054         (convert_for_assignment): Use vector_types_convertible_p.
3055         (digest_init): Use vector_types_convertible_p to check
3056         validness of constant vector initializers; otherwise treat
3057         them as scalars.
3058         * tree.c (make_or_reuse_type): New.
3059         (build_common_tree_nodes): Use it.
3060         * cp/call.c (standard_conversion): Likewise.
3061         * cp/typeck.c (comptypes): Recurse on vector types.
3062         (convert_for_assignment): Use vector_types_convertible_p.
3063
3064 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
3065
3066         * config/mips/mips.c (override_options): Default to no
3067         generation of branch-likely operations when tuning for
3068         CPUs where they tend to have a negative performance impact
3069         (e.g., SB-1).
3070
3071 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3072
3073         * expr.c (store_constructor_field): Don't call store_constructor
3074         if bitsize is not a multiple of a byte.
3075
3076 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
3077
3078         * reload1.c (inherit_piecemeal_p): New function.
3079         (emit_reload_insns): When reloading a group of hard registers, use
3080         inherit_piecemeal_p to decide whether the values of individual hard
3081         registers can be inherited.
3082
3083 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3084
3085         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
3086         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
3087         * config/t-linux (LIB2ADDEHDEP): Likewise.
3088
3089 2004-05-04  Paul Brook  <paul@codesourcery.com>
3090
3091         * config/arm/crti.asm: Push an even number of registers.
3092         * config/arm/crtn.asm: And restore them.  Load via sp.
3093
3094 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3095
3096         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
3097         Collect overhead information.
3098         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
3099         parameter and pass it through.
3100         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
3101         MEM_STAT_DECL parameter and pass it through.
3102         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
3103         MEM_STAT_DECL parameter and pass it through.
3104
3105 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3106
3107         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
3108
3109         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
3110
3111         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
3112         rs6000_hard_regno_nregs.
3113
3114 2004-05-03  Eric Christopher  <echristo@redhat.com>
3115
3116         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
3117         prologue insn instead of setting up call.
3118         (s390_emit_epilogue): Ditto.
3119         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
3120         (define_constants): Add numbers for above patterns.
3121
3122 2004-05-03  Eric Christopher  <echristo@redhat.com>
3123
3124         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
3125         * config/s390/s390.c (s390_conditional_register_usage): ...here.
3126         * config/s390/s390-protos.h: Prototype.
3127
3128 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
3129
3130         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
3131         assignment.
3132
3133 2004-05-03  Eric Christopher  <echristo@redhat.com>
3134
3135         * config/mips/mips.md: Fix branch length attribute definition.
3136
3137 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3138
3139         * config.gcc: Remove --enable-altivec support.
3140
3141         * config/rs6000/altivec-defs.h: Remove.
3142
3143 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3144
3145         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
3146         * fixinc/fixincl.x: Regenerate.
3147
3148 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3149
3150         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
3151         definition.
3152         (log?f2, log10?f2, log2?f2): Reimplement expanders with
3153         float_truncate insn.
3154         (*fxtractsf3, *fxtractdf3): Remove insn definition.
3155         (logb?f2): Reimplement expanders with float_truncate insn.
3156
3157 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
3158
3159         PR 14718
3160         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
3161         force_type_die for CONST_DECL.
3162
3163 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3164             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3165
3166         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
3167         tm-dwarf2.h to tm_file.
3168         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
3169         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
3170         (ASM_DEBUG_SPEC): Delete.
3171
3172 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3173
3174         * optabs.h (enum optab_index): Add new OTI_expm1.
3175         (expm1_optab): Define corresponding macro.
3176         * optabs.c (init_optabs): Initialize expm1_optab.
3177         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
3178         patterns.
3179         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
3180         using expm1_optab.
3181         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
3182         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3183
3184         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
3185         to implement expm1, expm1f and expm1l built-ins as inline x87
3186         intrinsics.
3187
3188 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3189
3190         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
3191         * config/frv/frv.md (*return_true, *return_false): New patterns.
3192
3193 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3194
3195         * rtl.h (PHI_NODE_P): Remove.
3196
3197 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
3198
3199         PR middle-end/14988
3200         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
3201         when passed -2 as 'align'.
3202         (put_var_into_stack): Use 'bool' as the type for the three local
3203         predicates.  Adjust calls to put_reg_into_stack.
3204         When passed a CONCAT, instruct put_reg_into_stack to use
3205         a consecutive stack slot for the second part.
3206         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
3207         'consecutive_p' parameter.  Turn the three predicates into 'bool'
3208         parameters.  Retrieve the register mode from 'reg'.
3209         When consecutive_p is true, instruct assign_stack_local_1 to use
3210         BITS_PER_UNIT alignment.
3211         (put_addressof_into_stack): Use 'bool' as the type for the two
3212         local predicates. Adjust call to put_reg_into_stack.
3213
3214 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3215
3216         * fold-const.c (fold_convert_const, fold): Add missing
3217         FIX_ROUND_EXPR case.
3218
3219 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3220
3221         * configure.ac (FLEX, BISON): Only use tools from the build tree
3222         if build equals host.
3223         * configure: Rebuilt.
3224
3225         * config/frv/frv-protos.h (frv_expand_epilogue,
3226         frv_expand_fdpic_call): Add bool argument.
3227         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
3228         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
3229         (frv_expand_epilogue): Use new argument to decide whether to emit
3230         return instruction or copy the return address to LR.
3231         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
3232         sibcalls.
3233         (sibcall_operand): New.
3234         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
3235         PLUS nor LABEL_REF.  Add sibcall_operand.
3236         * config/frv/frv.md (call, call_value): Pass false to
3237         frv_expand_fdpic_call.
3238         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
3239         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
3240         sibcall_value_internal, sibcall_value_fdpicdi): New.
3241         (return_unsigned_true, return_unsigned_false): New.
3242         (epilogue): Adjust call to frv_expand_epilogue.
3243         (sibcall_epilogue): New.
3244
3245         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
3246         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
3247         before redefining them.
3248
3249 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3250
3251         * builtins.c (fold_fixed_mathfn): New function.
3252         (fold_builtin_lround, fold_builtin): Use it.
3253
3254 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
3255
3256         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
3257         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
3258
3259 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3260
3261         * config/cris/cris.h: Revert my "fix comment typos" patch.
3262
3263 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
3264
3265         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
3266
3267 2004-05-01  Falk Hueffner  <falk@debian.org>
3268
3269         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
3270         builtin_insll): Disallow 0 as first input operand.
3271
3272 2004-05-01  Falk Hueffner  <falk@debian.org>
3273
3274         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
3275
3276 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
3277
3278         PR middle-end/15054
3279         * expr.c (expand_expr_real): Do not call preserve_temp_slots
3280         on a TARGET_EXPR temp.
3281         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
3282         TARGET_EXPR temp slots.
3283
3284 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
3285
3286         * simplify-rtx.c (simplify_ternary_operation): When
3287         converting an IF_THEN_ELSE to a relational op, return
3288         correct mode.
3289
3290 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3291
3292         * builtins.c (fold_builtin_round): Fix comment typo.
3293         (fold_builtin_lround): New function.
3294         (fold_builtin): Use it.
3295
3296 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
3297
3298         PR target/11608
3299         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
3300         more like the one in config/dbxelf.h.
3301
3302 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
3303
3304         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
3305         and adjust definition accordingly.
3306         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
3307         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
3308         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
3309         VECTOR_TYPE.
3310
3311 2004-04-30  Jason Merrill  <jason@redhat.com>
3312
3313         PR c++/14587
3314         * config/i386/winnt.c (associated_type): Look for attributes on
3315         the TYPE_MAIN_VARIANT of *this.
3316         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
3317         apply the attributes to the variants.
3318
3319 2004-04-30  Paul Brook  <paul@codesourcery.com>
3320
3321         * config.gcc: Simplify arm --with-{cpu,tune} test.
3322         * config/arm/arm-cores.def: Document whitespace restrictions.
3323
3324 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3325
3326         PR other/1963
3327         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
3328
3329 2004-04-30  Brian Ford  <ford@vss.fsi.com>
3330             DJ Delorie  <dj@redhat.com>
3331
3332         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3333         (DWARF2_DEBUGGING_INFO): Define to enable.
3334         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
3335         DWARF2.
3336         * configure.ac (Target-specific assembler checks)
3337         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
3338         relocs.
3339         * configure: Regenerate.
3340         * config.in: Likewise.
3341
3342         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3343         (ASM_OUPUT_DWARF_OFFSET): Define.
3344
3345 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
3346
3347         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
3348         (s390_emit_call): New function prototype added.
3349         (s390_tls_get_offset): Function removed.
3350         * config/s390/s390.c (s390_function_ok_for_sibcall,
3351         s390_call_saved_register_used_p): New functions.
3352         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
3353         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
3354         (s390_emit_tls_call_insn): New function.
3355         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
3356         emit_call_insn.
3357         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
3358         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
3359         added.
3360         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
3361         register number used to hold the target address for sibcalls.
3362         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
3363         New expanders.
3364         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
3365         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
3366         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
3367         Expanders removed.
3368         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
3369         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
3370         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
3371         ("epilogue"): Changed the call to s390_emit_epilogue to use the
3372         new parameter.
3373
3374 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3375
3376         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
3377         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
3378         reg-stack.c, varasm.c, config/alpha/ev4.md,
3379         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
3380         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
3381         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
3382         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
3383         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
3384         config/ia64/itanium2.md, config/ip2k/ip2k.c,
3385         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
3386         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
3387         comment typos.
3388
3389 2004-04-30  Paul Brook  <paul@codesourcery.com>
3390
3391         * config.gcc: Default ep9312 to hard-float.
3392         * config/arm/arm-cores.def: Add ARCH field.
3393         * config/arm/arm.c (FL_FOR_ARCH*): Define.
3394         (arm_arch_cirrus): New variable.
3395         (all_cores): Set and use arch.
3396         (all_architectures): Ditto.
3397         (arm_arch_name): New variable.
3398         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
3399         Set and use arm_arch_cirrus.
3400         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
3401         (enum processor_type): Update ARM_CORE define.
3402         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
3403         (CPP_SPEC): Remove %(cpp_cpu_arch).
3404         (CPP_ARCH_DEFAULT_SPEC): Remove.
3405         (CPP_CPU_ARCH_SPEC): Remove.
3406         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
3407         (FPUTYPE_DEFAULT): Don't define here.
3408
3409 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
3410
3411         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
3412         updates too.
3413
3414 2004-04-30  Paul Brook  <paul@codesourcery.com>
3415
3416         * arm.c (arm_needs_doubleword_align): Use mode alignment.
3417
3418 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
3419
3420         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
3421         vec_sububs.
3422         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
3423         duplicates.
3424
3425 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3426
3427         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
3428         atan2?f3 expanders.
3429
3430 2004-04-29  Nick Clifton  <nickc@redhat.com>
3431
3432         Bug 14093
3433         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
3434         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
3435         Delete static from definition.
3436         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
3437
3438 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3439
3440         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
3441         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
3442         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
3443         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
3444
3445 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
3446
3447         * commom.opt (Wfatal-errors): Add it.
3448         * diagnostic.c (flag_fatal_errors): Define it.
3449         (diagnostic_action_after_output): Check for flag_fatal_errors.
3450         * flags.h (flag_fatal_errors): Declare it.
3451         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
3452         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
3453
3454 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
3455
3456         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
3457         blocks which have kill flag set.
3458
3459 2004-04-29  Ben Elliston  <bje@au.ibm.com>
3460
3461         * configure.ac (--with-as): Abort if user-supplied assembler
3462         cannot be executed.
3463         (--with-ld): Likewise for the linker.
3464         * configure: Regenerate.
3465
3466 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3467
3468         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
3469         isn't NULL before using it.
3470
3471 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
3472
3473         PR target/15189
3474         * config/mips/mips.md (load_df_low): Use default length.
3475         (load_df_high, store_df_high): Likewise.
3476
3477 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3478
3479         * config/mips/mips.md, config/mips/sb1.md,
3480         config/rs6000/rs6000.c: Fix comment typos.
3481
3482 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3483
3484         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
3485         Fix comment typos.
3486
3487 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
3488
3489         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
3490         (delete_if_ordinary): Use above macro.
3491         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
3492         Update copyright.
3493         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
3494
3495 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
3496
3497         * c-decl.c (get_parm_info): Use the correct tag keywords when
3498         warning about type declarations in prototypes.
3499
3500 2004-04-29  Paul Brook  <paul@codesourcery.com>
3501
3502         * config.gcc: Pull list of cores from arm-cores.def.
3503
3504 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3505
3506         * combine.c (combine_simplify_rtx): Adjust call to use
3507         simplify_relational_operation.  Do not use SELECT_CC_MODE
3508         when a comparison already has a MODE_CC mode.
3509
3510 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3511
3512         (simplify_set): simplify_relational_operation may now
3513         return another relational expression.
3514         * cse.c (fold_rtx): simplify_relational_operation now
3515         takes of computing the comparison mode.
3516         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
3517         remove dead code.
3518         (do_compare_rtx_and_jump): Likewise.
3519         * integrate.c (subst_constants): simplify_relational_operation
3520         may now return another relational expression.
3521         * simplify-rtx.c (simplify_gen_relational): Move most code to
3522         the new simplify_relational_operation and
3523         simplify_relational_operation_1 functions.
3524         (simplify_relational_operation): Rewritten.
3525         (simplify_relational_operation_1): New function.
3526         (simplify_ternary_operation): simplify_relational_operation
3527         may now return another relational expression.
3528         (simplify_rtx): Remove unnecessary temp variable.
3529
3530 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
3531
3532         * reg-stack.c (swap_to_top): New function.
3533         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
3534         swap_to_top().
3535         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
3536         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
3537         UNSPEC_FSCALE_EXP.
3538
3539         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
3540         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
3541         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
3542         x87's fscale insn.
3543         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
3544         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
3545         patterns.
3546
3547 2004-04-28  Serge Belyshev  <1319@bot.ru>
3548
3549         PR 14944
3550         * coverage.c (read_counts_file): Fix usage of warning () call.
3551         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
3552
3553 2004-04-28  Ben Elliston  <bje@au.ibm.com>
3554
3555         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
3556         options with "-" in the option index.
3557         (SPARC Options): Likewise.
3558         (M32R/D Options): Likewise.
3559
3560 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3561
3562         * convert.c (convert_to_integer): Convert (long)round -> lround,
3563         etc.
3564
3565 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
3566
3567         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
3568         Return false if we do not have fp register.
3569         (addrs_ok_for_quad_peep): Rename to ...
3570         (mems_ok_for_quad_peep): this.
3571         Add check for volatile memory.
3572         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
3573         Rename to ...
3574         (mems_ok_for_quad_peep): this.
3575         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
3576         to peephole2's.
3577         (lfq_power2): New instruction.
3578         (stfq_power2): Likewise.
3579
3580 2004-04-28  Jan Hubicka  <jh@suse.cz>
3581
3582         PR c/15004
3583         * function.c (do_warn_unused_parameter): Break out form ...
3584         (expand_function_end): ... here; warn only when not using cgraphunit.
3585         * function.h (do_warn_unused_parameter): Declare.
3586         * cgraphunit.c: Include function.h.
3587         (cgraph_finalize_function): Do unused parameter warning.
3588         * Makefile.in (cgraphunit.o): Depend on function.h
3589
3590 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
3591
3592         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
3593         calling install-info on $(DESTDIR)$(infodir)/dir already being
3594         present.
3595
3596 2004-04-28  Paul Brook  <paul@codesourcery.com>
3597
3598         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
3599
3600 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
3601
3602         * gcse.c (find_moveable_store): Do not accept store insns with
3603         REG_EH_REGION note.
3604
3605 2004-04-28  Paul Brook  <paul@codesourcery.com>
3606
3607         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
3608         * function.c (assign_temp): Ditto.
3609         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
3610
3611 2004-04-28  Paul Brook  <paul@codesourcery.com>
3612
3613         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
3614
3615 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
3616
3617         * var-tracking.c (variable_different_p): Add a parameter
3618         compare_current_location, compare current location of variable parts
3619         if it is true.
3620         (dataflow_set_different_1): Pass compare_current_location == false.
3621         (dataflow_set_different_2): Pass compare_current_location == false.
3622         (emit_notes_for_differences_1): Pass compare_current_location == true.
3623
3624 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
3625
3626         * config/s390/s390.md ("casesi"): Mark jump table access as
3627         non-trapping and unchanging.
3628
3629 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3630
3631         PR debug/14829
3632         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
3633         callers.
3634         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
3635         number for indexing hard_regno_nregs array.
3636
3637 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
3638
3639         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
3640         * config/darwin-crt2.c: Only have contents on __ppc__.
3641
3642 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
3643
3644         * config/xtensa/xtensa.c (call_insn_operand): Check
3645         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
3646         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
3647         * config/xtensa/xtensa.md (call, call_value): Likewise.
3648
3649 2004-04-27  Wu Yongwei  <adah@sh163.net>
3650
3651         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
3652         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
3653         (__gthread_mutex_init_function): Replace CreateMutex with
3654         initialization of custom mutex using CreateSemaphore.
3655         (__gthread_mutex_lock): Use InterlockedIncrement.
3656         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
3657         (__gthread_mutex_unlock): Use InterlockedDecrement and
3658         ReleaseSemaphore to unlock
3659         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
3660         __gthread_mutex_lock, __gthread_mutex_trylock,
3661         __gthread_mutex_unlock): Adjust to match inline versions in
3662         gthr-win32.h.
3663
3664 2004-04-27  Paul Brook  <paul@codesourcery.com>
3665
3666         * config/arm/arm.c (arm_promote_prototypes): New function.
3667         (TARGET_PROMOTE_PROTOTYPES): Use it.
3668
3669 2004-04-27  Paul Brook  <paul@codesourcery.com>
3670
3671         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
3672
3673 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
3674
3675         * config/alpha.c (alpha_end_function): For OpenVMS gas,
3676         correctly output .pdesc directive before .end.
3677
3678 2004-04-26  James E Wilson  <wilson@specifixinc.com>
3679
3680         Bug 14927
3681         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
3682         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
3683
3684 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
3685
3686         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
3687         * config/pa/pa-hpux10.h: Likewise.
3688         * config/pa/pa-hpux11.h: Likewise.
3689
3690 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
3691
3692         * doc/invoke.texi (Overall Options): Document default for -o
3693         for PCH files.
3694
3695 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3696
3697         * builtins.c (expand_builtin_update_setjmp_buf): New function.
3698         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
3699         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
3700
3701 2004-04-26  Paul Brook  <paul@codesourcery.com>
3702
3703         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
3704
3705 2004-04-26  Paul Brook  <paul@codesourcery.com>
3706
3707         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
3708
3709 2004-04-25  Roger Sayle  <roger@eyesopen.com>
3710
3711         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
3712         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
3713         X % -1 as 0.
3714
3715 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
3716
3717         PR bootstrap/15141
3718         * except.c (connect_post_landing_pads): Delete insns after the
3719         barrier when generating a unwind_resume_libfunc call.
3720
3721 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3722
3723         PR/c++ 15119
3724         * tree.c (substitute_placeholder_in_expr, case 4): New case,
3725         for TARGET_EXPR.
3726
3727 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3728
3729         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3730         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
3731         inhibit_libc is defined.
3732
3733 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
3734
3735         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
3736         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
3737         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
3738         (TARGET_SCHED_VARIABLE_ISSUE): Define.
3739         (mips_adjust_cost): Move later in file, next to other sched hooks.
3740         (mips_macc_chains_last_hilo): New variable.
3741         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
3742         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
3743         * config/mips/mips.md (may_clobber_hilo): New attribute.
3744
3745 2004-04-24  Roger Sayle  <roger@eyesopen.com>
3746             Bruce Korb  <bkorb@gnu.org>
3747
3748         * fixinc/inclhack.def (aix_syswait_2): New fix.
3749         * fixinc/fixincl.x: Regenerate.
3750         * fixinc/tests/base/sys/wait.h: Update for new test.
3751
3752 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
3753
3754         PR target/14960
3755         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
3756         to non_fixed_size, and leave out fixed_size from the sum.
3757         (generate_set_vrsave): Correct clobbers.
3758         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
3759         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
3760         (rs6000_libcall_value): Likewise.
3761         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
3762         (FUNCTION_ARG_REGNO_P): Likewise.
3763
3764 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
3765
3766         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
3767         is a CONST_INT.
3768         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
3769         with NARROW_OP1 instead of OP1.
3770
3771 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
3772
3773         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
3774         and __s390x__ hosts.
3775
3776 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3777
3778         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
3779         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
3780         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
3781         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
3782         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
3783         * builtins.c (expand_builtin_fork_or_exec): New.
3784         (expand_builtin): Call it.
3785         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
3786         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
3787         * c-common.c (PID_TYPE): New macro.
3788         (c_common_nodes_and_builtins): Initialize pid_type_node.
3789         * calls.c (special_function_p): Do not handle fork and exec.
3790         (expand_call): Do not handle ECF_FORK_OR_EXEC.
3791         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3792         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
3793         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3794         __gcov_execv, __gcov_execvp, __gcov_execve): New.
3795         * tree.h (enum tree_index): Add TI_PID_TYPE.
3796         (pid_type_node): New macro.
3797         (ECF_FORK_OR_EXEC): Removed.
3798
3799 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
3800
3801         PR optimization/13985
3802         * cfgloopmanip.c (fix_loop_placements): New prototype.
3803         Call fix_bb_placements on the preheader of loops that have
3804         been reparented.
3805         (remove_path): Adjust call to fix_loop_placements.
3806
3807 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
3808
3809         * config/darwin7.h: New file.
3810         * config.gcc (*-*-darwin*): Add darwin7.h if the
3811         version is greater than 6.
3812         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
3813         (MATH_LIBRARY): Wrap in ifdefs.
3814
3815 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
3816
3817         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
3818         loading iWMMXt registers with a frame pointer.  Use post-increment
3819         without a frame pointer.
3820         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
3821
3822 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
3823
3824         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
3825         mode" rather than "-funit-at-a-time" since -O2 enables it
3826         without requiring -f* options.  Refer to -fprofile-generate and
3827         -fprofile-use correctly.  Move -funit-at-a-time among options
3828         enabled by -O.  Add information about unit-at-a-time caveats.
3829
3830 2004-04-22  Per Bothner  <per@bothner.com>
3831
3832         * line-map.h (struct line_maps):  New field highest_line.
3833         (linemap_position_for_column):  Make non-inline function.
3834         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
3835         * line-map.c (linemap_init):  Clear highest_line field.
3836         (linemap_add):  Set highest_line field.
3837         (linemap_line_start):  Minor optimization - use highest_line field.
3838         Reduce maximum column hint to 10000.  Update highest_line field.
3839         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
3840         * cpphash.h (struct cpp_reader):  Remove line field - instead use
3841         line_table->highest_line.
3842         (saved_line):  Remove unused field.
3843         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
3844         Use  line_table's highest_line field instead of cpp_reader's line.
3845         * cpplib.c (start_directive):  Likewise use highest_line field.
3846         (do_line, do_linemarker):  Likewise just use newest map.
3847         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
3848         * cpperror.c (cpp_error):  Likewise use highest_line field.
3849         * cppfiles.c (open_file_failed:  Likewise.
3850         (cpp_make_system_header):  Likewise use newest map and highest_line.
3851         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
3852         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
3853         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
3854         _cpp_lex_direct):  Likewise use highest_line.
3855         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
3856         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
3857         and use newest map.
3858         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
3859         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
3860         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
3861
3862 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
3863
3864         PR bootstrap/14992
3865         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
3866         * config/linux.h (USE_LD_AS_NEEDED): Define.
3867         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
3868         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
3869         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
3870         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
3871         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
3872         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
3873         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
3874
3875 2004-04-22  Per Bothner  <per@bothner.com>
3876
3877         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
3878         Fixes PR preprocessor/15067.
3879
3880 2004-04-23  Andreas Schwab  <schwab@suse.de>
3881
3882         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
3883         avoid aliasing warning.
3884
3885 2004-04-22  Jan Hubicka  <jh@suse.cz>
3886             Mostafa Hagog <mustafa@il.ibm.com>
3887
3888       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
3889       * cfgloopanal.c (expected_loop_iterations): Change the return value
3890
3891 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
3892
3893         * cselib.h (struct elt_loc_list): Remove canon_loc field.
3894         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
3895         (cselib_invalidate_mem): Remove all canon_loc and canon_x
3896         traces.
3897
3898 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
3899
3900         Revert
3901         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
3902
3903                 * var-tracking.c (variable_part_different_p): Variable parts
3904                 differ when the most recent locations differ.
3905
3906 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
3907
3908         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
3909         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
3910         (embedded_pic_offset): Delete.
3911         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
3912         MASK_* constants.
3913         (TARGET_EMBEDDED_PIC): Delete.
3914         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
3915         (ASM_SPEC): Remove -membedded-pic.
3916         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
3917         (ASM_OUTPUT_CASE_LABEL): Likewise.
3918         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
3919         * config/mips/windiss.h (ASM_SPEC): Likewise.
3920         * config/mips/mips.c (struct machine_function): Remove
3921         embedded_pic_fnaddr_rtx.
3922         (TARGET_ENCODE_SECTION_INFO): Remove override.
3923         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
3924         (override_options): Remove -membedded-pic handling.
3925         (print_operand): Remove handling of '%S'.
3926         (mips_select_section: Remove -membedded-pic handling.
3927         (mips_encode_section_info): Delete.
3928         (mips_output_conditional_branch): Remove mention of -membedded-pic.
3929         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
3930         -membedded-pic handling.
3931         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
3932
3933 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
3934
3935         * var-tracking.c (frame_base_decl): Remove useless GTY.
3936
3937 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
3938
3939         * config/rs6000/rs6000.c (rs6000_override_options): Error when
3940         user wants altivec and e500 instructions.
3941
3942 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
3943
3944         PR target/14813
3945         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
3946         in .init_array section to ...
3947         * config/ia64/crtbegin.asm: Here.
3948
3949         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
3950         and hidden if HAVE_INITFINI_ARRAY is defined.
3951
3952 2004-04-21  James E Wilson  <wilson@specifixinc.com>
3953
3954         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
3955         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
3956         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
3957         (fp_register_operand, lo_operand): New.
3958         (mips_rtx_costs): Add TUNE_SB1 support.
3959         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
3960         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
3961         (mips_multipass_dfa_lookahead): New.
3962         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
3963         TUNE_SB1): New.
3964         (TARGET_SWITCHES): Add -mfp-exceptions support.
3965         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
3966         (BRANCH_COST): Fix whitespace.
3967         * config/mips/mips.md: Include sb1.md.
3968         * config/mips/sb1.md: New file.
3969         * doc/invoke.texi: Document -mfp-exceptions.
3970
3971         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
3972         comment.
3973         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
3974         (fixincl.o-warn): Delete.
3975
3976 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
3977
3978         * config/rs6000/rs6000 (print_operand) ['z']:
3979         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
3980
3981 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
3982
3983         * config.gcc: Support --with-arch=iwmmxt for ARM.
3984
3985 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3986
3987         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
3988         in two more places; remove unneeded force_reg
3989
3990 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
3991
3992         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
3993         for TARGET_MACHO.
3994         (print_operand): For TARGET_MACHO check to see if we need a stub
3995         and output one if we need it.
3996
3997         PR debug/15033
3998         * dwarf2out.c (rtl_for_decl_location): Check for NULL
3999         rtl.
4000
4001 2004-04-20  James E Wilson  <wilson@specifixinc.com>
4002
4003         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
4004         (vall_value_gp): Likewise.
4005
4006 2004-04-20  DJ Delorie  <dj@redhat.com>
4007
4008         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
4009         variables stored in word registers, then in memory.
4010
4011 2004-04-20  Eric Christopher  <echristo@redhat.com>
4012
4013         * cp/parser.c (cp_parser_declaration): Move translate
4014         up before tokens are lexed.
4015
4016 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
4017
4018         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
4019         (asin_optab, acos_optab): Define corresponding macros.
4020         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
4021         * genopinit.c (optabs): Implement asin_optab and acos_optab
4022         using asin?f2 and acos?f2 patterns.
4023         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
4024         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
4025         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
4026         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4027
4028         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
4029         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
4030         acos, acosf and acosl built-ins as inline x87 intrinsics.
4031
4032 2004-04-20  Paul Brook  <paul@codesourcery.com>
4033
4034         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
4035
4036 2004-04-20  Paul Brook  <paul@codesourcery.com>
4037
4038         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
4039
4040 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
4041
4042         Revert part of 2004-04-17 change that moved -frename-registers
4043         to -O1.  -frename-registers is buggy.
4044
4045         * toplev.c (flag_rename_registers): Initialize to 0.
4046         * doc/invoke.texi (Optimize options): Move -frename-registers
4047         to "Not triggered by any -O level" section.  Adjust commentary
4048         accordingly.
4049
4050 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
4051
4052         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
4053
4054 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
4055
4056         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
4057         for mflo and mfhi instructions.
4058         (mips_output_move): Remove mflo and mfhi handling.
4059         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
4060         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
4061         Likewise various define_peephole2s.
4062         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
4063         alternatives.
4064         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
4065         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
4066         (mfhilo_di, mfhilo_si): New patterns.
4067
4068 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4069
4070         * function.c (assign_parms): Force
4071         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
4072
4073 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4074
4075         * var-tracking.c (variable_part_different_p): Variable parts differ
4076         when the most recent locations differ.
4077
4078 2004-04-19  James E Wilson  <wilson@specifixinc.com>
4079
4080         * rtl.h (reg_set_last): Delete declaration.
4081         * rtlanal.c (reg_set_last): Delete.
4082
4083 2004-04-19  Roger Sayle  <roger@eyesopen.com>
4084
4085         * fold-const.c (fold_convert): Make function extern/public.
4086         * tree.h (fold_convert): Prototype here.
4087         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4088         expand_builtin_strrchr, expand_builtin_strpbrk,
4089         expand_builtin_mempcpy, expand_builtin_bcopy,
4090         expand_builtin_bzero, expand_builtin_memcmp,
4091         expand_builtin_strcmp, expand_builtin_strncmp,
4092         stabilize_va_list, expand_builtin_sprintf,
4093         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
4094         fold_builtin_exponent, fold_builtin_mempcpy,
4095         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
4096         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
4097         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
4098
4099 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
4100
4101         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
4102         (move_from_CR_gt_bit): New.
4103         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
4104         E500.
4105         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
4106         E500.
4107
4108         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
4109         (tstsfeq_gpr): Same.
4110         (cmpsfgt_gpr): Same.
4111         (tstsfgt_gpr): Same.
4112         (cmpsflt_gpr): Same.
4113         (tstsflt_gpr): Same.
4114         (e500_cceq_ior_compare): New.
4115         (e500_flip_gt_bit): New.
4116
4117         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
4118         (print_operand): Add 'c' and 'D'.
4119         (rs6000_generate_compare): Rewrite to generate correct rtl.
4120         (rs6000_emit_sCOND): Handle E500.
4121         (output_cbranch): Adjust for changes in rs6000_generate_compare.
4122         (output_e500_flip_gt_bit): New.
4123
4124         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
4125         Protoize.
4126
4127 2004-04-19  Eric Christopher  <echristo@redhat.com>
4128
4129         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
4130
4131 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
4132
4133         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
4134         fix information.
4135
4136 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4137
4138         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
4139         download URL.
4140
4141 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
4142
4143         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
4144         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
4145
4146 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
4147
4148         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
4149         (fold_builtin): Update caller to match.
4150
4151         PR bootstrap/15009
4152         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
4153
4154         PR bootstrap/14999
4155         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
4156
4157 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4158
4159         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
4160
4161         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
4162         (expand_mult_highpart_optab): Likewise.
4163         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
4164
4165 2004-04-19  Paul Brook  <paul@codesourcery.com>
4166
4167         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
4168         floatunssisf2, floatunssidf2): New patterns.
4169
4170 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
4171
4172         PR other/14918
4173         * doc/invoke.texi (-fprofile-generate): Document requirement to
4174         use -fprofile-generate when linking.
4175
4176         * doc/extend.texi (Strong Using): Warn users against using this
4177         feature.
4178
4179 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
4180
4181         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
4182         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
4183         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
4184         * config/mips/mips.c (struct mips16_constant): Renamed from struct
4185         constant.  Propogate change throughout file.
4186         (struct machine_function): Remove insns_len.
4187         (mips_string_length, mips16_strings, string_constants): Delete.
4188         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
4189         when generating mips16 code.  Remove special mips16 treatment of
4190         string constants.
4191         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
4192         to have the form LABEL+CONSTANT.
4193         (mips_symbolic_address_p): Fix comment.
4194         (m16_usym8_4, m16_usym5_4): Delete.
4195         (mips_output_function_epilogue): Remove mips16 string handling.
4196         (mips_output_mi_thunk): Call mips16_lay_out_constants.
4197         (mips_select_section, mips_encode_section_info): Remove mips16
4198         string handling.
4199         (struct mips16_constant_pool): New.
4200         (add_constant): Take a mips16_constant_pool structure.  Keep pool
4201         sorted into order of ascending mode size.  Keep track of the highest
4202         possible start address, taking padding and the masking of the base PC
4203         value into account.
4204         (dump_constants_1): New function, split out from dump_constants.
4205         Handle vector constants.  Use gen_consttable_{int,float} rather than
4206         separate functions for each mode.
4207         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
4208         rather than separate functions for each alignment.
4209         (mips_find_symbol): Delete.
4210         (mips16_insn_length): New function, split out from
4211         mips16_lay_out_constants.
4212         (mips16_rewrite_pool_refs): New function.
4213         (mips16_lay_out_constants): Rework. Remove string handling.
4214         Always create an inline constant pool.
4215         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
4216         (UNSPEC_ALIGN): New constants.
4217         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
4218         (UNSPEC_ALIGN_[248]): Delete.
4219         (consttable_int, consttable_float, align): New patterns.
4220         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
4221
4222 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
4223
4224         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
4225         __unn_args_eq.
4226
4227 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
4228
4229         PR target/14715
4230         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
4231         with STARTING_FRAME_OFFSET.
4232
4233 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4234
4235         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
4236         * config/mips/mips.c (macc_msac_operand): New function.
4237         * config/mips/mips.md (*msac): Move after *macc.
4238         (*msac2): New.  Generalize macc-related peepholes so that they apply
4239         to msac too.
4240
4241 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
4242
4243         * opts.c (decode_options): Do not enable flag_rename_registers
4244         and flag_web at -O3.
4245         * toplev.c (flag_rename_registers): Initialize
4246         flag_rename_registers and flag_web to
4247         AUTODETECT_FLAG_VAR_TRACKING.
4248         (default_debug_hooks): New global.
4249         (process_options): Initialize default_debug_hooks.  Warn if
4250         -fvar-tracking specified but not supported by the current
4251         debug format.  Do not run var tracking at -O0 or if not
4252         supported by the current debug format, even if
4253         -fvar-tracking was given.  If -fno-rename-registers
4254         is not specified, always run register renaming if var
4255         tracking is supported by the default debugging information
4256         format for the target, and we are at -O1 or higher; similarly
4257         for -fweb, but only at -O2 or higher.
4258         * doc/invoke.texi (Optimize Options): Document this.
4259
4260 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4261
4262         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
4263         * configure: Regenerate.
4264
4265 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4266
4267         * gcc.c (used_arg): Check whether an option has been removed.
4268
4269 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4270
4271         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
4272         debugging on Solaris 7 and up.
4273
4274 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4275
4276         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
4277         IRIX 5 port.
4278         Remove -save-temps workaround, handled automatically.
4279         Require GNU binutils 2.15 for debugging.
4280         Remove SGI make warnings since GNU make is now required.
4281         (Specific, mips-sgi-irix6): Some markup fixes.
4282         Describe MIPSpro C problems and workarounds.
4283         Mention working O32 ABI support.
4284         Recommend GNU as 2.15 for O32 with debugging.
4285         Remove description of fixed structure pass/return bug.
4286
4287 2004-04-16  DJ Delorie  <dj@redhat.com>
4288
4289         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
4290         TYPE_FIELDS.
4291         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
4292
4293 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4294
4295         * pa.md: Remove unnecessary declarations for asm_out_file.
4296
4297         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
4298         SAR register.  Fix comment.
4299         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
4300         (%cr11).
4301
4302         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
4303
4304 2004-04-16  Nick Clifton  <nickc@redhat.com>
4305
4306         * config/arm/arm.c (arm_override_options): Revert previous patch.
4307         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
4308         be safely built.
4309
4310 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
4311
4312         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
4313         bug.
4314         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
4315         TARGET_DEFAULT): Changed. Ditto.
4316         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
4317         TARGET_ENDIAN_DEFAULT): Added. Ditto.
4318         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
4319         (TARGET_ENDIAN_DEFAULT): Added.
4320
4321 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4322
4323         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
4324         ATTR_CONST_NOTHROW_LIST.
4325
4326 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4327
4328         PR/middle-end 14915
4329         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
4330         BITS_BIG_ENDIAN.
4331
4332 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4333
4334         * ra-debug.c (ra_print_rtx): Add break's to case legs.
4335
4336 2004-04-14  James E Wilson  <wilson@specifixinc.com>
4337
4338         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
4339
4340 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
4341
4342         * libada-mk.in: New file.
4343         * configure.ac: Create libada-mk from libada-mk.in.
4344         * configure: Regenerate.
4345
4346 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
4347
4348         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
4349         (logb_optab, ilogb_optab): Define corresponding macros.
4350         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
4351         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
4352         using logb?f2 and ilogb?i2 patterns.
4353         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
4354         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
4355         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
4356         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4357
4358         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
4359         and UNSPEC_XTRACT_EXP.
4360
4361         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
4362         patterns to implement fxtract x87 instruction.
4363         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
4364         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
4365         intrinsics.
4366         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
4367         x87's fxtract insn.
4368
4369 2004-04-14  Eric Christopher  <echristo@redhat.com>
4370
4371         * config/mips/t-elf: Enable multilibs by default.
4372
4373 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
4374
4375         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
4376         previous fix to check HAVE_return at runtime too.
4377
4378 2004-04-14  Nick Clifton  <nickc@redhat.com>
4379
4380         * config/arm/arm.c (arm_override_options): If the user has not
4381         specified an ABI, then default to AAPCS for the iWMMXt processor.
4382         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
4383         * config/arm/t-xscale-coff: Likewise.
4384
4385 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4386
4387         * builtins.c (fold_builtin_isdigit): New.
4388         (fold_builtin): Handle BUILT_IN_ISDIGIT.
4389         * defaults.h: Add TARGET_DIGIT0 and sort.
4390         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
4391
4392 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4393
4394         * builtins.c (fold_builtin_cabs, fold_builtin): Use
4395         `mathfn_built_in' to determine the new builtin.
4396         * fold-const.c (fold): Likewise.
4397
4398 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
4399
4400         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
4401         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
4402         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
4403         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
4404         (ASM_SPEC): Update accordingly.
4405         * config/mips/mips.c: Update after above renaming.
4406         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
4407         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
4408
4409 2004-04-13  James E Wilson  <wilson@specifixinc.com>
4410
4411         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
4412         increment errorcount and return false instead of true.
4413
4414 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
4415
4416         * optabs.c (expand_twoval_unop): Reorder function arguments.
4417         * builtins.c (expand_builtin_mathfn_3): Update calls to
4418         expand_twoval_unop.
4419
4420         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
4421         and UNSPEC_TAN_TAN. Add missing comment.
4422
4423         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
4424         patterns to implement fptan x87 instruction.
4425         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
4426         and tanl built-ins as inline x87 intrinsics. Define corresponding
4427         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
4428         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
4429         x87's fptan insn.
4430
4431 2004-03-13  Richard Henderson  <rth@redhat.com>
4432
4433         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
4434         for LABEL_REFs.
4435
4436         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
4437         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
4438         * doc/invoke.texi: Update to match.
4439
4440         * varasm.c (unlikely_text_section): Use assemble_align instead of
4441         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
4442         correct alignment argument.
4443
4444 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
4445
4446         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
4447         after setting reg_last_reload_reg for optional output reloads.
4448
4449 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
4450
4451         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
4452         Definition of these two macros are corrected by adding
4453         matchine right paren.
4454
4455 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
4456
4457         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
4458
4459 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4460
4461         * config/i386/i386.c (output_387_reg_move): New function.
4462         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
4463         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
4464         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
4465         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
4466         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
4467
4468 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4469
4470         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
4471         TYPE_DECL.
4472         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
4473         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
4474         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
4475         Use skip_simple_arithmetic to find SAVE_EXPR.
4476         (force_type_save_exprs, force_type_save_exprs_1): New functions.
4477         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
4478         Properly chain multiple pointers.
4479         (copy_tree_r): Copy a TYPE_DECL.
4480         * tree.c (variably_modified_type_p): Add some missing tests and
4481         make some other minor changes.
4482         * tree.h (force_type_save_exprs): New declaration.
4483
4484 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4485
4486         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
4487         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
4488         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
4489         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
4490         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
4491         x%-1 into 0 (or x&0 if x has side-effects).
4492
4493 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4494
4495         * config/rs6000/rs6000.md: Document why a pattern is not
4496         available.
4497
4498         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
4499         of floats on the E500.
4500         (branch_positive_comparison_operator): Do not allow NE even on the
4501         E500.
4502
4503 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4504
4505         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
4506         in_text_unlikely_section to in_unlikely_text_section.
4507
4508 2004-04-11  Roger Sayle  <roger@eyesopen.com>
4509
4510         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
4511         calling convention to allow a NULL_TREE to be returned.  Factor
4512         sanity checks from callers, return NULL_TREE when appropriate.
4513         (fold): Handle COMPOUND_EXPR operands of binary expressions
4514         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
4515         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
4516         calls to fold_binary_op_with_conditional_arg.
4517
4518 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4519
4520         * config/mips/iris5.h (current_section_flags):  Add
4521         in_unlikely_executed_text and default case.
4522
4523 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
4524
4525         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
4526         failure on solaris. Place ifdef HAVE_return around gen_ret call.
4527         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
4528         HAVE_return and place it around the place where it is needed.
4529
4530 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
4531
4532         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
4533         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
4534         and NORMAL_TEXT_SECTION_NAME.
4535         (unlikely_text_section): Check targetm.have_named_sections
4536         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
4537         instead of SECTION_FORMAT_STRING.
4538         * config/mips/iris5.h (current_section_name): Add
4539         in_unlikely_executed_text case and move the abort into the switch.
4540         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
4541         (NORMAL_TEXT_SECTION_NAME): Remove.
4542         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
4543         (SECTION_FORMAT_STRING): Remove.
4544         * defaults.h (SECTION_FORMAT_STRING): Remove.
4545         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
4546         (SECTION_FORMAT_STRING): Remove.
4547
4548 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
4549
4550         * c-typeck.c (common_type): Prefer long long to long when same
4551         precision.
4552
4553 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
4554
4555         PR 14887
4556         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
4557         mode argument.
4558         * config/ia64/ia64.c (ia64_hpux_file_end): Check
4559         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
4560
4561 2004-04-09  Roger Sayle  <roger@eyesopen.com>
4562
4563         * simplify-rtx.c (mode_signbit_p): New function to check whether
4564         an RTX is an immediate constant that represents the most significant
4565         bit of a given machine mode.
4566         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
4567         C is the sign bit.
4568         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
4569         when C2 is the sign bit.
4570         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
4571         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
4572         sign bit.
4573
4574 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4575
4576         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
4577         TYPE_MODE.
4578
4579 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
4580
4581         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
4582         of TREE_READONLY for types.
4583
4584 2004-04-09  Caroline Tice  <ctice@apple.com>
4585
4586         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
4587         (struct basic_block_def):  Add new field, partition.
4588         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
4589         definitions.
4590         (partition_hot_cold_basic_blocks): Add extern function
4591         declaration.
4592         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
4593         include statements.
4594         (N_ROUNDS): Increase the maximum number of rounds by 1.
4595         (branch_threshold): Add array value for new round.
4596         (exec_threshold): Add array value for new round.
4597         (push_to_next_round_p): New function.
4598         (add_unlikely_executed_notes): New function.
4599         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
4600         (mark_bb_for_unlikely_executed_section): New function.
4601         (add_labels_and_missing_jumps): New function.
4602         (add_reg_crossing_jump_notes): New function.
4603         (fix_up_fall_thru_edges): New function.
4604         (find_jump_block): New function.
4605         (fix_crossing_conditional_branches): New function.
4606         (fix_crossing_unconditional_branches): New function.
4607         (fix_edges_for_rarely_executed_code): New function.
4608         (partition_hot_cold_basic_blocks): New function.
4609         (find_traces):  Add an extra round for partitioning hot/cold
4610         basic blocks.
4611         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
4612         and only cold blocks, into the last (extra) round of collecting traces.
4613         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
4614         over crossing edges.
4615         (bb_to_key):  Add code to correctly identify cold blocks when
4616         doing partitioning.
4617         (connect_traces): Modify to connect all the non-cold traces first, then
4618         go back and connect up all the cold traces.
4619         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
4620         * cfg.c (entry_exit_blocks): Add initialization for partition field in
4621         entry and exit blocks.
4622         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
4623         if we are doing hot/cold partitioning.
4624         * cfgcleanup.c (cfglayout.h): Add new include statement.
4625         (try_simplify_condjump): Modify to not attempt on blocks with jumps
4626         that cross section boundaries.
4627         (try_forward_edges): Likewise.
4628         (merge_blocks_move_predecessor_nojumps): Likewise.
4629         (merge_blocks_move_successor_nojumps): Likewise.
4630         (merge_blocks_move): Likewise.
4631         (try_crossjump_to_edge): Modify to not attempt after we have done
4632         the block partitioning.
4633         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
4634         cross section boundaries.
4635         (try_optimize_cfg): Likewise.
4636         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
4637         jumps that cross section boundaries.
4638         * cfglayout.c (flags.h): Add new include statement.
4639         (update_unlikely_executed_notes):  New function.
4640         (fixup_reorder_chain):  Add code so when a new jumping basic block is
4641         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
4642         updated appropriately.
4643         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
4644         introduced by this optimization.
4645         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
4646         extern function declaration.
4647         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
4648         list of notes that can be deleted.
4649         (create_basic_block_structure):  Add initialization for partition field.
4650         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
4651         section boundaries.
4652         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
4653         cross section boundaries.
4654         (commit_one_edge_insertion): Add code so newly created basic block
4655         ends up in correct (hot or cold) section.  Modify to disallow
4656         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
4657         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
4658         crosses section boundaries.
4659         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
4660         cross section boundaries.
4661         (force_nonfallthru_and_redirect): Modify to make sure new basic block
4662         ends up in correct section, with correct notes attached.
4663         * common.opt (freorder-blocks-and-partition):  Add new flag for this
4664         optimization.
4665         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
4666         the end of functions are written into the correct (hot or cold)
4667         section.
4668         (dbx_source_file): Add code so writing debug file information
4669         doesn't incorrectly change sections.
4670         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
4671         in partitioning hot/cold basic blocks into separate sections.
4672         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
4673         section partitioning.
4674         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
4675         conditional branches can span all of memory.
4676         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
4677         unconditional branches can span all of memory.
4678         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
4679         (final_scan_insn):  Add code to check for NOTE instruction indicating
4680         whether basic block belongs in hot or cold section, and to make sure
4681         the current basic block is being written to the appropriate section.
4682         Also added code to ensure that jump table basic blocks end up in the
4683         correct section.
4684         * flags.h (flag_reorder_blocks_and_partition):  New flag.
4685         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
4686         one of the branches has a jump that crosses between sections.
4687         (find_if_case_2): Likewise.
4688         (ifcvt): Modify to not attempt to mark loop exit edges after
4689         hot/cold partitioning has occurred.
4690         * opts.c (decode_options): Code to handle new flag,
4691         flag_reorder_blocks_and_partition; also to turn it off if
4692         flag_exceptions is on.
4693         (common_handle_option): Code to handle new flag,
4694         flag_reorder_blocks_and_partition.
4695         * output.h (unlikely_text_section): New extern function declaration.
4696         (in_unlikely_text_section): New extern function declaration.
4697         * passes.c (rest_of_handle_stack_regs):  Add
4698         flag_reorder_blocks_and_partition as an 'or' condition for calling
4699         reorder_basic_blocks.
4700         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
4701         as an 'or' condition for calling reorder_basic_blocks.
4702         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
4703         * print-rtl.c (print_rtx): Add code for handling new note,
4704         NOTE_INSN_UNLIKELY_EXECUTED_CODE
4705         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
4706         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
4707         cross between section boundaries.
4708         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
4709         indicating the basic block containing it belongs in the cold section.
4710         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
4711         between hot and cold sections.
4712         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
4713         initialize this flag, and to tie it to the command-line option
4714         freorder-blocks-and-partition.
4715         * varasm.c (cfglayout.h):  Add new include statement.
4716         (unlikely_section_label_printed):  New global variable, used for
4717         determining when to output section name labels for cold sections.
4718         (in_section):  Add in_unlikely_executed_text to enum data structure.
4719         (text_section):  Modify code to use SECTION_FORMAT_STRING and
4720         NORMAL_TEXT_SECTION_NAME macros.
4721         (unlikely_text_section):  New function.
4722         (in_unlikely_text_section):  New function.
4723         (function_section):  Add code to make sure beginning of function is
4724         written into correct section (hot or cold).
4725         (assemble_start_function):  Add code to make sure stuff is written to
4726         the correct section.
4727         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
4728         to an if statement that was checking 'in_text_section'.
4729         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
4730         condition to an if statement that was checking 'in_text_section'.
4731         (default_section_type_flags_1):  Add check: if in cold section
4732         flags = SECTION_CODE.
4733         * config/darwin.c (darwin_asm_named_section):  Modify to use
4734         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
4735         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
4736         specifically for the i386.
4737         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
4738         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
4739         text string to something more informative.
4740         (NORMAL_TEXT_SECTION_NAME): Add new definition.
4741         (SECTION_FORMAT_STRING):  Add new definition.
4742         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
4743         '!in_unlikely_text_section' as an 'and' condition to an if statement
4744         that was already checking '!in_text_section'.
4745         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
4746         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
4747         sure these are properly defined for linux on ppc.
4748         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
4749         for this new flag.
4750         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
4751         reg_note.
4752         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
4753         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
4754         these new macros.
4755
4756 2004-04-08  Roger Sayle  <roger@eyesopen.com>
4757
4758         * function.c (gen_mem_addressof): When changing the RTX from a REG
4759         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
4760
4761 2004-04-08  Roger Sayle  <roger@eyesopen.com>
4762
4763         PR target/14888
4764         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
4765         truncxfdf2_noop): Provide dummy "fmov" implementations.
4766
4767 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
4768
4769         * gcc.c (default_compilers): Add missing initializers.
4770
4771         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
4772         Return 1 if file was successfully mapped.
4773
4774 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
4775
4776         PR pch/13419
4777         PR pch/14137
4778         Radar #: 3315288
4779         * doc/invoke.texi (Precompiled Headers): Suggest -o
4780         to put an output file in a particular place.  Be more detailed
4781         about which options affect PCH validity and which options
4782         might not work.
4783         * c-pch.c (pch_matching): New.
4784         (MATCH_SIZE): New.
4785         (struct c_pch_validity): New field 'match'.
4786         (pch_init): Handle pch_matching.
4787         (c_common_valid_pch): Check pch_matching.
4788
4789         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
4790
4791 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
4792
4793         * doc/invoke.texi (Precompiled Headers): Warn about known
4794         problems.
4795
4796 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
4797
4798         PR c++/14808
4799         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
4800         to 1 if ASM_OUTPUT_DEF is defined.
4801         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
4802         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
4803         Set to non-zero iff not a one_only decl.
4804
4805 2004-04-08  Paul Brook  <paul@codesourcery.com>
4806
4807         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
4808
4809 2004-04-08  Paul Brook  <paul@codesourcery.com>
4810
4811         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
4812         PROMOTE_FOR_CALL_ONLY.
4813         * config/arm/arm-protos.h (arm_function_value): Declare.
4814         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
4815         (TARGET_PROMOTE_PROTOTYPES): Return false.
4816         (arm_function_value): New function.
4817         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
4818         (FUNCTION_VALUE): Call arm_function_value.
4819         * config/cris/cris.h (PROMOTE_MODE): Rename ...
4820         (PROMOTE_FUNCTION_MODE): ... to this.
4821         (PROMOTE_FOR_CALL_ONLY): Remove.
4822         * config/mmix/mmix.h: Likewise.
4823         * config/s390/s390.h: Likewise.
4824         * config/sparc/sparc.h: Likewise.
4825         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
4826         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
4827         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
4828         (PROMOTE_FOR_CALL_ONLY): Remove.
4829
4830 2004-04-08  Joel Sherrill <joel@oarcorp.com>
4831
4832         PR ada/14538
4833         * ada/5rosinte.adb: Remove fake mprotect() body.
4834         * ada/5rosinte.ads: Add SA_SIGINFO.
4835         * ada/5rtpopsp.adb: Rewrite to use new interface.
4836         * ada/init.c: Reorder so the simple single OS conditional __rtems__
4837         is tested before more complex ones which mix UNIX and embedded
4838         systems in the conditional.
4839
4840 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
4841
4842         PR ada/14665
4843         * ada/osint.adb (Find_Program_Name): Rework to properly handle
4844         filenames which end in .exe or have versioning suffixes like VMS.
4845
4846 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
4847
4848         PR target/10129
4849         * config/darwin.c (darwin_encode_section_info): When the decl has
4850         a DECL_INITIAL, it is only defined also when it is not a common.
4851
4852 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4853
4854         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
4855         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
4856
4857 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
4858
4859         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
4860         global register variables.
4861
4862 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
4863
4864         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
4865         rpc_xdr_lvalue_cast_b): New fixes.
4866         * fixinc/fixincl.x: Regenerate.
4867         * fixinc/tests/base/rpc/xdr.h: Add new tests.
4868
4869 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
4870
4871         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
4872         to power4 and power5 entries.
4873
4874 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
4875
4876         * c-common.h (pending_lang_change): Mark for PCH.
4877
4878 2004-04-07  Caroline Tice  <ctice@apple.com>
4879
4880         * gcc.c (main): Move 'break' in main loops (on an error)
4881         to wait until error processing has occurred.
4882
4883 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
4884
4885         * config.gcc: Stop changing enable_threads midstream.
4886         Replace uses of enable_threads_flag with enable_threads.
4887         * configure.ac: Replace uses of enable_threads_flag with
4888         enable_threads.  Improve autoconf quotation in one place.
4889         * configure: Regenerate.
4890
4891 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
4892
4893         * builtins.c: Implement support for sincos function.
4894         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
4895         BUILT_IN_COS{,F,L}.
4896         (expand_builtin_mathfn_3): New function.
4897         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
4898         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
4899         flag_unsafe_math_optimization is set.
4900
4901         * optabs.h (enum optab_index): Add new OTI_sincos.
4902         (sincos_optab): Define corresponding macro.
4903
4904         * optabs.c (init_optabs): Initialize sincos_optab.
4905         (expand_twoval_unop): New function.
4906
4907         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
4908         patterns.
4909
4910         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
4911         and UNSPEC_SINCOS_SIN.
4912
4913         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
4914         sincosxf3): New patterns to implement sincos, sincosf and sincosl
4915         built-ins as inline x87 intrinsics. Define splits for
4916         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
4917         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
4918         sincos patterns.
4919         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
4920         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
4921
4922         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
4923         x87's fsincos insn.
4924
4925 2004-04-06  Devang Patel  <dpatel@apple.com>
4926
4927         PR 14467
4928         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
4929
4930 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4931
4932         * doc/install.texi: Update HP-UX 11 installation procedure.
4933
4934 2004-04-06  Paul Brook  <paul@codesourcery.com>
4935
4936         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
4937
4938 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
4939
4940         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
4941         when the TLS address is generated by a function call.
4942         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
4943         (tls_local_dynamic): Likewise.
4944
4945 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
4946
4947         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
4948         and TYPE_VOLATILE.
4949
4950 2004-04-05  Caroline Tice  <ctice@apple.com>
4951
4952         * gcc.c (combine_flag): New global variable, for new driver option.
4953         (struct compiler): Add two new fields, to be used when
4954         combining multiple input files in a single pass (IMA).
4955         (default_compilers):  Add values for the new fields to all
4956         compiler entries. Modify the "@c" compiler entry for doing IMA
4957         properly with "-save-temps" and the "combine" flag.
4958         (option_map):  Add new driver option, "--combine", to tell driver
4959         to pass multiple input files to compiler at one time.
4960         (have_o_argbuf_index): New global variable.
4961         (store_arg): Modify to assign value to have_o_argbuf_index.
4962         (struct infile):  Add three new fields, to help with IMA.
4963         (display_help): Add help for new "combine" option.
4964         (process_command): Remove local variable have_o; add code to check
4965         for new "combine" option; remove assignment to combine_inputs.
4966         (do_spec_1):  Modify to deal with IMA better.
4967         (main): Make variable 'lang_n_infiles' local to entire function
4968         rather than to a single block.  Use flag combine_flag to
4969         determine whether to do IMA or not; Modify loop initializing
4970         infiles to deal properly with linker files.
4971         Add code for doing preprocessing in presence of
4972         IMA with "-save-temps" flag.  Modify "main" loop to handle
4973         multiple input files, in multiple languages, with or without
4974         preprocessing,  gracefully.
4975         * toplev.c (set_src_pwd): Modify to not complain if attempting to
4976         re-set it to same directory it's previously been set to (avoid
4977         irritating, meaningless warning messages when doing IMA with
4978         save-temps).
4979         * doc/invoke.texi: Add "-combine" to list of Overall Options;
4980         remove documentation about IMA that is no longer accurate; Add
4981         documentation explaining what "-combine" does.
4982         * ada/lang-specs.h: Add initialization values for new fields in
4983         "struct compiler".
4984         * cp/lang-specs.h: Likewise.
4985         * f/lang-specs.h: Likewise.
4986         * java/lang-specs.h: Likewise.
4987         * objc/lang-specs.h: Likewise.
4988         * treelang/lang-specs.h: Likewise.
4989
4990 2004-04-05  David Edelsohn
4991
4992         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
4993         symbol handling.
4994
4995 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
4996             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4997
4998         PR optimization/13424 (hppa), bootstrap/14462, c/14828
4999         * pa.md: Use replace_equiv_address to retain the attributes of the
5000         memory operands used in the split and peephole2 patterns for optimizing
5001         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
5002
5003 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5004
5005         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
5006         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5007         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
5008         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
5009         PARM_DECL.
5010         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
5011         for a type.
5012         * print-tree.c (print_node): Properly handle side-effects, readonly,
5013         and constant flags.
5014         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
5015         and TREE_CONSTANT if not a type.
5016         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
5017         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
5018         (NON_TYPE_CHECK): New macro.
5019         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
5020
5021 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
5022
5023         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
5024         to DWARF2_DEBUG unconditionally.
5025         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
5026
5027 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
5028             Nathanael Nerode  <neroden@gcc.gnu.org>
5029
5030         PR target/14548
5031         * config.host: Set the shell variable host_can_use_collect2.
5032         Set it to yes by default, and to no for alpha*-dec-*vms*,
5033         i[34567]86-*-mingw32*, and powerpc-*-beos*.
5034         * configure.ac: Set and substitute the shell variable collect2.
5035         Give an error if use_collect2 is yes and host_can_use_collect2 is
5036         no.
5037         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
5038         uses.  Initialize to @collect2@.
5039         (STAGESTUFF): Remove $(USE_COLLECT2).
5040         * config/alpha/x-vms (USE_COLLECT2): Don't set.
5041         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
5042         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
5043         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
5044         * configure: Regenerate.
5045
5046 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5047
5048         * simplify-rtx.c (simplify_binary_operation): Constant fold
5049         DIV, MOD, UDIV and UMOD using div_and_round_double.
5050
5051 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5052
5053         PR c++/14804
5054         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
5055         RECORD_TYPEs.
5056
5057 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5058
5059         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
5060         documentation.
5061
5062 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5063
5064         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
5065         updating the REG_EQUAL note on an insn's libcall_insn.
5066
5067 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5068
5069         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
5070
5071 2004-04-03  Roger Sayle  <roger@eyesopen.com>
5072
5073         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
5074         with reorder_operands_p.
5075
5076 2004-04-03  Jan Hubicka  <jh@suse.cz>
5077
5078         * md.texi (vec_set, vec_extract, vec_init): Document.
5079
5080 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
5081
5082        * opts.c (decode_options): Do function inlining with very small
5083        max-inline-insns-* parameters when optimizing for size.
5084
5085 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
5086
5087         * config/i386/i386.h (TARGET_NOCONA): New macro.
5088         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
5089         (processor_type): Add PROCESSOR_NOCONA.
5090
5091         * config/i386/i386.md (cpu): Add nocona to the attribute values.
5092
5093         * config/i386/i386.c (nocona_cost): New variable.
5094         (m_NOCONA): New macro.
5095         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
5096         x86_branch_hints, x86_use_sahf, x86_single_stringop,
5097         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
5098         x86_integer_DFmode_moves, x86_partial_reg_dependency,
5099         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
5100         x86_decompose_lea, x86_arch_always_fancy_math_387,
5101         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
5102         x86_ext_80387_constants, x86_four_jump_limit):
5103         (override_options): Add nocona_cost to processor_target_table.
5104         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
5105         (incdec_operand): Prevent inc/dec generation for Nocona too.
5106         (ix86_issue_rate): Add PROCESSOR_NOCONA.
5107
5108 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
5109
5110         * rtlanal.c (find_reg_note): Manually
5111         unswitch the loop.
5112
5113 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
5114
5115         * genemit.c (gen_split): Change prototype of generated code.
5116         * genrecog.c (write_action): Adjust prototype for and calls to
5117         gen_split_*.
5118         * gensupport.c (struct queue_elem): Add split field.
5119         (queue_pattern): Return a value.  Clear the split field.
5120         (process_rtx): Maintain an association between an insn and the
5121         split generated from it for a define_insn_and_split.
5122         (process_one_cond_exec): Generate a new split for a
5123         define_insn_and_split.
5124         * config/arm/arm-protos.h (arm_split_constant): Add insn
5125         parameter.
5126         (emit_constant_insn): New function.
5127         (arm_gen_constant): Use it.
5128         * config/arm/arm.md: Adjust calls to arm_split_constant.
5129
5130 2004-04-02  Jan Hubicka  <jh@suse.cz>
5131
5132         * cgraph.c: Add overall comment.
5133         (cgraph_inline_hash): New global variable.
5134         (cgraph_create_node): Break out from ...
5135         (cgraph_node): ... here.
5136         (cgraph_edge): New function.
5137         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
5138         (cgraph_remove_edge): Accept edge, intead of source and destination.
5139         (cgraph_redirect_edge_callee): New.
5140         (cgraph_remove_node): Update all new datastructures.
5141         (cgraph_record_call, cgraph_remove_call): Kill.
5142         (dump_cgraph_node): Break out from ... ; dump new datastructures.
5143         (dump_cgraph): ... here.
5144         (cgraph_function_possibly_inlined_p): Use new hashtable.
5145         (cgraph_clone_edge, cgraph_clone_node): New.
5146         * cgraph.h: Include hashtab.h
5147         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
5148         fields, add inlined_to pointer.
5149         (cgraph_node): Add pointer to next_clone.
5150         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
5151         (cgraph_remove_call, cgraph_record_call): Kill.
5152         (cgraph_inline_hash): Declare.
5153         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
5154         cgraph_redirect_edge_callee): Declare.
5155         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
5156         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
5157         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
5158         * cgraphunit.c: Add overall comment.
5159         (cgraph_optimize_function): Kill.
5160         (cgraph_assemble_pending_functions): Do not assemble inline clones.
5161         (cgraph_finalize_function): Update call of cgraph_remove_node
5162         (record_call_1): Record call sites.
5163         (cgraph_create_edges): Accept node instead of decl argument.
5164         (error_found): New static variable.
5165         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
5166         (cgraph_analyze_function): Update for new datastructures.
5167         (cgraph_finalize_compilation_unit): Plug memory leak.
5168         (cgraph_optimize_function): Kill.
5169         (cgraph_expand_function): Do not use cgraph_optimize_function.
5170         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
5171         cgraph_inlined_callees): Kill.
5172         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
5173         clones.
5174         (estimate_growth): Simplify.
5175         (cgraph_clone_inlined_nodes): New function.
5176         (cgraph_mark_inline_edge): Re-implement.
5177         (cgraph_mark_inline): Likewise.
5178         (cgraph_check_inline_limits): Simplify.
5179         (cgraph_recursive_inlining_p): New.
5180         (update_callee_keys): Break out from ...
5181         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
5182         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
5183         Likewise.
5184         (cgraph_expand_all_functions):  Remove inline clones from the ordered
5185         list.
5186         (cgraph_preserve_function_body_p): New predicate.
5187         (cgraph_optimize): Verify cgraph.
5188         * function.h (struct function): Add fields saved_tree/saved_args.
5189         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
5190         * toplev.c (rest_of_compilation): Do not free cfun.
5191         * tree-inline.c: Include function.h
5192         (struct inline_data): Add saving_p field; replace decl/current_decl by
5193         node/current_node.
5194         (insert_decl_map): New function.
5195         (copy_body_r): Handle saving; update cgraph datastructure.
5196         (copy_body): Handle recursive inlining.
5197         (initialize_inlined_parameters): Likewise.
5198         (expand_call_inline): Propagate node attributes; update cgraph.
5199         (optimize_inline_calls): Verify that datastructure still match.
5200         (save_body): New function.
5201         * tree-inline.h (save_body): New.
5202         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
5203         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
5204         * langhooks.c (lang_hooks): Add update_decl_after_saving.
5205
5206 2004-04-01  Serge Belyshev  <1319@bot.ru>
5207
5208         PR target/14702
5209         * config/i386/i386.md: fix source operand constraints in
5210         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
5211
5212 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5213
5214         * fold-const.c (folda): Preserve types of comparisons.
5215
5216 2004-04-01  Richard Henderson  <rth@redhat.com>
5217
5218         * toplev.c (backend_init): Move init_optimization_passes call ...
5219         (lang_dependent_init): ... here.
5220
5221 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
5222             Jakub Jelinek  <jakub@redhat.com>
5223
5224         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
5225         -lgcc --as-needed -lgcc_s --no-as-needed by default.
5226         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
5227         * configure: Rebuilt.
5228         * config.in: Rebuilt.
5229         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
5230         (stage2-start, stage3-start, stage4-start): Likewise.
5231         (stageprofile-start, stagefeedback-start): Likewise.
5232
5233 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5234
5235         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
5236         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5237         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5238         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5239         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
5240         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
5241         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
5242         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
5243         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
5244         * config/sparc/t-linux: Removed.
5245
5246 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5247
5248         PR c++/14755
5249         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
5250         "bitfld++ == const" to "++bitfld == const + incr" transformations.
5251
5252 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5253
5254         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
5255         * stor-layout.c (layout_decl): Likewise.
5256         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
5257         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
5258         * print-tree.c (print_node): Handle various used of unsigned_flag.
5259         * tree.def (BIT_FIELD_REF): Update comment.
5260         * tree.h (TREE_UNSIGNED): Deleted.
5261         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
5262
5263 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5264
5265         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
5266         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
5267         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
5268         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
5269         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
5270         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
5271         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
5272         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
5273         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
5274         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
5275         REAL_TYPE, not INTEGER_TYPE.
5276         (layout_type, case VECTOR_TYPE): Simplify code.
5277         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
5278         * tree.h: Update comments.
5279         (STRIP_NOPS): Use TYPE_UNSIGNED.
5280         (TYPE_UNSIGNED): New macro.
5281         (TYPE_TRAP_SIGNED): Remove now redundant check.
5282         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
5283
5284 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5285
5286         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
5287
5288 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
5289
5290         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
5291         Add darwin-fpsave.asm, darwin-vecsave.asm,
5292         and darwin-world.asm.
5293         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
5294         as the asm files contain altivec instructions.
5295         * config/rs6000/darwin-fpsave.asm: New file.
5296         * config/rs6000/darwin-vecsave.asm: New file.
5297         * config/rs6000/darwin-world.asm: New file.
5298
5299 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
5300
5301         * gengtype-yacc.y (option, stringseq): Add missing
5302         terminating semicolon.
5303
5304 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
5305
5306         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
5307         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
5308         tls_dtprel_ha_32, tls_dtprel_ha_64,
5309         tls_dtprel_lo_32, tls_dtprel_lo_64,
5310         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
5311         tls_tprel_ha_32, tls_tprel_ha_64,
5312         tls_tprel_lo_32, tls_tprel_lo_64,
5313         tls_got_tprel_32, tls_got_tprel_64,
5314         tls_tls_32, tls_tls_64): Replace register_operand with
5315         gpc_reg_operand.
5316
5317 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
5318
5319         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
5320         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
5321         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
5322         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
5323         *ctrdi_internal6): Replace register_operand with
5324         nonimmediate_operand.
5325
5326 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
5327
5328         * fold-const.c (fold): Reassociate multiply expression
5329         with an adjacent non-multiply expression to use
5330         architecture's multiply-add instruction.
5331
5332 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
5333
5334         * gengtype.c (create_option): New function.
5335         * gengtype.h: Prototype it.
5336         * gengtype-yacc.y (stringseq): New rule.
5337         (option): Use create_option.  Add new bare ID production.  Use
5338         stringseq, not STRING directly.
5339
5340         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
5341         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
5342         * varray.h, config/alpha/alpha.c:
5343         Use new shorter form of GTY markers.
5344
5345         * doc/gty.texi: Rewrite.
5346
5347 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
5348
5349         * config/darwin.c (machopic_function_base_name):
5350         Remove current_name and getting the name of the
5351         current function.
5352
5353 2004-03-30  Nick Clifton  <nickc@redhat.com>
5354
5355         * config/arm/arm.md (thumb_jump): Reduce the backward branch
5356         range, and increase the forward branch range, to allow for
5357         the fact that the PC will be off by 4.
5358
5359 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
5360
5361         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
5362
5363 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5364
5365         * config/rs6000/rs6000.c (output_vec_const_move):
5366         Find all cases of EASY_VECTOR_15_ADD_SELF.
5367         (easy_vector_constant_add_self): Accept
5368         all vector constant loadable by vsplt* and vadd*.
5369         (easy_vector_same): Use easy_vector_splat_const.
5370         (easy_vector_const): Use easy_vector_splat_const.
5371         (easy_vector_splat_const): New function.
5372         (gen_easy_vector_constant_add_self): New function.
5373
5374         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
5375         New prototype.
5376
5377         * config/rs6000/altivec.md (movv4si splitter): Change to
5378         emit move insn with halfed vector constant.
5379         (*movv8hi splitter): Likewise.
5380         (*movv16qi splitter): Likewise.
5381
5382 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5383
5384         PR 11591
5385         * config/rs6000/rs6000.c (rs6000_legitimate_address):
5386         Allow any offset to argument pointer in no-strict case.
5387
5388 2004-03-30  Jan Hubicka  <jh@suse.cz>
5389
5390         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
5391         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
5392         dump file in non-unit-at-a-time mode.
5393
5394 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
5395
5396         * config/cris/cris.h: Correct #ifdef to test for
5397         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
5398         HAVE_AS_MUL_BUG_ABORT_OPTION.
5399
5400 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5401
5402         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
5403         the address inside the old RTL.
5404
5405 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
5406
5407         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
5408         (struct c_binding, struct c_scope): Add chain_next
5409         attributes to GTY markers.
5410         (struct lang_identifier, struct lang_tree_node): Define
5411         here...
5412         * c-tree.h: ... not here.  No longer need to declare struct
5413         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5414         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
5415         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5416
5417         PR 14734, 11944
5418         * c-decl.c (get_parm_info): If error_mark_node is encountered
5419         in the bindings chain, unbind and discard it; don't abort.
5420
5421 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
5422             Dorit Naishlos <dorit@il.ibm.com>
5423
5424         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
5425         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
5426
5427 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
5428
5429         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
5430
5431         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
5432         (m68hc11_attribute_table): New attribute "page0" to mark a global
5433         variable as being allocated from within page0 section.
5434         (m68hc11_encode_label): New function.
5435         (m68hc11_strip_name_encoding): New function.
5436         (m68hc11_page0_symbol_p): New function.
5437         (m68hc11_indirect_p): Accept global variables marked in page0.
5438         (m68hc11_encode_section_info): Lookup "page0" attribute.
5439
5440         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
5441         represents access to page0 variables.
5442
5443         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
5444         ("*logicalsi3_silshl16_zext"): Likewise.
5445         ("*ashldi3_const32"): Likewise.
5446         (peephole2 ashift): Likewise.
5447
5448 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5449
5450         * c-tree.h (C_DECL_REGISTER): New.
5451         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
5452         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
5453         (build_array_ref, c_mark_addressable): Set and use it.
5454         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
5455         Allow structures with volatile fields to be declared register.
5456         Don't check TREE_ADDRESSABLE before warning about taking address
5457         of register.
5458         * c-decl.c (finish_decl): Don't allow structures with volatile
5459         fields to be placed in named register.
5460         * doc/trouble.texi: Remove reference to structures with volatile
5461         fields in registers.
5462
5463 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5464
5465         * function.c (thread_prologue_and_epilogue): Move
5466         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
5467         before the epilogue.
5468
5469 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5470
5471         * expr.c (store_constructor): Use gen_int_mode to correctly
5472         sign-extend CONST_INT value.
5473
5474 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5475
5476         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
5477         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
5478         * doc/extend.texi: Likewise.
5479
5480 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
5481
5482         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
5483           with TYPE_ORIG_SIZE_TYPE.
5484
5485 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
5486
5487         PR 14219
5488         * c-typeck.c (build_binary_op): Do not allow comparisons of
5489         vectors.
5490
5491 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
5492
5493         * config.gcc: Remove sparc-tti-*.
5494         * config/sparc/pbd.h: Delete.
5495
5496         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
5497         * config/sparc/aout.h: Likewise.
5498
5499         * config/sparc/sparc.h: Remove if 0'd code.
5500         * config/sparc/sparc.md (call): Remove if 0'd code.
5501         (call_value): Likewise.
5502         (nonlocal_goto): Likewise.
5503         (unimp_insn): Delete.
5504
5505 2004-03-25  Roger Sayle  <roger@eyesopen.com>
5506
5507         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
5508         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
5509
5510 2004-03-25  Richard Henderson  <rth@redhat.com>
5511
5512         PR 11527
5513         * c-typeck.c (pop_init_level): Emit pending init elements earlier
5514         rather than later.
5515
5516 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5517
5518         * builtins.c (fold_builtin): Fix error in last change.
5519
5520 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
5521
5522         * config/mips/mips.h: Formatting fix.
5523
5524 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5525
5526         * builtins.def: Add ctype builtins.
5527         * doc/extend.texi: Likewise.
5528
5529 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5530
5531         * builtins.c (fold_builtin): Add new builtin optimizations for
5532         sqrt and/or cbrt.
5533         * fold-const.c (fold): Likewise.
5534
5535 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
5536
5537         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
5538         (rs6000_sched_groups): New variable.
5539         (processor_target_table): Add power5.
5540         (rs6000_override_options): Set rs6000_sched_insert_nops,
5541         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
5542         from rs6000_sched_groups.
5543         (output_cbranch): Use rs6000_always_hint.
5544         (rs6000_variable_issue): Use rs6000_sched_groups.
5545         (rs6000_adjust_cost): Add CPU_POWER5.
5546         (is_microcoded_insn): Use rs6000_sched_groups.
5547         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
5548         Return 2 for POWER5 cracked instructions.
5549         (is_cracked_insn): Use rs6000_sched_groups.
5550         (is_branch_slot_insn): Use rs6000_sched_groups.
5551         (rs6000_issue_rate): Add CPU_POWER5.
5552         (rs6000_sched_finish): Use rs6000_sched_groups.
5553         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
5554         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
5555         (DEFAULT_SCHED_COSTLY_DEP): Delete.
5556         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
5557         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
5558         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
5559         * config/rs6000/power5.md: New file.
5560         * doc/invoke.texi: Add power5 option.
5561
5562 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5563
5564         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
5565         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
5566         * doc/invoke.texi: Fix a typo.
5567
5568 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5569
5570         PR optimization/9707.
5571         * stmt.c (emit_case_nodes): Emit equality comparisons instead
5572         of recursing if both children are single-valued cases with no
5573         children.
5574
5575 2004-03-25  Paul Brook  <paul@codesourcery.com>
5576
5577         * config/arm/arm.c (vfp_print_multi): Remove.
5578         (arm_output_fldmx): New function.
5579         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
5580         (arm_expand_prologue): Update to match.
5581         (arm_get_vfp_saved_size): New Function.
5582         (arm_get_frame_offsets): Use it.
5583         (arm_output_epilogue): Use new functions.
5584
5585 2004-03-24  Richard Henderson  <rth@redhat.com>
5586
5587         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
5588         (reg_known_value, reg_known_value_size): Likewise; make static.
5589         (reg_known_equiv_p): Make static.
5590         (clear_reg_alias_info): Update for new indexing.
5591         (get_reg_known_value, set_reg_known_value): New.
5592         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
5593         (canon_rtx): Use them.
5594         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
5595         Don't play queer offsetting games with reg_known_value and
5596         reg_known_equiv_p.
5597         (end_alias_analysis): Free reg_known_value with gc.
5598         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
5599         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
5600         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
5601         functions instead.
5602
5603 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
5604
5605         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
5606         config/i386/mmintrin.h: Update copyright.
5607
5608 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5609
5610         * configure.ac: Add --enable-werror-always (for top level bootstrap
5611         support).
5612         * configure: Regenerate.
5613
5614 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
5615
5616         * objc/objc-act.c (objc_comptypes): Treat comparisons
5617         between 'Class' and '<class> *' as explicitly invalid.
5618
5619 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
5620
5621         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
5622         (-fprofile-values): Add enabled with profile-{generate,use}.
5623         (-fvpt): Same.
5624         (-ftracer): Add enabled with profile-use.
5625         (-funit-at-a-time): Add enabled at -O2,-O3.
5626         (-funroll-loops): Add enabled with profile-use.
5627         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
5628         (max-gcse-passes): Mention default.
5629         (max-cse-path-length): Mention default.
5630
5631 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5632
5633         * Makefile.in (STRICT2_WARN): Reorder.
5634         * configure.ac: Check for -Wold-style-definition, and use it
5635         in strict1_warn if it's available.
5636         * configure: Regnerate.
5637
5638 2004-03-24  Paul Brook  <paul@nowt.org>
5639
5640         * config.gcc <arm>: Add --with-abi=
5641         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
5642         thumb_far_jump_used): Remove prototypes.
5643         (arm_needs_doubleword_align): Add prototype.
5644         (thumb_compute_initial_elimination_offset): Ditto.
5645         * config/arm/arm.c (arm_get_frame_offsets): New function.
5646         (use_return_insn, output_return_instruction, arm_output_epilogue,
5647         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
5648         arm_expand_prologue, thumb_expand_epilogue): Use it.
5649         (arm_abi, target_abi_name, all_arm_abis): New variables.
5650         (arm_override_options): Set them.  Set structure padding for AAPCS.
5651         (arm_return_in_memory): Update ABI check.
5652         (arm_init_cumulative_args): Initialize can_split.
5653         (arm_needs_doubleword_align): New function.
5654         (arm_function_arg): Don't split args after pushing to stack. Handle
5655         doubleword/even reg alignment.
5656         (arm_va_arg): Handle all doubleword aligned args.
5657         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
5658         on ABI, not CPU.
5659         (arm_compute_save_reg0_reg12_mask): Fix comment.
5660         (thumb_get_frame_size, thumb_get_frame_size): Remove.
5661         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
5662         value for alignment.
5663         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
5664         to match.
5665         (thumb_compute_initial_elimination_offset): New function.
5666         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
5667         unneccessary rounding.
5668         * config/arm/arm.h (target_abi_name): Declare.
5669         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
5670         arm_abi_type, ARM_DEFAULT_ABI): Define.
5671         (ARM_FLAG_ATPCS): Remove.
5672         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
5673         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
5674         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
5675         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
5676         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
5677         Contitionalize on ABI, not CPU.
5678         (struct arm_stack_offsets): Define.
5679         (struct machine_function): Add stack_offsets.  Remove frame_size.
5680         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
5681         pushed.
5682         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
5683         doubleword alignment.
5684         (THUMB_INITIAL_ELIMINATION_OFFSET,
5685         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
5686         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
5687         * config/arm/arm.md (align_8): Enable for all targets.
5688         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
5689         (ARM_DEFAULT_ABI): Define.
5690         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
5691         -mstructure-size-boundary.
5692
5693 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5694
5695         * configure.ac: Check for -Wno-variadic-macros; don't use
5696         -pedantic (in stage 1 or a simple 'make all') unless it's available,
5697         and if it's available, use it.  Also, clean up check for
5698         -Wno-long-long.
5699         * configure: Regenerate.
5700
5701 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
5702
5703         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
5704         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
5705         (MULTILIB_DEFAULTS): Use it.
5706         (MIPS_CPU_STRING_DEFAULT): Remove.
5707         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
5708         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
5709         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
5710         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
5711         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
5712         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
5713         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
5714         accordingly.
5715
5716 2004-03-24  DJ Delorie  <dj@redhat.com>
5717             Richard Sandiford  <rsandifo@redhat.com>
5718
5719         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
5720         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
5721         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
5722         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
5723         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
5724         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
5725         if TARGET_FIX_VR4122.
5726         * config/mips/mips.md (define_attr length): Account for nops inserted
5727         after macc and dmult when using -mfix-vr4122-bugs.
5728         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
5729         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
5730         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
5731         * config/mips/vr4122-div.S: New file.
5732         * doc/invoke.texi: Document -mfix-vr4122-bugs.
5733
5734 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
5735
5736         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
5737         (TARGET_MIPS4130): New macro.
5738         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
5739         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
5740         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
5741         with PROCESSOR_R4130.
5742         * config/mips/mips.md (define_attr cpu): Add r4130.
5743         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
5744
5745 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5746             Richard Sandiford  <rsandifo@redhat.com>
5747
5748         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
5749
5750 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
5751
5752         PR preprocessor/14438
5753         * cpplib.c (do_pragma): Remove line_change call after pragma
5754         handler.
5755
5756 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
5757
5758         * doc/extend.texi (ARM Built-in Functions): Replace with correct
5759         declarations.
5760
5761 2004-03-23  Roger Sayle  <roger@eyesopen.com>
5762
5763         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
5764         if flag_unsafe_math_optimizations.
5765         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
5766         and TARGET_80387 expand using truncdfsf2_noop pattern.
5767         (truncxfsf2): Likewise using truncxfsf2_noop.
5768         (truncxfdf2): Likewise using truncxfdf2_noop.
5769         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
5770
5771 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
5772
5773         * hooks.c (hook_constcharptr_tree_null): New hook.
5774         * hooks.h (hook_constcharptr_tree_null): New prototype.
5775         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
5776         * target.h (mangle_fundamental_type): New target hook.
5777         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
5778         target hook at rs6000_mangle_fundamental_type.
5779         (rs6000_mangle_fundamental_type): New function.
5780         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
5781
5782 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
5783
5784         PR 12267, 12391, 12560, 13129, 14114, 14133
5785         * c-tree.h: Forward declare struct c_binding.  Declare
5786         c_override_bindings_to_false.  Update prototypes.
5787         (struct lang_identifier): Update comments.  Change fields to be
5788         struct c_binding *.
5789         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
5790         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
5791         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
5792         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
5793         * c-common.h: Update prototypes.
5794         * c-decl.c (struct c_scope): Update commentary.  Remove names,
5795         names_last, parms, parms_last, tags, and shadowed fields.  Add
5796         bindings and depth fields.
5797         (scope_freelist): Move to more appropriate location.
5798         (c_print_identifier): Update for changes to struct lang_identifier.
5799         (objc_mark_locals_volatile): Update for new bindings structures.
5800         (global_bindings_p): Honor c_override_global_bindings_to_false.
5801         (pushlevel): Rename to push_scope; take no arguments; use the
5802         scope_freelist; initialize scope->depth and check for overflow.
5803         (poplevel): Rename to pop_scope; totally rewritten for new bindings
5804         structures.
5805         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
5806         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
5807         Improve some commentary.  Adjust handling of forward parm decls.
5808         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
5809         Preserve C_DECL_IN_EXTERNAL_SCOPE.
5810         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
5811         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
5812         decls.  Rewrite for new bindings structures.  Improve commentary.
5813         Eliminate the copy_node call.
5814         (implicit_decl_warning): Use the "diag" idiom (as seen in
5815         locate_old_decl) to reduce code duplication; call locate_old_decl
5816         if appropriate.  Relocate to remove need for forward declaration.
5817         (implicitly_declare): Adjust for new bindings structures.  Kludge
5818         around Objective-C not-really-builtin functions.
5819         (undeclared_variable): Improve diagnostics.  If current_function_decl
5820         is nonnull but current_function_scope is null, use current_scope.
5821         Use bind.
5822         (lookup_tag): Adjust for new bindings structures.  Kludge around
5823         Objective-C's tag declarations that wind up in the external scope.
5824         (lookup_name): Adjust for new bindings structures.  Kludge around
5825         c-common.c's pseudo-typedefs that wind up in the external scope.
5826         (lookup_name_current_level): Rename lookup_name_in_scope; take a
5827         second argument indicating the scope to examine; rewrite for
5828         new bindings structures.
5829         (c_init_decl_processing): Adjust for renamed functions.  Do not
5830         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
5831         First scope pushed is the external scope, not the global scope.
5832         (builtin_function): Use bind, not pushdecl.  Adjust other bits
5833         for new data structures.  Keep track of builtins that should be
5834         made visible automatically.
5835         (start_decl): Adjust diagnostics.  Remove unnecessary call to
5836         expand_decl.
5837         (grokparms): Return 0 if arg_types is error_mark_node.
5838         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
5839         reversed sense.  Rewrite for new bindings structures.  Do not
5840         leave any decls in the scope, to prevent pop_scope from doing
5841         contradictory things with them.
5842         (finish_struct, finish_enum): Remove redundant diagnostics.
5843         (build_enumerator): Don't cascade diagnostics for error_mark_node.
5844         Mark location where -pedantic changes the meaning of the program.
5845         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
5846         parameter decls into the function's scope structure using bind.
5847         Warn here about function definitions in the wrong style.
5848         Adjust diagnostics.
5849         (store_parm_decls): Correct the determination of whether a
5850         function was defined with a prototype.
5851         (c_write_global_declarations): Operate on all file decls and on
5852         the external scope.  Split body of the loop to...
5853         (c_write_global_declarations_1): ... this new function, to avoid
5854         code duplication.
5855         (truly_local_externals, first_builtin_decl, last_builtin_decl)
5856         (make_scope, pop_scope, in_parm_level_p, set_block)
5857         (any_external_decl, record_external_decl, bind_label, getdecls)
5858         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
5859         (c_reset_state): Delete.
5860         (visible_builtins, c_override_global_bindings_to_false)
5861         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
5862         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
5863         (external_scope, binding_freelist, bind, free_binding_and_advance)
5864         (push_file_scope, pop_file_scope): New.
5865         (pushtag, pushdecl_top_level, lookup_label, declare_label)
5866         (define_label, c_make_fname_decl, finish_decl)
5867         (mark_forward_parm_decls, build_compound_literal)
5868         (grokdeclarator, start_function, check_for_loop_decls)
5869         (identifier_global_value, record_builtin_type): Minor adjustments
5870         for new bindings structures.  Improve diagnostics and commentary.
5871         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
5872         pushlevel/poplevel respectively.
5873         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
5874         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
5875         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
5876         correct loop over multiple translation units; call fatal_error if
5877         requested to compile more than one file at once.  (This disables
5878         IMA temporarily - an up-front error being preferable to a crash.)
5879         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
5880         (all actions): Adjust calls to pushlevel/poplevel.
5881         (parsing_iso_function_signature): Delete.
5882         (extdef_1): Fold into extdef.
5883         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
5884         warn here about function definitions in the wrong style.
5885         (after_tyle_declarator, parm_declarator_starttypename)
5886         (parm_declarator_nostarttypename, notype_declarator): Remove
5887         commented-out productions.
5888         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
5889         an empty TREE_LIST node.  Adjust calls to get_parm_info.
5890         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
5891         to suppress -Wold-style-definition after this error.
5892         (c_parse_file): Don't clear the binding stack or call
5893         finish_fname_decls here.  Correct comment.
5894         * c-typeck.c (same_translation_unit_p): Export.
5895         (common_type): Use c_override_global_bindings_to_false, not
5896         pushlevel/poplevel/declare_parm_level.
5897         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
5898         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
5899         and LANG_HOOKS_GETDECLS with do-nothing stubs.
5900         * objc/objc-lang.c: Likewise.
5901         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
5902         get_parm_info.
5903         (OBJC_VOID_AT_END): Delete; replace all uses
5904         with void_list_node.
5905         (generate_forward_declaration_to_string_table): Delete.
5906         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
5907
5908         * coverage.c (create_coverage): Don't pushdecl anything.
5909         * langhooks.c (lhd_clear_binding_stack): Call
5910         lang_hooks.decls.poplevel, not poplevel.
5911         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
5912         circular list rather than going into an infinite loop.
5913
5914 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
5915
5916         * optabs.c (expand_binop): When synthesizing double word rotates
5917         from single word shifts, use a new register target if the provided
5918         target is not a REG already.
5919
5920 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5921
5922         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
5923         * c-common.c (handle_mode_attribute): Add extra arg to
5924         build_pointer_type_for_mode and build_reference_type_for_mode.
5925         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
5926         for INTEGER_CST.
5927         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
5928         Chain pointers via TYPE_NEXT_PTR_TO.
5929         (build_reference_type_for_mode): Similarly.
5930         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
5931         and build_reference_type_for_mode.
5932         (tree_check4_failed): New function.
5933         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
5934         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
5935         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
5936         Add check.
5937
5938 2004-03-23  Roger Sayle  <roger@eyesopen.com>
5939
5940         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
5941         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
5942         when both A and B are nonnegative.
5943         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
5944         nonzero.
5945
5946 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
5947
5948         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
5949         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
5950
5951 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
5952
5953         PR optimization/14669
5954         * fold-const.c (fold): Only unwiden integer comparisons for equality
5955         and inequality operators, or when the signedness doesn't change.
5956
5957 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
5958
5959         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
5960         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
5961         * config/sparc/t-linux: New file.
5962
5963 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
5964
5965         * gcse.c (can_assign_to_reg_p): New function, split out from...
5966         (want_to_gcse_p): ...here.
5967         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
5968         the rhs of a store.
5969
5970 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
5971
5972         * c-typeck.c (same_translation_unit_p): Fix pasto.
5973
5974 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
5975
5976         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
5977         (PARAM_MAX_SCHED_REGION_INSNS): New.
5978         * sched-rgn.c: Include params.h
5979         (MAX_RGN_BLOCKS): Delete.
5980         (MAX_RGN_INSNS): Delete.
5981         (too_large): Return bool.  Convert to PARAM_VALUE.
5982         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
5983         * doc/invoke.texi (param): Document max-sched-region-blocks and
5984         max-sched-region-insns.
5985
5986 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
5987
5988         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
5989         for base types.
5990
5991 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
5992
5993         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
5994         change.
5995
5996 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
5997
5998         PR c/14069
5999         * c-decl.c (finish_struct): Change type of incorrect flexible array
6000         field into error_mark_node.
6001
6002 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
6003
6004         PR target/14580
6005         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
6006         who are not local for Darwin PIC.
6007
6008 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
6009
6010         * regrename.c (regrename_optimize): Set regs_ever_live for all
6011         registers introduced as replacement.
6012
6013 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
6014
6015         PR middle-end/14470
6016         * expr.c (mark_queue): New function.
6017         (emit_insns_enqueued_after_mark): New function replacing
6018         emit_queue.  Clear the body of emitted queued insns.
6019         (emit_queue): Call emit_insns_enqueued_after_mark.
6020         (store_expr): Mark the increment queue on entry.  Emit
6021         only the incrementations queued when expanding the source.
6022
6023 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
6024
6025         * configure.ac: Allow --disable-coverage-flags (for the future benefit
6026         of top level bootstrap, and consistency).  Reindent.
6027         * configure: Regenerate.
6028
6029 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
6030
6031         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
6032         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
6033         unnecessary casts.
6034
6035 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
6036
6037         PR target/14291
6038         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
6039         __MINGW32__.
6040
6041 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6042
6043         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
6044         to nonimmediate_operand.
6045         ("*doloop_di"): Likewise.
6046
6047 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
6048
6049         * real.h (struct real_value): Use the same type for all
6050         bitfields.  Rename exp to uexp.
6051         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
6052         Adjust all uses of exp...
6053         * builtins.c: ... here, ...
6054         * emit-rtl.c: ... here, and ...
6055         * real.c: ... and here.
6056
6057 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6058
6059         * pretty-print.c (pp_base_maybe_space): New function.
6060         * pretty-print.h (pp_base_maybe_space): Declare.
6061         (pp_maybe_space): New macro.
6062
6063 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6064
6065         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
6066
6067 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6068
6069         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
6070         of using register multiplication cost.
6071         (expand_mult): Adapt choose_mult_variant call.
6072         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
6073         of MODE; pass appropriate cost bound.  Adjust result when
6074         performing signed multiplication by a negative constant.
6075         Don't use intermediate modes larger than word_mode.
6076
6077 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6078
6079         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
6080         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
6081         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
6082         * explow.c (expr_size): Likewise.
6083         * expr.h (placeholder_list, find_placeholder): Deleted.
6084         * expr.c (store_constructor): Likewise.
6085         (get_inner_reference): Likewise.  Also don't call find_placeholder.
6086         (placeholder_list, find_placeholder): Deleted.
6087         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
6088         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
6089         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
6090         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
6091         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
6092         Likewise.
6093         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
6094         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
6095         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
6096         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
6097         Clean up by using first_rtl_op.
6098         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
6099         (substitute_placeholder_in_expr): New function.
6100         * tree.def (WITH_RECORD_EXPR): Deleted.
6101         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
6102         (substitute_placeholder_in_expr): New.
6103
6104 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
6105
6106         * dojump.c (prefer_and_bit_test): Fix which part of
6107         the and_test is replaced.
6108
6109 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
6110
6111         * frontends.texi: Add missing line.
6112
6113 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
6114             Chris Devers  <cdevers@pobox.com>
6115             Joseph S. Myers  <jsm@polyomino.org.uk>
6116
6117         * doc/frontends.texi: Rewrite.
6118         * doc/gcc.texi: Update last modification date.
6119
6120 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
6121
6122         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
6123         message before redirecting the edge.
6124
6125 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6126
6127         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
6128         flag.
6129         * explow.c (force_not_mem): Set REG_POINTER flag according to
6130         MEM_POINTER one.
6131         * rtl.h (MEM_POINTER): New macro.
6132         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
6133         for MEM_POINTER.
6134
6135 2004-03-20  Roger Sayle  <roger@eyesopen.com>
6136
6137         PR target/13889
6138         * cse.c (fold_rtx): Avoid substituting constants into unary
6139         conversion operations.
6140
6141 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6142
6143         * fold-const.c (fold): Replace "expr" with "t".
6144
6145 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
6146
6147         PR c/12373
6148         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
6149         DECL_ORIGINAL_TYPE if there isn't one.
6150
6151 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6152
6153         * fold-const.c (fold): Replace "final_type" with "type".
6154         Remove variable "final_type".
6155
6156 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6157
6158         * fold-const.c (fold): Constify "type".
6159         Replace "TREE_TYPE (t)" with "type".
6160
6161 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6162
6163         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
6164         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
6165         via (*targetm.foo) () with targetm.foo ().
6166
6167 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6168
6169         PR other/14630
6170         * doc/install.texi: Add info directory category and entry.
6171
6172 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6173
6174         * fold-const.c (fold): Replace "t" with "tem" where it is used
6175         as a temporary variable.  Remove "orig_t" and all of its uses.
6176
6177 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6178
6179         * fold-const.c (fold): Remove variable "invert".
6180         Move the handling of relational expressions that can be folded
6181         to a constant ...
6182         (fold_relational_const): ... here.
6183         (tree_expr_nonzero_p): New.
6184
6185 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6186
6187         PR c/14635
6188         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
6189         DEF_GCC_BUILTIN.
6190
6191 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
6192
6193         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
6194         (GTFILES): Add $(srcdir)/dojump.h.
6195         (gt-dojump.h): New dependency.
6196         * dojump.c (and_reg, and_test, shift_test): New static variables.
6197         (prefer_and_bit_test): New function.
6198         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
6199
6200 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6201
6202         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
6203         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
6204         reorg.c, tree.h: Fix comment typos.
6205
6206 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6207
6208         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
6209         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
6210         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
6211         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
6212         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
6213         vmsdbgout.c: Replace calls via (*targetm.foo) () with
6214         targetm.foo ().
6215
6216 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
6217
6218         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
6219         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
6220         always_inline attribute.
6221         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
6222         Treat expansion as completed even if literal argument is
6223         invalid (so that other expansions are not tried in vain).
6224
6225 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6226
6227         * loop-doloop.c (add_test): Replace GEN_INT (0) with
6228         const0_rtx.
6229
6230 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6231
6232         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
6233         ...
6234         (fold_abs_const): ... here.
6235
6236 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6237
6238         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
6239
6240 2004-03-19  Denis Chertykov  <denisc@overta.ru>
6241
6242         PR target/11520
6243         * config/avr/avr.md ("call_insn"): Handle explicit integer
6244         specially.
6245         (call_value_insn): Likewise.
6246
6247 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6248
6249         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
6250
6251 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6252
6253         * fold-const.c (negate_expr): Move the handling of constants
6254         ...
6255         (fold_negate_const): ... here.
6256
6257 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6258
6259         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
6260         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
6261         * tree.c (debug_no_type_hash): Deleted.
6262         (type_hash_canon): Abort if passed a variant.
6263         Check lang_hooks.types.hash_types.
6264         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
6265         (build_array_type): Remove unnecessary allocation of pointer type.
6266         (build_complex_type): Properly qualify resulting type.
6267
6268 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
6269
6270         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
6271
6272 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
6273
6274         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
6275         (expand_mult): ...here.
6276         (extract_high_half): New, split out from expand_mult_highpart.
6277         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
6278         (expand_highpart): Evaluate the cost of a shift/add sequence,
6279         then see if any of the specialized optabs are cheaper.
6280
6281 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
6282
6283         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
6284
6285 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6286
6287         * convert.c (convert_to_real): Add more math builtins.
6288
6289 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6290
6291         * convert.c (convert_to_real): Reformat using switch stmt.
6292
6293 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6294
6295         * c-common.c (pointer_int_sum): Do not complain about using
6296         pointers to pointers-to-members.
6297
6298 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
6299
6300         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
6301         have moved to the target hooks structure".
6302
6303 2004-03-18  James E Wilson  <wilson@specifixinc.com>
6304
6305         * config/mips/mips.md (type): Split move into arith and fmove.  Split
6306         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
6307         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
6308         Likewise.
6309         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
6310         Likewise.
6311         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
6312         rm7_fp_quick): Likewise.
6313         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
6314         rm9k_fquick): Likewise.
6315         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
6316         Likewise.
6317         (ir_sr70_icmp): Delete.
6318
6319 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6320
6321         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
6322         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
6323         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
6324         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
6325         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
6326         Protect with proper check.
6327         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
6328         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
6329         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
6330         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
6331         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
6332         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
6333         not TYPE_FIELDS.
6334         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
6335
6336 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
6337
6338         * gcse.c (eliminate_partially_redundant_loads): Reject change if
6339         dest is set between beginning and current insn.
6340
6341 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6342
6343         * c-decl.c (grokdeclarator): Do not complain about redeclaring
6344         visible "static" identifiers "extern" in a local scope.
6345         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
6346         post-increments/decrements.
6347
6348 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
6349
6350         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
6351         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
6352         (xtensa_va_start): Remove assignment to current_function_arg_words.
6353
6354 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
6355
6356         * alias.c (record_set): Detect the case where a register is assigned
6357         a new value that has the same base term as the old one.
6358
6359 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6360
6361         * doloop.c: Removed.
6362         * loop-doloop.c: New file.
6363         * Makefile.in (doloop.o): Remove.
6364         (loop-doloop.o): New.
6365         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
6366         * cfgloopanal.c (get_loop_level): New function.
6367         * loop-iv.c (iv_number_of_iterations): Handle case when loop
6368         is leaved immediatelly.
6369         * loop.c (strength_reduce): Do not call doloop optimization.
6370         * loop.h (LOOP_BCT): Removed.
6371         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
6372         (rest_of_handle_loop2): Call doloop_optimize_loops.
6373         (rest_of_compilation): Test for optimizations moved to
6374         rest_of_handle_loop2.
6375
6376 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
6377
6378         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
6379         for mixed mode.
6380         (rs6000_emit_prologue): Ditto.
6381         (rs6000_emit_epilogue): Ditto.
6382         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
6383         macro for mixed mode.
6384
6385 2004-03-18  Jan Hubicka  <jh@suse.cz>
6386
6387         * predict.c (propagate_freq): Compute correctly frequency of
6388         EXIT_BLOCK.
6389
6390 2004-03-17  Eric Christopher  <echristo@redhat.com>
6391
6392         * builtins.c (apply_args_size): Use reg_raw_mode.
6393         (apply_result_size): Ditto.
6394
6395 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6396
6397         PR target/14620
6398         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
6399
6400 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
6401
6402         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
6403         32-bit builds when defaulting to 32-bit.
6404
6405 2004-03-17  Jan Hubicka  <jh@suse.cz>
6406
6407         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
6408         array.
6409
6410 2004-03-17  James E Wilson  <wilson@specifixinc.com>
6411
6412         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
6413         (hazard_nop): Change type to nop.
6414         (type): Split arith into arith, shift, slt, clz.  Delete darith.
6415         Fix all uses.  Change arith to multi if more than one insn emitted.
6416         * config/mips/5400.md (ir_vr54_arith): Likewise.
6417         * config/mips/5500.md (ir_vr55_arith): Likewise.
6418         * config/mips/7000.md (rm7_int_other): Likewise.
6419         * config/mips/9000.md (rm9k_int): Likewise.
6420         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
6421
6422 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
6423
6424         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
6425         to hold the subtype tree instead of recomputing it several times.
6426
6427 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
6428
6429         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
6430         CC_INVERT.
6431         * config/mn10300/mn10300.md (cc): Remove "invert".
6432
6433 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6434
6435         * builtins.c (integer_valued_real_p): Add builtin rint.
6436         (fold_builtin): Likewise.
6437         * convert.c (convert_to_real): Likewise.
6438
6439         * convert.c (convert_to_real): Fix typos in `long double'
6440         builtins.
6441
6442 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
6443
6444         PR c++/14481
6445         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
6446         generated COMPOUND_EXPRs.
6447
6448 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6449
6450         * config/h8300/t-rtems (h8300-*-rtems*): New.
6451
6452 2004-03-16  Eric Christopher  <echristo@redhat.com>
6453
6454         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
6455
6456 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6457
6458         * config/i386/i386-protos.h: Add a prototype for
6459         ix86_reverse_condition.
6460         * config/i386/i386.c (ix86_reverse_condition): New.
6461         * config/i386/i386.h (REVERSE_CONDITION): Use
6462         ix86_reverse_condition.
6463         * config/i386/i386.md: Use ix86_reverse_condition instead of
6464         REVERSE_CONDITION.
6465
6466 2004-03-16  J. Brobecker  <brobecker@gnat.com>
6467
6468         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
6469
6470 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
6471
6472         PR bootstrap/12974
6473         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
6474
6475 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6476
6477         * c-common.c (c_common_type_for_mode): Build vector types on
6478         demand.
6479         (handle_mode_attribute): Deprecate using the mode attribute
6480         to create vector types.  Fix indentation.
6481         (vector_type_node_list): Remove.
6482         (handle_vector_size_attribute): Create vector types on demand.
6483         Strip a NON_LVALUE_EXPR from the attribute if there is one.
6484         * c-typeck.c (comptypes): Make vector types compatible if they
6485         have the same underlying mode.
6486         (convert_for_assignment): Use comptypes to convert between
6487         vector types.
6488         * tree.c (build_common_tree_nodes_2): Do not create vector types.
6489         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
6490         vector types.
6491         * tree.h: Remove vector types.
6492         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
6493         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
6494         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
6495         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
6496         * doc/extend.texi (Vector Types): Document how to use the
6497         vector_size attribute to create vectors, rather than mode.
6498
6499         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
6500         * config/i386/emmintrin.h: Likewise.
6501         * config/i386/mmintrin.h: Likewise.
6502         * config/i386/xmmintrin.h: Likewise.
6503         * config/sh/ushmedia.h: Likewise.
6504
6505 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6506
6507         * config/freebsd-spec.h, config/arc/arc-protos.h,
6508         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
6509         config/arm/linux-gas.h, config/arm/semi.h,
6510         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
6511         config/ia64/freebsd.h, config/mips/7000.md,
6512         config/mips/9000.md, config/ns32k/ns32k-protos.h,
6513         config/sparc/pbd.h: Update copyright.
6514
6515 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6516
6517         PR target/14577
6518         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
6519
6520 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6521
6522         * combine.c (combine_simplify_rtx): Remove the "last"
6523         parameter and its documentation.  Adjust recursive calls.
6524         (simplify_logical): Always perform the only simplification
6525         controlled by "last", if the simplified expression is
6526         actually different.
6527         (try_combine): Do not pass the "last" parameter to
6528         combine_simplify_rtx.
6529
6530 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
6531
6532         PR target/14599
6533         * config/mips/mips.md (UNSPEC_GP): New constant.
6534         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
6535         an UNSPEC instead of (reg $gp).
6536         (mips16_gp_pseudo_reg): Change accordingly.
6537         (print_operand): Print $gp directly when handling CONST_GP_P.
6538
6539 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6540
6541         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
6542         * longlong.h: Make code 68060 clean when compiling for m68060.
6543
6544 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6545
6546         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
6547         * doc/md.texi: Clarify description of "i" constraint.
6548
6549 2004-03-15  James E Wilson  <wilson@specifixinc.com>
6550
6551         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
6552         Split store into store, fpstore, fpidxstore.  Fix all uses.
6553         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
6554         Likewise.
6555         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
6556         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
6557         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
6558         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
6559         ir_sr70_fstore): Likewise.
6560
6561 2004-03-15  Richard Henderson  <rth@redhat.com>
6562
6563         PR middle-end/14535
6564         * except.c (collect_one_action_chain): Record action for cleanup
6565         outer of exception spec.
6566
6567 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
6568
6569         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6570         Fix the check for abort and only do the mmap if we can.
6571
6572 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
6573
6574         * config/sparc/sparc.h: Rework comments about the code model
6575         in 64-bit environment and the mode 'Pmode'.
6576         * doc/invoke.texi (SPARC options): Rework description of the
6577         different code models supported in 64-bit environment.
6578
6579 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6580
6581         * defaults.h (REVERSIBLE_CC_MODE): Define.
6582         * jump.c (reversed_comparison_code_parts): Don't check if
6583         REVERSIBLE_CC_MODE is defined.
6584
6585 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6586
6587         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
6588         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
6589         hosthooks.h, params.h, ra-colorize.c, web.c,
6590         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
6591         config/avr/avr-protos.h, config/avr/avr.md,
6592         config/fr30/fr30-protos.h, config/fr30/fr30.md,
6593         config/h8300/fixunssfsi.c, config/i386/darwin.h,
6594         config/i386/freebsd.h, config/i386/freebsd64.h,
6595         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
6596         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
6597         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
6598         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
6599         config/pa/pa64-regs.h, config/rs6000/aix41.h,
6600         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
6601         config/sparc/aout.h, config/sparc/freebsd.h,
6602         config/sparc/litecoff.h, config/vax/vax-protos.h,
6603         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
6604         copyright.
6605
6606 2004-03-15  Paul Brook  <paul@codesourcery.com>
6607
6608         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
6609
6610 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6611
6612         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
6613         (pp_c_cv_qualifier): Document.
6614         (pp_c_space_for_pointer_operator): Likewise.
6615         (pp_c_integer_constant): Likewise.
6616         (pp_c_identifier): Likewise.
6617         (pp_c_init_declarator): Don't print function body.
6618
6619 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
6620
6621         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
6622         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
6623         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
6624         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
6625         wording and grammar.
6626
6627 2004-03-14  Roger Sayle  <roger@eyesopen.com>
6628
6629         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
6630         with lang_hooks.foo ().
6631         * builtins.c (expand_builtin_va_arg): Likewise.
6632         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
6633         c_common_type_for_mode, c_common_nodes_and_builtins,
6634         handle_mode_attribute, handle_vector_size_attribute): Likewise.
6635         * c-convert.c (convert): Likewise.
6636         * c-format.c (check_format_types): Likewise.
6637         * c-objc-common.c (c_tree_printer): Likewise.
6638         * c-typeck.c (build_unary_op, build_conditional_expr,
6639         build_binary_op): Likewise.
6640         * calls.c (try_to_integrate, expand_call,
6641         emit_library_call_value_1): Likewise.
6642         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
6643         Likewise.
6644         * cgraphunit.c (record_call_1, cgraph_analyze_function,
6645         cgraph_expand_function): Likewise.
6646         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
6647         * coverage.c (build_fn_info_type, build_ctr_info_type,
6648         build_gcov_info, create_coverage): Likewise.
6649         * dbxout.c (dbxout_init): Likewise.
6650         * diagnostic.c (diagnostic_report_current_function): Likewise.
6651         * dojump.c (do_jump): Likewise.
6652         * dwarf2out.c (dwarf2_name): Likewise.
6653         * except.c (init_eh): Likewise.
6654         * explow.c (expr_size, int_expr_size): Likewise.
6655         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
6656         Likewise.
6657         * expr.c (store_expr, store_constructor, safe_from_p,
6658         expand_expr_real, do_store_flag, try_casesi): Likewise.
6659         * function.c (push_function_context_to, pop_function_context_from,
6660         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
6661         put_var_into_stack, allocate_struct_function, current_function_name):
6662         Likewise.
6663         * integrate.c (copy_decl_for_inlining, expand_inline_function):
6664         Likewise.
6665         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
6666         lhd_print_error_function): Likewise.
6667         * opts.c (handle_option, decode_options): Likewise.
6668         * passes.c (open_dump_file): Likewise.
6669         * print-tree.c (print_node): Likewise.
6670         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
6671         expand_decl_cleanup, emit_case_nodes): Likewise.
6672         * stor-layout.c (variable_size): Likewise.
6673         * toplev.c (announce_function, wrapup_global_declarations,
6674         check_global_declarations, compile_file, default_tree_printer,
6675         process_options, lang_dependent_init, finalize): Likewise.
6676         * tree-dump.c (dequeue_and_dump): Likewise.
6677         * tree-inline.c (remap_decl, remap_block, copy_body_r,
6678         initialize_inlined_parameters, declare_return_variable,
6679         inlinable_function_p, expand_call_inline, optimize_inline_calls,
6680         walk_tree, copy_tree_r): Likewise.
6681         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6682         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
6683         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
6684         variably_modified_type_p, dump_tree_statistics): Likewise.
6685         * varasm.c (assemble_variable, compare_constant, copy_constant,
6686         force_const_mem, compute_reloc_for_constant, output_constant,
6687         output_addressed_constants, initializer_constant_valid_p): Likewise.
6688
6689 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
6690
6691         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
6692
6693 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
6694
6695         * doc/install.texi: Reflect autoconf and automake version for
6696         libffi. Update autoconf version to 2.59.
6697
6698 2004-03-13  Roger Sayle  <roger@eyesopen.com>
6699
6700         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
6701         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
6702         make_range, build_range_check, fold_range_test, unextend,
6703         constant_boolean_node, fold_binary_op_with_conditional_arg,
6704         fold_truthop, fold_mathfn_compare, fold_inf_compare,
6705         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
6706         with lang_hooks.foo ().
6707
6708 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
6709
6710         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
6711
6712 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
6713
6714         * doc/install.texi: Note status of -fnew-ra.
6715
6716 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
6717
6718         PR middle-end/14470
6719         * expr.c (store_expr): Call emit_queue before generating the move
6720         from the temporary to the original target.  Protect the temporary
6721         from emit_queue.
6722
6723 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
6724
6725         PR target/14533
6726         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
6727         other than UNSPEC_GOTOFF.
6728
6729 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
6730
6731         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
6732         to arm_legitimate_index_p.  Update all callers with SET as default
6733         value.
6734         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
6735         range if OUTER is a sign-extend operation on QImode.  Correctly
6736         reject shift operations on sign-extended QImode addresses.
6737         (bad_signed_byte_operand): Delete.
6738         (arm_extendqisi_mem_op): New function.
6739         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
6740         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
6741         constraints.
6742         (CONSTRAINT_LEN): New.
6743         (EXTRA_CONSTRAINT): Delete.  Replace with...
6744         (EXTRA_CONSTRAINT_STR): ... this.
6745         (PREDICATE_CODES): Remove bad_signed_byte_operand.
6746         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
6747         is now always default.
6748         (define_splits for bad sign-extend loads): Delete.
6749         (arm_extendqisi, arm_extendqisi_v5): Likewise.
6750         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
6751         Rework 'U' constraint to 'Uv'.
6752         * arm-protos.h: Remove bad_signed_byte_operand.  Add
6753         arm_extendqisi_mem_op.
6754         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
6755         Add Uq constraint.
6756
6757 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
6758
6759         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
6760         with targetm version.
6761
6762         PR target/14567
6763         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
6764         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
6765         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
6766         Update all users of RS6000_ARG_SIZE.
6767         (function_arg_advance): Count fregno using mode size.
6768         (function_arg): Handle long double split over regs and memory.
6769         (function_arg_partial_nregs): Likewise.
6770         (rs6000_va_arg): Repackage complex args.
6771
6772 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
6773
6774         PR target/14047
6775         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
6776         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
6777         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
6778
6779 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
6780
6781         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
6782         prototype.
6783         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
6784         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
6785
6786 2003-03-12  Andrew Pinski  <apinski@apple.com>
6787
6788         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6789         Use ret instead of result. Use addr instead of base.
6790
6791 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
6792
6793         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
6794         fixes required by libstdc++ and update installation instructions
6795         for libstdc++.a.
6796
6797 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
6798
6799         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
6800         leading '@' on fastcall symbols before stripping suffix.
6801
6802 2004-03-12  Roger Sayle  <roger@eyesopen.com>
6803
6804         * combine.c (unmentioned_reg_p): New function to check whether an
6805         expression is a "specialization" of another, i.e. that there are
6806         no registers or memory references mentioned in the first that don't
6807         appear in the second.
6808         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
6809         (combine_instructions): Also try combining instructions using the
6810         REG_EQUAL note from a preceding log-linked instruction.
6811
6812 2004-03-12  Roger Sayle  <roger@eyesopen.com>
6813
6814         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
6815
6816 2004-03-12  Matt Austern  <austern@apple.com>
6817
6818         * target.h (struct gcc_target): New target hook, unwind_label.
6819         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
6820         * output.h (default_emit_unwind_label): New function.
6821         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
6822         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
6823         (TARGET_SUPPORTS_HIDDEN): New target macro.
6824         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
6825         that corresponds to this FDE.
6826         (FRAME_BEGIN_LABEL): Allow target to override default label.
6827         (output_call_frame_info): If FDEs are linknonce, then use extra
6828         indirection for FDE encoding, output a label for each FDE, and
6829         output an empty label for each function without an FDE.
6830         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
6831         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
6832         decls with DECL_ONE_ONLY set, if that macro is defined.
6833         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
6834         for a SUPPORTS_ONE_ONLY target.
6835         * config/darwin-protos.h (darwin_unique_section): Declare.
6836         (darwin_asm_named_section): Likewise.
6837         (darwin_section_type_flags): Likewise.
6838         (darwin_non_lazy_pcrel): Likewise.
6839         (darwin_emit_unwind_label): Likewise.
6840         (darwin_make_decl_one_only): Likewise.
6841         * config/darwin.c (machopic_finish): Get rid of tweak that
6842         eliminate stubs for symbols that are defined.
6843         (darwin_encode_section_info): Don't treat weak functions as defined.
6844         (darwin_make_decl_one_only): Define.
6845         (darwin_asm_named_section): Likewise.
6846         (darwin_section_type_flags): Likewise.
6847         (darwin_unique_section): Likewise.
6848         (darwin_emit_unwind_label): Likewise.
6849         (darwin_non_lazy_pcrel): Likewise.
6850         (darwin_asm_output_dwarf_delta): Difference between two labels is
6851         local only if both labels are local.
6852         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
6853         (ASM_MAKE_LABEL_LINKONCE): Likewise.
6854         (TARGET_SUPPORTS_HIDDEN): Likewise.
6855         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
6856         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
6857         (FRAME_BEGIN_LABEL): Likewise.
6858         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
6859         (ASM_DECLARE_FUNCTION_NAME): Likewise.
6860         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
6861         (TARGET_ASM_UNIQUE_SECTION): Define.
6862         (EH_FRAME_SECTION_NAME): Define.
6863         (EH_FRAME_SECTION_ATTR): Likewise.
6864         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
6865         (TARGET_ASM_NAMED_SECTION): Likewise.
6866         (TARGET_SECTION_TYPE_FLAGS): Likewise.
6867         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
6868         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
6869         TARGET_ASM_EMIT_UNWIND_LABEL.
6870
6871 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6872
6873         * builtins.c (expand_builtin_mathfn): Add pow10* to the
6874         existing exp10* case.
6875         (expand_builtin): Likewise.
6876
6877 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
6878
6879         * doc/tm.texi (registers) <Values in Registers>: Add
6880         entry for REGMODE_NATURAL_SIZE.
6881
6882 2004-03-12  Richard Henderson  <rth@redhat.com>
6883
6884         PR target/14547
6885         * target.h (struct gcc_target): Move calls substructure before
6886         booleans.  Add split_complex_arg.
6887         * function.c (assign_parms, split_complex_args): Use it.
6888         * calls.c (expand_call): Likewise.
6889         (split_complex_values): Likewise.  Check for splittable types
6890         before allocating memory.
6891         (split_complex_types): Likewise.
6892         * system.h (SPLIT_COMPLEX_ARGS): Poison.
6893         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
6894         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
6895         * config/alpha/alpha.c (alpha_split_complex_arg): New.
6896         (TARGET_SPLIT_COMPLEX_ARG): New.
6897         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
6898         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
6899         (rs6000_override_options): Zap it for non-AIX.
6900         (rs6000_function_value): Use targetm.calls.split_complex_arg.
6901         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
6902         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
6903         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
6904         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
6905         SPLIT_COMPLEX_ARGS entry.
6906
6907 2004-03-11  Richard Henderson  <rth@redhat.com>
6908
6909         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
6910         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
6911         (alpha_emit_xfloating_arith): Update to match.
6912         (alpha_emit_xfloating_compare): Likewise.
6913         (alpha_emit_xfloating_cvt): Likewise.
6914         (alpha_emit_xfloating_libcall): Take already built symbol,
6915         mark call const.
6916         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
6917         op1 in a register.
6918
6919 2004-03-11  Richard Henderson  <rth@redhat.com>
6920
6921         PR target/14539
6922         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
6923
6924         * simplify-rtx.c (simplify_relational_operation): Fix typo.
6925
6926 2004-03-11  Richard Henderson  <rth@redhat.com>
6927
6928         PR middle-end/14477
6929         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
6930
6931 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
6932
6933         PR target/14262
6934         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
6935         defined, pass small BLKmode values in registers in the low-order part.
6936
6937 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
6938
6939         * combine.c (if_then_else_cond): Check for NULL return value of
6940         simplify_gen_subreg.
6941
6942 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
6943
6944         PR target/14496
6945         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
6946         TARGET_SINGLE_FLOAT.
6947
6948 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
6949
6950         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
6951         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
6952         * config/ia64/ia64.c (ia64_init_libfuncs): New.
6953         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
6954
6955 2004-03-11  Roger Sayle  <roger@eyesopen.com>
6956
6957         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
6958         -((int)X>>C) where C is an integer constant one bit less than the
6959         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
6960         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
6961
6962         * simplify-rtx.c (simplify_unary_operation): Also implement the
6963         above transformations at the RTL level.
6964
6965 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
6966
6967         * real.c (encode_ibm_extended): Do round low word.
6968
6969 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
6970
6971         * config/arm/arm.md (is_xscale): Comment this attribute and move
6972         it a bit further up in the file, closer to related attributes.
6973
6974 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
6975
6976         * config/host-solaris.c (sol_gt_pch_use_address): Add
6977         missing terminating marker to comment.
6978
6979 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
6980
6981         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
6982         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
6983         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
6984         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
6985         move_operand as source predicate in all cases.
6986         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
6987         Test reg_or_0_operand.  Use move_operand as source predicate.
6988         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
6989         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
6990         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
6991         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
6992         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
6993         Use move_operand as source predicate.  Remove 'K' constraint.
6994         (*movqi_internal): Likewise movqi_internal.
6995         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
6996         reg_or_0_operand.  Use move_operand as source predicate.
6997         (*movsf_softfloat): Likewise movsf_internal2.
6998         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
6999         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
7000         (*movdf_softfloat): Likewise movdf_internal2.
7001         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
7002         for DImode if !TARGET_64BIT.
7003         (mips_legitimize_move): Simplify accordingly.
7004
7005 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7006
7007         PR/14362
7008         * var-tracking.c (struct variable_def): Added field refcount.
7009         (variable_htab_free): Decrease the refcount and delete variable
7010         only if there are no more references.
7011         (unshare_variable): New function.
7012         (vars_copy_1): Increase refcount instead of copying the variable.
7013         (variable_union): Share the variables where possible, unshare
7014         the variables if needed.
7015         (variable_different_p): Return false if var1 and var2 are
7016         the same structure.
7017         (variable_was_changed): Init the refcount of new variable.
7018         (set_frame_base_location): Unshare variable if needed.
7019         (set_variable_part): Init the refcount of new variable.
7020         Unshare the variables if needed.
7021         (delete_variable_part): Unshare the variables if needed.
7022         (emit_notes_for_differences_1): Init the refcount of new variable.
7023         (vt_add_function_parameters): Do not add function parameters to
7024         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
7025         (vt_initialize): Do not add frame_base_decl to IN set of
7026         ENTRY_BLOCK_PTR because it is unused anyway.
7027
7028 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7029
7030         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
7031         (vars_copy): Likewise.
7032         (variable_union): Likewise.
7033         (set_variable_part): Likewise.
7034         (delete_variable_part): Likewise.
7035
7036 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
7037
7038         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
7039         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
7040         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
7041         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
7042         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
7043         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
7044         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
7045         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
7046         config/stormy16/stormy16.c: Fix comment typos and formatting.
7047
7048 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
7049
7050         * configure: Regenerate, since I forgot to while committing Paolo's
7051         changes.
7052
7053 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
7054
7055         PR ada/14131
7056         Move language detection to the top level.
7057         * configure.ac: Remove code to detect languages,
7058         it now lives exclusively in the top level.
7059         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
7060         top level, renamed to ACX_PROG_GNAT.
7061
7062 2004-03-10  Richard Henderson  <rth@redhat.com>
7063
7064         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
7065         extra arguments.
7066         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
7067         and host_xmake_file fragments.
7068         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
7069         (gt_pch_restore): Similarly for gt_pch_use_address.
7070         (default_gt_pch_get_address): New.
7071         (mmap_gt_pch_get_address): Split out of gt_pch_save.
7072         (default_gt_pch_use_address): Split out of gt_pch_restore.
7073         (mmap_gt_pch_use_address): Likewise.
7074         * hooks.c (hook_voidp_size_t_null): Remove.
7075         (hook_bool_voidp_size_t_false): Remove.
7076         * hooks.h: Likewise.
7077         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
7078         default_ or mmap_ definitions.
7079         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
7080         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
7081         and gt_pch_use_address.
7082         * config/host-linux.c, config/host-solaris.c: New files.
7083         * config/x-linux, config/x-solaris: New files.
7084         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
7085         Update for changed definition.
7086         (darwin_rs6000_gt_pch_use_address): Likewise.
7087         * doc/hostconfig.texi: Update docs.
7088
7089 2004-03-10  Richard Henderson  <rth@redhat.com>
7090
7091         PR c/14517
7092         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
7093         except for pedantic c90 mode.
7094
7095 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
7096
7097         * configure.ac: Bump AC_PREREQ to 2.59.
7098         * configure: Regenerate.
7099
7100 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
7101
7102         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
7103         (exp10_optab, exp2_optab): Define corresponding macros.
7104         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
7105         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
7106         using exp10?f2 and exp2?f2 patterns.
7107         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
7108         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
7109         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
7110         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7111
7112         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
7113         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
7114         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
7115
7116 2004-03-10  Anthony Green  <green@redhat.com>
7117
7118         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
7119
7120 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7121
7122         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
7123         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
7124         __LONGDOUBLE128.
7125         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
7126         TARGET_OS_AIX_CPP_BUILTINS.
7127         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
7128         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
7129         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
7130         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
7131         previous change.
7132
7133 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7134
7135         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
7136
7137 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7138
7139         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7140         __LONGDOUBLE128 on AIX.
7141
7142 2004-03-10  Andrew Haley  <aph@redhat.com>
7143
7144         PR optimization/14381
7145         * function.c (expand_function_end): Emit a blockage insn before
7146         the epilogue when -fnon-call-exceptions is used.
7147
7148         * except.c (expand_start_all_catch): Make comment more accurate.
7149
7150 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7151
7152         PR target/14480
7153         * config/rs6000/t-rtems: Add missing file on branch.
7154
7155 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
7156
7157         * dbxout.c (dbxout_symbol_location): Do not output references
7158         to optimized-out constant pool symbols.
7159
7160 2004-03-10  Andreas Schwab  <schwab@suse.de>
7161
7162         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
7163         twon34_r.
7164
7165 2004-03-09  James E Wilson  <wilson@specifixinc.com>
7166
7167         * alias.c (alias_sets_might_conflict_p): New.
7168         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
7169         * common.opt (Wstrict-aliasing=): New.
7170         * flags.h (warn_strict_aliasing): Change type to int.
7171         * opts.c (warn_strict_aliasing): Change type to int.
7172         (common_handle_option): Handle OPT_Wstrict_aliasing_.
7173         * tree.h (alias_sets_might_conflict_p): Declare it.
7174         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
7175
7176 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
7177
7178         PR bootstrap/12371
7179         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
7180         (CALL_USED_REGISTERS): Likewise.
7181         (REG_CLASS_CONTENTS): Likewise.
7182         (REG_ALLOC_ORDER): New.
7183         (REGNO_REG_CLASS): Use regno_reg_class.
7184         * config/m68k/m68k.c: Add regno_reg_class array.
7185
7186 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
7187
7188         * config/ia64/ia64.md (divsi3): Fix algorithm.
7189           (udivsi3): Ditto.
7190           (setf_exp_xf): Remove '*' from name.
7191         * testsuite/gcc.dg/20040309-1.c: New test.
7192
7193 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
7194
7195         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
7196         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
7197         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
7198         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
7199         (sparc_aout_select_rtx_section): Don't check
7200         SUNOS4_SHARED_LIBRARIES.
7201         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
7202
7203 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
7204
7205         PR other/14474
7206         * doc/md.texi (Pattern Ordering, Dependent Patterns)
7207         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
7208         INTERNALS".
7209
7210 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7211
7212         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
7213         (LIBGCC_SPEC): Update to match.
7214
7215 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7216
7217         * c-decl.c (last_function_parms, last_function_parm_tags)
7218         (last_function_parm_others, current_function_parms)
7219         (current_function_parm_tags, current_function_parm_others):
7220         Delete.
7221         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
7222         New macros.
7223         (grokdeclarator): For function definitions, save the arg-info
7224         block from the declarator in DECL_ARGUMENTS.
7225         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
7226         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
7227         contains only PARM_DECLs.  Improve diagnostics.
7228         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
7229         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
7230         (store_parm_decls_newstyle): Take the function to operate on,
7231         and an arg-info block, as arguments; don't get anything from
7232         current_function_* globals.
7233         (store_parm_decls_oldstyle): Likewise.
7234         (store_parm_decls): Pass fndecl and its arg-info block down to
7235         store_parm_decls_newstyle/oldstyle.  Send functions with empty
7236         argument lists through store_parm_decls_newstyle to reduce
7237         overhead.
7238         (pushdecl): Comment on the problems with the call to copy_node.
7239         Clear DECL_ARGUMENTS of the old node after copying it, if it
7240         is an arg-info block instead of a chain of decls.
7241         (start_function): Do not manipulate current_function_parm* or
7242         last_function_parm*.
7243
7244 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7245             Andrew Pinski  <pinskia@physics.uc.edu>
7246
7247         * ifcvt.c (noce_try_sign_mask): New function to transform
7248         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
7249         (noce_process_if_block): Call noce_try_sign_mask.
7250
7251 2004-03-09  Andrew Pinski  <apinski@apple.com>
7252
7253         * c-typeck.c (tagged_types_tu_compatible_p):
7254         Fix typo.
7255
7256 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7257
7258         * simplify-rtx.c (simplify_const_relational_operation): New function
7259         renamed from simplify_relational_operation.
7260         (simplify_relational_operation): Change prototype to accept an
7261         additional mode argument.  Call simplify_const_relational_operation.
7262         (simplify_gen_relational): Update simplify_relational_operation call.
7263         (simplify_ternary_operation): Update simplify_relational_operation
7264         subroutine call to use simplify_const_relational_operation instead.
7265
7266         * rtl.h (simplify_const_relational_operation): Prototype here.
7267         (simplify_relational_operation): Add addtional mode argument.
7268
7269         * combine.c (combine_simplify_rtx): Update calls to
7270         simplify_relational_operation.
7271         (simplify_set): Likewise.
7272         (gen_binary): Likewise.
7273         * cse.c (fold_rtx): Likewise.
7274         * dojump.c (compare_from_rtx): Likewise.
7275         (do_compare_rtx_and_jump): Likewise.
7276         * integrate.c (subst_constants): Likewise.
7277         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
7278
7279 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
7280
7281         * config/m32r/m32r.md: Remove all define_peephole's.
7282
7283 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
7284
7285         * config/rs6000/rs6000.md: Remove trailing whitespace.
7286
7287 2004-03-08  Eric Christopher  <echristo@redhat.com>
7288
7289         * Makefile.in (site.exp): Add libiconv variable definition.
7290
7291 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
7292
7293         * configure: Regenerate for config/accross.m4 correction.
7294
7295 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7296
7297         PR target/14480
7298         * config/rs6000/t-rtems: Add missing file on branch.
7299
7300 2004-03-08  Roger Sayle  <roger@eyesopen.com>
7301
7302         PR middle-end/14289
7303         * c-typeck.c (c_mark_addressable): A register variable should
7304         be considered global if its not automatic, i.e. TREE_PUBLIC,
7305         TREE_STATIC or DECL_EXTERNAL.
7306         * function.c (put_var_into_stack): Call abort when placing a
7307         hard register into the stack, if x_parm_reg_stack_loc is NULL.
7308
7309 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
7310
7311         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
7312         ("*extendqisi2_short_displ"): Likewise.
7313
7314 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
7315
7316         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
7317         (comp_operator): Likewise.
7318         * config/pdp11/pdp11-protos.h: Remove corresponding
7319         prototypes.
7320
7321 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
7322
7323         * expr.c (highest_pow2_factor_for_type): Rename into
7324         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
7325         TYPE_ALIGN when the target is a COMPONENT_REF.
7326         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
7327
7328 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7329
7330         * config/rs6000/rs6000.c: Formatting fix.
7331         (legitimate_offset_address_p): Correct offset range check.
7332
7333         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
7334         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
7335         and MASK_STRING.
7336
7337 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7338
7339         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
7340         for little endian.
7341         ("ashrdi3_no_power"): Disable for little endian.
7342         (ashrdi3): Same.
7343
7344 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7345
7346         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
7347         builtins.
7348
7349 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
7350
7351         PR target/14471
7352         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
7353         case, checking for -no-mul-bug-abort option.
7354         * configure, config.in: Regenerate.
7355         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
7356         and -mno-mul-bug-workaround.
7357         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
7358         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
7359         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
7360         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
7361         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
7362         sure mulu.d is not last on cache-line.
7363         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
7364         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
7365         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
7366         (TARGET_SWITCHES): New options -mmul-bug-workaround and
7367         -mno-mul-bug-workaround.
7368         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
7369         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
7370         * config/cris/cris.c (cris_operand_extend_operator): Clarify
7371         relation to MULT in head comment.
7372         (cris_op_str): Abort for MULT.
7373         (cris_print_operand) <case '!'>: New case.
7374
7375 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7376
7377         PR debug/11983
7378         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
7379         dw_val_class_vec.  Replace use throughout file.
7380         (dw_float_const): Delete.
7381         (dw_vec_const): New.
7382         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
7383         throughout file.
7384         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
7385         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
7386         (size_of_die): Adjust dw_val_class_vec sizing.
7387         (output_die): Output dw_val_class_vec.
7388         (insert_int, extract_int, insert_float): New functions.
7389         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
7390         Handle CONST_VECTOR.
7391         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
7392
7393 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7394
7395         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
7396         AltiVec abi cannot co-exist.
7397
7398         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
7399
7400 2004-03-07  Jan Hubicka  <jh@suse.cz>
7401
7402         * except.c (emit_to_new_bb_before):  Break fallthru edges.
7403
7404 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
7405
7406         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
7407         ("*lshrsi3"): Also accept an immediate for 68HC12.
7408         ("*ashrsi3_const"): Likewise.
7409         ("*ashrsi3"): Likewise.
7410         ("*ashlsi3_const"): Likewise.
7411         ("*ashlsi3"): Likewise.
7412         ("cmphi_1_hc12"): Compare two hard register by pushing them and
7413         comparing with a pop; don't use a split for that.
7414         ("cmphi split"): Disable compare split for 68HC12.
7415
7416         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
7417         the status operands if they have side effects.
7418
7419 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
7420
7421         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
7422         definition.
7423         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
7424         config/h8300/h8300.h, config/ia64/ia64.h,
7425         config/mcore/mcore.h, config/mmix/mmix.h,
7426         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7427         config/stormy16/stormy16.h, config/v850/v850.h,
7428         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
7429         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
7430         definition.
7431
7432 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7433
7434         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
7435         <XOR_EXPR>: Fold x ^ x as zero.
7436         <AND_EXPR>: Fold x & x as x.
7437
7438 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7439
7440         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
7441         "foo++ == const" into "++foo == const+incr".
7442
7443 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
7444
7445         * config/mips/mips.c (mips_in_small_data_p): Return false if
7446         TARGET_ABICALLS.
7447
7448 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
7449
7450         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
7451         the stack register.
7452         (expand_prologue): Don't make an interrupt or a trap handler a far
7453         symbol.
7454         (m68hc11_initial_elimination_offset): Likewise.
7455
7456 2004-03-06  Richard Henderson  <rth@redhat.com>
7457
7458         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
7459
7460 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7461
7462         * config/ns32k/ns32k-protos.h: Add a prototype for
7463         ns32k_notice_update_cc.
7464         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
7465         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
7466         ns32k_notice_update_cc.
7467
7468 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
7469
7470         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
7471         "*load_multiple_si"): Allow only if reload_completed.
7472         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
7473         Likewise.
7474
7475 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7476
7477         * config/vax/vax-protos.h: Add a prototype for
7478         vax_notice_update_cc.
7479         * config/vax/vax.c (vax_notice_update_cc): New.
7480         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
7481         vax_notice_update_cc.
7482
7483 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
7484
7485         * collect2.c (main): Only export initfunc and finifunc if
7486         LD_INIT_SWITCH not defined.
7487         (scan_prog_file): Only export constructors and destructors if
7488         LD_INIT_SWITCH not defined.  Only export symbols not found in
7489         shared objects.
7490
7491 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7492
7493         * pa.md (icacheflush): Reorder operands to make match_scratch operand
7494         last.
7495         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
7496         from calls to gen_icacheflush.
7497
7498 2004-03-06  Richard Henderson  <rth@redhat.com>
7499
7500         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
7501         (TARGET_LONG_DOUBLE_128): New.
7502         (TARGET_SWITCHES): Add long-double-{128,64}.
7503         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
7504         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
7505         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
7506         (WIDEST_HARDWARE_FP_SIZE): New.
7507         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
7508         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
7509         if TARGET_VAX_FLOAT.
7510         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
7511         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
7512
7513 2004-03-06  Richard Henderson  <rth@redhat.com>
7514
7515         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
7516         botched rtx class conversion.
7517
7518 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7519
7520         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
7521         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
7522
7523         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
7524         macros.
7525         * fold-const.c (fold_mathfn_compare, fold): Likewise.
7526
7527 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7528
7529         PR target/14343
7530         * config/i386/i386.md (movv2di_internal): Conditionalize on
7531         TARGET_SSE, not TARGET_SSE2.
7532
7533 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
7534
7535         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
7536         duplicated line.
7537
7538 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7539
7540         * builtins.c: Consistently use logN not log* in comments.
7541
7542 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7543
7544         * rtl.h (mem_expr_equal_p): Function prototype added.
7545         * cfgcleanup.c (merge_memattrs): New function.
7546         (flow_find_cross_jump): Call merge_memattrs for matching insns.
7547         * emit-rtl.c (mem_expr_equal_p): New function.
7548
7549 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
7550
7551         * objc/objc-act.c (synth_module_prologue): Const-qualify
7552         objc_selector type if using the GNU runtime; fix generated
7553         signatures for objc_msg_lookup and objc_msg_lookup_super
7554         to match what GNU ObjC headers provide; reformat and clean up.
7555         (synth_self_and_ucmd_args): Use previously constructed (and
7556         hence possibly const-qualified) objc_selector type.
7557
7558 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7559
7560         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
7561
7562 2004-03-05  Jason Merrill  <jason@redhat.com>
7563
7564         * tree.h (TYPE_HASH): Use TYPE_UID.
7565         (TREE_HASH): New macro with old definition of TYPE_HASH.
7566         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
7567         (build_array_type, build_function_type): Likewise.
7568         (build_method_type_directly): Likewise.
7569         (build_offset_type, build_complex_type): Likewise.
7570         (type_hash_list, attribute_hash_list): Likewise. Now static.
7571         * except.c: s/TYPE_HASH/TREE_HASH/.
7572
7573 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
7574
7575         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
7576         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
7577         __va_ndx by 2 words when referencing an argument on the stack.
7578         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
7579         words when an arg on the stack is first seen.
7580
7581 2004-03-05  Paul Brook  <paul@codesourcery.com>
7582
7583         * arm.h (ARM_FLAG_VFP): Remove.
7584         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
7585         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
7586
7587 2004-03-05  Paul Brook  <paul@codesourcery.com>
7588
7589         * function.c (assign_parms): Include pretend alignment offset.
7590
7591 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7592
7593         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
7594         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
7595
7596 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
7597
7598         * configure.ac: When passing --enable-languages to subdir
7599         configure when host != build, make sure we don't pass an empty
7600         value.
7601         * configure: Regenerate.
7602
7603 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
7604
7605         PR 13577
7606         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
7607         options.
7608
7609 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
7610
7611         * simplify-rtx.c (simplify_relational_operation): If
7612         flag_wrapv is set, do not move terms between the two
7613         side of a relational operator.
7614
7615 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
7616
7617         * rtlanal.c: Include target.h and output.h
7618         (rtx_cost, address_cost, default_address_cost): Move from...
7619         * cse.c (rtx_cost, address_cost, default_address_cost):
7620         ... this file.
7621         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
7622         * Makefile.in: Adjust dependencies.
7623
7624 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
7625
7626         * cse.c (cse_end_of_basic_block): Make static.
7627         * local-alloc.c (function_invariant_p): Move to
7628         reload1.c.
7629         * loop.c (libcall_other_reg, record_excess_regs):
7630         Make static.
7631         * reload1.c (function_invariant_p): Moved here
7632         from local-alloc.c, made static.
7633         * rtl.h (cse_end_of_basic_block, function_invariant_p,
7634         libcall_other_reg, record_excess_regs): Remove
7635         declarations.
7636
7637 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7638
7639         * config/m32r/m32r.c (signed_comparison_operator): Add a
7640         missing parenthesis.
7641
7642 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
7643
7644         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
7645         going to call mmap again.  Read the file into the right place.
7646         Give a fatal error if we have to relocate.
7647
7648 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
7649
7650         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
7651         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
7652
7653 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
7654
7655         PR other/14354
7656         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
7657         round the same.  When rounding, clear bits that would cause a
7658         second rounding in pack_d.
7659         (_fpmul_parts): Ditto.  Remove #if 0:d code.
7660
7661 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
7662
7663         PR c++/14425, c++/14426
7664         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
7665         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
7666         Change C++ definitions to accept a 'const int' argument;
7667         the prototypes already do.
7668         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
7669         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
7670         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
7671         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
7672         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
7673         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
7674         end in ..._int; change them to accept an int instead of a char
7675         as the last parameter.
7676
7677 2004-03-04  Phil Edwards  <phil@codesourcery.com>
7678
7679         * genmultilib:  Change '=' to '-' when translating option names
7680         to directory names.
7681
7682 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7683
7684         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
7685         stack slot for temp used for result of BLKmode but in integral mode.
7686
7687 2004-03-04  Jan Hubicka  <jh@suse.cz>
7688
7689         * reload.c (find_reloads): Reorganize if seqeunce to switch.
7690
7691         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
7692         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
7693
7694 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
7695
7696         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
7697         * testsuite/gcc.dg/20040303-1.c: New test.
7698
7699 2004-03-04  Steven Bosscher  <stevenb@suse.de>
7700
7701         * ppro.md: Rewrite as a DFA pipeline description.
7702         * i386.md: Remove all uses of the ppro_uops attribute.
7703         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
7704         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
7705         ix86_sched_reorder, ix86_variable_issue,
7706         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
7707         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
7708         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
7709         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
7710         * athlon.md (athlon_ssecmp_load): Fix comment
7711
7712 2004-03-04  Stuart Hastings  <stuart@apple.com>
7713
7714         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
7715
7716 2004-03-04  Stuart Hastings  <stuart@apple.com>
7717
7718         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
7719         686, tell Darwin assembler to allow prefetch insns, non-empty def
7720         of SUBTARGET_OPTION_TRANSLATE_TABLE.
7721
7722 2004-03-04  DJ Delorie  <dj@redhat.com>
7723
7724         PR optimization/14282
7725         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
7726         between a call and the assignment of its return value.
7727
7728 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
7729
7730         * config/h8300/h8300.c: Put a comment for every function.
7731
7732 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
7733
7734         * config/h8300/h8300.md: Add comments about peephole2's.
7735
7736 2004-03-04  Steven Bosscher  <stevenb@suse.de>
7737
7738         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
7739
7740 2004-03-04  Jan Hubicka  <jh@suse.cz>
7741
7742         * cfgcleanup.c (thread_jump): Update call of cselib_init.
7743         * cselib.c (cselib_record_memory): New static variable.
7744         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
7745         Give up on memories when asked for.
7746         (cselib_init): Accept new argument.
7747         * cselib.h (cselib_init): Update prototype.
7748         * gcse.c (local_cprop_pass): Update call of cselib_init.
7749         * loop.c (load_mems): Update call of cselib_init.
7750         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
7751         * sched-deps.c (sched_analyze): Update call of cselib_init.
7752
7753 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
7754             GP <gp@qnx.com>
7755
7756         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
7757         when compiling PIC.
7758
7759 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
7760
7761         PR/14362
7762         * var-tracking.c (track_expr_p): Do not track variables which
7763         should be ignored for debugging purposes.
7764
7765 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7766
7767         * real.c (encode_ibm_extended): Don't bother rounding low double.
7768         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
7769         when fmt->pnan < fmt->p.
7770
7771 2004-03-04  Eric Christopher  <echristo@redhat.com>
7772
7773         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
7774         only range of valid arg registers and fixed_regs.
7775
7776 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7777
7778         PR target/14406
7779         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
7780         (abstf2, abstf2_internal): New define_expand.
7781
7782 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7783
7784         PR optimization/14235
7785         * expr.c (convert_move): Copy the source to a new pseudo
7786         when converting from a sub-word source to a larger-than-word
7787         register which conflicts with the source.
7788
7789 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
7790
7791         PR 13728
7792         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
7793         parameters with the same name, unless one is a forward decl.
7794         Do not issue a redundant-redeclaration warning for forward
7795         decls of parameters.
7796
7797 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
7798
7799         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
7800         configuration.
7801
7802 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
7803
7804         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
7805
7806 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7807
7808         * target-def.h (TARGET_OPTF): Delete.
7809         * c-opts.c (TARGET_OPTF): Define.
7810
7811 2004-03-04  Jan Hubicka  <jh@suse.cz>
7812
7813         * cselib.c (cselib_finish): Fix another miss-application of my previous
7814         patch.
7815
7816 2004-03-03  Mike Stump  <mrs@apple.com>
7817
7818         Add framework support for darwin.
7819
7820         * c-incpath.c: Include target.h and machmode.h.
7821         (add_path): Use a consistent style for cpp_dir.  Initialize
7822         p->construct to 0.
7823         (add_cpp_dir_path): New.
7824         (register_include_chains): Add use of extra_includes callback.
7825         (hook_void_int): Add.
7826         (target_c_incpath): Add.
7827         * c-incpath.h (add_cpp_dir_path): New.
7828         (target_c_incpath_s): Add.
7829         (target_c_incpath): Add.
7830         (C_INCPATH_INIT): Add.
7831         * c-opts.c (c_common_missing_argument,
7832         c_common_handle_option): Add -F argument processing.
7833         * c.opt: Add -F argument processing.
7834         * gcc.c (trad_capable_cpp): Add -F argument processing.
7835         * cppfiles.c (find_file_in_dir): Update to use construct
7836         callback.
7837         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
7838         cpp_get_prev): New.
7839         (_cpp_find_file): Use search_path_exhausted.
7840         (make_cpp_dir): Initialize construct to 0.
7841         * cpplib.h (missing_header_cb
7842         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
7843         (cpp_callbacks): Add missing_header
7844         (cpp_dir): Add construct.
7845         * target-def.h: (TARGET_OPTF): New.
7846         * hooks.c (hook_void_int, hook_void_charptr): Add.
7847         * hooks.h (hook_void_int, hook_void_charptr): Add.
7848         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
7849         $(MACHMODE_H) dependencies.
7850         * doc/invoke.texi (Darwin Options): Document -F.
7851         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
7852         (TARGET_OPTF): Add.
7853         * fix-header.c (target_c_incpath): Add.
7854
7855         * config/darwin-c.c: Add c-incpath.h include.
7856         (using_frameworks, find_subframework_file,
7857         find_subframework_header, add_system_framework_path,
7858         frameworks_in_use, num_frameworks, max_frameworks,
7859         add_framework, find_framework, struct framework_header,
7860         framework_header_dirs, framework_construct_pathname,
7861         find_subframework_file, add_system_framework_path,
7862         add_framework_path, framework_defaults,
7863         darwin_register_frameworks, find_subframework_header): Add.
7864         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
7865         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
7866         (CPP_SPEC): Add __APPLE_CC__ support.
7867         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
7868
7869 2004-03-04  Jan Hubicka  <jh@suse.cz>
7870
7871         * cselib.c (cselib_finish): Fix miss-application of my previous
7872         patch.
7873
7874 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7875
7876         * hooks.c (hook_tree_tree_identity): New.
7877         * hooks.h: Add a prototype for hook_tree_tree_identity.
7878         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
7879         instead of MD_ASM_CLOBBERS.
7880         * system.h (MD_ASM_CLOBBERS): Poison.
7881         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
7882         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
7883         * target.h (gcc_target): Add md_asm_clobbers.
7884         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
7885         (ix86_md_asm_clobbers): New.
7886         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
7887         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
7888         TARGET_MD_ASM_CLOBBERS.
7889
7890 2004-03-03  Stuart Hastings  <stuart@apple.com>
7891
7892         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
7893
7894 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7895
7896         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
7897
7898         * config/sparc/sparc.h (ASM_FLOAT): Delete.
7899         (ASM_DOUBLE): Likewise.
7900         (ASM_LONGDOUBLE): Likewise.
7901         * config/sparc/pbd.h (ASM_INT_OP): Delete.
7902
7903 2003-03-03  Richard Henderson  <rth@redhat.com>
7904
7905         PR opt/13862
7906         * cselib.c (cselib_record_sets): Don't record multiple sets in
7907         asm insns.
7908
7909 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
7910
7911         * common.opt: Add description of the new -fgcse-after-reload flag.
7912
7913         * flags.h (flag_gcse_after_reload): Declaration of global variable.
7914
7915         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
7916         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
7917         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
7918         get_bb_avail_insn, hash_scan_set_after_reload,
7919         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
7920         gcse_after_reload, get_bb_avail_insn): New functions to implement
7921         gcse-after-reload.
7922         (gcse_after_reload_main): New function, the main entry point to
7923         gcse-after-reload.
7924
7925         * rtl.h (gcse_after_reload_main): Declaration of the new function.
7926
7927         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
7928
7929         * toplev.c (flag_gcse_after_reload): Initialization.
7930
7931         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
7932
7933         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
7934         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
7935         the gcse after reload optimization.
7936
7937         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
7938         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
7939         parameters.
7940
7941         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
7942
7943 2004-03-03  Nicolas Pitre <nico@cam.org>
7944
7945         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
7946         small negative values.
7947
7948 2004-03-03  Jan Hubicka  <jh@suse.cz>
7949
7950         * cselib.c (hash_table):  Remove GTY marker.
7951         (reg_values): Turn into array.
7952         (used_regs): Likewise.
7953         (n_used_regs): New static variable.
7954         (reg_values_old): Kill.
7955         (clear_table): Update uses of arrays.
7956         (cselib_lookup): Likewise.
7957         (cselib_record_set): Likewise.
7958         (cselib_init): Likewise.
7959         (cselib_finish): Likewise.
7960         (cselib_udpate_varray_sizes): Kill.
7961         * cselib.h (cselib_update_varray_sizes): Kill.
7962
7963 2004-03-03  Paul Brook  <paul@codesourcery.com>
7964
7965         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
7966
7967 2004-03-03  Jan Hubicka  <jh@suse.cz>
7968
7969         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
7970         Rename from ...; make statistics transparent.
7971         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
7972         (loc_descriptor): New structure.
7973         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
7974         add_statistics):
7975         New static function.
7976         (ggc_record_overhead, dump_statistics): New global function.
7977         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
7978         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
7979         from ...; accept locations
7980         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
7981         ggc_realloc, ggc_alloc_typed):  ... this one.
7982         from ...; accept locations
7983         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
7984         ggc_alloc_stat): Rename from ... ; pass locations
7985         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
7986         ... this one.
7987         (ggc_alloc_stat): Record overehead.
7988         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
7989         ggc_realloc, ggc_alloc_typed):  Turn to macros
7990         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
7991         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
7992         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
7993         * langhooks.h (lhd_make_node): Declare.
7994         (LANG_HOOKS_MAKE_TYPE): Default to new function,
7995         * langhooks.c (lhd_make_node): New.
7996         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
7997         locations.
7998         (rtx_alloc, swallow_copy_rtx): ... this one.
7999         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
8000         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
8001         * toplpev.c (finalize): Dump stats.
8002         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
8003         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8004         Rename from ... ; pass locators.
8005         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8006         build?,  build_decl): Declare.
8007         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
8008         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8009         Declare.
8010         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8011         build?,  build_decl): New macros.
8012         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
8013         * statistics.h: New file.
8014
8015 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8016             Richard Sandiford  <rsandifo@redhat.com>
8017
8018         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8019         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
8020         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
8021         * config/mips/mips.c (mips_output_division): Fill the branch delay
8022         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
8023         TARGET_FIX_R4400.
8024         (mips_output_division): Adjust accordingly.
8025         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
8026         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
8027
8028 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
8029
8030         * alias.c (rtx_equal_for_memref_p): Use predicates
8031         to test rtx classes and new rtx class codes, possibly
8032         splitting conditionals that tested against '<' and 'o'.
8033         * caller-save.c (save_call_clobbered_regs): Likewise.
8034         * combine.c (contains_muldiv, find_split_point, subst,
8035         combine_simplify_rtx, simplify_if_then_else,
8036         simplify_set, simplify_logical, expand_compound_operation,
8037         make_compound_operation, if_then_else_cond, known_cond,
8038         apply_distributive_law, cached_nonzero_bits,
8039         cached_num_sign_bit_copies, simplify_shift_const,
8040         gen_binary, simplify_comparison, update_table_tick,
8041         record_value_for_reg, get_lsat_value_validate): Likewise.
8042         * cse.c (mention_regs, find_best_addr, find_comparison_args,
8043         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
8044         Likewise.
8045         * emit-rtl.c (copy_insn_1): Likewise.
8046         * expr.c (force_operand): Likewise.
8047         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
8048         * flow.c (notice_stack_pointer_modification_1,
8049         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
8050         and_reg_cond, elim_reg_cond): Likewise.
8051         * function.c (update_epilogue_consts): Likewise.
8052         * genattrtab.c (attr_rtx_1): Likewise.
8053         * genopinit.c (gen_insn): Likewise.
8054         * integrate.c (subst_constants): Likewise.
8055         * jump.c (reversed_comparison_code_parts,
8056         reversed_comparison_code, delete_related_insns,
8057         rtx_renumbered_equal_p): Likewise.
8058         * local-alloc.c (block_alloc): Likewise.
8059         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
8060         canonicalize_condition): Likewise.
8061         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
8062         Likewise.
8063         * optabs.c (add_equal_node, expand_binop): Likewise.
8064         * predict.c (estimate_probability): Likewise.
8065         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
8066         * recog.c (validate_replace_rtx_1, comparison_operator,
8067         offsettable_address_p, constrain_operands): Likewise.
8068         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
8069         Likewise.
8070         * regclass.c (scan_one_insn): Likewise.
8071         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
8072         * regrename.c (kill_autoinc_value): Likewise.
8073         * reload.c (find_reusable_reload, find_reloads,
8074         reg_overlap_mentioned_for_reload_p): Likewise.
8075         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
8076         * rtl.c (copy_rtx): Likewise.
8077         * rtl.h (CONSTANT_P, INSN_P): Likewise.
8078         * rtlanal.c (commutative_operand_precedence): Likewise.
8079         * sched-deps.c (conditions_mutex_p): Likewise.
8080         * sched-rgn.c (is_cfg_nonregular): Likewise.
8081         * simplify-rtx.c (simplify_gen_binary,
8082         simplify_gen_relational, simplify_replace_rtx,
8083         simplify_unary_operation, simplify_binary_operation,
8084         simplify_ternary_operation, simplify_rtx): Likewise.
8085         * unroll.c (reg_dead_after_loop): Likewise.
8086         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
8087         print_operand): Likewise.
8088         * config/arc/arc.c (proper_comparison_operator): Likewise.
8089         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
8090         Likewise.
8091         * config/avr/avr.c (_reg_unused_after): Likewise.
8092         * config/frv/frv.c (frv_ifcvt_modify_tests,
8093         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
8094         * config/i386/i386.c (ix86_comparison_operator,
8095         ix86_carry_flag_operator, fcmov_comparison_operator,
8096         arith_or_logical_operator, print_operand,
8097         ix86_expand_binary_operator, ix86_binary_operator_ok):
8098         Likewise.
8099         * config/i386/i386.md: Likewise.
8100         * config/ia64/ia64.c (not_postinc_memory_operand,
8101         ia64_print_operand, update_set_flags, errata_emit_nops):
8102         Likewise.
8103         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
8104         CONSTRAINT_OK_FOR_S): Likewise.
8105         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
8106         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
8107         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
8108         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
8109         Likewise.
8110         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
8111         eqne_comparison_operator, signed_comparison_operator):
8112         Likewise.
8113         * config/mips/mips.c (cmp_op, symbolic_expression_p):
8114         Likewise.
8115         * config/mmix/mmix (mmix_foldable_comparison_operator,
8116         mmix_comparison_operator): Likewise.
8117         * config/pa/pa.c (hppa_legitimize_address): Likewise.
8118         * config/rs6000/rs6000.c (stmw_operation,
8119         branch_comparison_operator, trap_comparison_operator,
8120         ccr_bit): Likewise.
8121         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
8122         * config/s390/s390.c (s390_alc_comparison,
8123         s390_slb_comparison):L Likewise.
8124         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
8125         Likewise.
8126         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
8127         noov_compare_op, noov_compare64_op, v9_regcmp_op,
8128         emit_hard_tfmode_operation, reg_unused_after)
8129         * doc/md.texi, doc/rtl.texi: Likewise.
8130
8131         * ra-debug.c: Add 2004 to list of copyright years.
8132         * unroll.c: Likewise.
8133
8134         * combine.c (simplify_logical): Remove dummy test,
8135         (apply_distributive_law): Fix typo in comment.
8136         GET_CODE (x) == AND so x is a commutative binary op.
8137         * jump.c (delete_related_insns): simplify loop
8138         condition, move testing of RTX codes inside the loop.
8139         (rtx_renumbered_equal_p): do not use RTX_CODE.
8140         * rtl.c (rtx_class): Declare as enum rtx_class.
8141         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
8142         Move to RTX_COMM_COMPARE class.
8143         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
8144         Move to RTX_CONST_OBJ class.
8145         * rtl.h (enum rtx_class): New declaration,
8146         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
8147         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
8148         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
8149         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
8150         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
8151         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
8152         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
8153         OBJECT_P): New macros.
8154         * config/sparc/sparc.c (noov_compare_op): Remove register
8155         from parameter.
8156
8157 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8158
8159         * target.h: Remove texi jargons in comments.
8160
8161 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8162
8163         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
8164         threshold to 0x4f.
8165
8166         Revert:
8167         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8168         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8169         as well.
8170         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8171         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8172
8173 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8174
8175         * doc/md.texi (cbranchmode4): New.
8176
8177 2004-03-02  Eric Christopher  <echristo@redhat.com>
8178
8179         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
8180         fix_trunc.
8181         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
8182         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
8183         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
8184         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
8185
8186 2004-03-02  Richard Henderson  <rth@redhat.com>
8187
8188         PR middle-end/11767
8189         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
8190         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
8191         before the compare, if flag_non_call_exceptions.
8192
8193 2004-03-02  Richard Henderson  <rth@redhat.com>
8194
8195         PR middle-end/14327
8196         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
8197         emitting the label, not after.
8198
8199 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8200
8201         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
8202         (m68hc11_mov_addr_mode): Likewise.
8203         (m68hc11_override_options): Initialize them based on target.
8204         (register_indirect_p): Allow a MEM for indirect addressing modes and
8205         use flags to control what is allowed.
8206         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
8207         supported addressing modes.
8208         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
8209         (go_if_legitimate_address_internal): Likewise.
8210         (m68hc11_indirect_p): Likewise and check the mode.
8211         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
8212
8213 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8214
8215         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
8216         (expand_builtin_setjmp_setup): Use
8217         targetm.builtin_setjmp_frame_value instead of
8218         BUILTIN_SETJMP_FRAME_VALUE.
8219         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
8220         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
8221         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8222         * target.h (gcc_target): Add builtin_setjmp_frame_value.
8223         * targhooks.c (default_builtin_setjmp_frame_value): New.
8224         * targhooks.h: Add a prototype for
8225         default_builtin_setjmp_frame_value.
8226         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
8227         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8228
8229 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8230
8231         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
8232         sequences of moves.
8233         (add peepholes): New peepholes to optimize sequences adding small
8234         constants.
8235         (bset peepholes): New peepholes to transform an OR in a bset form
8236         (bclr peepholes): Likewise for bclr form.
8237         (cmp peepholes): New peepholes to avoid register copies when comparing.
8238
8239 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8240
8241         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
8242         to separate push from moves.
8243         ("*pushdf_internal"): Likewise.
8244         ("*pushsf_internal"): Likewise.
8245         ("*pushsi_internal"): Likewise.
8246         ("movdi_internal"): Use define_insn_and_split; non push operand.
8247         ("movdf_internal"): Likewise.
8248         ("movsf_internal"): Likewise.
8249         ("movsi_internal"): Likewise.
8250         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
8251         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
8252         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
8253
8254 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8255
8256         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
8257         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
8258         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
8259         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
8260         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
8261         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
8262         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
8263         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
8264         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
8265         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
8266         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
8267
8268 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8269
8270         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
8271         (SOFT_XY_REGNUM): Define.
8272         (cmp split): Use the above instead of hard coded numbers.
8273         (8-bit op split): No need to check the mode; allow Q_REG.
8274         (ashift split): Adjust the first operand if it uses the SP and we
8275         are pushing the shifted value.
8276         (plus shift split): Fix when a source is in register D+X.
8277         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
8278
8279 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8280
8281         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
8282         comparing with Z register.
8283
8284 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8285
8286         * cfgloop.h (struct loop_desc): Removed.
8287         (struct loop): Fields simple, desc and has_desc removed.
8288         (simple_loop_p, count_loop_iterations): Declaration removed.
8289         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
8290         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
8291         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
8292         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
8293         simple_loop_exit_p, variable_initial_value, variable_initial_values,
8294         simple_condition_p, simple_increment, count_strange_loop_iterations,
8295         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
8296         Removed.
8297         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
8298
8299 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8300
8301         * genattrtab.c: Don't handle MATCH_INSN.
8302         * genrecog.c: Likewise.
8303         * gensupport.c: Likewise.
8304         * rtl.def (match_insn): Remove.
8305         * doc/md.texi (match_insn, match_insn2): Remove.
8306
8307 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
8308
8309         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
8310         macro results in memory allocation.
8311
8312 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
8313
8314         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
8315         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
8316         %(fbsd_dynamic_linker),
8317         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
8318         config/i386/freebsd.h
8319         * config/arm/freebsd.h: Ditto.
8320         * config/i386/freebsd.h: Ditto.
8321         * config/i386/freebsd64.h: Ditto.
8322         * config/ia64/freebsd.h: Ditto.
8323         * config/rs6000/sysv4.h: Ditto.
8324         * config/sparc/freebsd.h: Ditto.
8325
8326 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
8327
8328         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
8329
8330 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8331
8332         * rtl.def (define_combine): Remove.
8333
8334 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8335
8336         * config/h8300/h8300.md: Tweak formatting.
8337
8338 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8339
8340         * config/h8300/h8300.md (*cmphi_h8300): Rename to
8341         *cmphi_h8300_znvc.
8342         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
8343
8344 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
8345
8346         PR bootstrap/14356
8347         * gcc.c (process_command): Remove const-qualification from argv.
8348         (main): Likewise.
8349
8350 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8351
8352         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
8353         pushqi1_h8300hs_advanced.  Adjust its caller.
8354         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
8355         Adjust its caller.
8356
8357 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
8358
8359         * Makefile.in (install-libgcc, install-multilib): Pass
8360         mkinstalldirs var to libgcc.mk.
8361
8362 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8363
8364         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
8365         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
8366
8367 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8368
8369         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
8370         * config/h8300/h8300.md: Split several peephole2's, each into
8371         two.
8372
8373 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8374
8375         * dominance.c (recount_dominator): Handle postdominators.
8376
8377 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8378
8379         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
8380         (NUM_SYMBOL_TYPES): Likewise.
8381         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
8382         (mips_unspec_address): Declare.
8383         (mips_gotoff_page, mips_gotoff_global): Delete.
8384         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
8385         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
8386         (mips_symbolic_constant_p, mips_symbolic_address_p)
8387         (mips_symbol_insns): Handle new symbol types.
8388         (general_symbolic_operand): New predicate.
8389         (mips_unspec_address): Make extern.
8390         (mips_gotoff_page, mips_gotoff_global): Delete.
8391         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
8392         Handle new symbol types.
8393         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
8394         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
8395         mips_unspec_address directly.
8396         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
8397         the documentation of -mexplicit-relocs.
8398
8399 2004-03-01  Jeff Law  <law@redhat.com>
8400
8401         * fold-const.c (fold): An equality comparison of a non-weak object
8402         against zero has a known result.  Similarly an equality comparison
8403         of the address of two non-weak, unaliased symbols has a known result.
8404
8405         * ggc-page.c (struct page_entry): New field PREV.
8406         (ggc_alloc): Update PREV field appropriately.
8407         (sweep_pages): Likewise.
8408         (ggc_free): Likewise.  Use PREV field rather than loop to
8409         improve ggc_free performance.
8410
8411 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8412
8413         * config/mips/mips.c (mips_output_division): Use the division
8414         instruction to fill the delay slot of a zero check.
8415         (mips_idiv_insns): Adjust accordingly.
8416
8417 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
8418
8419         * config.gcc: Create a default tmake_file for linux, and use
8420         it in all but two linux clauses.  Comment those two.
8421
8422 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
8423
8424         * combine.c (try_combine):  Do not refer to is_replaced.
8425         (gen_lowpart_for_combine):  Perverse subregs now have a
8426         more politically correct name.
8427         * cse.c (cse_insn): Likewise.
8428         * jump.c: Fix bogus reference to delete_insn.
8429
8430 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
8431
8432         PR debug/14328
8433         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
8434         constants as signed values.
8435
8436         PR middle-end/13448
8437         * c-tree.h (readonly_warning): Rename to ...
8438         (readonly_error): ... this.
8439         * c-typeck.c (build_unary_op): Adjust accordingly.
8440         (readonly_warning): Rename to ...
8441         (readonly_error): ... this and issue errors, not warnings.
8442         (build_modify_expr): Call readonly_error, not readonly_warning.
8443         (c_expand_asm_operands): Likewise.
8444         * tree-inline.c (optimize_inline_calls): Do not inline functions
8445         after errors have occurred.
8446
8447 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8448
8449         * configure.ac: Rearrange some threading code for clarity;
8450         add section comment.
8451         * configure: Regenerate.
8452
8453 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8454
8455         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
8456         typos.
8457         * doc/cppopts.texi: Fix a typo.
8458
8459 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8460
8461         * config/i386/i386.md: Fix formatting.
8462
8463 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8464
8465         * configure.ac: Add some comments delineating sections of code.
8466
8467         * doc/install.texi: Note that libada uses autoconf 2.57 also.
8468
8469         * doc/install.texi: Fix idiot typo in previous commit.
8470
8471         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
8472
8473 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8474
8475         * config/h8300/h8300.md: Add comments about peephole2's.
8476
8477 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8478
8479         * config/h8300/h8300.md: Tweak operand numbers of some
8480         peephole2's.
8481
8482 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8483
8484         * config/h8300/h8300.md: Tweak comments about peephole2's.
8485
8486 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
8487
8488         PR middle-end/14203
8489         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
8490         instead of testing whether DECL_RTL is not NULL.
8491
8492 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8493
8494         * config/sh/sh.c: Fix formatting.
8495
8496 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8497
8498         * config/sh/sh.c: Convert to ISO-C.
8499
8500 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
8501
8502         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
8503         my previous patch.
8504
8505         * config/darwin.h (machopic_finish): Output stub even if the
8506         symbol is already defined.
8507
8508 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8509
8510         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
8511
8512 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8513
8514         * genattr.c (main): Don't define
8515         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
8516         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
8517         (DFA_PIPELINE_INTERFACE): Likewise.
8518         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
8519         (DFA_PIPELINE_INTERFACE): Likewise.
8520
8521 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
8522
8523         * config/mips/mips.md (tstsi, tstdi): Delete.
8524
8525 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8526
8527         * config/mips/mips.c (override_options): Remove an obsolete
8528         duplicate definition of the "e" constraint.
8529         * config/mips/mips.h: Update a comment accordingly.
8530
8531 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8532
8533         * config/mips/mips.md: Complete the unfinished R4000
8534         multiply/shift errata workaround.  Improve documentation.
8535         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
8536         has a hilo hazard.
8537         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
8538         (muldi3, muldi3_internal): Likewise.
8539         (muldi3_internal2): Remove, replacing with...
8540         (muldi3_mult3, muldi3_r4000): ...these new patterns.
8541         (mulsidi3): Take the errata into account.
8542         (mulsidi3_32bit): Remove, replacing with...
8543         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
8544         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
8545         (umulsidi3): Take the errata into account.
8546         (umulsidi3_32bit): Remove, replacing with..
8547         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
8548         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
8549         TARGET_FIX_R4000.
8550         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
8551         (smuldi3_highpart, umuldi3_highpart): Likewise.
8552         * doc/invoke.texi: Document the errata workaround.
8553
8554 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8555
8556         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
8557         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8558         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
8559         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
8560         * config/mips/mips.c (mips_idiv_insns): New function.
8561         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
8562         (mips_output_division): Add a workaround for the R4000 divide/shift
8563         errata.
8564         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
8565         the length of an "idiv" instruction.
8566         * doc/invoke.texi: Document the new switches.
8567
8568 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8569
8570         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
8571         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
8572
8573 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8574
8575         PR optimization/14229
8576         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
8577
8578 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
8579
8580         * fold-const.c (fold): Strip NOPs that change the signedness
8581         for RSHIFT too.  Expand comment.
8582
8583 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
8584
8585         PR optimization/7871
8586         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
8587         from or to call insns.
8588
8589 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8590
8591         PR optimization/7871
8592         * flow.c (propagate_one_insn): Interpret calls as setting global
8593         registers, not merely clobbering them.
8594
8595 2004-02-27  Dale Johannesen  <dalej@apple.com>
8596
8597         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
8598         config/darwin-protos.h:  Ditto.
8599         config/darwin.h:  Remove call to it.
8600         * combine.c (distribute_notes): Do not place a REG_DEAD note
8601         when value is both set and used.
8602
8603 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8604
8605         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8606         as well.
8607         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8608         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8609
8610 2004-02-27  Andrew Pinski  <apinski@apple.com>
8611
8612         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
8613         Speedup common case of the type values being in the same order.
8614
8615 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
8616
8617         * config/ia64/ia64.h (no-inline-float-divide): New option.
8618         * config/ia64/ia64.h (no-inline-int-divide): New option.
8619         * config/ia64/ia64.h (no-inline-sqrt): New option.
8620         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
8621         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
8622         * config/ia64/ia64.c (ia64_override_options): Modify error
8623         checking for inlined division/sqrt.
8624
8625 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8626
8627         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
8628         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
8629         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
8630         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
8631         copyright.
8632
8633 2004-02-27  Paul Brook  <paul@codesourcery.com>
8634
8635         * function.c (assign_parms): Don't count pretend args for alignment.
8636
8637 2004-02-27  Richard Henderson  <rth@redhat.com>
8638
8639         * passes.c: New file.
8640         * Makefile.in (OBJS-common): Add it.
8641         * diagnostic.c (rtl_dump_and_exit): Move decl ...
8642         * flags.h (rtl_dump_and_exit): ... here.
8643         * output.h (size_directive_output, last_assemble_variable_decl):
8644         Move from toplev.c.
8645         * rtl.h (reg_alloc): Move from toplev.c.
8646         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
8647         struct dump_file_info, enum dump_file_index, dump_file_tbl,
8648         open_dump_file, close_dump_file, rest_of_decl_compilation,
8649         rest_of_type_compilation, rest_of_handle_final,
8650         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
8651         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
8652         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
8653         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
8654         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
8655         rest_of_handle_tracer, rest_of_handle_if_conversion,
8656         rest_of_handle_if_after_combine, rest_of_handle_web,
8657         rest_of_handle_branch_prob,
8658         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
8659         rest_of_handle_addressof, rest_of_handle_sibling_calls,
8660         rest_of_handle_jump_bypass, rest_of_handle_inlining,
8661         rest_of_handle_null_pointer, rest_of_handle_combine,
8662         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
8663         rest_of_handle_gcse, rest_of_handle_loop_optimize,
8664         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
8665         (decode_d_option): Use enable_rtl_dump_file.
8666         (compile_file, finalize, do_compile): Move profile+combine+graph
8667         cleanup to finish_optimization_passes.
8668         * toplev.h (init_optimization_passes, finish_optimization_passes,
8669         enable_rtl_dump_file): Declare.
8670
8671 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
8672             Roger Sayle  <roger@eyesopen.com>
8673
8674         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
8675         operands to build a tree with swapped operands.
8676         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
8677         'unsignedp' predicate to specify the signedness.
8678
8679 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8680
8681         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
8682         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
8683         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
8684         comment typos and formatting.  Follow spelling conventions.
8685
8686 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
8687
8688         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
8689         fix_truncsfsi2.
8690
8691         * config/rs6000/spe.md: Delete spe_efsctuiz.
8692         Add spe_fixuns_truncsfsi2.
8693         Add spe_fix_truncsfsi2.
8694
8695 2004-02-26  Eric Christopher  <echristo@redhat.com>
8696
8697         * c-lex.c (c_lex_string_translate): New variable.
8698         (lex_string): Use to determine string translation.
8699         * c-pragma.h: Prototype.
8700         * c-parse.in (start_string_translation): New. Set above.
8701         (stop_string_translation): Ditto.
8702         (attribute, attribute_list, asm_def, asm_stmt,
8703         asm_operand): Use above functions.
8704         * cp/parser.c (cp_parser_declaration): Translate strings
8705         unless token is RID_EXTERN. Set c_lex_string_translate
8706         for recursive use.
8707         (cp_parser_asm_definition): Only translate argument strings
8708         to asms.
8709         (cp_parser_asm_operand_list): Ditto.
8710         (cp_parser_attribute_list): Do not translate attribute strings.
8711
8712 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8713
8714         * stmt.c (expand_start_case_dummy): Remove.
8715         * tree.h: Remove the corresponding prototype.
8716
8717 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8718
8719         * builtins.c (apply_args_register_offset): Remove.
8720         * tree.h: Remove the corresponding prototype.
8721
8722 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8723
8724         * stor-layout.c (is_pending_size): Remove.
8725         * tree.h: Remove the corresponding prototype.
8726
8727 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8728
8729         * recog.c (validate_replace_src): Remove.
8730         * recog.h: Remove the corresponding prototype.
8731
8732 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8733
8734         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
8735         MAYBE_REG_PARM_STACK_SPACE.
8736         * function.c: Likewise.
8737         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
8738         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
8739         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
8740         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
8741
8742 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8743
8744         * c-decl.c (c_expand_deferred_function): Remove.
8745         * c-tree.h: Remove the corresponding prototype.
8746
8747 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8748
8749         * postreload.c (reload_cse_move2add): Generate just a PLUS
8750         instead of an entire SET.
8751
8752 2004-02-26  Jan Hubicka  <jh@suse.cz>
8753
8754         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
8755         /pentium4m.
8756         * i386.c (override_options): Add support for new CPUs.
8757         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
8758         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
8759         constants.
8760         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
8761
8762 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
8763
8764         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
8765
8766 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
8767
8768         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
8769         (sparc_emit_fixunsdi): New prototype.
8770         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
8771         (sparc_emit_fixunsdi): New function.
8772         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
8773         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
8774         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
8775         to sparc_emit_floatunsdi.
8776         (fixuns_truncsfdi2): New expander.
8777         (fixuns_truncdfdi2): Likewise.
8778
8779 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
8780
8781         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
8782         unless HAVE_cc0.
8783
8784 2004-02-25  Richard Henderson  <rth@redhat.com>
8785
8786         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
8787         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
8788         use (op0-op1) == 0 if op0 is a pointer.
8789         * config/alpha/alpha.md (cmpdi): Use some_operand.
8790         (three comparison combine splits): Remove.
8791
8792 2004-02-25  Richard Henderson  <rth@redhat.com>
8793
8794         PR c/12794
8795         * c-common.c (handle_alias_attribute): Reject the attribute if
8796         current_function_decl is set.
8797
8798 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
8799
8800         * config.gcc: Add comment describing extra_gcc_objs.
8801         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
8802         * configure.ac (extra_gcc_objs): New substitution variable.
8803         (host_extra_gcc_objs): Don't substitute.
8804         * configure: Regenerate.
8805         * Makefile.in: Use extra_gcc_objs.
8806
8807 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
8808
8809         * doc/contrib.texi: Add an entry for myself.
8810
8811 2004-02-25  Jan Hubicka  <jh@suse.cz>
8812
8813         * basic-block.h (make_eh_edge, break_superblocks): Declare.
8814         * cfgbuild.c (make_eh_edge):  Make global.
8815         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
8816         * except.c (build_post_landing_pads, connect_post_landing_pads,
8817         dw2_build_landing_pads, sjlj_emit_function_enter,
8818         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
8819         sjlj_build_landing_pads): Update CFG.
8820         (emit_to_new_bb_before): New function.
8821         (finish_eh_generation): Do not rebuild the CFG.
8822
8823 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8824
8825         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
8826         target_cpu_default defines.
8827         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
8828         * pa.h (TARGET_DEFAULT): Likewise.
8829
8830 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
8831
8832         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
8833         comparisons with regard to signedness.
8834
8835 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
8836
8837         * arm.c (thumb_legitimize_address): New function.
8838         * arm-protos.h: Prototype it.
8839         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
8840         (LEGITIMIZE_ADDRESS): Use it.
8841
8842 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
8843
8844         * reload1.c (reload): Only spill eliminable register with multiple
8845         adjacent elimination alternatives if all alternatives fail.
8846
8847 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
8848
8849         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
8850         is -4095...+4095 inclusive.
8851
8852 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
8853
8854         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
8855         the bootstrap failure with Sun CC 5.4 and 5.5.
8856
8857 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
8858
8859         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
8860         which modifies NEWREG.
8861         (cse_condition_code_reg): Update the mode of CC_REG in
8862         CC_SRC_INSN on our own.
8863
8864 2004-02-24  Michael Matz  <matz@suse.de>
8865
8866         * config/i386/i386.c (ix86_comp_type_attributes): Check for
8867         regparm attributes.
8868
8869 2004-02-24  Richard Henderson  <rth@redhat.com>
8870
8871         * toplev.c (dump_file_tbl): Rename from dump_file.
8872         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
8873         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
8874         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
8875         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
8876         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
8877         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
8878         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
8879         s/rtl_dump_file/dump_file/g.
8880
8881 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
8882
8883         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
8884         (spe_fixuns_truncsfsi2): Delete.
8885
8886         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
8887         (fixuns_truncsfsi2): Delete.
8888
8889 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
8890
8891         PR/14240
8892         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
8893
8894 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
8895
8896         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
8897
8898 2004-02-24  Jason Merrill  <jason@redhat.com>
8899
8900         * tree.c (check_qualified_type): New fn.
8901         (get_qualified_type): Use it.  If type already has the desired
8902         quals, just return it.
8903         * tree.h: Declare it.
8904
8905 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
8906
8907         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
8908         TARGET_SCHED_FINISH_GLOBAL): New macros.
8909
8910         * target.h (md_init_global, md_finish_global): Function
8911         declarations corresponding to new target macros.
8912
8913         * haifa-sched.c (sched_init, sched_finish): Allow target to
8914         call the new schedular hooks.
8915
8916         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
8917         call to update_life_info.
8918
8919         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
8920         flag_schedule_insns for SH4.
8921
8922         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
8923         find_set_regmode_weight, find_insn_regmode_weight,
8924         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
8925         sh_variable_issue, high_pressure, ready_reorder,
8926         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
8927         functions used to throttle the insn movement in first
8928         scheduling pass for SH.
8929
8930         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
8931         TARGET_SCHED_FINISH_GLOBAL.
8932
8933 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
8934
8935         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
8936         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
8937         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
8938         symbols in sections named by the user.
8939         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
8940         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
8941         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
8942         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
8943         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
8944         the above.
8945         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
8946         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
8947         one more pseudo to further improve code generation.
8948         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
8949         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
8950         inside UNSPEC.
8951         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
8952         * config/frv/frv.c (frv_legitimate_address_p): Added
8953         allow_double_reg_p argument.  Adjust all callers.  Use it to
8954         decide whether to enable double-register indirect addressing.
8955         (frv_funcdesc_alias_set): Remove.
8956         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
8957         register.  Emit movdi_ldd.
8958         (ldd_address_operand): New.
8959         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
8960         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
8961         (PREDICATE_CODES): Add ldd_address_operand.
8962         * config/frv/frv.md (movdi_ldd): New.
8963         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
8964         intermediate computations if possible.
8965         (symGOTOFF2reg_i): Fix harmless typo.
8966         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
8967         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
8968         relocated p_vaddr to vaddr type.
8969         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
8970         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
8971         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
8972         MEM, or use a funcdesc alias set.  Use regular move instead of
8973         ldd.
8974         (dbl_memory_one_insn_operand): Recognize function descriptors by
8975         type or by alias set, and don't split them.
8976         * config/frv/frv.md (call, call_value): Never use call_internal
8977         for fdpic.
8978         (call_internal, call_value_internal): Never match for FDPIC.
8979         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
8980         call_value_fdpicsi): Require FDPIC.
8981         (ldd): Removed.
8982         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
8983         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
8984         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
8985         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
8986         FDPIC.  Compute data base address.
8987         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
8988         before the other self-specs are processed.
8989         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
8990         Build with -fPIC.
8991         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
8992         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
8993         inhibit_libc is defined.
8994         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
8995         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
8996         __FRV_FDPIC__.
8997         (__RELOC_POINTER): Define.
8998         (_Unwind_IteratePhdrCallback): Use it.
8999         * config/frv/frv.h (Twrite): Define.
9000         (TRANSFER_FROM_TRAMPOLINE): Use it.
9001         * config/frv/linux.h (INVOKE__main): Undefine.
9002         (Twrite): Override.
9003         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
9004         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
9005         (-mlibrary-pic): Emphasize that this option generates EABI code.
9006         (-mcpu): Add fr550.
9007         (-mpack): Remove.
9008         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
9009         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
9010         and CONSTs in FDPIC mode.
9011         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
9012         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9013         * config/frv/frv.c (move_source_operand): Don't accept symbolic
9014         constants.
9015         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
9016         rather than 'i' constraint for the 2-instruction alternative.
9017         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
9018         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9019         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
9020         EXTRA_CONSTRAINT_FOR_Y.
9021         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
9022         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
9023         (addsi3): Change 'Y' constraint to 'Q'.
9024         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
9025         * reload.c (CONST_POOL_OK_P): New macro.
9026         (find_reloads): Use it to decide whether a constant can be forced
9027         into memory.
9028         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
9029         constant satisfies got12_operand.
9030         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
9031         (frv_legitimate_address_p): Check for valid unspec offsets using
9032         got12_operand rather than frv_legitimate_fdpic_operand_p.
9033         (frv_legitimate_fdpic_operand_p): Delete.
9034         (frv_emit_movsi): Abort if we try to use the FDPIC register during
9035         or after reload.
9036         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
9037         TARGET_FDPIC.
9038         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
9039         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
9040         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
9041         (frv_fdpic_fptr_operand): Don't declare here.
9042         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
9043         rather than fdpic_got12_operand.
9044         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
9045         got12_operand and const_unspec_operand.
9046         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
9047         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
9048         (symbolic_operand): Remove.
9049         (const_unspec_operand): New predicate.
9050         * config/frv/frv.md (*movsi_got): Use got12_operand.
9051         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
9052         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
9053         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
9054         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
9055         * config/frv/frv.c (frv_unspec): New structure.
9056         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
9057         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
9058         validate CONST indices.  Use frv_output_const_unspec to print them.
9059         (frv_print_operand): Update call to unspec_got_name.  Use
9060         frv_output_const_unspec to print constant unspecs.
9061         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
9062         Reject UNSPECs otherwise.
9063         (unspec_got_name): Take the relocation number as argument, not an
9064         rtx containing it.
9065         (frv_output_addr_const_extra): Remove, replacing with...
9066         (frv_output_const_unspec): ...this new function.
9067         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
9068         (gpr_or_int12_operand): Use fdpic_got12_operand.
9069         (dbl_memory_one_insn_operand): Likewise.
9070         (fdpic_got12_operand): Use frv_const_unspec_p.
9071         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
9072         are already legitimate.  Use frv_small_data_reloc_p when deciding
9073         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
9074         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
9075         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
9076         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
9077         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9078         label, for real this time.
9079         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
9080         representation of visibility.
9081         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
9082         such.
9083         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
9084         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
9085         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
9086         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
9087         it was explicitly disabled.
9088         (frv_stack_info): There is no need to save the link register in every
9089         frame unless TARGET_LINKED_FP is true.
9090         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
9091         frame pointer if the stack pointer might change value.
9092         (frv_return_addr_rtx): Check and process "count" argument.
9093         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
9094         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
9095         (frv_find_base_term): Declare.
9096         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
9097         (FIND_BASE_TERM): Define.
9098         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
9099         small_data_register_operand, small_data_symbolic_operand.  Add
9100         symbolic_operand.
9101         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
9102         (frv_print_operand_memory_reference, output_move_single): Remove
9103         special handling for unlegitimized sdata addresses.
9104         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
9105         and symbolic addresses.
9106         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
9107         (frv_find_base_term): New function.
9108         (int_2word_operand): Check specifically for symbolic address constants.
9109         (pic_register_operand, pic_symbolic_operand): Delete.
9110         (small_data_register_operand, small_data_symbolic_operand): Delete.
9111         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
9112         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
9113         (move_source_operand): Only accept CONSTs if they're a two-insn
9114         symbolic constant.
9115         (fdpic_got12_operand): Don't require TARGET_FDPIC.
9116         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
9117         using gen_symGOTOFF2reg*.
9118         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
9119         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
9120         themselves a cost of 3 insns.
9121         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
9122         Change predicate to symbolic_operand.
9123         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
9124         (*movsi_lda_sdata): Delete.
9125         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
9126         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
9127         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
9128         frv-*-*linux*.
9129         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9130         label.
9131         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
9132         -multilib-library-pic.
9133         (LINK_SPEC): Add -z text for -mfdpic.
9134         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
9135         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
9136         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
9137         Override.
9138         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
9139         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
9140         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
9141         crtstuff-generated files.
9142         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
9143         * config.gcc: Add frv-*-*linux*.
9144         * config/frv/linux.h, config/frv/t-linux: New.
9145         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
9146         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
9147         when -mfdpic even if a linker script is explicitly listed.
9148         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9149         * config/frv/frv.c (frv_override_options): Clear asm_out
9150         unaligned_op for SImode on FDPIC.
9151         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
9152         argument passed to decl_readonly_section.
9153         (frv_assemble_integer): Revert 2003-09-30's change, but make the
9154         whole block run with FDPIC even with -fno-PIC.
9155         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9156         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
9157         symbol or label plus offset to memory.
9158         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
9159         GOTOFF and GPREL for LABEL_REF.
9160         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
9161         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
9162         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
9163         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
9164         * doc/invoke.texi: Document them.
9165         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
9166         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
9167         (frv_splittable_got_operand): Removed.
9168         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
9169         LO_SUM.  Add comments.
9170         (frv_override_options): Moved enabling of FDPIC to
9171         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
9172         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
9173         (frv_legitimize_fdpic_address): Don't duplicate logic in
9174         frv_emit_movsi.
9175         (frv_gen_GPsym2reg): New.
9176         (unspec_got_name): Added gprel.
9177         (frv_expand_fdpic_call): Add support for inlining PLTs.
9178         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
9179         (gpr_or_int12_operand): Added GPREL12.
9180         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
9181         (small_data_symbolic_operand): Fail if FDPIC.
9182         (fdpic_splittable_got_operand): Removed.
9183         (fdpic_got12_operand): Added GPREL12.
9184         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
9185         when appropriate.  Fix sdata GOTOFF.
9186         (frv_legitimate_constant_p): Require legitimate PIC operand for
9187         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
9188         (frv_assemble_integer): Move FDPIC funcdesc handling out of
9189         flag_pic case.
9190         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
9191         frv_assemble_integer fails.
9192         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
9193         (SUBTARGET_DRIVER_SELF_SPECS): New.
9194         (ASM_SPEC): Don't pass -mno-fdpic.
9195         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
9196         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
9197         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
9198         -multilib-library-pic.
9199         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
9200         condexec_si_media_operator, condexec_sf_add_operator and
9201         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
9202         and condexec_sf_unary_operator.
9203         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
9204         New.
9205         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
9206         movsi_internal.  Give them internal names.  movsi_got has type
9207         int.
9208         (fdpic got splitters): Remove.
9209         (symGPREL2reg, symGPREL2reg_hilo): New.
9210         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
9211         to -mlibrary-pic.  Map -multilib-library-pic to it.
9212         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
9213         Document.
9214         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
9215         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
9216         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
9217         (frv_cannot_force_const_mem): New function.
9218         (const_small_data_p, plus_small_data_p): Update comments on sdata
9219         on FDPIC.
9220         (frv_override_options): Set flag_pie for FDPIC too.
9221         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
9222         call-saved registers on FDPIC.
9223         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
9224         don't force LR to be preserved.
9225         (frv_expand_prologue): Likewise.
9226         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
9227         (frv_frame_pointer_required): Don't force it just because the
9228         FDPIC register is used.
9229         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
9230         operand only if !condexec_p.
9231         (frv_legitimize_address): Return the FDPIC-legitimized address.
9232         Don't match small data here on FDPIC.
9233         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
9234         symbols.  Use TRUE/FALSE instead of 1/0.
9235         (frv_local_funcdesc_p): New.
9236         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
9237         immediates when possible.
9238         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
9239         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
9240         an UNSPEC_GOT.
9241         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
9242         12-bit immediates when possible.
9243         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
9244         are not legitimate pic operands.
9245         (frv_in_small_data_p): Re-enable for FDPIC.
9246         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
9247         (FRV_GLOBAL_P): Removed.
9248         * config/frv/frv.md: Add modes to CONSTs.
9249         (movsi_got): New.
9250         (movsi_lo_sum_got): Use separate matches instead of match_dup.
9251         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
9252         (fdpic splittable operations): Match on flag_pic != 1.
9253         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
9254         * config/frv/frv.c (frv_asm_out_constructor,
9255         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
9256         bytes, not bits.
9257         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
9258         * config/frv/frv.c (frv_assemble_integer): Reject complex
9259         expressions referencing function SYMBOL_REFs.
9260         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
9261         (move_source_operand): Reject CONSTs that reference function
9262         SYMBOL_REFs on FDPIC.
9263         (frv_emit_movsi): If we get such a CONST, break it up.
9264         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
9265         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
9266         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
9267         MEM.
9268         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
9269         (frv_trampoline_size): Increase for FDPIC.
9270         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
9271         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
9272         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
9273         Disable use of GOTOFF for now.
9274         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
9275         Disable use of small data in FDPIC for now.
9276         (frv_asm_output_mi_thunk): Implement for FDPIC.
9277         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
9278         * config/frv/frv.c (frv_asm_out_constructor): Use
9279         frv_assemble_integer for FDPIC pointers.
9280         (frv_asm_out_destructor): Likewise.
9281         * config/frv/frv.md (ldd): Fix order of operands.  Use
9282         address_operand for input.
9283         2003-09-18  DJ Delorie  <dj@redhat.com>
9284         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
9285         (unspec_got_name): Correct typo.
9286         (frv_emit_movsi): Pre-expand splittable GOTs.
9287         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
9288         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
9289         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
9290         * config/frv/t-frv: Add -mfdpic multilibs.
9291         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
9292         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
9293         * config/frv/frv.c (frv_override_options): -mfdpic assumes
9294         flag_pic, default to 32-bit pics, require DWORD ops.
9295         (frv_override_options): Add W and Z constraints.
9296         (frv_expand_prologue): No pic prologue for -mfdpic.
9297         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
9298         (frv_print_operand_memory_reference): Handle GOT constants.
9299         (frv_legitimate_address_p): Allow GOT constants.
9300         (frv_legitimize_address): Handle GOT addresses too.
9301         (frv_legitimate_fdpic_operand_p): New.
9302         (frv_legitimize_fdpic_address): New.
9303         (unspec_got_name): New.
9304         (frv_output_addr_const_extra): New.
9305         (frv_expand_fdpic_call): New.
9306         (frv_fdpic_fptr_operand): New.
9307         (gpr_or_int12_operand): Handle GOT operands.
9308         (int_2word_operand): Handle GOT operands.
9309         (fdpic_operand): New.
9310         (fdpic_splittable_got_operand): New.
9311         (fdpic_got12_operand): New.
9312         (frv_emit_movsi): Handle GOT operands.
9313         (frv_assemble_integer): -mfdpic doesn't use rofixups.
9314         (frv_print_operand): Support 'g' code for GOT operands.
9315         * config/frv/frv-protos.h: Add prototypes as needed.
9316         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
9317         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
9318         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
9319         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
9320         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
9321         R_FRV_GOTOFFLO): New.
9322         (movsi_high_got, movsi_lo_sum_got): New.
9323         (*movsi_pic): Don't use this splitter for -mfdpic.
9324         (addsi3): Allow GOT references also.
9325         (call, call_value): Handle -mfdpic separately.
9326         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
9327         call_value_fdpicsi): New.
9328         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
9329         symGOTOFF2reg_i): New.
9330         * config/frv/frv.h (MASK_FDPIC): New.
9331         (TARGET_FDPIC): New.
9332         (TARGET_SWITCHES): Add -mfdpic.
9333         (FDPIC_FPTR_REGNO): New.
9334         (FDPIC_REGNO): New.
9335         (OUR_FDPIC_REG): New.
9336         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
9337         FDPIC_CALL_REGS.
9338         (REG_CLASS_NAMES): Likewise.
9339         (REG_CLASS_CONTENTS): Likewise.
9340         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
9341         (EXTRA_CONSTRAINT): Add it here.
9342         (FRV_GLOBAL_P): New.
9343         (OUTPUT_ADDR_CONST_EXTRA): New.
9344
9345 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9346
9347         * config/sparc/sparc.h: Remove commented-out definitions of
9348         TARGET_EDOM and GEN_ERRNO_RTX.
9349
9350 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9351
9352         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
9353         df_analyse with df_analyze.
9354
9355 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
9356
9357         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
9358         beginning of block.
9359
9360 2004-02-23  James E Wilson  <wilson@specifixinc.com>
9361
9362         * calls.c (precompute_arguments): Update comment.
9363
9364 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9365
9366         * et-forest.c: Replace et_occurences with et_occurrences.
9367
9368 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9369
9370         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
9371         with iv_analyze.
9372
9373 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
9374
9375         * config/i386/i386.c: Rename pni to sse3.
9376         * config/i386/i386.h: Likewise.
9377         * config/i386/i386.md: Likewise.
9378         * config/i386/pmmintrin.h: Likewise.
9379         * doc/extend.texi: Likewise.
9380         * doc/invoke.texi: Likewise.
9381
9382 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
9383             Kazu Hirata  <kazu@cs.umass.edu>
9384
9385         Remove -fwritable-strings.
9386         * c-common.c (fix_string_type): Don't check
9387         flag_writable_strings.
9388         (fix_string_type): Likewise.
9389         * c-opts.c (set_std_c89): Don't initialize
9390         flag_writable_strings.
9391         (set_std_c99): Likewise.
9392         * common.opt (fwritable-strings): Remove.
9393         * flags.h: Remove the external declaration of
9394         flag_writable_strings.
9395         * opts.c (common_handle_option) <OPT_fwritable_strings>:
9396         Remove.
9397         * toplev.c (flag_writable_strings): Remove.
9398         (f_options): Remove an entry for writable-strings.
9399         * varasm.c (const_hash_1) <STRING_CST>: Don't check
9400         flag_writable_strings.
9401         (compare_constant) <STRING_CST>: Likewise.
9402         (build_constant_desc): Likewise.
9403         * config/darwin.c (machopic_select_section): Likewise.
9404         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
9405         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
9406         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
9407         * config/mips/mips.c (mips_select_section): Likewise.
9408         (mips_encode_section_info): Likewise.
9409         * config/pa/pa.c (pa_select_section): Likewise.
9410         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
9411         * config/v850/v850.c (v850_select_section): Likewise.
9412         * doc/invoke.texi (-fwritable-strings): Remove.
9413         (-fno-const-strings): Don't mention -fwritable-strings.
9414         * doc/trouble.texi: Don't mention -fwritable-strings.
9415
9416 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
9417
9418         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
9419
9420 2004-02-23  Dale Johannesen  <dalej@apple.com>
9421
9422         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
9423         (movdf_hardfloat64):  Ditto.
9424         (movdf_softfloat64):  Ditto.
9425
9426 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
9427         * config/rs6000/rs6000.c (function_arg): call to
9428         rs6000_mixed_function_arg for DFmode moved to allow
9429         normal DFmode incoming register assignment.
9430
9431 2004-02-23  Dale Johannesen  <dalej@apple.com>
9432
9433         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
9434         (movdf_hardfloat64):  Ditto.
9435
9436 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9437
9438         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
9439         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
9440         copyright.
9441
9442 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
9443
9444         PR c/14156
9445         * c-typeck.c (c_expand_return): Change check for VAR_DECL
9446         to use DECL_P instead.
9447
9448         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
9449         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
9450
9451 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9452
9453         * Makefile.in (opts.o): Depend on target.h.
9454         * opts.c (decode_options): Use targetm.default_short_enums
9455         instead of DEFAULT_SHORT_ENUMS.
9456         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9457         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
9458         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
9459         * target.h (gcc_target): Add default_short_enums.
9460         * config/cris/cris.h: Remove a comment about
9461         DEFAULT_SHORT_ENUMS.
9462         * config/ip2k/ip2k.h: Likewise.
9463         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
9464         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
9465
9466 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9467             Falk Hueffner  <falk@debian.org>
9468
9469         PR c/14188
9470         * builtins.c (expand_builtin_va_arg): Emit an informative message
9471         if a trap is generated.
9472         * c-typeck.c (build_function_call): Likewise.
9473
9474 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9475
9476         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
9477         fopen.
9478         * libgcov.c: Include sys/stat.h.
9479         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
9480         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
9481         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
9482         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
9483
9484 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
9485
9486         * reorg.c: Remove comments about dead ports.
9487
9488 2004-02-22  Christopher Faylor  <cgf@redhat.com>
9489
9490         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
9491         extra host object file when targetting cygwin rather than generic
9492         object files.
9493
9494 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
9495
9496         Merge from tree-ssa:
9497         2003-11-20  Richard Henderson  <rth@redhat.com>
9498
9499                 * tree-inline.c (insert_decl_map): New.
9500                 (remap_decl, remap_type, remap_block, copy_body_r,
9501                 initialize_inlined_parameters, declare_return_variable,
9502                 remap_save_expr): Use it.
9503
9504         * function.c (copy_body_r): Add mapping from id->ret_label to
9505         id->ret_label.  Revert test for ret_label.
9506
9507 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9508
9509         * genoutput.c (process_template): Strip trailing whitespace in @
9510         templates and issue a warning if there was any.
9511
9512 2004-02-21  Christopher Faylor  <cgf@redhat.com>
9513
9514         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
9515         object file when targetting cygwin.
9516         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
9517         overridden by top-level Makefile.
9518
9519 2004-02-21  Roger Sayle  <roger@eyesopen.com>
9520
9521         * config/i386/i386.c (standard_80387_constant_p): Also prefer
9522         the x87's load constant instructions when optimizing for size.
9523
9524 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
9525
9526         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
9527         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
9528         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
9529         * fold-const.c: Likewise.
9530         * simplify-rtx.c: Likewise.
9531
9532 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
9533
9534         * combine.c (can_combine_p): Don't ignore SETs marked with
9535         REG_EH_REGION notes.
9536         (try_combine): When attemting to fix unrecognized insns, don't
9537         split a PARALLEL that contains the original i2.
9538
9539 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
9540
9541         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
9542         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
9543         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
9544         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
9545         (vector, pixel, bool): #define to __vector, __pixel and __bool.
9546         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
9547         portion of header.
9548         (__altivec_link_error_invalid_argument): Remove prototype; will use
9549         __builtin_altivec_compiletime_error("vec_*") instead.
9550         (vec_*): Fix/complete set of available operation overloads given the
9551         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
9552         cv-correctness of pointer arguments; in C, always check for correct
9553         argument types before macro expansion.
9554         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
9555         defining Darwin/PowerPC-specific '-f[no-]altivec' and
9556         '-W[no-]altivec-long-deprecated' switches.
9557         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
9558         '__vector', '__pixel' and '__bool' macros using
9559         '__attribute__((altivec(...)))' types.
9560         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
9561         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
9562         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
9563         New type nodes.
9564         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
9565         handling '-W[no-]altivec-long-deprecated'.
9566         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
9567         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
9568         altivec_expand_dst_builtin): Remove casts from integer literals.
9569         (altivec_expand_builtin): Likewise; handle expansion of new
9570         '__builtin_altivec_compiletime_error' function.
9571         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
9572         types, and make them distinct from other vector types; register
9573         '__builtin_altivec_compiletime_error' function.
9574         (print_operand): For 'P', print a full target register name instead of
9575         merely its number.
9576         (rs6000_attribute_table): Add "altivec" attribute.
9577         (rs6000_handle_altivec_attribute): New function.
9578         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
9579         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
9580         maps to).
9581         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
9582         declare.
9583         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
9584
9585 2004-02-20  James E Wilson  <wilson@specifixinc.com>
9586
9587         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
9588         check.
9589         (shift_mix4left+2): Delete redundant pattern.
9590
9591 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9592
9593         * alias.c (OUTGOING_REGNO): Don't define the default.
9594         * builtins.c (OUTGOING_REGNO): Likewise.
9595         (INCOMING_REGNO): Likewise.
9596         (apply_args_register_offset): Always use OUTGOING_REGNO.
9597         * combine.c (OUTGOING_REGNO): Likewise.
9598         * sibcall.c (OUTGOING_REGNO): Likewise.
9599         * defaults.h (INCOMING_REGNO): Provide the default.
9600         (OUTGOING_REGNO): Likewise.
9601
9602 2004-02-21  Jan Hubicka  <jh@suse.cz>
9603
9604         * params.def (max-peeled-insns, max-completely-peeled-insns,
9605         max-once-peeled-insns): Set to 400.
9606
9607 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9608
9609         PR c++/12007
9610         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
9611         are set for parameters before outputing debugging information.
9612
9613 2004-02-20  Falk Hueffner  <falk@debian.org>
9614
9615         PR target/14201
9616         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
9617         numbers.
9618
9619 2004-02-20  Per Bothner  <per@bothner.com>
9620
9621         * input.h:  Don't #include line-map.h.  It may cause link problems
9622         with undefined linemap_line_start when line-map.h is included but
9623         line-map.o is not linked, as currently happens with gengtype on
9624         compilers that don't support inline.
9625         * toplev.c:  So we do have to explicitly #include line-map.h here.
9626
9627 2004-02-20  Richard Henderson  <rth@redhat.com>
9628
9629         * doc/invoke.texi: Add -Wvariadic-macros.
9630
9631 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9632
9633         * haifa-sched.c (sched_emit_insn): Remove.
9634         * sched-int.h: Remove the corresponding prototype.
9635
9636 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9637
9638         Revert:
9639         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9640         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
9641         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9642         * config/cris/cris.h: Remove a comment about
9643         DEFAULT_SHORT_ENUMS.
9644         * config/ip2k/ip2k.h: Likewise.
9645         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
9646
9647 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
9648             Tom Tromey  <tromey@redhat.com>
9649
9650         * doc/install.texi: Moved --disable-libgcj and
9651         --with-system-zlib documentation to new section for
9652         Java-specific options.
9653         Added explicit Cross-Compiler-Specific Options subheading.
9654         Added section for Java-specific options.
9655
9656 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
9657
9658         * doc/install.texi (Building the Ada compiler): Remove
9659         example.
9660
9661 2004-02-20  James E Wilson  <wilson@specifixinc.com>
9662
9663         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
9664
9665 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9666
9667         * gcc.c (process_command): Allow translation of the copyright
9668         symbol but not the rest of the copyright message.
9669         * gcov.c (print_version): Likewise.  Allow translation of the
9670         message about warranty.
9671
9672 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
9673
9674         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
9675         predicate.
9676         ("*andsi_clear"): Tweak constraints to not match postincrement.
9677         Adjust the predicate to exclude a volatile memory reference.
9678         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
9679         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
9680
9681 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
9682
9683         * move-if-change: Remove.
9684         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
9685         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
9686         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
9687         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
9688         (s-gtyp-gen, s-iov): Use the top level move-if-change.
9689         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
9690
9691 2004-02-19  James E Wilson  <wilson@specifixinc.com>
9692
9693         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
9694         for operand2.  Add condition that requires register_operand operand2
9695         before reload.
9696
9697 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
9698             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9699
9700         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
9701         * config/mips/mips.md: Expand comment above unaligned loads and stores.
9702
9703 2004-02-19  Richard Henderson  <rth@redhat.com>
9704
9705         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
9706         * tree.c (build0, build1, build2, build3, build4): Split out from...
9707         (build): ... here.  Call them.
9708         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
9709
9710         * convert.c (convert_to_integer): Remove extra build argument.
9711         * tree-inline.c (expand_call_inline): Likewise.
9712
9713 2004-02-19  Richard Henderson  <rth@redhat.com>
9714
9715         * c-opts.c (warn_variadic_macros): New.
9716         (c_common_handle_option): Set it.
9717         (sanitize_cpp_opts): Copy it to cpp_opts.
9718         * c.opt (Wvariadic-macros): New.
9719         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
9720         * cppinit.c (cpp_create_reader): Initialize it.
9721         * cppmacro.c (parse_params): Check it.
9722
9723 2004-02-19  David Daney <ddaney@avtrex.com>
9724
9725         PR preprocessor/14198
9726         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
9727         builtin_assert ("machine=mips")
9728
9729 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9730
9731         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
9732         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9733         * config/cris/cris.h: Remove a comment about
9734         DEFAULT_SHORT_ENUMS.
9735         * config/ip2k/ip2k.h: Likewise.
9736         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
9737
9738 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
9739
9740         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
9741         when passing single SFmode quantities in general registers,
9742         put them in the high half.
9743
9744 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
9745
9746         * doc/md.texi (Standard Names): Document additional dependency on
9747         fix pattern.
9748
9749         * optabs.c (ftruncify): Remove.
9750         (expand_fix): Manually inline ftruncify above.
9751         (can_fix_p): Add FIXME note.
9752
9753 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
9754
9755         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
9756         spe_fixuns_truncsfsi2.
9757
9758         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
9759         fixuns_truncsfsi2.
9760
9761 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
9762
9763         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
9764         * testsuite/gcc.dg/20040219-1.c: New test.
9765
9766 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
9767
9768         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
9769         "*subsf3_cconly"): Subtraction is not commutative.
9770
9771 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
9772
9773         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
9774         (sdbout_symbol): If called before sdbout_init, queue DECL for
9775         later and return.
9776         (sdbout_init): Set sdbout_initialized true, process decls
9777         queued earlier by sdbout_symbol.
9778         (sdbout_finish): Use size_t for index variable.
9779
9780 2004-02-19  Jeff Law  <law@redhat.com>
9781
9782         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
9783         for unordered comparison codes.
9784
9785 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
9786
9787         * reload1.c (reload): Correct comment.
9788         (scan_paradoxical_subregs): Remove #if 0 and old comment.
9789         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
9790         register variables are not used by reload.
9791
9792 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
9793
9794         PR target/14209
9795         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
9796         constraints to not match postincrement.  Adjust the predicate to
9797         exclude a volatile memory reference.
9798
9799 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9800
9801         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
9802
9803 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9804
9805         * hooks.c (hook_void_tree_int): Remove.
9806         (hook_void_constcharptr): Likewise.
9807         (hook_int_void_0): Likewise.
9808         * hooks.h: Remove the prototypes for the above three
9809         functions.
9810         * targhooks.c (hook_bool_machine_mode_true): Remove.
9811         * targhooks.h: Remove the prototype for
9812         hook_bool_machine_mode_true.
9813
9814 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9815
9816         * emit-rtl.c (subreg_realpart_p): Remove.
9817         (reorder_insns_with_line_notes): Likewise.
9818         (end_full_sequence): Likewise.
9819         * rtl.h: Remove the prototype for the above functions.
9820
9821 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9822
9823         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
9824         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
9825         config/iq2000/iq2000.h, config/m32r/m32r.h,
9826         config/pdp11/pdp11.h, config/sparc/sparc.h,
9827         config/xtensa/xtensa.h: Remove commented-out or useless
9828         definitions of CASE_VECTOR_PC_RELATIVE.
9829
9830 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9831
9832         * loop.c (all_sets_invariant_p): Remove.
9833
9834 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
9835
9836         PR target/12916
9837         * config/sparc/sparc.h (NPARM_REGS): Delete.
9838         (BASE_RETURN_VALUE_REG): Likewise.
9839         (BASE_OUTGOING_VALUE_REG): Likewise.
9840         (BASE_PASSING_ARG_REG): Likewise.
9841         (BASE_INCOMING_ARG_REG): Likewise.
9842         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
9843         TARGET_ARCH64, not TARGET_V9.
9844         (function_arg_slotno): Dispatch based on the mode class.
9845         Handle vector modes like floating-point modes.
9846         (function_arg_record_value_1): Handle vector types like
9847         floating-point types.
9848         (function_arg_record_value_2): Likewise.
9849         Calculate regno after mode transformation.
9850         (function_arg): Handle vector modes like floating-point modes.
9851         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
9852         If ARCH64, do not recheck alignment.
9853         (function_arg_pass_by_reference): Reorder the conditions.
9854         (sparc_return_in_memory): Move after function_arg_padding.
9855         Implement calling conventions for vector modes.
9856         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
9857         (function_value): Move scope of 'regbase'.
9858         Implement calling conventions for vector modes.
9859         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
9860         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
9861         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
9862         the argument is passed by reference.
9863         (sparc_type_code): Handle vector types.
9864
9865 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
9866
9867         * function.c (assign_parms): When building decl_rtl for
9868         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
9869
9870 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
9871
9872         * expr.c (is_aligning_offset): Check if we are aligning the
9873         expressions's address over BIGGEST_ALIGNMENT in bytes, not
9874         in bits.
9875
9876 2003-02-18  Matt Austern  <austern@apple.com>
9877
9878         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
9879         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
9880         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
9881         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
9882         spec string.
9883         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
9884
9885 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
9886
9887         * dwarf2out.c (loclabel_num): Move outside #ifdef
9888         DWARF2_DEBUGGING_INFO and mark with GTY(()).
9889         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
9890         Mark with GTY(()).
9891         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
9892         Allocate memory with ggc_alloc.  No need to copy anything.
9893         (ia64_hpux_file_end): Update to match.
9894
9895 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
9896
9897         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
9898         by default.
9899
9900 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
9901
9902         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
9903         ("divmodtisi3"): Likewise.
9904         ("udivmoddi4", "udivmodtidi3"): Likewise.
9905         ("divmodsi4", "divmoddisi3"): Likewise.
9906         ("udivmodsi4", "udivmoddisi3"): Likewise.
9907         ("udivsi3", "umodsi3"): Likewise.
9908
9909 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
9910
9911         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
9912         placeholder insn when chunkifying the pool.
9913
9914 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9915
9916         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
9917         generating PIC code.
9918
9919 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9920
9921         * config/h8300/h8300-protos.h: Add a prototype for
9922         h8300_expand_branch.
9923         * config/h8300/h8300.c (h8300_expand_branch): New.
9924         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
9925         bgtu, beq, bne): Call h8300_expand_branch().
9926
9927 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9928
9929         * config/h8300/h8300-protos.h: Add prototypes for
9930         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
9931         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
9932         (h8300_hard_regno_mode_ok): Likewise.
9933         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
9934         h8300_hard_regno_nregs().
9935         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
9936
9937 2004-02-18  Per Bothner  <per@bothner.com>
9938
9939         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
9940         partly reverts my 2003-10-01 change, because we're back to logically
9941         including <command line> inside the main line.
9942         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
9943         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
9944         Fixes PR preprocessor/14103.
9945
9946         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
9947         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
9948         (cpp_push_include):  Don't need to increment pfile's line field.
9949         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
9950
9951         * c-ppoutput.c (print struct):  New first_time field.
9952         (init_pp_output):  Set print.first_time.
9953         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
9954         which is set also for (say) <command line>.  Clear print.first_time.
9955
9956         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
9957         does not match the code, so fix both.
9958         (should_stack_file):  Inline include_pch_p function.
9959         (include_pch_p):  Remove pointless function.
9960
9961         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
9962
9963 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9964
9965         * config/h8300/h8300.md (four define_peephole2's): Use
9966         h8300_regs_ok_for_stm().
9967
9968 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9969
9970         * config/h8300/h8300-protos.h: Update the prototype for
9971         expand_a_rotate().
9972         * config/h8300/h8300.c (expand_a_rotate): Remove the first
9973         argument.
9974         * config/h8300/h8300.md: Update all callers.
9975
9976 2004-02-18  Jan Hubicka  <jh@suse.cz>
9977
9978         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
9979         floats.
9980         (simplify_binary_operation): Deal with logicals on floats.
9981
9982         * i386.md (SSE fabs splitters): Emit new patterns.
9983         (SSE cmov splitters): Likewise.
9984         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
9985         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
9986         subregs.
9987         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
9988         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
9989
9990 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9991
9992         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
9993         by hand.
9994         (output_a_rotate): Tweak a comment.
9995         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
9996         (*rotlhi3_1): Change to rotlhi3_1.
9997         (*rotlsi3_1): Change to rotlsi3_1.
9998
9999 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
10000
10001         PR target/13866
10002         * arm.c (load_multiple_operation): Don't insist that the source reg
10003         of a post-increment component is the same as the destination.
10004         (store_multiple_operation): Likewise.
10005
10006 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10007
10008         * config/h8300/h8300.md: Move movsf patterns into one section
10009         of the file.
10010
10011 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10012
10013         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
10014         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
10015         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
10016         config/mips/linux64.h, config/pa/pa-64.h,
10017         config/rs6000/aix51.h, config/rs6000/aix52.h,
10018         config/rs6000/spe.md, config/sparc/linux.h,
10019         config/sparc/linux64.h: Update copyright.
10020
10021 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10022
10023         * config/h8300/h8300.md: Move push patterns into one
10024         section of the file.
10025
10026 2004-02-18  Mark Mitchell <mark@codesourcery.com>
10027
10028         PR c++/11326
10029         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
10030         fntype.
10031
10032 2004-02-18  Paul Brook  <paul@codesourcery.com>
10033
10034         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
10035
10036 2004-02-18  Paul Brook  <paul@codesourcery.com>
10037
10038         PR debug/12934
10039         * dwarf2out.c (loc_descriptor_from_tree): Handle
10040         EXPR_WITH_FILE_LOCATION.
10041
10042 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
10043
10044         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
10045         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
10046         trailing whitespace from instructions.
10047
10048 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
10049
10050         * configure.ac: When generating auto-build.h, pass
10051         --enable-languages to the sub-configure.
10052         Put quotes around ${program_transform_name} when generating
10053         name of as, ld, nm, objdump.
10054         * configure: Regenerate.
10055
10056 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
10057
10058         * Makefile.in (s-check, s-config, s-conditions, s-flags)
10059         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
10060         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
10061         (s-preds, s-iov): Do not depend on move-if-change.
10062
10063 2004-02-17  James E Wilson  <wilson@specifixinc.com>
10064
10065         * caller-save.c (insert_restore): Pass mem through copy_rtx.
10066         (insert_save): Likewise.
10067
10068 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10069
10070         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
10071         warning.
10072
10073 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10074
10075         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
10076         *one_cmplsi2_h8300.
10077         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
10078
10079 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10080
10081         * config/h8300/h8300-protos.h: Update the prototype of
10082         fix_bit_operand().
10083         * config/h8300/h8300.c (fix_bit_operand): Remove the second
10084         argument "what".
10085         * config/h8300/h8300.md: Update all callers.
10086
10087 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10088
10089         * config/h8300/h8300.c (fix_bit_operand): Change the name of
10090         the last argument to "code" from "type".
10091
10092 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10093
10094         * config/h8300/h8300.c: Remove an extern declaration of
10095         rtx_equal_function_value_matters.
10096
10097 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10098
10099         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
10100         by hand.
10101         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
10102         (*iorqi3_1): Change to iorqi3_1.
10103         (*xorqi3_1): Change to xorqi3_1.
10104
10105 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10106
10107         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
10108         typos.
10109
10110 2004-02-17  Jan Hubicka  <jh@suse.cz>
10111
10112         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
10113
10114 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
10115
10116         PR optimization/14119
10117         * combine.c (try_combine): When attemting to fix unrecognized insns,
10118         don't delete SETs marked with REG_EH_REGION notes.
10119
10120 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
10121
10122         * combine.c (simplify_if_then_else): Do not replace
10123         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
10124         modes differ.
10125
10126 2004-02017  Steven Bosscher  <stevenb@suse.de>
10127
10128         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
10129         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
10130         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
10131         * ada/utils.c: Likewise.
10132         * cp/decl.c: Likewise.
10133         * f/com.c: Likewise.
10134         * java/class.c: Likewise.
10135
10136 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10137
10138         * config/h8300/h8300.md: Fix comment typos.
10139
10140 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10141
10142         * config/mips/t-iris6gld: Renamed to ...
10143         * config/mips/t-irix-gld: ... this.
10144         * config.gcc (mips-sgi-irix6*): Reflect this
10145         (mips-sgi-irix5*): Use it with GNU ld.
10146
10147         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
10148         to ...
10149         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
10150         * config/mips/t-irix-gld: Reflect this.
10151         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10152
10153         * config/mips/iris5gld.h: New file.
10154         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
10155         Only use collect2 without gas.
10156
10157         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
10158         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10159         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
10160         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10161
10162         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
10163         * config/mips/iris5.h: ... here.
10164
10165         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
10166         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10167         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
10168
10169         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
10170         using irix_startfile_spec, irix_endfile_spec.
10171
10172 2004-02-16  Gunther Nikl  <gni@gecko.de>
10173
10174         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
10175
10176 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10177
10178         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
10179         insns by hand.
10180
10181 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10182
10183         * cfghooks.c (split_edge): Speed up updating of dominators.
10184
10185 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
10186
10187         PR c++/11326
10188         * c-common.c (flag_abi_version): Remove.
10189         * c-common.h (flag_abi_version): Likewise.
10190         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
10191         * c.opt (fabi-version): Remove.
10192         * calls.c (expand_call): Always pass a function type to
10193         struct_value_rtx.  Use convert_memory_address.
10194         * common.opt (fabi-version): Add it.
10195         * flags.h (flag_abi_version): Likewise.
10196         (abi_version_at_least): New macro.
10197         * opts.c (common_handle_option): Add OPT_fabi_version.
10198         * toplev.c (flag_abi_version): Define it.
10199         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
10200         New function.
10201         (ia64_output_mi_thunk): Use it.
10202         (ia64_struct_value_rtx): Likewise.
10203
10204 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10205
10206         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
10207         Don't generate insns by hand.
10208
10209 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
10210
10211         PR c++/14178
10212         * doc/invoke.texi (fabi-version): The default is 2 now.
10213
10214 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10215
10216         * loop-iv.c: New file.
10217         * Makefile.in (loop-iv.o): New.
10218         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
10219         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
10220         num_loop_branches): New functions.
10221         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
10222         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
10223         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
10224         get_simple_loop_desc, free_simple_loop_desc): Declare.
10225         (simple_loop_desc): New inline function.
10226         (struct rtx_iv, struct niter_desc): New.
10227         * cfgloopmanip.c (loopify): Specify semantics more precisely.
10228         * expr.c (force_operand): Handle subregs of expressions created by
10229         loop unroller.
10230         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
10231         parts of the initialization to toplev.c
10232         * loop-unroll.c (loop_exit_at_end_p): New.
10233         (unroll_and_peel_loops): Call iv_analysis_done.
10234         (decide_peel_once_rolling, decide_peel_completely,
10235         decide_unroll_stupid, decide_unroll_constant_iterations,
10236         decide_unroll_runtime_iterations, decide_peel_simple,
10237         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
10238         unroll_loop_runtime_iterations): Use new simple loop analysis.
10239         * loop-unswitch.c (compare_and_jump_seq): New.
10240         (may_unswitch_on_p): Renamed to ...
10241         (may_unswitch_on): Use new iv analysis.
10242         (reversed_condition): Export.
10243         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
10244         * predict.c (estimate_probability): Use new simple loop analysis.
10245         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
10246         canon_condition, simplify_using_condition): Declare.
10247         * stor-layout.c (get_mode_bounds): New.
10248         * toplev.c (rest_of_handle_loop2): Some parts of
10249         initialization/finalization moved here from loop-init.c.
10250
10251 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10252
10253         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
10254         pointer.
10255         (CALL_USED_REGISTERS): Likewise.
10256         (REG_ALLOC_ORDER): Likewise.
10257         (REG_CLASS) <GENERAL_REGS>: Likewise.
10258
10259 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
10260
10261         * doc/md.texi (Insn Canonicalizations): Document left-chaining
10262         in associative operators.
10263         * rtlanal.c (commutative_operand_precedence): Create some new
10264         variables.  Prefer a commutative operand on the left, then
10265         binary expressions, then NEG and NOT.
10266
10267 2004-02-16  Matthias Klose  <doko@debian.org>
10268
10269         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
10270         in terms of SHLIB_SOVERSION.
10271         * config/m68k/t-slibgcc-elf-ver: New file.
10272         * config/pa/t-slibgcc-elf-ver: New file.
10273         * config.gcc (m68k-linux, parisc-linux): Use them when not
10274         sjlj exceptions are not configured.
10275
10276 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
10277
10278         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
10279
10280 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
10281
10282         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
10283
10284 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
10285
10286         * doc/sourcebuild.texi: Mention backends.html.
10287
10288 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
10289
10290         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
10291         line-map.c, line-map.h, var-tracking.c: Fix comment
10292         formatting.
10293
10294 2004-02-16  Richard Henderson  <rth@redhat.com>
10295
10296         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
10297
10298         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
10299
10300 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10301
10302         * config/h8300/h8300.md: Remove unnecessary parallels from
10303         all define_insn and define_split patterns.
10304
10305 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10306
10307         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
10308         "clobber").
10309
10310 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
10311
10312         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
10313         '%#'.
10314
10315 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10316
10317         * config/ia64/ia64.c, config/mips/mips.c,
10318         config/mmix/mmix-modes.def: Fix comment typos.
10319
10320 2004-02-15  Roger Sayle  <roger@eyesopen.com>
10321
10322         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
10323         (get_directive_line): Remove unused function prototype.
10324
10325 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10326
10327         * tree-inline.c (copy_body_r): Do not replace ret_label.
10328
10329 2004-02-14  Jan Hubicka  <jh@suse.cz>
10330
10331         * i386.c (x86_four_jump_limit): New variable.
10332         (k8_avoid_jump_misspredicts): Rename to ...
10333         (ix86_avoid_jump_misspredicts): .. this one.
10334         (ix86_pad_returns): Break out from ...
10335         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
10336         to.
10337         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
10338
10339 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10340
10341         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
10342         PARALLEL is NULL.
10343
10344 2004-02-14  Per Bothner  <per@bothner.com>
10345
10346         * fix-header.c (line_table):  Move local variable in main to global.
10347         * scan.h (line_table):  Use it.
10348         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
10349         line (recently renamed to src_loc) before calling recognized_function.
10350
10351 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
10352
10353         * Makefile.in: Fix comment typos.
10354
10355 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
10356
10357         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
10358         for start_value when it is directly moved into reg, and factorize
10359         the retrieval of GET_MODE (reg).
10360
10361 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10362
10363         * config/mips/mips-protos.h (mips_load_got_page): Delete.
10364         (mips_load_got_global): Delete.
10365         (mips_gotoff_page): Declare.
10366         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
10367         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
10368         UNSPEC_LOAD_GOT pattern rather than a MEM.
10369         (*load_got[sd]i): New patterns.
10370         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
10371         (mips_load_got_page, mips_load_got_global): Delete.
10372         (mips_gotoff_page): New function.
10373         (override_options): Don't initialize mips_got_alias_set.
10374
10375 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10376
10377         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
10378         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
10379         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
10380         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
10381         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
10382         * config/mips/mips.c: Fix some overly-long lines.
10383         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
10384         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
10385
10386 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10387
10388         * configure.ac: Search for as, ld below libexec/gcc.
10389         * configure: Regenerate.
10390
10391 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10392
10393         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
10394         __builtin_arm_setwcx ().
10395         * config/arm/arm.c (arm_expand_builtin): Generate operands
10396         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
10397
10398 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10399
10400         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
10401         and "wmuluh" to "wmulsm" and "wmulum", respectively.
10402         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
10403         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
10404         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
10405         (_mm_mulhi_pu16): Likewise.
10406
10407 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
10408
10409         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
10410         DECL_NAME != 0 before dereferencing.
10411
10412 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
10413
10414         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
10415         (s390_output_addr_const_extra): Declare.
10416         (s390_output_pool_entry): Remove FILE * argument.
10417         * config/s390/s390.c (s390_output_symbolic_const): Remove.
10418         (s390_output_addr_const_extra): New function.
10419         (print_operand_address): Call output_addr_const instead of
10420         s390_output_symbolic_const.
10421         (print_operand): Likewise.
10422         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
10423         Remove FILE * argument.
10424         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
10425         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
10426         call.
10427
10428 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10429
10430         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
10431         (struct edge, struct vertex, struct graph): New.
10432         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
10433         free_graph): New functions.
10434
10435 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
10436
10437         * config/mips/mips.md (casesi_internal, casesi_internal_di):
10438         Use ".set macro" to avoid warnings about multi-instruction
10439         macros, since they're intentional.
10440
10441 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
10442
10443         * config/darwin.h: Add include guards.  Remove old, now incorrect,
10444         comment about STANDARD_EXEC_PREFIX.
10445
10446         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
10447         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
10448         for installing .1 manpages.  Add rules for installing cpp
10449         and gcov manpages under their installed names.
10450
10451 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
10452
10453         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
10454         host, but try LD_FOR_TARGET first.
10455         * configure: Rebuilt.
10456
10457 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10458
10459         * dbxout.c: Move declaration of dbxout_type_decl outside
10460         #ifdef DBX_DEBUGGING_INFO.
10461         * c-parse.in: Don't give the asmdef production a type.
10462
10463 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10464
10465         * debug.h (struct gcc_debug_hooks): Add type_decl field.
10466         (debug_nothing_tree_int): Prototype.
10467         (dwarf_debug_hooks): Delete, unused.
10468         * debug.c (do_nothing_debug_hooks): Update.
10469         (debug_nothing_tree_int): New function.
10470         * langhooks.h (struct lang_hooks_for_decls):
10471         Remove builtin_type_decls field.
10472         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
10473         (LANG_HOOKS_DECLS): Update.
10474         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
10475         Use debug_hooks->type_decl.
10476         * dbxout.c (preinit_symbols): New static.
10477         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10478         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
10479         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
10480         for symbols to output.
10481         (dbxout_type_decl): New function.
10482         (dbxout_symbol): If called before dbxout_init has run, queue
10483         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
10484         to TYPE_DECLs before emitting them.
10485         * xcoffout.c (assign_type_number): Delete.
10486         (xcoff_type_numbers): New static table.
10487         (xcoff_assign_fundamental_type_number): New function.
10488         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
10489         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
10490         * sdbout.c: Include varray.h.
10491         (deferred_global_decls): New static.
10492         (sdb_debug_hooks): Update.
10493         (sdbout_global_decl): If we can't emit something right now,
10494         remember it in deferred_global_decls.
10495         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
10496         (sdbout_init): Initialize deferred_global_decls.
10497         * Makefile.in: Update dependencies of sdbout.o.
10498         * dwarf2out.c (dwarf2out_type_decl): New function.
10499         (dwarf2_debug_hooks): Update.
10500         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
10501         * c-decl.c (getdecls): Just return 0.
10502         (check_for_loop_decls): Don't use getdecls.
10503         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
10504         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
10505
10506 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
10507
10508         * config/s390/s390.c (s390_sched_reorder2): Remove.
10509         (TARGET_SCHED_REORDER2): Do not redefine.
10510
10511 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10512
10513         * c-parse.in (maybe_type_qual): Delete.
10514         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
10515         (asm_argument): New grammar rules.
10516         (extdef_1): Use asmdef.
10517         (maybeasm): Move down with other asm rules; use simple_asm_expr.
10518         (xexpr): Move up with other expression rules.
10519         (stmt): Use asm_stmt.
10520
10521         * c-typeck.c (build_asm_expr): New function - body mostly
10522         pulled from build_asm_stmt.
10523         (build_asm_stmt): Just handle tacking on the volatile qualifier.
10524         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
10525
10526 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
10527
10528         PR bootstrap/13617
10529         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
10530         (mips_declare_object): Make variadic.
10531         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
10532         mips_output_aligned_decl_common.
10533         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
10534         (mips_declare_object): Make variadic.
10535
10536 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10537
10538         * function.c (update_epilogue_consts): Teach about binary operations.
10539
10540         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
10541         previous MEM_VOLATILE in REF.
10542         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
10543         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
10544
10545 2004-02-12  Gunther Nikl  <gni@gecko.de>
10546
10547         * config.gcc: Restore support for m68k-openbsd.
10548
10549 2004-02-12  Jan Hubicka  <jh@suse.cz>
10550
10551         * tree-optimize.c (tree_rest_of_compilation): Do not release
10552         DECL_ARGUMENTS.
10553
10554 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
10555
10556         * doc/install.texi: Fix the spelling of "explicitly".
10557
10558 2004-02-11  Eric Christopher  <echristo@redhat.com>
10559
10560         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
10561         duplicate argument structure of cpp_interpret_string.
10562         * cpphash.h: Move prototype...
10563         * cpplib.h: Here.
10564         * cpplib.c: Fix calls to match new function signature.
10565
10566 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10567
10568         PR c/456
10569         * cppexp.c (num_binary_op): Don't allow comma operators in #if
10570         constant expressions at all outside C99 mode if pedantic.
10571
10572 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
10573
10574         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
10575         (log10_optab, log2_optab): Define corresponding macros.
10576         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
10577         * genopinit.c (optabs): Implement log10_optab and log2_optab
10578         using log10?f2 and log2?f2 patterns.
10579         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
10580         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
10581         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
10582         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
10583
10584         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
10585         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
10586         log2, log2f and log2l built-ins as inline x87 intrinsics.
10587
10588 2004-02-11  Richard Henderson  <rth@redhat.com>
10589
10590         PR target/1532
10591         * flow.c (insn_dead_p): A clobber of a dead hard register is a
10592         dead insn after reload.
10593
10594 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
10595
10596         * tree.h (frame_base_decl): Add GTY marker.
10597         * var-tracking.c (frame_base_decl): Likewise.
10598
10599 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
10600
10601         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
10602         incorrect, hunk.
10603         (add_location_or_const_value_attribute): Use text_section_label,
10604         not TEXT_SECTION_NAME.
10605
10606 2004-02-11  Per Bothner  <per@bothner.com>
10607
10608         Represent column numbers using line-map's source_location.
10609         The "next available source_location" is now managed internally by
10610         line-maps.c rather than by clients.
10611         * line-map.h (struct line_map):  New field column_bits.
10612         <from_line>:  Rename field to start_location.
10613         (struct line_maps):  New fields highest_location and max_column_hint.
10614         (linemap_check_files_exited):  New declaration.
10615         (linemap_line_start):  New declaration.
10616         (linemap_add):  Remove from_line parameter; use highest_location field.
10617         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
10618         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
10619         (CURRENT_LINE_MAP):  Remove macro.
10620         (linemap_position_for_column):  New inline function.
10621         * line-map.c (linemap_init):  Clear new fields.
10622         (linemap_check_files_exited):  New function, extracted from ...
10623         (linemap_free):  Use linemap_check_files_exited.
10624         (linemap_add):  Remove from_line parameter.  Various updates.
10625         (linemap_line_start):  New function.
10626         (linemap_lookeup):  Update for new field names.
10627         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
10628         linemap_position_for_column may unpredictably change the current map,
10629         it is cleaner and simpler for us to not cache it in cpp_reader.
10630         (struct cpp_buffer):  New sysp field.
10631         Changed warned_cplusplus_comments and from_stage3 to bitfields.
10632         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
10633         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
10634         current map using linemap_lookup.
10635         (do_linemarker):  Also set buffer's sysp field.
10636         (destringize_and_run):  No longer need to decrement current line.
10637         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
10638         (search_path_head, open_file_failed):  Use buffer's sysp.
10639         (cpp_make_system_header):  Get current map using linemap_lookup.
10640         Also set buffer's sysp flag.
10641         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
10642         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
10643         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
10644         (struct cpp_reader):  ... and adding saved_line_base field.
10645         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
10646         Update accordingly.  Don't adjust line.
10647         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
10648         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
10649         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
10650         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
10651         * cpplex.c (_cpp_lex_direct):  Likewise.
10652         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
10653         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
10654         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
10655         Remove col field as it is now subsumed by src_loc.
10656         * cpperror.c:  Update various field, parameter, and macro names.
10657         (print_location):  If col==0, try SOURCE_COLUMN of line.
10658         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
10659         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
10660         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
10661         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
10662         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
10663         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
10664         (_cpp_lex_direct):  Use linemap_position_for_column.
10665         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
10666         parameter.  Instead get it from the line_table global.  Adjust callers.
10667         (print):  Remove map field.  Replace line field to src_line.
10668         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
10669         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
10670         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
10671         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
10672         * cpptrad.c (copy_comment):  Rename variable.
10673         * c-lex.c (map):  Remove static variable, for same reason we removed
10674         cpp_reader's map field.
10675         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
10676         to call linemap_lookup.
10677         (cb_line_change):  Token's line field replaced by src_loc.
10678         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
10679         Don't save new_map.
10680
10681         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
10682         source_location.
10683
10684 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
10685
10686         * config/rs6000/altivec.md (*movv4si_internal): At least one
10687         operand must be register_operand.
10688         (*movv8hi_internal1): Likewise.
10689         (*movv16qi_internal1): Likewise.
10690         (*movv4sf_internal1): Likewise.
10691
10692 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
10693
10694         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
10695         operand.
10696         (movv4hi_internal): Same.
10697         (movv2sf_internal): Same.
10698         (movv1di_internal): Same.
10699
10700 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
10701
10702         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
10703         TARGET_OLDABI consistently.
10704         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
10705         mips_va_arg,override_options,compute_frame_size,
10706         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
10707         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
10708         and TARGET_OLDABI consistently.
10709         * config/mips/mips.md (exception_receiver): Likewise.
10710         * config/mips/linux64.h: Likewise.
10711
10712 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
10713
10714         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
10715         Set AltiVec ABI and vrsave as default for ppc64 linux.
10716         (init_cumulative_args): Post error, if try to return
10717         value in AltiVec register without enable AltiVec.
10718         (function_arg_advance): Ditto for passing arguments.
10719
10720 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
10721
10722         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
10723         a label before updating its usage count.
10724
10725 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
10726
10727         * doc/install.texi: Remove extra cd.
10728
10729 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
10730
10731         * c-common.c (vector_size_helper): Remove; call
10732         reconstruct_complex_type() instead.
10733         * tree.c (reconstruct_complex_type): New function
10734         (formerly vector_size_helper() in c-common.c).
10735         (make_vector): Make externally visible.
10736         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
10737
10738 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
10739
10740         * config/h8300/h8300-protos.h: Add a prototype for
10741         h8300_regs_ok_for_stm.
10742         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
10743         * config/h8300/h8300.md (stm_h8300s_2_advanced,
10744         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
10745         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
10746         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
10747         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
10748         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
10749         ldm_h8300s_4_normal, ldm_h8300s_4): Use
10750         h8300_regs_ok_for_stm().
10751
10752 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10753
10754         PR c/14088
10755         * real.c (real_from_string): Look for 'X' as well as 'x' in
10756         hexfloat strings.
10757
10758 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
10759
10760         * config/h8300/h8300.md: Remove an incorrect comment about
10761         peephole2.  Add comments.
10762
10763 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
10764
10765         PR/14058
10766         * emit-rtl.c (set_decl_incoming_rtl): New.
10767         * tree.h (set_decl_incoming_rtl): New.
10768         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
10769         DECL_INCOMING_RTL.
10770         * ada/misc.c (adjust_decl_rtl): Likewise.
10771
10772 2004-02-10  Per Bothner  <per@bothner.com>
10773
10774         * c-opts.c (c_common_post_options):   Don't emit working directory
10775         in cpp output if -P was specified.
10776
10777 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
10778
10779         PR c/14092
10780         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
10781         negate_expr back to the original type.
10782
10783 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
10784
10785         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
10786         bump retaddr here.
10787
10788 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
10789
10790         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
10791         gen_lowpart_SUBREG): Move under the file in which they
10792         are actually declared.
10793
10794 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
10795
10796         * doc/sourcebuild.texi: Add libada documentation.
10797
10798         * doc/install.texi: Update documentation on Ada build, now
10799         that the GNAT lib and tools are built automatically.
10800
10801 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
10802
10803         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
10804         && TARGET_IRIX.
10805
10806 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
10807
10808         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
10809         boundaries outside build_component_ref() call (a macro in ObjC++).
10810
10811 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
10812
10813         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
10814         (init_cumulative_args): Likewise.
10815         (a7_overlap_mentioned_p): Delete prototype.
10816         * config/xtensa/xtensa.c (struct machine_function): Replace
10817         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
10818         Add set_frame_ptr_insn field.
10819         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
10820         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
10821         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
10822         at the function entry and replace the operand with the pseudo.
10823         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
10824         argument and record this flag in CUMULATIVE_ARGS.
10825         (function_arg): Remove result_mode and special-case code to handle
10826         arguments in a7.  Instead, set need_a7_copy flag when there is an
10827         incoming argument in a7.
10828         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
10829         and use the value recorded in cfun->machine->set_frame_ptr_insn.
10830         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
10831         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
10832         special-case code.
10833         (a7_overlap_mentioned_p): Delete.
10834         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
10835         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
10836         arguments to init_cumulative_args and pass "incoming" flag instead.
10837         (BLOCK_REG_PADDING): Delete.
10838         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
10839         checks for reload_in_progress and reload_completed.  Update calls to
10840         xtensa_copy_incoming_a7.
10841         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
10842         to call xtensa_copy_incoming_a7.
10843
10844 2004-02-09  DJ Delorie  <dj@redhat.com>
10845
10846         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
10847         longer modify standard_exec_prefix, standard_bindir_prefix, or
10848         standard_startfile_prefix.
10849
10850 2004-02-09  James E Wilson  <wilson@specifixinc.com>
10851
10852         PR c++/11295
10853         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
10854         to expand_expr_real call, and pass in alt_rtl as last argument.
10855
10856         PR libstdc++/5625
10857         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
10858         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
10859         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
10860         * except.c (expand_builtin_extend_pointer): New.
10861         * except.h (expand_builtin_extend_pointer): Declare.
10862
10863 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
10864
10865         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
10866         unaligned loads and stores.
10867
10868 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10869
10870         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
10871         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
10872
10873         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
10874         * config/mips/iris5.h: ... here.
10875         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
10876
10877         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
10878         * config/mips/iris5.h: ... here.
10879
10880 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10881
10882         * configure.ac: Remove default executable files before AC_PROG_CC.
10883         * configure: Regenerate.
10884
10885 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
10886
10887         PR target/13721
10888         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
10889         print a operand other than a register.
10890
10891 2004-02-09  Roger Sayle  <roger@eyesopen.com>
10892
10893         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
10894         tree code rather than call fold_convert, which doesn't specify a
10895         default floating point to integer conversion.
10896
10897 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
10898
10899         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
10900         code to support SGS assembler.  Reformat adjacent code where possible.
10901         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
10902         definition.
10903         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
10904         for '%#'.
10905         * config/m68k/linux.h, config/m68k/m68k.c,
10906         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
10907         macros and asm_printf() format strings.
10908         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
10909         * config/m68k/linux.h: Update copyright.
10910         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
10911
10912 2004-02-08  Andreas Schwab  <schwab@suse.de>
10913             Bernardo Innocenti  <bernie@develer.com>
10914
10915         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
10916         REGISTER_PREFIX.
10917         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
10918         frame pointer register, overridable by OS targets.
10919         * (M68K_REGNAME): Macro to obtain register name for asm output,
10920         eventually replacing %a6 with M68K_FP_REG_NAME.
10921         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
10922         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
10923         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
10924         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
10925         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
10926
10927 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
10928
10929         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
10930         hook_rtx_tree_int_null.
10931         * targhooks.c (default_struct_value_rtx): Remove.
10932         * targhooks.h: Remove the prototype for
10933         default_struct_value_rtx.
10934         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
10935         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
10936         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
10937         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
10938         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
10939         config/rs6000/rs6000.c, config/s390/s390.c,
10940         config/stormy16/stormy16.c, config/v850/v850.c,
10941         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
10942         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
10943
10944 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
10945
10946         * README.Portability: Change "ISO C89" to "ISO C90".
10947         * c-parse.in (primary, initelt): Likewise.
10948
10949 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
10950
10951         * real.c (encode_ibm_extended): Normalize the input value before
10952         converting it to a double.  Handle the case where a normal value
10953         rounds to infinity.
10954
10955 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
10956
10957         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
10958         warning.
10959         * cse.c (preferrable): Change to preferable. Update all of its
10960         callers.
10961         * genautomata.c (ainsn): Change
10962         first_ainsn_with_given_equialence_num to
10963         first_ainsn_with_given_equivalence_num.  Update all of its
10964         references.
10965
10966 2004-02-08  Jan Hubicka  <jh@suse.cz>
10967
10968         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
10969
10970 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
10971
10972         * function.c (assign_parms): Fix formatting.
10973
10974 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
10975
10976         * default.h (PROMOTE_PROTOTYPES): Remove.
10977         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
10978         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
10979         EXPAND_BUILTIN_SAVEREGS): Poison.
10980         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
10981         hook_bool_tree_false.
10982         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10983         * target.h: Replace SETUP_INCOMING_VARARGS with
10984         targetm.calls.setup_incoming_varargs().
10985         * targhooks.c (default_promote_function_return): Remove.
10986         (default_promote_prototypes): Likewise.
10987         (default_struct_value_rtx): Always abort().
10988         (default_expand_builtin_saveregs): Always print an error
10989         message.
10990         (default_setup_incoming_varargs): Do nothing.
10991         (default_pretend_outgoing_varargs_named): Don't depend on
10992         SETUP_INCOMING_VARARGS.
10993         * targhooks.h: Remove the prototype for
10994         default_promote_function_return and
10995         default_promote_prototypes.
10996
10997 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
10998
10999         * system.h (SHARED_SECTION_ASM_OP): Poison.
11000         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
11001         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
11002
11003 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11004
11005         Bug 13856
11006         * c-decl.c (diagnose_mismatched_decls): Only give special
11007         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
11008         is also true.
11009         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
11010         DECL_FUNCTION_CODE when defining a built-in function.
11011         Don't update DECL_ESTIMATED_INSNS.
11012         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
11013         FUNCTION_DECLs.
11014         * tree.h: Delete DECL_ESTIMATED_INSNS.
11015         * tree-inline.c (struct inline_data): Delete inlined_insns field.
11016         (expand_call_inline, optimize_inline_calls): Don't update
11017         DECL_ESTIMATED_INSNS nor inlined_insns.
11018         * cgraphunit.c (cgraph_analyze_function): Don't update
11019         DECL_ESTIMATED_INSNS.
11020
11021 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11022
11023         * c-common.c (shadow_warning): Delete.
11024         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
11025         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
11026         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
11027         * c-parse.in (free_parser_stacks): Delete.
11028
11029 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
11030
11031         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
11032         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
11033         Use the top level mkinstalldirs, not the one in the gcc subdir.
11034         * mkinstalldirs: Remove (from the gcc subdir).
11035
11036 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11037
11038         PR middle-end/13696
11039         * fold-const.c (fold_convert): New function to provide type
11040         conversion to the middle-end without using convert.
11041         (negate_expr, associate_trees, size_diffop, omit_one_operand,
11042         operand_equal_for_comparison_p, pedantic_omit_one_operand,
11043         invert_truthvalue, optimize_bit_field_compare, range_binop,
11044         decode_field_reference, make_range, build_range_check, unextend,
11045         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
11046         fold_binary_op_with_conditional_arg, fold_inf_compare,
11047         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
11048         convert with calls to fold_convert.
11049
11050 2004-02-07  Jan Hubicka  <jh@suse.cz>
11051
11052         * genrecog.c (find_operand): add extra argument stop.
11053         (validate_pattern): Verify that mach_dup is duplicating operand
11054         defined lexically earlier.
11055
11056 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11057
11058         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
11059         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11060         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
11061         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
11062         config/ia64/ia64.h, config/ip2k/ip2k.h,
11063         config/iq2000/iq2000.h, config/mips/iris5.h,
11064         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
11065         config/rs6000/aix51.h, config/rs6000/aix52.h,
11066         config/rs6000/darwin.h, config/rs6000/rs6000.h,
11067         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
11068         config/sparc/linux.h, config/sparc/linux64.h,
11069         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
11070         config/xtensa/xtensa.h: Remove the definitions of
11071         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
11072         MAX_WCHAR_TYPE_SIZE.
11073         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11074         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
11075
11076 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
11077
11078         PR bootstrap/13990
11079         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
11080         gen_rtx_NE.
11081
11082 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
11083
11084         * var-tracking.c (vt_add_function_parameters): Surround checkings by
11085         #ifdef ENABLE_CHECKING and #endif.
11086
11087 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11088
11089         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
11090         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
11091         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
11092         integer types and floating point with unsafe_math_optimizations.
11093         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
11094         Optimize A - B as A + (-B), if B is easily negated.
11095
11096 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11097
11098         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
11099         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
11100         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
11101         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
11102         Update copyright.
11103
11104 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11105
11106         * c-ppoutput.c, var-tracking.c: Fix comment typos.
11107
11108 2004-02-06  James E Wilson  <wilson@specifixinc.com>
11109
11110         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
11111         glibc 2.3 or better.
11112
11113 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11114
11115         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
11116         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
11117
11118 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
11119
11120         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11121         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
11122         (SHLIB_MKMAP_OPTS): Delete.
11123         (TARGET_LIBGCC2_CFLAGS): Add -specs.
11124         (bispecs): Add rule.
11125         * config/rs6000/libgcc-ppc64.ver: New file.
11126         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
11127         (__floatdidf, __floatdisf): Optimize multiply.
11128         (__fixunstfdi): New function.
11129         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
11130         real and imag parts larger than one register.
11131         (function_arg): Correct type of reg used when fp arg split partially
11132         to stack.
11133         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
11134         and __MACH__ or __powerpc64__.
11135
11136 2004-02-06  Roger Sayle  <roger@eyesopen.com>
11137             Ulrich Weigand  <uweigand@de.ibm.com>
11138
11139         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
11140         of gen_highpart or gen_lowpart when the floating point format is
11141         wider than the result mode.
11142
11143 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
11144
11145         * dwarf2out.c (loclabel_num): Move into #ifdef
11146         DWARF2_DEBUGGING_INFO.
11147
11148 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
11149
11150         * objc/objc-act.c (build_super_template) the 'class' field of
11151         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
11152         (get_super_receiver): Likewise.
11153
11154 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11155
11156         * reload1.c (check_eliminable_occurrences): Optimize the reset
11157         of can_eliminate.
11158         (eliminate_regs_in_insn): Likewise.
11159
11160 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
11161             Josef Zlomek  <zlomekj@suse.cz>
11162
11163         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
11164         at the beginning of function, call dwarf2out_var_location for
11165         NOTE_INSN_VAR_LOCATION note.
11166         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
11167         decl_loc_table): New.
11168         (lookup_decl_loc): New function.
11169         (add_var_loc_to_decl): New function.
11170         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
11171         only if can_use_fbreg.
11172         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
11173         functions.
11174         (loc_descriptor): Likewise. Process VAR_LOCATION.
11175         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
11176         (loc_descriptor_from_tree): Call mem_loc_descriptor with
11177         can_use_fbreg == true.
11178         (add_location_or_const_value_attribute): Added parameter enum
11179         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
11180         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
11181         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
11182         with attr == DW_AT_location.
11183         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
11184         if frame_base_decl is defined and has a location list.
11185         (gen_variable_die): Call add_location_or_const_value_attribute with
11186         attr == DW_AT_location.
11187         (dwarf2out_var_location): New function.
11188         (dwarf2out_begin_function): New function.
11189         (dwarf2out_init): Create decl_loc_table.
11190
11191 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11192
11193         * loop.c (force_movables): Transitively increase the priorities of
11194         all insns forces by an insn, not just the first one.
11195
11196 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
11197             Daniel Berlin <dberlin@dberlin.org>
11198
11199         Josef Zlomek  <zlomekj@suse.cz>
11200         * Makefile.in (var-tracking.o): New.
11201         * common.opt (fvar-tracking): New.
11202         * flags.h (flag_var_tracking): New.
11203         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
11204         * opts.c (common_handle_option): Add OPT_fvar_tracking.
11205         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
11206         * rtl.c (note_insn_name): Likewise.
11207         * rtl.def (VAR_LOCATION): New.
11208         * rtl.h (NOTE_VAR_LOCATION): New.
11209         (NOTE_VAR_LOCATION_DECL): New.
11210         (NOTE_VAR_LOCATION_LOC): New.
11211         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
11212         (variable_tracking_main): New exported function.
11213         * timevar.def (TV_VAR_TRACKING): New.
11214         * toplev.c (enum dump_file_index): Added DFI_vartrack.
11215         (dump_file): "vartrack" was added (-dV).
11216         (flag_var_tracking): New.
11217         (f_options): "var-tracking" was added.
11218         (rest_of_handle_variable_tracking): New function.
11219         (rest_of_compilation): Run variable tracking.
11220         (process_options): If user has not specified flag_var_tracking set it
11221         according to optimize, debug_info_level and debug_hooks.
11222         * tree.h (frame_base_decl): New.
11223         * var-tracking.c: New file.
11224         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
11225         (ia64_override_options): Set flags to run variable tracking in machine
11226         dependent reorg instead of toplev.c.
11227         (ia64_reorg): Run variable tracking if wanted.
11228         * doc/invoke.texi: Mention variable tracking in -dV,
11229         add and -fvar-tracking.
11230         * doc/passes.texi: Added variable tracking pass.
11231
11232         Daniel Berlin <dberlin@dberlin.org>
11233         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
11234         * dbxout.c (dbx_debug_hooks): Likewise.
11235         (xcoff_debug): Likewise.
11236         * debug.c (do_nothing_debug_hooks): Likewise.
11237         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
11238         * dwarfout.c (dwarf_debug_hooks): Likewise.
11239         * sdbout.c (sdb_debug_hooks): Likewise.
11240         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11241         * final.c (final_scan_insn): Call var_location debug hook for each
11242         NOTE_INSN_VAR_LOCATION.
11243
11244 2004-02-06  Jan Hubicka  <jh@suse.cz>
11245
11246         * flow.c (update_life_info): Allocate reg_deaths when called from
11247         scheudler.
11248         (attempt_auto_inc):  Update life ranges accordingly.
11249
11250 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11251
11252         PR debug/11816
11253         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
11254
11255 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11256
11257         * cfganal.c (flow_call_edges_add): Never split a libcall block.
11258
11259 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
11260
11261         * dwarf2out.c (output_loc_list): Don't use deltas if we have
11262         a separate line info table in use.
11263         Use the correct size for terminators.
11264         (output_die): Use offset, not delta.
11265
11266 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
11267
11268         * doc/invoke.texi: Remove the pni option from -mfpmath=.
11269
11270 2004-02-06  Jan Hubicka  <jh@suse.cz>
11271
11272         * recog.c (split_all_insns): Do not update reg info.
11273         * regrename.c (regrename_optimize): Likewise.
11274         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
11275         * flow.c (struct propagate_block_info): Add insn_num field.
11276         (reg_deaths): New array.
11277         (life_analysis): Free reg_deaths info.
11278         (allocate_reg_life_data): Allocate reg_deaths array.
11279         (propagate_one_insn): Use new array.
11280         (init_propagate_block): Initialize it.
11281         (free_propagate_block_info): Finish compuation of
11282         REG_LIVE_LENGTH
11283         (attempt_auto_inc): Sanity check that REG_INFO is not
11284         computed at same time.
11285         (mark_used_regs): Update new array.
11286
11287         * reg-stack.c (subst_stack_regs): Unshare clobbers before
11288         substitution.
11289
11290 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11291
11292         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
11293         *extendqisi2_short_displ.
11294
11295 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
11296
11297         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
11298         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
11299         (emit_library_call_value_1): Likewise pass nargs.
11300         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
11301         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
11302         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
11303         parameter instead of scanning TYPE_ARGS_TYPES to count args.
11304         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
11305         prototype.
11306         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
11307         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
11308         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
11309         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
11310         INIT_CUMULATIVE_ARGS.
11311         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
11312         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
11313         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
11314         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
11315         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11316         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
11317         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
11318         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
11319         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
11320         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
11321         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
11322         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
11323
11324 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11325
11326         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
11327         possible.
11328
11329 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11330
11331         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
11332         note containing (plus (reg) (const_int)), where reg is an
11333         eliminable reg, then perform the register elimination without
11334         depending on eliminate_regs().
11335
11336 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11337
11338         * config/arc/arc.c (arc_return_in_memory): Check the return
11339         value of int_size_in_bytes against -1.  Don't check
11340         TREE_ADDRESSABLE.
11341         * config/avr/avr.c (avr_return_in_memory): Check the return
11342         value of int_size_in_bytes against -1.
11343         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
11344         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
11345         Likewise.
11346         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
11347         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
11348         Likewise.
11349
11350 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11351
11352         * config/frv/frv-protos.h: Remove the prototype for
11353         frv_setup_incoming_varargs.
11354         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
11355         (frv_setup_incoming_varargs): Make it static.
11356         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
11357
11358 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11359
11360         * config/fr30/fr30-protos.h: Remove the prototype for
11361         fr30_setup_incoming_varargs.
11362         Update the prototypes for fr30_num_arg_regs and
11363         fr30_function_arg_partial_nregs.
11364         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
11365         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11366         (fr30_setup_incoming_varargs): Make it static.
11367         Add argument second_time.  Don't do anything when second_time
11368         is nonzero.
11369         (fr30_num_arg_regs): Change the type of the first argument to
11370         enum machine_mode.
11371         (fr30_function_arg_partial_nregs): Change the type of the
11372         second argument to enum machine_mode.
11373         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
11374         (SETUP_INCOMING_VARARGS): Remove.
11375
11376 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11377
11378         * config/arc/arc-protos.h: Remove the prototype for
11379         arc_setup_incoming_varargs.
11380         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
11381         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11382         (arc_setup_incoming_varargs): Make it static.
11383         (arc_external_libcall): Likewise.
11384         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
11385         Remove the commented-out definition of
11386         ASM_OUTPUT_EXTERNAL_LIBCALL.
11387
11388 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
11389
11390         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
11391         to $$(slibdir) in the installation commands.
11392
11393 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11394
11395         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
11396         with inner_regno, not regno.
11397         * rtlanal.c (refers_to_regno_p): Same.
11398
11399 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11400
11401         * config.gcc: Remove i370 support.
11402
11403 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11404
11405         * doc/install.texi:  Update automake and autoconf version
11406         requirements.  Note where to find gcj automake version.
11407
11408 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11409
11410         * Makefile.in (generate-manpages): Move dependencies to ...
11411         (man): here.
11412         * doc/makefile.texi: Document new targets.
11413         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
11414
11415 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11416
11417         PR/13485
11418         Makefile.in (srcextra):  Add a level of indirection to ...
11419         (gcc.srcextra): ... here.
11420         (po-generated): Delete.
11421         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
11422         options.c.
11423         (start.encap): Remove superfluous lang.srcextra dependency.
11424         objc/Make-lang.in (po-generated):  Delete.
11425
11426 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11427
11428         * config/ia64/ia64.c (REG_GP): Remove.
11429
11430 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11431
11432         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
11433
11434 2004-02-05  Devang Patel  <dpatel@apple.com>
11435
11436         * dwarf2out.c (force_type_die): Look up input type itself
11437         instead of root_type() of type.
11438
11439 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
11440
11441         * config/s390/s390.md ("*tmqidi_ext"): New insn.
11442         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
11443         pre-reload splitters are transformed to post-reload
11444         define_insn_and_split patterns.
11445         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
11446
11447 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11448
11449         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
11450         TARGET_PROMOTE_PROTOTYPES.
11451
11452 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11453
11454         PR middle-end/13750
11455         Revert:
11456         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
11457         PR pch/13361
11458         * c-typeck.c (constructor_asmspec): Delete.
11459         (struct initializer_stack): Delete field 'asmspec'.
11460         (start_init): Delete saving of asmspec.
11461         (finish_init): Don't update constructor_asmspec.
11462         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11463         * stmt.c (expand_asm): Duplicate strings from tree.
11464         (expand_asm_operands): Likewise.
11465         * tree.c (tree_size): Update computation of size of STRING_CST.
11466         (make_node): Don't make STRING_CST nodes.
11467         (build_string): Allocate string with tree node.
11468         * tree.def (STRING_CST): Update comment.
11469         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11470         (tree_string): Place contents of string in tree node.
11471         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11472         from tree.
11473
11474 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11475
11476         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
11477         msgid.
11478
11479 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
11480
11481         * config/rs6000/altivec.md (*movv4si_internal): At least one
11482         operand must be altivec_register_operand.
11483         (*movv8hi_internal1): Likewise.
11484         (*movv16qi_internal1): Likewise.
11485         (*movv4sf_internal1): Likewise.
11486
11487 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11488
11489         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
11490         * configure: Regenerate.
11491
11492 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
11493
11494         * doc/install.texi: Update description of --gxx-include-dir to
11495         give correct default value.
11496
11497 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11498
11499         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
11500         8 with MAC_REG.
11501
11502 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11503
11504         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
11505         gen_rtx_PARALLEL.
11506
11507 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11508
11509         * emit-rtl.c: Update the comment about the file.
11510
11511 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11512
11513         * sourcebuild.texi (Test Idioms): Update testcase naming
11514         conventions.
11515
11516 2004-02-04  Per Bothner  <per@bothner.com>
11517
11518         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
11519         * c-ppoutput.c (pp_dir_change):  New function.
11520         * c-common.h (pp_dir_change):  New declaration.
11521         * cpplib.h (struct cpp_options):  Remove working_directory field.
11522         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
11523         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
11524         Don't handle -fworking_directory here, but in c_common_post_options.
11525         (read_original_directory): Don't back up when done.
11526         Don't clear no-longer used working_directory flag.
11527         * cpplib.h:  Update declarations to match.
11528         * c-lex.c (cb_dir_change):  Move to c-opts.c.
11529         (init_c_lex):  Don't set dir_change callback here, since we want
11530         to set it even if flag_preprocess_only.
11531         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
11532         (c_common_post_options):  Set dir_change callback.
11533         Call pp_dir_change if approporiate.
11534         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
11535         unneeded parameter and result. Do LC_RENAME for <built-in>.
11536         (c_common_post_options):  Call cpp_read_main_file here instead.
11537         (c_common_init):  Update accordingly.
11538         (push_command_line_include):  Don't cpp_push_main_file.
11539         Do LC_RENAME rather than LC_LEASE to get back to main file.
11540         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
11541         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
11542         files, but call finish_options for all files.
11543         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
11544         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
11545         cpp_find_main_file + cpp_push_main_file.
11546         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
11547         * opts.c (handle_options):  Only set main_input_filename first time.
11548
11549 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
11550
11551         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
11552
11553 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
11554
11555         * reload.c (find_equiv_reg): When checking for register overlap,
11556         don't index hard_regno_nregs with a pseudo-reg.
11557
11558 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11559
11560         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
11561
11562 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
11563
11564         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
11565         against FIRST_PSEUDO_REGISTER.
11566
11567 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11568
11569         * Makefile.in: Move target, host overrides after per-language
11570         fragments.
11571
11572         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
11573         (GNATLIBCFLAGS): Remove -g.
11574
11575 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11576
11577         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
11578         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11579         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11580         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
11581         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
11582         config/sparc/sparc.c, config/vax/vax.c: Revert the
11583         replacements of "FALLTHRU" with "Fall through" done in the
11584         previous patch.
11585
11586 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11587
11588         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
11589         config/arm/arm.c, config/arm/arm.md,
11590         config/cris/cris-protos.h, config/fr30/fr30.c,
11591         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
11592         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
11593         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
11594         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
11595         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
11596         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
11597         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
11598         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
11599         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
11600         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
11601         config/s390/s390.md, config/sparc/netbsd-elf.h,
11602         config/sparc/openbsd.h, config/sparc/sparc.c,
11603         config/xtensa/lib2funcs.S: Fix comment formatting.
11604
11605 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11606
11607         * config/alpha/alpha.c, config/arc/arc.c,
11608         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
11609         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
11610         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
11611         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
11612         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11613         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11614         config/iq2000/iq2000.c, config/m32r/m32r.c,
11615         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
11616         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
11617         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
11618         config/rs6000/rs6000.h, config/sparc/sparc.c,
11619         config/vax/vax.c: Fix comment typos.  Follow spelling
11620         conventions.
11621
11622 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11623
11624         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
11625         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
11626         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
11627         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
11628         config/arm/fpa.md, config/arm/iwmmxt.md,
11629         config/arm/netbsd-elf.h, config/arm/netbsd.h,
11630         config/m68hc11/m68hc11.md, config/mips/iris5.h,
11631         config/mn10300/mn10300.md, config/rs6000/altivec.md,
11632         config/sparc/netbsd-elf.h: Update copyright.
11633
11634 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
11635
11636         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
11637         for all modes whose size is greater than 8 bytes if ARCH32.
11638         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
11639         by reference if ARCH32.
11640
11641 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
11642
11643         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
11644
11645 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11646
11647         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
11648         to before adddi3 insn patterns.
11649         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
11650         "reload_insi"): Move to before addsi3 insn patterns.
11651
11652 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
11653
11654         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
11655         parameter.  Use it instead of current_function_is_thunk.
11656         * function.h (struct function): Update documentation for is_thunk.
11657         * tree.h (CALL_FROM_THUNK_P): New macro.
11658         * config/alpha/alpha.c (alpha_sa_mask): Do not check
11659         no_new_pseudos when testing current_function_is_thunk.
11660         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
11661
11662 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11663
11664         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
11665         TARGET_SETUP_INCOMING_VARARGS.
11666
11667 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11668
11669         * emit-rtl.c (gen_rtx): Remove.
11670         * genattrtab.c: Don't mention gen_rtx in a comment.
11671         * rtl.h: Remove the prototype for gen_rtx.
11672         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
11673
11674 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11675
11676         * config/arc/arc.h, config/fr30/fr30.h
11677         (SETUP_INCOMING_VARARGS): Remove the target-independent
11678         comments.
11679         * doc/tm.texi: Don't mention deprecated target macros.
11680
11681 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11682
11683         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
11684         target-independent comment.
11685
11686 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11687
11688         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
11689         mention deprecated target macros.
11690
11691 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11692
11693         * config.gcc: Remove obsolete ports and configurations.
11694         * config/linux-aout.h, config/netware.h,
11695         config/t-linux-gnulibc1, config/d30v/abi,
11696         config/d30v/d30v-protos.h, config/d30v/d30v.c,
11697         config/d30v/d30v.h, config/d30v/d30v.md,
11698         config/d30v/libgcc1.asm, config/d30v/t-d30v,
11699         config/dsp16xx/dsp16xx-modes.def,
11700         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
11701         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
11702         config/i370/README, config/i370/i370-c.c,
11703         config/i370/i370-protos.h, config/i370/i370.c,
11704         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
11705         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
11706         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
11707         config/i386/moss.h, config/i386/netware.h,
11708         config/i386/svr3.ifile, config/i386/svr3dbx.h,
11709         config/i386/svr3gas.h, config/i386/svr3z.ifile,
11710         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
11711         config/i960/i960-c.c, config/i960/i960-coff.h,
11712         config/i960/i960-modes.def, config/i960/i960-protos.h,
11713         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
11714         config/i960/rtems.h, config/i960/t-960bare,
11715         config/m68k/hp310.h, config/m68k/hp320.h,
11716         config/m68k/hp320base.h, config/m68k/m68kv4.h,
11717         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
11718         Remove.
11719         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
11720         doc/md.texi: Remove mentions of obsolete ports.
11721
11722 2004-02-04  Jan Hubicka  <jh@suse.cz>
11723
11724         * alias.c (find_base_term, get_addr):  Do not dereference NULL
11725         pointer when all VALUE's locations has been invalidated.
11726         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
11727
11728 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
11729
11730         * doc/invoke.texi (x86 options): Fix spelling/wording.
11731
11732 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
11733
11734         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
11735         put the original string in a comment.
11736         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
11737         * config/mips/mips.c (mips_output_ascii): Likewise.
11738         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
11739
11740 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
11741
11742         * system.h (GIV_SORT_CRITERION): Poison.
11743         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
11744         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
11745
11746 2004-02-03  Roger Sayle  <roger@eyesopen.com>
11747
11748         PR target/9348
11749         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
11750         multiplies with a multiplication of the wrong signedness, its the
11751         signedness of the multiplication that we've performed that needs to
11752         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
11753         if expand_mult_highpart_adjust places the result in target.
11754
11755 2004-02-03  Richard Henderson  <rth@redhat.com>
11756
11757         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
11758
11759 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
11760
11761         * config.gcc (sh[234]l): Use little endian fragments.
11762
11763 2004-02-03  Paul Koning  <pkoning@equallogic.com>
11764
11765         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
11766         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
11767         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
11768         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
11769         floating point format.
11770         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
11771         the above functions.
11772         (output_move_quad): Output float values in correct target format.
11773         (legitimate_const_double_p): New function.
11774         * config/pdp11/pdp11.h: Fix typos.
11775         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
11776         (TARGET_FLOAT_FORMAT): Ditto.
11777         (pdp11_f_format, pdp11_d_format): Add external declarations.
11778         (MAX_REGS_PER_ADDRESS): Corrected.
11779         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
11780         (PRINT_OPERAND): Output float literals in target format.
11781
11782 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
11783
11784         PR c++/13975
11785         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
11786         TI_PRIVATE.
11787         (access_public_node): Redefine.
11788         (access_protected_node): Likewise.
11789         (access_private_node): Likewise.
11790         * tree.c (build_common_tree_nodes): Create access_public_node,
11791         access_protected_node, and access_private_node.
11792
11793 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
11794
11795         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
11796         (MASK_INLINE_INT_DIV_THR): Ditto.
11797         (MASK_INLINE_SQRT_LAT): Ditto.
11798         (MASK_INLINE_SQRT_THR): Ditto.
11799         (MASK_DWARF2_ASM): Ditto.
11800         (MASK_EARLY_STOP_BITS): Ditto.
11801
11802 2004-02-02  Paul Brook  <paul@codesourcery.com>
11803
11804         Merge from csl-arm-branch.
11805
11806         2004-01-30  Paul Brook  <paul@codesourcery.com>
11807
11808         * aof.h (REGISTER_NAMES): Add vfp reg names
11809         (ADDITIONAL_REGISTER_NAMES): Ditto.
11810         * aout.h (REGISTER_NAMES): Ditto.
11811         (ADDITIONAL_REGISTER_NAMES): Ditto.
11812         * arm-protos.h: Update/Add Prototypes.
11813         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
11814         Only allow 0.0 for VFP.
11815         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
11816         (values_fp): Rename from values_fpa.  Update Users.
11817         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
11818         Update users.  Only check valid constants for this hardware.
11819         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
11820         Only allow consts for FPA.
11821         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
11822         Only allow consts for FPA.
11823         (use_return_insn): Check for saved VFP regs.
11824         (arm_legitimate_address_p): Handle VFP DFmode addressing.
11825         (arm_legitimize_address): Ditto.
11826         (arm_general_register_operand): New function.
11827         (vfp_mem_operand): New function.
11828         (vfp_compare_operand): New function.
11829         (vfp_secondary_reload_class): New function.
11830         (arm_float_compare_operand): New function.
11831         (vfp_print_multi): New function.
11832         (vfp_output_fstmx): New function.
11833         (vfp_emit_fstm): New function.
11834         (arm_output_epilogue): Output VPF reg restore code.
11835         (arm_expand_prologue): Output VFP reg save code.
11836         (arm_print_operand): Add 'P'.
11837         (arm_hard_regno_mode_ok): Return modes for VFP regs.
11838         (arm_regno_class): Return classes for VFP regs.
11839         (arm_compute_initial_elimination_offset): Include space for VFP regs.
11840         (arm_get_frame_size): Ditto.
11841         * arm.h (FIXED_REGISTERS): Add VFP regs.
11842         (CALL_USED_REGISTERS): Ditto.
11843         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
11844         (FIRST_VFP_REGNUM): Define.
11845         (LAST_VFP_REGNUM): Define.
11846         (IS_VFP_REGNUM): Define.
11847         (FIRST_PSEUDO_REGISTER): Include VFP regs.
11848         (HARD_REGNO_NREGS): Handle VFP regs.
11849         (REG_ALLOC_ORDER): Add VFP regs.
11850         (enum reg_class): Add VFP_REGS.
11851         (REG_CLASS_NAMES): Ditto.
11852         (REG_CLASS_CONTENTS): Ditto.
11853         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
11854         (REG_CLASS_FROM_LETTER): Add 'w'.
11855         (EXTRA_CONSTRAINT_ARM): Add 'U'.
11856         (EXTRA_MEMORY_CONSTRAINT): Define.
11857         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
11858         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
11859         (REGISTER_MOVE_COST): Ditto.
11860         (PREDICATE_CODES): Add arm_general_register_operand,
11861         arm_float_compare_operand and vfp_compare_operand.
11862         * arm.md (various): Rename as above.
11863         (divsf3): Enable when TARGET_VFP.
11864         (divdf3): Ditto.
11865         (movdfcc): Ditto.
11866         (sqrtsf2): Ditto.
11867         (sqrtdf2): Ditto.
11868         (arm_movdi): Disable when TARGET_VFP.
11869         (arm_movsi_insn): Ditto.
11870         (movsi): Only split with general regs.
11871         (cmpsf): Use arm_float_compare_operand.
11872         (push_fp_multi): Restrict to TARGET_FPA.
11873         (vfp.md): Include.
11874         * vfp.md: New file.
11875         * fpa.md (various): Rename as above.
11876         * doc/md.texi: Document ARM w and U constraints.
11877
11878         2004-01-15  Paul Brook  <paul@codesourcery.com>
11879
11880         * config.gcc: Add with_fpu.  Allow with-float=softfp.
11881         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
11882         Break out of loop when we find a float-abi.  Fix typo.
11883         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
11884         Set -mfloat-abi=.
11885         * doc/install.texi: Document --with-fpu.
11886
11887         2003-01-14  Paul Brook  <paul@codesourcery.com>
11888
11889         * config.gcc (with_arch): Add armv6.
11890         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
11891         * config/arm/arm.c (arm_overrride_options): Ditto.
11892
11893         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
11894
11895         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
11896         (FL_ARCH6): Renamed from FL_ARCH6J.
11897         (arm_arch3m): Renamed from arm_fast_multiply.
11898         (arm_arch6): Renamed from arm_arch6j.
11899         * arm.h: Update all uses of above.
11900         * arm-cores.def: Likewise.
11901         * arm.md: Likewise.
11902
11903         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
11904         not arm6j.  Add entry for arch armv6.
11905
11906         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
11907
11908         * arm.c (arm_emit_extendsi): Delete.
11909         * arm-protos.h (arm_emit_extendsi): Delete.
11910         * arm.md (zero_extendhisi2): Also handle zero-extension of
11911         non-subregs.
11912         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
11913         (thumb_zero_extendhisi2): Only match if not v6.
11914         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
11915         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
11916         (thumb_extendqisi2): Likewise.
11917         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
11918         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
11919         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
11920         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
11921         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
11922         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
11923         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
11924         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
11925         (arm_extendqisi2addsi): Likewise.
11926
11927         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
11928
11929         Revert this change:
11930         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
11931         + REG addressing modes.
11932
11933         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
11934         + REG addressing modes.
11935
11936         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
11937
11938         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
11939         CONSTANT_P_RTX.
11940
11941         2003-30-12  Paul Brook  <paul@codesourcery.com>
11942
11943         * longlong.h: protect arm inlines with !defined (__thumb__)
11944
11945         2003-30-12  Paul Brook  <paul@codesourcery.com>
11946
11947         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
11948
11949         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
11950
11951         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
11952         change.
11953
11954         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
11955
11956         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
11957         to the virtual incoming args pointer for downward stacks.
11958
11959         2003-12-29  Paul Brook  <paul@codesourcery.com>
11960
11961         * config/arm/arm-cores.def: Add cost function.
11962         * config/arm/arm.c (arm_*_rtx_costs): New functions.
11963         (arm_rtx_costs): Remove
11964         (struct processors): Add rtx_costs field.
11965         (all_cores, all_architectures): Ditto.
11966         (arm_override_options): Set targetm.rtx_costs.
11967         (thumb_rtx_costs): New function.
11968         (arm_rtx_costs_1): Remove cases handled elsewhere.
11969         * config/arm/arm.h (processor_type): Add COSTS parameter.
11970
11971         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
11972
11973         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
11974         (arm926ejs.md): Include it.
11975         * config/arm/arm926ejs.md: New pipeline description.
11976
11977         2003-12-24  Paul Brook  <paul@codesourcery.com>
11978
11979         * config/arm/arm.c (arm_arch6j): New variable.
11980         (arm_override_options): Set it.
11981         (arm_emit_extendsi): New function.
11982         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
11983         * config/arm/arm.h (arm_arch6j): Declare.
11984         * config/arm/arm.md: Add sign/zero extend insns.
11985
11986         2003-12-23  Paul Brook  <paul@codesourcery.com>
11987
11988         * config/arm/arm.c (all_architectures): Add armv6.
11989         * doc/invoke.texi: Document it.
11990
11991         2003-12-19  Paul Brook  <paul@codesourcery.com>
11992
11993         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
11994         insn patterns to match.
11995         * config/arm/arm-generic.md: Ditto.
11996         * config/arm/cirrus.md: Ditto.
11997         * config/arm/fpa.md: Ditto.
11998         * config/amm/iwmmxt.md: Ditto.
11999         * config/arm/arm1026ejs.md: Ditto.
12000         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
12001         for 11_loadb.
12002
12003         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
12004
12005         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
12006         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
12007         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
12008         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
12009         arm_no_early_mul_dep): Correctly deal with conditional execution,
12010         parallels and single shift operations.
12011         (arm_no_early_alu_shift_value_dep): Define.
12012         * arm.md (attr type): Replace 'normal' with 'alu',
12013         'alu_shift' and 'alu_shift_reg'.
12014         (attr core_cycles): Adjust.
12015         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
12016         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
12017         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
12018         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
12019         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
12020         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
12021         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
12022         attribute appropriately.
12023         * config/arm/arm1026ejs.md (alu_op): Adjust.
12024         (alu_shift_op, alu_shift_reg_op): New.
12025         * config/arm/arm1136.md: Add better bypasses for early
12026         registers. Remove load[234] and store[234] bypasses.
12027         (11_alu_op): Adjust.
12028         (11_alu_shift_op, 11_alu_shift_reg_op): New.
12029
12030         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
12031
12032         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
12033         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
12034         * config/arm/arm.c (arm_no_early_store_addr_dep,
12035         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
12036         * config/arm/arm1026ejs.md: Add load-store bypass.
12037         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
12038         Add bypasses between instructions.
12039
12040         2003-12-10  Paul Brook  <paul@codesourcery.com>
12041
12042         * config/arm/arm.c (arm_fpu_model): New variable.
12043         (arm_fload_abi): New variable.
12044         (target_fpe_name): Rename from target_fp_name.
12045         (target_fpu_name): New variable.
12046         (arm_is_cirrus): Remove.
12047         (fpu_desc): New struct.
12048         (all_fpus): Define.
12049         (pf_model_for_fpu): Define.
12050         (all_loat_abis): Define.
12051         (arm_override_options): Set fp arch flags based on -mfpu=
12052         and -float-abi=.
12053         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12054         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12055         (*): Use new TARGET_* flags.
12056         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
12057         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
12058         (TARGET_SOFT_FLOAT): Ditto.
12059         (TARGET_SOFT_FLOAT_ABI): New.
12060         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
12061         TARGET_HARD_FLOAT.
12062         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
12063         (TARGET_OPTIONS): Add -mfpu=.
12064         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12065         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12066         (arm_pf_model): Define.
12067         (arm_float_abi_type): Define.
12068         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
12069         * config/arm/arm.md: Use new TARGET_* flags.
12070         * config/arm/cirrus.md: Ditto.
12071         * config/arm/fpa.md: Ditto.
12072         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
12073         * config/arm/semi.h (ASM_SPEC): Ditto.
12074         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
12075         (FPUTYPE_DEFAULT): Set to VFP.
12076         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
12077
12078         2003-11-22  Phil Edwards  <phil@codesourcery.com>
12079
12080         PR target/12476
12081         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
12082         'bx' instead of 'b' to avoid branch range restrictions.  Output
12083         the thunk immediately before the thunked-to function.
12084         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
12085         .thumb_func if a thunk is being generated.  Emit .code 16 along
12086         with .thumb_func if a thunk is not being generated.
12087
12088         2003-11-15  Nicolas Pitre <nico@cam.org>
12089
12090         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
12091         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
12092         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
12093         (lshrdi3_iwmmxt): Renamed from lshrdi3.
12094         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
12095
12096         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
12097             Ian Lance Taylor  <ian@wasabisystems.com>
12098
12099         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
12100         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
12101
12102         2003-11-05  Phil Edwards  <phil@codesourcery.com>
12103
12104         * config/arm/arm.md (insn):  Add new V6 instruction names.
12105         (generic_sched):  New attr.
12106         * config/arm/arm-generic.md:  Use generic_sched here.
12107         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
12108         stages of pipeline.  Adjust latency counts accordingly.
12109         * config/arm/arm1136jfs.md:  New file.
12110
12111         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
12112
12113         * config/arm/arm.h (processor_type): New enumeration type.
12114         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
12115         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
12116         (CPP_CPU_ARCH_SPEC): Likewise.
12117         * config/arm/arm.c (arm_tune): New variable.
12118         (all_cores): Use cores.def.
12119         (all_architectures): Add representative processor.
12120         (arm_override_options): Restructure way in which tuning
12121         information is deduced.
12122         * arm.md: Update "insn" and "type" attributes throughout.
12123         (insn): New attribute.
12124         (type): Compute "mult" from "insn" attribute.  Add load2,
12125         load3, load4 alternatives.
12126         (arm automaton): Move to arm-generic.md.
12127         * config/arm/arm-cores.def: New file.
12128         * config/arm/arm-generic.md: Likewise.
12129         * config/arm/arm1026ejs.md: Likewise.
12130
12131 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12132
12133         * doc/invoke.texi (SPARC options): Remove -mflat and
12134         all -mxxx (xxx:chip) options.
12135         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
12136         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
12137         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
12138         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
12139         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
12140         * config/sparc/sparc.c: Likewise.
12141         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
12142         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
12143         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
12144         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
12145         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
12146         (sparc_flat_must_save_register_p): Likewise.
12147         (sparc_flat_compute_frame_size): Likewise.
12148         (sparc_flat_save_restore): Likewise.
12149         (sparc_flat_function_prologue): Likewise.
12150         (sparc_flat_function_epilogue): Likewise.
12151         (sparc_flat_epilogue_delay_slots): Likewise.
12152         (sparc_flat_eligible_for_epilogue_delay): Likewise.
12153         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
12154         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
12155         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
12156         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
12157         (CONDITIONAL_REGISTER_USAGE): Likewise.
12158         (FRAME_POINTER_REQUIRED): Likewise.
12159         (INITIAL_ELIMINATION_OFFSET): Likewise.
12160         (BASE_RETURN_VALUE_REG): Likewise.
12161         (BASE_OUTGOING_VALUE_REG): Likewise.
12162         (BASE_PASSING_ARG_REG): Likewise.
12163         (BASE_INCOMING_ARG_REG): Likewise.
12164         (INCOMING_REGNO): Likewise.
12165         (OUTGOING_REGNO): Likewise.
12166         (LOCAL_REGNO): Likewise.
12167         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
12168         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
12169         (EPILOGUE_USES): Likewise.
12170         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
12171         ("flat" attribute): Delete.
12172         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
12173         handling.
12174         (call followed by jump define_peephole's): Delete.
12175         (exception_receiver): Likewise.
12176         (builtin_setjmp_receiver): Likewise.
12177         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
12178
12179 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
12180
12181         PR c/11658
12182         PR c/13994
12183         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
12184         on langhooks.h.
12185         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
12186         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
12187         Include langhooks.h.  Replace c_common_truthvalue_conversion
12188         with the truthvalue_conversion language hook throughout.
12189         (expr_no_commas): Call default_conversion before save_expr
12190         for the first term of the production 'x ? : y'.
12191         * c-common.c (c_common_truthvalue_conversion): Remove
12192         obsolete block.  Invoke recursively the hook instead
12193         of this function.
12194         * c-convert.c (convert): handle ERROR_MARK_NODE.
12195         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
12196         returned by the truthvalue_conversion language hook.
12197         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12198         c_objc_common_truthvalue_conversion.
12199         * c-objc-common.c (c_objc_common_truthvalue_conversion):
12200         New function.
12201         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
12202         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12203         c_objc_common_truthvalue_conversion.
12204
12205 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12206
12207         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
12208         of gen_rtx.
12209         (LIBCALL_VALUE): Likewise.
12210         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
12211         gen_rtx_CC0 instead of gen_rtx.
12212         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
12213         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
12214         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
12215         gen_rtx.
12216         (m68hc11_emit_logical): Likewise.
12217
12218 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12219
12220         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
12221         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
12222         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
12223         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
12224         config/mips/mips.md, config/mmix/mmix.c,
12225         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
12226         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
12227         config/rs6000/altivec.md, config/s390/s390.c,
12228         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
12229         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
12230         Use const0_rtx instead of GEN_INT (0).  Do the same for other
12231         constants that are readily available.
12232
12233 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12234
12235         * doloop.c, optabs.c, regmove.c, sched-deps.c,
12236         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
12237         instead of GEN_INT (0).  Do the same for other constants that
12238         are readily available.
12239
12240 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12241
12242         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
12243         gen_rtx.
12244         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
12245         instead of gen_rtx.
12246         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
12247         gen_rtx.
12248         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
12249         gen_rtx_ASHIFT instead of gen_rtx.
12250         (udivmodqi4): Likewise.
12251
12252 2004-02-02  Richard Henderson  <rth@redhat.com>
12253
12254         PR target/13789
12255         * expr.c (store_expr): Use force_operand before emit_move_insn.
12256
12257 2004-02-02  Jeff Law  <law@redhat.com>
12258             Roger Sayle  <roger@eyesopen.com>
12259
12260         * tree.c (commutative_tree_code, associative_tree_code): New
12261         functions.
12262         (iterative_hash_expr): Use commutative_tree_code.
12263         * tree.h (commutative_tree_code, associative_tree_code): Declare.
12264         * fold-const.c (operand_equal_p): Use commutative_tree_code
12265         rather than inlining the commutativity check.
12266         (fold): Likewise.
12267
12268 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12269
12270         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
12271         * config/frv/frv-protos.h: Remove the prototype for
12272         frv_function_arg_keep_as_reference.
12273         * config/frv/frv.c (frv_function_arg_keep_as_reference):
12274         Remove.
12275         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
12276         * config/stormy16/stormy16.h: Remove the commented-out
12277         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
12278
12279 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
12280
12281         PR target/13914
12282         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
12283         for retaddr_column.
12284
12285 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12286
12287         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
12288         gen_rtx.
12289
12290 2004-02-02  Eric Christopher  <echristo@redhat.com>
12291             Zack Weinberg  <zack@codesourcery.com>
12292
12293         * c-opts.c (c_common_handle_option): Add -finput-charset.
12294         * c.opt: Ditto.
12295         * cppcharset.c (one_iso88591_to_utf8): Remove.
12296         (convert_iso88591_utf8): Ditto.
12297         (conversion_tab): Remove 8859-1 converter.
12298         (_cpp_input_to_utf8): Remove.
12299         (_cpp_init_iconv_buffer): Ditto.
12300         (_cpp_close_iconv_buffer): Ditto.
12301         (_cpp_convert_input): New function.
12302         (_cpp_default_encoding): Ditto.
12303         * cpphash.h: Add/remove prototypes for above.
12304         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
12305         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
12306         for narrow execution and input character sets.
12307         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
12308         * doc/cppopts.texi: Document -finput-charset.
12309
12310 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
12311
12312         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
12313         against FIRST_PSEUDO_REGISTER.
12314
12315 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12316
12317         * doc/invoke.texi (SPARC options): Further improve.
12318
12319 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12320
12321         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
12322         config/h8300/h8300.c, config/ip2k/ip2k.md,
12323         config/iq2000/iq2000.c, config/mips/mips.c,
12324         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
12325         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
12326         config/v850/v850.md: Fix indentation.
12327
12328 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12329
12330         * config/sparc/sparc.c (function_arg_slotno): Align TImode
12331         arguments on a 16-byte boundary in the parameter array if ARCH64.
12332         Split handling of TFmode.
12333
12334 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
12335
12336         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
12337         Don't test CONSTANT_P (x).
12338         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
12339         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
12340         Fix misindentation.
12341
12342 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12343
12344         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
12345
12346 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12347
12348         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
12349         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
12350         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
12351         config/iq2000/iq2000.c, config/m32r/m32r.c,
12352         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
12353         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
12354         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
12355         config/stormy16/stormy16.c, config/v850/v850.md,
12356         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
12357
12358 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12359
12360         * config/mcore/mcore.c (block_move_sequence): Replace
12361         gen_rtx_CONST_INT with GEN_INT.
12362
12363 2004-02-02  Jan Hubicka  <jh@suse.cz>
12364
12365         * alias.c (record_set): Use hard_regno_nregs.
12366         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
12367         * builtins.c (apply_args_size): Likewise.
12368         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
12369         mark_set_regs, add_stored_regs, mark_referenced_regs,
12370         insert_restore, insert_save, insert_one_insn): Likewise.
12371         * cfgcleanup.c: Include regs.h
12372         (mark_effect, mentions_nonequal_regs): Likewise.
12373         * cfgrtl.c (mark_killed_regs): Likewise
12374         * combine.c (update_table_tick, record_value_for_reg,
12375         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
12376         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
12377         reg_bitfield_target_p, distribute_notes): Likewise.
12378         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
12379         exp_equiv_p, cse_insn): Likewise.
12380         * cselib.c (cselib_lookup): Likewise.
12381         (cselib_invalidate_regno, cselib_record_set): Likewise.
12382         * df.c (df_ref_record): Likewise.
12383         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
12384         Likewise.
12385         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
12386         count_or_remove_death_notes_bb): Likewise.
12387         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
12388         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
12389         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
12390         * integrate.c (mark_stores): Likewise.
12391         * jump.c (delete_prior_computation): Likewise.
12392         * lcm.c (reg_dies, reg_becomes_live): Likewise.
12393         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
12394         * loop.c (LOOP_REGNO_NREGS): Likewise.
12395         * postreload.c (reload_combine, reload_combine_note_store,
12396         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
12397         * ra-colorize.c (combine, color_usable_p, get_free_reg,
12398         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
12399         try_recolor_web, insert_coalesced_conflicts, check_colors,
12400         break_precolored_alias): Likewise.
12401         * ra-debug.c: Include regs.h
12402         (ra_print_rtx_object): Likewise.
12403         * ra-rewrite (choose_spill_colors): Likewise.
12404         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
12405         * ra.c (init_ra): Likewise.
12406         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
12407         peep2_find_free_register): Likewise.
12408         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
12409         * regclass.c (hard_regno_nregs): New array.
12410         (init_reg_modes_once): Initialize it.
12411         (choose_hard_reg_mode): Use it.
12412         (record_reg_classes): Likewise.
12413         * regmove.c (mark_flags_life_zones): Likewise.
12414         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
12415         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
12416         copy_value, maybe_mode_change, find_oldest_value_reg,
12417         copyprop_hardreg_forward_1):
12418         * regs.h (hard_regno_nregs): Declare.
12419         * realod.c (reload_inner_reg_of_subreg): Use it.
12420         (push_reload, combine_reloads, find_dummy_reload,
12421         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
12422         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
12423         reload_adjust_reg_for_mode): Likewise.
12424         * reload1.c (compute_use_by_pseudos, count_pseudo,
12425         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
12426         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
12427         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
12428         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
12429         delete_output_reload): Likewise.
12430         * resource.c (update_live_status, mark_referenced_resources,
12431         mark_set_resources, mark_target_live_regs): Likewise.
12432         * rtlanal.c:  Include regs.h
12433         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
12434         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
12435         subreg_regno_offset, subreg_offset_representable_p,
12436         hoist_test_store): Likewise.
12437         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
12438         * sched-rgn.c (check_live_1, update_live_1): Likewise.
12439         * stmt.c: Include regs.h
12440         (decl_conflicts_with_clobbers_p): Likewise.
12441         * varasm.c (make_decl_rtl): Likewise.
12442         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
12443
12444 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12445
12446         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
12447         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
12448         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
12449         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
12450         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
12451         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12452         config/iq2000/iq2000.h, config/m32r/m32r.c,
12453         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
12454         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
12455         config/mcore/mcore.c, config/mcore/mcore.h,
12456         config/mcore/mcore.md, config/mips/mips.c,
12457         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
12458         config/rs6000/rs6000.c, config/s390/s390.c,
12459         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
12460         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
12461         "gen_rtx (FOO, " with "gen_rtx_FOO (".
12462
12463 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12464
12465         * config/h8300/h8300.md (two peephole2's): New.
12466
12467 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
12468
12469         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
12470         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
12471         (ASM_CPU_SPEC): Likewise
12472         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
12473         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
12474
12475 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12476
12477         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
12478         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
12479         (expand_builtin): Always call expand_builtin_pow.
12480
12481 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12482
12483         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
12484         BUILT_IN_SIGNBITL): New GCC builtins.
12485         * builtins.c (expand_builtin_signbit): New function to RTL expand
12486         calls to signbit, signbitf and signbitl as inline intrinsics.
12487         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
12488         (fold_builtin_signbit): New function to perform constant folding
12489         of signbit, signbitf and signbitl.
12490         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
12491
12492         * doc/extend.texi: Document new signbit{,f,l} builtins.
12493
12494 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
12495
12496         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
12497
12498 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
12499
12500         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
12501         "mips_const_double_ok" and "simple_memory_operand", which were
12502         removed from the MIPS port with the mips-3_4-rewrite branch merge.
12503         * config/mips/mips.c (mips16_lay_out_constants): Update comment
12504         for removal of simple_memory_operand.
12505
12506 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12507
12508         * config/c4x/c4x.md: Use GEN_INT instead of
12509         gen_rtx (CONST_INT, ...).
12510
12511 2004-01-31  Richard Henderson  <rth@redhat.com>
12512
12513         * varasm.c (output_constant_pool): Don't zap the pool.
12514
12515 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12516
12517         * genrecog.c (decision_type): Add DT_const_int.
12518         (write_cond) [DT_const_int]: Print a comparison against small
12519         constant.
12520         (write_node): Simplify comparisons against small constants
12521         before printing tests.
12522
12523 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12524
12525         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
12526         instead of gen_rtx_CONST_INT.
12527
12528 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12529
12530         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
12531         instead of gen_rtx_CONST_INT.
12532
12533 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12534
12535         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
12536         hook_bool_CUMULATIVE_ARGS_false.
12537         * targhooks.c (default_strict_argument_naming): Rename to
12538         hook_bool_CUMULATIVE_ARGS_false.
12539         * targhooks.h: Update the prototype for
12540         default_strict_argument_naming.
12541
12542 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12543
12544         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12545         * config/sh/sh.h: Likewise.
12546         * config/sh/sh.md: Likewise.
12547
12548 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
12549
12550         * doc/invoke.texi (SPARC options): Restructure and update.
12551
12552 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12553
12554         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
12555         STRICT_ARGUMENT_NAMING): Poison.
12556         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
12557         hook_bool_tree_false.
12558         * targhooks.c (default_promote_function_args): Remove.
12559         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
12560         Don't check incoming.
12561         (default_strict_argument_naming): Don't use
12562         STRICT_ARGUMENT_NAMING.
12563         * targhooks.h: Remove the prototype for
12564         default_promote_function_args.
12565
12566 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12567
12568         * config/i386/i386-protos.h: Remove the prototype for
12569         ix86_setup_incoming_varargs.
12570         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
12571         (ix86_setup_incoming_varargs): Make it static.
12572         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
12573
12574 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12575
12576         * alloc-pool.c: Fix comment typos.
12577         * builtin-types.def: Likewise.
12578         * builtins.def: Likewise.
12579         * c-pretty-print.c: Likewise.
12580         * df.h: Likewise.
12581         * reload1.c: Likewise.
12582
12583 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12584
12585         * doc/invoke.texi: Follow spelling conventions.
12586         * doc/tm.texi: Likewise.
12587
12588 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12589
12590         * doc/install.texi: Fix typos.
12591         * doc/invoke.texi: Likewise.
12592
12593 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
12594
12595         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
12596         registers as pointers.
12597         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
12598
12599 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
12600
12601         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
12602         and restore it to gen_lowpart_general on exit.
12603         (gen_lowpart_for_combine): Adjust all callers to go through
12604         gen_lowpart.
12605         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
12606         and restore it to gen_lowpart_general on exit.
12607         (gen_lowpart_if_possible): Adjust all callers to go through
12608         gen_lowpart.
12609         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
12610         (gen_lowpart): Declare as pointer to function, initialized to
12611         gen_lowpart_general.
12612         * rtl.h (gen_lowpart): Declare as pointer to function.
12613
12614 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12615
12616         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12617         * calls.c: Likewise.
12618         * emit-rtl.c: Likewise.
12619         * function.c: Likewise.
12620         * reload1.c: Likewise.
12621         * config/i386/cygming.h: Likewise.
12622         * config/i386/i386.c: Likewise.
12623         * config/i386/winnt.c: Likewise.
12624
12625 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
12626
12627         PR bootstrap/9249
12628         * doc/install.texi: document --enable-__cxa_atexit option.
12629         * configure.ac: Disable __cxa_atexit if not supported.
12630         * configure: Regenerate.
12631
12632 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
12633
12634         * ggc-zone.c (ggc_free): New function.
12635
12636 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12637
12638         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
12639         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
12640         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
12641         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
12642         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
12643         config/alpha/alpha.c, config/alpha/alpha.h,
12644         config/alpha/alpha.md, config/alpha/unicosmk.h,
12645         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
12646         config/c4x/c4x-protos.h, config/c4x/c4x.md,
12647         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
12648         config/frv/frvend.c, config/i386/cygming.h,
12649         config/i386/djgpp.h, config/i386/emmintrin.h,
12650         config/i386/gthr-win32.c, config/i386/i386-interix.h,
12651         config/i386/i386-protos.h, config/i386/openbsd.h,
12652         config/i386/winnt.c, config/i386/xm-mingw32.h,
12653         config/i386/xmmintrin.h, config/ia64/ia64.md,
12654         config/iq2000/iq2000.md, config/m32r/m32r.md,
12655         config/m68k/m68k.md, config/mcore/mcore-elf.h,
12656         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
12657         config/mips/iris5gas.h, config/mips/iris6.h,
12658         config/mips/iris6gas.h, config/mips/linux.h,
12659         config/mips/mips.md, config/mips/netbsd.h,
12660         config/mips/openbsd.h, config/mips/windiss.h,
12661         config/pa/fptr.c, config/rs6000/aix.h,
12662         config/rs6000/altivec.h, config/rs6000/darwin.h,
12663         config/rs6000/xcoff.h, config/s390/s390-protos.h,
12664         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
12665         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
12666         config/sparc/sol2.h: Update copyright.
12667
12668 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
12669
12670         * Makefile.in (abs_docdir, abs_srcdir): Define.
12671         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
12672
12673 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12674
12675         * genconfig.c (main): Have CC0_P check its operand even on a
12676         target without cc0.
12677
12678 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12679
12680         * config/alpha/alpha.c: Remove mentions of deprecates macros
12681         in comments, remove some target-independent comments about target
12682         macros, and/or add minimal function comments for target hook
12683         implementations.
12684         * config/avr/avr.c: Likewise.
12685         * config/ia64/ia64.h: Likewise.
12686         * config/ip2k/ip2k.c: Likewise.
12687         * config/iq2000/iq2000.c: Likewise.
12688         * config/m32r/m32r.h: Likewise.
12689         * config/m68hc11/m68hc11.c: Likewise.
12690         * config/mcore/mcore.c: Likewise.
12691         * config/mmix/mmix.c: Likewise.
12692         * config/mn10300/mn10300.c: Likewise.
12693         * config/pa/pa.c: Likewise.
12694         * config/pdp11/pdp11.c: Likewise.
12695         * config/rs6000/rs6000.h: Likewise.
12696         * config/sh/sh.c: Likewise.
12697         * config/sh/sh.h: Likewise.
12698         * config/sparc/sparc.c: Likewise.
12699         * config/sparc/sparc.h: Likewise.
12700         * config/stormy16/stormy16.c: Likewise.
12701         * config/xtensa/xtensa.c: Likewise.
12702
12703 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
12704
12705         PR optimization/12147
12706         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
12707         RELOAD_FOR_OPADDR_ADDR.
12708         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
12709         might be reused as RELOAD_FOR_OPADDR_ADDR register.
12710
12711 2004-01-30  Jan Hubicka  <jh@suse.cz>
12712
12713         * reload.c (get_secondary_mem): Fix updating of
12714         secondary_memlocs_elim_used.
12715
12716 2004-01-30  Richard Henderson  <rth@redhat.com>
12717
12718         * varasm.c (struct rtx_const, struct pool_constant): Remove.
12719         (MAX_RTX_HASH_TABLE): Remove.
12720         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
12721         (first_pool, last_pool, pool_offset): Remove.
12722         (struct rtx_constant_pool): Split out from ...
12723         (struct varasm_status): ... here.  Reference one via pointer.
12724         (struct constant_descriptor_rtx): Merge struct pool_constant.
12725         (SYMHASH): Remove.
12726         (decode_rtx_const): Remove.
12727         (const_hash_rtx, compare_constant_rtx): Remove.
12728         (record_constant_rtx): Remove.
12729         (const_desc_rtx_hash, const_desc_rtx_eq): New.
12730         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
12731         (const_rtx_hash_1, const_rtx_hash): New.
12732         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
12733         (simplify_subtraction): Use simplify_rtx.
12734         (force_const_mem): Rewrite to use new data structures.
12735         (find_pool_constant): Likewise.
12736         (get_pool_constant, get_pool_constant_mark,
12737         get_pool_constant_for_function, get_pool_mode,
12738         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
12739         (output_constant_pool_2): Split out from output_constant_pool.
12740         (output_constant_pool_1): Likewise.  Use new pool datastructures.
12741         (output_constant_pool): Zap entire pool datastructure.
12742         (mark_constant): Use new pool datastructures.
12743         (mark_constants): Use for_each_rtx.
12744         (mark_constant_pool): Use new pool datastructures.
12745
12746 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
12747
12748         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
12749         Copy operands[1] to pseudo for simplify_gen_subreg.
12750
12751 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12752
12753         * gcse.c (bypass_block): Fix a typo in the previous check-in
12754         to the file.
12755
12756 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
12757
12758         * toplev.c: Include alloc-pool.h.
12759         * Makefile.in (toplev.c): Update dependencies.
12760
12761 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12762
12763         * combine.c (simplify_shift_const, case XOR): Be careful when
12764         commuting XOR with ASHIFTRT.
12765
12766 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12767             Eric Botcazou  <ebotcazou@libertysurf.fr>
12768
12769         * config/sparc/sparc-protos.h: Remove the prototype for
12770         sparc_builtin_saveregs.
12771         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12772         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12773         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12774         (TARGET_STRUCT_VALUE_RTX): Likewise.
12775         (TARGET_RETURN_IN_MEMORY): Likewise.
12776         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12777         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12778         (sparc_builtin_saveregs): Make it static.
12779         (sparc_promote_prototypes): New.
12780         (sparc_struct_value_rtx): Likewise.
12781         (sparc_return_in_memory): Likewise.
12782         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
12783         (PROMOTE_FUNCTION_RETURN): Likewise.
12784         (RETURN_IN_MEMORY): Likewise.
12785         (STRUCT_VALUE): Likewise.
12786         (STRUCT_VALUE_INCOMING): Likewise.
12787         (EXPAND_BUILTIN_SAVEREGS): Likewise.
12788         (STRICT_ARGUMENT_NAMING): Likewise.
12789         (PROMOTE_PROTOTYPES): Likewise.
12790
12791         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
12792
12793 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
12794
12795         PR c/12818
12796         * varasm.c (const_hash_1) <STRING_CST>: Use the
12797         address to compute the hash value if flag_writable_strings.
12798         (compare_constant) <STRING_CST>: Compare the addresses
12799         if flag_writable_strings.
12800         (build_constant_desc): Do not copy the expression for a
12801         STRING_CST if flag_writable_strings.
12802
12803 2004-01-30  Jan Hubicka  <jh@suse.cz>
12804
12805         * alloc-pool.c: Include hashtab.h
12806         (alloc_pool_descriptor): New structure
12807         (alloc_pool_hash): New global variable.
12808         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
12809         (create_alloc_pool): Update statistics.
12810         (free_alloc_pool): Likewise.
12811         (pool_alloc): Likewise.
12812         (output_info): New structure
12813         (print_statistics, dump_alloc_pool_statistics): New function.
12814         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
12815         (dump_alloc_pool_statistics): Declare.
12816         * toplev.c (finalize):  Dump statistics.
12817
12818         * reload.c (secondary_memlocs_elim_used): New static variable.
12819         (get_secondary_mem): Update it.
12820         (find_reloads): Use it.
12821
12822 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
12823
12824         * toplev.c: Fix broken checkin of 2003-12-30, again.
12825
12826 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
12827
12828         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
12829         s390*-*-* targets by specifying a 'nop' insn.
12830         * configure: Regenerate.
12831
12832 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
12833
12834         PR target/11475
12835         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
12836
12837 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
12838
12839         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
12840         of addr when creating MEM copy.
12841
12842 2004-01-29  Devang Patel  <dpatel@apple.com>
12843
12844         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
12845
12846 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
12847
12848         PR inline-asm/6162
12849         * reload.c (find_reloads): Only support one pair of commutative
12850         operands.
12851
12852 2004-01-29  Roger Sayle  <roger@eyesopen.com>
12853
12854         PR java/13824
12855         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
12856         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
12857         recursion.
12858
12859 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
12860
12861         * config/frv/frv.c: Don't mention deprecated macros in
12862         comments.  Remove some target-independent comments about
12863         target macros.
12864         * config/frv/frv.h: Likewise.
12865
12866 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12867
12868         * cfghooks.c (split_block): Set probability and count of the
12869         new edge.
12870
12871 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
12872
12873         * dwarf2out.c (struct die_struct): Added field decl_id.
12874         (decl_die_table): Changed to hash table.
12875         (decl_die_table_allocated): Deleted.
12876         (decl_die_table_in_use): Deleted.
12877         (DECL_DIE_TABLE_INCREMENT): Deleted.
12878         (decl_die_table_hash): New function.
12879         (decl_die_table_eq): New function.
12880         (lookup_decl_die): Lookup in a hash table.
12881         (equate_decl_number_to_die): Insert into a hash table.
12882         (dwarf2out_init): Init hash table decl_die_table.
12883
12884 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
12885
12886         PR optimization/13424
12887         * expr.c (store_constructor): Revert 2003-12-03 change.
12888
12889         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
12890         expected before returning early.  Avoid sharing RTL if they
12891         need to be changed.
12892
12893         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
12894         handling so that memory attributes are preserved.  Don't call
12895         ix86_set_move_mem_attrs.
12896         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
12897         (ix86_expand_clrstr): Rename src argument to
12898         dst.  Rework rep_stos and strset handling so that memory attributes
12899         are preserved.
12900         (ix86_expand_strlen): Pass src argument to
12901         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
12902         memory attributes are preserved.
12903         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
12904         change_address instead of gen_rtx_MEM.
12905         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
12906         expanders.
12907         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
12908         strmovqi, strmovqi_rex64): Remove.
12909         (rep_mov*, strmov*): Prefix insn names with *.
12910         (strset, strset_singleop, rep_stos): New expanders.
12911         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
12912         strsetqi, strsetqi_rex64): Remove.
12913         (rep_stos*, strset*): Prefix insn names with *.
12914         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
12915         to SImode.
12916         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
12917         are preserved.
12918         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
12919         Prefix insn names with *.
12920         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
12921         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
12922         (strlenqi_1): New expander.
12923         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
12924
12925 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12926
12927         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
12928         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
12929         verify_flow_info): Declaration removed.
12930         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
12931         (debug_bb, debug_bb_n): Add argument to dump_bb call.
12932         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
12933         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
12934         instead of delete_block.
12935         * cfghooks.c: Include timevar.h and toplev.h.
12936         (cfg_hooks): Define here.
12937         (verify_flow_info, dump_bb): Moved from cfg.c.
12938         (redirect_edge_and_branch, redirect_edge_and_branch_force,
12939         split_block, split_block_after_labels, move_block_after,
12940         delete_basic_block, split_edge, create_basic_block,
12941         create_empty_bb, can_merge_blocks_p, merge_blocks,
12942         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
12943         New functions.
12944         * cfghooks.h (struct cfg_hooks): Added fields name,
12945         make_forwarder_block, tidy_fallthru_edge and
12946         move_block_after. Changed type of verify_flow_info, dump_bb,
12947         split_block fields. Renamed cfgh_split_edge and delete_block
12948         fields.
12949         (redirect_edge_and_branch, redirect_edge_and_branch_force,
12950         split_block, delete_block, split_edge, create_basic_block,
12951         can_merge_blocks_p, merge_blocks): Macros removed.
12952         (cfg_hooks): Do not export.
12953         (verify_flow_info, dump_bb, redirect_edge_and_branch,
12954         redirect_edge_and_branch_force, split_block, split_block_after_labels,
12955         move_block_after, delete_basic_block, split_edge, create_basic_block,
12956         create_empty_bb, can_merge_blocks_p, merge_blocks,
12957         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
12958         Declare.
12959         (cfg_layout_rtl_cfg_hooks): Declare.
12960         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
12961         New functions.
12962         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
12963         (redirect_edge_with_latch_update): Removed.
12964         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
12965         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
12966         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
12967         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
12968         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
12969         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
12970         cfghooks.c.
12971         (rtl_create_basic_block): Coding style fix.
12972         (rtl_tidy_fallthru_edge, rtl_move_block_after,
12973         rtl_make_forwarder_block): New functions.
12974         (update_cfg_after_block_merging): Removed.
12975         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
12976         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
12977         to dump_bb.
12978         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
12979         find_if_case_2): Don't update dominators.
12980         * timevar.def (TV_CFG_VERIFY): New.
12981         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
12982         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
12983         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
12984         (remove_bbs): Don't call remove_bbs.
12985         (create_preheader): Use make_forwarder_block.
12986         (mfb_keep_just, mfb_update_loops): New static functions.
12987
12988 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
12989
12990         * config/avr/avr.h: Remove target-independent comments about
12991         target macros.
12992
12993 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
12994
12995         * timevar.c (timevar_print): Mention when checking is enabled.
12996
12997 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
12998
12999         * c-lex.c (c_lex): Rename to...
13000         (c_lex_with_flags): Add new parameter to get CPP flags.
13001         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
13002         * c-pragma.h (c_lex_with_flags): Declare.
13003
13004 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13005
13006         * config/mcore/mcore.c (mcore_external_libcall): Add a
13007         comment.
13008         (mcore_return_in_memory): Likewise.
13009
13010 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13011
13012         * config/mcore/mcore-protos.h: Remove the prototype for
13013         mcore_setup_incoming_varargs.
13014         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13015         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13016         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13017         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13018         (TARGET_STRUCT_VALUE_RTX): Likewise.
13019         (TARGET_RETURN_IN_MEMORY): Likewise.
13020         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13021         (mcore_setup_incoming_varargs): Make it static.  Receive the
13022         first argument by reference.  Add argument second_time.
13023         (mcore_external_libcall): New.
13024         (mcore_return_in_memory): Likewise.
13025         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
13026         (PROMOTE_FUNCTION_RETURN): Likewise.
13027         (STRUCT_VALUE): Likewise.
13028         (RETURN_IN_MEMORY): Likewise.
13029         (SETUP_INCOMING_VARARGS): Likewise.
13030         (PROMOTE_PROTOTYPES): Likewise.
13031         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13032
13033 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13034
13035         * config/m32r/m32r-protos.h: Remove the prototype for
13036         m32r_setup_incoming_varargs.
13037         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
13038         (TARGET_STRUCT_VALUE_RTX): Likewise.
13039         (TARGET_RETURN_IN_MEMORY): Likewise.
13040         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13041         (m32r_return_in_memory): New.
13042         (m32r_setup_incoming_varargs): Make it static.
13043         * config/m32r/m32r.h: Remove #undef of
13044         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
13045         definitions of PROMOTE_FUNCTION_ARGS and
13046         PROMOTE_FUNCTION_RETURN.
13047         (PROMOTE_PROTOTYPES): Remove.
13048         (RETURN_IN_MEMORY): Likewise.
13049         (STRUCT_VALUE): Likewise.
13050
13051 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13052
13053         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
13054         (TARGET_STRUCT_VALUE_RTX): Likewise.
13055         (m68k_struct_value_rtx): Likewise.
13056         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
13057         STRUCT_VALUE_REGNUM.
13058         (PROMOTE_PROTOTYPES): Remove.
13059         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
13060         STRUCT_VALUE_REGNUM.
13061         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
13062         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
13063
13064 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13065
13066         * config/stormy16/stormy16.c
13067         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
13068         TARGET_BUILD_BUILTIN_VA_LIST.
13069
13070 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13071
13072         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
13073         (TARGET_STRUCT_VALUE_RTX): Likewise.
13074         (TARGET_RETURN_IN_MEMORY): Likewise.
13075         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13076         (v850_return_in_memory): Likewise.
13077         (v850_setup_incoming_varargs): Likewise.
13078         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
13079         (SETUP_INCOMING_VARARGS): Likewise.
13080         (RETURN_IN_MEMORY): Likewise.
13081         (STRUCT_VALUE): Likewise.
13082
13083 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13084
13085         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
13086         (fr30_setup_incoming_varargs): Don't use
13087         STRICT_ARGUMENT_NAMING.
13088         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
13089         (STRICT_ARGUMENT_NAMING): Likewise.
13090
13091 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13092
13093         * config/frv/frv-protos.h: Remove the prototype for
13094         frv_expand_builtin_saveregs.
13095         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
13096         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13097         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
13098         STRUCT_VALUE_REGNUM.
13099         (frv_expand_builtin_saveregs): Make it static.
13100         (frv_struct_value_rtx): New.
13101         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
13102
13103 2004-01-29  Jan Hubicka  <jh@suse.cz>
13104
13105         PR c++/12850
13106         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
13107         initial pointers.
13108         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
13109         for functions that will be only inlined.
13110         (cgraph_mark_function_to_output): Likewise.
13111         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
13112         do not clear function body.
13113         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
13114         (tree_rest_of_compilation): Reorganize the logic releasing function
13115         body to use callgraph datastructure.
13116
13117 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13118
13119         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
13120         to register_operand.
13121
13122 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13123
13124         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
13125         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
13126         match_operand expressions so that all match_dups appear
13127         lexically after their corresponding match_operands.
13128
13129 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13130
13131         * config/h8300/h8300.c (WORD_REG_USED): Use
13132         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
13133         (compute_saved_regs): Likewise.
13134         (h8300_expand_prologue): Likewise.  Allocate locals after
13135         saving registers.
13136         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
13137         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
13138         registers.
13139         (h8300_initial_elimination_offset): Adjust for the new frame
13140         layout, which swaps flips the order of locals and saved
13141         registers.
13142         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
13143         (HARD_FRAME_POINTER_REGNUM): New.
13144         (ELIMINABLE_REGS): Add an elimination rule from
13145         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
13146         (REGISTER_NAMES): Add fp.
13147         * config/h8300/h8300.md (FP_REG): Change to 11.
13148         (HFP_REG): New.
13149
13150 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13151
13152         * genrecog.c (write_node): Remove a useless local variable.
13153
13154 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13155
13156         * Makefile.in (options.c options.h): Use stamp file s-options to
13157         avoid unnecessary rebuilds.
13158         (options.o): New target listing dependencies.
13159         (gtyp-gen.h): Use stamp file s-gtyp-gen.
13160         (STAGESTUFF): Add s-gtyp-gen.
13161
13162 2004-01-28  Richard Henderson  <rth@redhat.com>
13163
13164         * ggc.h (ggc_free): Declare.
13165         * ggc-common.c (ggc_realloc): Use it.
13166         * ggc-page.c: Remove lots of inline markers.
13167         (globals): Add free_object_list.
13168         (ggc_alloc): Tidy.
13169         (ggc_free, validate_free_objects): New.
13170         (poison_pages): Provide default.
13171         (ggc_collect): Call validate_free_objects; emit markers to
13172         the debug file.
13173
13174 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13175             Jim Wilson  <wilson@specifixinc.com>
13176
13177         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
13178         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
13179         scratch pointer.
13180         (ia64_secondary_reload_class): Delete case GR_REGS.
13181         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
13182         Do not allocate a scratch register.
13183         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
13184
13185 2004-01-28  Jan Hubicka  <jh@suse.cz>
13186
13187         * gcse.c (bypass_block): Prevent edges to be unified when we are
13188         about to emit compenstation code.
13189
13190 2004-01-28  Nick Clifton  <nickc@redhat.com>
13191
13192         * config/arm/arm.c (arm_expand_builtin): Force second argument of
13193         the setcwx insn into a register.
13194
13195 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
13196
13197         * config/fp-bit.c (pack_d): When using paired doubles to implement
13198         a long double, round the high part separately.
13199         (unpack_d): Fix the case in which the high part is a power of two
13200         and the low part is a nonzero value of the opposite sign.
13201
13202 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13203
13204         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13205         (TARGET_STRUCT_VALUE_RTX): Likewise.
13206         (c4x_external_libcall): Likewise.
13207         (c4x_struct_value_rtx): Likewise.
13208         * config/c4x/c4x.h: Remove.
13209         (STRUCT_VALUE_REGNUM): Likewise.
13210         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13211
13212 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13213
13214         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
13215         (TARGET_STRUCT_VALUE_RTX): Likewise.
13216         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
13217         (STRUCT_VALUE): Likewise.
13218         (PROMOTE_PROTOTYPES): Likewise.
13219
13220 2004-01-27  Roger Sayle  <roger@eyesopen.com>
13221
13222         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
13223         CONST_INT before using INTVAL.
13224
13225 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
13226
13227         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
13228         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
13229         frame if !TARGET_BACKCHAIN.
13230         * config/s390/s390.md ("allocate_stack"): Use pattern only if
13231         TARGET_BACKCHAIN.
13232         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
13233
13234 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13235
13236         * ia64.c (ia64_function_arg): When placing HFAs in integer
13237         registers, do not special case the mode used for complex
13238         types.  Do not advance int_regs until the current register
13239         is full.
13240
13241 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
13242
13243         PR target/7297
13244         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
13245
13246 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13247
13248         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
13249         slow, unaligned loads and stores while debugging.  Fix formatting.
13250
13251 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13252
13253         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
13254         of computing wmode.
13255         (restore_stack_nonlocal): Same.
13256
13257 2004-01-27  Devang Patel <dpatel@apple.com>
13258
13259         * Makefile.in (dwarf2out.o): Depend on input.h
13260         * dbxout.c (dbx_debug_hooks): Add new empty hook for
13261         imported_module_or_decl.
13262         (xcoff_debug_hooks): Same.
13263         * sdbout.c (sdb_debug_hooks): Same.
13264         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
13265         * debug.c (do_nothing_debug_hooks): Same.
13266         (debug_nothing_tree_tree): New function.
13267         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
13268         * dwarf2out.c: Include input.h.
13269         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
13270         (remove_child_TAG): New function.
13271         (dwarf_tag_name): Handle DW_TAG_imported_module.
13272         (gen_subprogram_die): Equate decl number to declaration die. Do not
13273         remove all children dies while reusing declaration die for definition.
13274         Instead, selectively remove only formal parameters.
13275         (gen_variable_die): Equate variable decl to declaration die.
13276         (gen_field_die): Equate field decl to line number.
13277         (force_namespace_die): Replace it with ...
13278         (force_decl_die): ... this.
13279         (force_type_die): New function.
13280         (setup_namespace_context): Replace use of force_namespace_die() with
13281         force_decl_die().
13282         (gen_namespace_die): Same.
13283         (dwarf2out_imported_module_or_decl): New function.
13284
13285 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
13286
13287         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
13288         on CQImode and CHImode incoming arguments in register a7.
13289         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
13290         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
13291         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
13292         xtensa_copy_incoming_a7 before reload.
13293
13294 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13295
13296         * coverage.c (get_coverage_counts): Give a different message
13297         if flag_guess_branch_prob is set.
13298         * predict.c (counts_to_freqs): Return an int.
13299         (estimate_bb_frequencies): If counts_to_freqs returns zero,
13300         calculate estimates.
13301
13302 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
13303
13304         * config/iq2000/iq2000-protos.h: Remove the prototype for
13305         iq2000_setup_incoming_varargs.
13306         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13307         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13308         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13309         (TARGET_STRUCT_VALUE_RTX): Likewise.
13310         (TARGET_RETURN_IN_MEMORY): Likewise.
13311         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13312         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13313         (iq2000_return_in_memory): Likewise.
13314         (iq2000_setup_incoming_varargs): Make it static.  Receive the
13315         first argument by reference.
13316         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
13317         (PROMOTE_FUNCTION_RETURN): Likewise.
13318         (PROMOTE_PROTOTYPES): Likewise.
13319         (RETURN_IN_MEMORY): Likewise.
13320         (STRUCT_VALUE): Likewise.
13321         (SETUP_INCOMING_VARARGS): Likewise.
13322         (STRICT_ARGUMENT_NAMING): Likewise.
13323
13324 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
13325
13326         * fixinc/fixinc.c (test_test): Initialize res.
13327         (start_flexer): Initialize pz_cmd_save.
13328
13329 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13330
13331         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
13332         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
13333
13334 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13335
13336         PR 7198
13337         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
13338         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
13339         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
13340         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
13341         Possibly rename pattern for consistency.
13342         Remove ??? comments suggesting that this be done.
13343         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
13344         New patterns.
13345         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
13346         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
13347         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
13348         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
13349         Update to match.
13350
13351 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
13352
13353         * config/arm/arm.c (output_return_instruction): Only restore IP
13354         into SP if frame_pointer_needed.
13355
13356 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13357
13358         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13359         for SCmode and DCmode if ARCH32.
13360         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
13361         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
13362         if ARCH32.
13363         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
13364         if ARCH32.
13365         (BASE_OUTGOING_VALUE_REG): Likewise.
13366
13367 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13368
13369         PR target/10904
13370         PR target/13058
13371         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
13372         Forbid mode changes from SImode for lower FP regs if ARCH64.
13373
13374 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13375
13376         * Makefile.in (bt-load.o): Depend on except.h.
13377         * bt-load.c (except.h): #include.
13378         (compute_defs_uses_and_gen): If insn at end of BB can throw
13379         within this function, consider registers used by it unavailable for
13380         btr migration.
13381         (move_btr_def): If insn at end of BB can throw, insert before rather
13382         than after.
13383
13384         * flags.h (flag_btr_bb_exclusive): Declare.
13385         * toplev.c (flag_btr_bb_exclusive): New variable.
13386         (f_options): Add btr-bb-exclusive.
13387         * bt-load.c (augment_live_range): Restore old behaviour if
13388         flag_btr_bb_exclusive is set.
13389         * common.opt: Add entry for -fbtr-bb-exclusive.
13390         * opts.c (common_handle_options): Same.
13391         * doc/invoke.texi: Document -fbtr-bb-exclusive.
13392
13393         * bt-load.c (btrs_live_at_end): New variable.
13394         (compute_defs_uses_and_gen): Compute its pointed-to array.
13395         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
13396         (augment_live_range): When augmenting with a new dominator,
13397         use only its btrs_live_at_end set, but also add in the full set
13398         of the old dominator.
13399         (btr_def_live_range): Use btrs_live_at_end.
13400         (move_btr_def): Set other_btr_uses_before_def, and move new set
13401         to the end of the basic block, if appropriate.
13402         (migrate_btr_defs): Allocate and free btrs_live_at_end.
13403
13404         * bt-load.c (basic_block_freq): Remove outdated comment.
13405
13406 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
13407
13408         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
13409         (PREDICATE_CODES): Remove duplicate.
13410         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
13411         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
13412         (MASK_PROFILE_KERNEL): Adjust define.
13413
13414 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
13415
13416         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
13417         of long string literals from 32 bytes to sizeof (void *) when !-Os
13418         and to 1 with -Os.
13419
13420 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13421
13422         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
13423         constant addresses in the normal mode.
13424
13425 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13426
13427         * system.h (CHAR_BITFIELD): Delete.
13428         (BOOL_BITFIELD): New.
13429         * c-decl.c (c_scope): Use BOOL_BITFIELD.
13430         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
13431
13432 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13433
13434         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13435         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13436         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13437         (TARGET_STRUCT_VALUE_RTX): Likewise.
13438         (TARGET_RETURN_IN_MEMORY): Likewise.
13439         (arc_return_in_memory): Likewise.
13440         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
13441         (PROMOTE_FUNCTION_RETURN): Likewise.
13442         (RETURN_IN_MEMORY): Likewise.
13443         (STRUCT_VALUE): Likewise.
13444
13445 2004-01-26  Richard Henderson  <rth@redhat.com>
13446
13447         * c-parse.in (extension): Use itype.
13448         (SAVE_EXT_FLAGS): Don't allocate a tree.
13449         (RESTORE_EXT_FLAGS): Don't read a tree.
13450
13451 2004-01-26  Jan Hubicka  <jh@suse.cz>
13452
13453         * cselib.c (discard_useless_values):  Clear out value pointer pointing
13454         to datastructure to be recycled.
13455
13456 2004-01-25  Jan Hubicka  <jh@suse.cz>
13457
13458         * genextract.c (main): Do not output the memset when not checking.
13459
13460 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13461
13462         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
13463         switch statement instead of a chain of if statements.
13464
13465 2004-01-26  Jeff Law  <law@redhat.com>
13466
13467         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
13468         acute accents for Petur Runolfsson's entry.
13469
13470 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13471
13472         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
13473         (TARGET_RETURN_IN_MEMORY): Likewise.
13474         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
13475         (RETURN_IN_MEMORY): Likewise.
13476
13477 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13478
13479          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
13480          unaligned load/store into smaller loads and stores.
13481
13482 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13483
13484         * function.c (assign_parms): Do not assign
13485         long long argument to memory in prologue if
13486         is it loaded into register.
13487
13488 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13489
13490          PR middle-end/13779
13491          * expr.c (emit_group_load): split constant
13492          correctly into register components of PARALLEL insn.
13493
13494 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13495
13496         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
13497         Use adjust_address_nv directly with appropriate mode.
13498         (restore_stack_nonlocal): Ditto.
13499
13500 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13501
13502         * config/xtensa/xtensa-protos.h: Remove the prototype for
13503         xtensa_builtin_saveregs.
13504         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13505         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13506         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13507         (TARGET_STRUCT_VALUE_RTX): Likewise.
13508         (TARGET_RETURN_IN_MEMORY): Likewise.
13509         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13510         (xtensa_builtin_saveregs): Make it static.
13511         (xtensa_return_in_memory): New.
13512         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
13513         (PROMOTE_FUNCTION_RETURN): Likewise.
13514         (PROMOTE_PROTOTYPES): Likewise.
13515         (STRUCT_VALUE): Likewise.
13516         (RETURN_IN_MEMORY): Likewise.
13517         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13518
13519 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13520
13521         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
13522         (arm_setup_incoming_varargs): Likewise.
13523         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
13524
13525 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13526
13527         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
13528         (cris_setup_incoming_varargs): Likewise.
13529         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
13530
13531 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13532
13533         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
13534         (ns32k_struct_value_rtx): Likewise.
13535         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
13536         NS32K_STRUCT_VALUE_REGNUM.
13537
13538 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13539
13540         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13541         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13542         (TARGET_STRUCT_VALUE_RTX): Likewise.
13543         (arm_struct_value_rtx): Likewise.
13544         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
13545         (STRUCT_VALUE): Likewise.
13546         (STRUCT_VALUE_REGNUM): Likewise.
13547         (PROMOTE_PROTOTYPES): Likewise.
13548
13549 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13550
13551         * config/ia64/ia64-protos.h: Remove the prototype for
13552         ia64_setup_incoming_varargs and ia64_return_in_memory.
13553         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
13554         (TARGET_RETURN_IN_MEMORY): Likewise.
13555         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13556         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13557         (ia64_setup_incoming_varargs): Adjust the arguments to meet
13558         the requirement of TARGET_SETUP_INCOMING_VARARGS.
13559         (ia64_return_in_memory): Make it static.  Change the return
13560         type to bool from int.  Add an argument.
13561         (ia64_struct_value_rtx): New.
13562         * config/ia64/ia64.h: Remove commented-out definitions of
13563         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
13564         PROMOTE_PROTOTYPES.
13565         (RETURN_IN_MEMORY): Remove.
13566         (STRUCT_VALUE_REGNUM): Likewise.
13567         (STRICT_ARGUMENT_NAMING): Likewise.
13568
13569 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
13570
13571         PR target/13666
13572         * config/sparc/sparc.c (function_arg_union_value): New function.
13573         (function_arg): Use it to deal with unions.
13574         (function_value): Likewise.  Define 'regbase' only for ARCH64.
13575         Replace a conditional statement by a simpler one.
13576
13577 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
13578
13579         * config/mips/mips.c (mips16_optimize_gp): Delete.
13580         (mips_reorg): Don't call it.
13581
13582 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13583
13584         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
13585         (floatunsqihf2): Remove operand 6.
13586         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
13587         fix patterns.
13588         (ldi_conditional, ldf_conditional): Validate operands.
13589
13590 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13591
13592         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
13593         (HAVE_GAS_HIDDEN): Undefine as interim measure.
13594
13595 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13596
13597         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
13598         memory references if TARGET_EXPOSE_LDP nonzero.
13599
13600 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13601
13602         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
13603
13604 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13605
13606         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
13607         invalid operand combinations.
13608
13609 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13610
13611         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
13612         c4x_legitimate_address_p.  Fix post_modify check.
13613
13614         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
13615         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
13616
13617 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13618
13619         * config/pa/pa-protos.h: Remove the prototype for
13620         hppa_builtin_saveregs.  Add a prototype for
13621         pa_return_in_memory.
13622         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
13623         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13624         (TARGET_STRUCT_VALUE_RTX): Likewise.
13625         (TARGET_RETURN_IN_MEMORY): Likewise.
13626         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13627         (pa_struct_value_rtx): Likewise.
13628         (pa_return_in_memory): Likewise.
13629         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
13630         PA_STRUCT_VALUE_REGNUM.
13631         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
13632         (EXPAND_BUILTIN_SAVEREGS): Remove.
13633         (PROMOTE_PROTOTYPES): Likewise.
13634         (PROMOTE_FUNCTION_RETURN): Likewise.
13635
13636 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13637
13638         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
13639         (TARGET_STRUCT_VALUE_RTX): Likewise.
13640         (vax_struct_value_rtx): Likewise.
13641         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
13642         VAX_STRUCT_VALUE_REGNUM.
13643         (PROMOTE_PROTOTYPES): Remove.
13644
13645 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13646
13647         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
13648
13649 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
13650
13651         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
13652         and MIPS64 have HI/LO interlocks.  Update comment.
13653
13654 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13655
13656         * config/stormy16/stormy16-protos.h: Remove the prototype for
13657         xstormy16_setup_incoming_varargs.
13658         * config/stormy16/stormy16.c
13659         (xstormy16_setup_incoming_varargs): Remove.
13660         (xstormy16_return_in_memory): New.
13661         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13662         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13663         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13664         (TARGET_STRUCT_VALUE_RTX): Likewise.
13665         (TARGET_RETURN_IN_MEMORY): Likewise.
13666         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
13667         (PROMOTE_FUNCTION_RETURN): Likewise
13668         (PROMOTE_PROTOTYPES): Likewise
13669         (RETURN_IN_MEMORY): Likewise
13670         (STRUCT_VALUE): Likewise
13671         (SETUP_INCOMING_VARARGS): Likewise
13672
13673 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
13674
13675         * config/mips/mips.c (mips_offset_within_object_p): New function.
13676         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
13677         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
13678         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
13679
13680 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13681
13682         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
13683         (PROMOTE_FUNCTION_RETURN): Likewise.
13684
13685 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13686
13687         * config/mn10300/mn10300-protos.h: Remove the prototype for
13688         mn10300_builtin_saveregs.
13689         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
13690         (TARGET_STRUCT_VALUE_RTX): Likewise.
13691         (TARGET_RETURN_IN_MEMORY): Likewise.
13692         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13693         (mn10300_return_in_memory): Likewise.
13694         (mn10300_builtin_saveregs): Make it static.
13695         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
13696         (RETURN_IN_MEMORY): Likewise.
13697         (STRUCT_VALUE): Likewise.
13698         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13699
13700 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
13701
13702         PR bootstrap/13853
13703         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
13704
13705 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13706
13707         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
13708         using ccr.
13709
13710 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13711
13712         * config/i860/i860-protos.h: Remove the prototype for
13713         i860_saveregs.
13714         * config/i860/i860.c (i860_saveregs): Make it static.
13715         (i860_struct_value_rtx): New.
13716         (TARGET_STRUCT_VALUE_RTX): Likewise.
13717         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13718         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
13719         I860_STRUCT_VALUE_REGNUM.
13720         (EXPAND_BUILTIN_SAVEREGS): Remove.
13721
13722 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13723
13724         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
13725         (TARGET_RETURN_IN_MEMORY): Likewise.
13726         (m68hc11_struct_value_rtx): Likewise.
13727         (m68hc11_return_in_memory): Likewise.
13728         * config/m68hc11/m68hc11.h: Remove a commented-out definition
13729         of PROMOTE_PROTOTYPES.
13730         (RETURN_IN_MEMORY): Remove.
13731         (STRUCT_VALUE_REGNUM): Likewise.
13732
13733 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13734
13735         * config/mmix/mmix-protos.h: Remove the prototype for
13736         mmix_setup_incoming_varargs.
13737         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13738         (TARGET_STRUCT_VALUE_RTX): Likewise.
13739         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13740         (mmix_setup_incoming_varargs): Make it static.
13741         (mmix_struct_value_rtx): New.
13742         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
13743         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
13744         (STRUCT_VALUE_REGNUM): Remove.
13745         (SETUP_INCOMING_VARARGS): Likewise.
13746
13747 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13748
13749         * config/mips/mips-protos.h: Remove the prototypes for
13750         mips_setup_incoming_varargs and mips_return_in_memory.
13751         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13752         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13753         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13754         (TARGET_STRUCT_VALUE_RTX): Likewise.
13755         (TARGET_RETURN_IN_MEMORY): Likewise.
13756         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13757         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13758         (mips_setup_incoming_varargs): Match the prototype for
13759         TARGET_SETUP_INCOMING_VARARGS.
13760         (mips_return_in_memory): Make it static.  Add argument fntype.
13761         (mips_strict_argument_naming): New.
13762         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
13763         (PROMOTE_FUNCTION_ARGS): Likewise.
13764         (PROMOTE_FUNCTION_RETURN): Likewise.
13765         (STRUCT_VALUE): Likewise.
13766         (RETURN_IN_MEMORY): Likewise.
13767         (SETUP_INCOMING_VARARGS): Likewise.
13768         (STRICT_ARGUMENT_NAMING): Likewise.
13769
13770 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13771
13772         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
13773         (TARGET_RETURN_IN_MEMORY): Likewise.
13774         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13775         (ip2k_return_in_memory): Likewise.
13776         (ip2k_setup_incoming_varargs): Likewise.
13777         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
13778         (STRUCT_VALUE): Likewise.
13779         (STRUCT_VALUE_INCOMING): Likewise.
13780         (SETUP_INCOMING_VARARGS): Likewise.
13781
13782 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13783
13784         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
13785         (TARGET_RETURN_IN_MEMORY): Likewise.
13786         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13787         (avr_return_in_memory): Remove.
13788         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
13789         (STRUCT_VALUE): Likewise.
13790         (STRUCT_VALUE_INCOMING): Likewise.
13791         (STRICT_ARGUMENT_NAMING): Likewise.
13792
13793 2004-01-25  Jan Hubicka  <jh@suse.cz>
13794
13795         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
13796
13797 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
13798
13799         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
13800         (mips_regno_mode_ok_for_base_p): Declare.
13801         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
13802         (FRAME_POINTER_REGNUM): Renumber to 78.
13803         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
13804         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
13805         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
13806         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
13807         (REG_MODE_OK_FOR_BASE_P): Likewise.
13808         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
13809         entry for 77 to "$arg" and entry for 78 to "$frame".
13810         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
13811         (mips_reg_mode_ok_for_base_p): Remove.
13812         (mips_regno_mode_ok_for_base_p): New function, derived from old
13813         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
13814         restrictions unless we're being strict.
13815         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
13816
13817 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13818
13819         * c-common.h: Fix comment typos.
13820         * c-decl.c: Likewise.
13821         * cgraphunit.c: Likewise.
13822         * combine.c: Likewise.
13823         * et-forest.c: Likewise.
13824         * flow.c: Likewise.
13825         * function.c: Likewise.
13826         * ifcvt.c: Likewise.
13827         * integrate.c: Likewise.
13828         * jump.c: Likewise.
13829         * postreload.c: Likewise.
13830         * varray.c: Likewise.
13831
13832 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13833
13834         * doc/frontends.texi: Update copyright.
13835         * doc/gcov.texi: Likewise.
13836         * doc/gty.texi: Likewise.
13837         * doc/sourcebuild.texi: Likewise.
13838         * doc/standards.texi: Likewise.
13839
13840 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
13841
13842         PR target/12978
13843         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
13844         Remove movstrqi_small because it conflicts with movstrqi_large.
13845
13846 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13847
13848         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13849         (TARGET_STRUCT_VALUE_RTX): Likewise.
13850         (cris_struct_value_rtx): Likewise.
13851         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
13852         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
13853         STRUCT_VALUE_REGNUM.
13854         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
13855
13856 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
13857
13858         PR bootstrap/13848
13859         * cse.c (cse_cc_succs): Change the mode of the source expression
13860         as soon as decide we need a new mode.  Don't permit changing modes
13861         if we found a match in a successor block.
13862         (cse_condition_code_reg): Save original mode of source expression
13863         so that we know whether we have to change the mode in other
13864         insns.
13865
13866 2004-01-24  Jan Hubicka  <jh@suse.cz>
13867
13868         * emit-rtl.c (change_address, adjust_address_1, offset_address,
13869         widen_memory_access):  Return early when there is nothing to change.
13870
13871 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
13872
13873         * simplify-rtx.c (simplify_relational_operation): Don't
13874         simplify address == constant into address + -constant == 0.
13875
13876 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13877
13878         * gcc.c (process_command): Don't internationalize the
13879         Copyright message.
13880         * mips-tfile.c (main): Likewise.
13881
13882 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
13883
13884         * cse.c: (cse_cc_succs) Fix comparison warning.
13885
13886 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13887
13888         * config/h8300/h8300.md: Remove extraneous USE in expanders.
13889
13890 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13891
13892         * config/h8300/h8300-protos.h: Provide prototypes for
13893         h8300_legitimate_constant_p and h8300_legitimate_address_p.
13894         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
13895         (h8300_rtx_ok_for_base_p): Likewise.
13896         (h8300_legitimate_address_p): Likewise.
13897         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
13898         h8300_legitimate_constant_p.
13899         (RTX_OK_FOR_BASE_P): Remove.
13900         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
13901
13902 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13903
13904         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
13905         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
13906         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
13907         (REG_OK_FOR_BASE_STRICT_P): Likewise.
13908         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
13909         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
13910         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
13911         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
13912
13913 2004-01-24  Jan Hubicka  <jh@suse.cz>
13914
13915         * cselib.c (remove_useless_values):  Do not access discarded values.
13916
13917 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
13918
13919         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
13920         arrays.
13921
13922 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
13923
13924         * recog.c: Fix a typo in copyright.
13925
13926 2004-01-23  Andrew Pinski  <apinski@apple.com>
13927
13928         * config/rs6000/rs6000.md (call): Fix misappiled patch.
13929         (call_value): Likewise.
13930
13931 2004-01-23  Richard Henderson  <rth@redhat.com>
13932
13933         PR opt/12941
13934         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
13935         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
13936         if SHIFT_COUNT_TRUNCATED is set.
13937
13938 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
13939
13940         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
13941         separate real and imaginary parts.
13942         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
13943
13944 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
13945
13946         PR target/13674
13947         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
13948         loading into GPR.
13949
13950 2004-01-23  Jan Hubicka  <jh@suse.cz>
13951
13952         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
13953         change.
13954
13955         * alloc-pool.c (align_four): Kill.
13956         (create_alloc_pool): Align size to eight.
13957         (free_alloc_pool, free_pool): Invalidate deallocated data.
13958
13959 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
13960
13961         PR gcc/1532
13962         * cse.c (cse_change_cc_mode): New static function.
13963         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
13964         (cse_condition_code_reg): New function.
13965         * rtl.h (cse_condition_code_reg): Declare.
13966         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
13967         * target.h (struct gcc_target): Add fixed_condition_code_regs and
13968         cc_modes_compatible.
13969         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
13970         (TARGET_CC_MODES_COMPATIBLE): Define.
13971         (TARGET_INITIALIZER): Add new initializers.
13972         * targhooks.c (default_cc_modes_compatible): New function.
13973         * targhooks.c (default_cc_modes_compatible): Declare.
13974         * hooks.c (hook_bool_intp_intp_false): New function.
13975         * hooks.h (hook_bool_intp_intp_false): Declare.
13976         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
13977         (TARGET_CC_MODES_COMPATIBLE): Define.
13978         (ix86_fixed_condition_code_regs): New static function.
13979         (ix86_cc_modes_compatible): Likewise.
13980         * doc/tm.texi (Condition Code): Document new hooks.
13981
13982 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13983
13984         * fixinc/inclhack.def (bad_lval): Renamed to ...
13985         (alpha_bad_lval): ... this.
13986         Removed file list.
13987         Restrict to alpha*-dec-osf*.
13988         * fixinc/fixincl.x: Regenerate.
13989         * fixinc/tests/base/dirent.h: Remove, moving test ...
13990         * fixinc/tests/base/testing.h: ... here, reflecting new name.
13991
13992 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
13993
13994         PR c/13814
13995         * c-decl.c (diagnose_mismatched_decls): Also discard a
13996         built-in if we encounter an old-style definition with the
13997         same name.
13998
13999 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
14000
14001         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
14002         set to default{32,64}.
14003
14004 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14005
14006         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
14007         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
14008
14009 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
14010             Olivier Hainque  <hainque@act-europe.fr>
14011
14012         * fold-const.c (fold_binary_op_with_conditional_arg): Only
14013         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
14014
14015 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
14016
14017         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
14018         size for minipool references.
14019
14020 2004-01-23  Roger Sayle  <roger@eyesopen.com>
14021
14022         * real.c (real_floor, real_ceil): Tweak to allow input and output
14023         arguments to overlap.
14024         (real_round): New function to implement round(3m) semantics.
14025         * real.h (real_round): Prototype here.
14026         * builtins.c (fold_builtin_round): New function to constant fold
14027         round, roundf and roundl.
14028         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
14029
14030 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
14031
14032         PR optimization/13819
14033         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
14034         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
14035         (sh_handle_sp_switch_attribute): Remove warning.
14036
14037 2003-11-30  Jan Hubicka  <jh@suse.cz>
14038
14039         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
14040
14041 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
14042
14043         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
14044         may or may not return non-NIL.
14045         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
14046         check CANNOT_CHANGE_MODE_CLASS
14047
14048 2004-01-23  Jan Hubicka  <jh@suse.cz>
14049
14050         * basic-block.h (PROP_POSTRELOAD): New macro.
14051         (CLEANUP_LOG_LINKS): New.
14052         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
14053         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
14054
14055         * cselib.c (value_pool): New.
14056         (new_cselib_val): Use pool.
14057         (cselib_init): Initialize value_pool
14058         (cselib_finish): Free pool.
14059
14060 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
14061
14062         * config/sparc/sparc.c (scan_record_type): New function.
14063         (function_arg_slotno): Use it to determine which kinds of
14064         registers the record can be passed in.
14065
14066 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
14067
14068         * config/pa/fptr.c: Fix old-style definition.
14069
14070 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
14071
14072         PR optimization/13724
14073         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
14074         represents the zero bits produced by a ZERO_EXTEND operation.
14075
14076 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14077
14078         PR optimization/13821
14079         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
14080         correctly calculate the lowpart offset of the contracted subreg.
14081
14082 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
14083
14084         * doc/invoke.texi (Optimize Options): Note that --param arguments
14085         are subject to change without notice.
14086
14087 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14088
14089         * config.gcc (mips-sgi-irix6*o32): Removed.
14090         * config/mips/iris6-o32-as.h: Likewise.
14091         * config/mips/iris6-o32-gas.h: Likewise.
14092         * config/mips/iris6-o32.h: Likewise.
14093
14094 2004-01-22  Jan Hubicka  <jh@suse.cz>
14095
14096         * cfgcleanup.c (first_pass): New static variable.
14097         (try_forward_edges):  Add work limiting check for threading.
14098         (try_crossjump_bb):  Add work limiting check for crossjumping.
14099         (try_optimize_cfg):  Maintain first pass variable.
14100
14101 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
14102
14103         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
14104         handles complex and vector modes.
14105
14106 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14107
14108         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
14109         (REG_OK_FOR_BASE_P_STRICT): Likewise.
14110         (STRICT): Likewise.
14111
14112 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14113
14114         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
14115         (genrtl_for_stmt): Remove emit_nop calls.
14116
14117 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14118
14119         PR target/13713
14120         PR target/13324
14121         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
14122         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
14123         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
14124
14125 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14126
14127         * config/arm/arm.c: Include "debug.h".
14128         (thumb_pushpop): Take two new arguments.  Add some commentary.
14129         Output frame information when pushing.
14130         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
14131         thumb_pushpop.
14132         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
14133         offset, and pass it to thumb_pushpop.  Output CFI information.
14134         (thumb_expand_prologue): Add some frame-related markers and notes.
14135
14136 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
14137
14138         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
14139         for TARGET_64BIT.
14140         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
14141         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
14142
14143 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14144             Paolo Bonzini  <bonzini@gnu.org>
14145
14146         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
14147         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
14148         * rtl.h (subreg_lsb_1): Prototype here.
14149         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
14150         sign extensions.
14151
14152 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14153
14154         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
14155         macro need not be defined if jump-tables should contain
14156         relative addresses only when -fPIC or -fPIC is in effect.
14157
14158 2004-01-22  Jan Hubicka  <jh@suse.cz>
14159
14160         * alias.c (reg_base_value): Turn into varray.
14161         (reg_base_value_size): Kill.
14162         (old_reg_base_value): New deletable varray.
14163         (alias_invariant_size): New variable.
14164         (REG_BASE_VALUE): Update to use varray.
14165         (find_base_value): Likewise.
14166         (record_set): Likewise.
14167         (record_base_value): Likewise.
14168         (memrefs_conflict_p): Likewise.
14169         (record_set): Likewise
14170         (record_base_value): Likewise.
14171         (memrefs_conflict_p): Use alias_invariant_size.
14172         (init_alias_analysis): Use varray; set alias_invariant_size;
14173         rescale other arrays to be sized by maxreg.
14174         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
14175
14176 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14177
14178         * config/sparc/sparc.c (function_arg_slotno): Use
14179         FLOAT_TYPE_P to detect FP fields in structures.
14180         (function_arg_record_value_1): Likewise.
14181         (function_arg_record_value_2): Likewise.
14182
14183 2004-01-22  Jan Hubicka  <jh@suse.cz>
14184
14185         * function.c (allocate_struct_function): Do not initialize expr, emit
14186         and varasm.
14187         (prepare_function_start): Do it here.
14188         * c-parse.in (maybe_type_qual): Do not produce line number notes.
14189
14190 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14191
14192         PR target/13559
14193         * config/sparc/sparc.c (function_arg_record_value_3): Revert
14194         to 'word_mode' once the first slot has been filled.
14195
14196 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
14197
14198         * config/sparc/sparc.c (function_arg_record_value_1): Fix
14199         computation of the number of integer registers required.
14200
14201 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14202
14203         * config/i386/i386.md: Simplify certain comparisons of
14204         const_int.
14205
14206 2004-01-21  Andrew Pinski  <apinski@apple.com>
14207
14208         PR target/13785
14209         * config/rs6000/rs6000.md (call_value): Force operand
14210         1 not operand 0 into a register.
14211
14212 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14213
14214         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
14215         unwind-dw2-fde.h: Update copyright.
14216
14217 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14218
14219         * pa-protos.h: Update copyright.
14220         * pa.h: Likewise.
14221         * pa.md: Likewise.
14222
14223 2004-01-21  Caroline Tice  <ctice@apple.com>
14224
14225         PR target/12308
14226         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
14227         flags register.
14228         (fix_truncdfdi2): Likewise.
14229         (fix_truncsfdi2): Likewise.
14230         (*fix_truncdi_1): Likewise.
14231         (fix_truncxfsi2): Likewise.
14232         (fix_truncdfsi2): Likewise.
14233         (fix_truncsfsi2): Likewise.
14234         (*fix_truncsi_1): Likewise.
14235         (fix_truncxfhi2): Likewise.
14236         (fix_truncdfhi2): Likewise.
14237         (fix_truncsfhi2): Likewise.
14238         (*fix_trunchi_1): Likewise.
14239
14240 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14241
14242         * alias.c, basic-block.h, c-common.c, c-common.h,
14243         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
14244         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
14245         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
14246         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
14247         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
14248         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
14249         genautomata.c, genconditions.c, genemit.c, genflags.c,
14250         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
14251         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
14252         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
14253         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
14254         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
14255         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
14256         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
14257         unwind.h, varray.c, varray.h: Update copyright.
14258
14259 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14260
14261         * config/h8300/coff.h: Update copyright.
14262         * config/h8300/elf.h: Likewise.
14263         * config/h8300/h8300-protos.h: Likewise.
14264         * config/h8300/h8300.c: Likewise.
14265         * config/h8300/h8300.h: Likewise.
14266         * config/h8300/h8300.md: Likewise.
14267
14268 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14269
14270         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
14271         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
14272         ultrix_unistd): New hacks.
14273         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
14274         ULTRIX_CONST2_CHECK): Add checks.
14275         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
14276         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
14277         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
14278         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
14279         * fixinc/tests/base/locale.h: New file.
14280         * fixinc/fixincl.x: Rebuilt.
14281
14282 2004-01-21  Andreas Jaeger  <aj@suse.de>
14283             Michael Matz  <matz@suse.de>
14284
14285         * doc/extend.texi (Extended Asm): Clarify memory clobber.
14286
14287 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14288
14289         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
14290         _Jv_RegisterClasses through a function pointer.
14291
14292 2004-01-21  Falk Hueffner  <falk@debian.org>
14293
14294         PR target/12898
14295         * config/alpha/alpha.c (alpha_emit_set_const_1): If
14296         no_new_pseudos, use gen_rtx_SET directly for SImode constants
14297         which need multiple instructions to emit.
14298
14299 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
14300
14301         * config/m32r/m32r.h (CPP_SPEC): Define.
14302
14303 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
14304
14305         * c-decl.c (merge_decls): Kill different_binding_level and
14306         different_tu arguments; simplify throughout.
14307         (duplicate_decls): Likewise.
14308         (pushdecl, merge_translation_unit_decls): Update calls to
14309         duplicate_decls.
14310
14311 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14312
14313         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
14314         $(SYSTEM_H).
14315         (print-rtl1.o): Depend on $(SYSTEM_H).
14316
14317 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14318
14319         PR bootstrap/12730
14320         * configure.ac: Delete definition and subsitution of docdir.
14321         Add info, man, srcman and srcinfo to target hooks. Create doc/
14322         directory.
14323         * configure: Regenerate.
14324         * Makefile.in: Don't substitute docdir and delete all references
14325         throughout.
14326         (MAKEINFOFLAGS): Define.
14327         (stmp-docobjdir): Delete.
14328         (INFOFILES, MANFILES): Define.
14329         (info): Call lang.info, srcinfo and lang.srcinfo.
14330         (generated-manpages): Call lang.man, srcman and lang.srcman.
14331         (srcinfo, srcman): New rules to copy back files to source directory.
14332         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
14333         (install-man): Revamp rule.
14334         (clean): Update dvi directory.
14335         (distclean): Delete TAGS from front end directorys.
14336         (maintainer-clean): Delete all document files in source directory.
14337
14338         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
14339         (objc.srcman, objc.srcinfo): Likewise.
14340
14341 2004-01-20  Bruce Korb  <bkorb@gnu.org>
14342
14343         * fixinc/inclhack.def(math_exception): bypass only for glibc.
14344         (matherr_decl): rename & relocate as exception_structure.
14345         This fix must precede the math_exception fix.
14346
14347 2004-01-20  Roger Sayle  <roger@eyesopen.com>
14348
14349         * fold-const.c (fold_convert): Rename to fold_convert_const.
14350         (fold_convert_const): Change arguments to take a tree_code,
14351         a type and the operand/expression to be converted.  Return
14352         NULL_TREE if no simplification is possible.  Add support for
14353         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
14354         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
14355         Adjust call to fold_convert to match new fold_convert_const.
14356         Avoid modifying the tree passed to fold in-place.
14357
14358 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
14359
14360         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
14361         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
14362         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
14363
14364 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14365
14366         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
14367         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
14368         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
14369         (emit_move_sequence): Check scratch_reg first in various if statements.
14370         Extend source simplification to handle all 64-bit CONST_INTs.
14371         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
14372         frame size.
14373         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
14374         frame offset calculations.
14375         * pa.h (NEW_HP_ASSEMBLER): Add comment.
14376         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
14377         LEGITIMATE_64BIT_CONST_INT_P): Define.
14378         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
14379         any CONST_INT as legitimate during and after reload.
14380         (VAL_32_BITS_P, INT_32_BITS): Define.
14381         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
14382
14383 2004-01-20  Jan Hubicka  <jh@suse.cz>
14384
14385         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
14386         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
14387         containing hard regs are shared.
14388         (gen_hard_reg_clobber): New function.
14389         (hard_reg_clobbers): New array.
14390         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
14391         (copy_rtx): Do not copy clobbers containing hard regs.
14392         * rtl.h (gen_hard_reg_clobber): Declare.
14393
14394 2004-01-20  Jan Hubicka  <jh@suse.cz>
14395
14396         * varray.c:  Include hashtab.h
14397         (varray_descriptor): New structure.
14398         (hash_descriptor, eq_descriptor, varray_descriptor,
14399         print_statistics): New static functions
14400         (varray_init, varray_grow): Update statistics
14401         (dump_varray_statistics): New function.
14402         * varray.h (dump_varray_statistics): Declare.
14403         * toplev.c (finalize): Call it.
14404         * Makefile.in (varray.o): Add dependency.
14405
14406 2004-01-20  Jan Hubicka  <jh@suse.cz>
14407
14408         * cselib.c: Include alloc-pool.h
14409         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
14410         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
14411         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
14412         unchain_one_elt_loc_list_pool, unchain_one_value,
14413         new_cselib_val): Simplify using allocpool.
14414         (cselib_init): Initialize allocpools.
14415         (cselib_finish): Finish allocpools.
14416         * Makefile.in (cselib.o): Depend on alloc-pool.h
14417
14418 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
14419
14420         * config/mips/mips.c (mips_load_call_address): Make the call insn
14421         use $gp if it could be calling a lazy binding stub.
14422
14423 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
14424
14425         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
14426         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14427         (TARGET_STRUCT_VALUE_RTX): Likewise.
14428         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
14429         (PROMOTE_FUNCTION_RETURN): Remove.
14430         (STRUCT_VALUE): Remove.
14431
14432 2004-01-20  Denis Chertykov  <denisc@overta.ru>
14433
14434         PR bootstrap/13735
14435         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
14436         register as pointer after reload.
14437
14438 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14439
14440         PR optimization/12440
14441         * loop.c: Include ggc.h.
14442         (loop_optimize): Run garbage collector between optimization of loops.
14443         * Makefile.in (loop.o): Add GGC_H dependency.
14444
14445 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
14446
14447         * gcc/config/rs6000/rs6000.c (function_arg) Handle
14448         vector register special in function without prototype.
14449         (function_arg_advance): Vector parameters get always
14450         GPRs allocated for the linux64 target.
14451
14452 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14453
14454         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
14455         not TARGET_M32RX_MASK.
14456
14457 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
14458
14459         PR target/13557
14460         * config/sparc/sparc.c (function_arg): Reorder the cases.
14461
14462 2004-01-19  Per Bothner  <per@bothner.com>
14463
14464         Move cpp_reader's line_maps field to a shared global.
14465         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
14466         and change the type to a pointer rather than a struct.
14467         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
14468         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
14469         Likewise.
14470         * cppfiles.c (validate_pch):  Likewise.
14471         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
14472         Likewise.
14473         * cpperror.c (print_location):  Likewise.
14474         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
14475         * cppinit.c (cpp_create_reader):  Handle new parameter.
14476         (cpp_destroy):  Don't free line_maps - that's no longer our job.
14477         * input.h (line_table):  New variable.
14478         * toplev.c (line_table):  Declare variable.
14479         (general_init):  Initialize line_table.
14480         * c-opts.c (c_common_init_options):  Pass line_table to
14481         cpp_create_reader.
14482         * fix-header.c (read_scan_file):  New local variable line_table.
14483         Initialize, and pass it to cpp_create_reader.
14484         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
14485         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
14486
14487 2004-01-19  Per Bothner  <per@bothner.com>
14488
14489         Implement a cache for linemap_lookup.
14490         * line-map.h (struct_line_maps):  Add cache field.
14491         * line-map.c (linemap_init):  Zero cache field.
14492         (linemap_add):  Set cache field to offset of newly allocated map.
14493         (linemap_lookup):  Use and set cache field.
14494
14495 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14496
14497         PR optimization/13567
14498         * cse.c (cse_basic_block): Call cse_insn with a non-null
14499         libcall_insn for the last SET insn of a no-confilict block.
14500
14501 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14502
14503         * Makefile.in (target_noncanonical, program_transform_name): Use
14504         immediate define instead of deferred.
14505         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
14506         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
14507         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
14508         deferred backquote.
14509
14510 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
14511
14512         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
14513         true unconditionally.
14514         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
14515         Remove.
14516         (build_unary_op, build_modify_expr): Don't handle extended
14517         lvalues.
14518         (build_component_ref, build_conditional_expr): Call non_lvalue
14519         instead of pedantic_non_lvalue.
14520         (build_c_cast): Don't condition use of non_lvalue on pedantic.
14521         * fold-const.c (fold): Don't check pedantic directly for
14522         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
14523         passed to pedantic_non_lvalue.
14524         * doc/extend.texi: Remove documentation of extended lvalues.
14525
14526 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14527
14528         PR optimization/5263
14529         * simplify-rtx.c (associative_constant_p): Delete.
14530         (simplify_associative_operation): Rewrite to linearize terms, and
14531         attempt to simplify new term against both left and right subterms.
14532         (simplify_binary_operation): Call swap_commutative_operands_p on
14533         op0 and op1, not trueop0 and trueop1.  Move the initialization of
14534         trueop0 and trueop1 down to where first needed.
14535         (simplify_relational_operation): Likewise.
14536         * rtlanal.c (commutative_operand_precedence): Also order constant
14537         operands using avoid_constant_pool_reference.
14538
14539 2004-01-19  Richard Henderson  <rth@redhat.com>
14540
14541         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
14542         don't check memory mode.
14543         (unaligned_memory_operand): Likewise.
14544         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
14545         abort for op0 not MEM.
14546
14547         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
14548         is not a reg, copy to a scratch first.
14549         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
14550         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
14551         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
14552         (reload_inqi, reload_inhi): Fix mode of op0.
14553         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
14554         reload_outhi_help): Likewise.  Use define_insn_and_split.
14555
14556         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
14557         as well as $29 dead.
14558
14559 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
14560
14561         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
14562         "tls_object" for thread-local objects.
14563         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
14564         "#tls" for thread-local sections.
14565         * configure.ac (thread-local checks): Specify --fatal-warnings in
14566         every binutils-specific checks.  For sparc*-*-*, test whether the
14567         OS is Solaris and the tools are native and act accordingly.
14568         * configure: Rebuild.
14569
14570 2004-01-19  Jeff Law  <law@redhat.com>
14571
14572         * contrib.texi: Update Paolo Carlini's entry.  New entries for
14573         Jerry Quinn and Petur Runolfsson.
14574
14575 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14576
14577         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
14578         size, don't use the larger zero-extending loads.
14579
14580 2004-01-19  Richard Henderson  <rth@redhat.com>
14581
14582         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
14583         * alpha.md (UNSPEC_NT_LDA): Remove.
14584         (UNSPEC_CVTLQ, cvtlq): New.
14585         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
14586         (extendsidi2_fix): Remove.
14587         (extendsidi2 splitter): Use cvtlq.
14588         (extendsidi2 fp peepholes): Remove.
14589         (cvtql): Use SFmode instead of SImode.
14590         (fix_trunc?fsi): Update to match.
14591         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
14592         (movsi): Rename from movsi_nofix, remove f alternatives.
14593         (movsi_nt_vms): Similarly.
14594         (movsi_fix, movsi_nt_vms_fix): Remove.
14595         (nt_lda): Remove.
14596         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
14597
14598 2004-01-19  Jan Hubicka  <jh@suse.cz>
14599
14600         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
14601         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
14602         list.
14603         (cgraph_remove_unreachable_nodes): New function
14604         (cgraph_decide_inlining_of_small_function): Fix pasto.
14605         (cgraph_decide_inlining_incrementally): Fix pasto.
14606         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
14607
14608 2004-01-19  Steven Bosscher  <stevenb@suse.de>
14609
14610         * gengtype.c (header_file): Make it static.
14611         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
14612         * gengtype.h (header_file): No longer extern.
14613
14614 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14615
14616         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
14617         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
14618         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
14619
14620 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14621
14622         * stmt.c (HAVE_casesi): Define it not already defined.
14623         (HAVE_tablejump): Likewise.
14624         (expand_end_case_type): Resort to the binary tree method if
14625         neither casesi or tablejump is available.
14626
14627 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
14628
14629         * final.c (final_scan_insn): Make non-static again.
14630         * output.h (final_scan_insn): Re-add prototype.
14631         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
14632         to final_scan_insn call.
14633         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
14634         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
14635         * config/pa/pa.c (output_lbranch, output_call): Likewise.
14636         * config/sh/sh.c (print_slot): Likewise.
14637         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
14638         (output_sibcall, sparc_flat_function_epilogue): Likewise.
14639
14640 2004-01-18  Jan Hubicka  <jh@suse.cz>
14641
14642         * basic-block.h (try_redirect_by_replacing_jump): Declare.
14643         * cfgcleanup.c (try_optimize_cfg): Use it.
14644         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
14645         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
14646         Kill hack.
14647         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
14648
14649         Revert:
14650         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14651
14652                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
14653                 even after reload, just don't remove the actual jump tables.
14654
14655 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14656
14657         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
14658
14659 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14660
14661         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
14662         the size of a pointer in bytes.
14663
14664 2004-01-18  Roger Sayle  <roger@eyesopen.com>
14665
14666         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
14667         live "next" variable, which could lead to an infinite loop.
14668
14669 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
14670
14671         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
14672         block.
14673
14674         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14675         Check for NULL in the chain and remove repeated code.
14676
14677 2004-01-18  Jan Hubicka  <jh@suse.cz>
14678
14679         * coverage.c (checksum_string): Rename to ...
14680         (coverage_checksum_string): ... this one, Use crc32_string; recognize
14681         names containing random number and zero the number out in order to get
14682         match.
14683
14684 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
14685
14686         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
14687
14688 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14689
14690         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
14691         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
14692         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
14693         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
14694         doc/trouble.texi: Remove trailing whitespace.
14695
14696 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
14697
14698         PR target/7618
14699         * config/mips/mips.c: Include cfglayout.h.
14700         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
14701         (mips_unspec_offset_high): Add temporary register argument.
14702         (mips_load_call_address): New function, split out from...
14703         (mips_expand_call): ...here.
14704         (mips_output_cplocal): New function.
14705         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
14706         (mips_emit_loadgp): New function, split out from...
14707         (mips_expand_prologue): ...here.
14708         (mips_output_mi_thunk): New function.
14709
14710 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
14711
14712         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
14713         mcpu32): Remove redundant checks for implied target predefines.
14714
14715 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
14716
14717         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14718         Return type is unsigned int not int.
14719         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
14720         Likewise.
14721
14722 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14723
14724         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
14725         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
14726         "GNU/Linux" and "Microsoft Windows" terminology.
14727
14728 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14729
14730         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
14731         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
14732         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
14733         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
14734         @smallexample instead of @example.
14735
14736 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
14737
14738         * objc/objc-act.c (build_objc_method_call): Use target
14739         hooks instead of macros to determine if ..._stret
14740         dispatchers should be used (NeXT runtime only).
14741
14742 2004-01-17  Roger Sayle  <roger@eyesopen.com>
14743
14744         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
14745         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
14746
14747 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
14748
14749         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
14750         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
14751         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
14752         macros.
14753         * reload1.c (emit_reload_insns): Use them.
14754         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
14755         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
14756         for NULL PATTERN.
14757
14758 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
14759
14760         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
14761         (final_scan_insn): Update to take an additional SEEN argument.  Emit
14762         a line note after the prologue.  Make static.
14763         (line_note_exists): Remove.
14764         (final): Don't initialize line_note_exists.  Update call to
14765         final_scan_insn.
14766         * output.h (final_scan_insn): Remove prologue.
14767         * function.c (set_insn_locators): Update comment.
14768         (thread_prologue_and_epilogue_insns): Add a comment.
14769
14770 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
14771
14772         PR target/10781
14773         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
14774         Prototype.
14775         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14776         New function.
14777         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
14778         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
14779         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
14780
14781 2004-01-17  Jan Hubicka  <jh@suse.cz>
14782
14783         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
14784         commit.
14785
14786         * toplev.c (HAVE_conditional_execution): Provide default.
14787         (rest_of_handle_reorder_blocks): For conditional_execution target
14788         update liveness once after all transformations
14789         (rest_of_compilation): Do crossjumping before ce3.
14790
14791 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
14792
14793         * alias.c (new_alias_set): Mark last_alias_set for PCH.
14794         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
14795         for PCH.
14796         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
14797         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
14798         (get_TOC_alias_set): Mark 'set' for PCH.
14799
14800 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14801
14802         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
14803         even after reload, just don't remove the actual jump tables.
14804
14805 2004-01-17  J. Brobecker  <brobecker@gnat.com>
14806
14807         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
14808         Remove checks for is_ada() and TREE_UNSIGNED.
14809         (subrange_type_die): Emit a byte_size attribute if the subrange
14810         type size is different from the base type size.
14811         (modified_type_die): Replace call to is_ada_subrange_type() by
14812         call to is_subrange_type().
14813
14814 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
14815
14816         * config/sh/sh.c: Include ggc.h.
14817
14818 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14819
14820         * Makefile.in (MD5_H): New.
14821         (fold-const.o): Depend on md5.h.
14822         (dwarf2out.o): Likewise.
14823         (cppfiles.o): Likewise.
14824         * cppfiles.c: Include md5.h.
14825         (should_stack_file): Check against list read from PCH file.
14826         (struct pchf_data): New.
14827         (pchf): New variable.
14828         (struct pchf_adder_info): New.
14829         (pchf_adder): New.
14830         (pchf_save_compare): New.
14831         (_cpp_save_file_entries): New.
14832         (_cpp_read_file_entries): New.
14833         (struct pchf_compare_data): New.
14834         (pchf_compare): New.
14835         (check_file_against_entries): New.
14836         * cpphash.h (_cpp_save_file_entries): Prototype.
14837         (_cpp_read_file_entries): Prototype.
14838         * cpppch.c (cpp_write_pch_state): Write the list of headers.
14839         (cpp_read_state): Read the list of headers.
14840
14841 2004-01-17  Jan Hubicka  <jh@suse.cz>
14842
14843         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
14844         builtin_expect specially.
14845         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
14846         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
14847         * invoke.texi (max-inline-insns-single): Set to 100.
14848         (large-function-insns): Set to 3000.
14849
14850 2004-01-16  Eric Christopher  <echristo@redhat.com>
14851             Chandrakala Chavva <cchavva@redhat.com>
14852
14853         * cppcharset.c (one_iso88591_to_utf8): New function.
14854         (convert_iso88591_utf8): Ditto. Use.
14855         (conversion_tab): Use.
14856         (_cpp_input_to_utf8): New function.
14857         (_cpp_init_iconv_buffer): Ditto.
14858         (_cpp_close_iconv_buffer): Ditto.
14859         * cpphash.h: Prototype new functions.
14860         (cpp_buffer): Add input_cset_desc.
14861         * cppinit.c: Add input_charset default.
14862         * cpplib.c (cpp_push_buffer): Support init and
14863         close of iconv.
14864         * cpplib.h (cpp_options): Add input_charset.
14865
14866 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14867
14868         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
14869         * config/alpha/unicosmk.h: Remove a commented-out definition
14870         of ASM_OUTPUT_SECTION_NAME.
14871         * config/stormy16/stormy16.h: Likewise.
14872
14873 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14874
14875         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
14876         (alpha___extern_prefix_sys_stat): ... this.
14877         Apply to <sys/mount.h>, too.
14878         Tweak to match more variations.
14879         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
14880
14881         * fixinc/inclhack.def (alpha___extern_prefix,
14882         alpha___extern_prefix_standards): New hacks to obey
14883         __PRAGMA_EXTERN_PREFIX.
14884         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
14885         test.
14886         * fixinc/tests/base/standards.h: Likewise.
14887
14888         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
14889         variations.
14890         New testcase.
14891         * fixinc/tests/base/pthread.h: Handle it.
14892
14893         * fixincl/inclhack.def (bad_lval): Sort file list.
14894         Add many missing files up to Tru64 UNIX V5.1B.
14895         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
14896         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
14897         order.
14898
14899         * fixinc/fixincl.x: Regenerate.
14900
14901 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
14902
14903         * version.c (version_string): Change to 3.5.0.
14904         * doc/include/gcc-common.texi (version-GCC): Likewise.
14905
14906 2004-01-16  Jan Hubicka  <jh@suse.cz>
14907
14908         * i386.md (load_tp_di): Fix pasto.
14909
14910         PR opt/13608
14911         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
14912
14913         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
14914         pp_c_character_constant, pp_c_floating_constant,
14915         pp_c_additive_expression, pp_c_shift_expression,
14916         pp_c_equality_expression, pp_c_and_expression,
14917         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
14918         pp_c_logical_and_expression): Remove inline modifier.
14919         * dwarf2out.c (get_AT): Likewise.
14920         * et-forest.c (et_splay): Likewise.
14921         * ra.h (ra_alloc, ra_calloc): Likewise
14922
14923 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14924
14925         * config/frv/frv-protos.h: Fix comment formatting.
14926         * config/frv/frv.c: Likewise.
14927         * config/frv/frv.h: Likewise.
14928         * config/frv/frv.md: Likewise.
14929         * config/frv/frvbegin.c: Likewise.
14930         * config/frv/frvend.c: Likewise.
14931
14932 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14933
14934         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
14935         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
14936         LINKER_DOES_NOT_WORK_WITH_DWARF2.
14937         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
14938
14939 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
14940
14941         PR 11864
14942         * postreload.c (reload_cse_simplify_operands): Don't remove
14943         implicit extension from LOAD_EXTEND_OP.
14944
14945 2004-01-16  Jan Hubicka  <jh@suse.cz>
14946
14947         PR opt/11350
14948         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
14949         after reload.
14950         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
14951         rtl_try_redirect_by_replacing_branch): Likewise.
14952
14953 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
14954
14955         PR pch/13689
14956         * alias.c (struct alias_set_entry): Mark for GC.
14957         (alias_sets): Make static, mark for GC.
14958         (record_alias_subset): Use GC to allocate alias structures.
14959         * varray.c (element): Make generic varrays GCed.
14960
14961         PR pch/13361
14962         * c-typeck.c (constructor_asmspec): Delete.
14963         (struct initializer_stack): Delete field 'asmspec'.
14964         (start_init): Delete saving of asmspec.
14965         (finish_init): Don't update constructor_asmspec.
14966         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
14967         * stmt.c (expand_asm): Duplicate strings from tree.
14968         (expand_asm_operands): Likewise.
14969         * tree.c (tree_size): Update computation of size of STRING_CST.
14970         (make_node): Don't make STRING_CST nodes.
14971         (build_string): Allocate string with tree node.
14972         * tree.def (STRING_CST): Update comment.
14973         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
14974         (tree_string): Place contents of string in tree node.
14975         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
14976         from tree.
14977
14978         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
14979         altivec operands.
14980
14981 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14982
14983         * c-common.h: Fix comment formatting.
14984         * c-cppbuiltin.c: Likewise.
14985         * c-pragma.c: Likewise.
14986         * calls.c: Likewise.
14987         * collect2.c: Likewise.
14988         * cppcharset.c: Likewise.
14989         * cpptrad.c: Likewise.
14990         * dbxout.c: Likewise.
14991         * defaults.h: Likewise.
14992         * dwarf2out.c: Likewise.
14993         * fold-const.c: Likewise.
14994         * genautomata.c: Likewise.
14995         * genconditions.c: Likewise.
14996         * genflags.c: Likewise.
14997         * gengtype.c: Likewise.
14998         * integrate.c: Likewise.
14999         * loop.c: Likewise.
15000         * predict.c: Likewise.
15001         * sdbout.c: Likewise.
15002
15003 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
15004
15005         * config/ia64/ia64.md (*movti_internal): C output template
15006         extracted to ia64.c.
15007         (*movti_internal_reg): Delete.
15008         (reload_inti, reload_outti): Use the correct mode on operand 2
15009         in the first place, don't fix it up in the output template.
15010         (movtf, reload_ointf, reload_outtf): New expanders.
15011         (*movtf_internal): New define_insn_and_split.
15012         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
15013         make static; do not hand TFmode CONST_DOUBLEs to split_double.
15014         (ia64_split_tmode_move): New function, body mostly pulled
15015         from ia64.md:*movti_internal.
15016         (ia64_function_arg_words): New function, extracted common
15017         logic from ia64_function_arg et seq.
15018         (ia64_function_arg_offset): Likewise.  Handle correctly the
15019         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
15020         (ia64_function_arg, ia64_function_arg_partial_nregs)
15021         (ia64_function_arg_advance): Use ia64_function_arg_words and
15022         ia64_function_arg_offset.
15023         (ia64_function_value): TCmode does not go in float regs.
15024         (ia64_secondary_reload_class): Also handle TFmode.
15025         * config/ia64/ia64-protos.h: Remove prototype for
15026         ia64_split_timode; add prototype for ia64_split_tmode_move.
15027
15028 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15029
15030         * Makefile.in (MAINT): Make it an immediate assignment.
15031
15032 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15033
15034         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
15035
15036 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15037
15038         * config/h8300/coff.h: Replace Hitachi with Renesas.
15039         * config/h8300/elf.h: Likewise.
15040         * config/h8300/h8300-protos.h: Likewise.
15041         * config/h8300/h8300.c: Likewise.
15042         * config/h8300/h8300.h: Likewise.
15043         * config/h8300/h8300.md: Likewise.
15044         * config/h8300/lib1funcs.asm: Likewise.
15045
15046 2004-01-15  Andrew Pinski  <apinski@apple.com>
15047
15048         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
15049         around it.
15050
15051 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15052
15053         * config/h8300/h8300.c (h8300_return_in_memory): New.
15054         (TARGET_STRUCT_VALUE_RTX): Likewise.
15055         (TARGET_RETURN_IN_MEMORY): Likewise.
15056         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
15057         (RETURN_IN_MEMORY): Likewise.
15058
15059 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15060
15061         PR optimization/13375
15062         * gcse.c (handle_avail_expr): Just return if the source is not a
15063         single set.
15064
15065 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15066             Daniel Jacobowitz  <drow@mvista.com>
15067
15068         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
15069         (EQUIV): Define.
15070         (ARM_FUNC_ALIAS): New macro.
15071         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
15072         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
15073
15074 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15075
15076         PR optimization/12372
15077         * calls.c (expand_call): Add call_fusage data for stack arguments in
15078         constant calls.
15079
15080 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
15081
15082         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
15083         (rs6000_elf_declare_function_name): Formatting.
15084         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
15085
15086 2004-01-15  Jan Hubicka  <jh@suse.cz>
15087
15088         PR bootstrap/13692
15089         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
15090         previous patch.
15091
15092 2004-01-15  Richard Henderson  <rth@redhat.com>
15093
15094         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
15095         integer regs of the same call-savedness.
15096
15097 2004-01-15  Andreas Schwab  <schwab@suse.de>
15098
15099         PR bootstrap/13562
15100         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
15101         status for NOTB/NOTW/NEGW methods.
15102
15103 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15104
15105         * doc/invoke.texi: Update dump file names.  Fix a typo.
15106
15107 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15108
15109         * builtins.c (expand_builtin_va_end): Don't use
15110         EXPAND_BUILTIN_VA_END.
15111         * system.h (EXPAND_BUILTIN_VA_END): Poison.
15112         * config/d30v/d30v.h: Remove a commented-out definition of
15113         EXPAND_BUILTIN_VA_END.
15114         * config/stormy16/stormy16.h: Likewise.
15115
15116 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15117
15118         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
15119         * targhooks.c (default_struct_value_rtx): Don't use
15120         STRUCT_VALUE_INCOMING_REGNUM.
15121
15122 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15123
15124         PR bootstrap/12744
15125         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
15126         GENINSRC and not parsedir.  Define srcextra as a langhook.
15127         * configure: Regenerate.
15128         * Makefile.in: Suppress default .l.c rule.  Don't substitute
15129         parsedir and delete all references throughout.  Conditionally define
15130         rule for srcextra dependent on GENINSRC.
15131         (stmp-docobjdir): Delete.
15132         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
15133         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
15134         and gengtype-yacc.h back to source directory.
15135         (maintainer-clean): Delete all parse files in source directory.
15136         (distclean): Delete generated files.
15137
15138         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
15139         (objc-parse.c, objc-parse.y): Don't use parsedir.
15140         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
15141         directory if requested.
15142         (po-generated): Don't use parsedir.
15143         (objc.maintainer-clean): Delete above files from source directory.
15144
15145 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15146
15147         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
15148
15149 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15150
15151         * doc/tm.texi: Replace RETURN_IN_MEMORY with
15152         TARGET_RETURN_IN_MEMORY.
15153
15154 2004-01-15  Jan Hubicka  <jh@suse.cz>
15155
15156         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
15157         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
15158         functions accepting SSE arguments
15159         (function_arg): Warn only when asked to warn.
15160         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
15161
15162 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
15163
15164         * c-parse.in (stmts_and_decls): Make label at end of compound
15165         statement a hard error.
15166
15167 2004-01-14  Jan Hubicka  <jh@suse.cz>
15168
15169         * cgraph.c (create_edge): Use local.redefined_extern_inline.
15170         * cgraph.h (cgraph_local_info): Sort fields by size; add
15171         redefined_extern_inline
15172         (cgraph_global_info): Sort fields by size.
15173         (cgraph_node): Likewise.
15174         * cgraphunit.c (cgraph_finalize_function): Se
15175         local.redefined_extern_inline on redefinition.
15176         (cgraph_analyze_function): Use it; fix formating.
15177
15178 2004-01-14  Jan Hubicka  <jh@suse.cz>
15179
15180         PR c++/10776
15181         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
15182         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
15183         bitmaps
15184         (cache_size): New variable
15185         (add_dependence): Update use; canonize early memory locations
15186         (sched_analyze_1): Likewise.
15187         (sched_analyze_2): Likewise.
15188         (init_dependency_caches): Initialize bitmaps.
15189         (free_dependency_caches): Free bitmaps
15190
15191 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15192
15193         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
15194         targetm.calls.strict_argument_naming().
15195         * target.h: Likewise.
15196
15197 2004-01-14  Richard Henderson  <rth@redhat.com>
15198
15199         PR debug/13231
15200         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
15201         instructions.
15202
15203 2004-01-14  Richard Henderson  <rth@redhat.com>
15204
15205         PR c++/12491
15206         * except.c (struct eh_region): Add u.fixup.resolved.
15207         (resolve_one_fixup_region): Split out from ...
15208         (resolve_fixup_regions): ... here.
15209
15210 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15211
15212         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
15213
15214 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15215
15216         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
15217         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
15218         (STRUCT_VALUE): Remove.
15219
15220 2004-01-14  Steven Bosscher  <stevenb@suse.de>
15221
15222         * system.h: Poison PROMOTED_MODE
15223         * integrate.c (expand_inline_function): Don't mention the
15224         PROMOTED_MODE.
15225         * loop.c (update_giv_derive): Same.
15226         * tree.h (DECL_RTL): Same.
15227
15228 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
15229
15230         PR target/9365
15231         * sh.c (gen_block_redirect): Add special handling of RETURN.
15232         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
15233         far branch target (i.e. it's a return).
15234
15235 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15236
15237         * regrename.c (find_oldest_value_reg): Fix a warning.
15238
15239 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15240
15241         PR bootstrap/12527
15242         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
15243         Move linux-gas.h and linux-elf.h before aout.h.
15244         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
15245         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
15246
15247 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15248
15249         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
15250         (CONST_INT, VOIDmode, ...).
15251
15252 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15253
15254         * regrename.c (find_oldest_value_reg): If the replacement uses
15255         multiple hard registers, check that all of them are in CLASS.
15256
15257 2004-01-14  Jan Hubicka  <jh@suse.cz>
15258
15259         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
15260         impossible.
15261
15262 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
15263
15264         * Makefile.in: Define MAINT from --enable-maintainer-mode.
15265
15266 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
15267
15268         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
15269         Calculate always vrsave_mask if TARGET_ALTIVEC.
15270         (rs6000_emit_prologue): Emit code for vrsave
15271         only if TARGET_ALTIVEC_VRSAVE.
15272         (rs6000_emit_epilogue): Likewise.
15273
15274 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
15275
15276         * config/sparc/sparc.md (tie_add32): Fix pasto.
15277         (tie_add64): Likewise.
15278
15279 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15280
15281         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
15282
15283 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15284
15285         * config/iq2000/iq2000-protos.h: Fix comment formatting.
15286         * config/iq2000/iq2000.c: Likewise.
15287         * config/iq2000/iq2000.md: Likewise.
15288
15289 2004-01-14  J. Brobecker  <brobecker@gnat.com>
15290
15291         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
15292         (subrange_type_die): Add handle for nameless subrange types.
15293
15294 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15295
15296         * config/h8300/h8300-protos.h: Replace do_movsi with
15297         h8300_expand_movsi.
15298         * config/h8300/h8300.c (do_movsi): Change to
15299         h8300_expand_movsi.
15300         * config/h8300/h8300.md (movsi): Replace do_movsi with
15301         h8300_expand_movsi.
15302         (movsf): Likewise.
15303
15304 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15305
15306         * config/h8300/h8300.c (dosize): Change to
15307         h8300_emit_stack_adjustment.  Update callers.
15308
15309 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15310
15311         * config/h8300/h8300.md (movstrictqi): Add an alternative with
15312         the source being post_inc.  Tighten the predicate for the
15313         destination to register_operand.
15314         (movstricthi): Likewise.
15315
15316 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15317
15318         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
15319         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
15320         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
15321
15322 2004-01-14  Jan Hubicka  <jh@suse.cz>
15323
15324         Partial fix PR c++/12850
15325         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
15326         at zero nest level.
15327
15328 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
15329
15330         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
15331         pseudo-register.
15332
15333 2004-01-13  Devang Patel <dpatel@apple.com
15334
15335         PR debug/7078
15336         * dbxout.c (dbxout_symbol_name): Emit mangled names for
15337         NAMESPACE_DECL memebers.
15338
15339 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
15340
15341         PR c++/12709
15342         * c-common.c (finish_fname_decls): Use the chain only if the
15343         tree is an expr_stmt.
15344
15345 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
15346
15347         * rtl.def: Add comment about new option in automata_option.
15348
15349         * genautomata.c (PROGRESS_OPTION): New macro.
15350         (progress_flag): New global variable.
15351         (gen_automata_option): Process `progress'.
15352         (transform_insn_regexps, check_unit_distributions_to_automata,
15353         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
15354         expand_automata, write_automata): Print about the progress only if
15355         progress_flag.  Remove fflush.
15356         (initiate_automaton_gen): Process command line flag `-progress'.
15357
15358         * doc/md.texi: Describe the new option.
15359
15360 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15361
15362         * cfg.c (dump_bb): Dump entry edges.
15363
15364 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
15365
15366         * arm.c (thumb_legitimate_address_p): Only allow constant pool
15367         references from SImode.
15368         * arm.md (thumb_movhi_insn): Don't allow minipool references.
15369
15370 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15371
15372         * system.h (TEXT_SECTION): Poison.
15373         * varasm.c (text_section): Don't use TEXT_SECTION.
15374         * config/sh/sh.c (sh_file_start): Fix a comment typo.
15375         * doc/tm.texi (TEXT_SECTION): Remove.
15376
15377 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
15378
15379         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
15380
15381 2004-01-12  James E Wilson  <wilson@specifixinc.com>
15382
15383         * unwind-libunwind.c: Delete.
15384
15385 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15386
15387         PR 13656
15388         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
15389         oldtype is set, set *newtypep or *oldtypep too.  Do not set
15390         them at the very end.
15391         (validate_proto_after_old_defn): Restructure for comprehensibility;
15392         make error messages clearer.
15393
15394 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15395
15396         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
15397         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
15398         * varray.c: No need to prototype error.
15399         (varray_check_failed): Wrap long string onto two lines.
15400         (varray_underflow): New function.
15401
15402 2004-01-13  Steven Bosscher  <stevenb@suse.de>
15403
15404         PR c++/13376
15405         * function.h (struct function): Kill `name' field.
15406         (current_function_name): Make it an extern function.
15407         * function.c (current_function_name): New function.
15408         * graph.c: Update all uses of current_function_name.
15409         * gcse.c: Likewise.
15410         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
15411         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
15412         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
15413         instead of a strcmp with "main".
15414
15415 2004-01-13  Jan Hubicka  <jh@suse.cz>
15416
15417         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
15418
15419         * cgraphunit.c (cgraph_optimize_function):  Always do
15420         optimize_inline_calls when there is always_inline callee.
15421         (cgraph_decide_inlining): Fix formating.
15422         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
15423         functions.
15424         (expand_call_inline): Likewise.
15425         * toplev.h (sorry): Fix prototype.
15426
15427 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15428
15429         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
15430         conditional jumps that drop through to unconditional jumps or the
15431         end of the sequence.
15432
15433 2004-01-13  Jan Hubicka  <jh@suse.cz>
15434
15435         * alias.c (new_alias_set): Construct the alias_set varray.
15436         (init_alias_once): Don't do it here.
15437
15438 2004-01-12  Marc Espie <espie@openbsd.org>
15439
15440         * system.h: handle YYBYACC like YYBISON.
15441
15442 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
15443
15444         PR target/10847
15445         * config.gcc: No longer includes conflicting header sparc/sol2.h when
15446         building on sparc64-*-openbsd*.
15447
15448 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
15449
15450         PR debug/13539
15451         * dbxout.c (dbxout_type): Protected inheritance is not
15452         private but protected.
15453
15454 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15455
15456         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
15457
15458 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
15459
15460         PR optimization/12508.
15461         * combine.c (try_combine): Remove a dead set in a parallel
15462         even if its destination is a subreg.
15463
15464         Revert:
15465         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
15466         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
15467         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
15468
15469 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
15470
15471         * real.c: Update copyright date.
15472         * emit-rtl.c: Likewise.
15473         * rtl.h: Likewise.
15474         * dwarf2out.c: Likewise.
15475         * config/rs6000/darwin-ldouble.c: Likewise.
15476         * config/rs6000/rs6000.md: Likewise.
15477
15478 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15479
15480         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
15481         TFmode to SImode libfuncs.
15482
15483 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15484
15485         PR middle-end/11397
15486         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
15487
15488 2004-01-12  Jan Hubicka  <jh@suse.cz>
15489
15490         PR opt/12826
15491         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
15492         stored.
15493
15494         PR opt/12863
15495         * cfgcleanup.c (label_is_jump_target_p): Move to...
15496         * rtlanal.c (label_is_jump_target_p): ... here.
15497         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
15498         edges unified with branch edges.
15499
15500 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
15501
15502         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
15503         high word of an integral CONST_DOUBLE.
15504
15505 2004-01-12  Paul Brook  <paul@codesourcery.com>
15506
15507         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
15508
15509 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
15510
15511         PR target/13585
15512         * sh-protos.h (check_use_sfunc_addr): Declare.
15513         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
15514         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
15515
15516 2004-01-12  Jan Hubicka  <jh@suse.cz>
15517
15518         * alias.c:  Invlude varray.h
15519         (alias_sets): Turn into varray.
15520         (get_alias_set_entry): Use VARRAY; mark inline.
15521         (mems_in_disjoint_alias_sets_p): Mark inline.
15522         (record_alias_subset): Use varray.
15523         (init_alias_once): Initialize varray.
15524         (new_alias_set): Grow array.
15525         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
15526
15527 2004-01-12  Jan Hubicka  <jh@suse.cz>
15528
15529         Partial fix for PR opt/10776 II
15530         * cselib.c: Include params.h
15531         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
15532         locations.
15533         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
15534         * Makefile.in (cselib.o): Depend on params.h
15535
15536 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15537
15538         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
15539         simplify_unary_operation if the operand has a known mode.
15540
15541 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
15542
15543         PR target/13534
15544         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
15545         predicate to handle 'ld' conform addresses.
15546         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
15547         contraint.
15548         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
15549         are memory contraints.
15550         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
15551         New prototype.
15552         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
15553         Change 'o' to 'Y' constraint.
15554         (*movdf_softfloat64): Ditto.
15555
15556 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
15557
15558         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
15559         brace-enclosed syntax in all C output statements.
15560
15561 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15562
15563         PR target/13401
15564         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
15565         Objective-C language type value is 14.
15566
15567 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
15568
15569         PR c/12148
15570         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
15571         `int' in a number of places to make sure we always have a SImode
15572         and not a HImode.  Add a 'L' suffix to a number of constants.
15573
15574 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15575
15576         * pa.c: Don't include obstack.h.
15577
15578         * pa.md: Correct constraint in pattern for loading PIC label address.
15579
15580 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
15581
15582         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
15583          before defining.
15584
15585 2004-01-11  Steven Bosscher  <stevenb@suse.de>
15586
15587         PR fortran/9972
15588         * toplev.c (rest_of_handle_inline): Also consider functions
15589         for deferral if the language is GNU F77.
15590
15591 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
15592
15593         * c-decl.c (diagnose_arglist_conflict): Add missing space to
15594         diagnostic messages.
15595
15596 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
15597
15598         PR middle-end/13392
15599         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
15600         to drop through label.  Don't fall back to SCC even when conditional
15601         jump has not been found.
15602
15603 2004-01-11  Jan Hubicka  <jh@suse.cz>
15604
15605         * invoke.texi: Fix syntax error in previous patch.
15606
15607         Partial fix for PR opt/10776
15608         * Makefile.in (reload.o): Include param.h
15609         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
15610         * reload.c: Include params.h.
15611         (find_equiv_reg): Work limiting check.
15612         * invoke.texi: Document.
15613
15614 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
15615
15616         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
15617         out-of-bounds accesses to string constants.  Simplify mips16
15618         case accordingly.
15619
15620 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
15621
15622         PR optimization/13469
15623         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
15624         reload_cse_regs (-fnon-call-exceptions only).
15625
15626 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
15627
15628         * config/mcore/lib1.asm: Fix comment formatting.
15629         * config/mcore/mcore-elf.h: Likewise.
15630         * config/mcore/mcore.c: Likewise.
15631         * config/mcore/mcore.h: Likewise.
15632         * config/mcore/mcore.md: Likewise.
15633
15634 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
15635
15636         * c-decl.c (duplicate_decls): Break apart into...
15637         (diagnose_arglist_conflict, validate_proto_after_old_defn)
15638         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
15639         ... these new functions.  Restructure for comprehensibility.
15640         Remove various archaic special cases.  Always report the
15641         location of the previous declaration when a diagnostic is issued.
15642         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
15643         (match_builtin_function_types): Delete unnecessary forward declaration.
15644
15645 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
15646
15647         * genautomata.c (make_automaton, NDFA_to_DFA):
15648         Print progress bars with '.' characters instead of '*'.
15649         (build_automaton): Change notes to match.
15650
15651 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15652
15653         * config/m32r/m32r.md: Use define_constants for unspec and
15654         unspec_volatile.
15655
15656 2004-01-10  Jan Hubicka  <jh@suse.cz>
15657
15658         PR opt/11635
15659         * expr.c (expand_expr_real):  More curefully expand union casts.
15660
15661 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15662
15663         * config/m32r/m32r.md (flush_icache): Use 1 for
15664         unspec_volatile.
15665
15666 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
15667             James E Wilson  <wilson@specifixinc.com>
15668
15669         PR debug/12860
15670         * dbxout.c (dbxout_symbol): Remove initialization of
15671         current_sym_code, current_sym_value, and current_sym_addr.
15672         (dbxout_symbol_location): Same.
15673         (dbxout_prepare_symbol): Zero current_sym_code,
15674         current_sym_value, and current_sym_addr.
15675
15676 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
15677
15678         * tree.c (get_unwidened): Reorder conditions so that the null pointer
15679         check is done first.
15680
15681 2004-01-09  Eric Christopher  <echristo@redhat.com>
15682
15683         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
15684         if we're running mark_constant_function.
15685
15686 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
15687
15688         PR target/12561
15689         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
15690
15691 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
15692
15693         PR debug/11231
15694         * dbxout.c (dbxout_type_fields): Return if any item is
15695         error_mark_node or the type is error_mark_node.
15696
15697 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
15698
15699         * config/rs6000/darwin-ldouble.c: Add big comment explaining
15700         exactly what is expected as a 'long double'.
15701         (_xlqadd): When a value to be returned is representable as a
15702         'double', just return it directly, do not construct it using a union.
15703         Also, correct final fixup.
15704         (_xlqmul): Likewise.
15705         (_xlqdiv): Likewise.
15706         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
15707
15708         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
15709
15710 2004-01-09  Richard Henderson  <rth@redhat.com>
15711
15712         * recog.c (constrain_operands): Validate mem operands.
15713
15714 2004-01-09   James E Wilson  <wilson@specifixinc.com>
15715
15716         * gcc.c (init_spec): Remove -lunwind from shared case.
15717         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
15718
15719 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
15720
15721         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
15722         * configure: Regenerate
15723
15724 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
15725
15726         PR c/11234
15727         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
15728         between function and object pointers.
15729         (digest_init): When comparing a pointer to function type to the
15730         target type, only apply TREE_TYPE once to the pointer to function
15731         type.
15732         * except.c (for_each_eh_label_1): Treat data as a pointer to a
15733         function pointer rather than casting it to a function pointer.
15734         (for_each_eh_label): Update caller.
15735         * recog.h (struct insn_data): Use a struct or union for output.
15736         * genoutput.c (output_insn_data): Update.
15737         * final.c (get_insn_template): Update.
15738
15739 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
15740
15741         * expr.h (expand_expr): Make it a macro, not a function.
15742         (expand_expr_real): New function.
15743         * expr.c (store_expr): Adjust logic for deciding whether or not to
15744         copy the value returned by expand_expr.
15745         (expand_expr): Rename to ...
15746         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
15747         calls to language hooks.
15748         * c-common.h (c_expand_expr): Adjust prototype.
15749         * c-common.c (c_expand_expr): Add alt_rtl parameter.
15750         * langhooks-def.h (lhd_expand_expr): Change prototype.
15751         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
15752         * langhooks.h (lang_hooks): Change type of expand_expr.
15753         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
15754         (last_expr_alt_rtl): Likewise.
15755         (expand_expr_stmt_value): Set last_expr_alt_rtl.
15756         (clear_last_expr): Clear it.
15757         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
15758         (expand_end_bindings): Save and restor last_expr_alt_rtl.
15759         * tree.def (RTL_EXPR): Give it an additional operand.
15760         * tree.h (RTL_EXPR_ALT_RTL): New macro.
15761
15762 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15763
15764         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
15765         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
15766
15767 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15768
15769         PR target/13380.
15770         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
15771         or (ne:SI (reg:CC 17) (const_int 0)).
15772         Be specific about modes wherever possible.
15773
15774 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15775
15776         * config/m32r/m32r.c (m32r_expand_block_move): Call
15777         gen_movestrsi_internal with two more arguments.
15778         (m32r_output_block_move): Adjust operand numbers.
15779         Properly update the source and destination pointers.
15780         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
15781         'r+'.  Change the set detinations to match_operand.
15782
15783 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15784
15785         * final.c (FIRST_INSN_ADDRESS): Remove.
15786         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
15787         * system.h (FIRST_INSN_ADDRESS): Poison.
15788         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
15789         * config/m32r/m32r-protos.h: Remove the prototype for
15790         m32r_first_insn_address.
15791         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
15792         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
15793         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
15794
15795 2004-01-09  J. Brobecker  <brobecker@gnat.com>
15796
15797         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
15798         we just created.
15799         (is_ada_subrange_type): DIEs for enumeration subtypes should be
15800         emitted as subrange types too.
15801         (subrange_type_die): Add handling of enumeration subtypes.
15802
15803 2004-01-08  Richard Henderson  <rth@redhat.com>
15804
15805         PR opt/12441
15806         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
15807         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
15808         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
15809         (ix86_address_cost): Be prepared for SUBREGed registers.
15810         (legitimate_address_p): Accept SUBREGed registers.
15811
15812 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
15813
15814         * Makefile.in: Rename configure.in to configure.ac
15815         * doc/sourcebuild.texi: Likewise.
15816         * configure: Regenerate.
15817         * config.in: Regenerate.
15818
15819 2004-01-08  Stuart Hastings  <stuart@apple.com>
15820
15821         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
15822
15823 2004-01-08  Jan Hubicka  <jh@suse.cz>
15824
15825         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
15826
15827 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
15828
15829         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
15830         (UNSPEC_FIX_TRUNC_TF): New constant.
15831         (movtf_internal): Make splitter active only when insn is active.
15832         (extenddftf2): Rewrite to properly load zero into low part.
15833         (extenddftf2_internal): New.
15834         (extendsftf2): Rewrite.
15835         (truncdftf2): Correct length.
15836         (floatditf2): Delete.
15837         (fix_trunc_helper): New.
15838         (fix_trunctfdi2): Use fix_trunc_helper.
15839         (fix_trunctfsi2): Likewise.fix_trunc
15840         (fix_trunctfsi2_internal): New.
15841
15842         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
15843         addresses are legitimate on Darwin even when flag_pic.
15844         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
15845         non-offsettable addresses for loads of TFmode constants.
15846
15847 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15848
15849         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
15850         variables in the appropriate bss section.
15851
15852 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
15853
15854         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
15855         target_flags has MASK_POWERPC64 when -m64.
15856         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
15857         to 620, 630, power3, power4 and rs64a entries.
15858         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
15859
15860 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
15861
15862         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
15863         floating-point constants.
15864
15865 2004-01-08  J. Brobecker  <brobecker@gnat.com>
15866
15867         * dwarf2out.c (subrange_type_die): Add context_die parameter.
15868         Create the subrange_type DIE using the given context DIE.
15869         (modified_type_die): Update call to subrange_type_die.
15870
15871 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
15872
15873         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
15874         Add multiple-include guard.
15875
15876 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
15877
15878         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
15879         all vector constant loadable by vsplt*.
15880         (output_vec_const_move): Likewise.
15881
15882 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
15883
15884         PR c/6024
15885         * c-typeck.c (comptypes): Only treat enumerated types in the same
15886         translation unit as compatible with each other when they are the
15887         same type.
15888         * doc/extend.texi: Update.
15889
15890 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
15891
15892         PR c/12165
15893         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
15894         array type from the array element type.
15895
15896 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
15897
15898         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
15899         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
15900         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
15901         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
15902         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
15903
15904 2004-01-06  Eric Christopher  <echristo@redhat.com>
15905
15906         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
15907         (DWARF2_DEBUGGING_INFO): Define.
15908         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
15909         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
15910         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
15911         for irix as.
15912         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
15913         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
15914         * config/mips/iris5gas.h: Ditto.
15915         (DBX_DEBUGGING_INFO): Remove.
15916         (DWARF2_DEBUGGING_INFO): Ditto.
15917         (MIPS_DEBUGGING_INFO): Ditto.
15918         (PREFERRED_DEBUGGING_TYPE): Ditto.
15919         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
15920         (PREFERRED_DEBUGGING_TYPE): Ditto.
15921         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
15922         * config/mips/elf64.h: Ditto.
15923
15924 2004-01-06  Jan Hubicka  <jh@suse.cz>
15925
15926         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
15927         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
15928
15929 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
15930
15931         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
15932         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
15933         * config/rs6000/darwin-ldouble.c: New.
15934
15935         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
15936         for constants.
15937         (constant_subword): Delete.
15938         * rtl.h (constant_subword): Delete prototype.
15939         (immed_double_const): Is not in varasm.c.
15940         * simplify-rtx.c (simplify_immed_subreg): New.
15941         (simplify_subreg): Use simplify_immed_subreg.
15942
15943         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
15944         than trying to generate RTL directly.
15945         (fix_trunctfsi2): Use expand_fix rather than trying to generate
15946         RTL directly.
15947
15948         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
15949
15950 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
15951
15952         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
15953         function into a separate macro.
15954         (read_only_data_section): Add void argument.
15955         (private_data_section): Same.
15956         (read_only_private_data_section): Same.
15957         (toc_section): Same.
15958
15959 2004-01-06  Jan Hubicka  <jh@suse.cz>
15960
15961         * invoke.texi:  Remove typo in last change.
15962
15963         PR target/10301
15964         * config.gcc: Accept opteron and athlon-64 as variants
15965         of k8.
15966         * i386.c (override_options): Likewise.
15967         * invoke.texi (i386 -mtune): Expand documentation.
15968
15969 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
15970
15971         * alias.c: Fix comment typos.
15972         * builtins.c: Likewise.
15973         * cfg.c: Likewise.
15974         * df.c: Likewise.
15975         * dominance.c: Likewise.
15976         * dwarf2out.c: Likewise.
15977         * emit-rtl.c: Likewise.
15978         * expr.c: Likewise.
15979         * final.c: Likewise.
15980         * fold-const.c: Likewise.
15981         * gcse.c: Likewise.
15982         * genattrtab.c: Likewise.
15983         * genrecog.c: Likewise.
15984         * gensupport.c: Likewise.
15985         * ggc-zone.c: Likewise.
15986         * integrate.c: Likewise.
15987         * local-alloc.c: Likewise.
15988         * loop.c: Likewise.
15989         * recog.c: Likewise.
15990         * regmove.c: Likewise.
15991         * reg-stack.c: Likewise.
15992         * reorg.c: Likewise.
15993         * rtlanal.c: Likewise.
15994         * rtl.h: Likewise.
15995         * sched-ebb.c: Likewise.
15996         * simplify-rtx.c: Likewise.
15997         * toplev.c: Likewise.
15998         * varasm.c: Likewise.
15999
16000 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16001
16002         * doc/install.texi: Fix typos.
16003         * doc/invoke.texi: Likewise.
16004         * doc/md.texi: Likewise.
16005
16006 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16007
16008         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
16009
16010 2004-01-06  Jan Hubicka  <jh@suse.cz>
16011
16012         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
16013         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
16014         of MMX_REGPARM.
16015         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
16016         add MMX_REGPARM.
16017         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
16018         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
16019         (MMX_REGPARM_MAX): Similarly for -mmmx.
16020
16021 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16022
16023         * config/sh/linux.h: Fix comment formatting.
16024         * config/sh/netbsd-elf.h: Likewise.
16025         * config/sh/sh.c: Likewise.
16026         * config/sh/sh.h: Likewise.
16027         * config/sh/vxworks.h: Likewise.
16028
16029 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16030
16031         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
16032         * toplev.c (output_file_directive): Don't use
16033         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
16034
16035 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
16036
16037         * toplev.c: Fix broken checkin of 2003-12-30.
16038
16039 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
16040
16041         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
16042         (USING_MMAP): We don't support non-mmap.
16043         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
16044         large objects.
16045         (struct page_entry): Remove bytes_free.
16046         (struct page_table_chain): Remove.
16047         (struct globals): Remove page_table member.
16048         (loookup_page_table_entry): Function deleted.
16049         (set_page_table_entry): Ditto.
16050         (ggc_allocated_p): No longer need page table lookups.
16051         (ggc_marked_p): Ditto.
16052         (alloc_small_page): Don't care about bytes_free anymore.
16053         (alloc_large_page): Round up size.
16054         (ggc_alloc_zone_1): Mark large objects as such, and calculate
16055         their size the new way.
16056         Remove page table lookups and setting.
16057         (ggc_get_size): Calculate large object size the new way.
16058         (sweep_pages): Redo to account for fact that we no longer have
16059         bytes_free.
16060         (ggc_collect): No longer need to reincrement bytes_free.
16061         (ggc_pch_alloc_object): Handle new large objects properly.
16062         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
16063
16064 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16065
16066         * doc/invoke.texi: Remove a page break.
16067
16068 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16069
16070         * config/avr/avr.c (avr_output_function_prologue): Remove an
16071         extra pair of curly braces.
16072
16073 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16074
16075         * config/mn10300/mn10300.c: Fix comment formatting.
16076         * config/mn10300/mn10300.h: Likewise.
16077
16078 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16079
16080         * tree.h: Update documentation on nothrow_flag.
16081         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
16082         types.
16083
16084 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16085
16086         * doc/invoke.texi: Remove traces of dead ports.
16087
16088 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16089
16090         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
16091         option.
16092
16093 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16094
16095         PR target/12945
16096         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
16097         counter labels.
16098         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
16099         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
16100         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
16101         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
16102         (mips_symbol_insns): Don't trust the local/global classification.
16103         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
16104         (override_options): Make -mabicalls -fno-unit-at-a-time imply
16105         -mno-explicit-relocs.
16106         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
16107         between local and global symbols.
16108
16109 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16110
16111         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
16112         (mips_preferred_reload_class): Declare.
16113         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
16114         (EXTRA_CONSTRAINT): Update accordingly.
16115         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
16116         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
16117         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
16118         mips_dangerous_for_la25_p.
16119         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
16120         if mips_dangerous_for_la25_p.
16121
16122 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
16123
16124         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
16125         warning.
16126
16127 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
16128
16129         * configure.ac: Use AC_PROG_CPP_WERROR.
16130         * configure: Regenerate.
16131
16132 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
16133
16134         * .cvsignore: Add autom4te.cache.
16135
16136 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
16137
16138         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
16139         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
16140         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
16141         then architecture options, then ABI options.  General rewording.
16142
16143 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
16144
16145         PR c/3414
16146         * doc/extend.texi: Clarify definition of malloc attribute.
16147
16148 2004-01-04  Jan Hubicka  <jh@suse.cz>
16149
16150         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
16151         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
16152         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
16153         (cgraph_inline_p): Add extra argument reason.
16154         * cgraphunit.c: Minor formating fixes.
16155         cgraph_first_inlined_callee): New functions.
16156         (record_call_1): Record builtins too.
16157         (cgraph_analyze_function): Update inline_failed messages.
16158         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
16159         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
16160         (cgraph_check_inline_limits): Likewise; Add argument reason.
16161         (cgraph_set_inline_failed): New static function.
16162         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
16163         reasons.
16164         (cgraph_inline_p): Add new argument reason.
16165         * tree-inline.c (expand_call_inline):  Update warning.
16166
16167 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
16168
16169         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
16170         with modern equivalents.
16171         * configure: Regenerate.
16172
16173         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
16174         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
16175         * configure: Regenerate.
16176
16177         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
16178
16179         * configure.in: Rename to configure.ac.
16180         * configure.ac: Renamed from configure.in; make minimum necessary
16181         changes for autoconf 2.5x.
16182         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
16183         * configure: Regenerate with autoconf 2.57.
16184
16185 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
16186
16187         * config/mips/linux.h: Fix comment formatting.
16188         * config/mips/mips.c: Likewise.
16189         * config/mips/mips.h: Likewise.
16190         * config/mips/mips.md: Likewise.
16191         * config/mips/netbsd.h: Likewise.
16192         * config/mips/windiss.h: Likewise.
16193
16194 2004-01-02  Richard Henderson  <rth@redhat.com>
16195
16196         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
16197         for sse and 387; add suppression for mmx.
16198
16199 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
16200
16201         * loop.c (loop_optimize): Free all loops_info's mems.
16202
16203         * c-typeck.c (finish_init): Free spelling_base before
16204         setting it again.
16205
16206         * cfgloop.c (flow_loops_find): Always free the sbitmap
16207         headers.
16208
16209         * predict.c (estimate_probability): Free bbs after being
16210         done with it.
16211
16212 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16213
16214         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
16215         const_8bit_operand and call_address_operand.
16216
16217 2004-01-02  Jan Hubicka  <jh@suse.cz>
16218
16219         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
16220         when there is nothing to inline but warnings are requested.
16221         (cgraph_decide_inlining):  Fix memory leak.
16222
16223 2004-01-02  Jan Hubicka  <jh@suse.cz>
16224
16225         * expr.c (store_constructor):  Fix pasto in previous patch.
16226
16227 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16228
16229         * config/i386/cygming.h: Fix comment formatting.
16230         * config/i386/djgpp.h: Likewise.
16231         * config/i386/gthr-win32.c: Likewise.
16232         * config/i386/i386-interix.h: Likewise.
16233         * config/i386/i386.c: Likewise.
16234         * config/i386/i386.h: Likewise.
16235         * config/i386/openbsd.h: Likewise.
16236         * config/i386/winnt.c: Likewise.
16237         * config/i386/xm-mingw32.h: Likewise.
16238
16239 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
16240
16241         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
16242         copyright and last modification dates.
16243
16244 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
16245
16246         * doc/install.texi (Specific): Mention x86_64.
16247
16248 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
16249
16250         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
16251         Call force_operand on plus_constant result.
16252
16253 2004-01-01  Jan Hubicka  <jh@suse.cz>
16254
16255         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
16256         * expr.c (store_constructor): Use vec_init pattern.
16257         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
16258         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
16259         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
16260         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
16261         New patterns.
16262         (sse2_unpc?pd): Fix pattern.
16263         (sse2_movlpd): Kill.
16264         (sse2_movsd): Deal with movlpd too.
16265         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
16266         (ix86_expand_vector_init): New.
16267         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
16268         * md.texi (vec_set, vec_extract): Document
16269
16270 2003-12-31  Jan Hubicka  <jh@suse.cz>
16271
16272         PR opt/13473
16273         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
16274         ASM input operands
16275
16276         PR opt/12617
16277         * toplev.c (dump_file_index): Reorder ce3 and bbro.
16278         (dump_file): Likewise.
16279         (rest_of_compilation): Likewise.
16280
16281         PR debug/13367
16282         * cgraph.c (cgraph_function_possibly_inlined):  Even with
16283         flag_really_no_inline we inline always_inline functions.
16284         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
16285         for non-always_inline functions when there is flag_really_no_inline.
16286         (cgraph_decide_inlining): Limit work done when not inlining.
16287         (cgraph_decide_inlining_incrementally): Likewise.
16288         (cgraph_optimize_function): Check whether something got inlined.
16289         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
16290         extern inline functions when not inlining.
16291
16292         * opts.c (decode_options):  Disable crossjumping at -O1
16293         * invoke.texi (-O1): Document change.
16294
16295 See ChangeLog.10 for earlier changes.